From 69a0ce42ac81d96f48a0f8522efc4f195de04493 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 20 May 2016 23:32:54 -0400 Subject: Disassemble yellow sounds --- engine/overworld/card_key.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engine') diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm index 2ef7529c..74c0d489 100755 --- a/engine/overworld/card_key.asm +++ b/engine/overworld/card_key.asm @@ -73,7 +73,7 @@ SilphCoMapList: ; 526e3 (14:66e3) CardKeySuccessText: ; 526ee (14:66ee) TX_FAR _CardKeySuccessText1 - db $0b + TX_SFX_ITEM TX_FAR _CardKeySuccessText2 db "@" -- cgit v1.3.1-sl0p From eeb058a23137bff0a7c046506cd448066500b608 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 21 May 2016 22:45:53 -0400 Subject: Some work on disassembling npc movement scripts (aka informed copy/paste from red) --- audio/sfx/heal_ailment_4.asm | 7 ++ audio/sfx/tink_4.asm | 8 ++ audio/sfx/unknown_80263.asm | 4 + audio/sfx/unknown_8029f.asm | 10 +++ engine/overworld/npc_movement.asm | 176 +++++++------------------------------- home.asm | 2 +- main.asm | 14 +-- wram.asm | 5 +- 8 files changed, 65 insertions(+), 161 deletions(-) create mode 100755 audio/sfx/heal_ailment_4.asm create mode 100755 audio/sfx/tink_4.asm create mode 100755 audio/sfx/unknown_80263.asm create mode 100755 audio/sfx/unknown_8029f.asm (limited to 'engine') diff --git a/audio/sfx/heal_ailment_4.asm b/audio/sfx/heal_ailment_4.asm new file mode 100755 index 00000000..fd80517d --- /dev/null +++ b/audio/sfx/heal_ailment_4.asm @@ -0,0 +1,7 @@ +SFX_8027f_4_Ch4: + duty 2 + unknownsfx0x10 23 + unknownsfx0x20 15, 240, 240, 4 + unknownsfx0x20 15, 242, 80, 6 + unknownsfx0x10 8 + endchannel diff --git a/audio/sfx/tink_4.asm b/audio/sfx/tink_4.asm new file mode 100755 index 00000000..4efa3209 --- /dev/null +++ b/audio/sfx/tink_4.asm @@ -0,0 +1,8 @@ +SFX_8028e_4_Ch4: + duty 2 + unknownsfx0x10 58 + unknownsfx0x20 4, 242, 0, 2 + unknownsfx0x10 34 + unknownsfx0x20 8, 226, 0, 2 + unknownsfx0x10 8 + endchannel diff --git a/audio/sfx/unknown_80263.asm b/audio/sfx/unknown_80263.asm new file mode 100755 index 00000000..884c1352 --- /dev/null +++ b/audio/sfx/unknown_80263.asm @@ -0,0 +1,4 @@ +SFX_80263_4_Ch7: + unknownnoise0x20 1, 226, 51 + unknownnoise0x20 8, 225, 34 + endchannel diff --git a/audio/sfx/unknown_8029f.asm b/audio/sfx/unknown_8029f.asm new file mode 100755 index 00000000..475c2813 --- /dev/null +++ b/audio/sfx/unknown_8029f.asm @@ -0,0 +1,10 @@ +SFX_8029f_4_Ch7: + unknownnoise0x20 6, 241, 17 + unknownnoise0x20 7, 242, 34 + unknownnoise0x20 8, 243, 51 + unknownnoise0x20 9, 244, 66 + unknownnoise0x20 10, 245, 51 + unknownnoise0x20 11, 246, 34 + unknownnoise0x20 12, 247, 17 + endchannel + diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index 719c8835..5c86d94f 100755 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -27,7 +27,7 @@ PlayerStepOutFromDoor: ; 1a3e0 (6:63e0) res 7, [hl] ret -_EndNPCMovementScript: ; 1a41d (6:641d) +_EndNPCMovementScript: ; 1a527 (6:6527) ld hl, wd730 res 7, [hl] ld hl, wd72e @@ -37,21 +37,21 @@ _EndNPCMovementScript: ; 1a41d (6:641d) res 1, [hl] xor a ld [wNPCMovementScriptSpriteOffset], a - ld [wNPCMovementScriptPointerTableNum], a ld [wNPCMovementScriptFunctionNum], a + ld [wNPCMovementScriptPointerTableNum], a ld [wWastedByteCD3A], a ld [wSimulatedJoypadStatesIndex], a ld [wSimulatedJoypadStatesEnd], a ret -PalletMovementScriptPointerTable: ; 1a442 (6:6442) +PalletMovementScriptPointerTable: ; 1a54c (6:654c) dw PalletMovementScript_OakMoveLeft dw PalletMovementScript_PlayerMoveLeft dw PalletMovementScript_WaitAndWalkToLab dw PalletMovementScript_WalkToLab dw PalletMovementScript_Done -PalletMovementScript_OakMoveLeft: ; 1a44c (6:644c) +PalletMovementScript_OakMoveLeft: ; 1a556 (6:6556) ld a, [wXCoord] sub $a ld [wNumStepsToTake], a @@ -79,31 +79,37 @@ PalletMovementScript_OakMoveLeft: ; 1a44c (6:644c) ld a, $3 ld [wNPCMovementScriptFunctionNum], a .done + ld a, $2 + ld c, a + ld a, SFX_BATTLE_34 + call PlayMusic ld hl, wFlags_D733 set 1, [hl] ld a, $fc ld [wJoyIgnore], a ret -PalletMovementScript_PlayerMoveLeft: ; 1a485 (6:6485) +PalletMovementScript_PlayerMoveLeft: ; 1a597 (6:6597) ld a, [wd730] bit 0, a ; is an NPC being moved by a script? ret nz ; return if Oak is still moving ld a, [wNumStepsToTake] ld [wSimulatedJoypadStatesIndex], a ld [hNPCMovementDirections2Index], a - predef ConvertNPCMovementDirectionsToJoypadMasks + ; predef ConvertNPCMovementDirectionsToJoypadMasks + ld a, $23 + call Predef call StartSimulatingJoypadStates ld a, $2 ld [wNPCMovementScriptFunctionNum], a ret -PalletMovementScript_WaitAndWalkToLab: ; 1a4a1 (6:64a1) +PalletMovementScript_WaitAndWalkToLab: ; 1a5b3 (6:65b3) ld a, [wSimulatedJoypadStatesIndex] and a ; is the player done moving left yet? ret nz -PalletMovementScript_WalkToLab: ; 1a4a6 (6:64a6) +PalletMovementScript_WalkToLab: ; 1a5b8 (6:65b8) xor a ld [wOverrideSimulatedJoypadStatesMask], a ld a, [wSpriteIndex] @@ -127,8 +133,9 @@ PalletMovementScript_WalkToLab: ; 1a4a6 (6:64a6) ld [wNPCMovementScriptFunctionNum], a ret -RLEList_ProfOakWalkToLab: ; 1a4dc (6:64dc) - db NPC_MOVEMENT_DOWN, $05 + +RLEList_ProfOakWalkToLab: ; 1a5ee (6:65ee) + db NPC_MOVEMENT_DOWN, $06 ; differs from red db NPC_MOVEMENT_LEFT, $01 db NPC_MOVEMENT_DOWN, $05 db NPC_MOVEMENT_RIGHT, $03 @@ -136,157 +143,32 @@ RLEList_ProfOakWalkToLab: ; 1a4dc (6:64dc) db $E0, $01 ; stand still db $FF -RLEList_PlayerWalkToLab: ; 1a4e9 (6:64e9) +RLEList_PlayerWalkToLab: ; 1a5fb (6:65fb) db D_UP, $02 db D_RIGHT, $03 db D_DOWN, $05 db D_LEFT, $01 - db D_DOWN, $06 + db D_DOWN, $07 ; differs from red db $FF -PalletMovementScript_Done: ; 1a4f4 (6:64f4) +PalletMovementScript_Done: ; 1a606 (6:6606) ld a, [wSimulatedJoypadStatesIndex] and a ret nz ld a, $0 ld [wMissableObjectIndex], a - predef HideObject - ld hl, wd730 - res 7, [hl] - ld hl, wd72e - res 7, [hl] - jp EndNPCMovementScript - -PewterMuseumGuyMovementScriptPointerTable: ; 1a510 (6:6510) - dw PewterMovementScript_WalkToMuseum - dw PewterMovementScript_Done - -PewterMovementScript_WalkToMuseum: ; 1a514 (6:6514) - ld a, BANK(Music_MuseumGuy) - ld [wAudioROMBank], a - ld [wAudioSavedROMBank], a - ld a, MUSIC_MUSEUM_GUY - ld [wNewSoundID], a - call PlaySound - ld a, [wSpriteIndex] - swap a - ld [wNPCMovementScriptSpriteOffset], a - call StartSimulatingJoypadStates - ld hl, wSimulatedJoypadStatesEnd - ld de, RLEList_PewterMuseumPlayer - call DecodeRLEList - dec a - ld [wSimulatedJoypadStatesIndex], a - xor a - ld [wWhichPewterGuy], a - predef PewterGuys - ld hl, wNPCMovementDirections2 - ld de, RLEList_PewterMuseumGuy - call DecodeRLEList - ld hl, wd72e - res 7, [hl] - ld a, $1 - ld [wNPCMovementScriptFunctionNum], a - ret - -RLEList_PewterMuseumPlayer: ; 1a559 (6:6559) - db 0, $01 - db D_UP, $03 - db D_LEFT, $0D - db D_UP, $06 - db $FF - -RLEList_PewterMuseumGuy: ; 1a562 (6:6562) - db NPC_MOVEMENT_UP, $06 - db NPC_MOVEMENT_LEFT, $0D - db NPC_MOVEMENT_UP, $03 - db NPC_MOVEMENT_LEFT, $01 - db $FF - -PewterMovementScript_Done: ; 1a56b (6:656b) - ld a, [wSimulatedJoypadStatesIndex] - and a - ret nz + ; predef HideObject + ld a, $11 + call Predef ld hl, wd730 res 7, [hl] ld hl, wd72e res 7, [hl] jp EndNPCMovementScript -PewterGymGuyMovementScriptPointerTable: ; 1a57d (6:657d) - dw PewterMovementScript_WalkToGym - dw PewterMovementScript_Done - -PewterMovementScript_WalkToGym: ; 1a581 (6:6581) - ld a, BANK(Music_MuseumGuy) - ld [wAudioROMBank], a - ld [wAudioSavedROMBank], a - ld a, MUSIC_MUSEUM_GUY - ld [wNewSoundID], a - call PlaySound - ld a, [wSpriteIndex] - swap a - ld [wNPCMovementScriptSpriteOffset], a - xor a - ld [wSpriteStateData2 + $06], a - ld hl, wSimulatedJoypadStatesEnd - ld de, RLEList_PewterGymPlayer - call DecodeRLEList - dec a - ld [wSimulatedJoypadStatesIndex], a - ld a, 1 - ld [wWhichPewterGuy], a - predef PewterGuys - ld hl, wNPCMovementDirections2 - ld de, RLEList_PewterGymGuy - call DecodeRLEList - ld hl, wd72e - res 7, [hl] - ld hl, wd730 - set 7, [hl] - ld a, $1 - ld [wNPCMovementScriptFunctionNum], a - ret - -RLEList_PewterGymPlayer: ; 1a5cd (6:65cd) - db 0, $01 - db D_RIGHT, $02 - db D_DOWN, $05 - db D_LEFT, $0B - db D_UP, $05 - db D_LEFT, $0F - db $FF - -RLEList_PewterGymGuy: ; 1a5da (6:65da) - db NPC_MOVEMENT_DOWN, $02 - db NPC_MOVEMENT_LEFT, $0F - db NPC_MOVEMENT_UP, $05 - db NPC_MOVEMENT_LEFT, $0B - db NPC_MOVEMENT_DOWN, $05 - db NPC_MOVEMENT_RIGHT, $03 - db $FF - -FreezeEnemyTrainerSprite: ; 1a5e7 (6:65e7) - ld a, [wCurMap] - cp POKEMONTOWER_7 - ret z ; the Rockets on Pokemon Tower 7F leave after battling, so don't freeze them - ld hl, RivalIDs - ld a, [wEngagedTrainerClass] - ld b, a -.loop - ld a, [hli] - cp $ff - jr z, .notRival - cp b - ret z ; the rival leaves after battling, so don't freeze him - jr .loop -.notRival - ld a, [wSpriteIndex] - ld [H_SPRITEINDEX], a - jp SetSpriteMovementBytesToFF - -RivalIDs: ; 1a605 (6:6605) - db OPP_SONY1 - db OPP_SONY2 - db OPP_SONY3 - db $ff +PewterMuseumGuyMovementScriptPointerTable: ; 1a622 (6:6622) + dr $1a622,$1a685 +PewterGymGuyMovementScriptPointerTable: ; 1a685 (6:6685) + dr $1a685,$1a785 +IsPlayerStandingOnDoorTile: ; 1a785 (6:6785) + dr $1a785,$1a7f4 diff --git a/home.asm b/home.asm index c3942031..c8f227ef 100644 --- a/home.asm +++ b/home.asm @@ -2447,7 +2447,7 @@ RunNPCMovementScript:: ; 30ae (0:30ae) ret .NPCMovementScriptPointerTables - dw ProfOakMovementScriptPointerTable + dw PalletMovementScriptPointerTable dw PewterMuseumGuyMovementScriptPointerTable dw PewterGymGuyMovementScriptPointerTable .playerStepOutFromDoor diff --git a/main.asm b/main.asm index e9064d2b..2f08ff94 100755 --- a/main.asm +++ b/main.asm @@ -232,18 +232,8 @@ INCLUDE "engine/menu/pc.asm" SECTION "bank06",ROMX,BANK[$06] dr $18000,$1a4ea -PlayerStepOutFromDoor: ; 1a4ea (6:64ea) - dr $1a4ea,$1a527 -_EndNPCMovementScript: ; 1a527 (6:6527) - dr $1a527,$1a54c -ProfOakMovementScriptPointerTable: ; 1a54c (6:654c) - dr $1a54c,$1a622 -PewterMuseumGuyMovementScriptPointerTable: ; 1a622 (6:6622) - dr $1a622,$1a685 -PewterGymGuyMovementScriptPointerTable: ; 1a685 (6:6685) - dr $1a685,$1a785 -IsPlayerStandingOnDoorTile: ; 1a785 (6:6785) - dr $1a785,$1a7f4 + +INCLUDE "engine/overworld/npc_movement.asm" HandleLedges: ; 1a7f4 (6:67f4) dr $1a7f4,$1c000 diff --git a/wram.asm b/wram.asm index 6aa3ce32..3ba0c67b 100755 --- a/wram.asm +++ b/wram.asm @@ -3026,7 +3026,10 @@ wFlags_D733:: ; d733 wBeatLorelei:: ; d734 ; bit 1: set when you beat Lorelei and reset in Indigo Plateau lobby ; the game uses this to tell when Elite 4 events need to be reset - ds 2 + ds 1 + +wd735:: ; d735 + ds 1 wd736:: ; d736 ; bit 0: check if the player is standing on a door and make him walk down a step if so -- cgit v1.3.1-sl0p From f3f117cbf3be12adfaa0c3195266dfa9f6f8734b Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 21 May 2016 22:54:46 -0400 Subject: Oh wait, there's predef_const declarations. Huh. --- engine/overworld/npc_movement.asm | 8 +- engine/predefs.asm | 199 +++++++++++++++++++------------------- 2 files changed, 101 insertions(+), 106 deletions(-) (limited to 'engine') diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index 5c86d94f..d7f2b1cd 100755 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -96,9 +96,7 @@ PalletMovementScript_PlayerMoveLeft: ; 1a597 (6:6597) ld a, [wNumStepsToTake] ld [wSimulatedJoypadStatesIndex], a ld [hNPCMovementDirections2Index], a - ; predef ConvertNPCMovementDirectionsToJoypadMasks - ld a, $23 - call Predef + predef ConvertNPCMovementDirectionsToJoypadMasks call StartSimulatingJoypadStates ld a, $2 ld [wNPCMovementScriptFunctionNum], a @@ -157,9 +155,7 @@ PalletMovementScript_Done: ; 1a606 (6:6606) ret nz ld a, $0 ld [wMissableObjectIndex], a - ; predef HideObject - ld a, $11 - call Predef + predef HideObject ld hl, wd730 res 7, [hl] ld hl, wd72e diff --git a/engine/predefs.asm b/engine/predefs.asm index fa6e29df..3ec98577 100755 --- a/engine/predefs.asm +++ b/engine/predefs.asm @@ -52,103 +52,102 @@ GetPredefPointer: ; f67ed (3d:67ed) PredefPointers:: ; f681d (3d:681d) ; these are pointers to ASM routines. ; they appear to be used in overworld map scripts. - dr $f681d,$f7000 - ;add_predef DrawPlayerHUDAndHPBar - ;add_predef CopyUncompressedPicToTilemap - ;add_predef Func_3f073 - ;add_predef ScaleSpriteByTwo - ;add_predef LoadMonBackPic - ;add_predef CopyDownscaledMonTiles - ;add_predef LoadMissableObjects - ;add_predef HealParty - ;add_predef MoveAnimation; 08 play move animation - ;add_predef DivideBCDPredef - ;add_predef DivideBCDPredef2 - ;add_predef AddBCDPredef - ;add_predef SubBCDPredef - ;add_predef DivideBCDPredef3 - ;add_predef DivideBCDPredef4 - ;add_predef InitPlayerData - ;add_predef FlagActionPredef - ;add_predef HideObject - ;add_predef IsObjectHidden - ;add_predef ApplyOutOfBattlePoisonDamage - ;add_predef AnyPartyAlive - ;add_predef ShowObject - ;add_predef ShowObject2 - ;add_predef ReplaceTileBlock - ;add_predef InitPlayerData2 - ;add_predef LoadTilesetHeader - ;add_predef LearnMoveFromLevelUp - ;add_predef LearnMove - ;add_predef IsItemInBag_ - ;dbw $03,CheckForHiddenObjectOrBookshelfOrCardKeyDoor ; for these two, the bank number is actually 0 - ;dbw $03,GiveItem - ;add_predef InvertBGPal_4Frames - ;add_predef FindPathToPlayer - ;add_predef Func_480ff - ;add_predef CalcPositionOfPlayerRelativeToNPC - ;add_predef ConvertNPCMovementDirectionsToJoypadMasks - ;add_predef Func_48125 - ;add_predef UpdateHPBar - ;add_predef HPBarLength - ;add_predef Diploma_TextBoxBorder - ;add_predef DoubleOrHalveSelectedStats - ;add_predef ShowPokedexMenu - ;add_predef EvolutionAfterBattle - ;add_predef SaveSAVtoSRAM0 - ;add_predef InitOpponent - ;add_predef CableClub_Run - ;add_predef DrawBadges - ;add_predef ExternalClockTradeAnim - ;add_predef BattleTransition - ;add_predef CopyTileIDsFromList - ;add_predef PlayIntro - ;add_predef Func_79869 - ;add_predef FlashScreen - ;add_predef GetTileAndCoordsInFrontOfPlayer - ;add_predef StatusScreen - ;add_predef StatusScreen2 - ;add_predef InternalClockTradeAnim - ;add_predef TrainerEngage - ;add_predef IndexToPokedex - ;add_predef DisplayPicCenteredOrUpperRight; 3B display pic? - ;add_predef UsedCut - ;add_predef ShowPokedexData - ;add_predef WriteMonMoves - ;add_predef SaveSAV - ;add_predef LoadSGB - ;add_predef MarkTownVisitedAndLoadMissableObjects - ;add_predef SetPartyMonTypes - ;add_predef CanLearnTM - ;add_predef TMToMove - ;add_predef Func_71ddf - ;add_predef StarterDex ; 46 - ;add_predef _AddPartyMon - ;add_predef UpdateHPBar2 - ;add_predef DrawEnemyHUDAndHPBar - ;add_predef LoadTownMap_Nest - ;add_predef PrintMonType - ;add_predef EmotionBubble; 4C player exclamation - ;add_predef EmptyFunc3; return immediately - ;add_predef AskName - ;add_predef PewterGuys - ;add_predef SaveSAVtoSRAM2 - ;add_predef LoadSAVCheckSum2 - ;add_predef LoadSAV - ;add_predef SaveSAVtoSRAM1 - ;add_predef DoInGameTradeDialogue ; 54 initiate trade - ;add_predef HallOfFamePC - ;add_predef DisplayDexRating - ;dbw $1E, _LeaveMapAnim ; wrong bank - ;dbw $1E, EnterMapAnim ; wrong bank - ;add_predef GetTileTwoStepsInFrontOfPlayer - ;add_predef CheckForCollisionWhenPushingBoulder - ;add_predef PrintStrengthTxt - ;add_predef PickupItem - ;add_predef PrintMoveType - ;add_predef LoadMovePPs - ;add_predef DrawHP ; 5F - ;add_predef DrawHP2 - ;add_predef Func_1c9c6 - ;add_predef OaksAideScript \ No newline at end of file + dbw BANK(DrawPlayerHUDAndHPBar), DrawPlayerHUDAndHPBar ; add_predef DrawPlayerHUDAndHPBar + dbw $3d, $61f9 ; add_predef CopyUncompressedPicToTilemap + dbw $3d, $61a6 ; add_predef Func_3f073 + dbw $0b, $7d79 ; add_predef ScaleSpriteByTwo + dbw $3d, $6178 ; add_predef LoadMonBackPic + dbw $1e, $5c16 ; add_predef CopyDownscaledMonTiles + dbw $03, $70a7 ; add_predef LoadMissableObjects + dbw $03, $752b ; add_predef HealParty + dbw $1e, $4d97 ; add_predef MoveAnimation; 08 play move animation + dbw $03, $75a4 ; add_predef DivideBCDPredef + dbw $03, $75a4 ; add_predef DivideBCDPredef2 + dbw $03, $76a3 ; add_predef AddBCDPredef + dbw $03, $76bc ; add_predef SubBCDPredef + dbw $03, $75a4 ; add_predef DivideBCDPredef3 + dbw $03, $75a4 ; add_predef DivideBCDPredef4 + dbw $03, $76d6 ; add_predef InitPlayerData + dbw $03, $74ec ; add_predef FlagActionPredef + dbw $03, $7053 ; add_predef HideObject + dbw $03, $7022 ; add_predef IsObjectHidden + dbw $03, $43de ; add_predef ApplyOutOfBattlePoisonDamage + dbw $0f, $4ae8 ; add_predef AnyPartyAlive + dbw $03, $7044 ; add_predef ShowObject + dbw $03, $7044 ; add_predef ShowObject2 + dbw $03, $6d1b ; add_predef ReplaceTileBlock + dbw $03, $76d6 ; add_predef InitPlayerData2 + dbw $03, $44f4 ; add_predef LoadTilesetHeader + dbw $0e, $700c ; add_predef LearnMoveFromLevelUp + dbw $01, $6bc8 ; add_predef LearnMove + dbw $03, $7735 ; add_predef IsItemInBag_ + dbw $03, $3ef9 ; dbw $03,CheckForHiddenObjectOrBookshelfOrCardKeyDoor ; for these two, the ba + dbw $03, $3e3f ; dbw $03,GiveItem + dbw $0a, $7d4c ; add_predef InvertBGPal_4Frames + dbw $03, $774a ; add_predef FindPathToPlayer + dbw $0a, $7d67 ; add_predef Func_480ff + dbw $03, $77b9 ; add_predef CalcPositionOfPlayerRelativeToNPC + dbw $03, $7830 ; add_predef ConvertNPCMovementDirectionsToJoypadMasks + dbw $0a, $7d8d ; add_predef Func_48125 + dbw $03, $78ad ; add_predef UpdateHPBar + dbw $03, $786c ; add_predef HPBarLength + dbw $01, $5b64 ; add_predef Diploma_TextBoxBorder + dbw $0f, $6e8e ; add_predef DoubleOrHalveSelectedStats + dbw $10, $4000 ; add_predef ShowPokedexMenu + dbw $0e, $6dc6 ; add_predef EvolutionAfterBattle + dbw $1c, $7ae5 ; add_predef SaveSAVtoSRAM0 + dbw $3d, $5ff8 ; add_predef InitOpponent + dbw $01, $5b13 ; add_predef CableClub_Run + dbw $03, $6880 ; add_predef DrawBadges + dbw $10, $53f6 ; add_predef ExternalClockTradeAnim + dbw $1c, $49d7 ; add_predef BattleTransition + dbw $1e, $5f7b ; add_predef CopyTileIDsFromList + dbw $10, $5997 ; add_predef PlayIntro + dbw $1e, $59c5 ; add_predef Func_79869 + dbw $1c, $4bd0 ; add_predef FlashScreen + dbw $03, $42d1 ; add_predef GetTileAndCoordsInFrontOfPlayer + dbw $04, $54cc ; add_predef StatusScreen + dbw $04, $56fb ; add_predef StatusScreen2 + dbw $10, $53e5 ; add_predef InternalClockTradeAnim + dbw $15, $685b ; add_predef TrainerEngage + dbw $10, $509d ; add_predef IndexToPokedex + dbw $01, $600d ; add_predef DisplayPicCenteredOrUpperRight; 3B display pic? + dbw $03, $6dd1 ; add_predef UsedCut + dbw $10, $4312 ; add_predef ShowPokedexData + dbw $0e, $713f ; add_predef WriteMonMoves + dbw $1c, $7a67 ; add_predef SaveSAV + dbw $1c, $61f8 ; add_predef LoadSGB + dbw $03, $6f93 ; add_predef MarkTownVisitedAndLoadMissableObjects + dbw $17, $5b93 ; add_predef SetPartyMonTypes + dbw $04, $62f0 ; add_predef CanLearnTM + dbw $04, $631d ; add_predef TMToMove + dbw $1c, $5eb3 ; add_predef Func_71ddf + dbw $17, $40d4 ; add_predef StarterDex ; 46 + dbw $03, $7161 ; add_predef _AddPartyMon + dbw $03, $78ad ; add_predef UpdateHPBar2 + dbw $0f, $4eb1 ; add_predef DrawEnemyHUDAndHPBar + dbw $1c, $4fe4 ; add_predef LoadTownMap_Nest + dbw $09, $7d20 ; add_predef PrintMonType + dbw $10, $516f ; add_predef EmotionBubble; 4C player exclamation + dbw $01, $5b63 ; add_predef EmptyFunc3; return immediately + dbw $01, $625d ; add_predef AskName + dbw $06, $66e5 ; add_predef PewterGuys + dbw $1c, $7b56 ; add_predef SaveSAVtoSRAM2 + dbw $1c, $7a24 ; add_predef LoadSAVCheckSum2 + dbw $1c, $7959 ; add_predef LoadSAV + dbw $1c, $7b32 ; add_predef SaveSAVtoSRAM1 + dbw $1c, $5b86 ; add_predef DoInGameTradeDialogue ; 54 initiate trade + dbw $3c, $4f26 ; add_predef HallOfFamePC + dbw $11, $4169 ; add_predef DisplayDexRating + dbw $1e, $4615 ; dbw $1E, _LeaveMapAnim ; wrong bank + dbw $1e, $4567 ; dbw $1E, EnterMapAnim ; wrong bank + dbw $03, $4309 ; add_predef GetTileTwoStepsInFrontOfPlayer + dbw $03, $4356 ; add_predef CheckForCollisionWhenPushingBoulder + dbw $3d, $5b06 ; add_predef PrintStrengthTxt + dbw $01, $4d55 ; add_predef PickupItem + dbw $09, $7d4d ; add_predef PrintMoveType + dbw $03, $72f9 ; add_predef LoadMovePPs + dbw $04, $5468 ; add_predef DrawHP ; 5F + dbw $04, $546f ; add_predef DrawHP2 + dbw $07, $4264 ; add_predef Func_1c9c6 + dbw $16, $4ecc ; add_predef OaksAideScript -- cgit v1.3.1-sl0p From 205fa4237b639b7dbf77cb36caead05f17e8de8c Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 09:43:27 -0400 Subject: Pewter gym guys (moved to bank 6, no longer a predef?) --- engine/overworld/npc_movement.asm | 112 ++++++++++++++++++++++++++++++++++++-- engine/overworld/pewter_guys.asm | 8 +-- 2 files changed, 112 insertions(+), 8 deletions(-) (limited to 'engine') diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index d7f2b1cd..f474a14c 100755 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -79,9 +79,9 @@ PalletMovementScript_OakMoveLeft: ; 1a556 (6:6556) ld a, $3 ld [wNPCMovementScriptFunctionNum], a .done - ld a, $2 + ld a, BANK(Music_MuseumGuy) ld c, a - ld a, SFX_BATTLE_34 + ld a, MUSIC_MUSEUM_GUY call PlayMusic ld hl, wFlags_D733 set 1, [hl] @@ -163,8 +163,112 @@ PalletMovementScript_Done: ; 1a606 (6:6606) jp EndNPCMovementScript PewterMuseumGuyMovementScriptPointerTable: ; 1a622 (6:6622) - dr $1a622,$1a685 + dw PewterMovementScript_WalkToMuseum + dw PewterMovementScript_Done + +PewterMovementScript_WalkToMuseum: ; 1a626 (6:6626) + ld a, BANK(Music_MuseumGuy) + ld c, a + ld a, MUSIC_MUSEUM_GUY + call PlayMusic + ld a, [wSpriteIndex] + swap a + ld [wNPCMovementScriptSpriteOffset], a + call StartSimulatingJoypadStates + ld hl, wSimulatedJoypadStatesEnd + ld de, RLEList_PewterMuseumPlayer + call DecodeRLEList + dec a + ld [wSimulatedJoypadStatesIndex], a + xor a + ld [wWhichPewterGuy], a + call PewterGuys + ld hl, wNPCMovementDirections2 + ld de, RLEList_PewterMuseumGuy + call DecodeRLEList + ld hl, wd72e + res 7, [hl] + ld a, $1 + ld [wNPCMovementScriptFunctionNum], a + ret + +RLEList_PewterMuseumPlayer: ; 1a661 (6:6661) + db 0, $01 + db D_UP, $03 + db D_LEFT, $0D + db D_UP, $06 + db $FF + +RLEList_PewterMuseumGuy: ; 1a66a (6:666a) + db NPC_MOVEMENT_UP, $06 + db NPC_MOVEMENT_LEFT, $0D + db NPC_MOVEMENT_UP, $03 + db NPC_MOVEMENT_LEFT, $01 + db $FF + +PewterMovementScript_Done: ; 1a673 (6:6673) + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + ld hl, wd730 + res 7, [hl] + ld hl, wd72e + res 7, [hl] + jp EndNPCMovementScript + PewterGymGuyMovementScriptPointerTable: ; 1a685 (6:6685) - dr $1a685,$1a785 + dw PewterMovementScript_WalkToGym + dw PewterMovementScript_Done + +PewterMovementScript_WalkToGym: ; 1a689 (6:6689) + ld a, BANK(Music_MuseumGuy) + ld c, a + ld a, MUSIC_MUSEUM_GUY + call PlayMusic + ld a, [wSpriteIndex] + swap a + ld [wNPCMovementScriptSpriteOffset], a + xor a + ld [wSpriteStateData2 + $06], a + ld hl, wSimulatedJoypadStatesEnd + ld de, RLEList_PewterGymPlayer + call DecodeRLEList + dec a + ld [wSimulatedJoypadStatesIndex], a + ld a, 1 + ld [wWhichPewterGuy], a + call PewterGuys + ld hl, wNPCMovementDirections2 + ld de, RLEList_PewterGymGuy + call DecodeRLEList + ld hl, wd72e + res 7, [hl] + ld hl, wd730 + set 7, [hl] + ld a, $1 + ld [wNPCMovementScriptFunctionNum], a + ret + +RLEList_PewterGymPlayer: ; 1a6cb (6:66cb) + db 0, $01 + db D_RIGHT, $02 + db D_DOWN, $05 + db D_LEFT, $0B + db D_UP, $05 + db D_LEFT, $0F + db $FF + +RLEList_PewterGymGuy: ; 1a6cd8(6:66d8) + db NPC_MOVEMENT_DOWN, $02 + db NPC_MOVEMENT_LEFT, $0F + db NPC_MOVEMENT_UP, $05 + db NPC_MOVEMENT_LEFT, $0B + db NPC_MOVEMENT_DOWN, $05 + db NPC_MOVEMENT_RIGHT, $03 + db $FF + +INCLUDE "engine/overworld/pewter_guys.asm" +; PewterGuys: + ; dr $1a66e5,$1a785 IsPlayerStandingOnDoorTile: ; 1a785 (6:6785) dr $1a785,$1a7f4 diff --git a/engine/overworld/pewter_guys.asm b/engine/overworld/pewter_guys.asm index 543dac91..ff3c6152 100755 --- a/engine/overworld/pewter_guys.asm +++ b/engine/overworld/pewter_guys.asm @@ -1,4 +1,4 @@ -PewterGuys: ; 37ca1 (d:7ca1) +PewterGuys: ; 1a6e5 (6:66e5) ld hl, wSimulatedJoypadStatesEnd ld a, [wSimulatedJoypadStatesIndex] dec a ; this decrement causes it to overwrite the last byte before $FF in the list @@ -48,14 +48,14 @@ PewterGuys: ; 37ca1 (d:7ca1) inc hl jr .findMatchingCoordsLoop -PointerTable_37ce6: ; 37ce6 (d:7ce6) +PointerTable_37ce6: ; 1a72a (6:672a) dw PewterMuseumGuyCoords dw PewterGymGuyCoords ; these are the four coordinates of the spaces below, above, to the left and ; to the right of the museum guy, and pointers to different movements for ; the player to make to get positioned before the main movement. -PewterMuseumGuyCoords: ; 37cea (d:7cea) +PewterMuseumGuyCoords: ; 1a72e (6:672e) db 18, 27 dw .down db 16, 27 @@ -78,7 +78,7 @@ PewterMuseumGuyCoords: ; 37cea (d:7cea) ; different movements for the player to make to get positioned before the ; main movement ; $00 is a pause -PewterGymGuyCoords: ; 37d06 (d:7d06) +PewterGymGuyCoords: ; 1a74a (6:674a) db 16, 34 dw .one db 17, 35 -- cgit v1.3.1-sl0p From 084384fea927b64632ca0970624a1ee1f7f19ea0 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 10:48:27 -0400 Subject: Ledges --- engine/overworld/doors.asm | 55 ++++++++++++++++----------------------- engine/overworld/ledges.asm | 26 ++++++++++-------- engine/overworld/npc_movement.asm | 4 --- main.asm | 4 +-- 4 files changed, 40 insertions(+), 49 deletions(-) (limited to 'engine') diff --git a/engine/overworld/doors.asm b/engine/overworld/doors.asm index 6b0c0464..99e07174 100755 --- a/engine/overworld/doors.asm +++ b/engine/overworld/doors.asm @@ -25,33 +25,21 @@ IsPlayerStandingOnDoorTile: ; 1a609 (6:6609) and a ret -DoorTileIDPointers: ; 1a62c (6:662c) - db OVERWORLD - dw OverworldDoorTileIDs - db FOREST - dw ForestDoorTileIDs - db MART - dw MartDoorTileIDs - db HOUSE - dw HouseDoorTileIDs - db FOREST_GATE - dw TilesetMuseumDoorTileIDs - db MUSEUM - dw TilesetMuseumDoorTileIDs - db GATE - dw TilesetMuseumDoorTileIDs - db SHIP - dw ShipDoorTileIDs - db LOBBY - dw LobbyDoorTileIDs - db MANSION - dw MansionDoorTileIDs - db LAB - dw LabDoorTileIDs - db FACILITY - dw FacilityDoorTileIDs - db PLATEAU - dw PlateauDoorTileIDs +DoorTileIDPointers: ; 1a7a8 (6:67a8) + dbw OVERWORLD, OverworldDoorTileIDs + dbw FOREST, ForestDoorTileIDs + dbw MART, MartDoorTileIDs + dbw HOUSE, HouseDoorTileIDs + dbw FOREST_GATE, TilesetMuseumDoorTileIDs + dbw MUSEUM, TilesetMuseumDoorTileIDs + dbw GATE, TilesetMuseumDoorTileIDs + dbw SHIP, ShipDoorTileIDs + dbw LOBBY, LobbyDoorTileIDs + dbw MANSION, MansionDoorTileIDs + dbw LAB, LabDoorTileIDs + dbw FACILITY, FacilityDoorTileIDs + dbw PLATEAU, PlateauDoorTileIDs + dbw INTERIOR, InteriorDoorTileIDs db $ff OverworldDoorTileIDs: ; 1a654 (6:6654) @@ -72,17 +60,20 @@ TilesetMuseumDoorTileIDs: ; 1a65d (6:665d) ShipDoorTileIDs: ; 1a65f (6:665f) db $1e,$00 -LobbyDoorTileIDs: ; 1a661 (6:6661) +LobbyDoorTileIDs: ; 1a7e0 (6:67e0) db $1c,$38,$1a,$00 -MansionDoorTileIDs: ; 1a665 (6:6665) +MansionDoorTileIDs: ; 1a7e4 (6:67e4) db $1a,$1c,$53,$00 -LabDoorTileIDs: ; 1a669 (6:6669) +LabDoorTileIDs: ; 1a7e8 (6:67e8) db $34,$00 -FacilityDoorTileIDs: ; 1a66b (6:666b) +FacilityDoorTileIDs: ; 1a7ea (6:67ea) db $43,$58,$1b,$00 -PlateauDoorTileIDs: ; 1a66f (6:666f) +PlateauDoorTileIDs: ; 1a7ee (6:67ee) db $3b,$1b,$00 + +InteriorDoorTileIDs: ; 1a7f1 (6:67f1) + db $04,$15,$00 diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm index b04f6332..a6ebd9be 100755 --- a/engine/overworld/ledges.asm +++ b/engine/overworld/ledges.asm @@ -1,4 +1,4 @@ -HandleLedges: ; 1a672 (6:6672) +HandleLedges: ; 1a7f4 (6:67f4) ld a, [wd736] bit 6, a ; already jumping down ledge ret nz @@ -55,7 +55,7 @@ HandleLedges: ; 1a672 (6:6672) ret ; (player direction) (tile player standing on) (ledge tile) (input required) -LedgeTiles: ; 1a6cf (6:66cf) +LedgeTiles: ; 1a851 (6:6851) db SPRITE_FACING_DOWN, $2C,$37,D_DOWN db SPRITE_FACING_DOWN, $39,$36,D_DOWN db SPRITE_FACING_DOWN, $39,$37,D_DOWN @@ -66,21 +66,25 @@ LedgeTiles: ; 1a6cf (6:66cf) db SPRITE_FACING_RIGHT,$39,$0D,D_RIGHT db $FF -LoadHoppingShadowOAM: ; 1a6f0 (6:66f0) +LoadHoppingShadowOAM: ; 1a872 (6:6872) ld hl, vChars1 + $7f0 ld de, LedgeHoppingShadow lb bc, BANK(LedgeHoppingShadow), (LedgeHoppingShadowEnd - LedgeHoppingShadow) / $8 call CopyVideoDataDouble - ld a, $9 - lb bc, $54, $48 ; b, c = y, x coordinates of shadow - ld de, LedgeHoppingShadowOAM - call WriteOAMBlock + ld hl, LedgeHoppingShadowOAM + ld de, wOAMBuffer + 36 * 4 + ld bc, LedgeHoppingShadowOAMEnd - LedgeHoppingShadowOAM + call CopyData + ld a, $a0 + ld [wOAMBuffer + 38 * 4], a + ld [wOAMBuffer + 39 * 4], a ret -LedgeHoppingShadow: ; 1a708 (6:6708) +LedgeHoppingShadow: ; 1a893 (6:6893) INCBIN "gfx/ledge_hopping_shadow.1bpp" LedgeHoppingShadowEnd: -LedgeHoppingShadowOAM: ; 1a710 (6:6710) - db $FF,$10,$FF,$20 - db $FF,$40,$FF,$60 +LedgeHoppingShadowOAM: ; 1a89b (6:689b) + db $58,$48,$FF,$00 + db $58,$50,$FF,$20 +LedgeHoppingShadowOAMEnd: ; 1a8a3 (6:68a3) diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index f474a14c..58eb6a47 100755 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -268,7 +268,3 @@ RLEList_PewterGymGuy: ; 1a6cd8(6:66d8) db $FF INCLUDE "engine/overworld/pewter_guys.asm" -; PewterGuys: - ; dr $1a66e5,$1a785 -IsPlayerStandingOnDoorTile: ; 1a785 (6:6785) - dr $1a785,$1a7f4 diff --git a/main.asm b/main.asm index 2f08ff94..b8d32069 100755 --- a/main.asm +++ b/main.asm @@ -234,8 +234,8 @@ SECTION "bank06",ROMX,BANK[$06] dr $18000,$1a4ea INCLUDE "engine/overworld/npc_movement.asm" -HandleLedges: ; 1a7f4 (6:67f4) - dr $1a7f4,$1c000 +INCLUDE "engine/overworld/doors.asm" +INCLUDE "engine/overworld/ledges.asm" SECTION "bank07",ROMX,BANK[$07] -- cgit v1.3.1-sl0p From b70d187627decfb897aec19fb1a31fbaee8414e6 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 11:30:34 -0400 Subject: Elevator floor menu, clear save --- engine/clear_save.asm | 8 ++++++-- engine/predefs7.asm | 10 ++++++++-- main.asm | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 59 insertions(+), 8 deletions(-) (limited to 'engine') diff --git a/engine/clear_save.asm b/engine/clear_save.asm index adbef1a4..37d098e6 100755 --- a/engine/clear_save.asm +++ b/engine/clear_save.asm @@ -1,10 +1,12 @@ -DoClearSaveDialogue: ; 1c98a (7:498a) +DoClearSaveDialogue: ; DoClearSaveDialogue: ; 1c21e (7:421e) call ClearScreen call RunDefaultPaletteCommand call LoadFontTilePatterns call LoadTextBoxTilePatterns ld hl, ClearSaveDataText call PrintText + ld a, B_BUTTON + ld [wJoyIgnore], a coord hl, 14, 7 lb bc, 8, 15 ld a, NO_YES_MENU @@ -12,12 +14,14 @@ DoClearSaveDialogue: ; 1c98a (7:498a) ld a, TWO_OPTION_MENU ld [wTextBoxID], a call DisplayTextBoxID + ld a, 0 + ld [wJoyIgnore], a ld a, [wCurrentMenuItem] and a jp z, Init callba ClearSAV jp Init -ClearSaveDataText: ; 1c9c1 (7:49c1) +ClearSaveDataText: ; 1c25f (7:425f) TX_FAR _ClearSaveDataText db "@" diff --git a/engine/predefs7.asm b/engine/predefs7.asm index a2c08171..9138897f 100755 --- a/engine/predefs7.asm +++ b/engine/predefs7.asm @@ -1,6 +1,12 @@ -DisplayElevatorFloorMenu: ; 1c9c6 (7:49c6) +DisplayElevatorFloorMenu: ; 1c264 (7:4264) + ld hl, wd730 + ld a, [hl] + push af + set 6, [hl] ld hl, WhichFloorText call PrintText + pop af + ld [wd730], a ld hl, wItemList ld a, l ld [wListPointer], a @@ -43,6 +49,6 @@ DisplayElevatorFloorMenu: ; 1c9c6 (7:49c6) ld [hli], a ; destination map ID ret -WhichFloorText: ; 1ca14 (7:4a14) +WhichFloorText: ; 1c2bd (7:42bd) TX_FAR _WhichFloorText db "@" diff --git a/main.asm b/main.asm index b8d32069..972d5d94 100755 --- a/main.asm +++ b/main.asm @@ -231,7 +231,45 @@ INCLUDE "engine/battle/moveEffects/substitute_effect.asm" INCLUDE "engine/menu/pc.asm" SECTION "bank06",ROMX,BANK[$06] - dr $18000,$1a4ea + + dr $18000,$18dee ; headers, objects, blocks +; INCLUDE "data/mapHeaders/celadoncity.asm" +; INCLUDE "data/mapObjects/celadoncity.asm" +; CeladonCityBlocks: INCBIN "maps/celadoncity.blk" + +; INCLUDE "data/mapHeaders/pallettown.asm" +; INCLUDE "data/mapObjects/pallettown.asm" +; PalletTownBlocks: INCBIN "maps/pallettown.blk" + +; INCLUDE "data/mapHeaders/viridiancity.asm" +; INCLUDE "data/mapObjects/viridiancity.asm" +; ViridianCityBlocks: INCBIN "maps/viridiancity.blk" + +; INCLUDE "data/mapHeaders/pewtercity.asm" +; INCLUDE "data/mapObjects/pewtercity.asm" +; PewterCityBlocks: INCBIN "maps/pewtercity.blk" + +; INCLUDE "data/mapHeaders/ceruleancity.asm" +; INCLUDE "data/mapObjects/ceruleancity.asm" +; CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" + +; INCLUDE "data/mapHeaders/vermilioncity.asm" +; INCLUDE "data/mapObjects/vermilioncity.asm" +; VermilionCityBlocks: INCBIN "maps/vermilioncity.blk" + +; INCLUDE "data/mapHeaders/fuchsiacity.asm" +; INCLUDE "data/mapObjects/fuchsiacity.asm" +; FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" + + dr $18dee,$1a4ea ; map scripts + +; INCLUDE "scripts/pallettown.asm" +; INCLUDE "scripts/viridiancity.asm" +; INCLUDE "scripts/pewtercity.asm" +; INCLUDE "scripts/ceruleancity.asm" +; INCLUDE "scripts/vermilioncity.asm" +; INCLUDE "scripts/celadoncity.asm" +; INCLUDE "scripts/fuchsiacity.asm" INCLUDE "engine/overworld/npc_movement.asm" INCLUDE "engine/overworld/doors.asm" @@ -239,9 +277,12 @@ INCLUDE "engine/overworld/ledges.asm" SECTION "bank07",ROMX,BANK[$07] - dr $1c000,$1c21e -DoClearSaveDialogue: ; 1c21e (7:421e) - dr $1c21e,$1e2ae + dr $1c000,$1c21e ; headers, objects, blocks + +INCLUDE "engine/clear_save.asm" +INCLUDE "engine/predefs7.asm" + + dr $1c2c2,$1e2ae ; map scripts OpenOaksPC: ; 1e2ae (7:62ae) dr $1e2ae,$1e321 SafariZoneCheck: ; 1e321 (7:6e21) -- cgit v1.3.1-sl0p From b62d6986d2ff79a27417441b2895a5b96053b157 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 11:41:09 -0400 Subject: Align door tile dbws --- engine/overworld/doors.asm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'engine') diff --git a/engine/overworld/doors.asm b/engine/overworld/doors.asm index 99e07174..8ec9772a 100755 --- a/engine/overworld/doors.asm +++ b/engine/overworld/doors.asm @@ -31,15 +31,15 @@ DoorTileIDPointers: ; 1a7a8 (6:67a8) dbw MART, MartDoorTileIDs dbw HOUSE, HouseDoorTileIDs dbw FOREST_GATE, TilesetMuseumDoorTileIDs - dbw MUSEUM, TilesetMuseumDoorTileIDs - dbw GATE, TilesetMuseumDoorTileIDs - dbw SHIP, ShipDoorTileIDs - dbw LOBBY, LobbyDoorTileIDs - dbw MANSION, MansionDoorTileIDs - dbw LAB, LabDoorTileIDs - dbw FACILITY, FacilityDoorTileIDs - dbw PLATEAU, PlateauDoorTileIDs - dbw INTERIOR, InteriorDoorTileIDs + dbw MUSEUM, TilesetMuseumDoorTileIDs + dbw GATE, TilesetMuseumDoorTileIDs + dbw SHIP, ShipDoorTileIDs + dbw LOBBY, LobbyDoorTileIDs + dbw MANSION, MansionDoorTileIDs + dbw LAB, LabDoorTileIDs + dbw FACILITY, FacilityDoorTileIDs + dbw PLATEAU, PlateauDoorTileIDs + dbw INTERIOR, InteriorDoorTileIDs db $ff OverworldDoorTileIDs: ; 1a654 (6:6654) -- cgit v1.3.1-sl0p From 0bbe27333ab77b0fc405a4834218216f27f03669 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 13:29:34 -0400 Subject: Disassemble function at ea3ea --- engine/unknown_ea3ea.asm | 189 +++++++++++++++++++++++++++++++++++++++++++++++ gfx/stats_screen_hp.png | Bin 0 -> 82 bytes gfx/stats_screen_lv.png | Bin 0 -> 78 bytes main.asm | 3 +- 4 files changed, 191 insertions(+), 1 deletion(-) create mode 100755 engine/unknown_ea3ea.asm create mode 100644 gfx/stats_screen_hp.png create mode 100644 gfx/stats_screen_lv.png (limited to 'engine') diff --git a/engine/unknown_ea3ea.asm b/engine/unknown_ea3ea.asm new file mode 100755 index 00000000..375d6006 --- /dev/null +++ b/engine/unknown_ea3ea.asm @@ -0,0 +1,189 @@ +Func_ea3ea: ; ea3ea (3a:63ea) + call GBPalWhiteOutWithDelay3 + call ClearScreen + call LoadHpBarAndStatusTilePatterns + ld de, GFX_ea563 + ld hl, vChars2 + $710 + lb bc, BANK(GFX_ea563), (GFX_ea563End - GFX_ea563) / 8 + call CopyVideoDataDouble + + ld de, GFX_ea56b + ld hl, vChars2 + $6e0 + lb bc, BANK(GFX_ea56b), (GFX_ea56bEnd - GFX_ea56b) / 8 + call CopyVideoDataDouble + + xor a + ld [H_AUTOBGTRANSFERENABLED], a + xor a + ld [wWhichTradeMonSelectionMenu], a + call LoadMonData + + ld hl, wTileMap + lb bc, $10, $12 + call TextBoxBorder + + coord hl, 0, 12 + lb bc, $04, $12 + call TextBoxBorder + + coord hl, 3, 10 + call PrintLevelFull + + coord hl, 2, 10 + ld a, $6e + ld [hli], a + ld [hl], " " + + coord hl, 2, 11 + ld [hl], "′" + + coord hl, 4, 11 + ld de, wLoadedMonMaxHP + lb bc, 2, 3 + call PrintNumber + + ld a, [wMonHeader] + ld [wPokeBallAnimData], a + ld [wd0b5], a + ld hl, wPartyMonNicks + call Func_ea511 + coord hl, 8, 2 + call PlaceString + + call GetMonName + coord hl, 9, 3 + call PlaceString + + predef IndexToPokedex + coord hl, 2, 8 + ld [hl], "№" + inc hl + ld [hl], $f2 + inc hl + ld de, wPokeBallAnimData + lb bc, $80 | 1, 3 + call PrintNumber + + coord hl, 8, 4 + ld de, String_ea52f + call PlaceString + + ld hl, wPartyMonOT + call Func_ea511 + coord hl, 9, 5 + call PlaceString + + coord hl, 9, 6 + ld de, String_ea533 + call PlaceString + + coord hl, 13, 6 + ld de, wLoadedMonOTID + lb bc, $80 | 2, 5 + call PrintNumber + + coord hl, 9, 8 + ld de, String_ea537 + ld a, [hFlags_0xFFFA] + set 2, a + ld [hFlags_0xFFFA], a + call PlaceString + ld a, [hFlags_0xFFFA] + res 2, a + ld [hFlags_0xFFFA], a + + coord hl, 16, 8 + ld de, wLoadedMonAttack + ld a, 4 +.loop + push af + push de + + push hl + lb bc, 2, 3 + call PrintNumber + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + + pop de + inc de + inc de + pop af + dec a + jr nz, .loop + + coord hl, 1, 13 + ld a, [wLoadedMonMoves] + call Func_ea51d + + coord hl, 1, 14 + ld a, [wLoadedMonMoves + 1] + call Func_ea51d + + coord hl, 1, 15 + ld a, [wLoadedMonMoves + 2] + call Func_ea51d + + coord hl, 1, 16 + ld a, [wLoadedMonMoves + 3] + call Func_ea51d + + ld b, $04 ; SET_PAL_STATUS_SCREEN + call RunPaletteCommand + + ld a, $01 + ld [H_AUTOBGTRANSFERENABLED], a + call Delay3 + call GBPalNormal + coord hl, 1, 1 + call LoadFlippedFrontSpriteByMonIndex + ret + +Func_ea511: ; ea511 (3a:6511) + ld bc, NAME_LENGTH + ld a, [wWhichPokemon] + call AddNTimes + ld e, l + ld d, h + ret + +Func_ea51d: ; ea51d (3a:651d) + and a + jr z, .asm_e6528 + ld [wPokeBallAnimData], a + call GetMoveName + jr .asm_ea52b + +.asm_e6528 + ld de, String_ea554 +.asm_ea52b + call PlaceString + ret +; ea52f + +String_ea52f: + db "OT/@" +; ea533 + +String_ea533: + db $73, "№/@" +; ea537 + +String_ea537: + db "ATTACK" + next "DEFENSE" + next "SPEED" + next "SPECIAL@" +; ea554 + +String_ea554: ; ea554 (3a:6554) + db "--------------@" + +GFX_ea563: ; ea563 (3a:6563) +INCBIN "gfx/unknown_ea563.1bpp" +GFX_ea563End: ; ea56b (3a:656b) + +GFX_ea56b: +INCBIN "gfx/unknown_ea56b.1bpp" +GFX_ea56bEnd: ; ea573 (3a:6573) diff --git a/gfx/stats_screen_hp.png b/gfx/stats_screen_hp.png new file mode 100644 index 00000000..adf086ca Binary files /dev/null and b/gfx/stats_screen_hp.png differ diff --git a/gfx/stats_screen_lv.png b/gfx/stats_screen_lv.png new file mode 100644 index 00000000..0d5c6620 Binary files /dev/null and b/gfx/stats_screen_lv.png differ diff --git a/main.asm b/main.asm index 8309a373..fde93d4b 100755 --- a/main.asm +++ b/main.asm @@ -892,7 +892,8 @@ SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" SurfingPikachu3Graphics: INCBIN "gfx/surfing_pikachu_3.t1.2bpp" - dr $ea3ea,$eaa02 +INCLUDE "engine/unknown_ea3ea.asm" + dr $ea573,$eaa02 FreezeEnemyTrainerSprite: ; eaa02 (3a:6a02) ld a, [wCurMap] cp POKEMONTOWER_7 -- cgit v1.3.1-sl0p From fbc1fead82d879719d69b33bc0101504f8657467 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 13:40:34 -0400 Subject: Fix incbin filenames --- engine/unknown_ea3ea.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engine') diff --git a/engine/unknown_ea3ea.asm b/engine/unknown_ea3ea.asm index 375d6006..b883f785 100755 --- a/engine/unknown_ea3ea.asm +++ b/engine/unknown_ea3ea.asm @@ -181,9 +181,9 @@ String_ea554: ; ea554 (3a:6554) db "--------------@" GFX_ea563: ; ea563 (3a:6563) -INCBIN "gfx/unknown_ea563.1bpp" +INCBIN "gfx/stats_screen_hp.1bpp" GFX_ea563End: ; ea56b (3a:656b) GFX_ea56b: -INCBIN "gfx/unknown_ea56b.1bpp" +INCBIN "gfx/stats_screen_lv.1bpp" GFX_ea56bEnd: ; ea573 (3a:6573) -- cgit v1.3.1-sl0p From bd5caf92db057bdf32c77f3415f6411b4d327565 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 13:52:57 -0400 Subject: Another function related to OAM --- engine/unknown_ea3ea.asm | 27 +++++++++++++++++++++++++++ gfx/zero_one_ea597.png | Bin 0 -> 92 bytes main.asm | 2 +- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gfx/zero_one_ea597.png (limited to 'engine') diff --git a/engine/unknown_ea3ea.asm b/engine/unknown_ea3ea.asm index b883f785..78a73393 100755 --- a/engine/unknown_ea3ea.asm +++ b/engine/unknown_ea3ea.asm @@ -187,3 +187,30 @@ GFX_ea563End: ; ea56b (3a:656b) GFX_ea56b: INCBIN "gfx/stats_screen_lv.1bpp" GFX_ea56bEnd: ; ea573 (3a:6573) + +Func_ea573: ; ea573 (3a:6573) + ld hl, vChars1 + $7e0 + ld de, GFX_ea597 + lb bc, BANK(GFX_ea597), (GFX_ea597End - GFX_ea597) / 16 + call CopyVideoData + + ld hl, wOAMBuffer + 32 * 4 + ld a, $08 + ld c, $08 +.loop + ld [hl], $10 + inc hl + ld [hl], a + inc hl + ld [hl], $fe + inc hl + ld [hl], $00 + inc hl + add $08 + dec c + jr nz, .loop + ret + +GFX_ea597: ; ea597 (3a:6597) +INCBIN "gfx/zero_one_ea597.2bpp" +GFX_ea597End: diff --git a/gfx/zero_one_ea597.png b/gfx/zero_one_ea597.png new file mode 100644 index 00000000..0c11b9da Binary files /dev/null and b/gfx/zero_one_ea597.png differ diff --git a/main.asm b/main.asm index fde93d4b..98608ba1 100755 --- a/main.asm +++ b/main.asm @@ -893,7 +893,7 @@ SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" SurfingPikachu3Graphics: INCBIN "gfx/surfing_pikachu_3.t1.2bpp" INCLUDE "engine/unknown_ea3ea.asm" - dr $ea573,$eaa02 + dr $ea5b7,$eaa02 FreezeEnemyTrainerSprite: ; eaa02 (3a:6a02) ld a, [wCurMap] cp POKEMONTOWER_7 -- cgit v1.3.1-sl0p From 82b21453806362c5287b50137584c3734d2dab1b Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 15:23:16 -0400 Subject: Disassemble ea3ea to end of bank 3a --- engine/unknown_ea3ea.asm | 756 +++++++++++++++++++++++++++++++++++++++++++++++ main.asm | 2 +- 2 files changed, 757 insertions(+), 1 deletion(-) (limited to 'engine') diff --git a/engine/unknown_ea3ea.asm b/engine/unknown_ea3ea.asm index 78a73393..fb16e913 100755 --- a/engine/unknown_ea3ea.asm +++ b/engine/unknown_ea3ea.asm @@ -214,3 +214,759 @@ Func_ea573: ; ea573 (3a:6573) GFX_ea597: ; ea597 (3a:6597) INCBIN "gfx/zero_one_ea597.2bpp" GFX_ea597End: + +Func_ea5b7: ; ea5b7 (3a:65b7) + ld hl, wOAMBuffer + 32 * 4 + 2 + ld de, 4 + ld a, [$c971] + ld c, 8 +.asm_ea5c2 + sla a + jr c, .asm_ea5ca + ld [hl], $fe + jr .asm_ea5cc + +.asm_ea5ca + ld [hl], $ff +.asm_ea5cc + add hl, de + dec c + jr nz, .asm_ea5c2 + ret + +Functionea5d1: ; ea5d1 (3a:65d1) + ld a, [wOverworldMap] + ld e, a + ld d, 0 + ld hl, Jumptable_ea5e0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_ea5e0: + dw Functionea623 + dw Functionea6d2 + dw Functionea6af + dw Functionea645 + dw Functionea701 + dw Functionea6bd + dw Functionea671 + dw Functionea701 + dw Functionea6af + dw Functionea68a + dw Functionea701 + dw Functionea6af + dw Functionea721 + dw Functionea610 + dw Functionea61a + dw Functionea6af + dw Functionea61e + dw Functionea72f + dw Functionea732 + + +Functionea606: ; ea606 (3a:6606) + ld hl, wOverworldMap + inc [hl] + ret + +Functionea60b: ; ea60b (3a:660b) + ld hl, wOverworldMap + dec [hl] + ret + +Functionea610: ; ea610 (3a:6610) + xor a + ld [$c971], a + ld hl, wOverworldMap + set 7, [hl] + ret + +Functionea61a: ; ea61a (3a:661a) + call Functionea606 + ret + +Functionea61e: ; ea61e (3a:661e) + xor a + ld [wOverworldMap], a + ret + +Functionea623: ; ea623 (3a:6623) + call Functionea784 + ld hl, Data_ea9de + call Functionea76b + xor a + ld [$c976], a + ld [$c977], a + ld a, [$caf4] + ld [$c6e9], a + call Functionea606 + call Functionea74c + ld a, $01 + ld [$cae0], a + ret + +Functionea645: ; ea645 (3a:6645) + call Functionea784 + ld hl, $c6e9 + ld a, [hl] + and a + jr z, Functionea671 + ld hl, Data_ea9ea + call Functionea76b + call Functionea7e9 + ld a, $80 + ld [$c976], a + ld a, $02 + ld [$c977], a + call Functionea7a2 + call Functionea606 + call Functionea74c + ld a, $02 + ld [$cae0], a + ret + +Functionea671: ; ea671 (3a:6671) + ld a, $06 + ld [wOverworldMap], a + ld hl, Data_ea9f0 + call Functionea76b + xor a + ld [$c976], a + ld [$c977], a + call Functionea606 + call Functionea74c + ret + +Functionea68a: ; ea68a (3a:668a) + call Functionea784 + ld hl, Data_ea9e4 + call Functionea76b + call Functionea7d2 + ld a, $04 + ld [$c976], a + ld a, $00 + ld [$c977], a + call Functionea7a2 + call Functionea606 + call Functionea74c + ld a, $03 + ld [$cae0], a + ret + +Functionea6af: ; ea6af (3a:66af) + ld hl, $c973 + inc [hl] + ld a, [hl] + cp a, $06 + ret c + xor a + ld [hl], a + call Functionea606 + ret + +Functionea6bd: ; ea6bd (3a:66bd) + ld hl, $c973 + inc [hl] + ld a, [hl] + cp 6 + ret c + xor a + ld [hl], a + ld hl, $c6e9 + dec [hl] + call Functionea60b + call Functionea60b + ret + +Functionea6d2: ; ea6d2 (3a:66d2) + call Functionea742 + ret c + ld a, [$c970] + cp a, $ff + jr nz, .asm_ea6e4 + ld a, [$c971] + cp a, $ff + jr z, .asm_ea6fb +.asm_ea6e4 + ld a, [$c970] + cp a, $81 + jr nz, .asm_ea6fb + ld a, [$c971] + cp a, $00 + jr nz, .asm_ea6fb + ld hl, wUnknownSerialFlag_d49a + set 1, [hl] + call Functionea606 + ret + +.asm_ea6fb + ld a, $0e + ld [wOverworldMap], a + ret + +Functionea701: ; ea701 (3a:6701) + call Functionea742 + ret c + ld a, [$c971] + and $f0 + jr nz, .asm_ea71b + ld a, [$c971] + and $01 + jr nz, .asm_ea717 + call Functionea606 + ret + +.asm_ea717 + call Functionea60b + ret + +.asm_ea71b + ld a, $11 + ld [wOverworldMap], a + ret + +Functionea721: ; ea721 (3a:6721) + call Functionea742 + ret c + ld a, [$c971] + and $f3 + ret nz + call Functionea606 + ret + +Functionea72f: ; ea72f (3a:672f) + call Functionea606 +Functionea732: ; ea732 (3a:6732) + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c971] + and $f0 + ret nz + xor a + ld [wOverworldMap], a + ret + +Functionea742: ; ea742 (3a:6742) + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_ea74a + and a + ret + +.asm_ea74a + scf + ret + +Functionea74c: ; ea74c (3a:674c) +.asm_ea74c + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_ea74c + ld a, $01 + ld [wUnknownSerialFlag_d49b], a + xor a + ld [$c974], a + ld [$c975], a + ld a, $88 + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +Functionea76b: ; ea76b (3a:676b) + ld a, [hli] + ld [$c6ea], a + ld a, [hli] + ld [$c6eb], a + ld a, [hli] + ld [$c6ec], a + ld a, [hli] + ld [$c6ed], a + ld a, [hli] + ld [$c6ee], a + ld a, [hl] + ld [$c6ef], a + ret + +Functionea784: ; ea784 (3a:6784) + xor a + ld hl, $c6ea + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, $c6ee + ld [hli], a + ld [hl], a + xor a + ld [$c976], a + ld [$c977], a + ld hl, $c6f0 + ld bc, $280 + call FillMemory + ret + +Functionea7a2: ; ea7a2 (3a:67a2) + ld hl, $0000 + ld bc, $0004 + ld de, $c6ea + call Functionea7c5 + ld a, [$c976] + ld c, a + ld a, [$c977] + ld b, a + ld de, $c6f0 + call Functionea7c5 + ld a, l + ld [$c6ee], a + ld a, h + ld [$c6ef], a + ret + +Functionea7c5: ; ea7c5 (3a:67c5) +.asm_ea7c5 + ld a, [de] + inc de + add l + jr nc, .asm_ea7cb + inc h +.asm_ea7cb + ld l, a + dec bc + ld a, c + or b + jr nz, .asm_ea7c5 + ret + +Functionea7d2: ; ea7d2 (3a:67d2) + ld a, $01 + ld [$c6f0], a + ld a, [$cae2] + ld [$c6f1], a + ld a, $e4 + ld [$c6f2], a + ld a, [$cae3] + ld [$c6f3], a + ret + +Functionea7e9: ; ea7e9 (3a:67e9) + ld a, [$c6e9] + ld b, a + ld a, [$caf4] + sub b + ld hl, $c978 + ld de, $0028 +.asm_ea7f7 + and a + jr z, .asm_ea7fe + add hl, de + dec a + jr .asm_ea7f7 + +.asm_ea7fe + ld e, l + ld d, h + ld hl, $c6f0 + ld c, $28 +.asm_ea805 + ld a, [de] + inc de + push bc + push de + push hl + swap a + ld d, a + and $f0 + ld e, a + ld a, d + and $0f + ld d, a + and $08 + ld a, d + jr nz, .asm_ea81d + or $90 + jr .asm_ea81f + +.asm_ea81d + or $80 +.asm_ea81f + ld d, a + lb bc, $3a, $01 + call CopyVideoData + pop hl + ld de, $0010 + add hl, de + pop de + pop bc + dec c + jr nz, .asm_ea805 + call Functionea834 + ret + +Functionea834: ; ea834 (3a:6834) + ld hl, $cbdc + ld bc, $0020 + xor a + call FillMemory + ld hl, $c300 + ld c, $28 +.asm_ea843 + push bc + push hl + call Functionea860 + jr nc, .asm_ea856 + call Functionea886 + call Functionea8a1 + call Functionea902 + call Functionea999 +.asm_ea856 + pop hl + inc hl + inc hl + inc hl + inc hl + pop bc + dec c + jr nz, .asm_ea843 + ret + +Functionea860: ; ea860 (3a:6860) + ld a, [$c6e9] + ld b, a + ld a, [$caf4] + sub b + ld c, a + ld b, $10 +.asm_ea86b + ld a, c + and a + jr z, .asm_ea876 + ld a, b + add $10 + ld b, a + dec c + jr .asm_ea86b + +.asm_ea876 + ld a, b + ld e, a + add $10 + ld d, a + ld a, [hl] + cp e + jr c, .asm_ea884 + cp d + jr nc, .asm_ea884 + scf + ret + +.asm_ea884 + and a + ret + +Functionea886: ; ea886 (3a:6886) + push hl + inc hl + inc hl + ld a, [hl] + swap a + ld d, a + and $f0 + ld e, a + ld a, d + and $0f + or $80 + ld d, a + ld hl, $cbdc + lb bc, $3a, $01 + call CopyVideoData + pop hl + ret + +Functionea8a1: ; ea8a1 (3a:68a1) + push hl + inc hl + inc hl + inc hl + ld a, [hl] + call Functionea8ab + pop hl + ret + +Functionea8ab: ; ea8ab (3a:68ab) + and $60 + swap a + ld e, a + ld d, 0 + ld hl, Jumptable_ea8ba + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_ea8ba: ; ea8ba (3a:68ba) + dw Functionea8c2 + dw Functionea8c3 + dw Functionea8c7 + dw Functionea8cb + +Functionea8c2: ; ea8c2 (3a:68c2) + ret + +Functionea8c3: ; ea8c3 (3a:68c3) + call Functionea8d2 + ret + +Functionea8c7: ; ea8c7 (3a:68c7) + call Functionea8e8 + ret + +Functionea8cb: ; ea8cb (3a:68cb) + call Functionea8d2 + call Functionea8e8 + ret + +Functionea8d2: ; ea8d2 (3a:68d2) + ld hl, $cbdc + ld c, 16 +.asm_ea8d7 + ld d, [hl] + ld a, 0 + ld b, 8 +.asm_ea8dc + sla d + rr a + dec b + jr nz, .asm_ea8dc + ld [hli], a + dec c + jr nz, .asm_ea8d7 + ret + +Functionea8e8: ; ea8e8 (3a:68e8) + ld hl, $cbdc + ld de, $cbea + ld c, $04 +.asm_ea8f0 + ld b, [hl] + ld a, [de] + ld [hli], a + ld a, b + ld [de], a + inc de + ld b, [hl] + ld a, [de] + ld [hli], a + ld a, b + ld [de], a + dec de + dec de + dec de + dec c + jr nz, .asm_ea8f0 + ret + +Functionea902: ; ea902 (3a:6902) + push hl + ld hl, $cbdc + ld de, $cbec + ld a, $08 +.asm_ea90b + push af + ld bc, $0000 + ld a, $08 +.asm_ea911 + push af + xor a + rlc [hl] + rl a + inc hl + rlc [hl] + rl a + dec hl + push hl + push de + call Functionea936 + pop de + pop hl + pop af + dec a + jr nz, .asm_ea911 + inc hl + inc hl + ld a, b + ld [de], a + inc de + ld a, c + ld [de], a + inc de + pop af + dec a + jr nz, .asm_ea90b + pop hl + ret + +Functionea936 ; ea936 (3a:6936) + call Functionea93d + call Functionea96d + ret + +Functionea93d: ; ea93d (3a:693d) + ld e, a + ld d, 0 + ld hl, Jumptable_ea949 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_ea949: ; ea949 (3a:6949) + dw Functionea951 + dw Functionea95f + dw Functionea956 + dw Functionea966 + +Functionea951: ; ea951 (3a:6951) + ld a, [rOBP0] + and $03 + ret + +Functionea956: ; ea956 (3a:6956) + ld a, [rOBP0] + and $0c + srl a + srl a + ret + +Functionea95f: ; ea95f (3a:695f) + ld a, [rOBP0] + and $30 + swap a + ret + +Functionea966: ; ea966 (3a:6966) + ld a, [rOBP0] + and $c0 + rlca + rlca + ret + +Functionea96d: ; ea96d (3a:696d) + ld e, a + ld d, 0 + ld hl, Jumptable_ea979 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_ea979: ; ea979 (3a:6979) + dw Functionea981 + dw Functionea986 + dw Functionea98c + dw Functionea992 + +Functionea981: ; ea981 (3a:6981) + sla b + sla c + ret + +Functionea986: ; ea986 (3a:6986) + scf + rl b + sla c + ret + +Functionea98c: ; ea98c (3a:698c) + sla b + scf + rl c + ret + +Functionea992: ; ea992 (3a:6992) + scf + rl b + scf + rl c + ret + +Functionea999: ; ea999 (3a:6999) + push hl + ld a, [hli] + ld c, [hl] + and $08 + jr nz, .asm_ea9a5 + ld hl, $c6f0 + jr .asm_ea9a8 + +.asm_ea9a5 + ld hl, $c830 +.asm_ea9a8 + ld b, $00 + ld a, c + and $f8 + sub $08 + ld c, a + sla c + rl b + add hl, bc + ld e, l + ld d, h + ld hl, $cbec + ld c, $08 +.asm_ea9bc + call Functionea9d0 + ld a, [de] + and b + or [hl] + ld [de], a + inc hl + inc de + ld a, [de] + and b + or [hl] + ld [de], a + inc hl + inc de + dec c + jr nz, .asm_ea9bc + pop hl + ret + +Functionea9d0: ; ea9d0 (3a:69d0) + push hl + push de + ld de, $fff0 + add hl, de + ld a, [hli] + or [hl] + xor $ff + ld b, a + pop de + pop hl + ret + +Data_ea9de: ; ea9de + db $01, $00, $00, $00, $01, $00 +Data_ea9e4: ; ea9e4 + db $02, $00, $04, $00, $00, $00 +Data_ea9ea: ; ea9ea + db $04, $00, $80, $02, $00, $00 +Data_ea9f0: ; ea9f0 + db $04, $00, $00, $00, $04, $00 +Data_ea9f6: ; ea9f6 + db $08, $00, $00, $00, $08, $00 +Data_ea9fc: ; ea9fc + db $0f, $00, $00, $00, $0f, $00 diff --git a/main.asm b/main.asm index 98608ba1..f7754dff 100755 --- a/main.asm +++ b/main.asm @@ -893,7 +893,7 @@ SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" SurfingPikachu3Graphics: INCBIN "gfx/surfing_pikachu_3.t1.2bpp" INCLUDE "engine/unknown_ea3ea.asm" - dr $ea5b7,$eaa02 + FreezeEnemyTrainerSprite: ; eaa02 (3a:6a02) ld a, [wCurMap] cp POKEMONTOWER_7 -- cgit v1.3.1-sl0p From 805448c9749c7c729113e942d113dd4eed479892 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 18:37:42 -0400 Subject: Functions at 3a:4d35 --- engine/unknown_e8d35.asm | 159 +++++++++++++++++++++++++++++++++++++++++++++++ gfx/unknown_ea563.png | Bin 0 -> 82 bytes main.asm | 38 +++++++++-- 3 files changed, 192 insertions(+), 5 deletions(-) create mode 100755 engine/unknown_e8d35.asm create mode 100644 gfx/unknown_ea563.png (limited to 'engine') diff --git a/engine/unknown_e8d35.asm b/engine/unknown_e8d35.asm new file mode 100755 index 00000000..e28073a0 --- /dev/null +++ b/engine/unknown_e8d35.asm @@ -0,0 +1,159 @@ +Func_e8d35:: ; e8d35 (3a:4e79) + ld a, [wBoxDataStart] + and a + jp z, Functione8df4 + ld a, [wUpdateSpritesEnabled] + push af + xor a + ld [wUpdateSpritesEnabled], a + ld [hItemCounter], a + call Func_e8f24 + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call SaveScreenTilesToBuffer1 + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e988a + call Func_e8783 + ld a, $10 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Functione8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e98ec + call Func_e8783 + ld a, $00 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Functione8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [$d49a], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e9907 + call Func_e8783 + ld a, $00 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Functione8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e9922 + call Func_e8783 + ld a, $03 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Functione8dfb +.asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + pop af + ld [wUpdateSpritesEnabled], a + ret + +Functione8df4: ; e8df4 + ld hl, String_e8e1f + call PrintText + ret + +Functione8dfb: ; e8dfb + call Func_e8f16 +.asm_e8dfe + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8e1d + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8e1b + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8dfe + +.asm_e8e1b + and a + ret + +.asm_e8e1d + scf + ret + +String_e8e1f: ; e8e1f + TX_FAR _NoPokemonText + db "@" + +Functione8e24: ; e8e24 + xor a + ld [hItemCounter], a + call Func_e8f24 + call Func_ea3ea + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $13 + ld [$cae2], a + call Func_e8efc + call Func_e8f16 +.asm_e8e45 + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8e62 + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8e62 + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8e45 + +.asm_e8e62 + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + call Func_e8f09 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + ret + diff --git a/gfx/unknown_ea563.png b/gfx/unknown_ea563.png new file mode 100644 index 00000000..adf086ca Binary files /dev/null and b/gfx/unknown_ea563.png differ diff --git a/main.asm b/main.asm index f7754dff..8f84396b 100755 --- a/main.asm +++ b/main.asm @@ -878,17 +878,45 @@ SECTION "bank3A",ROMX,BANK[$3A] MonsterNames: ; e8000 (3a:4000) dr $e8000,$e876c IsPlayerJustOutsideMap: ; e876c (3a:476c) - dr $e876c,$e8a5e + dr $e876c,$e8783 +Func_e8783: ; e8783 (3a:4783) + dr $e8783,$e87a8 +Func_e87a8: ; e87a8 (3a:47a8) + dr $e87a8,$e8a5e Func_e8a5e: ; e8a5e (3a:4a5e) dr $e8a5e,$e8b74 Func_e8b74: ; e8b74 (3a:4b74) dr $e8b74,$e8d35 -Func_e8d35:: ; e8d35 (3a:4d35) - dr $e8d35,$e8e79 + +INCLUDE "engine/unknown_e8d35.asm" + Func_e8e79: ; e8e79 (3a:4e79) - dr $e8e79,$e928a + dr $e8e79,$e8eca +Func_e8eca: ; e8eca (3a:4eca) + dr $e8eca,$e8efc +Func_e8efc: ; e8efc (3a:4efc) + dr $e8efc,$e8f09 +Func_e8f09: ; e8f09 (3a:4f09) + dr $e8f09,$e8f16 +Func_e8f16: ; e8f16 (3a:4f16) + dr $e8f16,$e8f24 +Func_e8f24: ; e8f24 (3a:4f24) + dr $e8f24,$e8f3b +Func_e8f3b: ; e8f3b (3a:4f3b) + dr $e8f3b,$e8f51 +Func_e8f51: ; e8f51 (3a:4f51) + dr $e8f51,$e8f82 +Func_e8f82: ; e8f82 (3a:4f82) + dr $e8f82,$e928a SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" - dr $e988a,$e9bfa +Func_e988a: ; e988a (3a:588a) + dr $e988a,$e98ec +Func_e98ec: ; e98ec (3a:58ec) + dr $e98ec,$e9907 +Func_e9907: ; e9907 (3a:5907) + dr $e9907,$e9922 +Func_e9922: ; e9922 (3a:5922) + dr $e9922,$e9bfa SurfingPikachu3Graphics: INCBIN "gfx/surfing_pikachu_3.t1.2bpp" -- cgit v1.3.1-sl0p From 53dac35a090e74412bdd4528e5ecf18221a4936c Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 18:38:42 -0400 Subject: Replace Function with Func_ --- engine/unknown_e8d35.asm | 16 +-- engine/unknown_ea3ea.asm | 264 +++++++++++++++++++++++------------------------ 2 files changed, 140 insertions(+), 140 deletions(-) (limited to 'engine') diff --git a/engine/unknown_e8d35.asm b/engine/unknown_e8d35.asm index e28073a0..955a9f45 100755 --- a/engine/unknown_e8d35.asm +++ b/engine/unknown_e8d35.asm @@ -1,7 +1,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) ld a, [wBoxDataStart] and a - jp z, Functione8df4 + jp z, Func_e8df4 ld a, [wUpdateSpritesEnabled] push af xor a @@ -23,7 +23,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) ld [$cae2], a call Func_e8efc call LoadScreenTilesFromBuffer1 - call Functione8dfb + call Func_e8dfb jr c, .asm_e8ddc xor a ld [wUnknownSerialFlag_d49a], a @@ -38,7 +38,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) ld [$cae2], a call Func_e8efc call LoadScreenTilesFromBuffer1 - call Functione8dfb + call Func_e8dfb jr c, .asm_e8ddc xor a ld [wUnknownSerialFlag_d49a], a @@ -53,7 +53,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) ld [$cae2], a call Func_e8efc call LoadScreenTilesFromBuffer1 - call Functione8dfb + call Func_e8dfb jr c, .asm_e8ddc xor a ld [wUnknownSerialFlag_d49a], a @@ -68,7 +68,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) ld [$cae2], a call Func_e8efc call LoadScreenTilesFromBuffer1 - call Functione8dfb + call Func_e8dfb .asm_e8ddc xor a ld [wUnknownSerialFlag_d49a], a @@ -83,12 +83,12 @@ Func_e8d35:: ; e8d35 (3a:4e79) ld [wUpdateSpritesEnabled], a ret -Functione8df4: ; e8df4 +Func_e8df4: ; e8df4 ld hl, String_e8e1f call PrintText ret -Functione8dfb: ; e8dfb +Func_e8dfb: ; e8dfb call Func_e8f16 .asm_e8dfe call JoypadLowSensitivity @@ -115,7 +115,7 @@ String_e8e1f: ; e8e1f TX_FAR _NoPokemonText db "@" -Functione8e24: ; e8e24 +Func_e8e24: ; e8e24 xor a ld [hItemCounter], a call Func_e8f24 diff --git a/engine/unknown_ea3ea.asm b/engine/unknown_ea3ea.asm index fb16e913..c00785b4 100755 --- a/engine/unknown_ea3ea.asm +++ b/engine/unknown_ea3ea.asm @@ -234,7 +234,7 @@ Func_ea5b7: ; ea5b7 (3a:65b7) jr nz, .asm_ea5c2 ret -Functionea5d1: ; ea5d1 (3a:65d1) +Func_ea5d1: ; ea5d1 (3a:65d1) ld a, [wOverworldMap] ld e, a ld d, 0 @@ -247,117 +247,117 @@ Functionea5d1: ; ea5d1 (3a:65d1) jp [hl] Jumptable_ea5e0: - dw Functionea623 - dw Functionea6d2 - dw Functionea6af - dw Functionea645 - dw Functionea701 - dw Functionea6bd - dw Functionea671 - dw Functionea701 - dw Functionea6af - dw Functionea68a - dw Functionea701 - dw Functionea6af - dw Functionea721 - dw Functionea610 - dw Functionea61a - dw Functionea6af - dw Functionea61e - dw Functionea72f - dw Functionea732 - - -Functionea606: ; ea606 (3a:6606) + dw Func_ea623 + dw Func_ea6d2 + dw Func_ea6af + dw Func_ea645 + dw Func_ea701 + dw Func_ea6bd + dw Func_ea671 + dw Func_ea701 + dw Func_ea6af + dw Func_ea68a + dw Func_ea701 + dw Func_ea6af + dw Func_ea721 + dw Func_ea610 + dw Func_ea61a + dw Func_ea6af + dw Func_ea61e + dw Func_ea72f + dw Func_ea732 + + +Func_ea606: ; ea606 (3a:6606) ld hl, wOverworldMap inc [hl] ret -Functionea60b: ; ea60b (3a:660b) +Func_ea60b: ; ea60b (3a:660b) ld hl, wOverworldMap dec [hl] ret -Functionea610: ; ea610 (3a:6610) +Func_ea610: ; ea610 (3a:6610) xor a ld [$c971], a ld hl, wOverworldMap set 7, [hl] ret -Functionea61a: ; ea61a (3a:661a) - call Functionea606 +Func_ea61a: ; ea61a (3a:661a) + call Func_ea606 ret -Functionea61e: ; ea61e (3a:661e) +Func_ea61e: ; ea61e (3a:661e) xor a ld [wOverworldMap], a ret -Functionea623: ; ea623 (3a:6623) - call Functionea784 +Func_ea623: ; ea623 (3a:6623) + call Func_ea784 ld hl, Data_ea9de - call Functionea76b + call Func_ea76b xor a ld [$c976], a ld [$c977], a ld a, [$caf4] ld [$c6e9], a - call Functionea606 - call Functionea74c + call Func_ea606 + call Func_ea74c ld a, $01 ld [$cae0], a ret -Functionea645: ; ea645 (3a:6645) - call Functionea784 +Func_ea645: ; ea645 (3a:6645) + call Func_ea784 ld hl, $c6e9 ld a, [hl] and a - jr z, Functionea671 + jr z, Func_ea671 ld hl, Data_ea9ea - call Functionea76b - call Functionea7e9 + call Func_ea76b + call Func_ea7e9 ld a, $80 ld [$c976], a ld a, $02 ld [$c977], a - call Functionea7a2 - call Functionea606 - call Functionea74c + call Func_ea7a2 + call Func_ea606 + call Func_ea74c ld a, $02 ld [$cae0], a ret -Functionea671: ; ea671 (3a:6671) +Func_ea671: ; ea671 (3a:6671) ld a, $06 ld [wOverworldMap], a ld hl, Data_ea9f0 - call Functionea76b + call Func_ea76b xor a ld [$c976], a ld [$c977], a - call Functionea606 - call Functionea74c + call Func_ea606 + call Func_ea74c ret -Functionea68a: ; ea68a (3a:668a) - call Functionea784 +Func_ea68a: ; ea68a (3a:668a) + call Func_ea784 ld hl, Data_ea9e4 - call Functionea76b - call Functionea7d2 + call Func_ea76b + call Func_ea7d2 ld a, $04 ld [$c976], a ld a, $00 ld [$c977], a - call Functionea7a2 - call Functionea606 - call Functionea74c + call Func_ea7a2 + call Func_ea606 + call Func_ea74c ld a, $03 ld [$cae0], a ret -Functionea6af: ; ea6af (3a:66af) +Func_ea6af: ; ea6af (3a:66af) ld hl, $c973 inc [hl] ld a, [hl] @@ -365,10 +365,10 @@ Functionea6af: ; ea6af (3a:66af) ret c xor a ld [hl], a - call Functionea606 + call Func_ea606 ret -Functionea6bd: ; ea6bd (3a:66bd) +Func_ea6bd: ; ea6bd (3a:66bd) ld hl, $c973 inc [hl] ld a, [hl] @@ -378,12 +378,12 @@ Functionea6bd: ; ea6bd (3a:66bd) ld [hl], a ld hl, $c6e9 dec [hl] - call Functionea60b - call Functionea60b + call Func_ea60b + call Func_ea60b ret -Functionea6d2: ; ea6d2 (3a:66d2) - call Functionea742 +Func_ea6d2: ; ea6d2 (3a:66d2) + call Func_ea742 ret c ld a, [$c970] cp a, $ff @@ -400,7 +400,7 @@ Functionea6d2: ; ea6d2 (3a:66d2) jr nz, .asm_ea6fb ld hl, wUnknownSerialFlag_d49a set 1, [hl] - call Functionea606 + call Func_ea606 ret .asm_ea6fb @@ -408,8 +408,8 @@ Functionea6d2: ; ea6d2 (3a:66d2) ld [wOverworldMap], a ret -Functionea701: ; ea701 (3a:6701) - call Functionea742 +Func_ea701: ; ea701 (3a:6701) + call Func_ea742 ret c ld a, [$c971] and $f0 @@ -417,11 +417,11 @@ Functionea701: ; ea701 (3a:6701) ld a, [$c971] and $01 jr nz, .asm_ea717 - call Functionea606 + call Func_ea606 ret .asm_ea717 - call Functionea60b + call Func_ea60b ret .asm_ea71b @@ -429,18 +429,18 @@ Functionea701: ; ea701 (3a:6701) ld [wOverworldMap], a ret -Functionea721: ; ea721 (3a:6721) - call Functionea742 +Func_ea721: ; ea721 (3a:6721) + call Func_ea742 ret c ld a, [$c971] and $f3 ret nz - call Functionea606 + call Func_ea606 ret -Functionea72f: ; ea72f (3a:672f) - call Functionea606 -Functionea732: ; ea732 (3a:6732) +Func_ea72f: ; ea72f (3a:672f) + call Func_ea606 +Func_ea732: ; ea732 (3a:6732) ld a, [wUnknownSerialFlag_d49b] and a ret nz @@ -451,7 +451,7 @@ Functionea732: ; ea732 (3a:6732) ld [wOverworldMap], a ret -Functionea742: ; ea742 (3a:6742) +Func_ea742: ; ea742 (3a:6742) ld a, [wUnknownSerialFlag_d49b] and a jr nz, .asm_ea74a @@ -462,7 +462,7 @@ Functionea742: ; ea742 (3a:6742) scf ret -Functionea74c: ; ea74c (3a:674c) +Func_ea74c: ; ea74c (3a:674c) .asm_ea74c ld a, [wUnknownSerialFlag_d49b] and a @@ -480,7 +480,7 @@ Functionea74c: ; ea74c (3a:674c) ld [rSC], a ret -Functionea76b: ; ea76b (3a:676b) +Func_ea76b: ; ea76b (3a:676b) ld a, [hli] ld [$c6ea], a ld a, [hli] @@ -495,7 +495,7 @@ Functionea76b: ; ea76b (3a:676b) ld [$c6ef], a ret -Functionea784: ; ea784 (3a:6784) +Func_ea784: ; ea784 (3a:6784) xor a ld hl, $c6ea ld [hli], a @@ -513,24 +513,24 @@ Functionea784: ; ea784 (3a:6784) call FillMemory ret -Functionea7a2: ; ea7a2 (3a:67a2) +Func_ea7a2: ; ea7a2 (3a:67a2) ld hl, $0000 ld bc, $0004 ld de, $c6ea - call Functionea7c5 + call Func_ea7c5 ld a, [$c976] ld c, a ld a, [$c977] ld b, a ld de, $c6f0 - call Functionea7c5 + call Func_ea7c5 ld a, l ld [$c6ee], a ld a, h ld [$c6ef], a ret -Functionea7c5: ; ea7c5 (3a:67c5) +Func_ea7c5: ; ea7c5 (3a:67c5) .asm_ea7c5 ld a, [de] inc de @@ -545,7 +545,7 @@ Functionea7c5: ; ea7c5 (3a:67c5) jr nz, .asm_ea7c5 ret -Functionea7d2: ; ea7d2 (3a:67d2) +Func_ea7d2: ; ea7d2 (3a:67d2) ld a, $01 ld [$c6f0], a ld a, [$cae2] @@ -556,7 +556,7 @@ Functionea7d2: ; ea7d2 (3a:67d2) ld [$c6f3], a ret -Functionea7e9: ; ea7e9 (3a:67e9) +Func_ea7e9: ; ea7e9 (3a:67e9) ld a, [$c6e9] ld b, a ld a, [$caf4] @@ -607,10 +607,10 @@ Functionea7e9: ; ea7e9 (3a:67e9) pop bc dec c jr nz, .asm_ea805 - call Functionea834 + call Func_ea834 ret -Functionea834: ; ea834 (3a:6834) +Func_ea834: ; ea834 (3a:6834) ld hl, $cbdc ld bc, $0020 xor a @@ -620,12 +620,12 @@ Functionea834: ; ea834 (3a:6834) .asm_ea843 push bc push hl - call Functionea860 + call Func_ea860 jr nc, .asm_ea856 - call Functionea886 - call Functionea8a1 - call Functionea902 - call Functionea999 + call Func_ea886 + call Func_ea8a1 + call Func_ea902 + call Func_ea999 .asm_ea856 pop hl inc hl @@ -637,7 +637,7 @@ Functionea834: ; ea834 (3a:6834) jr nz, .asm_ea843 ret -Functionea860: ; ea860 (3a:6860) +Func_ea860: ; ea860 (3a:6860) ld a, [$c6e9] ld b, a ld a, [$caf4] @@ -671,7 +671,7 @@ Functionea860: ; ea860 (3a:6860) and a ret -Functionea886: ; ea886 (3a:6886) +Func_ea886: ; ea886 (3a:6886) push hl inc hl inc hl @@ -690,17 +690,17 @@ Functionea886: ; ea886 (3a:6886) pop hl ret -Functionea8a1: ; ea8a1 (3a:68a1) +Func_ea8a1: ; ea8a1 (3a:68a1) push hl inc hl inc hl inc hl ld a, [hl] - call Functionea8ab + call Func_ea8ab pop hl ret -Functionea8ab: ; ea8ab (3a:68ab) +Func_ea8ab: ; ea8ab (3a:68ab) and $60 swap a ld e, a @@ -713,28 +713,28 @@ Functionea8ab: ; ea8ab (3a:68ab) jp [hl] Jumptable_ea8ba: ; ea8ba (3a:68ba) - dw Functionea8c2 - dw Functionea8c3 - dw Functionea8c7 - dw Functionea8cb + dw Func_ea8c2 + dw Func_ea8c3 + dw Func_ea8c7 + dw Func_ea8cb -Functionea8c2: ; ea8c2 (3a:68c2) +Func_ea8c2: ; ea8c2 (3a:68c2) ret -Functionea8c3: ; ea8c3 (3a:68c3) - call Functionea8d2 +Func_ea8c3: ; ea8c3 (3a:68c3) + call Func_ea8d2 ret -Functionea8c7: ; ea8c7 (3a:68c7) - call Functionea8e8 +Func_ea8c7: ; ea8c7 (3a:68c7) + call Func_ea8e8 ret -Functionea8cb: ; ea8cb (3a:68cb) - call Functionea8d2 - call Functionea8e8 +Func_ea8cb: ; ea8cb (3a:68cb) + call Func_ea8d2 + call Func_ea8e8 ret -Functionea8d2: ; ea8d2 (3a:68d2) +Func_ea8d2: ; ea8d2 (3a:68d2) ld hl, $cbdc ld c, 16 .asm_ea8d7 @@ -751,7 +751,7 @@ Functionea8d2: ; ea8d2 (3a:68d2) jr nz, .asm_ea8d7 ret -Functionea8e8: ; ea8e8 (3a:68e8) +Func_ea8e8: ; ea8e8 (3a:68e8) ld hl, $cbdc ld de, $cbea ld c, $04 @@ -774,7 +774,7 @@ Functionea8e8: ; ea8e8 (3a:68e8) jr nz, .asm_ea8f0 ret -Functionea902: ; ea902 (3a:6902) +Func_ea902: ; ea902 (3a:6902) push hl ld hl, $cbdc ld de, $cbec @@ -794,7 +794,7 @@ Functionea902: ; ea902 (3a:6902) dec hl push hl push de - call Functionea936 + call Func_ea936 pop de pop hl pop af @@ -814,12 +814,12 @@ Functionea902: ; ea902 (3a:6902) pop hl ret -Functionea936 ; ea936 (3a:6936) - call Functionea93d - call Functionea96d +Func_ea936 ; ea936 (3a:6936) + call Func_ea93d + call Func_ea96d ret -Functionea93d: ; ea93d (3a:693d) +Func_ea93d: ; ea93d (3a:693d) ld e, a ld d, 0 ld hl, Jumptable_ea949 @@ -831,37 +831,37 @@ Functionea93d: ; ea93d (3a:693d) jp [hl] Jumptable_ea949: ; ea949 (3a:6949) - dw Functionea951 - dw Functionea95f - dw Functionea956 - dw Functionea966 + dw Func_ea951 + dw Func_ea95f + dw Func_ea956 + dw Func_ea966 -Functionea951: ; ea951 (3a:6951) +Func_ea951: ; ea951 (3a:6951) ld a, [rOBP0] and $03 ret -Functionea956: ; ea956 (3a:6956) +Func_ea956: ; ea956 (3a:6956) ld a, [rOBP0] and $0c srl a srl a ret -Functionea95f: ; ea95f (3a:695f) +Func_ea95f: ; ea95f (3a:695f) ld a, [rOBP0] and $30 swap a ret -Functionea966: ; ea966 (3a:6966) +Func_ea966: ; ea966 (3a:6966) ld a, [rOBP0] and $c0 rlca rlca ret -Functionea96d: ; ea96d (3a:696d) +Func_ea96d: ; ea96d (3a:696d) ld e, a ld d, 0 ld hl, Jumptable_ea979 @@ -873,36 +873,36 @@ Functionea96d: ; ea96d (3a:696d) jp [hl] Jumptable_ea979: ; ea979 (3a:6979) - dw Functionea981 - dw Functionea986 - dw Functionea98c - dw Functionea992 + dw Func_ea981 + dw Func_ea986 + dw Func_ea98c + dw Func_ea992 -Functionea981: ; ea981 (3a:6981) +Func_ea981: ; ea981 (3a:6981) sla b sla c ret -Functionea986: ; ea986 (3a:6986) +Func_ea986: ; ea986 (3a:6986) scf rl b sla c ret -Functionea98c: ; ea98c (3a:698c) +Func_ea98c: ; ea98c (3a:698c) sla b scf rl c ret -Functionea992: ; ea992 (3a:6992) +Func_ea992: ; ea992 (3a:6992) scf rl b scf rl c ret -Functionea999: ; ea999 (3a:6999) +Func_ea999: ; ea999 (3a:6999) push hl ld a, [hli] ld c, [hl] @@ -927,7 +927,7 @@ Functionea999: ; ea999 (3a:6999) ld hl, $cbec ld c, $08 .asm_ea9bc - call Functionea9d0 + call Func_ea9d0 ld a, [de] and b or [hl] @@ -945,7 +945,7 @@ Functionea999: ; ea999 (3a:6999) pop hl ret -Functionea9d0: ; ea9d0 (3a:69d0) +Func_ea9d0: ; ea9d0 (3a:69d0) push hl push de ld de, $fff0 -- cgit v1.3.1-sl0p From 10984f14cebe3357c45c7d0d2b981d216fc623bf Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 19:40:45 -0400 Subject: Replace MonsterNames dr with file already in repo --- engine/unknown_e8d35.asm | 2 +- main.asm | 3 +-- text/monster_names.asm | 2 +- wram.asm | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) (limited to 'engine') diff --git a/engine/unknown_e8d35.asm b/engine/unknown_e8d35.asm index 955a9f45..7aeeff39 100755 --- a/engine/unknown_e8d35.asm +++ b/engine/unknown_e8d35.asm @@ -42,7 +42,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) jr c, .asm_e8ddc xor a ld [wUnknownSerialFlag_d49a], a - ld [$d49a], a + ld [wUnknownSerialFlag_d49b], a ld c, 12 call DelayFrames xor a diff --git a/main.asm b/main.asm index 8f84396b..0fe6f2fd 100755 --- a/main.asm +++ b/main.asm @@ -875,8 +875,7 @@ SECTION "bank39",ROMX,BANK[$39] SECTION "bank3A",ROMX,BANK[$3A] -MonsterNames: ; e8000 (3a:4000) - dr $e8000,$e876c +INCLUDE "text/monster_names.asm" IsPlayerJustOutsideMap: ; e876c (3a:476c) dr $e876c,$e8783 Func_e8783: ; e8783 (3a:4783) diff --git a/text/monster_names.asm b/text/monster_names.asm index c7e0226f..3262ec02 100755 --- a/text/monster_names.asm +++ b/text/monster_names.asm @@ -1,4 +1,4 @@ -MonsterNames: ; 1c21e (7:421e) +MonsterNames: ; e8000 (3a:4000) db "RHYDON@@@@" db "KANGASKHAN" db "NIDORAN♂@@" diff --git a/wram.asm b/wram.asm index 3ba0c67b..de88919b 100755 --- a/wram.asm +++ b/wram.asm @@ -2536,7 +2536,7 @@ wd47a:: ds 1 ds 24 -wPreventBlackout:: ds 1 +wPreventBlackout:: ds 1 ; d492 ds 1 -- cgit v1.3.1-sl0p From 106251da1f1412dbca66db8c0e0fe7fe9eb63968 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 21:03:52 -0400 Subject: engine/printer.asm --- engine/printer.asm | 772 +++++++++++++++++++++++++++++++++++++++++++++++ engine/unknown_e8d35.asm | 159 ---------- main.asm | 27 +- 3 files changed, 788 insertions(+), 170 deletions(-) create mode 100755 engine/printer.asm delete mode 100755 engine/unknown_e8d35.asm (limited to 'engine') diff --git a/engine/printer.asm b/engine/printer.asm new file mode 100755 index 00000000..16b95eed --- /dev/null +++ b/engine/printer.asm @@ -0,0 +1,772 @@ +Func_e8783: ; e8783 (3a:4783) + ld a, 9 + push af + ld hl, wOverworldMap + lb bc, 4, 13 + xor a + call Func_e8a2e + xor a + ld [rSB], a + ld [rSC], a + ld [wUnknownSerialFlag_d49b], a + ld hl, wUnknownSerialFlag_d49a + set 0, [hl] + ld a, [wd498] + ld [$cae3], a + pop af + ld [$caf4], a + ret + +; e87a8 +Func_e87a8: ; e87a8 (3a:47a8) + ld a, [wOverworldMap] + ld e, a + ld d, 0 + ld hl, Jumptable_e87b7 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_e87b7: + dw Func_e87fd + dw Func_e88c9 + dw Func_e88a6 + dw Func_e881f + dw Func_e8906 + dw Func_e88b4 + dw Func_e884b + dw Func_e8906 + dw Func_e88a6 + dw Func_e8864 + dw Func_e8906 + dw Func_e88a6 + dw Func_e8927 + dw Func_e87e9 + dw Func_e87f3 + dw Func_e88a6 + dw Func_e8889 + dw Func_e87f7 + dw Func_e8936 + dw Func_e8939 + +Func_e87df: + ld hl, wOverworldMap + inc [hl] + ret + +Func_e87e4: + ld hl, wOverworldMap + dec [hl] + ret + +Func_e87e9: + xor a + ld [$c971], a + ld hl, wOverworldMap + set 7, [hl] + ret + +Func_e87f3: + call Func_e87df + ret + +Func_e87f7: + ld a, $01 + ld [wOverworldMap], a + ret + +Func_e87fd: + call Func_e8981 + ld hl, Data_e8a3a + call Func_e8968 + xor a + ld [$c976], a + ld [$c977], a + ld a, [$caf4] + ld [$c6e9], a + call Func_e87df + call Func_e8949 + ld a, $01 + ld [$cae0], a + ret + +Func_e881f: + call Func_e8981 + ld hl, $c6e9 + ld a, [hl] + and a + jr z, Func_e884b + ld hl, Data_e8a46 + call Func_e8968 + call Func_e89e6 + ld a, $80 + ld [$c976], a + ld a, $02 + ld [$c977], a + call Func_e899f + call Func_e87df + call Func_e8949 + ld a, $02 + ld [$cae0], a + ret + +Func_e884b: + ld a, $06 + ld [wOverworldMap], a + ld hl, Data_e8a4c + call Func_e8968 + xor a + ld [$c976], a + ld [$c977], a + call Func_e87df + call Func_e8949 + ret + +Func_e8864: + call Func_e8981 + ld hl, Data_e8a40 + call Func_e8968 + call Func_e89cf + ld a, $04 + ld [$c976], a + ld a, $00 + ld [$c977], a + call Func_e899f + call Func_e87df + call Func_e8949 + ld a, $03 + ld [$cae0], a + ret + +Func_e8889: + call Func_e8981 + ld hl, Data_e8a3a + call Func_e8968 + xor a + ld [$c976], a + ld [$c977], a + ld a, [$caf4] + ld [$c6e9], a + call Func_e87df + call Func_e8949 + ret + +Func_e88a6: + ld hl, $c973 + inc [hl] + ld a, [hl] + cp a, $06 + ret c + xor a + ld [hl], a + call Func_e87df + ret + +Func_e88b4: + ld hl, $c973 + inc [hl] + ld a, [hl] + cp a, $06 + ret c + xor a + ld [hl], a + ld hl, $c6e9 + dec [hl] + call Func_e87e4 + call Func_e87e4 + ret + +Func_e88c9: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c970] + cp a, $ff + jr nz, .asm_e88dc + ld a, [$c971] + cp a, $ff + jr z, .asm_e88f8 +.asm_e88dc + ld a, [$c970] + cp a, $81 + jr nz, .asm_e88f8 + ld a, [$c971] + cp a, $00 + jr nz, .asm_e88f8 + ld hl, wUnknownSerialFlag_d49a + set 1, [hl] + ld a, $05 + ld [$c972], a + call Func_e87df + ret + +.asm_e88f8 + ld a, $ff + ld [$c970], a + ld [$c971], a + ld a, $0e + ld [wOverworldMap], a + ret + +Func_e8906: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c971] + and a, $f0 + jr nz, .asm_e8921 + ld a, [$c971] + and a, $01 + jr nz, .asm_e891d + call Func_e87df + ret + +.asm_e891d + call Func_e87e4 + ret + +.asm_e8921 + ld a, $12 + ld [wOverworldMap], a + ret + +Func_e8927: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c971] + and a, $f3 + ret nz + call Func_e87df + ret + +Func_e8936: + call Func_e87df +Func_e8939: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c971] + and a, $f0 + ret nz + xor a + ld [wOverworldMap], a + ret + +Func_e8949: +.asm_e8949 + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_e8949 + xor a + ld [$c974], a + ld [$c975], a + ld a, $01 + ld [wUnknownSerialFlag_d49b], a + ld a, $88 + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +Func_e8968: + ld a, [hli] + ld [$c6ea], a + ld a, [hli] + ld [$c6eb], a + ld a, [hli] + ld [$c6ec], a + ld a, [hli] + ld [$c6ed], a + ld a, [hli] + ld [$c6ee], a + ld a, [hl] + ld [$c6ef], a + ret + +Func_e8981: + xor a + ld hl, $c6ea + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, $c6ee + ld [hli], a + ld [hl], a + xor a + ld [$c976], a + ld [$c977], a + ld hl, $c6f0 + ld bc, $0280 + call Func_e8a2e + ret + +Func_e899f: + ld hl, $0000 + ld bc, $0004 + ld de, $c6ea + call Func_e89c2 + ld a, [$c976] + ld c, a + ld a, [$c977] + ld b, a + ld de, $c6f0 + call Func_e89c2 + ld a, l + ld [$c6ee], a + ld a, h + ld [$c6ef], a + ret + +Func_e89c2: +.asm_e89c2 + ld a, [de] + inc de + add l + jr nc, .asm_e89c8 + inc h +.asm_e89c8 + ld l, a + dec bc + ld a, c + or b + jr nz, .asm_e89c2 + ret + +Func_e89cf: + ld a, $01 + ld [$c6f0], a + ld a, [$cae2] + ld [$c6f1], a + ld a, $e4 + ld [$c6f2], a + ld a, [$cae3] + ld [$c6f3], a + ret + +Func_e89e6: + ld a, [$c6e9] + ld b, a + ld a, [$caf4] + sub b + ld hl, $c978 + ld de, $0028 +.asm_e89f4 + and a + jr z, .asm_e89fb + add hl, de + dec a + jr .asm_e89f4 + +.asm_e89fb + ld e, l + ld d, h + ld hl, $c6f0 + ld c, $28 +.asm_e8a02 + ld a, [de] + inc de + push bc + push de + push hl + swap a + ld d, a + and a, $f0 + ld e, a + ld a, d + and a, $0f + ld d, a + and a, $08 + ld a, d + jr nz, .asm_e8a1a + or a, $90 + jr .asm_e8a1c + +.asm_e8a1a + or a, $80 +.asm_e8a1c + ld d, a + ld bc, $3a01 + call CopyVideoData + pop hl + ld de, $0010 + add hl, de + pop de + pop bc + dec c + jr nz, .asm_e8a02 + ret + +Func_e8a2e: ; e8a2e (3a:4a2e) + push de + ld e, a +.asm_e8a30 + ld [hl], e + inc hl + dec bc + ld a, c + or b + jr nz, .asm_e8a30 + ld a, e + pop de + ret + +Data_e8a3a: + db $01, $00, $00, $00, $01, $00 +Data_e8a40: + db $02, $00, $04, $00, $00, $00 +Data_e8a46: + db $04, $00, $80, $02, $00, $00 +Data_e8a4c: + db $04, $00, $00, $00, $04, $00 +Data_e8a52: + db $08, $00, $00, $00, $08, $00 +Data_e8a58: + db $0f, $00, $00, $00, $0f, $00 + +Func_e8a5e: ; e8a5e (3a:4a5e) + ld a, [$d49a] + ld e, a + ld d, 0 + ld hl, Jumptable_e8a6d + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_e8a6d: + dw Func_e8ab2 + dw Func_e8ab3 + dw Func_e8abc + dw Func_e8ac6 + dw Func_e8ad0 + dw Func_e8ada + dw Func_e8ae4 + dw Func_e8b0f + dw Func_e8b19 + dw Func_e8b23 + dw Func_e8b2c + dw Func_e8b3a + dw Func_e8ab3 + dw Func_e8b44 + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b44 + dw Func_e8b4d + dw Func_e8b23 + dw Func_e8b2c + dw Func_e8b6a + dw Func_e8ab3 + dw Func_e8b56 + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b56 + dw Func_e8b4d + dw Func_e8b23 + dw Func_e8b2c + dw Func_e8b3a + +Func_e8aad: + ld hl, wUnknownSerialFlag_d49b + inc [hl] + ret + +Func_e8ab2: + ret + +Func_e8ab3: + ld a, $33 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8abc: + ld a, [$c6ea] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ac6: + ld a, [$c6eb] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ad0: + ld a, [$c6ec] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ada: + ld a, [$c6ed] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ae4: + ld hl, $c976 + ld e, [hl] + inc hl + ld d, [hl] + ld a, e + or d + jr z, .asm_e8b0c + dec de + ld [hl], d + dec hl + ld [hl], e + ld a, [$c974] + ld e, a + ld a, [$c975] + ld d, a + ld hl, $c6f0 + add hl, de + inc de + ld a, e + ld [$c974], a + ld a, d + ld [$c975], a + ld a, [hl] + call Func_e8b5f + ret + +.asm_e8b0c + call Func_e8aad +Func_e8b0f: + ld a, [$c6ee] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b19: + ld a, [$c6ef] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b23: + ld a, $00 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b2c: + ld a, [rSB] + ld [$c970], a + ld a, $00 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b3a: + ld a, [rSB] + ld [$c971], a + xor a + ld [wUnknownSerialFlag_d49b], a + ret + +Func_e8b44: + ld a, $0f + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b4d: + ld a, $00 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b56: + ld a, $08 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b5f: + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +Func_e8b6a: + ld a, [rSB] + ld [$c971], a + xor a + ld [wUnknownSerialFlag_d49b], a + ret + +Func_e8b74: ; e8b74 (3a:4b74) + dr $e8b74,$e8d35 + +Func_e8d35:: ; e8d35 (3a:4e79) + ld a, [wBoxDataStart] + and a + jp z, Func_e8df4 + ld a, [wUpdateSpritesEnabled] + push af + xor a + ld [wUpdateSpritesEnabled], a + ld [hItemCounter], a + call Func_e8f24 + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call SaveScreenTilesToBuffer1 + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e988a + call Func_e8783 + ld a, $10 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e98ec + call Func_e8783 + ld a, $00 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e9907 + call Func_e8783 + ld a, $00 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e9922 + call Func_e8783 + ld a, $03 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb +.asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + pop af + ld [wUpdateSpritesEnabled], a + ret + +Func_e8df4: ; e8df4 + ld hl, String_e8e1f + call PrintText + ret + +Func_e8dfb: ; e8dfb + call Func_e8f16 +.asm_e8dfe + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8e1d + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8e1b + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8dfe + +.asm_e8e1b + and a + ret + +.asm_e8e1d + scf + ret + +String_e8e1f: ; e8e1f + TX_FAR _NoPokemonText + db "@" + +Func_e8e24: ; e8e24 + xor a + ld [hItemCounter], a + call Func_e8f24 + call Func_ea3ea + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $13 + ld [$cae2], a + call Func_e8efc + call Func_e8f16 +.asm_e8e45 + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8e62 + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8e62 + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8e45 + +.asm_e8e62 + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + call Func_e8f09 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + ret diff --git a/engine/unknown_e8d35.asm b/engine/unknown_e8d35.asm deleted file mode 100755 index 7aeeff39..00000000 --- a/engine/unknown_e8d35.asm +++ /dev/null @@ -1,159 +0,0 @@ -Func_e8d35:: ; e8d35 (3a:4e79) - ld a, [wBoxDataStart] - and a - jp z, Func_e8df4 - ld a, [wUpdateSpritesEnabled] - push af - xor a - ld [wUpdateSpritesEnabled], a - ld [hItemCounter], a - call Func_e8f24 - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $09 - ld [rIE], a - call SaveScreenTilesToBuffer1 - xor a - ld [H_AUTOBGTRANSFERENABLED], a - call Func_e988a - call Func_e8783 - ld a, $10 - ld [$cae2], a - call Func_e8efc - call LoadScreenTilesFromBuffer1 - call Func_e8dfb - jr c, .asm_e8ddc - xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a - ld c, 12 - call DelayFrames - xor a - ld [H_AUTOBGTRANSFERENABLED], a - call Func_e98ec - call Func_e8783 - ld a, $00 - ld [$cae2], a - call Func_e8efc - call LoadScreenTilesFromBuffer1 - call Func_e8dfb - jr c, .asm_e8ddc - xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a - ld c, 12 - call DelayFrames - xor a - ld [H_AUTOBGTRANSFERENABLED], a - call Func_e9907 - call Func_e8783 - ld a, $00 - ld [$cae2], a - call Func_e8efc - call LoadScreenTilesFromBuffer1 - call Func_e8dfb - jr c, .asm_e8ddc - xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a - ld c, 12 - call DelayFrames - xor a - ld [H_AUTOBGTRANSFERENABLED], a - call Func_e9922 - call Func_e8783 - ld a, $03 - ld [$cae2], a - call Func_e8efc - call LoadScreenTilesFromBuffer1 - call Func_e8dfb -.asm_e8ddc - xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a - xor a - ld [rIF], a - pop af - ld [rIE], a - call Func_0f3d - call Func_e8f3b - pop af - ld [wUpdateSpritesEnabled], a - ret - -Func_e8df4: ; e8df4 - ld hl, String_e8e1f - call PrintText - ret - -Func_e8dfb: ; e8dfb - call Func_e8f16 -.asm_e8dfe - call JoypadLowSensitivity - call Func_e8eca - jr c, .asm_e8e1d - ld a, [wOverworldMap] - bit 7, a - jr nz, .asm_e8e1b - call Func_e87a8 - call Func_e8f51 - call Func_e8f82 - call DelayFrame - jr .asm_e8dfe - -.asm_e8e1b - and a - ret - -.asm_e8e1d - scf - ret - -String_e8e1f: ; e8e1f - TX_FAR _NoPokemonText - db "@" - -Func_e8e24: ; e8e24 - xor a - ld [hItemCounter], a - call Func_e8f24 - call Func_ea3ea - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $09 - ld [rIE], a - call Func_e8783 - ld a, $13 - ld [$cae2], a - call Func_e8efc - call Func_e8f16 -.asm_e8e45 - call JoypadLowSensitivity - call Func_e8eca - jr c, .asm_e8e62 - ld a, [wOverworldMap] - bit 7, a - jr nz, .asm_e8e62 - call Func_e87a8 - call Func_e8f51 - call Func_e8f82 - call DelayFrame - jr .asm_e8e45 - -.asm_e8e62 - xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a - call Func_e8f09 - xor a - ld [rIF], a - pop af - ld [rIE], a - call Func_0f3d - call Func_e8f3b - ret - diff --git a/main.asm b/main.asm index 0fe6f2fd..dd4555eb 100755 --- a/main.asm +++ b/main.asm @@ -877,17 +877,22 @@ SECTION "bank39",ROMX,BANK[$39] SECTION "bank3A",ROMX,BANK[$3A] INCLUDE "text/monster_names.asm" IsPlayerJustOutsideMap: ; e876c (3a:476c) - dr $e876c,$e8783 -Func_e8783: ; e8783 (3a:4783) - dr $e8783,$e87a8 -Func_e87a8: ; e87a8 (3a:47a8) - dr $e87a8,$e8a5e -Func_e8a5e: ; e8a5e (3a:4a5e) - dr $e8a5e,$e8b74 -Func_e8b74: ; e8b74 (3a:4b74) - dr $e8b74,$e8d35 - -INCLUDE "engine/unknown_e8d35.asm" + ld a, [wYCoord] + ld b, a + ld a, [wCurMapHeight] + call Func_e877e + ret z + ld a, [wXCoord] + ld b, a + ld a, [wCurMapWidth] +Func_e877e: + add a + cp b + ret z + inc b + ret + +INCLUDE "engine/printer.asm" Func_e8e79: ; e8e79 (3a:4e79) dr $e8e79,$e8eca -- cgit v1.3.1-sl0p From c6a32f2517ecef9ef12afa472a8fd54a8672f678 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 22:45:08 -0400 Subject: the rest of engine/printer.asm --- engine/printer.asm | 229 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 228 insertions(+), 1 deletion(-) (limited to 'engine') diff --git a/engine/printer.asm b/engine/printer.asm index 3e9057ce..e91376ee 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -1,5 +1,6 @@ Func_e8783: ; e8783 (3a:4783) ld a, 9 +Func_e8785: push af ld hl, wOverworldMap lb bc, 4, 13 @@ -610,7 +611,233 @@ Func_e8b6a: ret Func_e8b74: ; e8b74 (3a:4b74) - dr $e8b74,$e8d35 + ld a, [$cfca] + push af + xor a + ld [$cfca], a + ld [$ffdb], a + call Func_e8f24 + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + xor a + ld [$ffba], a + call Func_e8c30 + call Func_e8785 + ld a, [$caf9] + and a + jr z, .asm_e8b9e + ld a, $10 + jr .asm_e8ba0 + +.asm_e8b9e + ld a, $13 +.asm_e8ba0 + ld [$cae2], a + call Func_e8efc + call ClearScreen + callab Func_401c2 + callab Func_4027c + ld a, $01 + ld [$ffba], a + call Func_e8c0c + jr c, .asm_e8bf4 + ld a, [$caf9] + and a + jr z, .asm_e8bf4 + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, $0c + call DelayFrames + call SaveScreenTilesToBuffer1 + xor a + ld [$ffba], a + call Func_e8c50 + ld a, $07 + call Func_e8785 + ld a, $03 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + ld a, $01 + ld [$ffba], a + call Func_e8c0c +.asm_e8bf4 + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + pop af + ld [$cfca], a + ret + +Func_e8c0c: + call Func_e8f16 +.asm_e8c0f + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8c2e + ld a, [$c6e8] + bit 7, a + jr nz, .asm_e8c2c + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8c0f + +.asm_e8c2c + and a + ret + +.asm_e8c2e + scf + ret + +Func_e8c30: + callab Func_4039c + ld a, l + ld [$caf5], a + ld a, h + ld [$caf6], a + ld a, $00 + rla + ld [$caf9], a + and a + jr z, .asm_e8c4d + ld a, $05 + jr .asm_e8c4f + +.asm_e8c4d + ld a, $09 +.asm_e8c4f + ret + +Func_e8c50: + call ClearScreen + callab Func_404bc + ret + +Func_e8c5c: + xor a + ld [$ffdb], a + call Func_e8f24 + call $510a ; Func_e910a + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $13 + ld [$cae2], a + call Func_e8efc + call Func_e8f16 +.asm_e8c7d + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8c9a + ld a, [$c6e8] + bit 7, a + jr nz, .asm_e8c9a + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8c7d + +.asm_e8c9a + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + call Func_e8f09 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + ret + +Func_e8cb1: + xor a + ld [$ffdb], a + call Func_e8f24 + call $5a08 ; Func_e9a08 + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $10 + ld [$cae2], a + call Func_e8efc + call Func_e8d11 + jr c, .asm_e8cfa + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, $0c + call DelayFrames + call SaveScreenTilesToBuffer1 + xor a + ld [$ffba], a + call $5ad3 ; Func_e9ad3 + call Func_e8783 + ld a, $03 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8d11 +.asm_e8cfa + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + call Func_e8f09 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + ret + +Func_e8d11: + call Func_e8f16 +.asm_e8d14 + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8d33 + ld a, [$c6e8] + bit 7, a + jr nz, .asm_e8d31 + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8d14 + +.asm_e8d31 + and a + ret + +.asm_e8d33 + scf + ret + + Func_e8d35:: ; e8d35 (3a:4e79) ld a, [wBoxDataStart] -- cgit v1.3.1-sl0p From c74453452847a60126816b61ae71f230c6c1c5ae Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 23:30:24 -0400 Subject: Disassemble diploma in bank 3a --- engine/diploma_3a.asm | 137 ++++++++++++++++++++++++++++++++++++++++++++++ gfx/unknown_e9b3e.tilemap | 1 + gfx/unknown_e9bb6.tilemap | 2 + gfx/unknown_e9bc1.tilemap | 1 + main.asm | 5 +- 5 files changed, 144 insertions(+), 2 deletions(-) create mode 100755 engine/diploma_3a.asm create mode 100644 gfx/unknown_e9b3e.tilemap create mode 100644 gfx/unknown_e9bb6.tilemap create mode 100644 gfx/unknown_e9bc1.tilemap (limited to 'engine') diff --git a/engine/diploma_3a.asm b/engine/diploma_3a.asm new file mode 100755 index 00000000..20c4ba43 --- /dev/null +++ b/engine/diploma_3a.asm @@ -0,0 +1,137 @@ +_DisplayDiploma: ; e9a08 (3a:5a08) + call GBPalWhiteOutWithDelay3 + call ClearScreen + ld de, SurfingPikachu3Graphics + ld hl, vChars2 + lb bc, BANK(SurfingPikachu3Graphics), (SurfingPikachu3GraphicsEnd - SurfingPikachu3Graphics) / $10 + call CopyVideoData + + coord hl, 0, 0 + call Func_e9bdf + + coord hl, 0, 0 + call Func_e9beb + + coord hl, 19, 0 + call Func_e9beb + + ld a, $00 + coord hl, 0, 0 + ld [hl], a + coord hl, 19, 0 + ld [hl], a + + ld de, String_e9a73 + coord hl, 5, 2 + call PlaceString + + ld de, String_e9a7d + coord hl, 3, 4 + call PlaceString + + ld de, wPlayerName + coord hl, 10, 4 + call PlaceString + + ld de, String_e9a84 + coord hl, 2, 6 + call PlaceString + + ld de, String_e9ac8 + coord hl, 9, 16 + call PlaceString + + ld b, SET_PAL_GENERIC + call RunPaletteCommand + ld a, $01 + ld [$ffba], a + call Delay3 + call GBPalNormal + ret + +; e9a73 +String_e9a73: + db $10, "Diploma", $10, "@" + +String_e9a7d: + db "Player@" + +String_e9a84: + db "Congrats! This" + next "diploma certifies" + next "that you have" + next "completed your" + next "#DEX.@" + +String_e9ac8: + db "GAME FREAK@" + +Func_e9ad3: + call ClearScreen + coord hl, 0, 17 + call Func_e9bdf + coord hl, 0, 0 + call Func_e9beb + coord hl, 19, 0 + call Func_e9beb + ld a, $00 + coord hl, 0, 17 + ld [hl], a + coord hl, 19, 17 + ld [hl], a + ld de, Tilemap_e9b3e + coord hl, 6, 2 + lb bc, 10, 12 + call $525d ; Func_e925d + ld de, Tilemap_e9bb6 + coord hl, 5, 13 + lb bc, 1, 11 + call $525d ; Func_e925d + ld de, String_e9bd5 + coord hl, 2, 15 + call PlaceString + coord hl, 12, 15 + ld de, wPlayTimeHours + 1 + lb bc, $40 | 1, 3 + call PrintNumber + ld [hl], $16 + inc hl + ld de, wPlayTimeMinutes + 1 + lb bc, $80 | 1, 2 + call PrintNumber + ld a, [wNumSetBits] + cp 151 + ret nz + ld de, TileMap_e9bc1 + coord hl, 2, 0 + lb bc, 4, 5 + call $525d ; Func_e925d + ret + +Tilemap_e9b3e: INCBIN "gfx/unknown_e9b3e.tilemap" +Tilemap_e9bb6: INCBIN "gfx/unknown_e9bb6.tilemap" +TileMap_e9bc1: INCBIN "gfx/unknown_e9bc1.tilemap" +String_e9bd5: db "PLAY TIME@" + +Func_e9bdf: + ld c, 10 +.asm_e9be1 + ld [hl], $02 + inc hl + ld [hl], $01 + inc hl + dec c + jr nz, .asm_e9be1 + ret + +Func_e9beb: + ld c, 9 + ld de, SCREEN_WIDTH +.asm_e9bed + ld [hl], $04 + add hl, de + ld [hl], $03 + add hl, de + dec c + jr nz, .asm_e9bed + ret diff --git a/gfx/unknown_e9b3e.tilemap b/gfx/unknown_e9b3e.tilemap new file mode 100644 index 00000000..95386372 --- /dev/null +++ b/gfx/unknown_e9b3e.tilemap @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABC)DEFGHIJK))LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn \ No newline at end of file diff --git a/gfx/unknown_e9bb6.tilemap b/gfx/unknown_e9bb6.tilemap new file mode 100644 index 00000000..1fc3cd90 --- /dev/null +++ b/gfx/unknown_e9bb6.tilemap @@ -0,0 +1,2 @@ + +  \ No newline at end of file diff --git a/gfx/unknown_e9bc1.tilemap b/gfx/unknown_e9bc1.tilemap new file mode 100644 index 00000000..13521d1e --- /dev/null +++ b/gfx/unknown_e9bc1.tilemap @@ -0,0 +1 @@ +pqrstuvwx \ No newline at end of file diff --git a/main.asm b/main.asm index 9fdb091c..ec76673b 100755 --- a/main.asm +++ b/main.asm @@ -918,10 +918,11 @@ Func_e8f82: ; e8f82 (3a:4f82) dr $e8f82,$e928a SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" dr $e988a,$e9a08 -_DisplayDiploma: ; e9a08 (3a:5a08) - dr $e9a08,$e9bfa + +INCLUDE "engine/diploma_3a.asm" SurfingPikachu3Graphics: INCBIN "gfx/surfing_pikachu_3.t1.2bpp" +SurfingPikachu3GraphicsEnd: INCLUDE "engine/unknown_ea3ea.asm" -- cgit v1.3.1-sl0p From 2f6075ece09988de1630874d3f2ddd0e1f6d74c3 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 22 May 2016 23:35:36 -0400 Subject: Resolve hard-coded calls --- engine/diploma_3a.asm | 6 +++--- engine/printer.asm | 14 +++++++------- main.asm | 15 +++++++++++++-- 3 files changed, 23 insertions(+), 12 deletions(-) (limited to 'engine') diff --git a/engine/diploma_3a.asm b/engine/diploma_3a.asm index 20c4ba43..471703d6 100755 --- a/engine/diploma_3a.asm +++ b/engine/diploma_3a.asm @@ -82,11 +82,11 @@ Func_e9ad3: ld de, Tilemap_e9b3e coord hl, 6, 2 lb bc, 10, 12 - call $525d ; Func_e925d + call Func_e925d ld de, Tilemap_e9bb6 coord hl, 5, 13 lb bc, 1, 11 - call $525d ; Func_e925d + call Func_e925d ld de, String_e9bd5 coord hl, 2, 15 call PlaceString @@ -105,7 +105,7 @@ Func_e9ad3: ld de, TileMap_e9bc1 coord hl, 2, 0 lb bc, 4, 5 - call $525d ; Func_e925d + call Func_e925d ret Tilemap_e9b3e: INCBIN "gfx/unknown_e9b3e.tilemap" diff --git a/engine/printer.asm b/engine/printer.asm index e91376ee..6218f6a7 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -731,7 +731,7 @@ Func_e8c5c: xor a ld [$ffdb], a call Func_e8f24 - call $510a ; Func_e910a + call Func_e910a ld a, [rIE] push af xor a @@ -773,7 +773,7 @@ Func_e8cb1: xor a ld [$ffdb], a call Func_e8f24 - call $5a08 ; Func_e9a08 + call _DisplayDiploma ld a, [rIE] push af xor a @@ -794,7 +794,7 @@ Func_e8cb1: call SaveScreenTilesToBuffer1 xor a ld [$ffba], a - call $5ad3 ; Func_e9ad3 + call Func_e9ad3 call Func_e8783 ld a, $03 ld [$cae2], a @@ -858,7 +858,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) call SaveScreenTilesToBuffer1 xor a ld [H_AUTOBGTRANSFERENABLED], a - call $588a ; Func_e988a + call Func_e988a call Func_e8783 ld a, $10 ld [$cae2], a @@ -873,7 +873,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a - call $58ec ; Func_e98ec + call Func_e98ec call Func_e8783 ld a, $00 ld [$cae2], a @@ -888,7 +888,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a - call $5907 ; Func_e9907 + call Func_e9907 call Func_e8783 ld a, $00 ld [$cae2], a @@ -903,7 +903,7 @@ Func_e8d35:: ; e8d35 (3a:4e79) call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a - call $5922 ; Func_e9922 + call Func_e9922 call Func_e8783 ld a, $03 ld [$cae2], a diff --git a/main.asm b/main.asm index ec76673b..029142dc 100755 --- a/main.asm +++ b/main.asm @@ -915,9 +915,20 @@ Func_e8f3b: ; e8f3b (3a:4f3b) Func_e8f51: ; e8f51 (3a:4f51) dr $e8f51,$e8f82 Func_e8f82: ; e8f82 (3a:4f82) - dr $e8f82,$e928a + dr $e8f82,$e910a +Func_e910a: + dr $e910a,$e925d +Func_e925d: + dr $e925d,$e928a SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" - dr $e988a,$e9a08 +Func_e988a: + dr $e988a,$e98ec +Func_e98ec: + dr $e98ec,$e9907 +Func_e9907: + dr $e9907,$e9922 +Func_e9922: + dr $e9922,$e9a08 INCLUDE "engine/diploma_3a.asm" -- cgit v1.3.1-sl0p From 1579a084e70c73add5af8af0aaf40bee69f07275 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 23 May 2016 14:04:13 -0400 Subject: Move all the printer functions out of main.asm, including the intermediate dr blocks --- engine/printer.asm | 343 +++++++++++++++++++++++++++++++++++++++++++++++++++++ main.asm | 269 ----------------------------------------- 2 files changed, 343 insertions(+), 269 deletions(-) (limited to 'engine') diff --git a/engine/printer.asm b/engine/printer.asm index 6218f6a7..7e6ae637 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -997,3 +997,346 @@ Func_e8e24: ; e8e24 call Func_0f3d call Func_e8f3b ret + +Func_e8e79: ; e8e79 (3a:4e79) + push af + push bc + push de + push hl + call StopAllMusic + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $13 + ld [$cae2], a + ld a, $1 + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e8efc + call Func_ea573 +.asm_e8e9c + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8eae + call Func_ea5d1 + call Func_ea5b7 + call DelayFrame + jr .asm_e8e9c + +.asm_e8eae + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld hl, wOAMBuffer + 32 * 4 + ld bc, $0020 + xor a + call FillMemory + xor a + ld [rIF], a + pop af + ld [rIE], a + pop hl + pop de + pop bc + pop af + ret + +Func_e8eca: ; e8eca (3a:4eca) + ld a, [hJoyHeld] + and B_BUTTON + jr nz, .asm_e8ed2 + and a + ret + +.asm_e8ed2 + ld a, [wOverworldMap] + cp $0c + jr nz, .asm_e8ef6 +.asm_e8ed9 + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_e8ed9 + ld a, $16 + ld [wUnknownSerialFlag_d49b], a + ld a, $88 + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a +.asm_e8ef0 + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_e8ef0 +.asm_e8ef6 + ld a, $01 + ld [hItemCounter], a + scf + ret + +Func_e8efc: ; e8efc (3a:4efc) + dr $e8efc,$e8f09 +Func_e8f09: ; e8f09 (3a:4f09) + dr $e8f09,$e8f16 +Func_e8f16: ; e8f16 (3a:4f16) + dr $e8f16,$e8f24 +Func_e8f24: ; e8f24 (3a:4f24) + dr $e8f24,$e8f3b +Func_e8f3b: ; e8f3b (3a:4f3b) + dr $e8f3b,$e8f51 +Func_e8f51: ; e8f51 (3a:4f51) + dr $e8f51,$e8f82 +Func_e8f82: ; e8f82 (3a:4f82) + dr $e8f82,$e910a +Func_e910a: + dr $e910a,$e925d + +Func_e925d: +.asm_e925d + push bc + push hl +.asm_e925f + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_e925f + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .asm_e925d + ret + +Func_e926f: + ld de, wd496 + coord hl, 7, 6 + ld a, [de] + call Func_e927a + ld a, [de] +Func_e927a: + ld c, a + swap a + and $f + add -10 + ld [hli], a + ld a, c + and $f + add -10 + ld [hli], a + dec de + ret + +SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" + +Func_e988a: + xor a + ld [wBoxNumString], a + call ClearScreen + call Func_e99de + coord hl, 0, 0 + ld bc, 11 * SCREEN_WIDTH + ld a, " " + call FillMemory + call Func_e99b9 + call Func_e99a7 + coord hl, 4, 4 + ld de, String_e98db + call PlaceString + coord hl, 7, 6 + ld de, String_e98e8 + call PlaceString + coord hl, 11, 6 + ld a, [wCurrentBoxNum] + and $7f + cp 9 + jr c, .asm_e98cc + sub 9 + ld [hl], "1" + inc hl + add "0" + jr .asm_e98ce + +.asm_e98cc + add "1" +.asm_e98ce + ld [hl], a + coord hl, 4, 9 + ld de, wBoxSpecies + ld c, $03 + call Func_e994e + ret + + +String_e98db: db "POKéMON LIST@" +String_e98e8: db "BOX@" + +Func_e98ec: + call ClearScreen + call Func_e99de + call Func_e99b9 + ld a, [wBoxDataStart] + cp 4 + ret c + coord hl, 4, 0 + ld de, wBoxSpecies + 3 + ld c, 6 + call Func_e994e + ret + +Func_e9907: + call ClearScreen + call Func_e99de + call Func_e99b9 + ld a, [wBoxDataStart] + cp 10 + ret c + coord hl, 4, 0 + ld de, wBoxSpecies + 9 + ld c, 6 + call Func_e994e + ret + +Func_e9922: + call ClearScreen + call Func_e99de + call Func_e99b9 + coord hl, 0, 15 + call Func_e99cf + coord hl, 0, 16 + ld bc, 2 * SCREEN_WIDTH + ld a, " " + call FillMemory + ld a, [wBoxDataStart] + cp 16 + ret c + coord hl, 4, 0 + ld de, wBoxSpecies + 15 + ld c, 5 + call Func_e994e + ret + +Func_e994e: +.asm_e994e + ld a, c + and a + jr z, .asm_e99a6 + dec c + ld a, [de] + cp $ff + jr z, .asm_e99a6 + ld [$d11d], a + push bc + push hl + push de + push hl + ld bc, 12 + ld a, " " + call FillMemory + pop hl + push hl + ld de, SCREEN_WIDTH + add hl, de + ld bc, 12 + ld a, " " + call FillMemory + pop hl + push hl + call GetMonName + pop hl + call PlaceString + push hl + ld hl, wBoxMonNicks + ld bc, NAME_LENGTH + ld a, [wBoxNumString] + call AddNTimes + ld e, l + ld d, h + pop hl + ld bc, SCREEN_WIDTH + 1 + add hl, bc + ld [hl], " " + inc hl + call PlaceString + ld hl, wBoxNumString + inc [hl] + pop de + pop hl + ld bc, 3 * SCREEN_WIDTH + add hl, bc + pop bc + inc de + jr .asm_e994e + +.asm_e99a6 + ret + +Func_e99a7: + coord hl, 0, 0 + ld a, $79 + ld [hli], a + ld a, $7a + ld c, SCREEN_WIDTH - 2 +.asm_e99b1 + ld [hli], a + dec c + jr nz, .asm_e99b1 + ld a, $7b + ld [hl], a + ret + +Func_e99b9: + coord hl, 0, 0 + ld de, SCREEN_WIDTH - 1 + ld c, SCREEN_HEIGHT +.asm_e99c1 + ld a, $7c + ld [hl], a + add hl, de + ld a, $7c + ld [hli], a + dec c + jr nz, .asm_e99c1 + ret + +Func_e99cc: + coord hl, 0, 17 +Func_e99cf: + ld a, $7d + ld [hli], a + ld a, $7a + ld c, SCREEN_WIDTH - 2 +.asm_e99b1 + ld [hli], a + dec c + jr nz, .asm_e99b1 + ld a, $7e + ld [hl], a + ret + +Func_e99de: + coord hl, 4, 0 + ld c, 6 + call Func_e99eb + coord hl, 6, 1 + ld c, 6 +Func_e99eb: +.asm_e99eb + push bc + push hl + ld de, String_e99fd + call PlaceString + pop hl + ld bc, 3 * SCREEN_WIDTH + add hl, bc + pop bc + dec c + jr nz, .asm_e99eb + ret + +String_e99fd: + db "----------@" diff --git a/main.asm b/main.asm index 5cfa113f..08b0df82 100755 --- a/main.asm +++ b/main.asm @@ -897,275 +897,6 @@ Func_e877e: ret INCLUDE "engine/printer.asm" - -Func_e8e79: ; e8e79 (3a:4e79) - dr $e8e79,$e8eca -Func_e8eca: ; e8eca (3a:4eca) - dr $e8eca,$e8efc -Func_e8efc: ; e8efc (3a:4efc) - dr $e8efc,$e8f09 -Func_e8f09: ; e8f09 (3a:4f09) - dr $e8f09,$e8f16 -Func_e8f16: ; e8f16 (3a:4f16) - dr $e8f16,$e8f24 -Func_e8f24: ; e8f24 (3a:4f24) - dr $e8f24,$e8f3b -Func_e8f3b: ; e8f3b (3a:4f3b) - dr $e8f3b,$e8f51 -Func_e8f51: ; e8f51 (3a:4f51) - dr $e8f51,$e8f82 -Func_e8f82: ; e8f82 (3a:4f82) - dr $e8f82,$e910a -Func_e910a: - dr $e910a,$e925d - -Func_e925d: -.asm_e925d - push bc - push hl -.asm_e925f - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_e925f - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_e925d - ret - -Func_e926f: - ld de, wd496 - coord hl, 7, 6 - ld a, [de] - call Func_e927a - ld a, [de] -Func_e927a: - ld c, a - swap a - and $f - add -10 - ld [hli], a - ld a, c - and $f - add -10 - ld [hli], a - dec de - ret - -SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" - -Func_e988a: - xor a - ld [wBoxNumString], a - call ClearScreen - call Func_e99de - coord hl, 0, 0 - ld bc, 11 * SCREEN_WIDTH - ld a, " " - call FillMemory - call Func_e99b9 - call Func_e99a7 - coord hl, 4, 4 - ld de, String_e98db - call PlaceString - coord hl, 7, 6 - ld de, String_e98e8 - call PlaceString - coord hl, 11, 6 - ld a, [wCurrentBoxNum] - and $7f - cp 9 - jr c, .asm_e98cc - sub 9 - ld [hl], "1" - inc hl - add "0" - jr .asm_e98ce - -.asm_e98cc - add "1" -.asm_e98ce - ld [hl], a - coord hl, 4, 9 - ld de, wBoxSpecies - ld c, $03 - call Func_e994e - ret - - -String_e98db: db "POKéMON LIST@" -String_e98e8: db "BOX@" - -Func_e98ec: - call ClearScreen - call Func_e99de - call Func_e99b9 - ld a, [wBoxDataStart] - cp 4 - ret c - coord hl, 4, 0 - ld de, wBoxSpecies + 3 - ld c, 6 - call Func_e994e - ret - -Func_e9907: - call ClearScreen - call Func_e99de - call Func_e99b9 - ld a, [wBoxDataStart] - cp 10 - ret c - coord hl, 4, 0 - ld de, wBoxSpecies + 9 - ld c, 6 - call Func_e994e - ret - -Func_e9922: - call ClearScreen - call Func_e99de - call Func_e99b9 - coord hl, 0, 15 - call Func_e99cf - coord hl, 0, 16 - ld bc, 2 * SCREEN_WIDTH - ld a, " " - call FillMemory - ld a, [wBoxDataStart] - cp 16 - ret c - coord hl, 4, 0 - ld de, wBoxSpecies + 15 - ld c, 5 - call Func_e994e - ret - -Func_e994e: -.asm_e994e - ld a, c - and a - jr z, .asm_e99a6 - dec c - ld a, [de] - cp $ff - jr z, .asm_e99a6 - ld [$d11d], a - push bc - push hl - push de - push hl - ld bc, 12 - ld a, " " - call FillMemory - pop hl - push hl - ld de, SCREEN_WIDTH - add hl, de - ld bc, 12 - ld a, " " - call FillMemory - pop hl - push hl - call GetMonName - pop hl - call PlaceString - push hl - ld hl, wBoxMonNicks - ld bc, NAME_LENGTH - ld a, [wBoxNumString] - call AddNTimes - ld e, l - ld d, h - pop hl - ld bc, SCREEN_WIDTH + 1 - add hl, bc - ld [hl], " " - inc hl - call PlaceString - ld hl, wBoxNumString - inc [hl] - pop de - pop hl - ld bc, 3 * SCREEN_WIDTH - add hl, bc - pop bc - inc de - jr .asm_e994e - -.asm_e99a6 - ret - -Func_e99a7: - coord hl, 0, 0 - ld a, $79 - ld [hli], a - ld a, $7a - ld c, SCREEN_WIDTH - 2 -.asm_e99b1 - ld [hli], a - dec c - jr nz, .asm_e99b1 - ld a, $7b - ld [hl], a - ret - -Func_e99b9: - coord hl, 0, 0 - ld de, SCREEN_WIDTH - 1 - ld c, SCREEN_HEIGHT -.asm_e99c1 - ld a, $7c - ld [hl], a - add hl, de - ld a, $7c - ld [hli], a - dec c - jr nz, .asm_e99c1 - ret - -Func_e99cc: - coord hl, 0, 17 -Func_e99cf: - ld a, $7d - ld [hli], a - ld a, $7a - ld c, SCREEN_WIDTH - 2 -.asm_e99b1 - ld [hli], a - dec c - jr nz, .asm_e99b1 - ld a, $7e - ld [hl], a - ret - -Func_e99de: - coord hl, 4, 0 - ld c, 6 - call Func_e99eb - coord hl, 6, 1 - ld c, 6 -Func_e99eb: -.asm_e99eb - push bc - push hl - ld de, String_e99fd - call PlaceString - pop hl - ld bc, 3 * SCREEN_WIDTH - add hl, bc - pop bc - dec c - jr nz, .asm_e99eb - ret - -String_e99fd: - db "----------@" - INCLUDE "engine/diploma_3a.asm" SurfingPikachu3Graphics: INCBIN "gfx/surfing_pikachu_3.t1.2bpp" -- cgit v1.3.1-sl0p From 2876e629ccc31699d45e7f7092f52e314b24f23c Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 23 May 2016 14:12:42 -0400 Subject: Move diploma tilemaps out of incbins --- engine/diploma_3a.asm | 36 +++++++++++++++++++++++++++++++++--- gfx/unknown_e9b3e.tilemap | 1 - gfx/unknown_e9bb6.tilemap | 2 -- gfx/unknown_e9bc1.tilemap | 1 - 4 files changed, 33 insertions(+), 7 deletions(-) delete mode 100644 gfx/unknown_e9b3e.tilemap delete mode 100644 gfx/unknown_e9bb6.tilemap delete mode 100644 gfx/unknown_e9bc1.tilemap (limited to 'engine') diff --git a/engine/diploma_3a.asm b/engine/diploma_3a.asm index 471703d6..c8a7e740 100755 --- a/engine/diploma_3a.asm +++ b/engine/diploma_3a.asm @@ -108,9 +108,39 @@ Func_e9ad3: call Func_e925d ret -Tilemap_e9b3e: INCBIN "gfx/unknown_e9b3e.tilemap" -Tilemap_e9bb6: INCBIN "gfx/unknown_e9bb6.tilemap" -TileMap_e9bc1: INCBIN "gfx/unknown_e9bc1.tilemap" +Tilemap_e9b3e: + db $7f, $7f, $7f, $1a, $1b, $7f, $7f, $7f, $7f, $7f + db $7f, $7f, $7f, $7f, $7f, $1c, $1d, $1e, $1f, $20 + db $7f, $21, $22, $23, $7f, $24, $25, $26, $27, $28 + db $29, $2a, $2b, $2c, $2d, $2e, $2f, $30, $31, $32 + db $33, $34, $35, $36, $37, $38, $39, $3a, $3b, $3c + db $7f, $3d, $3e, $3f, $40, $41, $42, $43, $29, $44 + db $45, $46, $47, $48, $49, $4a, $4b, $29, $29, $4c + db $4d, $4e, $4f, $50, $51, $52, $53, $54, $55, $56 + db $57, $58, $59, $7f, $7f, $7f, $5a, $5b, $5c, $5d + db $5e, $5f, $60, $61, $62, $7f, $7f, $7f, $7f, $63 + db $64, $65, $66, $67, $68, $7f, $7f, $7f, $7f, $7f + db $7f, $69, $6a, $6b, $6c, $6d, $6e, $7f, $7f, $7f + +Tilemap_e9bb6: + db $05 + db $06 + db $07 + db $08 + db $09 + db $0a + db $0b + db $0c + db $0d + db $0e + db $0f + +TileMap_e9bc1: + db $70, $71, $7f, $72, $7f + db $73, $74, $75, $76, $77 + db $7f, $78, $11, $12, $13 + db $7f, $7f, $14, $15, $7f + String_e9bd5: db "PLAY TIME@" Func_e9bdf: diff --git a/gfx/unknown_e9b3e.tilemap b/gfx/unknown_e9b3e.tilemap deleted file mode 100644 index 95386372..00000000 --- a/gfx/unknown_e9b3e.tilemap +++ /dev/null @@ -1 +0,0 @@ - !"#$%&'()*+,-./0123456789:;<=>?@ABC)DEFGHIJK))LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn \ No newline at end of file diff --git a/gfx/unknown_e9bb6.tilemap b/gfx/unknown_e9bb6.tilemap deleted file mode 100644 index 1fc3cd90..00000000 --- a/gfx/unknown_e9bb6.tilemap +++ /dev/null @@ -1,2 +0,0 @@ - -  \ No newline at end of file diff --git a/gfx/unknown_e9bc1.tilemap b/gfx/unknown_e9bc1.tilemap deleted file mode 100644 index 13521d1e..00000000 --- a/gfx/unknown_e9bc1.tilemap +++ /dev/null @@ -1 +0,0 @@ -pqrstuvwx \ No newline at end of file -- cgit v1.3.1-sl0p