From 26bb9fbc7b56f4c42bb0ea2b51e5431683e3ec41 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Fri, 20 Oct 2023 04:26:05 +0100 Subject: [PATCH] Simplify clock reset procedures Taken from this tutorial. Makes it like GS, but down Down + B instead of Down + B + Select. Used this tutorial: https://github.com/pret/pokecrystal/wiki/simplify-the-clock-reset-procedure --- data/text/common_3.asm | 19 +- engine/menus/intro_menu.asm | 35 ++-- engine/rtc/reset_password.asm | 384 +++++++++++++++++----------------- 3 files changed, 221 insertions(+), 217 deletions(-) diff --git a/data/text/common_3.asm b/data/text/common_3.asm index 528d698..c4e039c 100644 --- a/data/text/common_3.asm +++ b/data/text/common_3.asm @@ -899,23 +899,22 @@ _SpaceSpaceColonText:: ; unreferenced done _PasswordAskResetText:: - text "Password OK." - line "Select CONTINUE &" - cont "reset settings." + text "Select CONTINUE &" + line "reset settings." prompt -_PasswordWrongText:: - text "Wrong password!" - prompt +;_PasswordWrongText:: +; text "Wrong password!" +; prompt _PasswordAskResetClockText:: text "Reset the clock?" done -_PasswordAskEnterText:: - text "Please enter the" - line "password." - done +;_PasswordAskEnterText:: +; text "Please enter the" +; line "password." +; done _ClearAllSaveDataText:: text "Clear all save" diff --git a/engine/menus/intro_menu.asm b/engine/menus/intro_menu.asm index d324aec..262490b 100644 --- a/engine/menus/intro_menu.asm +++ b/engine/menus/intro_menu.asm @@ -1195,35 +1195,38 @@ TitleScreenMain: cp D_UP + B_BUTTON + SELECT jr z, .delete_save_data -; To bring up the clock reset dialog: +; Now uses the GS sequence, using Down + B +; Used this tutorial: https://github.com/pret/pokecrystal/wiki/simplify-the-clock-reset-procedure -; Hold Down + B + Select to initiate the sequence. +; To bring up the clock reset dialog, press Down + B + Select. ldh a, [hClockResetTrigger] cp $34 - jr z, .check_clock_reset + jr z, .reset_clock ld a, [hl] - and D_DOWN + B_BUTTON + SELECT - cp D_DOWN + B_BUTTON + SELECT + and D_DOWN + B_BUTTON + cp D_DOWN + B_BUTTON jr nz, .check_start ld a, $34 ldh [hClockResetTrigger], a jr .check_start -; Keep Select pressed, and hold Left + Up. -; Then let go of Select. -.check_clock_reset - bit SELECT_F, [hl] - jr nz, .check_start +; Removed for GS clock version - xor a - ldh [hClockResetTrigger], a +; X Keep Select pressed, and hold Left + Up. +; X Then let go of Select. +;.check_clock_reset +; bit SELECT_F, [hl] +; jr nz, .check_start - ld a, [hl] - and D_LEFT + D_UP - cp D_LEFT + D_UP - jr z, .reset_clock +; xor a +; ldh [hClockResetTrigger], a + +; ld a, [hl] +; and D_LEFT + D_UP +; cp D_LEFT + D_UP +; jr z, .reset_clock ; Press Start or A to start the game. .check_start diff --git a/engine/rtc/reset_password.asm b/engine/rtc/reset_password.asm index 5857784..920e70e 100644 --- a/engine/rtc/reset_password.asm +++ b/engine/rtc/reset_password.asm @@ -1,3 +1,5 @@ +; Password stuff has been removed. +; Done with this tutorial: https://github.com/pret/pokecrystal/wiki/simplify-the-clock-reset-procedure _ResetClock: farcall BlankScreen ld b, SCGB_DIPLOMA @@ -15,8 +17,8 @@ _ResetClock: ld a, [wMenuCursorY] cp 1 ret z - call ClockResetPassword - jr c, .wrongpassword + ;call ClockResetPassword + ;jr c, .wrongpassword ld a, BANK(sRTCStatusFlags) call OpenSRAM ld a, $80 @@ -26,18 +28,18 @@ _ResetClock: call PrintText ret -.wrongpassword - ld hl, .PasswordWrongText - call PrintText - ret +;.wrongpassword +; ld hl, .PasswordWrongText +; call PrintText +; ret .PasswordAskResetText: text_far _PasswordAskResetText text_end -.PasswordWrongText: - text_far _PasswordWrongText - text_end +;.PasswordWrongText: +; text_far _PasswordWrongText +; text_end .PasswordAskResetClockText: text_far _PasswordAskResetClockText @@ -55,201 +57,201 @@ _ResetClock: db "NO@" db "YES@" -ClockResetPassword: - call .CalculatePassword - push de - ld hl, wStringBuffer2 - ld bc, 5 - xor a - call ByteFill - ld a, 4 - ld [wStringBuffer2 + 5], a - ld hl, .PasswordAskEnterText - call PrintText -.loop - call .updateIDdisplay -.loop2 - call JoyTextDelay - ldh a, [hJoyLast] - ld b, a - and A_BUTTON - jr nz, .confirm - ld a, b - and D_PAD - jr z, .loop2 - call .dpadinput - ld c, 3 - call DelayFrames - jr .loop +;ClockResetPassword: +; call .CalculatePassword +; push de +; ld hl, wStringBuffer2 +; ld bc, 5 +; xor a +; call ByteFill +; ld a, 4 +; ld [wStringBuffer2 + 5], a +; ld hl, .PasswordAskEnterText +; call PrintText +;.loop +; call .updateIDdisplay +;.loop2 +; call JoyTextDelay +; ldh a, [hJoyLast] +; ld b, a +; and A_BUTTON +; jr nz, .confirm +; ld a, b +; and D_PAD +; jr z, .loop2 +; call .dpadinput +; ld c, 3 +; call DelayFrames +; jr .loop -.confirm - call .ConvertDecIDToBytes - pop de - ld a, e - cp l - jr nz, .nope - ld a, d - cp h - jr nz, .nope - and a - ret +;.confirm +; call .ConvertDecIDToBytes +; pop de +; ld a, e +; cp l +; jr nz, .nope +; ld a, d +; cp h +; jr nz, .nope +; and a +; ret -.nope - scf - ret +;.nope +; scf +; ret -.PasswordAskEnterText: - text_far _PasswordAskEnterText - text_end +;.PasswordAskEnterText: +; text_far _PasswordAskEnterText +; text_end -.updateIDdisplay - hlcoord 14, 15 - ld de, wStringBuffer2 - ld c, 5 -.loop3 - ld a, [de] - add "0" - ld [hli], a - inc de - dec c - jr nz, .loop3 - hlcoord 14, 16 - ld bc, 5 - ld a, " " - call ByteFill - hlcoord 14, 16 - ld a, [wStringBuffer2 + 5] - ld e, a - ld d, 0 - add hl, de - ld [hl], "▲" - ret +;.updateIDdisplay +; hlcoord 14, 15 +; ld de, wStringBuffer2 +; ld c, 5 +;.loop3 +; ld a, [de] +; add "0" +; ld [hli], a +; inc de +; dec c +; jr nz, .loop3 +; hlcoord 14, 16 +; ld bc, 5 +; ld a, " " +; call ByteFill +; hlcoord 14, 16 +; ld a, [wStringBuffer2 + 5] +; ld e, a +; ld d, 0 +; add hl, de +; ld [hl], "▲" +; ret -.dpadinput - ld a, b - and D_LEFT - jr nz, .left - ld a, b - and D_RIGHT - jr nz, .right - ld a, b - and D_UP - jr nz, .up - ld a, b - and D_DOWN - jr nz, .down - ret +;.dpadinput +; ld a, b +; and D_LEFT +; jr nz, .left +; ld a, b +; and D_RIGHT +; jr nz, .right +; ld a, b +; and D_UP +; jr nz, .up +; ld a, b +; and D_DOWN +; jr nz, .down +; ret -.left - ld a, [wStringBuffer2 + 5] - and a - ret z - dec a - ld [wStringBuffer2 + 5], a - ret +;.left +; ld a, [wStringBuffer2 + 5] +; and a +; ret z +; dec a +; ld [wStringBuffer2 + 5], a +; ret -.right - ld a, [wStringBuffer2 + 5] - cp 4 - ret z - inc a - ld [wStringBuffer2 + 5], a - ret +;.right +; ld a, [wStringBuffer2 + 5] +; cp 4 +; ret z +; inc a +; ld [wStringBuffer2 + 5], a +; ret -.up - call .getcurrentdigit - ld a, [hl] - cp 9 - jr z, .wraparound_up - inc a - ld [hl], a - ret +;.up +; call .getcurrentdigit +; ld a, [hl] +; cp 9 +; jr z, .wraparound_up +; inc a +; ld [hl], a +; ret -.wraparound_up - ld [hl], 0 - ret +;.wraparound_up +; ld [hl], 0 +; ret -.down - call .getcurrentdigit - ld a, [hl] - and a - jr z, .wraparound_down - dec a - ld [hl], a - ret +;.down +; call .getcurrentdigit +; ld a, [hl] +; and a +; jr z, .wraparound_down +; dec a +; ld [hl], a +; ret -.wraparound_down - ld [hl], 9 - ret +;.wraparound_down +; ld [hl], 9 +; ret -.getcurrentdigit - ld a, [wStringBuffer2 + 5] - ld e, a - ld d, 0 - ld hl, wStringBuffer2 - add hl, de - ret +;.getcurrentdigit +; ld a, [wStringBuffer2 + 5] +; ld e, a +; ld d, 0 +; ld hl, wStringBuffer2 +; add hl, de +; ret -.ConvertDecIDToBytes: - ld hl, 0 - ld de, wStringBuffer2 + 4 - ld bc, 1 - call .ConvertToBytes - ld bc, 10 - call .ConvertToBytes - ld bc, 100 - call .ConvertToBytes - ld bc, 1000 - call .ConvertToBytes - ld bc, 10000 -.ConvertToBytes: - ld a, [de] - dec de - push hl - ld hl, 0 - call AddNTimes - ld c, l - ld b, h - pop hl - add hl, bc - ret +;.ConvertDecIDToBytes: +; ld hl, 0 +; ld de, wStringBuffer2 + 4 +; ld bc, 1 +; call .ConvertToBytes +; ld bc, 10 +; call .ConvertToBytes +; ld bc, 100 +; call .ConvertToBytes +; ld bc, 1000 +; call .ConvertToBytes +; ld bc, 10000 +;.ConvertToBytes: +; ld a, [de] +; dec de +; push hl +; ld hl, 0 +; call AddNTimes +; ld c, l +; ld b, h +; pop hl +; add hl, bc +; ret -.CalculatePassword: - ld a, BANK(sPlayerData) - call OpenSRAM - ld de, 0 - ld hl, sPlayerData + (wPlayerID - wPlayerData) - ld c, 2 - call .ComponentFromNumber - ld hl, sPlayerData + (wPlayerName - wPlayerData) - ld c, NAME_LENGTH_JAPANESE - 1 - call .ComponentFromString - ld hl, sPlayerData + (wMoney - wPlayerData) - ld c, 3 - call .ComponentFromNumber - call CloseSRAM - ret +;.CalculatePassword: +; ld a, BANK(sPlayerData) +; call OpenSRAM +; ld de, 0 +; ld hl, sPlayerData + (wPlayerID - wPlayerData) +; ld c, 2 +; call .ComponentFromNumber +; ld hl, sPlayerData + (wPlayerName - wPlayerData) +; ld c, NAME_LENGTH_JAPANESE - 1 +; call .ComponentFromString +; ld hl, sPlayerData + (wMoney - wPlayerData) +; ld c, 3 +; call .ComponentFromNumber +; call CloseSRAM +; ret -.ComponentFromNumber: - ld a, [hli] - add e - ld e, a - ld a, 0 - adc d - ld d, a - dec c - jr nz, .ComponentFromNumber - ret +;.ComponentFromNumber: +; ld a, [hli] +; add e +; ld e, a +; ld a, 0 +; adc d +; ld d, a +; dec c +; jr nz, .ComponentFromNumber +; ret -.ComponentFromString: - ld a, [hli] - cp "@" - ret z - add e - ld e, a - ld a, 0 - adc d - ld d, a - dec c - jr nz, .ComponentFromString - ret +;.ComponentFromString: +; ld a, [hli] +; cp "@" +; ret z +; add e +; ld e, a +; ld a, 0 +; adc d +; ld d, a +; dec c +; jr nz, .ComponentFromString +; ret