From 6e257bc7cdab3249cc8fbdf4c808f0ebc442022e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 14 Dec 2015 20:06:41 -0500 Subject: [PATCH] mystery gift, credits --- engine/credits.asm | 261 ++++++++-------- engine/evolution_animation.asm | 70 ++--- engine/init_gender.asm | 115 +++++++ engine/intro_menu.asm | 2 +- engine/main_menu.asm | 2 +- engine/mysterygift.asm | 290 +++++++++--------- engine/mysterygift2.asm | 46 ++- engine/save.asm | 26 +- engine/scripting.asm | 4 +- engine/timeofdaypals.asm | 22 +- engine/warp_connection.asm | 3 +- .../048e71.2bpp => intro/gender_screen.2bpp} | Bin main.asm | 125 +------- misc/mobile_12.asm | 2 +- misc/mobile_22.asm | 2 +- text/common_3.asm | 2 +- wram.asm | 42 ++- 17 files changed, 528 insertions(+), 486 deletions(-) create mode 100755 engine/init_gender.asm rename gfx/{unknown/048e71.2bpp => intro/gender_screen.2bpp} (100%) diff --git a/engine/credits.asm b/engine/credits.asm index 3ebfdb8de..502c85768 100644 --- a/engine/credits.asm +++ b/engine/credits.asm @@ -1,5 +1,8 @@ INCLUDE "includes.asm" +wCreditsBorderFrame EQU $cf64 +wCreditsBorderMon EQU $cf65 +wCreditsLYOverride EQU $cf66 SECTION "Credits", ROMX, BANK[CREDITS] @@ -119,11 +122,11 @@ const_value SET -7 Credits:: ; 109847 - bit 6, b + bit 6, b ; Hall Of Fame ld a, $0 - jr z, .asm_10984f + jr z, .okay ld a, $40 -.asm_10984f +.okay ld [wJumptableIndex], a ld a, [rSVBK] @@ -135,17 +138,17 @@ Credits:: ; 109847 call ClearTileMap call ClearSprites - ld hl, wca00 + ld hl, wCreditsFaux2bpp ld c, $80 ld de, $ff00 -.asm_10986a +.load_loop ld a, e ld [hli], a ld a, d ld [hli], a dec c - jr nz, .asm_10986a + jr nz, .load_loop ld de, CreditsBorderGFX ld hl, VTiles2 tile $20 @@ -163,20 +166,20 @@ Credits:: ; 109847 call Request2bpp ld a, $ff - ld [wcf64], a + ld [wCreditsBorderFrame], a xor a - ld [wcf65], a + ld [wCreditsBorderMon], a - call Function109bca + call Credits_LoadBorderGFX ld e, l ld d, h ld hl, VTiles2 - lb bc, BANK(CreditsMonsGFX), $10 + lb bc, BANK(CreditsMonsGFX), 16 call Request2bpp - call Function109a95 + call ConstructCreditsTilemap xor a - ld [wcf66], a + ld [wCreditsLYOverride], a ld hl, LYOverrides ld bc, $100 @@ -200,16 +203,16 @@ Credits:: ; 109847 ld [wcd21], a ld [CreditsTimer], a -.asm_1098de - call Function109908 - call Function1098fd - jr nz, .asm_1098ee +.execution_loop + call Credits_HandleBButton + call Credits_HandleAButton + jr nz, .exit_credits - call Function109926 + call Credits_Jumptable call DelayFrame - jr .asm_1098de + jr .execution_loop -.asm_1098ee +.exit_credits call ClearBGPalettes xor a ld [hLCDStatCustom], a @@ -221,18 +224,18 @@ Credits:: ; 109847 ret ; 1098fd -Function1098fd: ; 1098fd +Credits_HandleAButton: ; 1098fd ld a, [hJoypadDown] - and $1 + and A_BUTTON ret z ld a, [wJumptableIndex] bit 7, a ret ; 109908 -Function109908: ; 109908 +Credits_HandleBButton: ; 109908 ld a, [hJoypadDown] - and $2 + and B_BUTTON ret z ld a, [wJumptableIndex] bit 6, a @@ -240,12 +243,11 @@ Function109908: ; 109908 ld hl, CreditsPos ld a, [hli] cp $d - jr nc, .asm_10991e + jr nc, .okay ld a, [hli] and a ret z - -.asm_10991e +.okay ld hl, CreditsTimer ld a, [hl] and a @@ -254,12 +256,12 @@ Function109908: ; 109908 ret ; 109926 -Function109926: ; 109926 +Credits_Jumptable: ; 109926 ld a, [wJumptableIndex] and $f ld e, a ld d, 0 - ld hl, Jumptable_109937 + ld hl, .Jumptable rept 2 add hl, de endr @@ -270,79 +272,80 @@ endr ; 109937 -Jumptable_109937: ; 109937 (42:5937) - dw ParseCredits - dw Function109951 - dw Function109951 - dw Function10995e - dw Function109964 - dw Function10997b - dw Function109986 - dw Function109951 - dw Function109951 - dw Function109951 - dw Function109964 - dw Function10997b - dw Function109956 +.Jumptable: ; 109937 (42:5937) + jumptable_start + jumptable ParseCredits + jumptable Credits_Next + jumptable Credits_Next + jumptable Credits_PrepBGMapUpdate + jumptable Credits_UpdateGFXRequestPath + jumptable Credits_RequestGFX + jumptable Credits_LYOverride + jumptable Credits_Next + jumptable Credits_Next + jumptable Credits_Next + jumptable Credits_UpdateGFXRequestPath + jumptable Credits_RequestGFX + jumptable Credits_LoopBack -Function109951: ; 109951 (42:5951) +Credits_Next: ; 109951 (42:5951) ld hl, wJumptableIndex inc [hl] ret -Function109956: ; 109956 (42:5956) +Credits_LoopBack: ; 109956 (42:5956) ld hl, wJumptableIndex ld a, [hl] and $f0 ld [hl], a ret -Function10995e: ; 10995e (42:595e) +Credits_PrepBGMapUpdate: ; 10995e (42:595e) xor a ld [hBGMapMode], a - jp Function109951 + jp Credits_Next -Function109964: ; 109964 (42:5964) - call Function109bca +Credits_UpdateGFXRequestPath: ; 109964 (42:5964) + call Credits_LoadBorderGFX ld a, l ld [Requested2bppSource], a ld a, h ld [Requested2bppSource + 1], a - ld a, $0 + ld a, VTiles2 % $100 ld [Requested2bppDest], a - ld a, $90 + ld a, VTiles2 / $100 ld [Requested2bppDest + 1], a - jr Function10997b + jr Credits_RequestGFX -Function10997b: ; 10997b (42:597b) +Credits_RequestGFX: ; 10997b (42:597b) xor a ld [hBGMapMode], a ld a, $8 ld [Requested2bpp], a - jp Function109951 + jp Credits_Next -Function109986: ; 109986 (42:5986) +Credits_LYOverride: ; 109986 (42:5986) ld a, [rLY] cp $30 - jr c, Function109986 - ld a, [wcf66] + jr c, Credits_LYOverride + ld a, [wCreditsLYOverride] rept 2 dec a endr - ld [wcf66], a + ld [wCreditsLYOverride], a ld hl, LYOverrides + $1f - call Function1099a3 + call .Fill ld hl, LYOverrides + $87 - call Function1099a3 - jp Function109951 + call .Fill + jp Credits_Next -Function1099a3: ; 1099a3 (42:59a3) +.Fill: ; 1099a3 (42:59a3) ld c, $8 -.asm_1099a5 +.loop ld [hli], a dec c - jr nz, .asm_1099a5 + jr nz, .loop ret ; 1099aa @@ -437,15 +440,15 @@ endr .theend ; Display "The End" graphic. - call Function109c11 + call Credits_TheEnd jr .loop .scene ; Update the scene number and corresponding palette. call .get - ld [wcf65], a ; scene + ld [wCreditsBorderMon], a ; scene xor a - ld [wcf64], a ; frame + ld [wCreditsBorderFrame], a ; frame call GetCreditsPalette call SetPalettes ; update hw pal registers jr .loop @@ -453,7 +456,7 @@ endr .clear ; Clear the banner. ld a, $ff - ld [wcf64], a ; frame + ld [wCreditsBorderFrame], a ; frame jr .loop .music @@ -484,13 +487,13 @@ endr ld [hBGMapMode], a .done - jp Function109951 + jp Credits_Next .end ; Stop execution. ld hl, wJumptableIndex set 7, [hl] - ld a, $20 + ld a, 32 ld [MusicFade], a ld a, MUSIC_POST_CREDITS % $100 ld [MusicFadeID], a @@ -521,91 +524,96 @@ endr ; 109a95 -Function109a95: ; 109a95 (42:5a95) +ConstructCreditsTilemap: ; 109a95 (42:5a95) xor a ld [hBGMapMode], a ld a, $c ld [hBGMapAddress], a + ld a, $28 hlcoord 0, 0 - ld bc, $168 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH call ByteFill + ld a, $7f hlcoord 0, 4 - ld bc, $118 + ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH call ByteFill + hlcoord 0, 4 ld a, $24 - call Function109b1d + call DrawCreditsBorder + hlcoord 0, 17 ld a, $20 - call Function109b1d + call DrawCreditsBorder + hlcoord 0, 0, AttrMap - ld bc, $50 + ld bc, 4 * SCREEN_WIDTH xor a call ByteFill + hlcoord 0, 4, AttrMap - ld bc, $14 + ld bc, SCREEN_WIDTH ld a, $1 call ByteFill + hlcoord 0, 5, AttrMap - ld bc, $f0 + ld bc, 12 * SCREEN_WIDTH ld a, $2 call ByteFill + hlcoord 0, 17, AttrMap - ld bc, $14 + ld bc, SCREEN_WIDTH ld a, $1 call ByteFill + call WaitBGMap2 xor a ld [hBGMapMode], a ld [hBGMapAddress], a hlcoord 0, 0 - call Function109aff + call .InitTopPortion call WaitBGMap2 ret -Function109aff: ; 109aff (42:5aff) - ld b, $5 -.asm_109b01 +.InitTopPortion: ; 109aff (42:5aff) + ld b, 5 +.outer_loop push hl - ld de, $11 - ld c, $4 + ld de, SCREEN_WIDTH - 3 + ld c, 4 xor a -.asm_109b08 - ld [hli], a - inc a - ld [hli], a - inc a +.inner_loop +rept 3 ld [hli], a inc a +endr ld [hl], a inc a add hl, de dec c - jr nz, .asm_109b08 + jr nz, .inner_loop pop hl rept 4 inc hl endr dec b - jr nz, .asm_109b01 + jr nz, .outer_loop ret -Function109b1d: ; 109b1d (42:5b1d) - ld c, $5 -.asm_109b1f +DrawCreditsBorder: ; 109b1d (42:5b1d) + ld c, SCREEN_WIDTH / 4 +.loop push af +rept 3 ld [hli], a inc a - ld [hli], a - inc a - ld [hli], a - inc a +endr ld [hli], a pop af dec c - jr nz, .asm_109b1f + jr nz, .loop ret GetCreditsPalette: ; 109b2c @@ -619,7 +627,7 @@ GetCreditsPalette: ; 109b2c .GetPalAddress ; Each set of palette data is 24 bytes long. - ld a, [wcf65] ; scene + ld a, [wCreditsBorderMon] ; scene and 3 add a add a ; * 8 @@ -724,18 +732,18 @@ CreditsPalettes: RGB 31, 31, 31 ; 109bca -Function109bca: ; 109bca (42:5bca) - ld hl, wcf64 +Credits_LoadBorderGFX: ; 109bca (42:5bca) + ld hl, wCreditsBorderFrame ld a, [hl] cp $ff - jr z, .asm_109bed + jr z, .init and 3 ld e, a inc a and 3 ld [hl], a - ld a, [wcf65] + ld a, [wCreditsBorderMon] and 3 rept 2 add a @@ -744,50 +752,49 @@ endr add a ld e, a ld d, 0 - ld hl, CreditsMonsFrames + ld hl, .Frames add hl, de ld a, [hli] ld h, [hl] ld l, a ret -.asm_109bed - ld hl, wca00 +.init + ld hl, wCreditsFaux2bpp ret ; 109bf1 (42:5bf1) -CreditsMonsFrames: ; 109bf1 +.Frames: ; 109bf1 dw CreditsPichuGFX - dw CreditsPichuGFX + $100 - dw CreditsPichuGFX + $200 - dw CreditsPichuGFX + $300 + dw CreditsPichuGFX + 16 tiles + dw CreditsPichuGFX + 32 tiles + dw CreditsPichuGFX + 48 tiles dw CreditsSmoochumGFX - dw CreditsSmoochumGFX + $100 - dw CreditsSmoochumGFX + $200 - dw CreditsSmoochumGFX + $300 + dw CreditsSmoochumGFX + 16 tiles + dw CreditsSmoochumGFX + 32 tiles + dw CreditsSmoochumGFX + 48 tiles dw CreditsDittoGFX - dw CreditsDittoGFX + $100 - dw CreditsDittoGFX + $200 - dw CreditsDittoGFX + $300 + dw CreditsDittoGFX + 16 tiles + dw CreditsDittoGFX + 32 tiles + dw CreditsDittoGFX + 48 tiles dw CreditsIgglybuffGFX - dw CreditsIgglybuffGFX + $100 - dw CreditsIgglybuffGFX + $200 - dw CreditsIgglybuffGFX + $300 + dw CreditsIgglybuffGFX + 16 tiles + dw CreditsIgglybuffGFX + 32 tiles + dw CreditsIgglybuffGFX + 48 tiles ; 109c11 -Function109c11: ; 109c11 (42:5c11) +Credits_TheEnd: ; 109c11 (42:5c11) ld a, $40 hlcoord 6, 9 - call Function109c1c + call .Load hlcoord 6, 10 - -Function109c1c: ; 109c1c (42:5c1c) - ld c, $8 -.asm_109c1e +.Load: ; 109c1c (42:5c1c) + ld c, 8 +.loop ld [hli], a inc a dec c - jr nz, .asm_109c1e + jr nz, .loop ret ; 109c24 (42:5c24) diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm index ee55d8e25..54387311e 100755 --- a/engine/evolution_animation.asm +++ b/engine/evolution_animation.asm @@ -9,7 +9,7 @@ EvolutionAnimation: ; 4e5e1 ld a, [BaseDexNo] push af - call _EvolutionAnimation + call .EvolutionAnimation pop af ld [BaseDexNo], a @@ -29,7 +29,7 @@ EvolutionAnimation: ; 4e5e1 ret ; 4e607 -_EvolutionAnimation: ; 4e607 +.EvolutionAnimation: ; 4e607 ld a, $e4 ld [rOBP0], a @@ -38,9 +38,9 @@ _EvolutionAnimation: ; 4e607 callba ClearSpriteAnims - ld de, EvolutionGFX + ld de, .GFX ld hl, VTiles0 - lb bc, BANK(EvolutionGFX), 8 + lb bc, BANK(.GFX), 8 call Request2bpp xor a @@ -76,7 +76,7 @@ _EvolutionAnimation: ; 4e607 ld a, $1 ld [hBGMapMode], a - call Function4e794 + call .check_statused jr c, .skip_cry ld a, [Buffer1] @@ -106,10 +106,10 @@ _EvolutionAnimation: ; 4e607 ld c, $0 call .GetSGBLayout - call Function4e7a6 + call .PlayEvolvedSFX callba ClearSpriteAnims - call Function4e794 - jr c, .asm_4e6de + call .check_statused + jr c, .no_anim ld a, [wc2c6] push af @@ -131,7 +131,7 @@ _EvolutionAnimation: ; 4e607 ld [wc2c6], a ret -.asm_4e6de +.no_anim ret .cancel_evo @@ -143,9 +143,9 @@ _EvolutionAnimation: ; 4e607 ld c, $0 call .GetSGBLayout - call Function4e7a6 + call .PlayEvolvedSFX callba ClearSpriteAnims - call Function4e794 + call .check_statused ret c ld a, [PlayerHPPal] @@ -259,7 +259,7 @@ endr ret ; 4e794 -Function4e794: ; 4e794 +.check_statused: ; 4e794 ld a, [CurPartyMon] ld hl, PartyMon1Species call GetPartyLocation @@ -269,7 +269,7 @@ Function4e794: ; 4e794 ret ; 4e7a6 -Function4e7a6: ; 4e7a6 +.PlayEvolvedSFX: ; 4e7a6 ld a, [Buffer4] and a ret nz @@ -279,24 +279,24 @@ Function4e7a6: ; 4e7a6 ld a, [hl] push af ld [hl], $0 -.loop - call Function4e7cf +.loop4 + call .balls_of_light jr nc, .done - call Function4e80c - jr .loop + call .AnimateBallsOfLight + jr .loop4 .done ld c, 32 -.loop2 - call Function4e80c +.loop5 + call .AnimateBallsOfLight dec c - jr nz, .loop2 + jr nz, .loop5 pop af ld [wJumptableIndex], a ret ; 4e7cf -Function4e7cf: ; 4e7cf +.balls_of_light: ; 4e7cf ld hl, wJumptableIndex ld a, [hl] cp 32 @@ -304,45 +304,45 @@ Function4e7cf: ; 4e7cf ld d, a inc [hl] and $1 - jr nz, .asm_4e7e6 + jr nz, .done_balls ld e, $0 - call Function4e7e8 + call .GenerateBallOfLight ld e, $10 - call Function4e7e8 + call .GenerateBallOfLight -.asm_4e7e6 +.done_balls scf ret ; 4e7e8 -Function4e7e8: ; 4e7e8 +.GenerateBallOfLight: ; 4e7e8 push de depixel 9, 11 ld a, SPRITE_ANIM_INDEX_13 call _InitSpriteAnimStruct - ld hl, $b + ld hl, SPRITEANIMSTRUCT_0B add hl, bc ld a, [wJumptableIndex] - and $e + and %1110 sla a pop de add e ld [hl], a - ld hl, $3 + ld hl, SPRITEANIMSTRUCT_TILE_ID add hl, bc ld [hl], $0 - ld hl, $c + ld hl, SPRITEANIMSTRUCT_0C add hl, bc ld [hl], $10 ret ; 4e80c -Function4e80c: ; 4e80c +.AnimateBallsOfLight: ; 4e80c push bc callab PlaySpriteAnimations ; a = (([hVBlankCounter] + 4) / 2) % NUM_PALETTES ld a, [hVBlankCounter] - and $e + and %1110 srl a rept 2 inc a @@ -351,7 +351,7 @@ endr ld b, a ld hl, Sprites + 3 ; attributes ld c, 40 -.loop +.loop6 ld a, [hl] or b ld [hli], a @@ -359,13 +359,13 @@ rept 3 inc hl endr dec c - jr nz, .loop + jr nz, .loop6 pop bc call DelayFrame ret ; 4e831 -EvolutionGFX: +.GFX: INCBIN "gfx/evo/bubble_large.2bpp" INCBIN "gfx/evo/bubble.2bpp" diff --git a/engine/init_gender.asm b/engine/init_gender.asm new file mode 100755 index 000000000..9fda68a3c --- /dev/null +++ b/engine/init_gender.asm @@ -0,0 +1,115 @@ +InitCrystalData: ; 48000 + ld a, $1 + ld [wd474], a + xor a + ld [wd473], a + ld [PlayerGender], a + ld [wd475], a + ld [wd476], a + ld [wd477], a + ld [wd478], a + ld [wd002], a + ld [wd003], a + ; could have done "ld a, [wd479] \ and %11111100", saved four operations + ld a, [wd479] + res 0, a + ld [wd479], a + ld a, [wd479] + res 1, a + ld [wd479], a + ret +; 4802f + +INCLUDE "misc/mobile_12.asm" + +InitGender: ; 48dcb (12:4dcb) + call InitGenderScreen + call LoadGenderScreenPal + call LoadGenderScreenLightBlueTile + call WaitBGMap2 + call SetPalettes + ld hl, TextJump_AreYouABoyOrAreYouAGirl + call PrintText + ld hl, .MenuDataHeader + call LoadMenuDataHeader + call WaitBGMap2 + call InterpretMenu2 + call WriteBackup + ld a, [MenuSelection2] + dec a + ld [PlayerGender], a + ld c, 10 + call DelayFrames + ret +; 48dfc (12:4dfc) + +.MenuDataHeader: ; 0x48dfc + db $40 ; flags + db 04, 06 ; start coords + db 09, 12 ; end coords + dw .MenuData2 + db 1 ; default option +; 0x48e04 + +.MenuData2: ; 0x48e04 + db $a1 ; flags + db 2 ; items + db "Boy@" + db "Girl@" +; 0x48e0f + +TextJump_AreYouABoyOrAreYouAGirl: ; 0x48e0f + ; Are you a boy? Or are you a girl? + text_jump Text_AreYouABoyOrAreYouAGirl + db "@" +; 0x48e14 + +InitGenderScreen: ; 48e14 (12:4e14) + ld a, $10 + ld [MusicFade], a + ld a, $0 + ld [MusicFadeIDLo], a + ld a, $0 + ld [MusicFadeIDHi], a + ld c, 8 + call DelayFrames + call ClearBGPalettes + call InitCrystalData + call LoadFontsExtra + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, $0 + call ByteFill + hlcoord 0, 0, AttrMap + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + xor a + call ByteFill + ret + +LoadGenderScreenPal: ; 48e47 (12:4e47) + ld hl, .Palette + ld de, UnknBGPals + ld bc, 1 palettes + ld a, $5 + call FarCopyWRAM + callba Function96a4 + ret +; 48e5c (12:4e5c) + +.Palette: ; 48e5c + RGB 31, 31, 31 + RGB 09, 30, 31 + RGB 01, 11, 31 + RGB 00, 00, 00 +; 48e64 + +LoadGenderScreenLightBlueTile: ; 48e64 (12:4e64) + ld de, .LightBlueTile + ld hl, VTiles2 tile $00 + lb bc, BANK(.LightBlueTile), 1 + call Get2bpp + ret +; 48e71 (12:4e71) + +.LightBlueTile: ; 48e71 +INCBIN "gfx/intro/gender_screen.2bpp" diff --git a/engine/intro_menu.asm b/engine/intro_menu.asm index bcd2d5ddb..1ec4d86d5 100755 --- a/engine/intro_menu.asm +++ b/engine/intro_menu.asm @@ -353,7 +353,7 @@ LoadOrRegenerateLuckyIDNumber: ; 5d33 Continue: ; 5d65 callba TryLoadSaveFile jr c, .FailToLoad - callba Function150b9 + callba _LoadData call LoadStandardMenuDataHeader call DisplaySaveInfoOnContinue ld a, $1 diff --git a/engine/main_menu.asm b/engine/main_menu.asm index 0c7819ca2..01432dc04 100755 --- a/engine/main_menu.asm +++ b/engine/main_menu.asm @@ -556,7 +556,7 @@ Function4a0c2: ; 4a0c2 (12:60c2) ld bc, $6 call CopyBytes call CloseSRAM - callba Function150b9 + callba _LoadData ld c, 2 call DelayFrames ld c, $1 diff --git a/engine/mysterygift.asm b/engine/mysterygift.asm index 91b0a3929..f6486a33e 100755 --- a/engine/mysterygift.asm +++ b/engine/mysterygift.asm @@ -15,7 +15,9 @@ DoMysteryGift: ; 1048ba (41:48ba) ld [wca02], a ld a, [rIE] push af + call Function104a95 + ld d, a xor a ld [rIF], a @@ -37,7 +39,7 @@ DoMysteryGift: ; 1048ba (41:48ba) cp $6c jp nz, .CommunicationError ld a, [wc900] - cp $3 + cp 3 jr z, .skip_checks call .CheckAlreadyGotFiveGiftsToday ld hl, .Text_MaxFiveGifts ; Only 5 gifts a day @@ -46,28 +48,28 @@ DoMysteryGift: ; 1048ba (41:48ba) ld hl, .Text_MaxOneGiftPerPerson ; Only one gift a day per person jp c, .PrintTextAndExit .skip_checks - ld a, [wc962] + ld a, [wMysteryGiftPlayerBackupItem] and a jp nz, .GiftWaiting ld a, [wc912] and a jp nz, .FriendNotReady ld a, [wc900] - cp $3 + cp 3 jr z, .skip_append_save call .AddMysteryGiftPartnerID ld a, [wc900] - cp $4 + cp 4 jr z, .skip_append_save call .SaveMysteryGiftTrainerName callba RestoreMobileEventIndex callba MobileFn_1060a9 callba BackupMobileEventIndex .skip_append_save - ld a, [wc90f] + ld a, [wMysteryGiftPartnerSentDeco] and a jr z, .item - ld a, [wc911] + ld a, [wMysteryGiftPartnerWhichDeco] ld c, a callba MysteryGiftGetDecoration push bc @@ -85,7 +87,7 @@ DoMysteryGift: ; 1048ba (41:48ba) .item call GetMysteryGiftBank - ld a, [wc910] + ld a, [wMysteryGiftPartnerWhichItem] ld c, a callba MysteryGiftGetItemHeldEffect ld a, c @@ -249,7 +251,7 @@ Function104a95: ; 104a95 (41:4a95) ld a, [hPrintNum9] cp $2 jr z, Function104b22 - ld hl, $ffb3 + ld hl, hPrintNum1 ld b, $1 call Function104d56 jr nz, .ly_loop @@ -323,7 +325,7 @@ Function104b22: ; 104b22 (41:4b22) jp Function104bd0 Function104b40: ; 104b40 (41:4b40) - ld hl, $ffb3 + ld hl, hPrintNum1 ld b, $1 call Function104d56 ret nz @@ -333,14 +335,14 @@ Function104b49: ; 104b49 (41:4b49) ld a, [hPrintNum10] cp $6c ret nz - ld a, [$ffb3] + ld a, [hPrintNum1] cp $96 jp nz, Function104d32 ld a, $90 - ld [$ffb3], a + ld [hPrintNum1], a call Function104d38 ret nz - ld hl, $ffb3 + ld hl, hPrintNum1 ld b, $1 call Function104d4e ret nz @@ -362,8 +364,8 @@ Function104b49: ; 104b49 (41:4b49) Function104b88: ; 104b88 (41:4b88) ld a, $96 - ld [$ffb3], a - ld hl, $ffb3 + ld [hPrintNum1], a + ld hl, hPrintNum1 ld b, $1 call Function104d4e ret nz @@ -373,7 +375,7 @@ Function104b88: ; 104b88 (41:4b88) ret nz call Function104d43 ret nz - ld hl, $ffb3 + ld hl, hPrintNum1 ld b, $1 call Function104d56 ret nz @@ -381,7 +383,7 @@ Function104b88: ; 104b88 (41:4b88) ld a, [hPrintNum10] cp $6c ret nz - ld a, [$ffb3] + ld a, [hPrintNum1] cp $90 jp nz, Function104d32 call Function104d38 @@ -407,13 +409,13 @@ Function104bd0: ; 104bd0 (41:4bd0) dec [hl] jr z, .asm_104c18 ld hl, wMysteryGiftTrainerData - ld de, wc900 - ld bc, $14 + ld de, wMysteryGiftPartnerData + ld bc, wMysteryGiftPartnerDataEnd - wMysteryGiftPartnerData call CopyBytes ld a, [wMysteryGiftTrainerData] cp $3 jr nc, .asm_104c18 - callba Function10510b + callba StagePartyDataForMysteryGift call Function1050fb ld a, $26 ld [wca02], a @@ -479,7 +481,7 @@ Function104c2d: ; 104c2d (41:4c2d) jp Function104d1c Function104c8a: ; 104c8a (41:4c8a) - ld hl, $ffb3 + ld hl, hPrintNum1 ld b, $1 call Function104d56 ret nz @@ -487,14 +489,14 @@ Function104c8a: ; 104c8a (41:4c8a) ld a, [hPrintNum10] cp $6c ret nz - ld a, [$ffb3] + ld a, [hPrintNum1] cp $3c jp nz, Function104d32 swap a - ld [$ffb3], a + ld [hPrintNum1], a call Function104d38 ret nz - ld hl, $ffb3 + ld hl, hPrintNum1 ld b, $1 call Function104d4e ret nz @@ -516,8 +518,8 @@ Function104c8a: ; 104c8a (41:4c8a) Function104cd2: ; 104cd2 (41:4cd2) ld a, $3c - ld [$ffb3], a - ld hl, $ffb3 + ld [hPrintNum1], a + ld hl, hPrintNum1 ld b, $1 call Function104d4e ret nz @@ -527,7 +529,7 @@ Function104cd2: ; 104cd2 (41:4cd2) ret nz call Function104d43 ret nz - ld hl, $ffb3 + ld hl, hPrintNum1 ld b, $1 call Function104d56 ret nz @@ -535,7 +537,7 @@ Function104cd2: ; 104cd2 (41:4cd2) ld a, [hPrintNum10] cp $6c ret nz - ld a, [$ffb3] + ld a, [hPrintNum1] swap a cp $3c jp nz, Function104d32 @@ -1196,29 +1198,35 @@ GetMysteryGiftBank: ; 105106 ; 10510b -Function10510b: ; 10510b (41:510b) +StagePartyDataForMysteryGift: ; 10510b (41:510b) +; You will be sending this data to your mystery gift partner. +; Structure is the same as a trainer with species and moves +; defined. ld a, BANK(sPokemonData) call GetSRAMBank - ld de, OverworldMap + ld de, wMysteryGiftStaging ld bc, sPokemonData + PartyMons - wPokemonData ld hl, sPokemonData + PartySpecies - wPokemonData -.asm_105119 +.loop ld a, [hli] - cp $ff - jr z, .asm_105148 + cp -1 + jr z, .party_end cp EGG - jr z, .asm_10513e + jr z, .next push hl + ; copy level ld hl, MON_LEVEL add hl, bc ld a, [hl] ld [de], a inc de + ; copy species ld hl, MON_SPECIES add hl, bc ld a, [hl] ld [de], a inc de + ; copy moves ld hl, MON_MOVES add hl, bc push bc @@ -1226,16 +1234,16 @@ Function10510b: ; 10510b (41:510b) call CopyBytes pop bc pop hl -.asm_10513e +.next push hl ld hl, PARTYMON_STRUCT_LENGTH add hl, bc ld b, h ld c, l pop hl - jr .asm_105119 -.asm_105148 - ld a, $ff + jr .loop +.party_end + ld a, -1 ld [de], a ld a, $26 ld [wca00], a @@ -1247,7 +1255,7 @@ Function105153: ; 105153 (41:5153) ld hl, MysteryGiftGFX ld de, VTiles2 tile $00 ld a, BANK(MysteryGiftGFX) - ld bc, Function105688 - MysteryGiftGFX + ld bc, MysteryGiftGFXEnd - MysteryGiftGFX call FarCopyBytes hlcoord 0, 0 ld a, $42 @@ -1268,13 +1276,13 @@ Function105153: ; 105153 (41:5153) ld [hl], a hlcoord 7, 1 ld a, $12 - call Function10522e + call .Load5GFX hlcoord 2, 2 ld a, $17 - call Function105236 + call .Load16GFX hlcoord 2, 3 ld a, $27 - call Function105236 + call .Load16GFX hlcoord 9, 4 ld a, $37 ld [hli], a @@ -1284,19 +1292,19 @@ Function105153: ; 105153 (41:5153) ld [hl], $4 hlcoord 1, 3 ld a, $5 - call Function105246 + call .Load14Column ld a, $9 hlcoord 18, 5 - call Function105242 + call .Load11Column hlcoord 2, 5 ld a, $b - call Function105251 + call .Load16Row hlcoord 2, 16 ld a, $7 - call Function105251 + call .Load16Row hlcoord 2, 5 ld a, $d - call Function10522e + call .Load5GFX hlcoord 7, 5 ld [hl], $c hlcoord 18, 5 @@ -1307,16 +1315,16 @@ Function105153: ; 105153 (41:5153) ld [hl], $6 hlcoord 2, 6 ld a, $3a - call Function105251 + call .Load16Row hlcoord 2, 15 ld a, $40 - call Function105251 + call .Load16Row hlcoord 2, 6 ld a, $3c - call Function10523e + call .Load9Column hlcoord 17, 6 ld a, $3e - call Function10523e + call .Load9Column hlcoord 2, 6 ld [hl], $39 hlcoord 17, 6 @@ -1332,55 +1340,55 @@ Function105153: ; 105153 (41:5153) call SetPalettes ret -Function10522e: ; 10522e (41:522e) - ld b, $5 - jr asm_105238 +.Load5GFX: ; 10522e (41:522e) + ld b, 5 + jr .gfx_loop ; 105232 (41:5232) -Function105232: ; unreferenced - ld b, 6 - jr asm_105238 +.Load6GFX: ; unreferenced + ld b, 6 + jr .gfx_loop -Function105236: ; 105236 (41:5236) - ld b, $10 +.Load16GFX: ; 105236 (41:5236) + ld b, 16 -asm_105238: ; 105238 (41:5238) +.gfx_loop: ; 105238 (41:5238) ld [hli], a inc a dec b - jr nz, asm_105238 + jr nz, .gfx_loop ret -Function10523e: ; 10523e (41:523e) - ld b, $9 - jr asm_105248 +.Load9Column: ; 10523e (41:523e) + ld b, 9 + jr .col_loop -Function105242: ; 105242 (41:5242) - ld b, $b - jr asm_105248 +.Load11Column: ; 105242 (41:5242) + ld b, 11 + jr .col_loop -Function105246: ; 105246 (41:5246) - ld b, $e +.Load14Column: ; 105246 (41:5246) + ld b, 14 -asm_105248: ; 105248 (41:5248) +.col_loop: ; 105248 (41:5248) ld [hl], a - ld de, $14 + ld de, SCREEN_WIDTH add hl, de dec b - jr nz, asm_105248 + jr nz, .col_loop ret -Function105251: ; 105251 (41:5251) - ld b, $10 -.asm_105253 +.Load16Row: ; 105251 (41:5251) + ld b, 16 +.row_loop ld [hli], a dec b - jr nz, .asm_105253 + jr nz, .row_loop ret MysteryGiftGFX: ; 105258 INCBIN "gfx/misc/mystery_gift.2bpp" - +MysteryGiftGFXEnd: Function105688: ; 105688 (41:5688) call ClearTileMap @@ -1412,15 +1420,15 @@ Function105688: ; 105688 (41:5688) ld c, 60 call DelayFrames call Function105777 - ld hl, Text_10575e + ld hl, Text_ReceivedCard call PrintText ld de, wMysteryGiftTrainerData callba Function8ac70 ld a, c ld [wd265], a - ld hl, Text_105768 + ld hl, Text_CardNotRegistered jr c, asm_105726 - ld hl, Text_105763 + ld hl, Text_ListedCardAsNumber jr asm_105726 Function1056eb: ; 1056eb (41:56eb) @@ -1454,12 +1462,12 @@ endr Function105712: ; 105712 (41:5712) call Function105777 - ld hl, Text_10576d + ld hl, Text_MGLinkCanceled jr asm_105726 Function10571a: ; 10571a (41:571a) call Function105777 - ld hl, Text_105772 + ld hl, Text_MGCommError call PrintText jp Function105688 @@ -1472,30 +1480,30 @@ asm_105726: ; 105726 (41:5726) String_10572e: ; 10572e db "エーボタン¯おすと" - next "つうしん", $4a, "おこなわれるよ!" + next "つうしんおこなわれるよ!" next "ビーボタン¯おすと" next "つうしん¯ちゅうし します" db "@" ; 10575e -Text_10575e: ; 10575e +Text_ReceivedCard: ; 10575e text_jump UnknownText_0x1c051a db "@" -Text_105763: ; 105763 +Text_ListedCardAsNumber: ; 105763 text_jump UnknownText_0x1c0531 db "@" -Text_105768: ; 105768 +Text_CardNotRegistered: ; 105768 text_jump UnknownText_0x1c0555 db "@" -Text_10576d: ; 10576d +Text_MGLinkCanceled: ; 10576d text_jump UnknownText_0x1c0573 db "@" -Text_105772: ; 105772 +Text_MGCommError: ; 105772 text_jump UnknownText_0x1c0591 db "@" ; 105777 @@ -1572,30 +1580,30 @@ Function1057d7: ; 1057d7 (41:57d7) ld [hl], a hlcoord 4, 2 ld a, $13 - call Function1058ca + call .Load11Row hlcoord 4, 3 ld a, $1e - call Function1058ce + call .Load12Row hlcoord 4, 4 ld a, $2a - call Function1058ce + call .Load12Row hlcoord 1, 2 ld [hl], $4 hlcoord 1, 3 ld a, $5 - call Function1058de + call .Load14Column ld a, $9 hlcoord 18, 5 - call Function1058da + call .Load11Column hlcoord 2, 5 ld a, $b - call Function1058e9 + call .Load16Row hlcoord 2, 16 ld a, $7 - call Function1058e9 + call .Load16Row hlcoord 2, 5 ld a, $d - call Function1058c6 + call .Load6Row hlcoord 8, 5 ld [hl], $c hlcoord 18, 5 @@ -1606,16 +1614,16 @@ Function1057d7: ; 1057d7 (41:57d7) ld [hl], $6 hlcoord 2, 6 ld a, $37 - call Function1058e9 + call .Load16Row hlcoord 2, 15 ld a, $3d - call Function1058e9 + call .Load16Row hlcoord 2, 6 ld a, $39 - call Function1058d6 + call .Load9Column hlcoord 17, 6 ld a, $3b - call Function1058d6 + call .Load9Column hlcoord 2, 6 ld [hl], $36 hlcoord 17, 6 @@ -1625,7 +1633,7 @@ Function1057d7: ; 1057d7 (41:57d7) hlcoord 17, 15 ld [hl], $3e ld de, Sprites - ld hl, OAM_1058f0 + ld hl, .OAM_data ld bc, $40 call CopyBytes call EnableLCD @@ -1634,69 +1642,69 @@ Function1057d7: ; 1057d7 (41:57d7) callba Function4930f jp SetPalettes -Function1058c6: ; 1058c6 (41:58c6) - ld b, $6 - jr asm_1058d0 +.Load6Row: ; 1058c6 (41:58c6) + ld b, 6 + jr .row_loop -Function1058ca: ; 1058ca (41:58ca) - ld b, $b - jr asm_1058d0 +.Load11Row: ; 1058ca (41:58ca) + ld b, 11 + jr .row_loop -Function1058ce: ; 1058ce (41:58ce) - ld b, $c +.Load12Row: ; 1058ce (41:58ce) + ld b, 12 -asm_1058d0: ; 1058d0 (41:58d0) +.row_loop: ; 1058d0 (41:58d0) ld [hli], a inc a dec b - jr nz, asm_1058d0 + jr nz, .row_loop ret -Function1058d6: ; 1058d6 (41:58d6) - ld b, $9 - jr asm_1058e0 +.Load9Column: ; 1058d6 (41:58d6) + ld b, 9 + jr .column_loop -Function1058da: ; 1058da (41:58da) - ld b, $b - jr asm_1058e0 +.Load11Column: ; 1058da (41:58da) + ld b, 11 + jr .column_loop -Function1058de: ; 1058de (41:58de) - ld b, $e +.Load14Column: ; 1058de (41:58de) + ld b, 14 -asm_1058e0: ; 1058e0 (41:58e0) +.column_loop: ; 1058e0 (41:58e0) ld [hl], a ld de, SCREEN_WIDTH add hl, de dec b - jr nz, asm_1058e0 + jr nz, .column_loop ret -Function1058e9: ; 1058e9 (41:58e9) - ld b, $10 -.asm_1058eb +.Load16Row: ; 1058e9 (41:58e9) + ld b, 16 +.row_loop_no_inc ld [hli], a dec b - jr nz, .asm_1058eb + jr nz, .row_loop_no_inc ret ; 1058f0 (41:58f0) -OAM_1058f0: ; 1058f0 - db $11, $34, $00, $00 - db $11, $3c, $01, $00 - db $11, $44, $02, $00 - db $11, $4c, $03, $00 - db $19, $34, $04, $00 - db $19, $3c, $05, $00 - db $19, $44, $06, $00 - db $19, $4c, $07, $00 - db $01, $5c, $00, $00 - db $01, $64, $01, $00 - db $01, $6c, $02, $00 - db $01, $74, $03, $00 - db $09, $5c, $04, $00 - db $09, $64, $05, $00 - db $09, $6c, $06, $00 - db $09, $74, $07, $00 +.OAM_data: ; 1058f0 + dsprite 2, 1, 6, 4, $00, $00 + dsprite 2, 1, 7, 4, $01, $00 + dsprite 2, 1, 8, 4, $02, $00 + dsprite 2, 1, 9, 4, $03, $00 + dsprite 3, 1, 6, 4, $04, $00 + dsprite 3, 1, 7, 4, $05, $00 + dsprite 3, 1, 8, 4, $06, $00 + dsprite 3, 1, 9, 4, $07, $00 + dsprite 0, 1, 11, 4, $00, $00 + dsprite 0, 1, 12, 4, $01, $00 + dsprite 0, 1, 13, 4, $02, $00 + dsprite 0, 1, 14, 4, $03, $00 + dsprite 1, 1, 11, 4, $04, $00 + dsprite 1, 1, 12, 4, $05, $00 + dsprite 1, 1, 13, 4, $06, $00 + dsprite 1, 1, 14, 4, $07, $00 ; japanese mystery gift gfx MysteryGiftJP_GFX: ; 105930 diff --git a/engine/mysterygift2.asm b/engine/mysterygift2.asm index 0f70e4bfc..30d02d9d9 100755 --- a/engine/mysterygift2.asm +++ b/engine/mysterygift2.asm @@ -1,8 +1,8 @@ Function2c642: ; 2c642 (b:4642) - ld de, wc800 + ld de, wMysteryGiftStaging ld a, $1 ld [de], a - inc de + inc de ; wc801 ld a, BANK(sGameData) call GetSRAMBank ld hl, sPlayerData + PlayerID - wPlayerData @@ -13,34 +13,34 @@ Function2c642: ; 2c642 (b:4642) ld a, [hl] ld [de], a ld c, a - inc de + inc de ; wc803 push bc ld hl, sPlayerData + PlayerName - wPlayerData ld bc, NAME_LENGTH call CopyBytes - push de + push de ; wc80e ld hl, sPokemonData + PokedexCaught - wPokemonData - ld b, (NUM_POKEMON + 7) / 8 + ld b, EndPokedexCaught - PokedexCaught call CountSetBits pop de pop bc ld a, [wd265] ld [de], a - inc de + inc de ; wc80f call CloseSRAM call Random and $1 ld [de], a - inc de - call Function2c6ac + inc de ; wc810 + call .RandomSample ld [de], a - inc de + inc de ; wc811 ld a, c ld c, b ld b, a - call Function2c6ac + call .RandomSample ld [de], a - inc de + inc de ; wc812 ld a, BANK(sBackupMysteryGiftItem) call GetSRAMBank ld a, [sBackupMysteryGiftItem] @@ -51,12 +51,12 @@ Function2c642: ; 2c642 (b:4642) ld a, $14 ld [wca00], a call CloseSRAM - ld hl, wc800 - ld de, wc950 - ld bc, $14 + ld hl, wMysteryGiftStaging + ld de, wMysteryGiftPlayerData + ld bc, wMysteryGiftPlayerDataEnd - wMysteryGiftPlayerData jp CopyBytes -Function2c6ac: ; 2c6ac (b:46ac) +.RandomSample: ; 2c6ac (b:46ac) push de call Random cp $19 ; 10 percent @@ -124,8 +124,8 @@ Function2c6ac: ; 2c6ac (b:46ac) MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708) ld a, c cp $25 ; 37 - jr nc, Function2c722 - ld hl, Unknown_2c725 + jr nc, MysteryGiftFallbackItem + ld hl, MysteryGiftItems ld b, 0 add hl, bc ld c, [hl] @@ -134,20 +134,19 @@ MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708) MysteryGiftGetDecoration: ; 2c715 (b:4715) ld a, c cp $25 ; 37 - jr nc, Function2c722 - ld hl, Unknown_2c74a + jr nc, MysteryGiftFallbackItem + ld hl, MysteryGiftDecos ld b, 0 add hl, bc ld c, [hl] ret -Function2c722: ; 2c722 (b:4722) +MysteryGiftFallbackItem: ; 2c722 (b:4722) ld c, DECO_POLKADOT_BED ; GREAT_BALL ret ; 2c725 (b:4725) -Unknown_2c725: ; 2c725 -; May or may not be items. +MysteryGiftItems: ; 2c725 db BERRY db PRZCUREBERRY db MINT_BERRY @@ -187,8 +186,7 @@ Unknown_2c725: ; 2c725 db MIRAGE_MAIL ; 2c74a -Unknown_2c74a: ; 2c74a -; May or may not be items. +MysteryGiftDecos: ; 2c74a db DECO_SNES db DECO_BIG_SNORLAX_DOLL db DECO_BIG_ONIX_DOLL diff --git a/engine/save.asm b/engine/save.asm index b46dd9277..9fcba708a 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -892,7 +892,7 @@ _SaveData: ; 1509a jp CloseSRAM -Function150b9: ; 150b9 +_LoadData: ; 150b9 ld a, BANK(sCrystalData) call GetSRAMBank ld hl, sCrystalData @@ -938,8 +938,11 @@ endr ; 150f9 SaveBoxAddress: ; 150f9 +; Save box via wMisc. +; We do this in three steps because the size of wMisc is less than +; the size of sBox. push hl - +; Load the first part of the active box. push af push de ld a, BANK(sBox) @@ -951,7 +954,7 @@ SaveBoxAddress: ; 150f9 call CloseSRAM pop de pop af - +; Save it to the target box. push af push de call GetSRAMBank @@ -959,6 +962,8 @@ SaveBoxAddress: ; 150f9 ld bc, (wMiscEnd - wMisc) call CopyBytes call CloseSRAM + +; Load the second part of the active box. ld a, BANK(sBox) call GetSRAMBank ld hl, sBox + (wMiscEnd - wMisc) @@ -973,7 +978,7 @@ SaveBoxAddress: ; 150f9 add hl, de ld e, l ld d, h - +; Save it to the next part of the target box. push af push de call GetSRAMBank @@ -981,6 +986,8 @@ SaveBoxAddress: ; 150f9 ld bc, (wMiscEnd - wMisc) call CopyBytes call CloseSRAM + +; Load the third and final part of the active box. ld a, BANK(sBox) call GetSRAMBank ld hl, sBox + (wMiscEnd - wMisc) * 2 @@ -995,7 +1002,7 @@ SaveBoxAddress: ; 150f9 add hl, de ld e, l ld d, h - +; Save it to the final part of the target box. call GetSRAMBank ld hl, wMisc ld bc, sBoxEnd - (sBox + (wMiscEnd - wMisc) * 2) ; $8e @@ -1008,10 +1015,13 @@ SaveBoxAddress: ; 150f9 LoadBoxAddress: ; 1517d (5:517d) +; Load box via wMisc. +; We do this in three steps because the size of wMisc is less than +; the size of sBox. push hl ld l, e ld h, d - +; Load part 1 push af push hl call GetSRAMBank @@ -1031,7 +1041,7 @@ LoadBoxAddress: ; 1517d (5:517d) ld de, (wMiscEnd - wMisc) add hl, de - +; Load part 2 push af push hl call GetSRAMBank @@ -1048,7 +1058,7 @@ LoadBoxAddress: ; 1517d (5:517d) call CloseSRAM pop hl pop af - +; Load part 3 ld de, (wMiscEnd - wMisc) add hl, de call GetSRAMBank diff --git a/engine/scripting.asm b/engine/scripting.asm index 39d42a984..d85cabe05 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -3211,14 +3211,14 @@ Script_halloffame: ; 97bd5 callba HallOfFame ld hl, GameTimerPause set 0, [hl] - jr DisplayCredits + jr ReturnFromCredits ; 97bf3 Script_credits: ; 97bf3 ; script command 0xa2 callba RedCredits -DisplayCredits: +ReturnFromCredits: call Script_end_all ld a, $3 call LoadMapStatus diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm index e45b38479..c769b8c9b 100644 --- a/engine/timeofdaypals.asm +++ b/engine/timeofdaypals.asm @@ -125,7 +125,7 @@ FadeInPalettes:: ; 8c079 ; 8c084 FadeOutPalettes:: ; 8c084 - call Function8c0c1 + call FillWhiteBGColor ld c, $9 call GetTimePalFade ld b, $4 @@ -134,7 +134,7 @@ FadeOutPalettes:: ; 8c084 ; 8c092 Special_BattleTowerFade: ; 8c092 - call Function8c0c1 + call FillWhiteBGColor ld c, $9 call GetTimePalFade ld b, $4 @@ -167,19 +167,20 @@ Special_FadeBlackQuickly: ; 8c0b6 ; 8c0c1 -Function8c0c1: ; 8c0c1 +FillWhiteBGColor: ; 8c0c1 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a + ld hl, UnknBGPals ld a, [hli] ld e, a ld a, [hli] ld d, a - ld hl, UnknBGPals + 8 - ld c, $6 -.asm_8c0d4 + ld hl, UnknBGPals + 1 palettes + ld c, 6 +.loop ld a, e ld [hli], a ld a, d @@ -188,7 +189,8 @@ rept 6 inc hl endr dec c - jr nz, .asm_8c0d4 + jr nz, .loop + pop af ld [rSVBK], a ret @@ -200,7 +202,7 @@ ENDM ReplaceTimeOfDayPals: ; 8c0e5 ld hl, .BrightnessLevels - ld a, [wc2d0] + ld a, [wMapTimeOfDay] cp $4 ; Dark cave, needs Flash jr z, .DarkCave and $7 @@ -306,7 +308,7 @@ ConvertTimePalsIncHL: ; 8c15e rept 3 inc hl endr - ld c, $2 + ld c, 2 call DelayFrames dec b jr nz, .loop @@ -319,7 +321,7 @@ ConvertTimePalsDecHL: ; 8c16d rept 3 dec hl endr - ld c, $2 + ld c, 2 call DelayFrames dec b jr nz, .loop diff --git a/engine/warp_connection.asm b/engine/warp_connection.asm index 7ea596637..62f81d6e5 100755 --- a/engine/warp_connection.asm +++ b/engine/warp_connection.asm @@ -7,13 +7,12 @@ RunCallback_05_03: ; 1045b0 call ResetBikeFlags ld a, $5 call RunMapCallback - RunCallback_03: ; 1045c4 callba ClearCmdQueue ld a, $3 call RunMapCallback call GetMapHeaderTimeOfDayNybble - ld [wc2d0], a + ld [wMapTimeOfDay], a ret diff --git a/gfx/unknown/048e71.2bpp b/gfx/intro/gender_screen.2bpp similarity index 100% rename from gfx/unknown/048e71.2bpp rename to gfx/intro/gender_screen.2bpp diff --git a/main.asm b/main.asm index d262e0627..63b5f9705 100644 --- a/main.asm +++ b/main.asm @@ -10788,123 +10788,9 @@ INCLUDE "data/pokedex/entry_pointers.asm" INCLUDE "engine/mail.asm" -SECTION "bank12", ROMX, BANK[$12] +SECTION "Crystal Unique", ROMX, BANK[$12] -Function48000: ; 48000 - ld a, $1 - ld [wd474], a - xor a - ld [wd473], a - ld [PlayerGender], a - ld [wd475], a - ld [wd476], a - ld [wd477], a - ld [wd478], a - ld [wd002], a - ld [wd003], a - ; could have done "ld a, [wd479] \ and %11111100", saved four operations - ld a, [wd479] - res 0, a - ld [wd479], a - ld a, [wd479] - res 1, a - ld [wd479], a - ret -; 4802f - -INCLUDE "misc/mobile_12.asm" - -InitGender: ; 48dcb (12:4dcb) - call Function48e14 - call Function48e47 - call Function48e64 - call WaitBGMap2 - call SetPalettes - ld hl, TextJump_AreYouABoyOrAreYouAGirl - call PrintText - ld hl, .MenuDataHeader - call LoadMenuDataHeader - call WaitBGMap2 - call InterpretMenu2 - call WriteBackup - ld a, [MenuSelection2] - dec a - ld [PlayerGender], a - ld c, 10 - call DelayFrames - ret -; 48dfc (12:4dfc) - -.MenuDataHeader: ; 0x48dfc - db $40 ; flags - db 04, 06 ; start coords - db 09, 12 ; end coords - dw .MenuData2 - db 1 ; default option -; 0x48e04 - -.MenuData2: ; 0x48e04 - db $a1 ; flags - db 2 ; items - db "Boy@" - db "Girl@" -; 0x48e0f - -TextJump_AreYouABoyOrAreYouAGirl: ; 0x48e0f - ; Are you a boy? Or are you a girl? - text_jump Text_AreYouABoyOrAreYouAGirl - db "@" -; 0x48e14 - -Function48e14: ; 48e14 (12:4e14) - ld a, $10 - ld [MusicFade], a - ld a, $0 - ld [MusicFadeIDLo], a - ld a, $0 - ld [MusicFadeIDHi], a - ld c, 8 - call DelayFrames - call ClearBGPalettes - call Function48000 - call LoadFontsExtra - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, $0 - call ByteFill - hlcoord 0, 0, AttrMap - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - xor a - call ByteFill - ret - -Function48e47: ; 48e47 (12:4e47) - ld hl, Palette_48e5c - ld de, UnknBGPals - ld bc, $8 - ld a, $5 - call FarCopyWRAM - callba Function96a4 - ret -; 48e5c (12:4e5c) - -Palette_48e5c: ; 48e5c - RGB 31, 31, 31 - RGB 09, 30, 31 - RGB 01, 11, 31 - RGB 00, 00, 00 -; 48e64 - -Function48e64: ; 48e64 (12:4e64) - ld de, GFX_48e71 - ld hl, VTiles2 tile $00 - lb bc, BANK(GFX_48e71), 1 - call Get2bpp - ret -; 48e71 (12:4e71) - -GFX_48e71: ; 48e71 -INCBIN "gfx/unknown/048e71.2bpp" +INCLUDE "engine/init_gender.asm" DrawKrisPackGFX: ; 48e81 ld hl, PackFGFXPointers @@ -11064,9 +10950,10 @@ Function4930f: ; 4930f (mobile) ; 49330 (12:5330) .jumptable: ; 49330 - dw Function4936e - dw Function4942f - dw Function49706 + jumptable_start + jumptable Function4936e + jumptable Function4942f + jumptable Function49706 ; 49336 Function49336: ; 49336 diff --git a/misc/mobile_12.asm b/misc/mobile_12.asm index c1388351e..e8af6c8ac 100755 --- a/misc/mobile_12.asm +++ b/misc/mobile_12.asm @@ -6,7 +6,7 @@ InitMobileProfile: ; 4802f (12:402f) set 0, [hl] ld a, c and a - call z, Function48000 + call z, InitCrystalData call ClearBGPalettes call Function48d3d ld a, [wd479] diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index 279631bc1..cdc596e6f 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -214,7 +214,7 @@ Function89240: ; 89240 Function89245: ; 89245 (22:5245) callba TryLoadSaveFile ret c - callba Function150b9 + callba _LoadData and a ret diff --git a/text/common_3.asm b/text/common_3.asm index bb0f286e9..e372752db 100644 --- a/text/common_3.asm +++ b/text/common_3.asm @@ -294,7 +294,7 @@ UnknownText_0x1c04fa: ; 1c04fa text_from_ram StringBuffer1 text "" cont "to @" - text_from_ram wc950 + 3 + text_from_ram wMysteryGiftPlayerName text "'s home." prompt ; 1c051a diff --git a/wram.asm b/wram.asm index 511078b39..89d7a5b4a 100644 --- a/wram.asm +++ b/wram.asm @@ -334,7 +334,8 @@ wc2cc:: ds 1 wc2cd:: ds 1 wSpriteUpdatesEnabled:: ds 1 wc2cf:: ds 1 -wc2d0:: ds 4 +wMapTimeOfDay:: ds 1 + ds 3 wc2d4:: ds 1 wc2d5:: ds 1 wLastDexEntry:: ds 1 @@ -1128,18 +1129,18 @@ OverworldMap:: ; c800 OverworldMapEnd:: ds OverworldMap - @ +wMysteryGiftPartyTemp:: ; ds PARTY_LENGTH * (1 + 1 + NUM_MOVES) +wMysteryGiftStaging:: + wc800:: ds 1 -wMysteryGiftPlayerID:: wc801:: ds 1 wc802:: ds 1 -wMysteryGiftPlayerName:: wc803:: ds 4 wc807:: ds 7 -wMysteryGiftPlayerDexCaught:: ds 1 +wc80e:: ds 1 wc80f:: ds 1 wc810:: ds 1 wc811:: ds 1 -wMysteryGiftPlayerBackupItem:: wc812:: ds 1 wc813:: ds 1 wc814:: ds 4 @@ -1162,20 +1163,33 @@ wc8c0:: ds 16 wc8d0:: ds 16 wc8e0:: ds 16 wc8f0:: ds 16 + +wMysteryGiftPartnerData:: wc900:: ds 1 wMysteryGiftPartnerID:: ds 2 wMysteryGiftPartnerName:: ds NAME_LENGTH -wc90e:: ds 1 -wc90f:: ds 1 -wc910:: ds 1 -wc911:: ds 1 -wc912:: ds 14 +wMysteryGiftPartnerDexCaught:: ds 1 +wc90f:: +wMysteryGiftPartnerSentDeco:: ds 1 +wMysteryGiftPartnerWhichItem:: ds 1 +wMysteryGiftPartnerWhichDeco:: ds 1 +wc912:: ds 2 +wMysteryGiftPartnerDataEnd:: + ds 12 wc920:: ds 16 wc930:: ds 16 wc940:: ds 16 -wc950:: ds 16 -wc960:: ds 2 -wc962:: ds 2 +wMysteryGiftPlayerData:: +wc950:: ds 1 +wMysteryGiftPlayerID:: ds 2 +wMysteryGiftPlayerName:: ds NAME_LENGTH +wMysteryGiftPlayerDexCaught:: ds 1 +wMysteryGiftPlayerSentDeco:: ds 1 +wMysteryGiftPlayerWhichItem:: ds 1 +wMysteryGiftPlayerWhichDeco:: ds 1 +wMysteryGiftPlayerBackupItem:: ds 2 +wMysteryGiftPlayerDataEnd:: + wc964:: ds 12 wc970:: ds 16 wc980:: ds 16 @@ -1188,6 +1202,8 @@ wc9e0:: ds 16 wc9f0:: ds 4 wc9f4:: ds 5 wc9f9:: ds 7 + +wCreditsFaux2bpp:: wca00:: ds 1 wca01:: ds 1 wca02:: ds 14