diff options
author | dannye <33dannye@gmail.com> | 2020-11-06 23:11:17 -0600 |
---|---|---|
committer | dannye <33dannye@gmail.com> | 2020-11-06 23:11:17 -0600 |
commit | 989545f0e03b7e32d8ea80d8ab4455576dbd7116 (patch) | |
tree | b12573ca87d345ede7d40f7cf991032ee4b2650e | |
parent | 338f1276b48ce1394cb9de52b7646e9f8618b1b9 (diff) |
Start disassembling debug yellow
non matching
-rw-r--r-- | Makefile | 31 | ||||
-rw-r--r-- | engine/debug/debug_party.asm | 135 | ||||
-rwxr-xr-x | engine/movie/title.asm | 8 | ||||
-rw-r--r-- | home/npc_movement.asm | 8 | ||||
-rw-r--r-- | home/trainers.asm | 4 | ||||
-rw-r--r-- | roms.sha1 | 1 | ||||
-rwxr-xr-x | scripts/PalletTown.asm | 29 |
7 files changed, 199 insertions, 17 deletions
@@ -1,4 +1,4 @@ -rom := pokeyellow.gbc +roms := pokeyellow.gbc pokeyellow_debug.gbc rom_obj := \ audio.o \ @@ -12,6 +12,9 @@ gfx/pikachu.o \ gfx/sprites.o \ gfx/tilesets.o +pokeyellow_obj := $(rom_obj) +pokeyellow_debug_obj := $(rom_obj:.o=_debug.o) + ### Build tools @@ -34,20 +37,21 @@ RGBLINK ?= $(RGBDS)rgblink .SECONDEXPANSION: .PRECIOUS: .SECONDARY: -.PHONY: all yellow clean tidy compare tools +.PHONY: all yellow yellow_debug clean tidy compare tools -all: $(rom) -yellow: $(rom) +all: $(roms) +yellow: pokeyellow.gbc +yellow_debug: pokeyellow_debug.gbc clean: tidy find gfx \( -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' \) -delete find audio/pikachu_cries \( -iname '*.pcm' \) -delete tidy: - rm -f $(rom) $(rom_obj) $(rom:.gbc=.map) $(rom:.gbc=.sym) rgbdscheck.o + rm -f $(roms) $(pokeyellow_obj) $(pokeyellow_debug_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o $(MAKE) clean -C tools/ -compare: $(rom) +compare: $(roms) @$(SHA1) -c roms.sha1 tools: @@ -60,6 +64,8 @@ ifeq ($(DEBUG),1) RGBASMFLAGS += -E endif +$(pokeyellow_debug_obj): RGBASMFLAGS += -D _DEBUG + rgbdscheck.o: rgbdscheck.asm $(RGBASM) -o $@ $< @@ -78,18 +84,23 @@ ifeq (,$(filter clean tidy tools,$(MAKECMDGOALS))) $(info $(shell $(MAKE) -C tools)) # Dependencies for objects -$(foreach obj, $(rom_obj), $(eval $(call DEP,$(obj),$(obj:.o=.asm)))) +$(foreach obj, $(pokeyellow_obj), $(eval $(call DEP,$(obj),$(obj:.o=.asm)))) +$(foreach obj, $(pokeyellow_debug_obj), $(eval $(call DEP,$(obj),$(obj:_debug.o=.asm)))) endif %.asm: ; + +pokeyellow_pad = 0x00 +pokeyellow_debug_pad = 0xff + opts = -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03 -t "POKEMON YELLOW" -$(rom): $(rom_obj) layout.link - $(RGBLINK) -m $(rom:.gbc=.map) -n $(rom:.gbc=.sym) -l layout.link -o $@ $(filter %.o,$^) - $(RGBFIX) $(opts) $@ +%.gbc: $$(%_obj) layout.link + $(RGBLINK) -p $($*_pad) -m $*.map -n $*.sym -l layout.link -o $@ $(filter %.o,$^) + $(RGBFIX) -p $($*_pad) $(opts) $@ ### Misc file-specific graphics rules diff --git a/engine/debug/debug_party.asm b/engine/debug/debug_party.asm index 8545b848..2d8a4f1a 100644 --- a/engine/debug/debug_party.asm +++ b/engine/debug/debug_party.asm @@ -21,4 +21,139 @@ DebugTeam: 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 SetDebugTeam + + ; Pikachu gets Surf. + ld a, SURF + ld hl, wPartyMon4Moves + 2 + ld [hl], a + + ; Snorlax 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 + + ; 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 + + ; Player chose Pikachu. + ld hl, wRivalStarter + ld a, 1 + ld [hli], a + ld a, NUM_POKEMON + ld [hli], a ; ??? + ld a, PIKACHU + ld [hl], a ; hl = wPlayerStarter + + ; Give max money. + ld hl, wPlayerMoney + ld a, $99 + ld [hli], a + ld [hli], a + 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 MASTER_BALL, 99 + db TOWN_MAP, 1 + db BICYCLE, 1 + db FULL_RESTORE, 99 + db ESCAPE_ROPE, 99 + db RARE_CANDY, 99 + db SECRET_KEY, 1 + db CARD_KEY, 1 + db FULL_HEAL, 99 + db REVIVE, 99 + db FRESH_WATER, 99 + db S_S_TICKET, 1 + db LIFT_KEY, 1 + db PP_UP, 99 + db -1 ; end + +DebugUnusedList: + db OLD_AMBER, 1 + db DOME_FOSSIL, 1 + db HELIX_FOSSIL, 1 + db X_ACCURACY, 99 + db DIRE_HIT, 99 + db FRESH_WATER, 1 + db S_S_TICKET, 1 + db GOLD_TEETH, 1 + db COIN_CASE, 1 + db SILPH_SCOPE, 1 + db POKE_FLUTE, 1 + db LIFT_KEY, 1 + db ETHER, 99 + db MAX_ETHER, 99 + db ELIXER, 99 + db MAX_ELIXER, 99 + db TM_RAZOR_WIND, 10 + db TM_HORN_DRILL, 10 + db TM_TAKE_DOWN, 10 + db TM_BLIZZARD, 10 + db TM_HYPER_BEAM, 10 + db TM_SOLARBEAM, 10 + db TM_DRAGON_RAGE, 10 + db TM_MIMIC, 10 + db TM_BIDE, 10 + db TM_METRONOME, 10 + db TM_SELFDESTRUCT, 10 + db TM_SWIFT, 10 + db TM_SOFTBOILED, 10 + db TM_DREAM_EATER, 10 + db TM_REST, 10 + db TM_SUBSTITUTE, 10 + db -1 ; end +ELSE ret +ENDC diff --git a/engine/movie/title.asm b/engine/movie/title.asm index 11852ae4..546b136d 100755 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -190,7 +190,15 @@ DisplayTitleScreen: and D_UP | SELECT | B_BUTTON cp D_UP | SELECT | B_BUTTON jp z, .doClearSaveDialogue +IF DEF(_DEBUG) + ld a, b + bit BIT_SELECT, a + jp z, MainMenu + callfar Func_fe66e + jp hl +ELSE jp MainMenu +ENDC .asm_42f0 ; unreferenced diff --git a/home/npc_movement.asm b/home/npc_movement.asm index 200d3983..40942bf3 100644 --- a/home/npc_movement.asm +++ b/home/npc_movement.asm @@ -49,4 +49,12 @@ EndNPCMovementScript:: farjp _EndNPCMovementScript DebugPressedOrHeldB:: +IF DEF(_DEBUG) + ldh a, [hJoyHeld] + bit BIT_B_BUTTON, a + ret nz + ldh a, [hJoyPressed] + bit BIT_B_BUTTON, a + ret +ENDC ret diff --git a/home/trainers.asm b/home/trainers.asm index f407652a..468b63f8 100644 --- a/home/trainers.asm +++ b/home/trainers.asm @@ -127,6 +127,10 @@ TalkToTrainer:: ; checks if any trainers are seeing the player and wanting to fight CheckFightingMapTrainers:: +IF DEF(_DEBUG) + call DebugPressedOrHeldB + jr nz, .trainerNotEngaging +ENDC call CheckForEngagingTrainers ld a, [wSpriteIndex] cp $ff @@ -1 +1,2 @@ cc7d03262ebfaf2f06772c1a480c7d9d5f4a38e1 *pokeyellow.gbc +d44e96eddfbdad633cbe4e6e64915e9e198974b0 *pokeyellow_debug.gbc diff --git a/scripts/PalletTown.asm b/scripts/PalletTown.asm index 33d00c07..45a675e7 100755 --- a/scripts/PalletTown.asm +++ b/scripts/PalletTown.asm @@ -271,30 +271,45 @@ PalletTownText_19002: text_far _OakWhewText text_end -PalletTownText8: ; girl +PalletTownText8: text_far _OakGrassText text_end -PalletTownText2: ; fat man +PalletTownText2: ; girl text_far _PalletTownText2 text_end -PalletTownText3: ; sign by lab +PalletTownText3: ; fat man text_far _PalletTownText3 text_end -PalletTownText4: ; sign by fence +PalletTownText4: ; sign by lab text_far _PalletTownText4 text_end -PalletTownText5: ; sign by Red's house +PalletTownText5: ; sign by fence +IF DEF(_DEBUG) + text_asm + ld a, 239 + inc a + ld [wWhichPewterGuy], a + ld hl, PalletTownText_502b + call PrintText + jp TextScriptEnd + +PalletTownText_502b: + text_decimal wWhichPewterGuy, 1, 3 + text "bit" + done +ELSE text_far _PalletTownText5 text_end +ENDC -PalletTownText6: ; sign by Blue's house +PalletTownText6: ; sign by Red's house text_far _PalletTownText6 text_end -PalletTownText7: +PalletTownText7: ; sign by Blue's house text_far _PalletTownText7 text_end |