diff options
author | Astatin <[email protected]> | 2025-01-07 19:29:17 +0900 |
---|---|---|
committer | Astatin <[email protected]> | 2025-01-07 19:30:12 +0900 |
commit | adb2d9935253b0ea0e31b462f342aa7823697a7e (patch) | |
tree | b17bff2c89f69bc2265b3abd09383b061cdde59c | |
parent | ba36a613da1ce2dd822429cff4bd994094010abe (diff) |
Add support for multiple enemies loaded (up to 4 loaded at dungeon gen time)
-rw-r--r-- | definitions.gbasm | 4 | ||||
-rw-r--r-- | entity/actions.gbasm | 4 | ||||
-rw-r--r-- | entity/init.gbasm | 77 | ||||
-rw-r--r-- | entity/list.gbasm | 60 | ||||
-rw-r--r-- | gui.gbasm | 8 | ||||
-rw-r--r-- | main.gbasm | 11 | ||||
-rw-r--r-- | scripts/generate-tiledata.py | 118 | ||||
-rw-r--r-- | sprites/frog/side.png | bin | 168 -> 167 bytes | |||
-rw-r--r-- | test.rom | bin | 0 -> 8 bytes | |||
-rw-r--r-- | tiles.gbasm | 55 | ||||
-rw-r--r-- | tileset.gbasm | 174 |
11 files changed, 417 insertions, 94 deletions
diff --git a/definitions.gbasm b/definitions.gbasm index f166d8c..4fb03f2 100644 --- a/definitions.gbasm +++ b/definitions.gbasm @@ -123,6 +123,10 @@ ; } .DEFINE mem_number_of_rooms ($c8a0) +.DEFINE mem_loaded_entities_indices $c8a8 ; Takes the memory from $c8a8 to $c8ae +.DEFINE mem_loaded_enemies_indices $c8ab ; Takes the memory from $c8ab to $c8ae +.DEFINE mem_loaded_entities_indices_end $c8af ; Takes the memory from $c8a8 to $c8ae + .DEFINE mem_object_list $c900 ; Takes the memory from c900 to c97f ; struct objects { ; sprite: u8, diff --git a/entity/actions.gbasm b/entity/actions.gbasm index 2616e49..a8045dd 100644 --- a/entity/actions.gbasm +++ b/entity/actions.gbasm @@ -140,14 +140,14 @@ Open_Dialogue: LD BC, =Text_1 CALL =Print_str - LD A, $01 + LD A, $07 LD $mem_display_flag, A LD A, $mem_bunny_direction AND $0f LD $mem_bunny_direction, A - LD A, $enum_dungeon_menu_mode + LD A, $enum_dungeon_dialogue_mode LD $mem_requested_mode, A RET diff --git a/entity/init.gbasm b/entity/init.gbasm index ba23183..953e45e 100644 --- a/entity/init.gbasm +++ b/entity/init.gbasm @@ -66,11 +66,11 @@ Initialize_Entities: LD A, $ff LD $mem_bunny_current_room_idx, A - CALL =Initialize_Fox - CALL =Initialize_Fox - CALL =Initialize_Fox - CALL =Initialize_Fox - CALL =Initialize_Fox + CALL =Initialize_Enemy + CALL =Initialize_Enemy + CALL =Initialize_Enemy + CALL =Initialize_Enemy + CALL =Initialize_Enemy Fix_Bunny_screen: LD A, $mem_bunny_x @@ -95,22 +95,32 @@ Fix_Bunny_screen: RET -Initialize_Fox: +Initialize_Enemy: ; HL => pointer to entity struct LD A, $mem_enemies_alive_count INC A LD $mem_enemies_alive_count, A - LD A, $0d + CALL =RNG_Step + AND $03 + ADD $03 + LD E, A + SLA A + SLA A + LD B, A + SLA A + ADD B + INC A LD (HL+), A + LD A, $mem_bunny_current_room_idx LD $tmp_var_6, A CP $FF - JR Z, =Initialize_Fox.All_rooms_allowed + JR Z, =Initialize_Enemy.All_rooms_allowed LD B, A - Initialize_Fox.Skip_bunny_room: + Initialize_Enemy.Skip_bunny_room: LD A, $mem_number_of_rooms CP $01 - JR Z, =Initialize_Fox.All_rooms_allowed + JR Z, =Initialize_Enemy.All_rooms_allowed DEC A CALL =RNG_Bound @@ -120,14 +130,14 @@ Initialize_Fox: LD A, B CP C LD A, C - JR C, =Initialize_Fox.Room_restriction.end + JR C, =Initialize_Enemy.Room_restriction.end DEC A - JR =Initialize_Fox.Room_restriction.end + JR =Initialize_Enemy.Room_restriction.end - Initialize_Fox.All_rooms_allowed: + Initialize_Enemy.All_rooms_allowed: LD A, $mem_number_of_rooms CALL =RNG_Bound - Initialize_Fox.Room_restriction.end: + Initialize_Enemy.Room_restriction.end: LD $tmp_var_4, A SLA A SLA A @@ -136,7 +146,6 @@ Initialize_Fox: LD B, $c8 - ; X LD A, (BC) LD D, A INC BC @@ -163,19 +172,45 @@ Initialize_Fox: LD A, $03 LD (HL+), A + LD BC, =Entity_list + LD D, high($mem_loaded_entities_indices) + LD A, low($mem_loaded_entities_indices) + ADD E + LD E, A + LD A, (DE) + DBG + SLA A + SLA A + SLA A + ADD $02 + ADD low(=Entity_list) + LD C, A + LD A, high(=Entity_list) + ADC $00 + LD B, A + ; Turn - LD A, $02 + LD A, (BC) LD (HL+), A + DBG + + INC BC ; Action - LD A, $01 + LD A, (BC) LD (HL+), A - LD A, $04 - LD (HL), A + INC BC + + LD A, (BC) + LD (HL+), A + + XOR A + LD (HL+), A + LD (HL+), A LD A, L - ADD $0a + ADD $07 LD L, A RET @@ -209,5 +244,5 @@ Respawn_Entities: CP (HL) JR NZ, =FindFreeEntity.loop - CALL =Initialize_Fox + CALL =Initialize_Enemy RET diff --git a/entity/list.gbasm b/entity/list.gbasm new file mode 100644 index 0000000..d534d4d --- /dev/null +++ b/entity/list.gbasm @@ -0,0 +1,60 @@ +Entity_list: + .Fox: + ; Sprite address + .DB =OBJ_Tile_Image_Data.Fox + + ; Turn Jump Table index + .DB $02 + + ; Interaction Jump Table index + .DB $01 + + ; Starting health + .DB $04 + + .PADTO =.Fox+8 + + .Frog: + ; Sprite address + .DB =OBJ_Tile_Image_Data.Frog + + ; Turn Jump Table index + .DB $00 + + ; Interaction Jump Table index + .DB $02 + + ; Starting health + .DB $00 + + .PADTO =.Frog+8 + + .Mouse: + ; Sprite address + .DB =OBJ_Tile_Image_Data.Mouse + + ; Turn Jump Table index + .DB $00 + + ; Interaction Jump Table index + .DB $02 + + ; Starting health + .DB $00 + + .PADTO =.Mouse+8 + + .Fimsh: + ; Sprite address + .DB =OBJ_Tile_Image_Data.Fimsh + + ; Turn Jump Table index + .DB $00 + + ; Interaction Jump Table index + .DB $02 + + ; Starting health + .DB $00 + + .PADTO =.Fimsh+8 @@ -142,8 +142,12 @@ Move_dialogue_cursor: Check_dialogue_action: LD A, $mem_current_mode CP $enum_dungeon_menu_mode + JR Z, =.Check_exit + + CP $enum_dungeon_dialogue_mode RET NZ + .Check_exit: LD A, $mem_last_button_action LD B, A LD A, $mem_button_action @@ -154,6 +158,10 @@ Check_dialogue_action: BIT 0, A RET Z + LD A, $mem_current_mode + CP $enum_dungeon_menu_mode + RET NZ + LD HL, $dialogue_menu_choice1_routine LD A, $mem_menu_cursor_position @@ -76,12 +76,22 @@ Entrypoint: LD $mem_bunny_health, A New_Dungeon: LD SP, $fffe + LD HL, $mem_loaded_enemies_indices + LD A, $00 + LD (HL+), A + INC A + LD (HL+), A + INC A + LD (HL+), A + INC A + LD (HL+), A CALL =Dungeon_Generation CALL =Initialize_Entities CALL =Initialize_Objects CALL =Load_Tile CALL =Load_Map CALL =Load_Objects + CALL =Reload_Entities_Tile_Data LD A, $00 LD $mem_bunny_flags, A @@ -231,6 +241,7 @@ STAT_Entrypoint: .INCLUDE "entity/actions.gbasm" .INCLUDE "entity/collisions.gbasm" .INCLUDE "entity/display.gbasm" +.INCLUDE "entity/list.gbasm" .INCLUDE "animation.gbasm" .INCLUDE "attacks.gbasm" .INCLUDE "gui.gbasm" diff --git a/scripts/generate-tiledata.py b/scripts/generate-tiledata.py index a381d5a..547e9e5 100644 --- a/scripts/generate-tiledata.py +++ b/scripts/generate-tiledata.py @@ -35,61 +35,15 @@ get_sprite_png_parse_output("./sprites/font.png") sprite_idx = 0x02 print("\nOBJ_Tile_Image_Data:") -# print("\n\t; Bunny side") -# get_sprite_png_parse_output("./sprites/bunny/bunny-side.png", tallmode=True) -# print("\n\t; Bunny back") -# get_sprite_png_parse_output("./sprites/bunny/bunny-back.png", tallmode=True) -# print("\n\t; Bunny front") -# get_sprite_png_parse_output("./sprites/bunny/bunny-front.png", tallmode=True) -#print("\n\t; Cat side") -#get_sprite_png_parse_output("./sprites/cat/side.png", tallmode=True) -#print("\n\t; Cat back") -#get_sprite_png_parse_output("./sprites/cat/back.png", tallmode=True) -#print("\n\t; Cat front") -#get_sprite_png_parse_output("./sprites/cat/front.png", tallmode=True) - -# print("\n\t; Owl side") -# get_sprite_png_parse_output("./sprites/owl/side.png", tallmode=True) -# print("\n\t; Owl back") -# get_sprite_png_parse_output("./sprites/owl/back.png", tallmode=True) -# print("\n\t; Owl front") -# get_sprite_png_parse_output("./sprites/owl/front.png", tallmode=True) - -# print("\n\t; Bug side") -# get_sprite_png_parse_output("./sprites/bug/side.png", tallmode=True) -# print("\n\t; Bug back") -# get_sprite_png_parse_output("./sprites/bug/back.png", tallmode=True) -# print("\n\t; Bug front") -# get_sprite_png_parse_output("./sprites/bug/front.png", tallmode=True) - -# print("\n\t; Mouse side") -# get_sprite_png_parse_output("./sprites/mouse/side.png", tallmode=True) -# print("\n\t; Mouse back") -# get_sprite_png_parse_output("./sprites/mouse/back.png", tallmode=True) -# print("\n\t; Mouse front") -# get_sprite_png_parse_output("./sprites/mouse/front.png", tallmode=True) - -# print("\n\t; Fimsh side") -# get_sprite_png_parse_output("./sprites/fimsh/side.png", tallmode=True) -# print("\n\t; Fimsh back") -# get_sprite_png_parse_output("./sprites/fimsh/back.png", tallmode=True) -# print("\n\t; Fimsh front") -# get_sprite_png_parse_output("./sprites/fimsh/front.png", tallmode=True) - -# print("\n\t; Penguin side") -# get_sprite_png_parse_output("./sprites/penguin/side.png", tallmode=True) -# print("\n\t; Penguin back") -# get_sprite_png_parse_output("./sprites/penguin/back.png", tallmode=True) -# print("\n\t; Penguin front") -# get_sprite_png_parse_output("./sprites/penguin/front.png", tallmode=True) - -print("\n\t; Frog side") -get_sprite_png_parse_output("./sprites/frog/side.png", tallmode=True) -print("\n\t; Frog back") -get_sprite_png_parse_output("./sprites/frog/back.png", tallmode=True) -print("\n\t; Frog front") -get_sprite_png_parse_output("./sprites/frog/front.png", tallmode=True) +print("\n.Bunny:") +print("\n\t; Bunny side") +get_sprite_png_parse_output("./sprites/bunny/bunny-side.png", tallmode=True) +print("\n\t; Bunny back") +get_sprite_png_parse_output("./sprites/bunny/bunny-back.png", tallmode=True) +print("\n\t; Bunny front") +get_sprite_png_parse_output("./sprites/bunny/bunny-front.png", tallmode=True) +print("\n.Fox:") print("\n\t; Fox side") get_sprite_png_parse_output("./sprites/fox/fox-side1.png", tallmode=True) print("\n\t; Fox back") @@ -97,6 +51,62 @@ get_sprite_png_parse_output("./sprites/fox/fox-back.png", tallmode=True) print("\n\t; Fox front") get_sprite_png_parse_output("./sprites/fox/fox-front.png", tallmode=True) +print("\n.Cat:") +print("\n\t; Cat side") +get_sprite_png_parse_output("./sprites/cat/side.png", tallmode=True) +print("\n\t; Cat back") +get_sprite_png_parse_output("./sprites/cat/back.png", tallmode=True) +print("\n\t; Cat front") +get_sprite_png_parse_output("./sprites/cat/front.png", tallmode=True) + +print("\n.Owl:") +print("\n\t; Owl side") +get_sprite_png_parse_output("./sprites/owl/side.png", tallmode=True) +print("\n\t; Owl back") +get_sprite_png_parse_output("./sprites/owl/back.png", tallmode=True) +print("\n\t; Owl front") +get_sprite_png_parse_output("./sprites/owl/front.png", tallmode=True) + +print("\n.Bug:") +print("\n\t; Bug side") +get_sprite_png_parse_output("./sprites/bug/side.png", tallmode=True) +print("\n\t; Bug back") +get_sprite_png_parse_output("./sprites/bug/back.png", tallmode=True) +print("\n\t; Bug front") +get_sprite_png_parse_output("./sprites/bug/front.png", tallmode=True) + +print("\n.Mouse:") +print("\n\t; Mouse side") +get_sprite_png_parse_output("./sprites/mouse/side.png", tallmode=True) +print("\n\t; Mouse back") +get_sprite_png_parse_output("./sprites/mouse/back.png", tallmode=True) +print("\n\t; Mouse front") +get_sprite_png_parse_output("./sprites/mouse/front.png", tallmode=True) + +print("\n.Fimsh:") +print("\n\t; Fimsh side") +get_sprite_png_parse_output("./sprites/fimsh/side.png", tallmode=True) +print("\n\t; Fimsh back") +get_sprite_png_parse_output("./sprites/fimsh/back.png", tallmode=True) +print("\n\t; Fimsh front") +get_sprite_png_parse_output("./sprites/fimsh/front.png", tallmode=True) + +print("\n.Penguin:") +print("\n\t; Penguin side") +get_sprite_png_parse_output("./sprites/penguin/side.png", tallmode=True) +print("\n\t; Penguin back") +get_sprite_png_parse_output("./sprites/penguin/back.png", tallmode=True) +print("\n\t; Penguin front") +get_sprite_png_parse_output("./sprites/penguin/front.png", tallmode=True) + +print("\n.Frog:") +print("\n\t; Frog side") +get_sprite_png_parse_output("./sprites/frog/side.png", tallmode=True) +print("\n\t; Frog back") +get_sprite_png_parse_output("./sprites/frog/back.png", tallmode=True) +print("\n\t; Frog front") +get_sprite_png_parse_output("./sprites/frog/front.png", tallmode=True) + sprite_idx = 0x60 print("\nAnimation_Sprites_Data:") print("\n\t; Sparkles") diff --git a/sprites/frog/side.png b/sprites/frog/side.png Binary files differindex 4352c82..cfc4df9 100644 --- a/sprites/frog/side.png +++ b/sprites/frog/side.png diff --git a/test.rom b/test.rom Binary files differnew file mode 100644 index 0000000..1b1cb4d --- /dev/null +++ b/test.rom diff --git a/tiles.gbasm b/tiles.gbasm index ae0e031..3f6df10 100644 --- a/tiles.gbasm +++ b/tiles.gbasm @@ -1,7 +1,7 @@ Load_Tile: LD HL, $8020 - LD DE, =OBJ_Tile_Image_Data - LD BC, $0180 + LD DE, =OBJ_Tile_Image_Data.Bunny + LD BC, $00c0 CALL =memcpy LD HL, $8800 @@ -25,6 +25,57 @@ Load_Tile: CALL =memcpy RET +Reload_Entities_Tile_Data: + LD HL, $mem_loaded_enemies_indices + LD E, $03 + .loop: + LD A, (HL) + SLA A + SLA A + SLA A + ADD low(=Entity_list) + LD C, A + LD A, high(=Entity_list) + ADC $00 + LD B, A + + PUSH HL + PUSH DE + + LD A, E + SLA A + SLA A + LD E, A + SLA A + ADD E + ADD $02 + SWAP A + LD H, A + AND $f0 + LD L, A + LD A, H + AND $0f + OR $80 + LD H, A + + LD A, (BC) + LD D, A + INC BC + LD A, (BC) + LD E, A + + LD BC, $00c0 + CALL =memcpy + + POP DE + POP HL + + INC HL + INC E + LD A, low($mem_loaded_entities_indices_end) + CP L + JR NZ, =.loop + Dialogue_Box_Tilemap_data: .DB 0x11, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .DB 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 diff --git a/tileset.gbasm b/tileset.gbasm index 42027a1..27150f8 100644 --- a/tileset.gbasm +++ b/tileset.gbasm @@ -142,23 +142,27 @@ Font_Data: OBJ_Tile_Image_Data: - ; Frog side - .DB $00, $00, $00, $00, $1c, $1c, $3e, $22, $3f, $33, $3e, $23, $1c, $1f, $20, $3f ; 0x02 - .DB $38, $3f, $20, $3f, $1a, $1f, $15, $1f, $26, $3f, $49, $79, $4a, $7b, $31, $31 ; 0x03 - .DB $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $c0, $c0, $20, $e0, $10, $f0 ; 0x04 - .DB $08, $f8, $68, $f8, $84, $fc, $04, $fc, $84, $fc, $c2, $fe, $02, $fe, $fc, $fc ; 0x05 +.Bunny: - ; Frog back - .DB $00, $00, $38, $38, $7f, $4f, $70, $5f, $60, $7f, $40, $7f, $40, $7f, $40, $7f ; 0x06 - .DB $a0, $ff, $b0, $ff, $90, $ff, $90, $ff, $90, $ff, $88, $ff, $8c, $ff, $f3, $f3 ; 0x07 - .DB $00, $00, $38, $38, $fc, $e4, $1c, $f4, $0c, $fc, $04, $fc, $04, $fc, $04, $fc ; 0x08 - .DB $0a, $fe, $1a, $fe, $12, $fe, $12, $fe, $12, $fe, $22, $fe, $62, $fe, $9e, $9e ; 0x09 + ; Bunny side + .DB $00, $00, $44, $44, $aa, $ee, $aa, $ee, $fe, $b2, $fc, $b4, $fc, $94, $75, $4d ; 0x02 + .DB $ff, $82, $6f, $70, $3f, $20, $3f, $20, $31, $2e, $4e, $7f, $51, $71, $60, $60 ; 0x03 + .DB $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $c0, $c0 ; 0x04 + .DB $34, $f4, $ce, $3a, $fe, $0a, $fc, $04, $bc, $44, $5c, $e4, $88, $f8, $f0, $f0 ; 0x05 - ; Frog front - .DB $00, $00, $38, $38, $7f, $47, $7c, $57, $7c, $47, $38, $3f, $43, $7f, $c3, $fc ; 0x0a - .DB $87, $f8, $87, $f8, $83, $fc, $97, $fc, $94, $ff, $a2, $ff, $62, $7f, $7f, $7f ; 0x0b - .DB $00, $00, $38, $38, $fc, $c4, $7c, $d4, $7c, $c4, $38, $f8, $84, $fc, $86, $7e ; 0x0c - .DB $c2, $3e, $c2, $3e, $82, $7e, $d2, $7e, $52, $fe, $8a, $fe, $8c, $fc, $fc, $fc ; 0x0d + ; Bunny back + .DB $00, $00, $00, $00, $00, $00, $1c, $1c, $2e, $32, $2f, $3b, $1f, $19, $0e, $0f ; 0x06 + .DB $13, $1c, $27, $38, $2f, $30, $2f, $30, $2f, $30, $13, $1c, $15, $1b, $0e, $0e ; 0x07 + .DB $00, $00, $40, $40, $a0, $e0, $a0, $e0, $e0, $a0, $e0, $20, $c0, $40, $e0, $e0 ; 0x08 + .DB $d0, $30, $d0, $30, $e8, $18, $f8, $08, $f0, $10, $90, $70, $70, $90, $e0, $e0 ; 0x09 + + ; Bunny front + .DB $00, $00, $04, $04, $0a, $0e, $0a, $0e, $0e, $0a, $0f, $09, $07, $05, $0f, $0e ; 0x0a + .DB $17, $1c, $17, $1a, $2f, $30, $3f, $20, $1f, $10, $17, $1d, $0d, $0f, $06, $06 ; 0x0b + .DB $00, $00, $00, $00, $00, $00, $70, $70, $e8, $98, $e8, $b8, $f0, $30, $e0, $e0 ; 0x0c + .DB $d0, $70, $e8, $98, $e8, $18, $f8, $08, $f8, $08, $d0, $70, $60, $e0, $c0, $c0 ; 0x0d + +.Fox: ; Fox side .DB $00, $00, $00, $00, $01, $01, $15, $15, $1f, $1f, $1a, $1e, $16, $1e, $12, $1e ; 0x0e @@ -178,6 +182,146 @@ OBJ_Tile_Image_Data: .DB $00, $00, $8e, $8e, $de, $d2, $de, $d2, $7e, $e2, $46, $fa, $e2, $be, $e2, $3e ; 0x18 .DB $c2, $fe, $22, $fe, $24, $fc, $64, $fc, $dc, $5c, $c0, $40, $c0, $40, $c0, $c0 ; 0x19 +.Cat: + + ; Cat side + .DB $00, $00, $00, $00, $22, $22, $55, $77, $6b, $5d, $5d, $63, $7f, $43, $3c, $eb ; 0x1a + .DB $6b, $57, $24, $fb, $1f, $1c, $0f, $08, $0f, $0b, $0b, $0f, $0b, $0f, $06, $06 ; 0x1b + .DB $00, $00, $1e, $1e, $3f, $21, $2f, $3d, $2f, $3d, $17, $15, $07, $05, $0f, $09 ; 0x1c + .DB $fe, $f2, $fc, $04, $fc, $04, $fc, $0c, $ec, $3c, $ec, $fc, $2c, $3c, $18, $18 ; 0x1d + + ; Cat back + .DB $00, $00, $08, $08, $15, $1d, $12, $1f, $1f, $10, $1f, $10, $1f, $37, $1f, $18 ; 0x1e + .DB $1f, $30, $1f, $10, $1f, $11, $1f, $10, $1f, $17, $15, $1d, $15, $1d, $0d, $0d ; 0x1f + .DB $00, $00, $90, $90, $68, $f8, $68, $f8, $fc, $64, $dc, $54, $dc, $74, $dc, $d4 ; 0x20 + .DB $dc, $74, $fc, $e4, $f8, $08, $f0, $70, $c0, $40, $40, $c0, $40, $c0, $80, $80 ; 0x21 + + ; Cat front + .DB $00, $00, $08, $08, $15, $1d, $1a, $17, $17, $18, $1f, $10, $0f, $35, $15, $1a ; 0x22 + .DB $08, $3f, $1f, $17, $1f, $10, $1f, $18, $1f, $1a, $1a, $1f, $1a, $1f, $0d, $0d ; 0x23 + .DB $00, $00, $88, $88, $54, $dc, $d4, $5c, $5e, $d2, $ce, $4a, $8e, $6a, $4e, $ca ; 0x24 + .DB $8e, $ea, $ce, $4a, $fe, $72, $fc, $c4, $f8, $f8, $c0, $c0, $c0, $c0, $80, $80 ; 0x25 + +.Owl: + + ; Owl side + .DB $00, $00, $07, $07, $08, $0f, $16, $19, $16, $1d, $36, $3d, $30, $3f, $18, $17 ; 0x26 + .DB $1c, $17, $14, $1f, $1c, $17, $0c, $0f, $06, $07, $07, $07, $07, $07, $0f, $0f ; 0x27 + .DB $00, $00, $e0, $e0, $10, $f0, $08, $f8, $08, $f8, $08, $f8, $08, $f8, $08, $f8 ; 0x28 + .DB $28, $f8, $28, $f8, $28, $f8, $28, $f8, $4c, $fc, $c4, $fc, $fe, $fe, $00, $00 ; 0x29 + + ; Owl back + .DB $00, $00, $07, $07, $08, $0f, $10, $1f, $10, $1f, $10, $1f, $10, $1f, $30, $3f ; 0x2a + .DB $30, $3f, $30, $3f, $33, $3f, $36, $3f, $2c, $3f, $3c, $3f, $0f, $0f, $06, $06 ; 0x2b + .DB $00, $00, $e0, $e0, $10, $f0, $08, $f8, $08, $f8, $08, $f8, $08, $f8, $0c, $fc ; 0x2c + .DB $0c, $fc, $0c, $fc, $cc, $fc, $6c, $fc, $34, $fc, $3c, $fc, $f0, $f0, $60, $60 ; 0x2d + + ; Owl front + .DB $00, $00, $07, $07, $08, $0f, $16, $19, $16, $1b, $17, $1a, $11, $1f, $20, $3f ; 0x2e + .DB $26, $3d, $27, $3c, $26, $3d, $25, $3e, $2a, $3d, $3d, $3a, $0f, $0f, $06, $06 ; 0x2f + .DB $00, $00, $e0, $e0, $10, $f0, $68, $98, $68, $d8, $e8, $58, $88, $f8, $04, $fc ; 0x30 + .DB $64, $bc, $e4, $3c, $a4, $7c, $64, $bc, $b4, $5c, $5c, $bc, $f0, $f0, $60, $60 ; 0x31 + +.Bug: + + ; Bug side + .DB $00, $00, $08, $08, $13, $13, $24, $24, $48, $48, $50, $50, $60, $60, $ff, $df ; 0x32 + .DB $eb, $bc, $88, $ff, $9c, $ff, $73, $7f, $0f, $0f, $0f, $0f, $15, $15, $69, $69 ; 0x33 + .DB $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $e0, $e0 ; 0x34 + .DB $fc, $1c, $7c, $ec, $fe, $f6, $96, $fe, $fe, $fe, $18, $18, $08, $08, $8e, $8e ; 0x35 + + ; Bug back + .DB $00, $00, $00, $00, $00, $00, $00, $00, $18, $18, $25, $25, $4a, $4b, $47, $47 ; 0x36 + .DB $4f, $4e, $1b, $1c, $1b, $1c, $3d, $3e, $2c, $2f, $26, $27, $61, $61, $00, $00 ; 0x37 + .DB $00, $00, $00, $00, $00, $00, $00, $00, $18, $18, $a4, $a4, $52, $d2, $e2, $e2 ; 0x38 + .DB $f2, $72, $d8, $38, $d8, $38, $bc, $7c, $34, $f4, $64, $e4, $86, $86, $00, $00 ; 0x39 + + ; Bug front + .DB $00, $00, $00, $00, $20, $20, $20, $20, $10, $10, $09, $09, $06, $07, $13, $13 ; 0x3a + .DB $17, $16, $3f, $3e, $2c, $2f, $2c, $2f, $6a, $6f, $0d, $0f, $1b, $1b, $02, $02 ; 0x3b + .DB $00, $00, $00, $00, $04, $04, $08, $08, $08, $08, $90, $90, $60, $e0, $c8, $c8 ; 0x3c + .DB $e8, $68, $fc, $7c, $34, $f4, $34, $f4, $56, $f6, $b0, $f0, $d8, $d8, $40, $40 ; 0x3d + +.Mouse: + + ; Mouse side + .DB $00, $00, $00, $00, $00, $00, $00, $00, $0e, $0e, $11, $1f, $11, $1f, $11, $1f ; 0x3e + .DB $1f, $12, $3f, $20, $7f, $50, $bf, $c0, $7b, $7f, $06, $06, $00, $00, $00, $00 ; 0x3f + .DB $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $e0, $e0, $90, $70 ; 0x40 + .DB $98, $78, $cc, $3c, $ca, $3a, $89, $79, $d9, $f9, $32, $32, $04, $04, $f8, $f8 ; 0x41 + + ; Mouse back + .DB $00, $00, $00, $00, $1c, $1c, $22, $3e, $22, $3e, $23, $3f, $1b, $1c, $0f, $0f ; 0x42 + .DB $1f, $18, $1f, $10, $1f, $11, $1f, $11, $0f, $0f, $06, $06, $00, $00, $00, $00 ; 0x43 + .DB $00, $00, $00, $00, $70, $70, $88, $f8, $88, $f8, $88, $f8, $b0, $70, $e0, $e0 ; 0x44 + .DB $f0, $30, $f0, $10, $f0, $10, $f0, $d0, $fc, $fc, $c6, $c6, $02, $02, $3e, $3e ; 0x45 + + ; Mouse front + .DB $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $0e, $0e, $11, $1f, $17, $19 ; 0x46 + .DB $17, $19, $0f, $0c, $0f, $0d, $0f, $0a, $0f, $09, $0f, $08, $05, $07, $03, $03 ; 0x47 + .DB $00, $00, $c0, $c0, $20, $20, $00, $00, $00, $00, $b8, $b8, $c4, $fc, $74, $cc ; 0x48 + .DB $f4, $cc, $f8, $18, $f8, $58, $f8, $28, $78, $c8, $f8, $88, $d0, $f0, $60, $60 ; 0x49 + +.Fimsh: + + ; Fimsh side + .DB $00, $00, $00, $00, $00, $00, $01, $01, $07, $06, $0d, $0a, $15, $1a, $25, $3a ; 0x4a + .DB $34, $2b, $3a, $2d, $7a, $45, $3a, $25, $1f, $10, $0f, $0e, $01, $01, $00, $00 ; 0x4b + .DB $00, $00, $00, $00, $00, $00, $fc, $fc, $78, $88, $70, $90, $72, $92, $36, $d6 ; 0x4c + .DB $ae, $5a, $ae, $52, $be, $4a, $f6, $16, $f0, $10, $f0, $b0, $60, $60, $00, $00 ; 0x4d + + ; Fimsh back + .DB $00, $00, $00, $00, $03, $03, $05, $06, $08, $0f, $1f, $10, $10, $1f, $3e, $21 ; 0x4e + .DB $21, $3e, $3c, $23, $3f, $20, $3e, $2f, $31, $31, $23, $22, $07, $07, $00, $00 ; 0x4f + .DB $00, $00, $40, $40, $e0, $a0, $f0, $10, $f8, $88, $18, $e8, $f8, $08, $1c, $e4 ; 0x50 + .DB $f8, $08, $3c, $c4, $fc, $0c, $78, $b8, $c0, $40, $e0, $20, $e0, $e0, $00, $00 ; 0x51 + + ; Fimsh front + .DB $00, $00, $07, $07, $07, $04, $03, $02, $1e, $1d, $3f, $30, $3c, $23, $1f, $10 ; 0x52 + .DB $38, $27, $1f, $10, $18, $17, $1f, $11, $0f, $08, $07, $05, $02, $02, $00, $00 ; 0x53 + .DB $00, $00, $e0, $e0, $c4, $44, $8c, $8c, $7c, $f4, $fc, $04, $3c, $c4, $84, $7c ; 0x54 + .DB $7c, $84, $08, $f8, $f8, $08, $10, $f0, $a0, $60, $c0, $c0, $00, $00, $00, $00 ; 0x55 + +.Penguin: + + ; Penguin side + .DB $00, $00, $07, $07, $0f, $0f, $0f, $0b, $0f, $0c, $07, $18, $0f, $09, $0f, $0f ; 0x56 + .DB $0b, $0f, $0b, $0f, $0b, $0f, $0b, $0f, $0c, $0f, $0f, $0f, $07, $07, $00, $07 ; 0x57 + .DB $00, $00, $e0, $e0, $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f0 ; 0x58 + .DB $b0, $f0, $b0, $f0, $b0, $f0, $70, $f0, $70, $f0, $f0, $f0, $e0, $e0, $00, $80 ; 0x59 + + ; Penguin back + .DB $00, $00, $07, $07, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $1f, $1f ; 0x5a + .DB $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $0f, $0f, $0f, $0f, $07, $07, $00, $0e ; 0x5b + .DB $00, $00, $e0, $e0, $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f8, $f8 ; 0x5c + .DB $fc, $fc, $fc, $fc, $fc, $fc, $fc, $fc, $f0, $f0, $f0, $f0, $e0, $e0, $00, $70 ; 0x5d + + ; Penguin front + .DB $00, $00, $07, $07, $0f, $0f, $0f, $0d, $0f, $0a, $0e, $09, $0f, $0c, $1f, $1e ; 0x5e + .DB $3f, $3e, $3f, $3c, $3f, $3c, $3f, $3c, $0f, $0e, $0f, $0f, $07, $07, $00, $0e ; 0x5f + .DB $00, $00, $e0, $e0, $f0, $f0, $f0, $b0, $f0, $50, $70, $90, $f0, $30, $f8, $78 ; 0x60 + .DB $fc, $7c, $fc, $3c, $fc, $3c, $fc, $3c, $f0, $70, $f0, $f0, $e0, $e0, $00, $70 ; 0x61 + +.Frog: + + ; Frog side + .DB $00, $00, $38, $38, $7f, $47, $7c, $67, $7c, $47, $38, $3f, $40, $7f, $70, $7f ; 0x62 + .DB $40, $7f, $30, $3f, $10, $1f, $24, $3f, $4a, $7b, $9b, $fb, $94, $f7, $63, $63 ; 0x63 + .DB $00, $00, $00, $00, $e0, $e0, $10, $f0, $08, $f8, $04, $fc, $04, $fc, $04, $fc ; 0x64 + .DB $02, $fe, $02, $fe, $02, $fe, $82, $fe, $84, $fc, $e2, $fe, $02, $fe, $fe, $fe ; 0x65 + + ; Frog back + .DB $00, $00, $38, $38, $7f, $4f, $70, $5f, $60, $7f, $40, $7f, $40, $7f, $40, $7f ; 0x66 + .DB $a0, $ff, $b0, $ff, $90, $ff, $90, $ff, $90, $ff, $88, $ff, $8c, $ff, $f3, $f3 ; 0x67 + .DB $00, $00, $38, $38, $fc, $e4, $1c, $f4, $0c, $fc, $04, $fc, $04, $fc, $04, $fc ; 0x68 + .DB $0a, $fe, $1a, $fe, $12, $fe, $12, $fe, $12, $fe, $22, $fe, $62, $fe, $9e, $9e ; 0x69 + + ; Frog front + .DB $00, $00, $38, $38, $7f, $47, $7c, $57, $7c, $47, $38, $3f, $43, $7f, $c3, $fc ; 0x6a + .DB $87, $f8, $87, $f8, $83, $fc, $97, $fc, $94, $ff, $a2, $ff, $62, $7f, $7f, $7f ; 0x6b + .DB $00, $00, $38, $38, $fc, $c4, $7c, $d4, $7c, $c4, $38, $f8, $84, $fc, $86, $7e ; 0x6c + .DB $c2, $3e, $c2, $3e, $82, $7e, $d2, $7e, $52, $fe, $8a, $fe, $8c, $fc, $fc, $fc ; 0x6d + Animation_Sprites_Data: ; Sparkles |