aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-05-07 17:01:22 +0200
committerAstatin <[email protected]>2025-05-07 17:01:22 +0200
commit4b02238d88af30c98b2f8d44e5200fb80b04bcad (patch)
treed69861ff5fe1ebed41f9697335948bde512f10f4
parent7284cc51dedb4f77fe6c1fa1da735b52609b1d4d (diff)
I was adding the frog and then broke everything to fix the viewport thingy
-rw-r--r--dialogues/dialogues.gbasm12
-rw-r--r--enemiesattacks.gbasm1
-rw-r--r--enemiesattacks/grab.gbasm90
-rw-r--r--entity/actions.gbasm4
-rw-r--r--entity/bunny.gbasm127
-rw-r--r--entity/cat.gbasm18
-rw-r--r--entity/display.gbasm9
-rw-r--r--entity/fox.gbasm18
-rw-r--r--entity/frog.gbasm170
-rw-r--r--entity/init.gbasm16
-rw-r--r--entity/list.gbasm4
-rw-r--r--entity/mouse.gbasm4
-rw-r--r--entity/penguin.gbasm18
-rw-r--r--main.gbasm1
-rw-r--r--map/dungeons.gbasm3
-rw-r--r--map/objects.gbasm4
-rw-r--r--modes/dungeon.gbasm2
-rw-r--r--playerattacks.gbasm29
-rw-r--r--sprites/frog/back.pngbin165 -> 172 bytes
-rw-r--r--sprites/frog/front.pngbin178 -> 175 bytes
-rw-r--r--sprites/frog/side.pngbin167 -> 183 bytes
-rw-r--r--tileset.gbasm20
-rw-r--r--utils.gbasm2
23 files changed, 469 insertions, 83 deletions
diff --git a/dialogues/dialogues.gbasm b/dialogues/dialogues.gbasm
index e950b93..2c4a2fd 100644
--- a/dialogues/dialogues.gbasm
+++ b/dialogues/dialogues.gbasm
@@ -191,15 +191,9 @@ Dialogue_script_instruction_Jump_Table:
LD A, L
LD ($mem_learn_attack_dialogue_ret_ptr+1), A
- LD HL, $mem_bunny_attacks
- .Learn_Attack.Check_doubles.loop:
- LD A, (HL)
- CP E
- JR Z, =.Learn_Attack.Duplicate
- INC HL
- LD A, L
- CP low($mem_bunny_attacks+4)
- JR NZ, =.Learn_Attack.Check_doubles.loop
+ CALL =Check_attack_already_learnt
+ CP $01
+ JR Z, =.Learn_Attack.Duplicate
LD A, $mem_number_of_attacks
CP $04
diff --git a/enemiesattacks.gbasm b/enemiesattacks.gbasm
index 4434c1d..ec21d1d 100644
--- a/enemiesattacks.gbasm
+++ b/enemiesattacks.gbasm
@@ -48,3 +48,4 @@ Check_player_next_to: ; BC = XY of the enemy. D is unchanged. Direction to face
.INCLUDE "enemiesattacks/basic.gbasm"
.INCLUDE "enemiesattacks/laser.gbasm"
.INCLUDE "enemiesattacks/freeze.gbasm"
+.INCLUDE "enemiesattacks/grab.gbasm"
diff --git a/enemiesattacks/grab.gbasm b/enemiesattacks/grab.gbasm
new file mode 100644
index 0000000..4529cd7
--- /dev/null
+++ b/enemiesattacks/grab.gbasm
@@ -0,0 +1,90 @@
+Grab_sight_check: ; BC = XY of the enemy. D = direction (must be unchanged). Direction to face in E (or 0 if not)
+ .vertical:
+ LD A, $mem_bunny_x
+ CP B
+ JR NZ, =.horizontal
+
+ ; up
+ LD A, $mem_bunny_y
+ SUB $02
+ CP C
+ LD E, $enum_direction_down
+ RET Z
+
+ ; down
+ ADD $04
+ CP C
+ LD E, $enum_direction_up
+ RET Z
+
+ LD E, $00
+ RET
+
+ .horizontal:
+
+ LD A, $mem_bunny_y
+ CP C
+ LD E, $00
+ RET NZ
+
+ ; left
+ LD A, $mem_bunny_x
+ SUB $02
+ CP B
+ LD E, $enum_direction_right
+ RET Z
+
+ ; right
+ ADD $04
+ CP B
+ LD E, $enum_direction_left
+ RET Z
+
+ LD E, $00
+ RET
+
+Grab_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D
+ LD A, E
+ DEC A
+ DEC D
+ XOR D
+ INC D
+ CP $00
+ JR Z, =.attack
+ BIT 1, A
+ JR NZ, =.attack
+
+ LD D, E
+ RET
+
+ .attack:
+ LD A, E
+ OR $10
+ LD D, A
+
+ PUSH BC
+ LD A, $mem_bunny_direction
+ AND $08
+ LD B, A
+ LD A, $mem_bunny_flags
+ AND $01
+ OR B
+ CP $09
+ POP BC
+ RET Z
+
+ PUSH DE
+ PUSH BC
+
+ LD D, E
+ LD A, E
+ DEC A
+ XOR $01
+ INC A
+ OR $08
+ LD $mem_bunny_direction, A
+ CALL =Fix_Bunny_screen
+
+ POP BC
+ POP DE
+ RET
diff --git a/entity/actions.gbasm b/entity/actions.gbasm
index 9186a4b..58ae380 100644
--- a/entity/actions.gbasm
+++ b/entity/actions.gbasm
@@ -97,6 +97,10 @@ Turn_Jump_table:
JP =Mouse_Turn
NOP
+ ; 08
+ JP =Frog_Turn
+ NOP
+
Interaction_Jump_table:
; 00
RET
diff --git a/entity/bunny.gbasm b/entity/bunny.gbasm
index 4ae93f3..46854b8 100644
--- a/entity/bunny.gbasm
+++ b/entity/bunny.gbasm
@@ -167,27 +167,28 @@ Move_Bunny:
LD $mem_entity_being_attacked_low, A
.Delayed_Attack.end:
- .Scroll_viewport:
- LD A, $mem_map_loading_flags
- BIT 3, A
- JR Z, =.Scroll_viewport.end
- LD A, $mem_bunny_direction
- BIT 3, A
- JR Z, =.Scroll_viewport.end
+ .2x_speed_middle_update:
+ LD A, $mem_bunny_flags
+ BIT 0, A
+ JR Z, =.2x_speed_middle_update.end
+ LD A, $mem_moving_animation_step
+ CP $07
+ JR NZ, =.2x_speed_middle_update.end
- LD A, $mem_bunny_direction
- LD D, A
- LD A, $mem_prepared_viewport_x
+ LD A, $mem_bunny_x
LD B, A
- LD A, $mem_prepared_viewport_y
+ LD A, $mem_bunny_y
LD C, A
- LD A, E
+ LD A, $mem_bunny_direction
+ LD D, A
+ LD A, $02
.ADD_A_TO_DIRECTION_BC
LD A, B
- LD $mem_prepared_viewport_x, A
+ LD $mem_bunny_x, A
LD A, C
- LD $mem_prepared_viewport_y, A
- .Scroll_viewport.end:
+ LD $mem_bunny_y, A
+ DBG
+ .2x_speed_middle_update.end:
.End_movement:
LD A, $mem_map_loading_flags
@@ -207,24 +208,13 @@ Move_Bunny:
LD B, A
LD A, $mem_bunny_y
LD C, A
- LD A, E
+ LD A, $01
.ADD_A_TO_DIRECTION_BC
LD A, B
LD $mem_bunny_x, A
LD A, C
LD $mem_bunny_y, A
- LD A, $mem_viewport_x
- LD B, A
- LD A, $mem_viewport_y
- LD C, A
- LD A, $01
- .ADD_A_TO_DIRECTION_BC
- LD A, B
- LD $mem_viewport_x, A
- LD A, C
- LD $mem_viewport_y, A
-
LD A, $mem_bunny_flags
RES 0, A
LD $mem_bunny_flags, A
@@ -303,33 +293,7 @@ Move_Bunny:
.End_movement.skip_mana_regen:
.End_movement.end:
-
- .Middle_movement_doublespeed_viewport_update:
- LD A, $mem_map_loading_flags
- BIT 3, A
- JP Z, =.Middle_movement_doublespeed_viewport_update.end
- LD A, $mem_moving_animation_step
- CP $07
- JP NZ, =.Middle_movement_doublespeed_viewport_update.end
- LD A, $mem_bunny_direction
- BIT 3, A
- JR Z, =.Middle_movement_doublespeed_viewport_update.end
- LD A, E
- CP $02
- JR NZ, =.Middle_movement_doublespeed_viewport_update.end
-
- LD A, $mem_viewport_x
- LD B, A
- LD A, $mem_viewport_y
- LD C, A
- LD A, $01
- .ADD_A_TO_DIRECTION_BC
- LD A, B
- LD $mem_viewport_x, A
- LD A, C
- LD $mem_viewport_y, A
- .Middle_movement_doublespeed_viewport_update.end:
-
+
.Interaction:
LD A, $mem_map_loading_flags
BIT 3, A
@@ -414,3 +378,58 @@ Move_Bunny:
.Check_End_Action.end:
RET
+
+Center_viewport_around_entity: ; Entity pointer in HL
+ INC HL
+ LD A, (HL)
+ SUB $05
+ LD $mem_viewport_x, A
+
+ LD A, (HL+)
+ LD B, A
+
+ LD A, (HL)
+ SUB $04
+ LD $mem_viewport_y, A
+
+ LD A, (HL+)
+ LD C, A
+ LD D, (HL)
+ LD E, $00
+ BIT 3, D
+ JR Z, =.moving_animation_end
+ LD A, $mem_moving_animation_step
+ LD E, A
+ LD A, L
+ AND $f0
+ OR $07
+ LD L, A
+ BIT 0, (HL)
+ JR Z, =.moving_animation_end
+ SLA E
+ LD A, E
+ AND $0f
+ LD E, A
+ .moving_animation_end:
+
+ LD A, B
+ SWAP A
+ AND $f0
+ SUB $48
+ LD B, A
+
+ LD A, C
+ SWAP A
+ AND $f0
+ SUB $38
+ LD C, A
+
+ LD A, E
+ .ADD_A_TO_DIRECTION_BC
+
+ LD A, B
+ LD $mem_prepared_viewport_x, A
+ LD A, C
+ LD $mem_prepared_viewport_y, A
+
+ RET
diff --git a/entity/cat.gbasm b/entity/cat.gbasm
index 837dd39..655fd1b 100644
--- a/entity/cat.gbasm
+++ b/entity/cat.gbasm
@@ -33,13 +33,31 @@ Cat_Turn:
DEC A
LD $mem_enemies_alive_count, A
+ ; Drop when deadged
PUSH DE
+ LD E, $02
+ CALL =Check_attack_already_learnt
+ CP $01
+ JR Z, =.drops.hp_regen_item
+
+ .drops.attack_item:
LD D, $6C
LD E, $04
CALL =RNG_Step
AND $03
CP $00
CALL Z, =Spawn_object
+ JR =.drops.end
+
+ .drops.hp_regen_item:
+ LD D, $64
+ LD E, $02
+ CALL =RNG_Step
+ AND $03
+ CP $00
+ CALL Z, =Spawn_object
+
+ .drops.end:
POP DE
JP =.Skip_turn
diff --git a/entity/display.gbasm b/entity/display.gbasm
index 42f4740..0a38755 100644
--- a/entity/display.gbasm
+++ b/entity/display.gbasm
@@ -152,7 +152,16 @@ Display_Entity:
CP $30
JR NZ, =.SuperJump_Animation.end
+ PUSH BC
+ LD A, $mem_moving_animation_step
+ CPL
+ INC A
+ LD B, A
LD A, $mem_moving_animation_step
+ SLA A
+ AND $0f
+ ADD B
+ POP BC
CP $00
JR Z, =.SuperJump_Animation.end
.ADD_A_TO_DIRECTION_BC
diff --git a/entity/fox.gbasm b/entity/fox.gbasm
index ce6da24..8e72ab4 100644
--- a/entity/fox.gbasm
+++ b/entity/fox.gbasm
@@ -33,13 +33,31 @@ Fox_Turn:
DEC A
LD $mem_enemies_alive_count, A
+ ; Drop when deadged
PUSH DE
+ LD E, $04
+ CALL =Check_attack_already_learnt
+ CP $01
+ JR Z, =.drops.ep_regen_item
+
+ .drops.attack_item:
LD D, $6C
LD E, $06
CALL =RNG_Step
AND $03
CP $00
CALL Z, =Spawn_object
+ JR =.drops.end
+
+ .drops.ep_regen_item:
+ LD D, $68
+ LD E, $03
+ CALL =RNG_Step
+ AND $03
+ CP $00
+ CALL Z, =Spawn_object
+
+ .drops.end:
POP DE
JP NZ, =.Skip_turn
diff --git a/entity/frog.gbasm b/entity/frog.gbasm
new file mode 100644
index 0000000..c08d68f
--- /dev/null
+++ b/entity/frog.gbasm
@@ -0,0 +1,170 @@
+Frog_Turn:
+ LD A, $mem_map_loading_flags
+ BIT 3, A
+ RET Z
+
+ PUSH HL
+ PUSH BC
+ PUSH DE
+ INC HL
+ LD A, (HL+)
+ LD B, A
+ LD A, (HL+)
+ LD C, A
+ LD A, (HL+)
+ LD D, A
+
+ .Health_check:
+ LD A, L
+ AND $f0
+ ADD $06
+ LD L, A
+
+ LD A, (HL)
+ CP $00
+ JR NZ, =.Health_check.end
+
+ LD A, L
+ AND $f0
+ LD L, A
+
+ LD (HL), $00
+ LD A, $mem_enemies_alive_count
+ DEC A
+ LD $mem_enemies_alive_count, A
+
+ ; Drop when deadged
+ PUSH DE
+ LD E, $02
+ CALL =Check_attack_already_learnt
+ CP $01
+ JR Z, =.drops.hp_regen_item
+
+ .drops.hp_regen_item:
+ LD D, $64
+ LD E, $02
+ CALL =RNG_Step
+ AND $03
+ CP $00
+ CALL Z, =Spawn_object
+
+ .drops.end:
+ POP DE
+
+ JP =.Skip_turn
+ .Health_check.end:
+
+ .Freeze_shiver:
+ LD A, $mem_moving_animation_step
+ CP $00
+ JP NZ, =.Freeze_shiver.end
+ LD A, L
+ AND $f0
+ ADD $08
+ LD L, A
+ LD A, $01
+ CP (HL)
+ JR NZ, =.Freeze_shiver.end
+ LD A, D
+ AND $07
+ LD D, A
+ CALL =RNG_Step
+ CP $55
+ JP NC, =.Skip_turn
+ LD A, D
+ OR $40
+ LD D, A
+
+ CALL =RNG_Step
+ CP $55
+ JP NC, =.Skip_turn
+
+ LD A, $00
+ LD (HL-), A
+ RES 1, (HL)
+ JP =.Skip_turn
+ .Freeze_shiver.end:
+
+ .Should_turn_be_skipped:
+ LD A, L
+ AND $f0
+ ADD $08
+ LD L, A
+
+ BIT 0, (HL)
+ JP NZ, =.Skip_turn
+
+ .Start_action_or_movement:
+ LD A, $mem_moving_animation_step
+ CP $00
+ JP NZ, =.Start_action_or_movement.end
+
+ LD A, L
+ AND $f0
+ OR $07
+ LD L, A
+ RES 3, (HL)
+
+ LD A, L
+ AND $f0
+ ADD $09
+ LD L, A
+ XOR A
+ CP (HL)
+ JR Z, =.Try_Basic_Attack
+
+ CALL =Grab_sight_check
+ LD A, E
+ CP $00
+ JR Z, =.Try_Basic_Attack
+
+ CALL =Grab_Enemy_Attack
+
+ JR =.Start_action_or_movement.end
+
+ .Try_Basic_Attack:
+
+ CALL =Check_player_next_to
+ LD A, E
+ CP $00
+ JR Z, =.Try_Walking
+
+ CALL =Basic_Enemy_Attack
+
+ JR =.Start_action_or_movement.end
+
+ .Try_Walking:
+
+ CALL =Walking
+
+ .Start_action_or_movement.end:
+
+ .End_movement:
+ LD A, $mem_moving_animation_step
+ CP $0f
+ JP NZ, =.End_movement.end
+
+ LD A, D
+ AND $07
+ BIT 3, D
+ LD D, A
+ JR Z, =.End_movement.end
+ LD A, $01
+ .ADD_A_TO_DIRECTION_BC
+ .End_movement.end:
+
+ .Skip_Turn:
+ LD A, L
+ AND $f0
+ LD L, A
+ INC HL
+ LD A, B
+ LD (HL+), A
+ LD A, C
+ LD (HL+), A
+ LD A, D
+ LD (HL+), A
+ POP DE
+ POP BC
+ POP HL
+ RET
diff --git a/entity/init.gbasm b/entity/init.gbasm
index afbd9f3..1e39456 100644
--- a/entity/init.gbasm
+++ b/entity/init.gbasm
@@ -129,6 +129,22 @@ Fix_Bunny_screen:
OR $08
LD $mem_prepared_viewport_y, A
+ LD A, $mem_bunny_direction
+ BIT 3, A
+ RET Z
+
+ LD A, $mem_bunny_direction
+ DEC A
+ XOR $01
+ INC A
+ LD D, A
+ LD A, $mem_viewport_x
+ LD B, A
+ LD A, $mem_viewport_y
+ LD C, A
+ LD A, $mem_moving_animation_step
+ .ADD_A_TO_DIRECTION_BC
+
RET
Initialize_Enemy: ; HL => pointer to entity struct
diff --git a/entity/list.gbasm b/entity/list.gbasm
index 5ee97af..3038a40 100644
--- a/entity/list.gbasm
+++ b/entity/list.gbasm
@@ -28,7 +28,7 @@ Entity_list:
.DB =OBJ_Tile_Image_Data.Frog
; Turn Jump Table index
- .DB $03
+ .DB $08
; Interaction Jump Table index
.DB $01
@@ -40,7 +40,7 @@ Entity_list:
.DB $00
; Starting mana
- .DB $00
+ .DB $05
; Spawning rate (2 lsb)
.DB 0b01
diff --git a/entity/mouse.gbasm b/entity/mouse.gbasm
index 4a09009..ebf54ff 100644
--- a/entity/mouse.gbasm
+++ b/entity/mouse.gbasm
@@ -34,8 +34,8 @@ Mouse_Turn:
LD $mem_enemies_alive_count, A
PUSH DE
- LD D, $6C
- LD E, $04
+ LD D, $64
+ LD E, $02
CALL =RNG_Step
AND $03
CP $00
diff --git a/entity/penguin.gbasm b/entity/penguin.gbasm
index 401c28a..353af8e 100644
--- a/entity/penguin.gbasm
+++ b/entity/penguin.gbasm
@@ -33,13 +33,31 @@ Penguin_Turn:
DEC A
LD $mem_enemies_alive_count, A
+ ; Drop when deadged
PUSH DE
+ LD E, $03
+ CALL =Check_attack_already_learnt
+ CP $01
+ JR Z, =.drops.ep_regen_item
+
+ .drops.attack_item:
LD D, $6C
LD E, $05
CALL =RNG_Step
AND $03
CP $00
CALL Z, =Spawn_object
+ JR =.drops.end
+
+ .drops.ep_regen_item:
+ LD D, $68
+ LD E, $03
+ CALL =RNG_Step
+ AND $03
+ CP $00
+ CALL Z, =Spawn_object
+
+ .drops.end:
POP DE
JP =.Skip_turn
diff --git a/main.gbasm b/main.gbasm
index 9b50a3d..ec1580d 100644
--- a/main.gbasm
+++ b/main.gbasm
@@ -144,6 +144,7 @@ Entrypoint:
.INCLUDE "entity/mouse.gbasm"
.INCLUDE "entity/penguin.gbasm"
.INCLUDE "entity/fimsh.gbasm"
+.INCLUDE "entity/frog.gbasm"
.INCLUDE "entity/questgoal.gbasm"
.INCLUDE "entity/actions.gbasm"
.INCLUDE "entity/collisions.gbasm"
diff --git a/map/dungeons.gbasm b/map/dungeons.gbasm
index 5d75952..930fede 100644
--- a/map/dungeons.gbasm
+++ b/map/dungeons.gbasm
@@ -88,6 +88,9 @@ Dungeon:
.name: .DB =Dungeon_Name_1_Txt
.max_floor: .DB 0x0a, inv(0x0a)
.spawning_patterns:
+ ; --DBG--
+ .DB $01, $01, $01, $01, 0b11111111
+ ; --DBG--
.DB $02, $02, $02, $05, 0b00000010
.DB $02, $02, $03, $05, 0b00100011
.DB $02, $02, $00, $05, 0b00100111
diff --git a/map/objects.gbasm b/map/objects.gbasm
index e3bd020..11eb7f9 100644
--- a/map/objects.gbasm
+++ b/map/objects.gbasm
@@ -224,7 +224,7 @@ Stairs_Action:
Heal_Action:
LD A, $mem_bunny_health
- ADD $05
+ ADD $03
DAA
CP $20
JR C, =.Set_health
@@ -350,7 +350,7 @@ Fimsh_Attack_Box_Action:
Restore_EP_Action:
LD A, $mem_bunny_mana
- ADD $15
+ ADD $05
DAA
JR NC, =.Set_mana
LD A, $99
diff --git a/modes/dungeon.gbasm b/modes/dungeon.gbasm
index bd3515e..cbe1110 100644
--- a/modes/dungeon.gbasm
+++ b/modes/dungeon.gbasm
@@ -159,6 +159,8 @@ Dungeon_VBLANK_Entrypoint:
CALL =Update_Animation_Steps
CALL =Check_Open_Menu_button
+ LD HL, $mem_entities_list
+ CALL =Center_viewport_around_entity
LD A, $00
LD $mem_oam_buffer_low, A
CALL =Display_Animation_List
diff --git a/playerattacks.gbasm b/playerattacks.gbasm
index d87368e..598dbb8 100644
--- a/playerattacks.gbasm
+++ b/playerattacks.gbasm
@@ -86,7 +86,27 @@ Canceled_Attack:
Empty_Attack:
RET
+Check_attack_already_learnt: ; Attack id in E, result in A (1 for already there, 0 for not), overwrites HL
+ PUSH HL
+ LD HL, $mem_bunny_attacks
+ .loop:
+ LD A, (HL)
+ CP E
+ JR Z, =.duplicate
+ INC HL
+ LD A, L
+ CP low($mem_bunny_attacks+4)
+ JR NZ, =.loop
+ LD A, $00
+ POP HL
+ RET
+ .duplicate:
+ LD A, $01
+ POP HL
+ RET
+
Attack_List:
+ ; 00
.Empty:
; Attack menu name string
.DB =Empty
@@ -99,7 +119,7 @@ Attack_List:
.PADTO =.Empty+8
-
+ ; 01
.Hop:
; Attack menu name string
.DB =Hop_Attack_Menu_Txt
@@ -112,6 +132,7 @@ Attack_List:
.PADTO =.Hop+8
+ ; 02
.Heal:
; Attack menu name string
.DB =Heal_Attack_Menu_Txt
@@ -120,10 +141,11 @@ Attack_List:
.DB =Heal_Attack
; Energy point cost
- .DB $03
+ .DB $05
.PADTO =.Heal+8
+ ; 03
.Freeze:
; Attack menu name string
.DB =Freeze_Attack_Menu_Txt
@@ -132,10 +154,11 @@ Attack_List:
.DB =Freeze_Attack
; Energy point cost
- .DB $03
+ .DB $05
.PADTO =.Freeze+8
+ ; 04
.Earcoptr:
; Attack menu name string
.DB =Earcoptr_Attack_Menu_Txt
diff --git a/sprites/frog/back.png b/sprites/frog/back.png
index 69d06ae..e65c233 100644
--- a/sprites/frog/back.png
+++ b/sprites/frog/back.png
Binary files differ
diff --git a/sprites/frog/front.png b/sprites/frog/front.png
index 4b1d823..3a332db 100644
--- a/sprites/frog/front.png
+++ b/sprites/frog/front.png
Binary files differ
diff --git a/sprites/frog/side.png b/sprites/frog/side.png
index cfc4df9..afd0146 100644
--- a/sprites/frog/side.png
+++ b/sprites/frog/side.png
Binary files differ
diff --git a/tileset.gbasm b/tileset.gbasm
index 5dd99f3..93fa7f3 100644
--- a/tileset.gbasm
+++ b/tileset.gbasm
@@ -345,21 +345,21 @@ OBJ_Tile_Image_Data:
.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
+ .DB $00, $00, $3f, $3f, $7c, $47, $7c, $67, $7c, $47, $b8, $ff, $c0, $ff, $b8, $ff ; 0x62
+ .DB $40, $7f, $3c, $33, $10, $1f, $24, $3f, $4a, $7b, $9b, $fb, $92, $f3, $63, $63 ; 0x63
+ .DB $00, $00, $80, $80, $40, $c0, $30, $f0, $08, $f8, $04, $fc, $06, $fa, $0e, $f2 ; 0x64
+ .DB $3f, $e1, $4f, $f1, $87, $fb, $be, $fe, $b3, $cf, $fd, $ff, $01, $ff, $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
+ .DB $00, $00, $3e, $3e, $41, $7f, $40, $7f, $60, $7f, $40, $7f, $40, $7f, $80, $ff ; 0x66
+ .DB $80, $ff, $b8, $c7, $fe, $91, $ff, $d0, $7f, $70, $cf, $f8, $8f, $fc, $ff, $ff ; 0x67
+ .DB $00, $00, $f8, $f8, $04, $fc, $04, $fc, $0c, $fc, $04, $fc, $04, $fc, $02, $fe ; 0x68
+ .DB $02, $fe, $3a, $c6, $fe, $12, $fe, $16, $fc, $1c, $e6, $3e, $e2, $7e, $fe, $fe ; 0x69
; Frog front
- .DB $00, $00, $38, $38, $7f, $47, $7c, $57, $7c, $47, $38, $3f, $43, $7f, $c3, $fc ; 0x6a
+ .DB $00, $00, $38, $38, $7f, $47, $7c, $57, $7c, $47, $78, $7f, $41, $7f, $c7, $fe ; 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 $00, $00, $38, $38, $fc, $c4, $7c, $d4, $7c, $c4, $3c, $fc, $84, $fc, $c6, $7e ; 0x6c
.DB $c2, $3e, $c2, $3e, $82, $7e, $d2, $7e, $52, $fe, $8a, $fe, $8c, $fc, $fc, $fc ; 0x6d
Animation_Sprites_Data:
diff --git a/utils.gbasm b/utils.gbasm
index 7ce588a..ae509f0 100644
--- a/utils.gbasm
+++ b/utils.gbasm
@@ -93,7 +93,7 @@ bff: ; dest = HL, n = BC
.CALL_DE
.END
-.MACRODEF ADD_MOVING_ANIMATION_OFFSET ; Add current moving animation offset to BC, also uses A
+.MACRODEF ADD_MOVING_ANIMATION_OFFSET ; Add current moving animation offset to BC, also overwrites A
LD A, $mem_map_loading_flags
BIT 3, A
JR Z, =$end