From 9c84a3dd2245f149b361aa7603354297b3784b3e Mon Sep 17 00:00:00 2001 From: yenatch Date: Wed, 19 Aug 2015 10:13:48 -0700 Subject: [PATCH] Split out the save file code. --- engine/save.asm | 1175 ++++++++++++++++++++++++++++++++++++++++++++++ main.asm | 1179 +---------------------------------------------- 2 files changed, 1177 insertions(+), 1177 deletions(-) create mode 100644 engine/save.asm diff --git a/engine/save.asm b/engine/save.asm new file mode 100644 index 000000000..c1d0c01bd --- /dev/null +++ b/engine/save.asm @@ -0,0 +1,1175 @@ +Function14a1a: ; 14a1a + call Function1d6e + callba Function5e9a + call SpeechTextBox + call UpdateSprites + callba Function4cf45 + ld hl, UnknownText_0x15283 + call SaveTheGame_yesorno + jr nz, .refused + call CheckForExistingSaveFile + jr c, .refused + call SetWRAMStateForSave + call _SavingDontTurnOffThePower + call ClearWRAMStateAfterSave + call ExitMenu + and a + ret +.refused + call ExitMenu + call Functiond90 + callba Function4cf45 + scf + ret + +Function14a58: ; 14a58 + call SetWRAMStateForSave + callba Function14056 + callba Function1050d9 + call SavePartyData + call Function14e13 + call LoadSavedPartyData + call Function14e8b + callba Function44725 + callba Function1406a + call ClearWRAMStateAfterSave + ret +; 14a83 + + +Function14a83: ; 14a83 (5:4a83) + push de + ld hl, UnknownText_0x152a1 + call MenuTextBox + call YesNoBox + call ExitMenu + jr c, .refused + call CheckForExistingSaveFile + jr c, .refused + call SetWRAMStateForSave + call SavingDontTurnOffThePower + call Function14e0c + pop de + ld a, e + ld [wCurBox], a + call Function15021 + call SavedTheGame + call ClearWRAMStateAfterSave + and a + ret +.refused + pop de + ret + +Function14ab2: ; 14ab2 + call CheckForExistingSaveFile + jr c, .refused + call SetWRAMStateForSave + call _SavingDontTurnOffThePower + call ClearWRAMStateAfterSave + and a + +.refused + ret +; 14ac2 + +Function14ac2: ; 14ac2 + call SetWRAMStateForSave + push de + call Function14e0c + pop de + ld a, e + ld [wCurBox], a + call Function15021 + call ClearWRAMStateAfterSave + ret +; 14ad5 + +Function14ad5: ; 14ad5 + call SetWRAMStateForSave + push de + call Function14e0c + pop de + ld a, e + ld [wCurBox], a + ld a, $1 + ld [wcfcd], a + callba Function14056 + callba Function1050d9 + call Function14da9 + call SaveOptionsSelection + call SavePlayerData + call SavePartyData + call Function14e13 + call Function14e2d + call LoadSavedOptions + call LoadSavedPlayerData + call LoadSavedPartyData + call Function14e8b + callba Function44725 + callba Function106187 + callba Function1406a + call Function15021 + call ClearWRAMStateAfterSave + ld de, SFX_SAVE + call PlaySFX + ld c, $18 + call DelayFrames + ret +; 14b34 + +Function14b34: ; 14b34 + ld hl, UnknownText_0x152a6 + call MenuTextBox + call YesNoBox + call ExitMenu + jr c, .asm_14b52 + call CheckForExistingSaveFile + jr c, .asm_14b52 + call SetWRAMStateForSave + call _SavingDontTurnOffThePower + call ClearWRAMStateAfterSave + and a + ret + +.asm_14b52 + scf + ret +; 14b54 + +SetWRAMStateForSave: ; 14b54 + ld a, $1 + ld [wc2cd], a + ret +; 14b5a + +ClearWRAMStateAfterSave: ; 14b5a + xor a + ld [wc2cd], a + ret +; 14b5f + + +Function14b5f: ; 14b5f + ld a, $1 + call GetSRAMBank + ld hl, $bdd9 + ld de, $be3b + ld bc, $0b1a +.loop + ld a, [hld] + ld [de], a + dec de + dec bc + ld a, c + or b + jr nz, .loop + ld hl, OverworldMap + ld de, $b2c0 + ld bc, 7 * 14 + call CopyBytes + call CloseSRAM + ret +; 14b85 + +Function14b85: ; 14b85 + call Function14c10 + ret +; 14b89 + +CheckForExistingSaveFile: ; 14b89 + ld a, [wcfcd] + and a + jr z, .getridofpreviousplayersave + call Function14bcb + jr z, .yoursavefile + ld hl, UnknownText_0x15297 + call SaveTheGame_yesorno + jr nz, .refused + jr .getridofpreviousplayersave + +.yoursavefile + ld hl, UnknownText_0x15292 + call SaveTheGame_yesorno + jr nz, .refused + jr .ok + +.getridofpreviousplayersave + call GetRidOfPreviousPlayersSave + +.ok + and a + ret + +.refused + scf + ret +; 14baf + +SaveTheGame_yesorno: ; 14baf + ld b, BANK(UnknownText_0x15283) + call MapTextbox + call LoadMenuTextBox + lb bc, 0, 7 + call PlaceYesNoBox + ld a, [wcfa9] + dec a + call WriteBackup + push af + call Functiond90 + pop af + and a + ret +; 14bcb + +Function14bcb: ; 14bcb + ld a, $1 + call GetSRAMBank + ld hl, $a009 + ld a, [hli] + ld c, [hl] + ld b, a + call CloseSRAM + ld a, [PlayerID] + cp b + ret nz + ld a, [PlayerID + 1] + cp c + ret +; 14be3 + +_SavingDontTurnOffThePower: ; 14be3 + call SavingDontTurnOffThePower +SavedTheGame: ; 14be6 + call Function14c10 + ; wait 32 frames + ld c, $20 + call DelayFrames + ; copy the original text speed setting to the stack + ld a, [Options] + push af + ; set text speed super slow + ld a, 3 + ld [Options], a + ; saved the game! + ld hl, UnknownText_0x1528d + call PrintText + ; restore the original text speed setting + pop af + ld [Options], a + ld de, SFX_SAVE + call WaitPlaySFX + call WaitSFX + ; wait 30 frames + ld c, $1e + call DelayFrames + ret +; 14c10 + + +Function14c10: ; 14c10 + ld a, 1 + ld [wcfcd], a + callba Function14056 + callba Function1050d9 + call Function14da9 + call SaveOptionsSelection + call SavePlayerData + call SavePartyData + call Function14e0c + call Function14e13 + call Function14e2d + call LoadSavedOptions + call LoadSavedPlayerData + call LoadSavedPartyData + call Function14e8b + call Function14c6b + callba Function44725 + callba Function106187 + callba Function1406a + ld a, $1 + call GetSRAMBank + ld a, [$be45] + cp $4 + jr nz, .asm_14c67 + xor a + ld [$be45], a + +.asm_14c67 + call CloseSRAM + ret +; 14c6b + +Function14c6b: ; 14c6b + call Function14c90 + ld a, $0 + call GetSRAMBank + ld a, [$bf10] + ld e, a + ld a, [$bf11] + ld d, a + or e + jr z, .asm_14c84 + ld a, e + sub l + ld a, d + sbc h + jr c, .asm_14c8c + +.asm_14c84 + ld a, l + ld [$bf10], a + ld a, h + ld [$bf11], a + +.asm_14c8c + call CloseSRAM + ret +; 14c90 + +Function14c90: ; 14c90 + ld hl, wc000 +.asm_14c93 + ld a, [hl] + or a + ret nz + inc hl + jr .asm_14c93 +; 14c99 + +SavingDontTurnOffThePower: ; 14c99 + ; Prevent joypad interrupts + xor a + ld [hJoypadReleased], a + ld [hJoypadPressed], a + ld [hJoypadSum], a + ld [hJoypadDown], a + ; Save the text speed setting to the stack + ld a, [Options] + push af + ; Set the text speed to super slow + ld a, $3 + ld [Options], a + ; SAVING... DON'T TURN OFF THE POWER. + ld hl, UnknownText_0x15288 + call PrintText + ; Restore the text speed setting + pop af + ld [Options], a + ; Wait for 16 frames + ld c, $10 + call DelayFrames + ret +; 14cbb + + +GetRidOfPreviousPlayersSave: ; 14cbb + call Function151fb + call Function14d06 + call Function14ce2 + call Function14cf4 + call Function14d68 + call Function14d5c + ld a, $0 + call GetSRAMBank + xor a + ld [$bf10], a + ld [$bf11], a + call CloseSRAM + ld a, $1 + ld [wd4b4], a + ret +; 14ce2 + +Function14ce2: ; 14ce2 + ld a, $1 + call GetSRAMBank + ld hl, $b260 + ld bc, $0060 + xor a + call ByteFill + jp CloseSRAM +; 14cf4 + +Function14cf4: ; 14cf4 + ld a, $0 + call GetSRAMBank + ld hl, $abe4 + ld bc, $004c + xor a + call ByteFill + jp CloseSRAM +; 14d06 + +Function14d06: ; 14d06 + ld a, $1 + call GetSRAMBank + ld hl, $b2c0 + ld bc, $0b7c + xor a + call ByteFill + jp CloseSRAM +; 14d18 + +Function14d18: ; 14d18 +; copy Unknown_14d2c to SRA4:a007 + ld a, $4 + call GetSRAMBank + ld hl, Unknown_14d2c + ld de, $a007 + ld bc, 48 + call CopyBytes + jp CloseSRAM +; 14d2c + +Unknown_14d2c: ; 14d2c + db $0d, $02, $00, $05, $00, $00 + db $22, $02, $01, $05, $00, $00 + db $03, $04, $05, $08, $03, $05 + db $0e, $06, $03, $02, $00, $00 + db $39, $07, $07, $04, $00, $05 + db $04, $07, $01, $05, $00, $00 + db $0f, $05, $14, $07, $05, $05 + db $11, $0c, $0c, $06, $06, $04 +; 14d5c + +Function14d5c: ; 14d5c + ld a, $1 + call GetSRAMBank + xor a + ld [$be45], a + jp CloseSRAM +; 14d68 + +Function14d68: ; 14d68 + call Function1509a + ret +; 14d6c + +Function14d6c: ; 14d6c + ld a, $4 + call GetSRAMBank + ld a, [$a60b] + ld b, $0 + and a + jr z, .ok + ld b, $2 + +.ok + ld a, b + ld [$a60b], a + call CloseSRAM + ret +; 14d83 + +Function14d83: ; 14d83 + ld a, $4 + call GetSRAMBank + xor a + ld [$a60c], a + ld [$a60d], a + call CloseSRAM + ret +; 14d93 + +Function14d93: ; 14d93 + ld a, $7 + call GetSRAMBank + xor a + ld [$a000], a + call CloseSRAM + ret +; 14da0 + + +Function14da0: ; 14da0 + ld a, [wd4b4] + and a + ret nz + call GetRidOfPreviousPlayersSave + ret +; 14da9 + +Function14da9: ; 14da9 + ld a, $1 + call GetSRAMBank + ld a, 99 + ld [$a008], a + ld a, " " + ld [$ad0f], a + jp CloseSRAM +; 14dbb + +SaveOptionsSelection: ; 14dbb +; Copy Options to SRA1:a000 + ld a, $1 + call GetSRAMBank + ld hl, Options + ld de, $a000 + ld bc, OptionsEnd - Options + call CopyBytes + ld a, [Options] + and $ef + ld [$a000], a + jp CloseSRAM +; 14dd7 + +SavePlayerData: ; 14dd7 +; Copy 2122 bytes starting at PlayerID to SRA1:a009 + ld a, $1 + call GetSRAMBank + ld hl, PlayerID + ld de, $a009 + ld bc, VisitedSpawns - PlayerID + call CopyBytes + ld hl, VisitedSpawns + ld de, $a833 + ld bc, PartyCount - VisitedSpawns + call CopyBytes + jp CloseSRAM +; 14df7 + +SavePartyData: ; 14df7 +; Copy your party to SRA1:a865. + ld a, $1 + call GetSRAMBank + ld hl, PartyCount + ld de, $a865 + ld bc, wdff5 - PartyCount + call CopyBytes + call CloseSRAM + ret +; 14e0c + +Function14e0c: ; 14e0c + call Function150d8 + call Function150f9 + ret +; 14e13 + +Function14e13: ; 14e13 + ld hl, $a009 + ld bc, $0b7a + ld a, $1 + call GetSRAMBank + call Function15273 + ld a, e + ld [$ad0d], a + ld a, d + ld [$ad0e], a + call CloseSRAM + ret +; 14e2d + +Function14e2d: ; 14e2d + ld a, $0 + call GetSRAMBank + ld a, 99 + ld [$b208], a + ld a, " " + ld [$bf0f], a + call CloseSRAM + ret +; 14e40 + +LoadSavedOptions: ; 14e40 + ld a, $0 + call GetSRAMBank + ld hl, Options + ld de, $b200 + ld bc, OptionsEnd - Options + call CopyBytes + call CloseSRAM + ret +; 14e55 + +LoadSavedPlayerData: ; 14e55 + ld a, $0 + call GetSRAMBank + ld hl, PlayerID + ld de, $b209 + ld bc, VisitedSpawns - PlayerID + call CopyBytes + ld hl, VisitedSpawns + ld de, $ba33 + ld bc, PartyCount - VisitedSpawns + call CopyBytes + call CloseSRAM + ret +; 14e76 + +LoadSavedPartyData: ; 14e76 + ld a, $0 + call GetSRAMBank + ld hl, PartyCount + ld de, $ba65 + ld bc, wdff5 - PartyCount + call CopyBytes + call CloseSRAM + ret +; 14e8b + +Function14e8b: ; 14e8b + ld hl, $b209 + ld bc, $0b7a + ld a, $0 + call GetSRAMBank + call Function15273 + ld a, e + ld [$bf0d], a + ld a, d + ld [$bf0e], a + call CloseSRAM + ret +; 14ea5 + + +TryLoadSaveFile: ; 14ea5 (5:4ea5) + call Function15028 + jr nz, .trytowrite + call Function14fd7 + call Function1500c + call Function15021 + callba Function44745 + callba Function10619d + callba Function1050ea + call Function14e2d + call LoadSavedOptions + call LoadSavedPlayerData + call LoadSavedPartyData + call Function14e8b + and a + ret +.trytowrite + call Function1507c + jr nz, .corrupt + call Function15046 + call Function15067 + call Function15021 + callba Function44745 + callba Function10619d + callba Function1050ea + call Function14da9 + call SaveOptionsSelection + call SavePlayerData + call SavePartyData + call Function14e13 + and a + ret +.corrupt + ld a, [Options] + push af + set 4, a + ld [Options], a + ld hl, UnknownText_0x1529c + call PrintText + pop af + ld [Options], a + scf + ret + + +Function14f1c: ; 14f1c + xor a + ld [wcfcd], a + call Function14f84 + ld a, [wcfcd] + and a + jr z, .asm_14f46 + ld a, $1 + call GetSRAMBank + ld hl, $a044 + ld de, StartDay + ld bc, $0008 + call CopyBytes + ld hl, $a3da + ld de, StatusFlags + ld a, [hl] + ld [de], a + call CloseSRAM + ret + +.asm_14f46 + call Function14faf + ld a, [wcfcd] + and a + jr z, .asm_14f6c + ld a, $0 + call GetSRAMBank + ld hl, $b244 + ld de, StartDay + ld bc, 8 + call CopyBytes + ld hl, $b5da + ld de, StatusFlags + ld a, [hl] + ld [de], a + call CloseSRAM + ret + +.asm_14f6c + ld hl, DefaultOptions + ld de, Options + ld bc, OptionsEnd - Options + call CopyBytes + call Function67e + ret +; 14f7c + +DefaultOptions: ; 14f7c + db $03 ; mid text speed + db $00 + db $00 ; frame 0 + db $01 + db $40 ; gb printer: normal brightness + db $01 ; menu account on + db $00 + db $00 +; 14f84 + +Function14f84: ; 14f84 + ld a, $1 + call GetSRAMBank + ld a, [$a008] + cp 99 + jr nz, .nope + ld a, [$ad0f] + cp " " + jr nz, .nope + ld hl, $a000 + ld de, Options + ld bc, OptionsEnd - Options + call CopyBytes + call CloseSRAM + ld a, $1 + ld [wcfcd], a + +.nope + call CloseSRAM + ret +; 14faf + +Function14faf: ; 14faf + ld a, $0 + call GetSRAMBank + ld a, [$b208] + cp 99 + jr nz, .nope + ld a, [$bf0f] + cp " " + jr nz, .nope + ld hl, $b200 + ld de, Options + ld bc, OptionsEnd - Options + call CopyBytes + ld a, $2 + ld [wcfcd], a + +.nope + call CloseSRAM + ret +; 14fd7 + + +Function14fd7: ; 14fd7 (5:4fd7) + ld a, $1 + call GetSRAMBank + ld hl, $a009 + ld de, PlayerID + ld bc, VisitedSpawns - PlayerID + call CopyBytes + ld hl, $a833 + ld de, VisitedSpawns + ld bc, PartyCount - VisitedSpawns + call CopyBytes + call CloseSRAM + ld a, $1 + call GetSRAMBank + ld a, [$be45] + cp $4 + jr nz, .asm_15008 + ld a, $3 + ld [$be45], a +.asm_15008 + call CloseSRAM + ret + +Function1500c: ; 1500c + ld a, $1 + call GetSRAMBank + ld hl, $a865 + ld de, PartyCount + ld bc, wdff5 - PartyCount + call CopyBytes + call CloseSRAM + ret +; 15021 + + +Function15021: ; 15021 (5:5021) + call Function150d8 + call Function1517d + ret + +Function15028: ; 15028 (5:5028) + ld hl, $a009 + ld bc, $b7a + ld a, $1 + call GetSRAMBank + call Function15273 + ld a, [$ad0d] + cp e + jr nz, .asm_15040 + ld a, [$ad0e] + cp d +.asm_15040 + push af + call CloseSRAM + pop af + ret + +Function15046: ; 15046 (5:5046) + ld a, $0 + call GetSRAMBank + ld hl, $b209 + ld de, PlayerID + ld bc, VisitedSpawns - PlayerID + call CopyBytes + ld hl, $ba33 + ld de, VisitedSpawns + ld bc, PartyCount - VisitedSpawns + call CopyBytes + call CloseSRAM + ret + +Function15067: ; 15067 (5:5067) + ld a, $0 + call GetSRAMBank + ld hl, $ba65 + ld de, PartyCount + ld bc, wdff5 - PartyCount + call CopyBytes + call CloseSRAM + ret + +Function1507c: ; 1507c (5:507c) + ld hl, $b209 + ld bc, $b7a + ld a, $0 + call GetSRAMBank + call Function15273 + ld a, [$bf0d] + cp e + jr nz, .asm_15094 + ld a, [$bf0e] + cp d +.asm_15094 + push af + call CloseSRAM + pop af + ret + + +Function1509a: ; 1509a + ld a, $1 + call GetSRAMBank + ld hl, PlayerGender + ld de, $be3d + ld bc, wd479 - PlayerGender + call CopyBytes + ld hl, wd479 + ld a, [hli] + ld [$a60e], a + ld a, [hli] + ld [$a60f], a + jp CloseSRAM +; 150b9 + + +Function150b9: ; 150b9 (5:50b9) + ld a, $1 + call GetSRAMBank + ld hl, $be3d + ld de, PlayerGender + ld bc, wd479 - PlayerGender + call CopyBytes + ld hl, wd479 + ld a, [$a60e] + ld [hli], a + ld a, [$a60f] + ld [hli], a + jp CloseSRAM + + +Function150d8: ; 150d8 + ld a, [wCurBox] + cp NUM_BOXES + jr c, .asm_150e3 + xor a + ld [wCurBox], a + +.asm_150e3 + ld e, a + ld d, 0 + ld hl, Unknown_1522d +rept 5 + add hl, de +endr + ld a, [hli] + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + pop af + ret +; 150f9 + +Function150f9: ; 150f9 + push hl + push af + push de + ld a, $1 + call GetSRAMBank + ld hl, sBoxCount + ld de, wc608 + ld bc, $01e0 + call CopyBytes + call CloseSRAM + pop de + pop af + push af + push de + call GetSRAMBank + ld hl, wc608 + ld bc, $01e0 + call CopyBytes + call CloseSRAM + ld a, $1 + call GetSRAMBank + ld hl, $aef0 + ld de, wc608 + ld bc, $01e0 + call CopyBytes + call CloseSRAM + pop de + pop af + ld hl, $01e0 + add hl, de + ld e, l + ld d, h + push af + push de + call GetSRAMBank + ld hl, wc608 + ld bc, $01e0 + call CopyBytes + call CloseSRAM + ld a, $1 + call GetSRAMBank + ld hl, $b0d0 + ld de, wc608 + ld bc, $008e + call CopyBytes + call CloseSRAM + pop de + pop af + ld hl, $01e0 + add hl, de + ld e, l + ld d, h + call GetSRAMBank + ld hl, wc608 + ld bc, $008e + call CopyBytes + call CloseSRAM + pop hl + ret +; 1517d + + +Function1517d: ; 1517d (5:517d) + push hl + ld l, e + ld h, d + push af + push hl + call GetSRAMBank + ld de, wc608 + ld bc, $1e0 + call CopyBytes + call CloseSRAM + ld a, $1 + call GetSRAMBank + ld hl, wc608 + ld de, $ad10 + ld bc, $1e0 + call CopyBytes + call CloseSRAM + pop hl + pop af + ld de, $1e0 + add hl, de + push af + push hl + call GetSRAMBank + ld de, wc608 + ld bc, $1e0 + call CopyBytes + call CloseSRAM + ld a, $1 + call GetSRAMBank + ld hl, wc608 + ld de, $aef0 + ld bc, $1e0 + call CopyBytes + call CloseSRAM + pop hl + pop af + ld de, $1e0 + add hl, de + call GetSRAMBank + ld de, wc608 + ld bc, $8e + call CopyBytes + call CloseSRAM + ld a, $1 + call GetSRAMBank + ld hl, wc608 + ld de, $b0d0 + ld bc, $8e + call CopyBytes + call CloseSRAM + pop hl + ret + + +Function151fb: ; 151fb + ld hl, Unknown_1522d + ld c, $e +.outerloop + push bc + ld a, [hli] + call GetSRAMBank + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + xor a + ld [de], a + inc de + ld a, -1 + ld [de], a + inc de + ld bc, $044c +.loop + xor a + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .loop + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, -1 + ld [de], a + inc de + xor a + ld [de], a + call CloseSRAM + pop bc + dec c + jr nz, .outerloop + ret +; 1522d + +Unknown_1522d: ; 1522d +; dbww bank, address, address + dbww $02, $a000, $a44e ; 2, $a000, $a44e + dbww $02, $a450, $a89e ; 2, $a450, $a89e + dbww $02, $a8a0, $acee ; 2, $a8a0, $acee + dbww $02, $acf0, $b13e ; 2, $acf0, $b13e + dbww $02, $b140, $b58e ; 2, $b140, $b5de + dbww $02, $b590, $b9de ; 2, $b590, $b9de + dbww $02, $b9e0, $be2e ; 2, $b9e0, $be2e + + dbww $03, $a000, $a44e ; 3, $a000, $a44e + dbww $03, $a450, $a89e ; 3, $a450, $a89e + dbww $03, $a8a0, $acee ; 3, $a8a0, $acee + dbww $03, $acf0, $b13e ; 3, $acf0, $b13e + dbww $03, $b140, $b58e ; 3, $b140, $b58e + dbww $03, $b590, $b9de ; 3, $b590, $b9de + dbww $03, $b9e0, $be2e ; 3, $b9e0, $be2e +; 15273 + + +Function15273: ; 15273 + ld de, 0 +.loop + ld a, [hli] + add e + ld e, a + ld a, 0 + adc d + ld d, a + dec bc + ld a, b + or c + jr nz, .loop + ret +; 15283 + + +UnknownText_0x15283: ; 0x15283 + ; Would you like to save the game? + text_jump UnknownText_0x1c454b + db "@" +; 0x15288 + +UnknownText_0x15288: ; 0x15288 + ; SAVING… DON'T TURN OFF THE POWER. + text_jump UnknownText_0x1c456d + db "@" +; 0x1528d + +UnknownText_0x1528d: ; 0x1528d + ; saved the game. + text_jump UnknownText_0x1c4590 + db "@" +; 0x15292 + +UnknownText_0x15292: ; 0x15292 + ; There is already a save file. Is it OK to overwrite? + text_jump UnknownText_0x1c45a3 + db "@" +; 0x15297 + +UnknownText_0x15297: ; 0x15297 + ; There is another save file. Is it OK to overwrite? + text_jump UnknownText_0x1c45d9 + db "@" +; 0x1529c + +UnknownText_0x1529c: ; 0x1529c + ; The save file is corrupted! + text_jump UnknownText_0x1c460d + db "@" +; 0x152a1 + +UnknownText_0x152a1: ; 0x152a1 + ; When you change a #MON BOX, data will be saved. OK? + text_jump UnknownText_0x1c462a + db "@" +; 0x152a6 + +UnknownText_0x152a6: ; 0x152a6 + ; Each time you move a #MON, data will be saved. OK? + text_jump UnknownText_0x1c465f + db "@" +; 0x152ab diff --git a/main.asm b/main.asm index c01aaca2c..a97a77454 100644 --- a/main.asm +++ b/main.asm @@ -18180,1182 +18180,7 @@ Function14a07:: ; 14a07 ret ; 14a1a -Function14a1a: ; 14a1a - call Function1d6e - callba Function5e9a - call SpeechTextBox - call UpdateSprites - callba Function4cf45 - ld hl, UnknownText_0x15283 - call SaveTheGame_yesorno - jr nz, .refused - call CheckForExistingSaveFile - jr c, .refused - call SetWRAMStateForSave - call _SavingDontTurnOffThePower - call ClearWRAMStateAfterSave - call ExitMenu - and a - ret -.refused - call ExitMenu - call Functiond90 - callba Function4cf45 - scf - ret - -Function14a58: ; 14a58 - call SetWRAMStateForSave - callba Function14056 - callba Function1050d9 - call SavePartyData - call Function14e13 - call LoadSavedPartyData - call Function14e8b - callba Function44725 - callba Function1406a - call ClearWRAMStateAfterSave - ret -; 14a83 - - -Function14a83: ; 14a83 (5:4a83) - push de - ld hl, UnknownText_0x152a1 - call MenuTextBox - call YesNoBox - call ExitMenu - jr c, .refused - call CheckForExistingSaveFile - jr c, .refused - call SetWRAMStateForSave - call SavingDontTurnOffThePower - call Function14e0c - pop de - ld a, e - ld [wCurBox], a - call Function15021 - call SavedTheGame - call ClearWRAMStateAfterSave - and a - ret -.refused - pop de - ret - -Function14ab2: ; 14ab2 - call CheckForExistingSaveFile - jr c, .refused - call SetWRAMStateForSave - call _SavingDontTurnOffThePower - call ClearWRAMStateAfterSave - and a - -.refused - ret -; 14ac2 - -Function14ac2: ; 14ac2 - call SetWRAMStateForSave - push de - call Function14e0c - pop de - ld a, e - ld [wCurBox], a - call Function15021 - call ClearWRAMStateAfterSave - ret -; 14ad5 - -Function14ad5: ; 14ad5 - call SetWRAMStateForSave - push de - call Function14e0c - pop de - ld a, e - ld [wCurBox], a - ld a, $1 - ld [wcfcd], a - callba Function14056 - callba Function1050d9 - call Function14da9 - call SaveOptionsSelection - call SavePlayerData - call SavePartyData - call Function14e13 - call Function14e2d - call LoadSavedOptions - call LoadSavedPlayerData - call LoadSavedPartyData - call Function14e8b - callba Function44725 - callba Function106187 - callba Function1406a - call Function15021 - call ClearWRAMStateAfterSave - ld de, SFX_SAVE - call PlaySFX - ld c, $18 - call DelayFrames - ret -; 14b34 - -Function14b34: ; 14b34 - ld hl, UnknownText_0x152a6 - call MenuTextBox - call YesNoBox - call ExitMenu - jr c, .asm_14b52 - call CheckForExistingSaveFile - jr c, .asm_14b52 - call SetWRAMStateForSave - call _SavingDontTurnOffThePower - call ClearWRAMStateAfterSave - and a - ret - -.asm_14b52 - scf - ret -; 14b54 - -SetWRAMStateForSave: ; 14b54 - ld a, $1 - ld [wc2cd], a - ret -; 14b5a - -ClearWRAMStateAfterSave: ; 14b5a - xor a - ld [wc2cd], a - ret -; 14b5f - - -Function14b5f: ; 14b5f - ld a, $1 - call GetSRAMBank - ld hl, $bdd9 - ld de, $be3b - ld bc, $0b1a -.loop - ld a, [hld] - ld [de], a - dec de - dec bc - ld a, c - or b - jr nz, .loop - ld hl, OverworldMap - ld de, $b2c0 - ld bc, 7 * 14 - call CopyBytes - call CloseSRAM - ret -; 14b85 - -Function14b85: ; 14b85 - call Function14c10 - ret -; 14b89 - -CheckForExistingSaveFile: ; 14b89 - ld a, [wcfcd] - and a - jr z, .getridofpreviousplayersave - call Function14bcb - jr z, .yoursavefile - ld hl, UnknownText_0x15297 - call SaveTheGame_yesorno - jr nz, .refused - jr .getridofpreviousplayersave - -.yoursavefile - ld hl, UnknownText_0x15292 - call SaveTheGame_yesorno - jr nz, .refused - jr .ok - -.getridofpreviousplayersave - call GetRidOfPreviousPlayersSave - -.ok - and a - ret - -.refused - scf - ret -; 14baf - -SaveTheGame_yesorno: ; 14baf - ld b, BANK(UnknownText_0x15283) - call MapTextbox - call LoadMenuTextBox - lb bc, 0, 7 - call PlaceYesNoBox - ld a, [wcfa9] - dec a - call WriteBackup - push af - call Functiond90 - pop af - and a - ret -; 14bcb - -Function14bcb: ; 14bcb - ld a, $1 - call GetSRAMBank - ld hl, $a009 - ld a, [hli] - ld c, [hl] - ld b, a - call CloseSRAM - ld a, [PlayerID] - cp b - ret nz - ld a, [PlayerID + 1] - cp c - ret -; 14be3 - -_SavingDontTurnOffThePower: ; 14be3 - call SavingDontTurnOffThePower -SavedTheGame: ; 14be6 - call Function14c10 - ; wait 32 frames - ld c, $20 - call DelayFrames - ; copy the original text speed setting to the stack - ld a, [Options] - push af - ; set text speed super slow - ld a, 3 - ld [Options], a - ; saved the game! - ld hl, UnknownText_0x1528d - call PrintText - ; restore the original text speed setting - pop af - ld [Options], a - ld de, SFX_SAVE - call WaitPlaySFX - call WaitSFX - ; wait 30 frames - ld c, $1e - call DelayFrames - ret -; 14c10 - - -Function14c10: ; 14c10 - ld a, 1 - ld [wcfcd], a - callba Function14056 - callba Function1050d9 - call Function14da9 - call SaveOptionsSelection - call SavePlayerData - call SavePartyData - call Function14e0c - call Function14e13 - call Function14e2d - call LoadSavedOptions - call LoadSavedPlayerData - call LoadSavedPartyData - call Function14e8b - call Function14c6b - callba Function44725 - callba Function106187 - callba Function1406a - ld a, $1 - call GetSRAMBank - ld a, [$be45] - cp $4 - jr nz, .asm_14c67 - xor a - ld [$be45], a - -.asm_14c67 - call CloseSRAM - ret -; 14c6b - -Function14c6b: ; 14c6b - call Function14c90 - ld a, $0 - call GetSRAMBank - ld a, [$bf10] - ld e, a - ld a, [$bf11] - ld d, a - or e - jr z, .asm_14c84 - ld a, e - sub l - ld a, d - sbc h - jr c, .asm_14c8c - -.asm_14c84 - ld a, l - ld [$bf10], a - ld a, h - ld [$bf11], a - -.asm_14c8c - call CloseSRAM - ret -; 14c90 - -Function14c90: ; 14c90 - ld hl, wc000 -.asm_14c93 - ld a, [hl] - or a - ret nz - inc hl - jr .asm_14c93 -; 14c99 - -SavingDontTurnOffThePower: ; 14c99 - ; Prevent joypad interrupts - xor a - ld [hJoypadReleased], a - ld [hJoypadPressed], a - ld [hJoypadSum], a - ld [hJoypadDown], a - ; Save the text speed setting to the stack - ld a, [Options] - push af - ; Set the text speed to super slow - ld a, $3 - ld [Options], a - ; SAVING... DON'T TURN OFF THE POWER. - ld hl, UnknownText_0x15288 - call PrintText - ; Restore the text speed setting - pop af - ld [Options], a - ; Wait for 16 frames - ld c, $10 - call DelayFrames - ret -; 14cbb - - -GetRidOfPreviousPlayersSave: ; 14cbb - call Function151fb - call Function14d06 - call Function14ce2 - call Function14cf4 - call Function14d68 - call Function14d5c - ld a, $0 - call GetSRAMBank - xor a - ld [$bf10], a - ld [$bf11], a - call CloseSRAM - ld a, $1 - ld [wd4b4], a - ret -; 14ce2 - -Function14ce2: ; 14ce2 - ld a, $1 - call GetSRAMBank - ld hl, $b260 - ld bc, $0060 - xor a - call ByteFill - jp CloseSRAM -; 14cf4 - -Function14cf4: ; 14cf4 - ld a, $0 - call GetSRAMBank - ld hl, $abe4 - ld bc, $004c - xor a - call ByteFill - jp CloseSRAM -; 14d06 - -Function14d06: ; 14d06 - ld a, $1 - call GetSRAMBank - ld hl, $b2c0 - ld bc, $0b7c - xor a - call ByteFill - jp CloseSRAM -; 14d18 - -Function14d18: ; 14d18 -; copy Unknown_14d2c to SRA4:a007 - ld a, $4 - call GetSRAMBank - ld hl, Unknown_14d2c - ld de, $a007 - ld bc, 48 - call CopyBytes - jp CloseSRAM -; 14d2c - -Unknown_14d2c: ; 14d2c - db $0d, $02, $00, $05, $00, $00 - db $22, $02, $01, $05, $00, $00 - db $03, $04, $05, $08, $03, $05 - db $0e, $06, $03, $02, $00, $00 - db $39, $07, $07, $04, $00, $05 - db $04, $07, $01, $05, $00, $00 - db $0f, $05, $14, $07, $05, $05 - db $11, $0c, $0c, $06, $06, $04 -; 14d5c - -Function14d5c: ; 14d5c - ld a, $1 - call GetSRAMBank - xor a - ld [$be45], a - jp CloseSRAM -; 14d68 - -Function14d68: ; 14d68 - call Function1509a - ret -; 14d6c - -Function14d6c: ; 14d6c - ld a, $4 - call GetSRAMBank - ld a, [$a60b] - ld b, $0 - and a - jr z, .ok - ld b, $2 - -.ok - ld a, b - ld [$a60b], a - call CloseSRAM - ret -; 14d83 - -Function14d83: ; 14d83 - ld a, $4 - call GetSRAMBank - xor a - ld [$a60c], a - ld [$a60d], a - call CloseSRAM - ret -; 14d93 - -Function14d93: ; 14d93 - ld a, $7 - call GetSRAMBank - xor a - ld [$a000], a - call CloseSRAM - ret -; 14da0 - - -Function14da0: ; 14da0 - ld a, [wd4b4] - and a - ret nz - call GetRidOfPreviousPlayersSave - ret -; 14da9 - -Function14da9: ; 14da9 - ld a, $1 - call GetSRAMBank - ld a, 99 - ld [$a008], a - ld a, " " - ld [$ad0f], a - jp CloseSRAM -; 14dbb - -SaveOptionsSelection: ; 14dbb -; Copy Options to SRA1:a000 - ld a, $1 - call GetSRAMBank - ld hl, Options - ld de, $a000 - ld bc, OptionsEnd - Options - call CopyBytes - ld a, [Options] - and $ef - ld [$a000], a - jp CloseSRAM -; 14dd7 - -SavePlayerData: ; 14dd7 -; Copy 2122 bytes starting at PlayerID to SRA1:a009 - ld a, $1 - call GetSRAMBank - ld hl, PlayerID - ld de, $a009 - ld bc, VisitedSpawns - PlayerID - call CopyBytes - ld hl, VisitedSpawns - ld de, $a833 - ld bc, PartyCount - VisitedSpawns - call CopyBytes - jp CloseSRAM -; 14df7 - -SavePartyData: ; 14df7 -; Copy your party to SRA1:a865. - ld a, $1 - call GetSRAMBank - ld hl, PartyCount - ld de, $a865 - ld bc, wdff5 - PartyCount - call CopyBytes - call CloseSRAM - ret -; 14e0c - -Function14e0c: ; 14e0c - call Function150d8 - call Function150f9 - ret -; 14e13 - -Function14e13: ; 14e13 - ld hl, $a009 - ld bc, $0b7a - ld a, $1 - call GetSRAMBank - call Function15273 - ld a, e - ld [$ad0d], a - ld a, d - ld [$ad0e], a - call CloseSRAM - ret -; 14e2d - -Function14e2d: ; 14e2d - ld a, $0 - call GetSRAMBank - ld a, 99 - ld [$b208], a - ld a, " " - ld [$bf0f], a - call CloseSRAM - ret -; 14e40 - -LoadSavedOptions: ; 14e40 - ld a, $0 - call GetSRAMBank - ld hl, Options - ld de, $b200 - ld bc, OptionsEnd - Options - call CopyBytes - call CloseSRAM - ret -; 14e55 - -LoadSavedPlayerData: ; 14e55 - ld a, $0 - call GetSRAMBank - ld hl, PlayerID - ld de, $b209 - ld bc, VisitedSpawns - PlayerID - call CopyBytes - ld hl, VisitedSpawns - ld de, $ba33 - ld bc, PartyCount - VisitedSpawns - call CopyBytes - call CloseSRAM - ret -; 14e76 - -LoadSavedPartyData: ; 14e76 - ld a, $0 - call GetSRAMBank - ld hl, PartyCount - ld de, $ba65 - ld bc, wdff5 - PartyCount - call CopyBytes - call CloseSRAM - ret -; 14e8b - -Function14e8b: ; 14e8b - ld hl, $b209 - ld bc, $0b7a - ld a, $0 - call GetSRAMBank - call Function15273 - ld a, e - ld [$bf0d], a - ld a, d - ld [$bf0e], a - call CloseSRAM - ret -; 14ea5 - - -TryLoadSaveFile: ; 14ea5 (5:4ea5) - call Function15028 - jr nz, .trytowrite - call Function14fd7 - call Function1500c - call Function15021 - callba Function44745 - callba Function10619d - callba Function1050ea - call Function14e2d - call LoadSavedOptions - call LoadSavedPlayerData - call LoadSavedPartyData - call Function14e8b - and a - ret -.trytowrite - call Function1507c - jr nz, .corrupt - call Function15046 - call Function15067 - call Function15021 - callba Function44745 - callba Function10619d - callba Function1050ea - call Function14da9 - call SaveOptionsSelection - call SavePlayerData - call SavePartyData - call Function14e13 - and a - ret -.corrupt - ld a, [Options] - push af - set 4, a - ld [Options], a - ld hl, UnknownText_0x1529c - call PrintText - pop af - ld [Options], a - scf - ret - - -Function14f1c: ; 14f1c - xor a - ld [wcfcd], a - call Function14f84 - ld a, [wcfcd] - and a - jr z, .asm_14f46 - ld a, $1 - call GetSRAMBank - ld hl, $a044 - ld de, StartDay - ld bc, $0008 - call CopyBytes - ld hl, $a3da - ld de, StatusFlags - ld a, [hl] - ld [de], a - call CloseSRAM - ret - -.asm_14f46 - call Function14faf - ld a, [wcfcd] - and a - jr z, .asm_14f6c - ld a, $0 - call GetSRAMBank - ld hl, $b244 - ld de, StartDay - ld bc, 8 - call CopyBytes - ld hl, $b5da - ld de, StatusFlags - ld a, [hl] - ld [de], a - call CloseSRAM - ret - -.asm_14f6c - ld hl, DefaultOptions - ld de, Options - ld bc, OptionsEnd - Options - call CopyBytes - call Function67e - ret -; 14f7c - -DefaultOptions: ; 14f7c - db $03 ; mid text speed - db $00 - db $00 ; frame 0 - db $01 - db $40 ; gb printer: normal brightness - db $01 ; menu account on - db $00 - db $00 -; 14f84 - -Function14f84: ; 14f84 - ld a, $1 - call GetSRAMBank - ld a, [$a008] - cp 99 - jr nz, .nope - ld a, [$ad0f] - cp " " - jr nz, .nope - ld hl, $a000 - ld de, Options - ld bc, OptionsEnd - Options - call CopyBytes - call CloseSRAM - ld a, $1 - ld [wcfcd], a - -.nope - call CloseSRAM - ret -; 14faf - -Function14faf: ; 14faf - ld a, $0 - call GetSRAMBank - ld a, [$b208] - cp 99 - jr nz, .nope - ld a, [$bf0f] - cp " " - jr nz, .nope - ld hl, $b200 - ld de, Options - ld bc, OptionsEnd - Options - call CopyBytes - ld a, $2 - ld [wcfcd], a - -.nope - call CloseSRAM - ret -; 14fd7 - - -Function14fd7: ; 14fd7 (5:4fd7) - ld a, $1 - call GetSRAMBank - ld hl, $a009 - ld de, PlayerID - ld bc, VisitedSpawns - PlayerID - call CopyBytes - ld hl, $a833 - ld de, VisitedSpawns - ld bc, PartyCount - VisitedSpawns - call CopyBytes - call CloseSRAM - ld a, $1 - call GetSRAMBank - ld a, [$be45] - cp $4 - jr nz, .asm_15008 - ld a, $3 - ld [$be45], a -.asm_15008 - call CloseSRAM - ret - -Function1500c: ; 1500c - ld a, $1 - call GetSRAMBank - ld hl, $a865 - ld de, PartyCount - ld bc, wdff5 - PartyCount - call CopyBytes - call CloseSRAM - ret -; 15021 - - -Function15021: ; 15021 (5:5021) - call Function150d8 - call Function1517d - ret - -Function15028: ; 15028 (5:5028) - ld hl, $a009 - ld bc, $b7a - ld a, $1 - call GetSRAMBank - call Function15273 - ld a, [$ad0d] - cp e - jr nz, .asm_15040 - ld a, [$ad0e] - cp d -.asm_15040 - push af - call CloseSRAM - pop af - ret - -Function15046: ; 15046 (5:5046) - ld a, $0 - call GetSRAMBank - ld hl, $b209 - ld de, PlayerID - ld bc, VisitedSpawns - PlayerID - call CopyBytes - ld hl, $ba33 - ld de, VisitedSpawns - ld bc, PartyCount - VisitedSpawns - call CopyBytes - call CloseSRAM - ret - -Function15067: ; 15067 (5:5067) - ld a, $0 - call GetSRAMBank - ld hl, $ba65 - ld de, PartyCount - ld bc, wdff5 - PartyCount - call CopyBytes - call CloseSRAM - ret - -Function1507c: ; 1507c (5:507c) - ld hl, $b209 - ld bc, $b7a - ld a, $0 - call GetSRAMBank - call Function15273 - ld a, [$bf0d] - cp e - jr nz, .asm_15094 - ld a, [$bf0e] - cp d -.asm_15094 - push af - call CloseSRAM - pop af - ret - - -Function1509a: ; 1509a - ld a, $1 - call GetSRAMBank - ld hl, PlayerGender - ld de, $be3d - ld bc, wd479 - PlayerGender - call CopyBytes - ld hl, wd479 - ld a, [hli] - ld [$a60e], a - ld a, [hli] - ld [$a60f], a - jp CloseSRAM -; 150b9 - - -Function150b9: ; 150b9 (5:50b9) - ld a, $1 - call GetSRAMBank - ld hl, $be3d - ld de, PlayerGender - ld bc, wd479 - PlayerGender - call CopyBytes - ld hl, wd479 - ld a, [$a60e] - ld [hli], a - ld a, [$a60f] - ld [hli], a - jp CloseSRAM - - -Function150d8: ; 150d8 - ld a, [wCurBox] - cp NUM_BOXES - jr c, .asm_150e3 - xor a - ld [wCurBox], a - -.asm_150e3 - ld e, a - ld d, 0 - ld hl, Unknown_1522d -rept 5 - add hl, de -endr - ld a, [hli] - push af - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld h, [hl] - ld l, a - pop af - ret -; 150f9 - -Function150f9: ; 150f9 - push hl - push af - push de - ld a, $1 - call GetSRAMBank - ld hl, sBoxCount - ld de, wc608 - ld bc, $01e0 - call CopyBytes - call CloseSRAM - pop de - pop af - push af - push de - call GetSRAMBank - ld hl, wc608 - ld bc, $01e0 - call CopyBytes - call CloseSRAM - ld a, $1 - call GetSRAMBank - ld hl, $aef0 - ld de, wc608 - ld bc, $01e0 - call CopyBytes - call CloseSRAM - pop de - pop af - ld hl, $01e0 - add hl, de - ld e, l - ld d, h - push af - push de - call GetSRAMBank - ld hl, wc608 - ld bc, $01e0 - call CopyBytes - call CloseSRAM - ld a, $1 - call GetSRAMBank - ld hl, $b0d0 - ld de, wc608 - ld bc, $008e - call CopyBytes - call CloseSRAM - pop de - pop af - ld hl, $01e0 - add hl, de - ld e, l - ld d, h - call GetSRAMBank - ld hl, wc608 - ld bc, $008e - call CopyBytes - call CloseSRAM - pop hl - ret -; 1517d - - -Function1517d: ; 1517d (5:517d) - push hl - ld l, e - ld h, d - push af - push hl - call GetSRAMBank - ld de, wc608 - ld bc, $1e0 - call CopyBytes - call CloseSRAM - ld a, $1 - call GetSRAMBank - ld hl, wc608 - ld de, $ad10 - ld bc, $1e0 - call CopyBytes - call CloseSRAM - pop hl - pop af - ld de, $1e0 - add hl, de - push af - push hl - call GetSRAMBank - ld de, wc608 - ld bc, $1e0 - call CopyBytes - call CloseSRAM - ld a, $1 - call GetSRAMBank - ld hl, wc608 - ld de, $aef0 - ld bc, $1e0 - call CopyBytes - call CloseSRAM - pop hl - pop af - ld de, $1e0 - add hl, de - call GetSRAMBank - ld de, wc608 - ld bc, $8e - call CopyBytes - call CloseSRAM - ld a, $1 - call GetSRAMBank - ld hl, wc608 - ld de, $b0d0 - ld bc, $8e - call CopyBytes - call CloseSRAM - pop hl - ret - - -Function151fb: ; 151fb - ld hl, Unknown_1522d - ld c, $e -.outerloop - push bc - ld a, [hli] - call GetSRAMBank - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - xor a - ld [de], a - inc de - ld a, -1 - ld [de], a - inc de - ld bc, $044c -.loop - xor a - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .loop - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, -1 - ld [de], a - inc de - xor a - ld [de], a - call CloseSRAM - pop bc - dec c - jr nz, .outerloop - ret -; 1522d - -Unknown_1522d: ; 1522d -; dbww bank, address, address - dbww $02, $a000, $a44e ; 2, $a000, $a44e - dbww $02, $a450, $a89e ; 2, $a450, $a89e - dbww $02, $a8a0, $acee ; 2, $a8a0, $acee - dbww $02, $acf0, $b13e ; 2, $acf0, $b13e - dbww $02, $b140, $b58e ; 2, $b140, $b5de - dbww $02, $b590, $b9de ; 2, $b590, $b9de - dbww $02, $b9e0, $be2e ; 2, $b9e0, $be2e - - dbww $03, $a000, $a44e ; 3, $a000, $a44e - dbww $03, $a450, $a89e ; 3, $a450, $a89e - dbww $03, $a8a0, $acee ; 3, $a8a0, $acee - dbww $03, $acf0, $b13e ; 3, $acf0, $b13e - dbww $03, $b140, $b58e ; 3, $b140, $b58e - dbww $03, $b590, $b9de ; 3, $b590, $b9de - dbww $03, $b9e0, $be2e ; 3, $b9e0, $be2e -; 15273 - - -Function15273: ; 15273 - ld de, 0 -.loop - ld a, [hli] - add e - ld e, a - ld a, 0 - adc d - ld d, a - dec bc - ld a, b - or c - jr nz, .loop - ret -; 15283 - - -UnknownText_0x15283: ; 0x15283 - ; Would you like to save the game? - text_jump UnknownText_0x1c454b - db "@" -; 0x15288 - -UnknownText_0x15288: ; 0x15288 - ; SAVING… DON'T TURN OFF THE POWER. - text_jump UnknownText_0x1c456d - db "@" -; 0x1528d - -UnknownText_0x1528d: ; 0x1528d - ; saved the game. - text_jump UnknownText_0x1c4590 - db "@" -; 0x15292 - -UnknownText_0x15292: ; 0x15292 - ; There is already a save file. Is it OK to overwrite? - text_jump UnknownText_0x1c45a3 - db "@" -; 0x15297 - -UnknownText_0x15297: ; 0x15297 - ; There is another save file. Is it OK to overwrite? - text_jump UnknownText_0x1c45d9 - db "@" -; 0x1529c - -UnknownText_0x1529c: ; 0x1529c - ; The save file is corrupted! - text_jump UnknownText_0x1c460d - db "@" -; 0x152a1 - -UnknownText_0x152a1: ; 0x152a1 - ; When you change a #MON BOX, data will be saved. OK? - text_jump UnknownText_0x1c462a - db "@" -; 0x152a6 - -UnknownText_0x152a6: ; 0x152a6 - ; Each time you move a #MON, data will be saved. OK? - text_jump UnknownText_0x1c465f - db "@" -; 0x152ab - +INCLUDE "engine/save.asm" INCLUDE "engine/spawn_points.asm" @@ -94761,4 +93586,4 @@ IF DEF(CRYSTAL11) INCBIN "misc/stadium2_2.bin" ELSE INCBIN "misc/stadium2_1.bin" -ENDC \ No newline at end of file +ENDC