diff options
-rwxr-xr-x | audio/sfx/heal_ailment_4.asm | 7 | ||||
-rwxr-xr-x | audio/sfx/tink_4.asm | 8 | ||||
-rwxr-xr-x | audio/sfx/unknown_80263.asm | 4 | ||||
-rwxr-xr-x | audio/sfx/unknown_8029f.asm | 10 | ||||
-rwxr-xr-x | engine/overworld/npc_movement.asm | 176 | ||||
-rw-r--r-- | home.asm | 2 | ||||
-rwxr-xr-x | main.asm | 14 | ||||
-rwxr-xr-x | wram.asm | 5 |
8 files changed, 65 insertions, 161 deletions
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 @@ -2447,7 +2447,7 @@ RunNPCMovementScript:: ; 30ae (0:30ae) ret .NPCMovementScriptPointerTables - dw ProfOakMovementScriptPointerTable + dw PalletMovementScriptPointerTable dw PewterMuseumGuyMovementScriptPointerTable dw PewterGymGuyMovementScriptPointerTable .playerStepOutFromDoor @@ -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 @@ -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 |