diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-07-15 13:35:39 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-07-15 13:35:39 -0400 |
commit | 4b4ad9894eb165de673346348493e02d83549746 (patch) | |
tree | 20c078b267b5b35055f30e64e726931e63031166 /engine/debug/debug_party.asm | |
parent | 87f24a885d888411d715171d75163bd59a609b41 (diff) |
Disassemble the BLUEMONS.GB debug ROM
Diffstat (limited to 'engine/debug/debug_party.asm')
-rw-r--r-- | engine/debug/debug_party.asm | 148 |
1 files changed, 137 insertions, 11 deletions
diff --git a/engine/debug/debug_party.asm b/engine/debug/debug_party.asm index a5eb7dde..17baa7ef 100644 --- a/engine/debug/debug_party.asm +++ b/engine/debug/debug_party.asm @@ -1,5 +1,4 @@ -; This function appears to never be used. -; It is likely a debugging feature to give the player Tsunekazu Ishihara's +; This function is a debugging feature to give the player Tsunekazu Ishihara's ; favorite Pokemon. This is indicated by the overpowered Exeggutor, which ; Ishihara (president of Creatures Inc.) said was his favorite Pokemon in an ABC ; interview on February 8, 2000. @@ -11,7 +10,7 @@ SetIshiharaTeam: ld de, IshiharaTeam .loop ld a, [de] - cp $ff + cp -1 ret z ld [wcf91], a inc de @@ -22,12 +21,139 @@ SetIshiharaTeam: jr .loop IshiharaTeam: - db EXEGGUTOR,90 - db MEW,20 - db JOLTEON,56 - db DUGTRIO,56 - db ARTICUNO,57 - db $FF - -EmptyFunc: + db EXEGGUTOR, 90 +IF DEF(_DEBUG) + db MEW, 5 +ELSE + db MEW, 20 +ENDC + db JOLTEON, 56 + db DUGTRIO, 56 + db ARTICUNO, 57 +IF DEF(_DEBUG) + db PIKACHU, 5 +ENDC + db -1 ; end + +DebugStart: +IF DEF(_DEBUG) + xor a ; PLAYER_PARTY_DATA + ld [wMonDataLocation], a + + ; Fly anywhere. + dec a ; $ff + ld [wTownVisitedFlag], a + ld [wTownVisitedFlag + 1], a + + ; Get all badges except Earth Badge. + ld a, $ff ^ (1 << BIT_EARTHBADGE) + ld [wObtainedBadges], a + + call SetIshiharaTeam + + ; Exeggutor gets four HM moves. + ld hl, wPartyMon1Moves + ld a, FLY + ld [hli], a + ld a, CUT + ld [hli], a + ld a, SURF + ld [hli], a + ld a, STRENGTH + ld [hl], a + ld hl, wPartyMon1PP + ld a, 15 + ld [hli], a + ld a, 30 + ld [hli], a + ld a, 15 + ld [hli], a + ld [hl], a + + ; Jolteon gets Thunderbolt. + ld hl, wPartyMon3Moves + 3 + ld a, THUNDERBOLT + ld [hl], a + ld hl, wPartyMon3PP + 3 + ld a, 15 + ld [hl], a + + ; Articuno gets Fly. + ld hl, wPartyMon5Moves + ld a, FLY + ld [hl], a + ld hl, wPartyMon5PP + ld a, 15 + ld [hl], a + + ; Pikachu gets Surf. + ld hl, wPartyMon6Moves + 2 + ld a, SURF + ld [hl], a + ld hl, wPartyMon6PP + 2 + ld a, 15 + ld [hl], a + + ; Get some debug items. + ld hl, wNumBagItems + ld de, DebugItemsList +.items_loop + ld a, [de] + cp -1 + jr z, .items_end + ld [wcf91], a + inc de + ld a, [de] + inc de + ld [wItemQuantity], a + call AddItemToInventory + jr .items_loop +.items_end + + ; Complete the Pokédex. + ld hl, wPokedexOwned + call DebugSetPokedexEntries + ld hl, wPokedexSeen + call DebugSetPokedexEntries + SetEvent EVENT_GOT_POKEDEX + + ; Rival chose Squirtle, + ; Player chose Charmander. + ld hl, wRivalStarter + ld a, STARTER2 + ld [hli], a + inc hl ; hl = wPlayerStarter + ld a, STARTER1 + ld [hl], a + + ret + +DebugSetPokedexEntries: + ld b, wPokedexOwnedEnd - wPokedexOwned - 1 + ld a, %11111111 +.loop + ld [hli], a + dec b + jr nz, .loop + ld [hl], %01111111 + ret + +DebugItemsList: + db BICYCLE, 1 + db FULL_RESTORE, 99 + db FULL_HEAL, 99 + db ESCAPE_ROPE, 99 + db RARE_CANDY, 99 + db MASTER_BALL, 99 + db TOWN_MAP, 1 + db SECRET_KEY, 1 + db CARD_KEY, 1 + db S_S_TICKET, 1 + db LIFT_KEY, 1 + db -1 ; end + +DebugUnusedList: + db -1 ; end +ELSE ret +ENDC |