From c744e3b4a82f7af7b315787bfc00a333b9c0b248 Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Sat, 14 Jan 2012 17:45:55 -0600 Subject: extract and include blockset data extract_tileblocks also has the ability to output asm, but the output seems like it would be too much for rgbasm to handle. Instead of cluttering up common.asm, I am opting to place the data in binary data files under gfx/blocksets/ in .bst files. Every 16 bytes is a separate block in the blockset. Each byte is referencing a tile id from the tileset graphics in gfx/tilesets/. hg-commit-id: 0540eff0f081 --- common.asm | 38 +++++------ extras/extract_tileblocks.py | 95 +++++++++++++++++++++++++++ gfx/blocksets/00.bst | 71 +++++++++++++++++++++ gfx/blocksets/01.bst | Bin 0 -> 304 bytes gfx/blocksets/02.bst | Bin 0 -> 592 bytes gfx/blocksets/03.bst | Bin 0 -> 2048 bytes gfx/blocksets/05.bst | Bin 0 -> 1856 bytes gfx/blocksets/08.bst | Bin 0 -> 560 bytes gfx/blocksets/09.bst | Bin 0 -> 2048 bytes gfx/blocksets/0b.bst | Bin 0 -> 272 bytes gfx/blocksets/0d.bst | Bin 0 -> 992 bytes gfx/blocksets/0e.bst | Bin 0 -> 368 bytes gfx/blocksets/0f.bst | 149 +++++++++++++++++++++++++++++++++++++++++++ gfx/blocksets/10.bst | Bin 0 -> 928 bytes gfx/blocksets/11.bst | Bin 0 -> 2048 bytes gfx/blocksets/12.bst | Bin 0 -> 1264 bytes gfx/blocksets/13.bst | Bin 0 -> 1152 bytes gfx/blocksets/14.bst | Bin 0 -> 928 bytes gfx/blocksets/15.bst | Bin 0 -> 576 bytes gfx/blocksets/16.bst | Bin 0 -> 2049 bytes gfx/blocksets/17.bst | Bin 0 -> 1200 bytes 21 files changed, 334 insertions(+), 19 deletions(-) create mode 100644 extras/extract_tileblocks.py create mode 100644 gfx/blocksets/00.bst create mode 100644 gfx/blocksets/01.bst create mode 100644 gfx/blocksets/02.bst create mode 100644 gfx/blocksets/03.bst create mode 100644 gfx/blocksets/05.bst create mode 100644 gfx/blocksets/08.bst create mode 100644 gfx/blocksets/09.bst create mode 100644 gfx/blocksets/0b.bst create mode 100644 gfx/blocksets/0d.bst create mode 100644 gfx/blocksets/0e.bst create mode 100644 gfx/blocksets/0f.bst create mode 100644 gfx/blocksets/10.bst create mode 100644 gfx/blocksets/11.bst create mode 100644 gfx/blocksets/12.bst create mode 100644 gfx/blocksets/13.bst create mode 100644 gfx/blocksets/14.bst create mode 100644 gfx/blocksets/15.bst create mode 100644 gfx/blocksets/16.bst create mode 100644 gfx/blocksets/17.bst diff --git a/common.asm b/common.asm index 4b8f9010..29f47d3f 100644 --- a/common.asm +++ b/common.asm @@ -34920,31 +34920,31 @@ SECTION "bank19",DATA,BANK[$19] Tset00_GFX: INCBIN "gfx/tilesets/00.2bpp" Tset00_Block: - INCBIN "baserom.gbc",$645E0,$64DE0-$645E0 + INCBIN "gfx/blocksets/00.bst" Tset01_GFX: INCBIN "gfx/tilesets/01.2bpp" Tset01_Block: - INCBIN "baserom.gbc",$65270,$653A0-$65270 + INCBIN "gfx/blocksets/01.bst" Tset08_GFX: INCBIN "gfx/tilesets/08.2bpp" Tset08_Block: - INCBIN "baserom.gbc",$65980,$65BB0-$65980 + INCBIN "gfx/blocksets/08.bst" Tset13_GFX: INCBIN "gfx/tilesets/13.2bpp" Tset13_Block: - INCBIN "baserom.gbc",$66190,$66610-$66190 + INCBIN "gfx/blocksets/13.bst" Tset0E_GFX: INCBIN "gfx/tilesets/0e.2bpp" Tset0E_Block: - INCBIN "baserom.gbc",$66BF0,$66D60-$66BF0 + INCBIN "gfx/blocksets/0e.bst" Tset10_GFX: INCBIN "gfx/tilesets/10.2bpp" Tset10_Block: - INCBIN "baserom.gbc",$67350,$676F0-$67350 + INCBIN "gfx/blocksets/10.bst" Tset17_GFX: INCBIN "gfx/tilesets/17.2bpp" Tset17_Block: - INCBIN "baserom.gbc",$67B50,$68000-$67B50 + INCBIN "gfx/blocksets/17.bst" SECTION "bank1A",DATA,BANK[$1A] @@ -34988,54 +34988,54 @@ ENDC Tset05_GFX: INCBIN "gfx/tilesets/05.2bpp" Tset05_Block: - INCBIN "baserom.gbc",$6867F,$68DBF-$6867F + INCBIN "gfx/blocksets/05.bst" Tset02_GFX: INCBIN "gfx/tilesets/02.2bpp" Tset02_Block: - INCBIN "baserom.gbc",$693BF,$6960F-$693BF + INCBIN "gfx/blocksets/02.bst" Tset09_GFX: INCBIN "gfx/tilesets/09.2bpp" Tset09_Block: - INCBIN "baserom.gbc",$69BFF,$6A3FF-$69BFF + INCBIN "gfx/blocksets/09.bst" Tset03_GFX: INCBIN "gfx/tilesets/03.2bpp" Tset03_Block: - INCBIN "baserom.gbc",$6A9FF,$6B1FF-$6A9FF + INCBIN "gfx/blocksets/03.bst" Tset16_GFX: INCBIN "gfx/tilesets/16.2bpp" Tset16_Block: - INCBIN "baserom.gbc",$6B7FF,$6C000-$6B7FF + INCBIN "gfx/blocksets/16.bst" SECTION "bank1B",DATA,BANK[$1B] Tset0F_GFX: INCBIN "gfx/tilesets/0f.2bpp" Tset0F_Block: - INCBIN "baserom.gbc",$6C5C0,$6CCA0-$6C5C0 + INCBIN "gfx/blocksets/0f.bst" Tset11_GFX: INCBIN "gfx/tilesets/11.2bpp" Tset11_Block: - INCBIN "baserom.gbc",$6D0C0,$6D8C0-$6D0C0 + INCBIN "gfx/blocksets/11.bst" Tset12_GFX: INCBIN "gfx/tilesets/12.2bpp" Tset12_Block: - INCBIN "baserom.gbc",$6DEA0,$6E390-$6DEA0 + INCBIN "gfx/blocksets/12.bst" Tset0D_GFX: INCBIN "gfx/tilesets/0d.2bpp" Tset0D_Block: - INCBIN "baserom.gbc",$6E930,$6ED10-$6E930 + INCBIN "gfx/blocksets/0d.bst" Tset14_GFX: INCBIN "gfx/tilesets/14.2bpp" Tset14_Block: - INCBIN "baserom.gbc",$6F2D0,$6F670-$6F2D0 + INCBIN "gfx/blocksets/14.bst" Tset15_GFX: INCBIN "gfx/tilesets/15.2bpp" Tset15_Block: - INCBIN "baserom.gbc",$6FB20,$6FD60-$6FB20 + INCBIN "gfx/blocksets/15.bst" Tset0B_GFX: INCBIN "gfx/tilesets/0b.2bpp" Tset0B_Block: - INCBIN "baserom.gbc",$6FEF0,$70000-$6FEF0 + INCBIN "gfx/blocksets/0b.bst" SECTION "bank1C",DATA,BANK[$1C] diff --git a/extras/extract_tileblocks.py b/extras/extract_tileblocks.py new file mode 100644 index 00000000..42513411 --- /dev/null +++ b/extras/extract_tileblocks.py @@ -0,0 +1,95 @@ +#!/usr/bin/python +#author: Bryan Bishop +#date: 2012-01-14 +#split out blocksets into binary data files +# There's also code here to spit out asm for each blockset, +# but it's too many lines and will probably crash rgbasm. + +import sys +import extract_maps +extract_maps.load_rom() +spacing = " " + +tileblocks = { +"Tset00_Block": [0x645E0, 0x64DE0, ""], +"Tset01_Block": [0x65270, 0x653A0, ""], +"Tset02_Block": [0x693BF, 0x6960F, ""], +"Tset03_Block": [0x6A9FF, 0x6B1FF, ""], +"Tset05_Block": [0x6867F, 0x68DBF, ""], +"Tset08_Block": [0x65980, 0x65BB0, ""], +"Tset09_Block": [0x69BFF, 0x6A3FF, ""], +"Tset0B_Block": [0x6FEF0, 0x70000, ""], +"Tset0D_Block": [0x6E930, 0x6ED10, ""], +"Tset0E_Block": [0x66BF0, 0x66D60, ""], +"Tset0F_Block": [0x6C5C0, 0x6CCA0, ""], +"Tset10_Block": [0x67350, 0x676F0, ""], +"Tset13_Block": [0x66190, 0x66610, ""], +"Tset11_Block": [0x6D0C0, 0x6D8C0, ""], +"Tset12_Block": [0x6DEA0, 0x6E390, ""], +"Tset14_Block": [0x6F2D0, 0x6F670, ""], +"Tset15_Block": [0x6FB20, 0x6FD60, ""], +"Tset16_Block": [0x6B7FF, 0x6C000, ""], +"Tset17_Block": [0x67B50, 0x68000, ""], +} + +#10:02 <+sawakita> each block is composed by 4x4 tiles +#10:03 <+sawakita> so you can see a blockset as a list of 16-bytes long arrays +#10:07 <+sawakita> 4 bytes for each row of the block, left-to-right, top-to-down +#10:08 <+sawakita> so first byte is top-left tile +#10:08 <+kanzure> top-left tile byte is a tile id? +#10:08 <+sawakita> exactly +#10:09 <+kanzure> what does a tile id reference +#10:10 <+sawakita> tile ID $00 is the first tile of the tileset's graphics (first 16-bytes, since gfx are 2bpp) + +output = "" +for tileblock_id in tileblocks.keys(): + tileblock = tileblocks[tileblock_id] + start_address = tileblock[0] + end_address = tileblock[1] + block_count = (end_address - start_address) / 16 + main_data = extract_maps.rom[start_address:end_address] + + blockset_id = int(tileblock_id[4:6], 16) + + output = "; " + output += tileblock_id + " - " + str(block_count) + " blocks (" + hex(start_address) + " to " + hex(end_address) + ")\n" + #print tileblock_id + " has " + str(block_count) + " block tiles." + for block_id in range(0, block_count): + start_address2 = start_address + (16 * block_id) + end_address2 = start_address + (16 * block_id) + 16 + data = extract_maps.rom[start_address2:end_address2] + + output += spacing + "; block " + str(block_id + 1) + " on " + tileblock_id + "\n" + + #output += spacing + spacing + "db $%.2x" % (ord(data[0])) + #for data_bit in range(1,15): + # output += ", $%.2x" % (ord(data[data_bit])) + #output += ", $%.2x" % (ord(data[15])) + #output += "\n" + + for row_id in range(0,4): + subdata = data[row_id * 4:row_id * 4 + 4] + subdata2 = [ord(subdata[0]), ord(subdata[1]), ord(subdata[2]), ord(subdata[3])] + + output += spacing + spacing + " ; row " + str(row_id + 1) + "\n" + output += spacing + spacing + spacing + "db $%.2x, $%.2x, $%.2x, $%.2x\n" % (subdata2[0], subdata2[1], subdata2[2], subdata2[3]) + + fh = open("../gfx/blocksets/%.2x.bst" % (blockset_id), "w") + fh.write(main_data) + fh.close() + + print output + +""" +Tset00_Block: + ; block 1 + ; row 1 + db 0, 0, 0, 0 + ; row 2 + db 0, 0, 0, 0 + ; row 3 + db 0, 0, 0, 0 + ; row 4 + db 0, 0, 0, 0 +""" + diff --git a/gfx/blocksets/00.bst b/gfx/blocksets/00.bst new file mode 100644 index 00000000..18ceef97 --- /dev/null +++ b/gfx/blocksets/00.bst @@ -0,0 +1,71 @@ + + +()KKK + + +O####9#########9#%& N  + +()O*+:;<<<<<<<<<<<<<<HI77XY77,,,,,,,,,,,,77779999999999FG99VW# + +#,,,,,,,,,,,,,,,,RRRRRRRRRRRRRRRRSS88SSSSSS 88@A@APQPQ@A@APQPQ%& + +""" + + +N"/?""""" + + + + + +()""" +O*+*+:;:;*+*+:;:;*+:;*+*+:;:;*+:;*+*+:;:;*+*+:;:;*+:;*+*+:;:;*+:;*+:;*+:;*+:;*+:;9999999999996777##UU####UU######9###@A@APQPQ33332223333TTT3333LSSSZZ\SSSMZZ]!########!## ######## '''''6776777$$$$774$7774##!########!########''''''''$$$$$$$$7'57$533,,,,,,,,,,,,74<<%& +"N9999999999999999@A-.PQ=>@A,,PQ,,@A@APQPQ,,-.,,=>-.,,=>,,@A@APQPQ,,-.,,=>@A,,PQ,,@A@APQPQ,,@A,,PQ + + +KKKKKKN####9#######9###  +KK +KKKK + +9$$$$$%& +"\" N + +()] + +"O#'''''*+,,:;,,,,,,,,,,,,,,,,,,*+,,:;,,,,@A,,PQ,,@A74PQ##!######! !######## !'999'999'999'99999 $99 $99 $99 $ !######!##! ########!'999'999'99967<<99 $99 $99 $6774,,,,,,,,@A,,PQ,,,,*+,,:;,,*+,,:;*+,,:;,,*+,,:;,,,,*+,,:;*+*+:;:;*+,,:;,,*+*+:;:;*+*+:;:;,,,,,,,,,,,,,,,,*+*+:;:;,,*+,,:;,,,,,,,,<<<<<<<<<<<<<<<<[[[[[[[[[[[[[[[[99999999FGUUVW77777777',,,',,,',,,',,,,,$,,$,,$,,$',,,',,,',,,6777,,$,,$,,$7774999999999999<<67!##!############!##!####UU####UU,,@A,,PQ-.@A=>PQ99999999*+*+:;:;*+*+:;:;*+,,:;,,*+*+:;:;,,*+,,:;TTTT22222T2T2T2T*+33:;*+:; + + +KKK + + +KKK + + +KKK + + +KKK33*+:;*+:;*+*+:;:;@A@APQPQ,,,,,,,,@A,,PQ,,@A,,PQ,,,,@A,,PQ,,@A,,PQ,,,,,,,,@A@APQPQ$$$$HI4$XY74"""" + + +KKKBCKJJO + + +KKKDEKJJO,,,,,,,,,,,,88%&""88""()99999999UUUU11110000000000FG00VW,0,00,0,,0,00,0,0909909009099090 + + +KKKK N + + + +KKKKKKKK + + +KKKKKKO + + + +KKKK + + + +KKKK \ No newline at end of file diff --git a/gfx/blocksets/01.bst b/gfx/blocksets/01.bst new file mode 100644 index 00000000..6c9f4749 Binary files /dev/null and b/gfx/blocksets/01.bst differ diff --git a/gfx/blocksets/02.bst b/gfx/blocksets/02.bst new file mode 100644 index 00000000..a82460f5 Binary files /dev/null and b/gfx/blocksets/02.bst differ diff --git a/gfx/blocksets/03.bst b/gfx/blocksets/03.bst new file mode 100644 index 00000000..828c840d Binary files /dev/null and b/gfx/blocksets/03.bst differ diff --git a/gfx/blocksets/05.bst b/gfx/blocksets/05.bst new file mode 100644 index 00000000..48889bfa Binary files /dev/null and b/gfx/blocksets/05.bst differ diff --git a/gfx/blocksets/08.bst b/gfx/blocksets/08.bst new file mode 100644 index 00000000..0599cde6 Binary files /dev/null and b/gfx/blocksets/08.bst differ diff --git a/gfx/blocksets/09.bst b/gfx/blocksets/09.bst new file mode 100644 index 00000000..e4c820a4 Binary files /dev/null and b/gfx/blocksets/09.bst differ diff --git a/gfx/blocksets/0b.bst b/gfx/blocksets/0b.bst new file mode 100644 index 00000000..c0b64c3e Binary files /dev/null and b/gfx/blocksets/0b.bst differ diff --git a/gfx/blocksets/0d.bst b/gfx/blocksets/0d.bst new file mode 100644 index 00000000..e64b113d Binary files /dev/null and b/gfx/blocksets/0d.bst differ diff --git a/gfx/blocksets/0e.bst b/gfx/blocksets/0e.bst new file mode 100644 index 00000000..60b4767e Binary files /dev/null and b/gfx/blocksets/0e.bst differ diff --git a/gfx/blocksets/0f.bst b/gfx/blocksets/0f.bst new file mode 100644 index 00000000..5f526961 --- /dev/null +++ b/gfx/blocksets/0f.bst @@ -0,0 +1,149 @@ +GGGGGGGGGGGGGGGG + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + ! #1003=>=> + + + + + + + + + +  + +"""""""""""""""" + + + + + + + + + + + + + + + + + +-***+,::+,+,****::::***.::+,+,+,()()89898989HIHI+,+,+,+,'/7?=>+,+,+,+, 0000+,+,-***;:::****::::+,+,***.:::<'/7?=> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +'/ +7?=> +'/7? +=> \ No newline at end of file diff --git a/gfx/blocksets/10.bst b/gfx/blocksets/10.bst new file mode 100644 index 00000000..66cff3d0 Binary files /dev/null and b/gfx/blocksets/10.bst differ diff --git a/gfx/blocksets/11.bst b/gfx/blocksets/11.bst new file mode 100644 index 00000000..9857f72b Binary files /dev/null and b/gfx/blocksets/11.bst differ diff --git a/gfx/blocksets/12.bst b/gfx/blocksets/12.bst new file mode 100644 index 00000000..d5a3fd58 Binary files /dev/null and b/gfx/blocksets/12.bst differ diff --git a/gfx/blocksets/13.bst b/gfx/blocksets/13.bst new file mode 100644 index 00000000..141be9d8 Binary files /dev/null and b/gfx/blocksets/13.bst differ diff --git a/gfx/blocksets/14.bst b/gfx/blocksets/14.bst new file mode 100644 index 00000000..9b78ed3f Binary files /dev/null and b/gfx/blocksets/14.bst differ diff --git a/gfx/blocksets/15.bst b/gfx/blocksets/15.bst new file mode 100644 index 00000000..692beb38 Binary files /dev/null and b/gfx/blocksets/15.bst differ diff --git a/gfx/blocksets/16.bst b/gfx/blocksets/16.bst new file mode 100644 index 00000000..1ed2d436 Binary files /dev/null and b/gfx/blocksets/16.bst differ diff --git a/gfx/blocksets/17.bst b/gfx/blocksets/17.bst new file mode 100644 index 00000000..26435dc8 Binary files /dev/null and b/gfx/blocksets/17.bst differ -- cgit v1.2.3