diff options
author | pikalaxalt <PikalaxALT@gmail.com> | 2016-05-11 21:19:52 -0400 |
---|---|---|
committer | pikalaxalt <PikalaxALT@gmail.com> | 2016-05-11 21:19:52 -0400 |
commit | 6a3b3e3773744c72e4453c8852fb501fe2d820db (patch) | |
tree | 5cb232162dbd29780120706769ab9df619b0de1c | |
parent | af0119ca7e73c21205b5bb89bb9361db9aafa15f (diff) |
Save functions; feeble attempt at serial and link functions
-rwxr-xr-x | engine/billspc.asm | 2 | ||||
-rwxr-xr-x | engine/link.asm | 64 | ||||
-rw-r--r-- | engine/save.asm | 51 | ||||
-rw-r--r-- | home/serial.asm | 93 | ||||
-rw-r--r-- | misc/mobile_40.asm | 2 | ||||
-rwxr-xr-x | misc/mobile_46.asm | 6 | ||||
-rw-r--r-- | misc/mobile_5f.asm | 4 | ||||
-rw-r--r-- | wram.asm | 3 |
8 files changed, 117 insertions, 108 deletions
diff --git a/engine/billspc.asm b/engine/billspc.asm index c94f5d50d..322e84301 100755 --- a/engine/billspc.asm +++ b/engine/billspc.asm @@ -2020,7 +2020,7 @@ MovePKMNWitoutMail_InsertMon: ; e31e7 .dw_return ; e322a pop af ld e, a - callba Function14ad5 + callba MovePkmnWOMail_InsertMon_SaveGame ret ; e3233 diff --git a/engine/link.asm b/engine/link.asm index 759caecbc..7af7d062e 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -1942,20 +1942,20 @@ LinkTrade: ; 28b87 pop af ld c, a cp MEW - jr z, .asm_28e49 + jr z, .loop ld a, [CurPartySpecies] cp MEW - jr z, .asm_28e49 + jr z, .loop ld b, $2 ld a, c cp CELEBI - jr z, .asm_28e49 + jr z, .loop ld a, [CurPartySpecies] cp CELEBI - jr z, .asm_28e49 + jr z, .loop ld b, $0 -.asm_28e49 +.loop ld a, b ld [wPlayerLinkAction], a push bc @@ -1963,16 +1963,16 @@ LinkTrade: ; 28b87 pop bc ld a, [wLinkMode] cp LINK_TIMECAPSULE - jr z, .asm_28e63 + jr z, .save ld a, b and a - jr z, .asm_28e63 + jr z, .save ld a, [wOtherPlayerLinkAction] cp b - jr nz, .asm_28e49 + jr nz, .loop -.asm_28e63 - callba Function14a58 +.save + callba SaveAfterLinkTrade callba MobileFn_1060af callba BackupMobileEventIndex ld c, 40 @@ -2255,7 +2255,7 @@ Special_WaitForLinkedFriend: ; 29d11 .asm_29d2f ld a, $2 - ld [wcf5c], a + ld [wcf5b + 1], a ld a, $ff ld [wcf5b], a .asm_29d39 @@ -2278,9 +2278,9 @@ Special_WaitForLinkedFriend: ; 29d11 dec a ld [wcf5b], a jr nz, .asm_29d68 - ld a, [wcf5c] + ld a, [wcf5b + 1] dec a - ld [wcf5c], a + ld [wcf5b + 1], a jr z, .asm_29d8d .asm_29d68 @@ -2384,24 +2384,24 @@ Function29e0c: ; 29e0c ld [hFFCA], a ld a, [wcf5b] ld h, a - ld a, [wcf5c] + ld a, [wcf5b + 1] ld l, a push hl - call Function29e3b + call .CheckConnected pop hl - jr nz, .asm_29e2f - call Function29e47 - call Function29e53 - call Function29e3b - jr nz, .asm_29e2f - call Function29e47 + jr nz, .load_true + call .AcknowledgeSerial + call .ConvertDW + call .CheckConnected + jr nz, .load_true + call .AcknowledgeSerial xor a - jr .asm_29e31 + jr .load_scriptvar -.asm_29e2f +.load_true ld a, $1 -.asm_29e31 +.load_scriptvar ld [ScriptVar], a ld hl, wcf5b xor a @@ -2410,7 +2410,7 @@ Function29e0c: ; 29e0c ret ; 29e3b -Function29e3b: ; 29e3b +.CheckConnected: ; 29e3b call Function87d ld hl, wcf5b ld a, [hli] @@ -2421,17 +2421,19 @@ Function29e3b: ; 29e3b ret ; 29e47 -Function29e47: ; 29e47 - ld b, $a -.asm_29e49 +.AcknowledgeSerial: ; 29e47 + ld b, 10 +.loop call DelayFrame call LinkDataReceived dec b - jr nz, .asm_29e49 + jr nz, .loop ret ; 29e53 -Function29e53: ; 29e53 +.ConvertDW: ; 29e53 + ; hl = ((hl - $100) / 4) + $100 + ; = (hl / 4) + $c0 dec h srl h rr l @@ -2441,7 +2443,7 @@ Function29e53: ; 29e53 ld a, h ld [wcf5b], a ld a, l - ld [wcf5c], a + ld [wcf5b + 1], a ret ; 29e66 diff --git a/engine/save.asm b/engine/save.asm index 71dde7a88..de2d3bc65 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -4,7 +4,7 @@ SaveMenu: ; 14a1a call SpeechTextBox call UpdateSprites callba SaveMenu_LoadEDTile - ld hl, UnknownText_0x15283 + ld hl, Text_WouldYouLikeToSaveTheGame call SaveTheGame_yesorno jr nz, .refused call AskOverwriteSaveFile @@ -23,7 +23,7 @@ SaveMenu: ; 14a1a scf ret -Function14a58: ; 14a58 +SaveAfterLinkTrade: ; 14a58 call PauseGameLogic callba StageRTCTimeForSave callba BackupMysteryGift @@ -40,7 +40,7 @@ Function14a58: ; 14a58 ChangeBoxSaveGame: ; 14a83 (5:4a83) push de - ld hl, UnknownText_0x152a1 + ld hl, Text_SaveOnBoxSwitch call MenuTextBox call YesNoBox call ExitMenu @@ -86,7 +86,7 @@ MovePkmnWOMail_SaveGame: ; 14ac2 ret ; 14ad5 -Function14ad5: ; 14ad5 +MovePkmnWOMail_InsertMon_SaveGame: ; 14ad5 call PauseGameLogic push de call SaveBox @@ -120,7 +120,7 @@ Function14ad5: ; 14ad5 ; 14b34 StartMovePkmnWOMail_SaveGame: ; 14b34 - ld hl, UnknownText_0x152a6 + ld hl, Text_SaveOnMovePkmnWOMail call MenuTextBox call YesNoBox call ExitMenu @@ -184,13 +184,13 @@ AskOverwriteSaveFile: ; 14b89 jr z, .erase call CompareLoadedAndSavedPlayerID jr z, .yoursavefile - ld hl, UnknownText_0x15297 + ld hl, Text_AnotherSaveFile call SaveTheGame_yesorno jr nz, .refused jr .erase .yoursavefile - ld hl, UnknownText_0x15292 + ld hl, Text_AlreadyASaveFile call SaveTheGame_yesorno jr nz, .refused jr .ok @@ -208,7 +208,7 @@ AskOverwriteSaveFile: ; 14b89 ; 14baf SaveTheGame_yesorno: ; 14baf - ld b, BANK(UnknownText_0x15283) + ld b, BANK(Text_WouldYouLikeToSaveTheGame) call MapTextbox call LoadMenuTextBox lb bc, 0, 7 @@ -253,7 +253,7 @@ SavedTheGame: ; 14be6 ld a, 3 ld [Options], a ; <PLAYER> saved the game! - ld hl, UnknownText_0x1528d + ld hl, Text_PlayerSavedTheGame call PrintText ; restore the original text speed setting pop af @@ -355,7 +355,7 @@ SavingDontTurnOffThePower: ; 14c99 ld a, $3 ld [Options], a ; SAVING... DON'T TURN OFF THE POWER. - ld hl, UnknownText_0x15288 + ld hl, Text_SavingDontTurnOffThePower call PrintText ; Restore the text speed setting pop af @@ -416,17 +416,18 @@ EraseHallOfFame: ; 14d06 ; 14d18 Function14d18: ; 14d18 -; copy Unknown_14d2c to SRA4:a007 +; XXX +; copy .Data to SRA4:a007 ld a, $4 call GetSRAMBank - ld hl, Unknown_14d2c + ld hl, .Data ld de, $a007 - ld bc, 48 + ld bc, .DataEnd - .Data call CopyBytes jp CloseSRAM ; 14d2c -Unknown_14d2c: ; 14d2c +.Data: ; 14d2c db $0d, $02, $00, $05, $00, $00 db $22, $02, $01, $05, $00, $00 db $03, $04, $05, $08, $03, $05 @@ -436,6 +437,7 @@ Unknown_14d2c: ; 14d2c db $0f, $05, $14, $07, $05, $05 db $11, $0c, $0c, $06, $06, $04 ; 14d5c +.DataEnd EraseBattleTowerStatus: ; 14d5c ld a, BANK(sBattleTowerChallengeState) @@ -451,6 +453,7 @@ SaveData: ; 14d68 ; 14d6c Function14d6c: ; 14d6c +; XXX ld a, $4 call GetSRAMBank ld a, [$a60b] @@ -467,6 +470,7 @@ Function14d6c: ; 14d6c ; 14d83 Function14d83: ; 14d83 +; XXX ld a, $4 call GetSRAMBank xor a @@ -477,6 +481,7 @@ Function14d83: ; 14d83 ; 14d93 Function14d93: ; 14d93 +; XXX ld a, $7 call GetSRAMBank xor a @@ -664,7 +669,7 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5) push af set NO_TEXT_SCROLL, a ld [Options], a - ld hl, UnknownText_0x1529c + ld hl, Text_SaveFileCorrupted call PrintText pop af ld [Options], a @@ -1156,49 +1161,49 @@ Checksum: ; 15273 ; 15283 -UnknownText_0x15283: ; 0x15283 +Text_WouldYouLikeToSaveTheGame: ; 0x15283 ; Would you like to save the game? text_jump UnknownText_0x1c454b db "@" ; 0x15288 -UnknownText_0x15288: ; 0x15288 +Text_SavingDontTurnOffThePower: ; 0x15288 ; SAVING… DON'T TURN OFF THE POWER. text_jump UnknownText_0x1c456d db "@" ; 0x1528d -UnknownText_0x1528d: ; 0x1528d +Text_PlayerSavedTheGame: ; 0x1528d ; saved the game. text_jump UnknownText_0x1c4590 db "@" ; 0x15292 -UnknownText_0x15292: ; 0x15292 +Text_AlreadyASaveFile: ; 0x15292 ; There is already a save file. Is it OK to overwrite? text_jump UnknownText_0x1c45a3 db "@" ; 0x15297 -UnknownText_0x15297: ; 0x15297 +Text_AnotherSaveFile: ; 0x15297 ; There is another save file. Is it OK to overwrite? text_jump UnknownText_0x1c45d9 db "@" ; 0x1529c -UnknownText_0x1529c: ; 0x1529c +Text_SaveFileCorrupted: ; 0x1529c ; The save file is corrupted! text_jump UnknownText_0x1c460d db "@" ; 0x152a1 -UnknownText_0x152a1: ; 0x152a1 +Text_SaveOnBoxSwitch: ; 0x152a1 ; When you change a #MON BOX, data will be saved. OK? text_jump UnknownText_0x1c462a db "@" ; 0x152a6 -UnknownText_0x152a6: ; 0x152a6 +Text_SaveOnMovePkmnWOMail: ; 0x152a6 ; Each time you move a #MON, data will be saved. OK? text_jump UnknownText_0x1c465f db "@" diff --git a/home/serial.asm b/home/serial.asm index 7aab1616b..a03b94671 100644 --- a/home/serial.asm +++ b/home/serial.asm @@ -78,7 +78,7 @@ Serial:: ; 6ef .player2 ld a, $1 ld [hFFCA], a - ld a, -2 + ld a, $fe ld [hSerialSend], a .end @@ -126,92 +126,93 @@ Function75f:: ; 75f ; 78a Function78a:: ; 78a +.loop xor a ld [hFFCA], a ld a, [hLinkPlayerNumber] cp $2 - jr nz, .asm_79b + jr nz, .not_player_2 ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a - -.asm_79b +.not_player_2 +.loop2 ld a, [hFFCA] and a - jr nz, .asm_7e5 + jr nz, .reset_ffca ld a, [hLinkPlayerNumber] cp $1 - jr nz, .asm_7c0 - call Function82b - jr z, .asm_7c0 - call .asm_825 + jr nz, .not_player_1_or_wcf5b_zero + call Checkwcf5bNonzero + jr z, .not_player_1_or_wcf5b_zero + call .delay_15_cycles push hl - ld hl, wcf5c + ld hl, wcf5b + 1 inc [hl] - jr nz, .asm_7b7 + jr nz, .no_rollover_up dec hl inc [hl] -.asm_7b7 +.no_rollover_up pop hl - call Function82b - jr nz, .asm_79b - jp Function833 + call Checkwcf5bNonzero + jr nz, .loop2 + jp SerialDisconnected -.asm_7c0 +.not_player_1_or_wcf5b_zero ld a, [rIE] and $f cp $8 - jr nz, .asm_79b + jr nz, .loop2 ld a, [wcf5d] dec a ld [wcf5d], a - jr nz, .asm_79b + jr nz, .loop2 ld a, [wcf5d + 1] dec a ld [wcf5d + 1], a - jr nz, .asm_79b + jr nz, .loop2 ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_7e5 - ld a, $ff -.asm_7e2 + jr z, .reset_ffca + ld a, 255 +.delay_255_cycles dec a - jr nz, .asm_7e2 + jr nz, .delay_255_cycles -.asm_7e5 +.reset_ffca xor a ld [hFFCA], a ld a, [rIE] and $f sub $8 - jr nz, .asm_7f8 + jr nz, .rIE_not_equal_8 ld [wcf5d], a ld a, $50 ld [wcf5d + 1], a -.asm_7f8 +.rIE_not_equal_8 ld a, [hSerialReceive] cp $fe ret nz - call Function82b - jr z, .asm_813 + call Checkwcf5bNonzero + jr z, .wcf5b_zero push hl - ld hl, wcf5c + ld hl, wcf5b + 1 ld a, [hl] dec a ld [hld], a inc a - jr nz, .asm_80d + jr nz, .no_rollover dec [hl] -.asm_80d +.no_rollover pop hl - call Function82b - jr z, Function833 + call Checkwcf5bNonzero + jr z, SerialDisconnected -.asm_813 +.wcf5b_zero ld a, [rIE] and $f cp $8 @@ -220,17 +221,17 @@ Function78a:: ; 78a ld a, [hl] ld [hSerialSend], a call DelayFrame - jp Function78a + jp .loop -.asm_825 - ld a, $f -.asm_827 +.delay_15_cycles + ld a, 15 +.delay_cycles dec a - jr nz, .asm_827 + jr nz, .delay_cycles ret ; 82b -Function82b:: ; 82b +Checkwcf5bNonzero:: ; 82b push hl ld hl, wcf5b ld a, [hli] @@ -239,10 +240,10 @@ Function82b:: ; 82b ret ; 833 -Function833:: ; 833 +SerialDisconnected:: ; 833 dec a ld [wcf5b], a - ld [wcf5c], a + ld [wcf5b + 1], a ret ; 83b @@ -294,18 +295,19 @@ Function87d:: ; 87d .loop call LinkTransfer call DelayFrame - call Function82b + call Checkwcf5bNonzero jr z, .check push hl - ld hl, wcf5c + ld hl, wcf5b + 1 dec [hl] jr nz, .skip dec hl dec [hl] jr nz, .skip + ; We might be disconnected pop hl xor a - jp Function833 + jp SerialDisconnected .skip pop hl @@ -395,6 +397,7 @@ LinkDataReceived:: ; 908 ; 919 Function919:: ; 919 +; XXX ld a, [wLinkMode] and a ret nz diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 98d4e6858..5f618c4fe 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -5451,7 +5451,7 @@ Function102416: ; 102416 Function102423: ; 102423 call Function102921 ret nc - callba Function14a58 + callba SaveAfterLinkTrade callba MobileFn_1060af callba BackupMobileEventIndex ld hl, wcd4b diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 78fcc8418..644989872 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -7331,7 +7331,7 @@ Function11b5c0: ; 11b5c0 ld [wPokemonWithdrawDepositParameter], a callba RemoveMonFromPartyOrBox callba Function170807 - callba Function14a58 + callba SaveAfterLinkTrade jp Function11ad8a ; 11b5e0 @@ -7616,7 +7616,7 @@ Function11b7e5: ; 11b7e5 callba EvolvePokemon xor a ld [wLinkMode], a - callba Function14a58 + callba SaveAfterLinkTrade ld a, $5 call GetSRAMBank ld a, $5 @@ -7781,7 +7781,7 @@ Function11b93b: ; 11b93b ld a, $c64b / $100 ld [wMobileMonMailPointerBuffer + 1], a call AddMobileMonToParty - callba Function14a58 + callba SaveAfterLinkTrade ret ; 11b98f diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 7fce9631f..1835c7fcf 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -308,7 +308,7 @@ Function17d0f3: ; 17d0f3 callba EvolvePokemon xor a ld [wLinkMode], a - callba Function14a58 + callba SaveAfterLinkTrade ld a, $5 call GetSRAMBank ld a, $5 @@ -3059,7 +3059,7 @@ Function17e37e: ; 17e37e push af ld a, $1 ld [rSVBK], a - callba Function14a58 + callba SaveAfterLinkTrade pop af ld [rSVBK], a ret @@ -1268,8 +1268,7 @@ wOtherPlayerLinkMode:: ds 1 wOtherPlayerLinkAction:: ds 4 wPlayerLinkAction:: ds 1 wcf57:: ds 4 -wcf5b:: ds 1 -wcf5c:: ds 1 +wcf5b:: dw wcf5d:: ds 2 MonType:: ; cf5f |