From 25df78ecf338b150cb78fbd0409aa8fe47a4a0dd Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Sun, 29 Jan 2012 21:44:52 -0600 Subject: [PATCH] extract spritesheets into .2bpp files hg-commit-id: 294542bfff57 --- extras/sprite_helper.py | 251 ++++++++++++++- gfx/sprites/agatha.2bpp | Bin 0 -> 384 bytes gfx/sprites/balding_guy.2bpp | Bin 0 -> 192 bytes gfx/sprites/ball.2bpp | Bin 0 -> 64 bytes gfx/sprites/bike_shop_guy.2bpp | Bin 0 -> 192 bytes gfx/sprites/biker.2bpp | Bin 0 -> 384 bytes gfx/sprites/bird.2bpp | Bin 0 -> 384 bytes gfx/sprites/black_hair_boy_1.2bpp | Bin 0 -> 384 bytes gfx/sprites/black_hair_boy_2.2bpp | Bin 0 -> 384 bytes gfx/sprites/blackbelt.2bpp | Bin 0 -> 384 bytes gfx/sprites/blue.2bpp | Bin 0 -> 384 bytes gfx/sprites/book_map_dex.2bpp | Bin 0 -> 64 bytes gfx/sprites/boulder.2bpp | Bin 0 -> 64 bytes gfx/sprites/brunette_girl.2bpp | Bin 0 -> 384 bytes gfx/sprites/bruno.2bpp | Bin 0 -> 384 bytes gfx/sprites/bug_catcher.2bpp | Bin 0 -> 384 bytes gfx/sprites/cable_club_woman.2bpp | Bin 0 -> 192 bytes gfx/sprites/clefairy.2bpp | Bin 0 -> 384 bytes gfx/sprites/clipboard.2bpp | Bin 0 -> 64 bytes gfx/sprites/cook.2bpp | Bin 0 -> 384 bytes gfx/sprites/daisy.2bpp | Bin 0 -> 384 bytes gfx/sprites/erika.2bpp | Bin 0 -> 384 bytes gfx/sprites/fat_bald_guy.2bpp | Bin 0 -> 384 bytes gfx/sprites/fisher.2bpp | Bin 0 -> 192 bytes gfx/sprites/fisher2.2bpp | Bin 0 -> 384 bytes gfx/sprites/foulard_woman.2bpp | Bin 0 -> 384 bytes gfx/sprites/gambler.2bpp | Bin 0 -> 384 bytes gfx/sprites/gameboy_kid.2bpp | Bin 0 -> 192 bytes gfx/sprites/gentleman.2bpp | Bin 0 -> 384 bytes gfx/sprites/giovanni.2bpp | Bin 0 -> 384 bytes gfx/sprites/girl.2bpp | Bin 0 -> 384 bytes gfx/sprites/guard.2bpp | Bin 0 -> 192 bytes gfx/sprites/gym_helper.2bpp | Bin 0 -> 192 bytes gfx/sprites/hiker.2bpp | Bin 0 -> 384 bytes gfx/sprites/lance.2bpp | Bin 0 -> 384 bytes gfx/sprites/lapras_giver.2bpp | Bin 0 -> 192 bytes gfx/sprites/lass.2bpp | Bin 0 -> 384 bytes gfx/sprites/little_girl.2bpp | Bin 0 -> 384 bytes gfx/sprites/lorelei.2bpp | Bin 0 -> 384 bytes gfx/sprites/lying_old_man.2bpp | Bin 0 -> 64 bytes gfx/sprites/mart_guy.2bpp | Bin 0 -> 192 bytes gfx/sprites/medium.2bpp | Bin 0 -> 384 bytes gfx/sprites/mom.2bpp | Bin 0 -> 192 bytes gfx/sprites/mom_geisha.2bpp | Bin 0 -> 384 bytes gfx/sprites/mr_fuji.2bpp | Bin 0 -> 384 bytes gfx/sprites/mr_masterball.2bpp | Bin 0 -> 192 bytes gfx/sprites/nurse.2bpp | Bin 0 -> 192 bytes gfx/sprites/oak.2bpp | Bin 0 -> 384 bytes gfx/sprites/oak_aide.2bpp | Bin 0 -> 384 bytes gfx/sprites/old_amber.2bpp | Bin 0 -> 64 bytes gfx/sprites/old_medium_woman.2bpp | Bin 0 -> 192 bytes gfx/sprites/old_person.2bpp | Bin 0 -> 192 bytes gfx/sprites/omanyte.2bpp | Bin 0 -> 64 bytes gfx/sprites/paper_sheet.2bpp | Bin 0 -> 64 bytes gfx/sprites/red.2bpp | Bin 0 -> 384 bytes gfx/sprites/rocker.2bpp | Bin 0 -> 384 bytes gfx/sprites/rocket.2bpp | Bin 0 -> 384 bytes gfx/sprites/sailor.2bpp | Bin 0 -> 384 bytes gfx/sprites/seel.2bpp | Bin 0 -> 384 bytes gfx/sprites/slowbro.2bpp | Bin 0 -> 384 bytes gfx/sprites/snorlax.2bpp | Bin 0 -> 64 bytes gfx/sprites/ss_captain.2bpp | Bin 0 -> 192 bytes gfx/sprites/swimmer.2bpp | Bin 0 -> 384 bytes gfx/sprites/waiter.2bpp | Bin 0 -> 384 bytes gfx/sprites/warden.2bpp | Bin 0 -> 192 bytes gfx/sprites/white_player.2bpp | Bin 0 -> 192 bytes gfx/sprites/young_boy.2bpp | Bin 0 -> 192 bytes main.asm | 504 +++++++++++++++++++++++++++++- 68 files changed, 738 insertions(+), 17 deletions(-) create mode 100644 gfx/sprites/agatha.2bpp create mode 100644 gfx/sprites/balding_guy.2bpp create mode 100644 gfx/sprites/ball.2bpp create mode 100644 gfx/sprites/bike_shop_guy.2bpp create mode 100644 gfx/sprites/biker.2bpp create mode 100644 gfx/sprites/bird.2bpp create mode 100644 gfx/sprites/black_hair_boy_1.2bpp create mode 100644 gfx/sprites/black_hair_boy_2.2bpp create mode 100644 gfx/sprites/blackbelt.2bpp create mode 100644 gfx/sprites/blue.2bpp create mode 100644 gfx/sprites/book_map_dex.2bpp create mode 100644 gfx/sprites/boulder.2bpp create mode 100644 gfx/sprites/brunette_girl.2bpp create mode 100644 gfx/sprites/bruno.2bpp create mode 100644 gfx/sprites/bug_catcher.2bpp create mode 100644 gfx/sprites/cable_club_woman.2bpp create mode 100644 gfx/sprites/clefairy.2bpp create mode 100644 gfx/sprites/clipboard.2bpp create mode 100644 gfx/sprites/cook.2bpp create mode 100644 gfx/sprites/daisy.2bpp create mode 100644 gfx/sprites/erika.2bpp create mode 100644 gfx/sprites/fat_bald_guy.2bpp create mode 100644 gfx/sprites/fisher.2bpp create mode 100644 gfx/sprites/fisher2.2bpp create mode 100644 gfx/sprites/foulard_woman.2bpp create mode 100644 gfx/sprites/gambler.2bpp create mode 100644 gfx/sprites/gameboy_kid.2bpp create mode 100644 gfx/sprites/gentleman.2bpp create mode 100644 gfx/sprites/giovanni.2bpp create mode 100644 gfx/sprites/girl.2bpp create mode 100644 gfx/sprites/guard.2bpp create mode 100644 gfx/sprites/gym_helper.2bpp create mode 100644 gfx/sprites/hiker.2bpp create mode 100644 gfx/sprites/lance.2bpp create mode 100644 gfx/sprites/lapras_giver.2bpp create mode 100644 gfx/sprites/lass.2bpp create mode 100644 gfx/sprites/little_girl.2bpp create mode 100644 gfx/sprites/lorelei.2bpp create mode 100644 gfx/sprites/lying_old_man.2bpp create mode 100644 gfx/sprites/mart_guy.2bpp create mode 100644 gfx/sprites/medium.2bpp create mode 100644 gfx/sprites/mom.2bpp create mode 100644 gfx/sprites/mom_geisha.2bpp create mode 100644 gfx/sprites/mr_fuji.2bpp create mode 100644 gfx/sprites/mr_masterball.2bpp create mode 100644 gfx/sprites/nurse.2bpp create mode 100644 gfx/sprites/oak.2bpp create mode 100644 gfx/sprites/oak_aide.2bpp create mode 100644 gfx/sprites/old_amber.2bpp create mode 100644 gfx/sprites/old_medium_woman.2bpp create mode 100644 gfx/sprites/old_person.2bpp create mode 100644 gfx/sprites/omanyte.2bpp create mode 100644 gfx/sprites/paper_sheet.2bpp create mode 100644 gfx/sprites/red.2bpp create mode 100644 gfx/sprites/rocker.2bpp create mode 100644 gfx/sprites/rocket.2bpp create mode 100644 gfx/sprites/sailor.2bpp create mode 100644 gfx/sprites/seel.2bpp create mode 100644 gfx/sprites/slowbro.2bpp create mode 100644 gfx/sprites/snorlax.2bpp create mode 100644 gfx/sprites/ss_captain.2bpp create mode 100644 gfx/sprites/swimmer.2bpp create mode 100644 gfx/sprites/waiter.2bpp create mode 100644 gfx/sprites/warden.2bpp create mode 100644 gfx/sprites/white_player.2bpp create mode 100644 gfx/sprites/young_boy.2bpp diff --git a/extras/sprite_helper.py b/extras/sprite_helper.py index 991f49195..ee7a5f474 100644 --- a/extras/sprite_helper.py +++ b/extras/sprite_helper.py @@ -1,11 +1,10 @@ -from extract_maps import * -spacing = " " -load_rom() -load_map_pointers() -read_all_map_headers() +import extract_maps +spacing = "\t" #provided by sawakita -constants = { +#these were originally used for making the initial_icon_constants +#but the label names in constants.asm have since been edited +initial_icon_constants = { 0x01: ["Hiro", ""], 0x02: ["Rival", ""], 0x03: ["Oak", ""], @@ -80,6 +79,85 @@ constants = { 0x48: ["lying old man", ""], } +#somewhat more recent sprite labels +sprite_constants = { +0x01: "SPRITE_RED", +0x02: "SPRITE_BLUE", +0x03: "SPRITE_OAK", +0x04: "SPRITE_BUG_CATCHER", +0x05: "SPRITE_SLOWBRO", +0x06: "SPRITE_LASS", +0x07: "SPRITE_BLACK_HAIR_BOY_1", +0x08: "SPRITE_LITTLE_GIRL", +0x09: "SPRITE_BIRD", +0x0a: "SPRITE_FAT_BALD_GUY", +0x0b: "SPRITE_GAMBLER", +0x0c: "SPRITE_BLACK_HAIR_BOY_2", +0x0d: "SPRITE_GIRL", +0x0e: "SPRITE_HIKER", +0x0f: "SPRITE_FOULARD_WOMAN", +0x10: "SPRITE_GENTLEMAN", +0x11: "SPRITE_DAISY", +0x12: "SPRITE_BIKER", +0x13: "SPRITE_SAILOR", +0x14: "SPRITE_COOK", +0x15: "SPRITE_BIKE_SHOP_GUY", +0x16: "SPRITE_MR_FUJI", +0x17: "SPRITE_GIOVANNI", +0x18: "SPRITE_ROCKET", +0x19: "SPRITE_MEDIUM", +0x1a: "SPRITE_WAITER", +0x1b: "SPRITE_ERIKA", +0x1c: "SPRITE_MOM_GEISHA", +0x1d: "SPRITE_BRUNETTE_GIRL", +0x1e: "SPRITE_LANCE", +0x1f: "SPRITE_OAK_SCIENTIST_AIDE", +0x20: "SPRITE_OAK_AIDE", +0x21: "SPRITE_ROCKER", +0x22: "SPRITE_SWIMMER", +0x23: "SPRITE_WHITE_PLAYER", +0x24: "SPRITE_GYM_HELPER", +0x25: "SPRITE_OLD_PERSON", +0x26: "SPRITE_MART_GUY", +0x27: "SPRITE_FISHER", +0x28: "SPRITE_OLD_MEDIUM_WOMAN", +0x29: "SPRITE_NURSE", +0x2a: "SPRITE_CABLE_CLUB_WOMAN", +0x2b: "SPRITE_MR_MASTERBALL", +0x2c: "SPRITE_LAPRAS_GIVER", +0x2d: "SPRITE_WARDEN", +0x2e: "SPRITE_SS_CAPTAIN", +0x2f: "SPRITE_FISHER2", +0x30: "SPRITE_BLACKBELT", +0x31: "SPRITE_GUARD", +0x32: "SPRITE_____NOT____USED____", +0x33: "SPRITE_MOM", +0x34: "SPRITE_BALDING_GUY", +0x35: "SPRITE_YOUNG_BOY", +0x36: "SPRITE_GAMEBOY_KID", +0x37: "SPRITE_GAMEBOY_KID_COPY", +0x38: "SPRITE_CLEFAIRY", +0x39: "SPRITE_AGATHA", +0x3a: "SPRITE_BRUNO", +0x3b: "SPRITE_LORELEI", +0x3c: "SPRITE_SEEL", +0x3d: "SPRITE_BALL", +0x3e: "SPRITE_OMANYTE", +0x3f: "SPRITE_BOULDER", +0x40: "SPRITE_PAPER_SHEET", +0x41: "SPRITE_BOOK_MAP_DEX", +0x42: "SPRITE_CLIPBOARD", +0x43: "SPRITE_SNORLAX", +0x44: "SPRITE_OLD_AMBER_COPY", +0x45: "SPRITE_OLD_AMBER", +0x46: "SPRITE_LYING_OLD_MAN_UNUSED_1", +0x47: "SPRITE_LYING_OLD_MAN_UNUSED_2", +0x48: "SPRITE_LYING_OLD_MAN", +} +dont_use = [0x32, 0x44, 0x46, 0x47, 0x37] +#sprites after 0x23 have only one image +#SPRITE_BIKE_SHOP_GUY only has 1 + icons = {} unique_icons = set() todo_sprites = {} @@ -111,8 +189,8 @@ def print_appearances(): icon = icons[icon_id] possible_name = "" - if icon_id in constants.keys(): - possible_name = " (sawakita suggests: " + constants[icon_id][0] + ")" + if icon_id in initial_icon_constants.keys(): + possible_name = " (sawakita suggests: " + initial_icon_constants[icon_id][0] + ")" output += "sprite " + hex(icon_id) + possible_name + ":\n" for appearance in icon: @@ -127,9 +205,9 @@ def insert_todo_sprites(): load_icons() counter = 1 for icon in unique_icons: - if icon not in constants: + if icon not in initial_icon_constants: todo_sprites[icon] = counter - constants[icon] = None + initial_icon_constants[icon] = None counter += 1 def sprite_name_cleaner(badname): @@ -148,8 +226,8 @@ def sprite_namer(): "makes up better constant names for each sprite" insert_todo_sprites() - for sprite_id in constants: - suggestions = constants[sprite_id] + for sprite_id in initial_icon_constants: + suggestions = initial_icon_constants[sprite_id] if suggestions == None: sprites[sprite_id] = "SPRITE_TODO_" + str(todo_sprites[sprite_id]) continue #next please @@ -161,6 +239,8 @@ def sprite_namer(): sprites[sprite_id] = result def sprite_printer(): + """prints out a list of sprite constants to put into constants.asm + it's deprecated- use the names from the current file instead.""" for key in sprites: line_length = len(sprites[key]) + len(" EQU $") + 2 @@ -173,9 +253,150 @@ def sprite_printer(): print sprites[key] + extra + " EQU $" + value -sprite_namer() +def parse_sprite_sheet_pointer_table(): + """parses the bytes making up the pointer table + first two bytes are the pointer + third byte is the number of bytes (1 * 4 tiles * 16 bytes each, or 3 * 4 tiles * 16 bytes per tile) + 1 = 1 pose + 3 = 3 poses, possibly 6 immediately after + $C0 or $40 + fourth byte is the rom bank + + so a quick estimation is that, if it has 3, and there's no other pointer that points to the one after the 3rd & next 3, then assume those next 3 are the 4th, 5th and 6th + """ + rom = extract_maps.rom + ptable_address = 0x17b27 #5:7b27 + ptable_pointers = [] + ptable_sheet_data = {} + + #load up pointers please + for sprite_id in sprite_constants.keys(): + pointer_offset = 0x17b27 + ((sprite_id -1) * 4) + pointer_byte1 = ord(rom[pointer_offset]) + pointer_byte2 = ord(rom[pointer_offset+1]) + partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) + bank = ord(rom[pointer_offset+3]) + pointer = extract_maps.calculate_pointer(partial_pointer, bank) + ptable_pointers.append(pointer) + + #72 sprite pointers, we're not using id=$32 + for sprite_id in sprite_constants.keys(): + sprite_name = sprite_constants[sprite_id] + + #some basic information about this sprite first + data_entry = {"sprite_id": sprite_id, "sprite_name": sprite_name} + + #calculate where it is in the 0x17b27 pointer table + pointer_offset = 0x17b27 + ((sprite_id -1) * 4) + data_entry["sprite_ptr_table_entry_address"] = pointer_offset + + #actual sprite pointer + pointer_byte1 = ord(rom[pointer_offset]) + pointer_byte2 = ord(rom[pointer_offset+1]) + partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) + bank = ord(rom[pointer_offset+3]) + pointer = extract_maps.calculate_pointer(partial_pointer, bank) + data_entry["pointer"] = pointer + data_entry["bank"] = bank + + byte_count = ord(rom[pointer_offset+2]) + data_entry["byte_count"] = byte_count + + has_more_text = "" + data_entry["poses"] = 1 + if byte_count == 0xc0: #has at least 3 poses + setter1, setter2, setter3 = False, False, False + data_entry["poses"] = 3 + #let's check if there's possibly more + if not ((byte_count + pointer) in ptable_pointers): #yep, probably (#4) + data_entry["poses"] += 1 + data_entry["byte_count"] += 64 + setter1 = True + if setter1 and not ((byte_count + pointer + 64) in ptable_pointers): #has another (#5) + data_entry["poses"] += 1 + data_entry["byte_count"] += 64 + setter2 = True + if setter2 and not ((byte_count + pointer + 64 + 64) in ptable_pointers): #has a #6 + data_entry["poses"] += 1 + data_entry["byte_count"] += 64 + setter3 = True + + print ("$%.2x " % (sprite_id)) + sprite_name + " has $%.2x bytes" % (byte_count) + " pointing to 0x%.x" % (pointer) + " bank is $%.2x" % (bank) + " with pose_count=" + str(data_entry["poses"]) + + ptable_sheet_data[sprite_id] = data_entry + return ptable_sheet_data + +def pretty_print_sheet_incbins(ptable_sheet_data): + """make things look less awful""" + output = "" + used_addresses = [] + + for sheet_id in ptable_sheet_data: + sheet_data = ptable_sheet_data[sheet_id] + name = sheet_data["sprite_name"].split("SPRITE_")[1].lower().title() + clean_name = name.replace("_", "") + address = sheet_data["pointer"] + byte_count = sheet_data["byte_count"] + + #if not (0x10000 <= address <= 0x12e7f): continue #skip + #if not (0x14180 <= address <= 0x17840): continue #skip + if address in used_addresses: continue #skip + used_addresses.append(address) + + output += clean_name + "Sprite: ; 0x%.x" % (address) + "\n" + #output += spacing + "INCBIN \"baserom.gbc\",$%.x,$%.x - $%.x" % (address, address + byte_count, address) + "\n" + output += spacing + "INCBIN \"gfx/sprites/" + name.lower() + ".2bpp\" ; was $%.x" % (address) + "\n" + + filename = "../gfx/sprites/" + name.lower() + ".2bpp" + #fh = open(filename, "w") + #fh.write(extract_maps.rom[address : address + byte_count]) + #fh.close() + + return output + +def pretty_print_sheet_data(ptable_sheet_data): + """make the pointer table not suck so much""" + output = "SpriteSheetPointerTable: ; 0x17b27\n" + used_addresses = [] + + for sheet_id in ptable_sheet_data: + sheet_data = ptable_sheet_data[sheet_id] + address = sheet_data["pointer"] + checker = False + for x in used_addresses: + if not checker and x[0] == address: + checker = True + clean_name = x[1] + + if not checker: + name = sheet_data["sprite_name"].split("SPRITE_")[1].lower().title() + clean_name = name.replace("_", "") + clean_name += "Sprite" + + byte_count = sheet_data["byte_count"] + if byte_count > 0x40: + byte_count = 0xc0 + + output += "\n\t; " + sprite_constants[sheet_data["sprite_id"]] + "\n" + output += spacing + "dw " + clean_name + "\n" + output += spacing + "db $%.2x ; byte count\n" % (byte_count) + output += spacing + "db BANK(" + clean_name + ")\n" + + used_addresses.append((address, clean_name)) + + output += "; 0x17c47" + return output + if __name__ == "__main__": + extract_maps.load_rom() + #extract_maps.load_map_pointers() + #extract_maps.read_all_map_headers() + + #sprite_namer() #load_icons() #print_appearances() - sprite_printer() - + #sprite_printer() + + ptable_sheet_data = parse_sprite_sheet_pointer_table() + print pretty_print_sheet_incbins(ptable_sheet_data) + print pretty_print_sheet_data(ptable_sheet_data) diff --git a/gfx/sprites/agatha.2bpp b/gfx/sprites/agatha.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..b4586c622005e7194e70bdfe8f111b1f90d402da GIT binary patch literal 384 zcmZQ(=HVBRSFl&J*SEAch%Y;Ez~BSN50*bq{(O=7!}BX|{)f2A{qJkD4D2n`Gk0^#%48c1SFi_i84esU_|Q?&QNi+u<&TBBy@I@eyZ}EBGc!m|=E)zH P9~?h8J{TN00OA7xsaFrX literal 0 HcmV?d00001 diff --git a/gfx/sprites/bike_shop_guy.2bpp b/gfx/sprites/bike_shop_guy.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..af7e2a6081fdce7dfb407b9f762a51dd4ca0d6e0 GIT binary patch literal 192 zcmZQ)mzTE(g8J(E!uq(n_y-Su{P+U||L*N#D-Su-?Dc&)P;_LSCMa?@LWh z&%aOmitgC_kofVVpnx5wza9wU>k<0@0l}|-zwC|eZR(@zBg`!2C@P+1dH|<>lq2?{vwWZ*I`9 zSFynxwfZ42Rw(F_c-1Sunv0o|GK!pk-YO^<1Uud;%yzRyA1c`7%^E+GyO=1)al6bGR*o;&D1>UIQ|8} C&cx3E literal 0 HcmV?d00001 diff --git a/gfx/sprites/bird.2bpp b/gfx/sprites/bird.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..0c5f846200105cc325b965bcb74e2a1edd94d68b GIT binary patch literal 384 zcmX}mKS;ws7>D66N&iV>F6v;FU?Ls56cQXXU}!QpI0#wYjGH)h>zKnuw+bS<*;QQJ z9GjtoZbfjf&_SW%H3W<$2Jaf}{nqd09suA3Ay>?mMKp&5N%I2ww1L()$T@KcT2W=) z(2eCvzCiB^M zs0@`ylNfl~BP6T!?Yiyx{q9lABSC<%6R`Dqn-iAEQu8L?Sc21pp{J(Mwg{J@j literal 0 HcmV?d00001 diff --git a/gfx/sprites/black_hair_boy_1.2bpp b/gfx/sprites/black_hair_boy_1.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..ae075c338fbf1c46696ab2f2b989a99c82819987 GIT binary patch literal 384 zcmY+i3Quz!f#;JT?$Y$oM_Vhb_X GjQs))!L%a) literal 0 HcmV?d00001 diff --git a/gfx/sprites/black_hair_boy_2.2bpp b/gfx/sprites/black_hair_boy_2.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..38269ae43f798cca3c978223b578eeecb413d435 GIT binary patch literal 384 zcmZQ(=I56O0(1ACq&R z_pNl{F(DdMqYrQgP)(5kC%^~jg_65`G>>AD|EJJ(2^40J46V50LePd;szl$Op3WD)z$iJUoA7 SfIdigpzuTD%bX{FBqRXWC$4h< literal 0 HcmV?d00001 diff --git a/gfx/sprites/blackbelt.2bpp b/gfx/sprites/blackbelt.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..d7166463efbe970476422323f39b50bf2c3afc80 GIT binary patch literal 384 zcmZ9|y-EW?6b0ask&HjX<m!^7;q^79x&b*eYGD0zx3^gj9k}3UOXz3m+nnkkZ0J ze1fg4EQYOya2awJ*^u@0-<&yDDPsU2$4f*%@nv0y5Mw-|L!z`uCEEKNKlUSw0Eo_! zetl0(I@1&*k#nl^mi^3+cV4sKqz13h`6vId^Pl9>Pde#)Zs&eDhvB{_iWTIiS}7?H zq~b^!@_HV=f(^Fjtk**HelQVY|An;hrGI{VL_E$iW6WTXO47@UCytgMtCisN{Oq6K u@b(u!y}m8@NB~)u8fq7OUo^kews*c;(Dy_z{9C}+yK8-{x&`Ejied|uAE@vE literal 0 HcmV?d00001 diff --git a/gfx/sprites/blue.2bpp b/gfx/sprites/blue.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..d81726416ab24599729608df977434a0dfb1950f GIT binary patch literal 384 zcmZQ(uBmsZSF$&;uZ^z{$PYSjz~BSN50^hj{`|B0$Mwz2-pJ0f-oM`4-cnpfP@a$P zk5A2tpP#q55_H+^L)O&+5+|n0}c3^78T`@*)uXS^lv6Y5B9G;)jR405=aiJ2Mcl zu(JT^4+1|jew_HB@k8Uo2ZaX*4lpnI0B|WFO?j*B66aFDJ>*!wuAL_Uq4?KQ{j^)lK?i1F{|2evl7f i_QQMt^b^vXMfc}Bt;P@E)1pWg40`C$30sRBNz~7*%)m3UjeI-8{ W9|s5d2lWf#A6Bjk{#5+9_~78t(jVdg literal 0 HcmV?d00001 diff --git a/gfx/sprites/brunette_girl.2bpp b/gfx/sprites/brunette_girl.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..b192fb249442777b89f0e8537d4dd5e678338621 GIT binary patch literal 384 zcmY+AF;2rk5Jgv6;WYv>QDVtOq6|utP+=+?;V={_IEEz-kn|M3LP|QWzyT;+rl6oq zLE(bJg(bF1R$}F4R~Ci;FQ$4Lz0W!H(S|5q(t>71AvelK>-t>>dWFOODTe8Mgy#U@ zdFpYqRaN@EQ<0Q1%Xses#yG}1a!sjtc$0gzS6|vS)fj?LvE%)gujD}2jvur<2XOym zTE=vPf&Mr&zozZcm{$zI7eaWvcVZ9c%~VEZnU$ZLtt@RA;~fLWx&}1E;r%VmCpba? zA@u6sK<%VtHeCbDcMZrHV3=Gx-t$tetbwYMYOh*e2)ACIuk+`1{=}Gisr8|8J(?dw aSG2%^RX>}A0Mn@y@ literal 0 HcmV?d00001 diff --git a/gfx/sprites/bruno.2bpp b/gfx/sprites/bruno.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..9381d755554ff2c9d55c283e749e253d837a89cf GIT binary patch literal 384 zcmWd@*0EQxH?()J)3>M($PYVkz~BSN50*bIf4o>Faue3Li7n2u&>2LY-q~?pv4+(hzZXS7Yc|m@DHgV+$PYSjz~BSN50*bIf4=$Bh>S1_--?$^IpKp%YiC-kSLp#h;E<^yE?ARhqz1onZvjJck$JRjc< Uj}HPL3O;=JG2_deFK;9y0P(An*#H0l literal 0 HcmV?d00001 diff --git a/gfx/sprites/cable_club_woman.2bpp b/gfx/sprites/cable_club_woman.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..5bbe54db6e62ced4ed5c710fe945f5432722c0fc GIT binary patch literal 192 zcmZQ(=HVBRSFl&ISGV=AnE&X&0fP@5KUn^_{CTqHliW}D{!e+8^5XI$^3weLocwHT zAN|Yb{dfU{H$Hrr@F5|A8LD5wUcug>zTrPiKg%DMKTQ7^|2O>4sFx83njjC+&-h>L zp9M(&4~Twtb`GHZ0`eO6cE<9e@*)QgC_E4Vx&Y(`rhkX*(oMfFc8 literal 0 HcmV?d00001 diff --git a/gfx/sprites/clefairy.2bpp b/gfx/sprites/clefairy.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..32e75d48b0af2ebc7f59b3ecc0aa4b43e4431668 GIT binary patch literal 384 zcmZQzU|?WouCJ-hvon?#v{wOg84euyXSc7c=FE?dKPvVL<(~H!)Fp!+HJTD|Bd`L(DsR!w=&$Bg_7qC?Z@j?3kmF+q6gJaJTdzCWJyQ^xm^i0L2 z!TMG5ChZR07gn<7#SNH#K0aAtdo_Ivc>#G5kp7yQKY#x8{NQ*Y@rOlT!PeMb!CnDm zKMy}M^FOx#s{fb%PyNdOO3vobfde4*$UcDZ5k9C-xxb*?Gd=-mf}Nl|AKyQ<->mN@ z{Q~;q2S>sOh-zdXAoN3gP@8;zNttJCmaUeaJxKq)W4~4NChZE_6H>9{#t)c&gbyGh g2p`Ccz1pw6ov&Z$fUv&A%lxcwd4Ta+EUX8p4ur{1BLbohIZ&ssylS@;6vmHIY5Te zDWebIL6{DrJVc+8A=zoLM-R9Zm^V3wxd?Qm{Wm!d%Q6JJAle`^-z5lXGJ z&N37qoge)d3YR+9G{up>G0$cZ@t6M3k8llPza;)@&kq>(6XM@vK3u0a8wNjhXBdX! zTCL6n=Lv;VlEkY1#eUn8#`gVY!&uaS3>b?Vkb$X9^SJ`h7c!HQb6=x)>+l!1?qR)V zl!&LMCpW8=~7T>LJ?}A^%Ut?+82<%L_-5;ueEJG?iWPHSpE!Jc+rJp z2qCn*T)mW8ClDNYS}Ucs&`SOGn}k-vJB}=<3>@dL0XDHSSxg^hbL`0i9*Mz*AM@4z zzvU|f%U1@nf4Cej8(0V7WtmHLy3Wm4mZhnD|95|QFsO;aI=S6Fm-%@5-Z2~V119X3 A#{d8T literal 0 HcmV?d00001 diff --git a/gfx/sprites/erika.2bpp b/gfx/sprites/erika.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..28bcd82b6a74138daec564244238479a0210b101 GIT binary patch literal 384 zcmY+Ap$@_@5QZC;P%)B{41$4`V6Y1YNXQO>)gPQp*7v;UZ16$fbA+d0c1%HVIx8Y0m@ z4Td5BsZW&p{(3Nvy3k9#K=dzku8;al&+{4Ion(_~xK9@{O@oNn2j6cRA>x9uK!~&e z4)q!KYwg$j{d70&&|SU*7a$5IEg1c=AZ+{hc~|he(N7Da-}47X^dc6hT(6WWOM3YN K#I5zeTvb1(u&5XS literal 0 HcmV?d00001 diff --git a/gfx/sprites/fat_bald_guy.2bpp b/gfx/sprites/fat_bald_guy.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..2e167caf483d96757b9a33830e16555817201256 GIT binary patch literal 384 zcmY+9y-LJD6h;HPGSQvQCK{|l#y`+P*(oiSokrARMZpIUe1eoILT;l^U}3ATAo~b5 zzD0^{>_VzRE_a;#5Ximt;X8-1nJauHA%O?DRIDL>wc} z*7%L9wcSrs$KJ4@=eq(W)w$T4H+L}wzbV*O@+Li2QG}s( MwYKA{DzAw1e@eET=>Px# literal 0 HcmV?d00001 diff --git a/gfx/sprites/fisher.2bpp b/gfx/sprites/fisher.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..c0d3042a2cb36c5fc680a5ebad46f69c6b3ab261 GIT binary patch literal 192 zcmZQ(=I4^N{%K0PlWlmQD2~2a$5Mhi6|KY3Cq> z)}%YSiy`8i2f?R@m5=Z8dkL#rYatxdXC|Bjz$r9sUzuo)h(B2HLukGB^4l1~SzkY6 zQYf8Z`jBE^hq`69U$5~R-!@k$y-$>qm(rKvaG048 zVn0|42(cdsHHa31M*DnvJ?V`mN3;8BXD(plpvZG#vMQMOmjY;7!COz=#Bj_R!@>x5 kx?{N7LRU#?`~L-mtO}Sv7s#oa0t7~61>z~`Cw;TU9|cafA^-pY literal 0 HcmV?d00001 diff --git a/gfx/sprites/foulard_woman.2bpp b/gfx/sprites/foulard_woman.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..d02dea02c69d995722178dfa1e18e48e3da5d2e5 GIT binary patch literal 384 zcmZQzU}xvx7nWDI*R{*9c)y8(;lTre4<~*+`Lm_wo7{Kb{!f0D_U88L^78WH@)G>~ zAN`Bw{dx1}$&VjDUi^^w@PPrWUqD{LUco-0{=t5TevTh3e^~yo{bT>z@ZY1}#@=2Z zrl0Y@&_A0$f4-pVmy_4Gw>6d*kQYJdZ~4>quf0}Ygr9?*ot+H`+1Xi`nGe=C{p})Xi|NHmv*S~Lncz*l< E03!3DWdHyG literal 0 HcmV?d00001 diff --git a/gfx/sprites/gambler.2bpp b/gfx/sprites/gambler.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..30b6e4200aad792e2ef77d8337ed6dde26154b92 GIT binary patch literal 384 zcmZ9Iv2KD;6oyeuA$sFsu$86_FgkR&qXWrta;0xTW8CY=hL6D`^f4G6J9cF3c*4-! zkdvDpG$zV_<}c^}e%JLT;Ku>#&-ZeRx~`jq0^_s#o7x?#=o!;8E3-Am5`d!O)V8*L zWg{VSZ~4uDAG3->#4<1QD{n$(+u82Qk4E0ZO!W=qp5macN&klOf5LlS@FEUo%98;2 z0N{DNH$IW6Otn7$cbvNhTgSOKKz%mIiyZOs1%TDXAZl3*hz9&-z>iUjfhHL9H%yMl=HpxU3!0NznH46>P>RoCe(7&c6f_MT=%A_3KO7*N AZ~y=R literal 0 HcmV?d00001 diff --git a/gfx/sprites/gameboy_kid.2bpp b/gfx/sprites/gameboy_kid.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..ec1facf431a4ae743d11b88d34656b17f8004929 GIT binary patch literal 192 zcmZQ(=I56O0(Dp-%^Z1QRQrFNK(!wLJl_RCLZ(AFT$(f;ZpD8--{JqIY|=$zlv>3mEDrI>TITu2hUzxBe|s=dpb+s2fM@IM zb79Lh6VZ>>2Y&QA(UI$+f^u@FCMGe7I{MKsk8EWt{>S%+*mJ#4K4I??F3!*Dc%JM? z`J5Kr{HeYg7h|G47s73@iiL1L%r_=9i}!dMAl7#s&$A)Vmf6RWzv*kc6?I&%lT#0s rj$U8PW7EF%P&NyQc*nam{piA&1qf| zoT#2WK8h3n>?`$Rec_(H_u6YB=R}-+gOv9Tu*PQbWGVoqRA0(ab2eJ@h(G9kxlGrG z1}XpYodJ%q!D;%w<5!&VFxqW+V{N)_`JF+^J3bk}pfxy$+e?5vFR3*k%WuqO`2(qS Bou&W) literal 0 HcmV?d00001 diff --git a/gfx/sprites/girl.2bpp b/gfx/sprites/girl.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..c53c67fb3ba4c7567f407b28c98331a2998aedff GIT binary patch literal 384 zcmY+9F-yZh7>17~%d>SVzDhc0d%gwjzsg#H8vhvM&W5RBm9 z?BEF{kD6da64)@>4{&-GYE06q!a#RT!y@tX#W{Tp=5P2D)H4ZIHbx$k+; P`mFw_jlny*rAx#=L#vd^ literal 0 HcmV?d00001 diff --git a/gfx/sprites/guard.2bpp b/gfx/sprites/guard.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..2ec9b91867682b198214f18a39fc8b4566d79968 GIT binary patch literal 192 zcmXwyAr8Vo5JeLNG*H-zCJhPM5nP}ss+gvR1cAU{>+q;WO^<;h9Ho+DtRjRUR*sl# z*d^h~|NqNZ3N+{pD#SG%sBw-Bn}io4AHVYrmU@nOqRSo?fYy?ltH{&e&f=JjQ6Y_B zz#OR#{tpT0w;x~`J0e3ER?%k`@m_lgyPsb`vBWKHR**yf_n8xZ@T-Dsk}9QU)A48+ Rzg*eZ*4p;o+P3ez?hBIYTD|}P literal 0 HcmV?d00001 diff --git a/gfx/sprites/gym_helper.2bpp b/gfx/sprites/gym_helper.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..043ef767e42999bcf0a2d810a73c6b071d8bcc89 GIT binary patch literal 192 zcmZQ)=jWG~m6xzrv$w1dt9N+t;KPR>JAO#~N%=G9U)Db+Jwtg3TQz%iX*qd$ettf_ zlAa$Dds6;9iTLs3$A=FE1?(XGKwu99`SGRxVEsV3KS1#9SKKFi18EtMoCrvfJRjd5 zo*Nb*ISrtiA3xyw#pML$W#onBWf1!J)cpDLBSKz)n};0;m_P(OGxG<52MG@zJWv2a IAUJRU0JwZtC;$Ke literal 0 HcmV?d00001 diff --git a/gfx/sprites/hiker.2bpp b/gfx/sprites/hiker.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..963f2730a0b029205891ec9cefa8e1a90a944e8c GIT binary patch literal 384 zcmY+9u}T9$5I`3}HpYWJgODHx+orI%fTi5nc_;`;V&4ea4S2@Ah;)1$>vHt~054!sNrmxQcq!dDpF`9o| z&hXa08Z#QL{JLP}*98zmcX+K%bqc^aV;GSCoxHmy{?ILE>Hif}epS%!R0T3B|3~#X LwJFWCwDbHI)+Dql literal 0 HcmV?d00001 diff --git a/gfx/sprites/lance.2bpp b/gfx/sprites/lance.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..12fc0c187c1777a060d5491e37f9544d16a104d1 GIT binary patch literal 384 zcmY+9u}T9$5QY~HT+nbiCB+q*0ZS{b4vE}079kMCU}Kd>$dwA=rWYUK(08!9GEbnb z#UXis6pKZ&9^!OXQvAXW;|x-|UC#D3%7JA49%a0ETAiTuXl zWFE>PLsStrEqC^=YY7yHwHLWi8a1EB0v~&O)EO)+D-DmZ}E+R5W5D@`!_i0tJL%5 OP)8Q|i(jZ9isL`xyTK=4QAAJ;#oZ&~&Rc9!-2mHswBHS+R&e1CXq z=KT9K?~~0Rkg9?LW|)5a`uKYP{CK$jKmUIH`}FOXy}7+beSAT@1x)`Npvk}Ze#xNe zmlc*5079{bh6fKIF4$4=L*fHajGKp@orRs1ot>Q@2tEWXNC2t$U;u<49y|a5I~iSa literal 0 HcmV?d00001 diff --git a/gfx/sprites/lass.2bpp b/gfx/sprites/lass.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..17c6687a566223ad3c66403e39a6a488b28e4f56 GIT binary patch literal 384 zcmY+Aze~eF6o4Dzy=;O5_6ETjjMHh}@%thc_627}#yn3^(ptVy+Ok1X0qKXm?$8#Jwpb z{v$WIn24jfuW1HpIOjLF_jR}FLNyHiQ6sh{t3vWDV0+!jVw_7zK0@BaxZ9$XMgwm^ zX%HZ!D2oLMQMy<_bfTZu!A<7p{`QvzjQbWRaub7cnOZ1K*-DV Pefo73P}*X>kVVlir;ClZ literal 0 HcmV?d00001 diff --git a/gfx/sprites/little_girl.2bpp b/gfx/sprites/little_girl.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..56d6b7eb770c6c69c9d6a5ee90f35418c498056e GIT binary patch literal 384 zcmZQzU|?Wo=I56O0()C~10a{-z=01RegMIrJ%4!YmF$iDJY}cvT`nNc&&kI2$K{Vt z(WD(O_dezL@nJ$j0!TevzrDRZh!5BQ=g%K|eS2en50HKdi2f&k&U_LA>6bv$57cZe zFMzIJUPNAmpM#y9m5rH+ot2sS&zv6;KP*n1SdcQMkQ z$>|;aVE6Mtd@$o><;f2pAgYn{gWZqp1E8ybKB&)-hUx$F=L^UOH(uI4{qX};Kgb7Y e_WzL=fcSu)UsjBtiBASU;zL@p_KUm literal 0 HcmV?d00001 diff --git a/gfx/sprites/lorelei.2bpp b/gfx/sprites/lorelei.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..e21a1c8178ab00af5c6735bea13c4f0282485208 GIT binary patch literal 384 zcmY+9A#=h&5QR@Lfd`nTX=y)c(^Ow|PDjeb2*8Ce0McnV+?PZy z+!0x)H1#h109z|ia6T)`Y0$Lh#Azgah{7bi_RGDdsLt#E{tTY+{qS*EVm!xHQLIhi zZgeg!2KTeEyc1H4g_Hn4ma^|=*ZgkH+L)qXtXps;VC1Bf!9-g&+R_ literal 0 HcmV?d00001 diff --git a/gfx/sprites/mart_guy.2bpp b/gfx/sprites/mart_guy.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..02867e1dfdab2a213cc8610f817fc953ecaf0865 GIT binary patch literal 192 zcmZQ(=I56O0(*n{uzJt@$O8vHeE4zW$BaKb|FZr~`Zmkn%+9jjztZ2vUR+*Ko{#TO zPR*QupXPnC`SapO$B%*nW|)5a`uKYP{9v&DA3uKl`Sb7Bzfa#z*&Enf)W;XZ8`uj& z^z;0Y`S*+O7tfy)VEyduQ2UMTZRCaIg&sTr+7H(M=g%LTKQ{6*+&t_+z|73b&cV;l W{=?!!!G#Y2A3hj7P1pw6vlC5i&_v9DGFrF^VVb7TfJq=7L++d5{N0?-s1E40G%>+${9-O0ZfJ> zgm_f86KtdTulN0;C}x6#%+l-?3*26>-)SQacg+2gq5~GkoxbQ2OIW5E0IBy+d$Tpw z=8HLFqM=VQ$9&W?3Ms_=yxHpw;u&Puhx7Z3y%Wt1ANL?(4GUO3`)&bq706j41Sn7< z;UbP*^?0t4+%!!Pj23u75IleA1-QlHq;=^9m+t<7)StDr7u?$Wlimv^y%)5mR`7=S c(eI~D@I$no_Pt=}djYHlK{DQ7IoIz02R7iDOaK4? literal 0 HcmV?d00001 diff --git a/gfx/sprites/mom.2bpp b/gfx/sprites/mom.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..99699a517a888115da280583d9ebf57f9be97274 GIT binary patch literal 192 zcmZQ(=I56O0(*OF8*_{Lqyq;&eE9KW$B&vlcWmCs{Bx@>s;jIow^6s(5SHQQVQ2s6 zS2yq9JDVqeL{3;-FnI8Q8Khqhq#p$8>%saf{y@RMfAv6MZ*Qe5C?_P#!4K3A1b_a- zZ0V@**dg!%svl^-xwWmay@|XCSpNx#c92?mL2h1lc6K&)79h#O%nZ`~=g*H5SJtrn Jk@)f80RZ#ZTv`AC literal 0 HcmV?d00001 diff --git a/gfx/sprites/mom_geisha.2bpp b/gfx/sprites/mom_geisha.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..4673e53d778e6be5e5249de032b99075fcb74cac GIT binary patch literal 384 zcmbV|F-`(e5QY<$R-#C{?-nS1thS%mLu5d5w@f->=n3ySFoh8-~bku78Fxb zSiFMhL?>^Z&EA0diz)uhKi>>dk^ntS=YE1Ny38Sn>}B_?eObt&eP({okNl0Fp%3J1 z^Y?ntRA({~A!;WBTx04pKeQm`JZ$7scKW7E3rbpm9~Fu*7_;S7oTX47bcr{9%t|tA8<9wlDwy literal 0 HcmV?d00001 diff --git a/gfx/sprites/mr_fuji.2bpp b/gfx/sprites/mr_fuji.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..94df75fc7c79aebc5cdf0a924d06ce8ce91b7ac9 GIT binary patch literal 384 zcmZ{fKTE?v7{=)zyjX*mKn90$7wM9%5eHk)TyPYm#l_7yxHsTZrC$0G@&SS$!pSjX z2a$e+3>`!qj#A1IUV;}*1_z&K{yp#SZ8Xr1zDEt`BpOHlcO~jZ%hm0}MH^~csEC4i_06?SS`>x{ELd|b<#j6G82GeUkx@X5-#d{v;Ir-%4 zcX%5pel}~h+6ZeV@eY}->ZECAhq2V4t$GI*v*`gbF-8chAOzO*<5hN7$*MFEqQ3vX z|L7s$j8SS(LNNw?{hV_EDF@OOXR~G|I6njul!3Mq1}CA_D-M9 mBVSeVsh`=xkecd3I+5=ko%IMUQ+^;Fu?&Tsg|Uc3k!9bFo1Az6 literal 0 HcmV?d00001 diff --git a/gfx/sprites/mr_masterball.2bpp b/gfx/sprites/mr_masterball.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..0d416a13e3cda21382990a4f6726508f8589ee9a GIT binary patch literal 192 zcmZQ)=jRZYus5r(%#W;hvon0~;Df*mi9b32=6##>FR7-dzT*G?Lk0aPVS%F z|DW|g|NZ*|0$(aB*n#@x1?=tX>+9p|{p}4v`hRfz`Sb7JzhD18{oyIE_`m=EeuVya za{vGS|BKMi%*@ULG(kpQNM0C73PAPS{HXz&FY-r(n}?m9n_nIX`1$#{+1Y<^eE9I= O#}A7i79T!500IEfzF}Vg literal 0 HcmV?d00001 diff --git a/gfx/sprites/nurse.2bpp b/gfx/sprites/nurse.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..033dcb37d4f7549e6928ec32692f0c2265ac3aea GIT binary patch literal 192 zcmZQ)=irwVSF={P(YNp~iZ6QbV8Vxp7f)iI*nE-s_ zJ^J_Q-jh8qDn0_8I)c!|CojOw!_F=z cYpX0T57Ph0?oeIRzaxKs{CM!-!-s|j05hagr~m)} literal 0 HcmV?d00001 diff --git a/gfx/sprites/oak.2bpp b/gfx/sprites/oak.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..c4f817c13c2745d0e08af2a748782c57fbc22121 GIT binary patch literal 384 zcmY+X6VokLZ)!&BhRE*Z13hTcOOES0qd~E^tSCCJM}P(D2{QHD<2i_F|IM) zI~Vuj#=Br;0Mq1(cPA#|#e3sVh^|YBCIbb^bpOP+96Jno5oMIQlB^{8xKcgvTR#t? z=Qpa;e(;)%l z5xqw`?%^|H5J(bP5J=LZz^P{f|I{qAT>wJj8dom6$+tV=qv5dA$@+Og*3SzZI~AO@ uub2+B1ez9CrhNs9s~%mjxFKvnxzM588-`E9z~Fn$4j_M#F1 literal 0 HcmV?d00001 diff --git a/gfx/sprites/oak_aide.2bpp b/gfx/sprites/oak_aide.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..a2195ad5d0b97a4ed1c72e4e7f252b6beafdb522 GIT binary patch literal 384 zcmY+9u}T9$5QY~{SxPs;VB+G|OikiCH73u6C_h*m2vIfYrTXbLMTEmB zj3Ox)BX7XJ{6QC!iEybJ{PSxAeXSq$4W5Bo@%D?~xn)1?9=H6u5LE*qss>PB89)P@ R-k&lP(;a#6P6K|5SIXQ84es!cyPg>qoSiig%1-x+^Dem^5@BqAIvcQ3ib-|3HAzb{Vac2ezE;wkr&|S;pXS!my(C+|6p+8 zL%@fKA87h@?2YXW9;Ddq1i60yyZ@y*yoAhm#y_vmbd|iCKy}f|ErM;cq zpPWB)e%1Z@_va7Ck2!y8YM7z=^$qF+fY1S^{|nDQE+AyGH;AtYuk$aqH;35hYtYt2~fiT literal 0 HcmV?d00001 diff --git a/gfx/sprites/omanyte.2bpp b/gfx/sprites/omanyte.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..1d280a106077c20dbbcc7c0a48bf6bb766344ad0 GIT binary patch literal 64 zcmV-G0KfkL00##j7(O8jH+4>WO;33M0KmX-u=of-yqx5`MEpc&UVcFzBR?b_9R&^p W2LJ%fbfnyHh`2~lu;5^TfB*oE0TvDb literal 0 HcmV?d00001 diff --git a/gfx/sprites/paper_sheet.2bpp b/gfx/sprites/paper_sheet.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..dc2a72abb9ecf0b07effcd2323c8e1419e1da66a GIT binary patch literal 64 zcmZQzu(!8YFwnPGFwzBK28JI$esD;<_`xwF1BC4r4E5|4lx?h3rA7GpfwCMCD}Hc5 KWPki%U;qGFgcQL5 literal 0 HcmV?d00001 diff --git a/gfx/sprites/red.2bpp b/gfx/sprites/red.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..e550d7ad6c54ec3271d5fa6ac792ad048530d60a GIT binary patch literal 384 zcmYk&ze>YE9Ki8_g^O)SA{MP!JO>}ZKSNV`_=C6>($&SRj-@(O4c_V_WC(qRK0?P1 zeS{(z95OhB(BUXQ4)2Ud{Vg|re|MiF#P)pZ(*c7XAMr5H{n8e;STp>VO&P-VZJ$Rx z>cbH|pstIW%?CRdI5*(|3s<QpFcy{;S6Dz|9CD=%#!4$JDX*}g5Vz$MuDFlj3kW5J zg`aQ*h2@4&Y{+Eea%V!ADJGN5%gh_7f~b38yVs(7^)icL1-Y;L>*<{D?9(!)=y9M% zYBZoLY+@-wqryUloF<|awN@v?zF`V^^WH9YXqkExqFOM77}6j5J|)tKn|pXbo- z?VkC! ki|qh~!C9{~aQuk@c1i=pTWY)inbZV2(b}ZDY{NnD2m8v1a{vGU literal 0 HcmV?d00001 diff --git a/gfx/sprites/rocket.2bpp b/gfx/sprites/rocket.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..4086866be4f33d1c6651b425ca21639a13823191 GIT binary patch literal 384 zcmY+Av5LY#5QZ00EU1_i7IymzVk5_i1F3~vdm!i|1hMnDd5si#2p_@nihBf$eE^Fg zSS(=}oK-OK+isbEX1;L_02KgO;1}j0FpI*>R~bkS^VJ6ySO7R>Jm&RJEsZqHK`BdX z-Kzs`vGBg@Agweo`&{b(_LU!9mipgz`80iY(29wh^z&L%xokMHHc_mSB$W9b5zX|G z_vf=Q-TY`^OgBFoV2=CW?>IeGtd*SChnjEvAO21!qr4j!)89Z^buW*bUcTXI@VG#n d9`k*J_dK&YJq+TO@qVGAj7p+Vam_rP-T|0&!;Js{ literal 0 HcmV?d00001 diff --git a/gfx/sprites/sailor.2bpp b/gfx/sprites/sailor.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..90e39f5eb53961ac05f424d17c4bab5d68fe9b73 GIT binary patch literal 384 zcmY+=u}T9$5C-6bEA}KyZb6GH4kv+BR)>v&hy(WmX>0;QUg5w(g>ds4R|NAY$pcu3 zRSJtMQi@rEkWH8@?kVTRf9r2%{}Cbx6)5N$Fga~mfJPC!cDa*;!jqdSk zx%6CWpI{&JapNV&obPE!_jHE?h{IpM;TOKPZ}yV8+Ftv*LE~e$gxOu~rvX3@Pu=}Y OQ8m!o6kpR7N6|OUexO4D literal 0 HcmV?d00001 diff --git a/gfx/sprites/seel.2bpp b/gfx/sprites/seel.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..4dcb9600cf7322b704c2fac87b249598a7a2940b GIT binary patch literal 384 zcmZQzU|Id*elcr)Cc@;0P%q)G#qevr2Jj)0#X z%g9{$!}YK8zu!NJA0~f}{IRg$;gJ`X5f+eFuurN#x4+>(14BbY#gCdJH7yn=1U@J{ zs42J8l$U2_VrF7w1Yv^@9zWXt9j#wkKkt*wp9c>Z7+@{{`QQOqKf(v>|L6Ye{~caq zY;SG>asSTxkN02Mo%!=Z;)lhD4-7y6(+~2&!+#+AA^Jf+Xs@61zx#h+y^+0vJ;eQ% z|1bXU`see9HhouRE&y-&T5y_LMMygVOY zP0yZ~e@6d|{>1z^@#9B90YASy7#INc7sMC%fB5hN40wS0`F`CWX~6w ze_sFm>L&gB#KQwt3M2&J`WYA`fDoi#1gKxZUctT~zQW($ygmY?pXCqBAHH95pZ>i0 zCxxv4F!K?h{XG0I^F9Feg4D{3#|y}d0HK7vioLpo1k0b6KTrPrnDIg2fx>|U5Y-Mq z3gUVpxceVG5ct6L!{Z0k^-gw%5cfk}?^M%MFyX-ikp2W9gy;{D2l=0YfeDB~`Z<0e zyPuzfot=RJyZf1$Q`j?ruIJ|l>1SYoxxVQiKZiaSKNmj-3p+D2Naj%8r@B8rKR7-V Le39wJX5DJ_D9 z4b0fLC-!aZ$9bZOd5xcKa^Ii$Ndp>6UIH zgk!CFG|QM@Chq-|ZJwt7FOL#RX#B^s#8s}uOEl9YO$!}B*X{rO)?k-s7N?B?z&Rd));6mR Ma%;2o{ENfz2m9ors{jB1 literal 0 HcmV?d00001 diff --git a/gfx/sprites/warden.2bpp b/gfx/sprites/warden.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..9764383b525ddb31042d60bc0c8442cfff63598c GIT binary patch literal 192 zcmZQ)=jRZYus5qO$PcP_urqw{;Df*mi9b32_`Z4lW2)(?ulPUx|HS$lV|yKYV|_Wf ze{%m{{_p%}cjk}DpEF-7D%gSg+9>|>;3HwK>B}h{Q2|m-@jk~KKz5ai j7vbk%XJ=(&W@2Y$X8tqhhr|bi0|yo)EJ%2;;J^U@@v29T literal 0 HcmV?d00001 diff --git a/main.asm b/main.asm index 4b3a2c485..9b78cc52f 100644 --- a/main.asm +++ b/main.asm @@ -13640,7 +13640,62 @@ UnnamedText_fc45: ; 0xfc45 SECTION "bank4",DATA,BANK[$4] -INCBIN "baserom.gbc",$10000,$12e7f - $10000 +OakAideSprite: ; 0x10000 + INCBIN "gfx/sprites/oak_aide.2bpp" ; was $10000 +RockerSprite: ; 0x10180 + INCBIN "gfx/sprites/rocker.2bpp" ; was $10180 +SwimmerSprite: ; 0x10300 + INCBIN "gfx/sprites/swimmer.2bpp" ; was $10300 +WhitePlayerSprite: ; 0x10480 + INCBIN "gfx/sprites/white_player.2bpp" ; was $10480 +GymHelperSprite: ; 0x10540 + INCBIN "gfx/sprites/gym_helper.2bpp" ; was $10540 +OldPersonSprite: ; 0x10600 + INCBIN "gfx/sprites/old_person.2bpp" ; was $10600 +MartGuySprite: ; 0x106c0 + INCBIN "gfx/sprites/mart_guy.2bpp" ; was $106c0 +FisherSprite: ; 0x10780 + INCBIN "gfx/sprites/fisher.2bpp" ; was $10780 +OldMediumWomanSprite: ; 0x10840 + INCBIN "gfx/sprites/old_medium_woman.2bpp" ; was $10840 +NurseSprite: ; 0x10900 + INCBIN "gfx/sprites/nurse.2bpp" ; was $10900 +CableClubWomanSprite: ; 0x109c0 + INCBIN "gfx/sprites/cable_club_woman.2bpp" ; was $109c0 +MrMasterballSprite: ; 0x10a80 + INCBIN "gfx/sprites/mr_masterball.2bpp" ; was $10a80 +LaprasGiverSprite: ; 0x10b40 + INCBIN "gfx/sprites/lapras_giver.2bpp" ; was $10b40 +WardenSprite: ; 0x10c00 + INCBIN "gfx/sprites/warden.2bpp" ; was $10c00 +SsCaptainSprite: ; 0x10cc0 + INCBIN "gfx/sprites/ss_captain.2bpp" ; was $10cc0 +Fisher2Sprite: ; 0x10d80 + INCBIN "gfx/sprites/fisher2.2bpp" ; was $10d80 +BlackbeltSprite: ; 0x10f00 + INCBIN "gfx/sprites/blackbelt.2bpp" ; was $10f00 +GuardSprite: ; 0x11080 + INCBIN "gfx/sprites/guard.2bpp" ; was $11080 +BallSprite: ; 0x11140 + INCBIN "gfx/sprites/ball.2bpp" ; was $11140 +OmanyteSprite: ; 0x11180 + INCBIN "gfx/sprites/omanyte.2bpp" ; was $11180 +BoulderSprite: ; 0x111c0 + INCBIN "gfx/sprites/boulder.2bpp" ; was $111c0 +PaperSheetSprite: ; 0x11200 + INCBIN "gfx/sprites/paper_sheet.2bpp" ; was $11200 +BookMapDexSprite: ; 0x11240 + INCBIN "gfx/sprites/book_map_dex.2bpp" ; was $11240 +ClipboardSprite: ; 0x11280 + INCBIN "gfx/sprites/clipboard.2bpp" ; was $11280 +SnorlaxSprite: ; 0x112c0 + INCBIN "gfx/sprites/snorlax.2bpp" ; was $112c0 +OldAmberSprite: ; 0x11300 + INCBIN "gfx/sprites/old_amber.2bpp" ; was $11300 +LyingOldManSprite: ; 0x11340 + INCBIN "gfx/sprites/lying_old_man.2bpp" ; was $11340 + +INCBIN "baserom.gbc",$11380,$12e7f - $11380 UnnamedText_12e7f: ; 0x12e7f TX_FAR _UnnamedText_12e7f @@ -13871,7 +13926,452 @@ GenRandom_: ; 7A8F SECTION "bank5",DATA,BANK[$5] -INCBIN "baserom.gbc",$14000,$17e1d - $14000 +INCBIN "baserom.gbc",$14000,$14180 - $14000 + +RedSprite: ; 0x14180 + INCBIN "gfx/sprites/red.2bpp" ; was $14180 +BlueSprite: ; 0x14300 + INCBIN "gfx/sprites/blue.2bpp" ; was $14300 +OakSprite: ; 0x14480 + INCBIN "gfx/sprites/oak.2bpp" ; was $14480 +BugCatcherSprite: ; 0x14600 + INCBIN "gfx/sprites/bug_catcher.2bpp" ; was $14600 +SlowbroSprite: ; 0x14780 + INCBIN "gfx/sprites/slowbro.2bpp" ; was $14780 +LassSprite: ; 0x14900 + INCBIN "gfx/sprites/lass.2bpp" ; was $14900 +BlackHairBoy1Sprite: ; 0x14a80 + INCBIN "gfx/sprites/black_hair_boy_1.2bpp" ; was $14a80 +LittleGirlSprite: ; 0x14c00 + INCBIN "gfx/sprites/little_girl.2bpp" ; was $14c00 +BirdSprite: ; 0x14d80 + INCBIN "gfx/sprites/bird.2bpp" ; was $14d80 +FatBaldGuySprite: ; 0x14f00 + INCBIN "gfx/sprites/fat_bald_guy.2bpp" ; was $14f00 +GamblerSprite: ; 0x15080 + INCBIN "gfx/sprites/gambler.2bpp" ; was $15080 +BlackHairBoy2Sprite: ; 0x15200 + INCBIN "gfx/sprites/black_hair_boy_2.2bpp" ; was $15200 +GirlSprite: ; 0x15380 + INCBIN "gfx/sprites/girl.2bpp" ; was $15380 +HikerSprite: ; 0x15500 + INCBIN "gfx/sprites/hiker.2bpp" ; was $15500 +FoulardWomanSprite: ; 0x15680 + INCBIN "gfx/sprites/foulard_woman.2bpp" ; was $15680 +GentlemanSprite: ; 0x15800 + INCBIN "gfx/sprites/gentleman.2bpp" ; was $15800 +DaisySprite: ; 0x15980 + INCBIN "gfx/sprites/daisy.2bpp" ; was $15980 +BikerSprite: ; 0x15b00 + INCBIN "gfx/sprites/biker.2bpp" ; was $15b00 +SailorSprite: ; 0x15c80 + INCBIN "gfx/sprites/sailor.2bpp" ; was $15c80 +CookSprite: ; 0x15e00 + INCBIN "gfx/sprites/cook.2bpp" ; was $15e00 +BikeShopGuySprite: ; 0x15f80 + INCBIN "gfx/sprites/bike_shop_guy.2bpp" ; was $15f80 +MrFujiSprite: ; 0x16040 + INCBIN "gfx/sprites/mr_fuji.2bpp" ; was $16040 +GiovanniSprite: ; 0x161c0 + INCBIN "gfx/sprites/giovanni.2bpp" ; was $161c0 +RocketSprite: ; 0x16340 + INCBIN "gfx/sprites/rocket.2bpp" ; was $16340 +MediumSprite: ; 0x164c0 + INCBIN "gfx/sprites/medium.2bpp" ; was $164c0 +WaiterSprite: ; 0x16640 + INCBIN "gfx/sprites/waiter.2bpp" ; was $16640 +ErikaSprite: ; 0x167c0 + INCBIN "gfx/sprites/erika.2bpp" ; was $167c0 +MomGeishaSprite: ; 0x16940 + INCBIN "gfx/sprites/mom_geisha.2bpp" ; was $16940 +BrunetteGirlSprite: ; 0x16ac0 + INCBIN "gfx/sprites/brunette_girl.2bpp" ; was $16ac0 +LanceSprite: ; 0x16c40 + INCBIN "gfx/sprites/lance.2bpp" ; was $16c40 +MomSprite: ; 0x16dc0 + INCBIN "gfx/sprites/mom.2bpp" ; was $16dc0 +BaldingGuySprite: ; 0x16e80 + INCBIN "gfx/sprites/balding_guy.2bpp" ; was $16e80 +YoungBoySprite: ; 0x16f40 + INCBIN "gfx/sprites/young_boy.2bpp" ; was $16f40 +GameboyKidSprite: ; 0x17000 + INCBIN "gfx/sprites/gameboy_kid.2bpp" ; was $17000 +ClefairySprite: ; 0x170c0 + INCBIN "gfx/sprites/clefairy.2bpp" ; was $170c0 +AgathaSprite: ; 0x17240 + INCBIN "gfx/sprites/agatha.2bpp" ; was $17240 +BrunoSprite: ; 0x173c0 + INCBIN "gfx/sprites/bruno.2bpp" ; was $173c0 +LoreleiSprite: ; 0x17540 + INCBIN "gfx/sprites/lorelei.2bpp" ; was $17540 +SeelSprite: ; 0x176c0 + INCBIN "gfx/sprites/seel.2bpp" ; was $176c0 + +INCBIN "baserom.gbc",$17840,$17b27 - $17840 + +SpriteSheetPointerTable: ; 0x17b27 + ; SPRITE_RED + dw RedSprite + db $c0 ; byte count + db BANK(RedSprite) + + ; SPRITE_BLUE + dw BlueSprite + db $c0 ; byte count + db BANK(BlueSprite) + + ; SPRITE_OAK + dw OakSprite + db $c0 ; byte count + db BANK(OakSprite) + + ; SPRITE_BUG_CATCHER + dw BugCatcherSprite + db $c0 ; byte count + db BANK(BugCatcherSprite) + + ; SPRITE_SLOWBRO + dw SlowbroSprite + db $c0 ; byte count + db BANK(SlowbroSprite) + + ; SPRITE_LASS + dw LassSprite + db $c0 ; byte count + db BANK(LassSprite) + + ; SPRITE_BLACK_HAIR_BOY_1 + dw BlackHairBoy1Sprite + db $c0 ; byte count + db BANK(BlackHairBoy1Sprite) + + ; SPRITE_LITTLE_GIRL + dw LittleGirlSprite + db $c0 ; byte count + db BANK(LittleGirlSprite) + + ; SPRITE_BIRD + dw BirdSprite + db $c0 ; byte count + db BANK(BirdSprite) + + ; SPRITE_FAT_BALD_GUY + dw FatBaldGuySprite + db $c0 ; byte count + db BANK(FatBaldGuySprite) + + ; SPRITE_GAMBLER + dw GamblerSprite + db $c0 ; byte count + db BANK(GamblerSprite) + + ; SPRITE_BLACK_HAIR_BOY_2 + dw BlackHairBoy2Sprite + db $c0 ; byte count + db BANK(BlackHairBoy2Sprite) + + ; SPRITE_GIRL + dw GirlSprite + db $c0 ; byte count + db BANK(GirlSprite) + + ; SPRITE_HIKER + dw HikerSprite + db $c0 ; byte count + db BANK(HikerSprite) + + ; SPRITE_FOULARD_WOMAN + dw FoulardWomanSprite + db $c0 ; byte count + db BANK(FoulardWomanSprite) + + ; SPRITE_GENTLEMAN + dw GentlemanSprite + db $c0 ; byte count + db BANK(GentlemanSprite) + + ; SPRITE_DAISY + dw DaisySprite + db $c0 ; byte count + db BANK(DaisySprite) + + ; SPRITE_BIKER + dw BikerSprite + db $c0 ; byte count + db BANK(BikerSprite) + + ; SPRITE_SAILOR + dw SailorSprite + db $c0 ; byte count + db BANK(SailorSprite) + + ; SPRITE_COOK + dw CookSprite + db $c0 ; byte count + db BANK(CookSprite) + + ; SPRITE_BIKE_SHOP_GUY + dw BikeShopGuySprite + db $c0 ; byte count + db BANK(BikeShopGuySprite) + + ; SPRITE_MR_FUJI + dw MrFujiSprite + db $c0 ; byte count + db BANK(MrFujiSprite) + + ; SPRITE_GIOVANNI + dw GiovanniSprite + db $c0 ; byte count + db BANK(GiovanniSprite) + + ; SPRITE_ROCKET + dw RocketSprite + db $c0 ; byte count + db BANK(RocketSprite) + + ; SPRITE_MEDIUM + dw MediumSprite + db $c0 ; byte count + db BANK(MediumSprite) + + ; SPRITE_WAITER + dw WaiterSprite + db $c0 ; byte count + db BANK(WaiterSprite) + + ; SPRITE_ERIKA + dw ErikaSprite + db $c0 ; byte count + db BANK(ErikaSprite) + + ; SPRITE_MOM_GEISHA + dw MomGeishaSprite + db $c0 ; byte count + db BANK(MomGeishaSprite) + + ; SPRITE_BRUNETTE_GIRL + dw BrunetteGirlSprite + db $c0 ; byte count + db BANK(BrunetteGirlSprite) + + ; SPRITE_LANCE + dw LanceSprite + db $c0 ; byte count + db BANK(LanceSprite) + + ; SPRITE_OAK_SCIENTIST_AIDE + dw OakAideSprite + db $c0 ; byte count + db BANK(OakAideSprite) + + ; SPRITE_OAK_AIDE + dw OakAideSprite + db $c0 ; byte count + db BANK(OakAideSprite) + + ; SPRITE_ROCKER + dw RockerSprite + db $c0 ; byte count + db BANK(RockerSprite) + + ; SPRITE_SWIMMER + dw SwimmerSprite + db $c0 ; byte count + db BANK(SwimmerSprite) + + ; SPRITE_WHITE_PLAYER + dw WhitePlayerSprite + db $c0 ; byte count + db BANK(WhitePlayerSprite) + + ; SPRITE_GYM_HELPER + dw GymHelperSprite + db $c0 ; byte count + db BANK(GymHelperSprite) + + ; SPRITE_OLD_PERSON + dw OldPersonSprite + db $c0 ; byte count + db BANK(OldPersonSprite) + + ; SPRITE_MART_GUY + dw MartGuySprite + db $c0 ; byte count + db BANK(MartGuySprite) + + ; SPRITE_FISHER + dw FisherSprite + db $c0 ; byte count + db BANK(FisherSprite) + + ; SPRITE_OLD_MEDIUM_WOMAN + dw OldMediumWomanSprite + db $c0 ; byte count + db BANK(OldMediumWomanSprite) + + ; SPRITE_NURSE + dw NurseSprite + db $c0 ; byte count + db BANK(NurseSprite) + + ; SPRITE_CABLE_CLUB_WOMAN + dw CableClubWomanSprite + db $c0 ; byte count + db BANK(CableClubWomanSprite) + + ; SPRITE_MR_MASTERBALL + dw MrMasterballSprite + db $c0 ; byte count + db BANK(MrMasterballSprite) + + ; SPRITE_LAPRAS_GIVER + dw LaprasGiverSprite + db $c0 ; byte count + db BANK(LaprasGiverSprite) + + ; SPRITE_WARDEN + dw WardenSprite + db $c0 ; byte count + db BANK(WardenSprite) + + ; SPRITE_SS_CAPTAIN + dw SsCaptainSprite + db $c0 ; byte count + db BANK(SsCaptainSprite) + + ; SPRITE_FISHER2 + dw Fisher2Sprite + db $c0 ; byte count + db BANK(Fisher2Sprite) + + ; SPRITE_BLACKBELT + dw BlackbeltSprite + db $c0 ; byte count + db BANK(BlackbeltSprite) + + ; SPRITE_GUARD + dw GuardSprite + db $c0 ; byte count + db BANK(GuardSprite) + + ; $32 + dw GuardSprite + db $c0 ; byte count + db BANK(GuardSprite) + + ; SPRITE_MOM + dw MomSprite + db $c0 ; byte count + db BANK(MomSprite) + + ; SPRITE_BALDING_GUY + dw BaldingGuySprite + db $c0 ; byte count + db BANK(BaldingGuySprite) + + ; SPRITE_YOUNG_BOY + dw YoungBoySprite + db $c0 ; byte count + db BANK(YoungBoySprite) + + ; SPRITE_GAMEBOY_KID + dw GameboyKidSprite + db $c0 ; byte count + db BANK(GameboyKidSprite) + + ; SPRITE_GAMEBOY_KID_COPY + dw GameboyKidSprite + db $c0 ; byte count + db BANK(GameboyKidSprite) + + ; SPRITE_CLEFAIRY + dw ClefairySprite + db $c0 ; byte count + db BANK(ClefairySprite) + + ; SPRITE_AGATHA + dw AgathaSprite + db $c0 ; byte count + db BANK(AgathaSprite) + + ; SPRITE_BRUNO + dw BrunoSprite + db $c0 ; byte count + db BANK(BrunoSprite) + + ; SPRITE_LORELEI + dw LoreleiSprite + db $c0 ; byte count + db BANK(LoreleiSprite) + + ; SPRITE_SEEL + dw SeelSprite + db $c0 ; byte count + db BANK(SeelSprite) + + ; SPRITE_BALL + dw BallSprite + db $40 ; byte count + db BANK(BallSprite) + + ; SPRITE_OMANYTE + dw OmanyteSprite + db $40 ; byte count + db BANK(OmanyteSprite) + + ; SPRITE_BOULDER + dw BoulderSprite + db $40 ; byte count + db BANK(BoulderSprite) + + ; SPRITE_PAPER_SHEET + dw PaperSheetSprite + db $40 ; byte count + db BANK(PaperSheetSprite) + + ; SPRITE_BOOK_MAP_DEX + dw BookMapDexSprite + db $40 ; byte count + db BANK(BookMapDexSprite) + + ; SPRITE_CLIPBOARD + dw ClipboardSprite + db $40 ; byte count + db BANK(ClipboardSprite) + + ; SPRITE_SNORLAX + dw SnorlaxSprite + db $40 ; byte count + db BANK(SnorlaxSprite) + + ; SPRITE_OLD_AMBER_COPY + dw OldAmberSprite + db $40 ; byte count + db BANK(OldAmberSprite) + + ; SPRITE_OLD_AMBER + dw OldAmberSprite + db $40 ; byte count + db BANK(OldAmberSprite) + + ; SPRITE_LYING_OLD_MAN_UNUSED_1 + dw LyingOldManSprite + db $40 ; byte count + db BANK(LyingOldManSprite) + + ; SPRITE_LYING_OLD_MAN_UNUSED_2 + dw LyingOldManSprite + db $40 ; byte count + db BANK(LyingOldManSprite) + + ; SPRITE_LYING_OLD_MAN + dw LyingOldManSprite + db $40 ; byte count + db BANK(LyingOldManSprite) +; 0x17c47 + +INCBIN "baserom.gbc",$17c47,$17e1d - $17c47 UnnamedText_17e1d: ; 0x17e1d TX_FAR _UnnamedText_17e1d