diff options
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 1480 |
1 files changed, 268 insertions, 1212 deletions
@@ -1077,6 +1077,7 @@ Function6219: ; 6219 push af ld a, $5 ld [rSVBK], a + call TitleScreen call DelayFrame .loop @@ -1085,8 +1086,10 @@ Function6219: ; 6219 call ClearSprites call WhiteBGMap + pop af ld [rSVBK], a + ld hl, rLCDC res 2, [hl] call ClearScreen @@ -1507,7 +1510,7 @@ Function6473: ; 6473 ld [hBGMapMode], a ld a, $90 ld [hWY], a - call Function2173 + call OverworldTextModeSwitch ld a, VBGMap1 / $100 call Function64b9 call Function2e20 @@ -1566,6 +1569,7 @@ Function64db: ; 64db push af ld a, $6 ld [rSVBK], a + ld a, $60 ld hl, w6_d000 lb bc, 4, 0 @@ -1581,6 +1585,7 @@ Function64db: ; 64db ld a, $3f ld [hDMATransfer], a call DelayFrame + pop af ld [rSVBK], a ret @@ -4789,12 +4794,12 @@ CutDownTreeOrGrass: ; c810 ld [hl], a xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch call UpdateSprites call DelayFrame ld a, [wd1ef] ld e, a - callba Function8c940 + callba OWCutAnimation call BufferScreen call Function2914 call UpdateSprites @@ -5905,10 +5910,10 @@ DisappearWhirlpool: ; ce1d ld [hl], a xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch ld a, [wd1ef] ld e, a - callba Function8c7d4 + callba PlayWhirlpoolSound call BufferScreen call Function2914 ret @@ -12147,7 +12152,7 @@ Unknown_1241c: ; 1241c ; 12434 Function12434: ; 12434 - call Function3218 + call IsCGB jr nz, .asm_1243e ld a, $e0 ld [rOBP1], a @@ -12176,7 +12181,7 @@ Function12459: ; 12459 .asm_1245b push bc call Function12469 - ld c, $a + ld c, 10 call DelayFrames pop bc dec c @@ -12185,7 +12190,7 @@ Function12459: ; 12459 ; 12469 Function12469: ; 12469 - call Function3218 + call IsCGB jr nz, .asm_12475 ld a, [rOBP1] xor $28 @@ -12197,6 +12202,7 @@ Function12469: ; 12469 push af ld a, $5 ld [rSVBK], a + ld hl, OBPals + 8 * 6 ld a, [hli] ld e, a @@ -12225,6 +12231,7 @@ endr ld [hld], a ld a, e ld [hl], a + pop af ld [rSVBK], a ld a, $1 @@ -14772,7 +14779,7 @@ Function134dd: ; 134dd call UpdateSprites xor a ld [wd0e4], a - call Function350c + call HandleScrollingMenu call WriteBackup ld a, [wcf73] cp $2 @@ -16513,7 +16520,7 @@ Function156d9: ; 156d9 call Function15704 and a jr nz, .asm_156f9 - call Function2173 + call OverworldTextModeSwitch call Function321c call UpdateSprites call Function156b8 @@ -16917,7 +16924,7 @@ Function15985: ; 0x15985 ld [wMenuCursorBuffer], a ld a, [wd0dd] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0dd], a ld a, [MenuSelection2] @@ -17031,988 +17038,7 @@ UnknownText_0x15a40: ; 0x15a40 ; 0x15a45 -OpenMartDialog:: ; 15a45 - call GetMart - ld a, c - ld [EngineBuffer1], a - call LoadMartPointer - ld a, [EngineBuffer1] - ld hl, .dialogs - rst JumpTable - ret -; 15a57 - -.dialogs - dw MartDialog - dw HerbShop - dw BargainShop - dw Pharmacist - dw RooftopSale -; 15a61 - -MartDialog: ; 15a61 - ld a, 0 - ld [EngineBuffer1], a - xor a - ld [MovementAnimation], a - call StandardMart - ret -; 15a6e - -HerbShop: ; 15a6e - call ReadMart - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15e4a - call Function15fcd - call Function15c62 - ld hl, UnknownText_0x15e68 - call Function15fcd - ret -; 15a84 - -BargainShop: ; 15a84 - ld b, BANK(BargainShopData) - ld de, BargainShopData - call LoadMartPointer - call Function15c25 - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15e6d - call Function15fcd - call Function15c62 - ld hl, WalkingDirection - ld a, [hli] - or [hl] - jr z, .asm_15aa7 - ld hl, DailyFlags - set 6, [hl] - -.asm_15aa7 - ld hl, UnknownText_0x15e8b - call Function15fcd - ret -; 15aae - -Pharmacist: ; 15aae - call ReadMart - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15e90 - call Function15fcd - call Function15c62 - ld hl, UnknownText_0x15eae - call Function15fcd - ret -; 15ac4 - -RooftopSale: ; 15ac4 - ld b, BANK(RooftopSaleData1) - ld de, RooftopSaleData1 - ld hl, StatusFlags - bit 6, [hl] ; hall of fame - jr z, .ok - ld b, BANK(RooftopSaleData2) - ld de, RooftopSaleData2 - -.ok - call LoadMartPointer - call Function15c25 - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15f83 - call Function15fcd - call Function15c62 - ld hl, UnknownText_0x15fb4 - call Function15fcd - ret -; 15aee - -RooftopSaleData1: ; 15aee - db 5 - dbw POKE_BALL, 150 - dbw GREAT_BALL, 500 - dbw SUPER_POTION, 500 - dbw FULL_HEAL, 500 - dbw REVIVE, 1200 - db -1 -RooftopSaleData2: ; 15aff - db 5 - dbw HYPER_POTION, 1000 - dbw FULL_RESTORE, 2000 - dbw FULL_HEAL, 500 - dbw ULTRA_BALL, 1000 - dbw PROTEIN, 7800 - db -1 -; 15b10 - -LoadMartPointer: ; 15b10 - ld a, b - ld [MartPointerBank], a - ld a, e - ld [MartPointer], a - ld a, d - ld [MartPointer + 1], a - ld hl, CurMart - xor a - ld bc, 16 - call ByteFill - xor a - ld [MovementAnimation], a - ld [WalkingDirection], a - ld [FacingDirection], a - ret -; 15b31 - -GetMart: ; 15b31 - ld a, e - cp (MartsEnd - Marts) / 2 - jr c, .IsAMart - ld b, $5 - ld de, DefaultMart - ret - -.IsAMart - ld hl, Marts -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld b, $5 - ret -; 15b47 - -StandardMart: ; 15b47 -.loop - ld a, [MovementAnimation] - ld hl, .MartFunctions - rst JumpTable - ld [MovementAnimation], a - cp $ff - jr nz, .loop - ret - -.MartFunctions - dw .HowMayIHelpYou - dw .TopMenu - dw .Buy - dw .Sell - dw .Quit - dw .AnythingElse -; 15b62 - -.HowMayIHelpYou: ; 15b62 - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15f83 - call PrintText - ld a, $1 - ret -; 15b6e - -.TopMenu: ; 15b6e - ld hl, MenuDataHeader_0x15f88 - call CopyMenuDataHeader - call InterpretMenu2 - jr c, .quit - ld a, [MenuSelection2] - cp $1 - jr z, .buy - cp $2 - jr z, .sell -.quit - ld a, $4 - ret -.buy - ld a, $2 - ret -.sell - ld a, $3 - ret -; 15b8d - -.Buy: ; 15b8d - call ExitMenu - call ReadMart - call Function15c62 - and a - ld a, $5 - ret -; 15b9a - -.Sell: ; 15b9a - call ExitMenu - call Function15eb3 - ld a, $5 - ret -; 15ba3 - -.Quit: ; 15ba3 - call ExitMenu - ld hl, UnknownText_0x15fb4 - call Function15fcd - ld a, $ff - ret -; 15baf - -.AnythingElse: ; 15baf - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15fb9 - call PrintText - ld a, $1 - ret -; 15bbb - -ReadMart: ; 15bbb - ld hl, MartPointer - ld a, [hli] - ld h, [hl] - ld l, a - ld de, CurMart -.CopyMart - ld a, [MartPointerBank] - call GetFarByte - ld [de], a - inc hl - inc de - cp -1 - jr nz, .CopyMart - ld hl, wd002 - ld de, CurMart + 1 -.ReadMartItem - ld a, [de] - inc de - cp -1 - jr z, .done - push de - call GetMartItemPrice - pop de - jr .ReadMartItem - -.done - ret -; 15be5 - -GetMartItemPrice: ; 15be5 -; Return the price of item a in BCD at hl and in tiles at StringBuffer1. - push hl - ld [CurItem], a - callba GetItemPrice - pop hl - -GetMartPrice: ; 15bf0 -; Return price de in BCD at hl and in tiles at StringBuffer1. - push hl - ld a, d - ld [StringBuffer2], a - ld a, e - ld [StringBuffer2 + 1], a - ld hl, StringBuffer1 - ld de, StringBuffer2 - lb bc, PRINTNUM_LEADINGZEROS | 2, 6 ; 6 digits - call PrintNum - pop hl - - ld de, StringBuffer1 - ld c, 6 / 2 ; 6 digits -.loop - call .TileToNum - swap a - ld b, a - call .TileToNum - or b - ld [hli], a - dec c - jr nz, .loop - ret -; 15c1a - -.TileToNum ; 15c1a - ld a, [de] - inc de - cp " " - jr nz, .asm_15c22 - ld a, "0" - -.asm_15c22 - sub "0" - ret -; 15c25 - -Function15c25: ; 15c25 - ld hl, MartPointer - ld a, [hli] - ld h, [hl] - ld l, a - push hl - inc hl - ld bc, wd002 - ld de, CurMart + 1 -.loop - ld a, [hli] - ld [de], a - inc de - cp -1 - jr z, .done - - push de - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld h, b - ld l, c - call GetMartPrice - ld b, h - ld c, l - pop hl - pop de - jr .loop - -.done - pop hl - ld a, [hl] - ld [CurMart], a - ret -; 15c51 - -BargainShopData: ; 15c51 - db 5 - dbw NUGGET, 4500 - dbw PEARL, 650 - dbw BIG_PEARL, 3500 - dbw STARDUST, 900 - dbw STAR_PIECE, 4600 - db -1 -; 15c62 - - -Function15c62: ; 15c62 - call FadeToMenu - callba Function8000 - xor a - ld [WalkingY], a - ld a, 1 - ld [WalkingX], a -.asm_15c74 - call Function15cef - jr nc, .asm_15c74 - call Function2b3c - ret -; 15c7d - -Function15c7d: ; 15c7d - push af - call Function15ca3 - ld a, [hli] - ld h, [hl] - ld l, a - pop af - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText - ret -; 15c91 - -Function15c91: ; 15c91 - call Function15ca3 -rept 2 - inc hl -endr - ld a, [hl] - and a - jp z, Function15d83 - cp 1 - jp z, Function15da5 - jp Function15de2 -; 15ca3 - -Function15ca3: ; 15ca3 - ld a, [EngineBuffer1] - ld e, a - ld d, 0 - ld hl, .data_15cb0 -rept 3 - add hl, de -endr - ret -; 15cb0 - -.data_15cb0 ; 15cb0 - dwb Unknown_15cbf, 0 - dwb Unknown_15ccb, 0 - dwb Unknown_15cd7, 1 - dwb Unknown_15ce3, 0 - dwb Unknown_15cbf, 2 -; 15cbf - -Unknown_15cbf: ; 15cbf - dw UnknownText_0x15e0e - dw UnknownText_0x15e13 - dw UnknownText_0x15fa5 - dw UnknownText_0x15faa - dw UnknownText_0x15fa0 - dw Function15cef - -Unknown_15ccb: ; 15ccb - dw UnknownText_0x15e4f - dw UnknownText_0x15e54 - dw UnknownText_0x15e63 - dw UnknownText_0x15e5e - dw UnknownText_0x15e59 - dw Function15cef - -Unknown_15cd7: ; 15cd7 - dw Function15cef - dw UnknownText_0x15e72 - dw UnknownText_0x15e86 - dw UnknownText_0x15e7c - dw UnknownText_0x15e77 - dw UnknownText_0x15e81 - -Unknown_15ce3: ; 15ce3 - dw UnknownText_0x15e95 - dw UnknownText_0x15e9a - dw UnknownText_0x15ea9 - dw UnknownText_0x15ea4 - dw UnknownText_0x15e9f - dw Function15cef -; 15cef - - -Function15cef: ; 15cef - callba Function24ae8 - call UpdateSprites - ld hl, MenuDataHeader_0x15e18 - call CopyMenuDataHeader - ld a, [WalkingX] - ld [wMenuCursorBuffer], a - ld a, [WalkingY] - ld [wd0e4], a - call Function350c - ld a, [wd0e4] - ld [WalkingY], a - ld a, [MenuSelection2] - ld [WalkingX], a - call SpeechTextBox - ld a, [wcf73] - cp $2 - jr z, .asm_15d6d - cp $1 - jr z, .asm_15d27 - -.asm_15d27 - call Function15c91 - jr c, .asm_15d68 - call Function15d97 - jr c, .asm_15d68 - ld de, Money - ld bc, hMoneyTemp - ld a, $3 - call CompareMoney - jr c, .asm_15d79 - ld hl, NumItems - call ReceiveItem - jr nc, .asm_15d6f - ld a, [wd107] - ld e, a - ld d, $0 - ld b, $1 - ld hl, WalkingDirection - call FlagAction - call Function15fc3 - ld de, Money - ld bc, hMoneyTemp - call TakeMoney - ld a, $4 - call Function15c7d - call JoyWaitAorB - -.asm_15d68 - call SpeechTextBox - and a - ret - -.asm_15d6d - scf - ret - -.asm_15d6f - ld a, $3 - call Function15c7d - call JoyWaitAorB - and a - ret - -.asm_15d79 - ld a, $2 - call Function15c7d - call JoyWaitAorB - and a - ret -; 15d83 - -Function15d83: ; 15d83 - ld a, $63 - ld [wItemQuantityBuffer], a - ld a, $0 - call Function15c7d - callba Function24fc9 - call ExitMenu - ret -; 15d97 - -Function15d97: ; 15d97 - predef PartyMonItemName - ld a, $1 - call Function15c7d - call YesNoBox - ret -; 15da5 - -Function15da5: ; 15da5 - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld a, [wd107] - ld e, a - ld d, $0 - ld b, $2 - ld hl, WalkingDirection - call FlagAction - ld a, c - and a - jr nz, .asm_15dd8 - ld a, [wd107] - ld e, a - ld d, $0 - ld hl, wd040 - ld a, [hli] - ld h, [hl] - ld l, a - inc hl -rept 3 - add hl, de -endr - inc hl - ld a, [hli] - ld [hMoneyTemp + 2], a - ld a, [hl] - ld [hMoneyTemp + 1], a - xor a - ld [hMoneyTemp], a - and a - ret - -.asm_15dd8 - ld a, $5 - call Function15c7d - call JoyWaitAorB - scf - ret -; 15de2 - -Function15de2: ; 15de2 - ld a, $0 - call Function15c7d - call Function15df9 - ld a, $63 - ld [wItemQuantityBuffer], a - callba Function24fcf - call ExitMenu - ret -; 15df9 - -Function15df9: ; 15df9 - ld a, [wd107] - ld e, a - ld d, 0 - ld hl, wd040 - ld a, [hli] - ld h, [hl] - ld l, a - inc hl -rept 3 - add hl, de -endr - inc hl - ld e, [hl] - inc hl - ld d, [hl] - ret -; 15e0e - - -UnknownText_0x15e0e: ; 0x15e0e - ; How many? - text_jump UnknownText_0x1c4bfd - db "@" -; 0x15e13 - -UnknownText_0x15e13: ; 0x15e13 - ; @ (S) will be ¥@ . - text_jump UnknownText_0x1c4c08 - db "@" -; 0x15e18 - -MenuDataHeader_0x15e18: ; 0x15e18 - db $40 ; flags - db 03, 01 ; start coords - db 11, 19 ; end coords - dw MenuData2_0x15e20 - db 1 ; default option -; 0x15e20 - -MenuData2_0x15e20: ; 0x15e20 - db $30 ; flags - db 4, 8 ; rows, columns - db 1 ; horizontal spacing - dbw 0, OBPals + 8 * 6 - dba PlaceMenuItemName - dba Function15e30 - dba Function244c3 -; 15e30 - -Function15e30: ; 15e30 - ld a, [wcf77] - ld c, a - ld b, 0 - ld hl, wd002 -rept 3 - add hl, bc -endr - push de - ld d, h - ld e, l - pop hl - ld bc, $14 - add hl, bc - ld c, $a3 - call PrintBCDNumber - ret -; 15e4a (5:5e4a) - -UnknownText_0x15e4a: ; 0x15e4a - ; Hello, dear. I sell inexpensive herbal medicine. They're good, but a trifle bitter. Your #MON may not like them. Hehehehe… - text_jump UnknownText_0x1c4c28 - db "@" -; 0x15e4f - -UnknownText_0x15e4f: ; 0x15e4f - ; How many? - text_jump UnknownText_0x1c4ca3 - db "@" -; 0x15e54 - -UnknownText_0x15e54: ; 0x15e54 - ; @ (S) will be ¥@ . - text_jump UnknownText_0x1c4cae - db "@" -; 0x15e59 - -UnknownText_0x15e59: ; 0x15e59 - ; Thank you, dear. Hehehehe… - text_jump UnknownText_0x1c4cce - db "@" -; 0x15e5e - -UnknownText_0x15e5e: ; 0x15e5e - ; Oh? Your PACK is full, dear. - text_jump UnknownText_0x1c4cea - db "@" -; 0x15e63 - -UnknownText_0x15e63: ; 0x15e63 - ; Hehehe… You don't have the money. - text_jump UnknownText_0x1c4d08 - db "@" -; 0x15e68 - -UnknownText_0x15e68: ; 0x15e68 - ; Come again, dear. Hehehehe… - text_jump UnknownText_0x1c4d2a - db "@" -; 0x15e6d - -UnknownText_0x15e6d: ; 0x15e6d - ; Hiya! Care to see some bargains? I sell rare items that nobody else carries--but only one of each item. - text_jump UnknownText_0x1c4d47 - db "@" -; 0x15e72 - -UnknownText_0x15e72: ; 0x15e72 - ; costs ¥@ . Want it? - text_jump UnknownText_0x1c4db0 - db "@" -; 0x15e77 - -UnknownText_0x15e77: ; 0x15e77 - ; Thanks. - text_jump UnknownText_0x1c4dcd - db "@" -; 0x15e7c - -UnknownText_0x15e7c: ; 0x15e7c - ; Uh-oh, your PACK is chock-full. - text_jump UnknownText_0x1c4dd6 - db "@" -; 0x15e81 - -UnknownText_0x15e81: ; 0x15e81 - ; You bought that already. I'm all sold out of it. - text_jump UnknownText_0x1c4df7 - db "@" -; 0x15e86 - -UnknownText_0x15e86: ; 0x15e86 - ; Uh-oh, you're short on funds. - text_jump UnknownText_0x1c4e28 - db "@" -; 0x15e8b - -UnknownText_0x15e8b: ; 0x15e8b - ; Come by again sometime. - text_jump UnknownText_0x1c4e46 - db "@" -; 0x15e90 - -UnknownText_0x15e90: ; 0x15e90 - ; What's up? Need some medicine? - text_jump UnknownText_0x1c4e5f - db "@" -; 0x15e95 - -UnknownText_0x15e95: ; 0x15e95 - ; How many? - text_jump UnknownText_0x1c4e7e - db "@" -; 0x15e9a - -UnknownText_0x15e9a: ; 0x15e9a - ; @ (S) will cost ¥@ . - text_jump UnknownText_0x1c4e89 - db "@" -; 0x15e9f - -UnknownText_0x15e9f: ; 0x15e9f - ; Thanks much! - text_jump UnknownText_0x1c4eab - db "@" -; 0x15ea4 - -UnknownText_0x15ea4: ; 0x15ea4 - ; You don't have any more space. - text_jump UnknownText_0x1c4eb9 - db "@" -; 0x15ea9 - -UnknownText_0x15ea9: ; 0x15ea9 - ; Huh? That's not enough money. - text_jump UnknownText_0x1c4ed8 - db "@" -; 0x15eae - -UnknownText_0x15eae: ; 0x15eae - ; All right. See you around. - text_jump UnknownText_0x1c4ef6 - db "@" -; 0x15eb3 - - -Function15eb3: ; 15eb3 - call DisableSpriteUpdates - callba Function106a5 -.asm_15ebc - callba Function106be - ld a, [wcf66] - and a - jp z, Function15ece - call Function15ee0 - jr .asm_15ebc -; 15ece - -Function15ece: ; 15ece - call Function2b74 - and a - ret -; 15ed3 - -Function15ed3: ; unreferenced - ld hl, UnknownText_0x15edb - call MenuTextBoxBackup - and a - ret -; 15edb - -UnknownText_0x15edb: ; 0x15edb - ; You don't have anything to sell. - text_jump UnknownText_0x1c4f12 - db "@" -; 0x15ee0 - - -Function15ee0: ; 15ee0 - callba CheckItemMenu - ld a, [wItemAttributeParamBuffer] - ld hl, .jumptable - rst JumpTable - ret -; 15eee - -.jumptable: ; 15eee - dw .maybe_use - dw .no_use - dw .no_use - dw .no_use - dw .maybe_use - dw .maybe_use - dw .maybe_use -; 15efc - -.no_use: ; 15efc - ret -; 15efd - - -.maybe_use: ; 15efd - callba _CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr z, .asm_15f11 - ld hl, UnknownText_0x15faf - call PrintText - and a - ret - -.asm_15f11 - ld hl, UnknownText_0x15f73 - call PrintText - callba Function24af8 - callba Function24fe1 - call ExitMenu - jr c, .asm_15f6e - hlcoord 1, 14 - lb bc, 3, 18 - call ClearBox - ld hl, UnknownText_0x15f78 - call PrintTextBoxText - call YesNoBox - jr c, .asm_15f6e - ld de, Money - ld bc, hMoneyTemp - call GiveMoney - ld a, [wd107] - ld hl, NumItems - call TossItem - predef PartyMonItemName - hlcoord 1, 14 - lb bc, 3, 18 - call ClearBox - ld hl, UnknownText_0x15fbe - call PrintTextBoxText - call Function15fc3 - callba Function24af0 - call JoyWaitAorB - -.asm_15f6e - call ExitMenu - and a - ret -; 15f73 - -UnknownText_0x15f73: ; 0x15f73 - ; How many? - text_jump UnknownText_0x1c4f33 - db "@" -; 0x15f78 - -UnknownText_0x15f78: ; 0x15f78 - ; I can pay you ¥@ . Is that OK? - text_jump UnknownText_0x1c4f3e - db "@" -; 0x15f7d - -String15f7d: ; 15f7d - db "!ダミー!@" - -UnknownText_0x15f83: ; 0x15f83 - ; Welcome! How may I help you? - text_jump UnknownText_0x1c4f62 - db "@" -; 0x15f88 - -MenuDataHeader_0x15f88: ; 0x15f88 - db $40 ; flags - db 00, 00 ; start coords - db 08, 07 ; end coords - dw MenuData2_0x15f90 - db 1 ; default option -; 0x15f90 - -MenuData2_0x15f90: ; 0x15f90 - db $80 ; flags - db 3 ; items - db "BUY@" - db "SELL@" - db "QUIT@" -; 0x15f96 - -UnknownText_0x15fa0: ; 0x15fa0 - ; Here you are. Thank you! - text_jump UnknownText_0x1c4f80 - db "@" -; 0x15fa5 - -UnknownText_0x15fa5: ; 0x15fa5 - ; You don't have enough money. - text_jump UnknownText_0x1c4f9a - db "@" -; 0x15faa - -UnknownText_0x15faa: ; 0x15faa - ; You can't carry any more items. - text_jump UnknownText_0x1c4fb7 - db "@" -; 0x15faf - -UnknownText_0x15faf: ; 0x15faf - ; Sorry, I can't buy that from you. - text_jump UnknownText_0x1c4fd7 - db "@" -; 0x15fb4 - -UnknownText_0x15fb4: ; 0x15fb4 - ; Please come again! - text_jump UnknownText_0x1c4ff9 - db "@" -; 0x15fb9 - -UnknownText_0x15fb9: ; 0x15fb9 - text_jump UnknownText_0x1c500d - db "@" -; 0x15fbe - -UnknownText_0x15fbe: ; 0x15fbe - text_jump UnknownText_0x1c502e - db "@" -; 0x15fc3 - -Function15fc3: ; 15fc3 - call WaitSFX - ld de, SFX_TRANSACTION - call PlaySFX - ret -; 15fcd - -Function15fcd: ; 15fcd - call MenuTextBox - call JoyWaitAorB - call ExitMenu - ret -; 15fd7 +INCLUDE "engine/mart.asm" GiveMoney:: ; 15fd7 ld a, $3 @@ -18666,7 +17692,7 @@ Function16949: ; 16949 call PrintText ld de, SFX_GET_EGG_FROM_DAYCARE_LADY call PlaySFX - ld c, $78 + ld c, 120 call DelayFrames ld hl, UnknownText_0x1699d jr .asm_1697f @@ -19444,10 +18470,12 @@ _BackUpTiles:: ; 24374 Function243e8:: ; 243e8 xor a ld [hBGMapMode], a + ld a, [rSVBK] push af ld a, $7 ld [rSVBK], a + call Function1c7e ld a, l or h @@ -19468,10 +18496,10 @@ Function243e8:: ; 243e8 call Function1c7e ld a, h or l - jr z, .next2 + jr z, .done call Function1c47 -.next2 +.done pop af ld [rSVBK], a ld hl, wcf78 @@ -19491,7 +18519,7 @@ Function24423: ; 24423 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call CopyBytes call CloseSRAM - call Function2173 + call OverworldTextModeSwitch xor a call GetSRAMBank ld hl, sScratch @@ -19647,7 +18675,7 @@ PokepicYesOrNo:: ; 24528 call ClearSGB xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch call Function321c call UpdateSprites call LoadStandardFont @@ -20497,7 +19525,7 @@ Function24a6c: ; 24a6c (9:4a6c) dec a cpl .asm_24a76 - ld hl, $ + ld hl, 0 call AddNTimes ld b, h ld c, l @@ -22789,7 +21817,7 @@ Function2695b: ; 2695b call Function352f xor a ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wcf73] cp 2 jr z, .no_action_2 @@ -27577,14 +26605,14 @@ Function41a7f: ; 41a7f Function41ad7: ; 41ad7 (10:5ad7) ld a, $3 ld [hBGMapMode], a - ld c, $4 + ld c, 4 call DelayFrames ret Function41ae1: ; 41ae1 (10:5ae1) ld a, $4 ld [hBGMapMode], a - ld c, $4 + ld c, 4 call DelayFrames ret @@ -28548,7 +27576,7 @@ Function441cf: ; 441cf xor a ld [wc7db], a call Function44207 - ld c, $20 + ld c, 32 call DelayFrames ret ; 441fc @@ -29206,7 +28234,7 @@ Function44806: ; 0x44806 ld [wMenuCursorBuffer], a ld a, [OBPals + 8 * 6] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [OBPals + 8 * 6], a ld a, [MenuSelection2] @@ -29465,7 +28493,7 @@ Function4802f: ; 4802f (12:402f) ld [MusicFadeIDLo], a ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 ld [MusicFadeIDHi], a - ld c, $14 + ld c, 20 call DelayFrames ld b, $1 call Function4930f @@ -29672,7 +28700,7 @@ Function4820d: ; 4820d (12:420d) hlcoord 1, 16 call PlaceString call WaitBGMap - ld c, $30 + ld c, 48 call DelayFrames .asm_4825c @@ -29783,7 +28811,7 @@ Function48304: ; 48304 (12:4304) ld [wd0e4], a callba Function104148 .asm_48348 - call Function350c + call HandleScrollingMenu ld de, $629 call Function48383 jr c, .asm_48348 @@ -30084,7 +29112,7 @@ Wakayama: db "わかやまけん@" ; Wakayama ; 48689 Function48689: ; 48689 (12:4689) - ld c, $7 + ld c, 7 call DelayFrames ld b, $1 call Function4930f @@ -30266,7 +29294,7 @@ Function4876f: ; 4876f (12:476f) .asm_487b7 hlcoord 11, 6 call Function487ec - ld c, $a + ld c, 10 call DelayFrames ld a, [wd473] push af @@ -30496,7 +29524,7 @@ asm_48922: ; 48922 (12:4922) ld a, b cp $4 jr nz, asm_48972 - ld c, $a + ld c, 10 call DelayFrames jr asm_48972 ; 4895a (12:495a) @@ -31299,7 +30327,7 @@ Function48e14: ; 48e14 (12:4e14) ld [MusicFadeIDLo], a ld a, $0 ld [MusicFadeIDHi], a - ld c, $8 + ld c, 8 call DelayFrames call WhiteBGMap call Function48000 @@ -32139,7 +31167,7 @@ Special_CelebiShrineEvent: ; 4989a ld [wc3b5], a callba Function8cf7a call Function49935 - ld c, $2 + ld c, 2 call DelayFrames pop de pop bc @@ -32356,7 +31384,7 @@ endr ld e, [hl] inc hl ld d, [hl] - ld hl, $ + ld hl, 0 .asm_49b61 srl a jr nc, .asm_49b66 @@ -32832,7 +31860,7 @@ Function49f0a: ; 49f0a call WhiteBGMap Function49f16: ; 49f16 call Function4a071 - ld c, $c + ld c, 12 call DelayFrames hlcoord 4, 0 ld b, $a @@ -33020,7 +32048,7 @@ Function4a0c2: ; 4a0c2 (12:60c2) call CopyBytes call CloseSRAM callba Function150b9 - ld c, $2 + ld c, 2 call DelayFrames ld c, $1 call Function4802f @@ -33031,7 +32059,7 @@ Function4a0c2: ; 4a0c2 (12:60c2) jr nz, .asm_4a0f9 callba Function1509a .asm_4a0f9 - ld c, $5 + ld c, 5 call DelayFrames jr asm_4a111 @@ -33078,7 +32106,7 @@ Function4a13b: ; 4a13b (12:613b) call Function4a3a7 call Function4a492 call Function4a373 - ld c, $a + ld c, 10 call DelayFrames Function4a149: ; 4a149 (12:6149) @@ -33496,7 +32524,7 @@ Function4a4c4: ; 4a4c4 (12:64c4) call Function4a492 call Function4a680 call WhiteBGMap - ld c, $14 + ld c, 20 call DelayFrames hlcoord 2, 0 ld b, $a @@ -33685,7 +32713,7 @@ Function4a6c5: ; 4a6c5 (12:66c5) ld [MusicFadeIDLo], a ld a, d ld [MusicFadeIDHi], a - ld c, $16 + ld c, 22 call DelayFrames ret @@ -34349,7 +33377,7 @@ Function4aa7a: ; 4aa7a push hl cp -1 jr z, .done - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 inc a ld d, a .inner_loop @@ -34950,7 +33978,7 @@ Function4ae1f: ; 4ae1f call BackUpTiles call InterpretMenu2 push af - ld c, $f + ld c, 15 call DelayFrames call Function4ae5e pop af @@ -35569,7 +34597,7 @@ ClockResetPassword: ; 4d41e and D_PAD jr z, .loop2 call .dpadinput - ld c, $3 + ld c, 3 call DelayFrames jr .loop @@ -43453,7 +42481,7 @@ TilesetColorTest: ld [wcf66], a ld [hMapAnims], a call ClearSprites - call Function2173 + call OverworldTextModeSwitch call Function3200 xor a ld [hBGMapMode], a @@ -43607,7 +42635,7 @@ Function82236: ; 82236 ld [rSVBK], a ld a, $2 ld [hBGMapMode], a - ld c, $3 + ld c, 3 call DelayFrames ld a, $1 ld [hBGMapMode], a @@ -44135,7 +43163,7 @@ endr ret Function84219: ; 84219 (21:4219) - ld hl, $ + ld hl, 0 ld bc, $4 ld de, wca82 call Function8423c @@ -44513,7 +43541,7 @@ Function8442c: ; 8442c call Function843f0 jr c, .asm_8449d call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -44581,7 +43609,7 @@ Function844bc: ; 844bc (21:44bc) call Function84559 jr c, .asm_84545 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -44591,7 +43619,7 @@ Function844bc: ; 844bc (21:44bc) call Function84559 jr c, .asm_84545 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -44601,7 +43629,7 @@ Function844bc: ; 844bc (21:44bc) call Function84559 jr c, .asm_84545 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -44756,7 +43784,7 @@ Function8461a: ; 8461a call Function843f0 jr c, .asm_84671 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -44808,7 +43836,7 @@ Function84688: ; 84688 call Function843f0 jr c, .asm_846e2 call Function84411 - ld c, $c + ld c, 12 call DelayFrames call LoadTileMapToTempTileMap xor a @@ -45369,7 +44397,7 @@ RedCredits:: ; 86455 ld [VramState], a ld [hMapAnims], a callba Function4e8c2 - ld c, $8 + ld c, 8 call DelayFrames call DisableSpriteUpdates ld a, SPAWN_RED @@ -45439,7 +44467,7 @@ Function864c3: ; 864c3 ld a, $4 ld [MusicFade], a call FadeToWhite - ld c, $8 + ld c, 8 call DelayFrames ret ; 8650c @@ -46276,7 +45304,7 @@ Function8c7c9: ; unreferenced ret ; 8c7d4 -Function8c7d4: ; 8c7d4 +PlayWhirlpoolSound: ; 8c7d4 call WaitSFX ld de, SFX_SURF call PlaySFX @@ -46299,9 +45327,9 @@ BlindingFlash: ; 8c7e1 ShakeHeadbuttTree: ; 8c80a callba Function8cf53 - ld de, GFX_8c9cc + ld de, CutGrassGFX ld hl, VTiles1 - lb bc, BANK(GFX_8c9cc), 4 + lb bc, BANK(CutGrassGFX), 4 call Request2bpp ld de, HeadbuttTreeGFX ld hl, VTiles1 tile $04 @@ -46335,7 +45363,7 @@ ShakeHeadbuttTree: ; 8c80a jr .loop .done - call Function2173 + call OverworldTextModeSwitch call WaitBGMap xor a ld [hBGMapMode], a @@ -46389,57 +45417,56 @@ TreeRelativeLocationTable: ; 8c938 dwcoord 8 - 2, 8 ; DOWN dwcoord 8 + 2, 8 ; UP ; 8c940 -; 8c940 -Function8c940: ; 8c940 +OWCutAnimation: ; 8c940 ld a, e and $1 ld [wJumptableIndex], a - call Function8c96d + call .LoadCutGFX call WaitSFX ld de, SFX_PLACE_PUZZLE_PIECE_DOWN call PlaySFX -.asm_8c952 +.loop ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_8c96c + jr nz, .finish ld a, $90 ld [wc3b5], a callab Function8cf7a - call Function8ca0c + call OWCutJumptable call DelayFrame - jr .asm_8c952 + jr .loop -.asm_8c96c +.finish ret ; 8c96d -Function8c96d: ; 8c96d - callab Function8cf53 - ld de, GFX_8c9cc +.LoadCutGFX: ; 8c96d + callab Function8cf53 ; pointless to farcall + ld de, CutGrassGFX ld hl, VTiles1 - lb bc, BANK(GFX_8c9cc), 4 + lb bc, BANK(CutGrassGFX), 4 call Request2bpp ld de, CutTreeGFX - ld hl, VTiles1 + $40 + ld hl, VTiles1 tile $4 lb bc, BANK(CutTreeGFX), 4 call Request2bpp ret ; 8c98c CutTreeGFX: ; c898c -INCBIN "gfx/unknown/08c98c.2bpp" +INCBIN "gfx/misc/cut_tree.2bpp" ; c89cc -GFX_8c9cc: ; 8c9cc -INCBIN "gfx/unknown/08c9cc.2bpp" +CutGrassGFX: ; 8c9cc +INCBIN "gfx/misc/cut_grass.2bpp" ; 8ca0c -Function8ca0c: ; 8ca0c +OWCutJumptable: ; 8ca0c ld a, [wJumptableIndex] ld e, a ld d, 0 - ld hl, Jumptable_8ca1b + ld hl, .jumptable rept 2 add hl, de endr @@ -46450,7 +45477,7 @@ endr ; 8ca1b -Jumptable_8ca1b: ; 8ca1b (23:4a1b) +.jumptable: ; 8ca1b (23:4a1b) dw Function8ca23 dw Function8ca3c dw Function8ca5c @@ -46525,7 +45552,7 @@ Function8ca73: ; 8ca73 (23:4a73) ret Function8ca8e: ; 8ca8e (23:4a8e) - ld de, $ + ld de, 0 ld a, [wd197] bit 0, a jr z, .asm_8ca9a @@ -46681,9 +45708,9 @@ endr Function8cb9b: ; 8cb9b (23:4b9b) callab Function8cf53 - ld de, GFX_8c9cc + ld de, CutGrassGFX ld hl, VTiles1 tile $00 - lb bc, BANK(GFX_8c9cc), 4 + lb bc, BANK(CutGrassGFX), 4 call Request2bpp ld a, [CurPartyMon] ld hl, PartySpecies @@ -47265,18 +46292,18 @@ Function8cf69: ; 8cf69 ; 8cf7a Function8cf7a: ; 8cf7a - ld hl, wPartyMonMenuIconAnims - ld e, 10 ; Do this first loop 10 times + ld hl, wc314 + ld e, 10 ; There are 10 structs here. .loop ld a, [hl] and a - jr z, .next ; Done with this iteration + jr z, .next ; This struct is deinitialized. ld c, l ld b, h push hl push de - call Function8d24b + call Function8d24b ; Uses a massive jumptable call LoadBouncingMonIcon pop de pop hl @@ -47287,13 +46314,14 @@ Function8cf7a: ; 8cf7a add hl, bc dec e jr nz, .loop + ld a, [wc3b5] ld l, a ld h, Sprites / $0100 .loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd) ld a, l - cp SpritesEnd % $0100 + cp SpritesEnd % $100 jr nc, .done xor a ld [hli], a @@ -47304,7 +46332,7 @@ Function8cf7a: ; 8cf7a ; 8cfa8 Function8cfa8: ; 8cfa8 (23:4fa8) - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, 10 .loop @@ -47315,7 +46343,7 @@ Function8cfa8: ; 8cfa8 (23:4fa8) ld b, h push hl push de - call Function8d24b + call Function8d24b ; Uses a massive jumptable call LoadBouncingMonIcon pop de pop hl @@ -47329,10 +46357,11 @@ Function8cfa8: ; 8cfa8 (23:4fa8) ld a, [wc3b5] ld l, a - ld h, Sprites / $100 -.loop2 + ld h, (Sprites + $40) / $100 + +.loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40) ld a, l - cp 4 * 16 + cp (Sprites + $40) % $100 jr nc, .done xor a ld [hli], a @@ -47342,10 +46371,11 @@ Function8cfa8: ; 8cfa8 (23:4fa8) ret Function8cfd6:: ; 8cfd6 +; Find if there's any room in the wc314 array, which is 10x16 push de push af - ld hl, wPartyMonMenuIconAnims - ld e, 2 * 4 + 2 ; 4 tiles for each frame, then one frame each for mail and item + ld hl, wc314 + ld e, 10 .loop ld a, [hl] and a @@ -47354,14 +46384,19 @@ Function8cfd6:: ; 8cfd6 add hl, bc dec e jr nz, .loop +; We've reached the end. There is no more room here. +; Return carry. pop af pop de scf ret .found +; Back up the structure address to bc. ld c, l ld b, h +; Value [wc3b4] is initially set to -1. Set it to +; the number of objects loaded into this array. ld hl, wc3b4 inc [hl] ld a, [hl] @@ -47370,6 +46405,7 @@ Function8cfd6:: ; 8cfd6 inc [hl] .initialized +; Get row a of Unknown_8d1c4, copy the pointer into de pop af ld e, a ld d, 0 @@ -47379,28 +46415,34 @@ rept 3 endr ld e, l ld d, h +; Set hl to the first field (field 0) in the current structure. ld hl, 0 add hl, bc +; Load the index. ld a, [wc3b4] ld [hli], a -; read from the table +; Copy the table entry to the next two fields. ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de +; Look up the third field from the table in the wc300 array (10x2). +; Take the value and load it in ld a, [de] - call Function8d109 + call LookUpInwDict_c300 ld [hli], a pop de - +; Set hl to field 4. Kinda pointless, because we're presumably already here. ld hl, $4 add hl, bc +; Load the original value of de into here. ld a, e ld [hli], a ld a, d ld [hli], a +; load 0 into the next four fields xor a rept 2 ld [hli], a @@ -47409,21 +46451,25 @@ endr rept 2 ld [hli], a endr +; load -1 into the next field dec a ld [hli], a +; load 0 into the last five fields xor a rept 4 ld [hli], a endr ld [hl], a +; back up the address of the first field to wc3b8 ld a, c ld [wc3b8], a ld a, b - ld [wc3b9], a + ld [wc3b8 + 1], a ret ; 8d036 Function8d036: ; 8d036 +; Clear the index field of the struct in bc. ld hl, 0 add hl, bc ld [hl], $0 @@ -47432,9 +46478,10 @@ Function8d036: ; 8d036 Function8d03d: ; 8d03d (23:503d) - ld hl, wPartyMonMenuIconAnims +; Clear the index field of every struct in the wc314 array. + ld hl, wc314 ld bc, $10 - ld e, $a + ld e, 10 xor a .loop ld [hl], a @@ -47448,9 +46495,9 @@ LoadBouncingMonIcon: ; 8d04c ; Populate Sprites with the bouncing mon icons call Function8d0ec call Function8d132 - cp $fd + cp EGG jr z, .done - cp $fc + cp NUM_POKEMON + 1 jr z, .almost call Function8d1a2 ld a, [wc3ba] @@ -47585,12 +46632,13 @@ Function8d0ec: ; 8d0ec ret ; 8d109 -Function8d109: ; 8d109 +LookUpInwDict_c300: ; 8d109 +; a = wDict_c300[a] if a in wDict_c300 else 0 push hl push bc - ld hl, wc300 + ld hl, wDict_c300 ld b, a - ld c, $a + ld c, 10 .loop ld a, [hli] cp b @@ -47748,56 +46796,56 @@ endr ; 8d1c4 Unknown_8d1c4: ; 8d1c4 - db $01, $01, $00 ; 00 - db $07, $04, $00 ; 01 - db $08, $05, $05 ; 02 - db $0a, $06, $00 ; 03 - db $0b, $07, $06 ; 04 - db $0c, $08, $06 ; 05 - db $0d, $09, $07 ; 06 - db $0e, $0a, $07 ; 07 - db $10, $0b, $07 ; 08 - db $08, $0c, $05 ; 09 - db $11, $00, $00 ; 0a - db $12, $0d, $08 ; 0b - db $12, $0e, $08 ; 0c - db $12, $0f, $08 ; 0d - db $13, $10, $00 ; 0e - db $15, $00, $00 ; 0f - db $16, $11, $00 ; 10 - db $17, $12, $00 ; 11 - db $18, $12, $00 ; 12 - db $19, $13, $00 ; 13 - db $1a, $14, $00 ; 14 - db $1b, $00, $00 ; 15 - db $1d, $15, $00 ; 16 - db $1e, $00, $00 ; 17 - db $1d, $17, $00 ; 18 - db $1f, $00, $00 ; 19 - db $24, $19, $00 ; 1a - db $25, $00, $00 ; 1b - db $20, $13, $00 ; 1c - db $26, $1a, $00 ; 1d - db $2d, $00, $00 ; 1e - db $2e, $00, $00 ; 1f - db $2f, $00, $00 ; 20 - db $30, $00, $00 ; 21 - db $31, $00, $00 ; 22 - db $32, $1b, $00 ; 23 - db $33, $1c, $00 ; 24 - db $34, $00, $00 ; 25 - db $35, $1d, $00 ; 26 - db $37, $1e, $00 ; 27 - db $38, $1e, $00 ; 28 - db $39, $20, $00 ; 29 - db $3f, $21, $00 ; 2a - db $3e, $22, $00 ; 2b - db $40, $00, $00 ; 2c + db $01, JUMPTABLE_8D24B_FUNCTION_01, $00 ; 00 + db $07, JUMPTABLE_8D24B_FUNCTION_04, $00 ; 01 + db $08, JUMPTABLE_8D24B_FUNCTION_05, $05 ; 02 + db $0a, JUMPTABLE_8D24B_FUNCTION_06, $00 ; 03 + db $0b, JUMPTABLE_8D24B_FUNCTION_07, $06 ; 04 + db $0c, JUMPTABLE_8D24B_FUNCTION_08, $06 ; 05 + db $0d, JUMPTABLE_8D24B_FUNCTION_09, $07 ; 06 + db $0e, JUMPTABLE_8D24B_FUNCTION_0A, $07 ; 07 + db $10, JUMPTABLE_8D24B_FUNCTION_0B, $07 ; 08 + db $08, JUMPTABLE_8D24B_FUNCTION_0C, $05 ; 09 + db $11, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0a + db $12, JUMPTABLE_8D24B_FUNCTION_0D, $08 ; 0b + db $12, JUMPTABLE_8D24B_FUNCTION_0E, $08 ; 0c + db $12, JUMPTABLE_8D24B_FUNCTION_0F, $08 ; 0d + db $13, JUMPTABLE_8D24B_FUNCTION_10, $00 ; 0e + db $15, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0f + db $16, JUMPTABLE_8D24B_FUNCTION_11, $00 ; 10 + db $17, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 11 + db $18, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 12 + db $19, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 13 + db $1a, JUMPTABLE_8D24B_FUNCTION_14, $00 ; 14 + db $1b, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 15 + db $1d, JUMPTABLE_8D24B_FUNCTION_15, $00 ; 16 + db $1e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 17 + db $1d, JUMPTABLE_8D24B_FUNCTION_17, $00 ; 18 + db $1f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 19 + db $24, JUMPTABLE_8D24B_FUNCTION_19, $00 ; 1a + db $25, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1b + db $20, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 1c + db $26, JUMPTABLE_8D24B_FUNCTION_1A, $00 ; 1d + db $2d, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1e + db $2e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1f + db $2f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 20 + db $30, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 21 + db $31, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 22 + db $32, JUMPTABLE_8D24B_FUNCTION_1B, $00 ; 23 + db $33, JUMPTABLE_8D24B_FUNCTION_1C, $00 ; 24 + db $34, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 25 + db $35, JUMPTABLE_8D24B_FUNCTION_1D, $00 ; 26 + db $37, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 27 + db $38, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 28 + db $39, JUMPTABLE_8D24B_FUNCTION_20, $00 ; 29 + db $3f, JUMPTABLE_8D24B_FUNCTION_21, $00 ; 2a + db $3e, JUMPTABLE_8D24B_FUNCTION_22, $00 ; 2b + db $40, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 2c ; 8d24b Function8d24b: ; 8d24b - ld hl, $2 + ld hl, $2 ; field 2, see the second column in the above table add hl, bc ld e, [hl] ld d, 0 @@ -47855,7 +46903,7 @@ endr .one: ; 8d2a2 (23:52a2) ld a, [MenuSelection2] - ld hl, $ + ld hl, 0 add hl, bc cp [hl] jr z, .two @@ -47906,7 +46954,7 @@ endr .three: ; 8d2ea (23:52ea) ld a, [MenuSelection2] - ld hl, $ + ld hl, 0 add hl, bc cp [hl] jr z, .asm_8d2fb @@ -50354,6 +49402,7 @@ Function8e908: ; 8e908 (23:6908) ld [CurIcon], a call Function8e9db ld a, [hObjectStructIndexBuffer] +; and $f \ swap a rept 4 add a endr @@ -50544,7 +49593,7 @@ GetGFXUnlessMobile: ; 8ea3f ; 8ea4a Function8ea4a: ; 8ea4a - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, $6 ld a, [MenuSelection2] ld d, a @@ -50578,7 +49627,7 @@ Function8ea4a: ; 8ea4a ; 8ea71 Function8ea71: ; 8ea71 - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, $6 .loop ld a, [hl] @@ -50600,7 +49649,7 @@ Function8ea71: ; 8ea71 ; 8ea8c (23:6a8c) Function8ea8c: ; 8ea8c - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, $6 ld a, [wd0e3] ld d, a @@ -50699,7 +49748,7 @@ InitClock: ; 90672 (24:4672) ld [hl], $2 hlcoord 4, 9 call DisplayHourOClock - ld c, $a + ld c, 10 call DelayFrames .SetHourLoop @@ -51076,7 +50125,7 @@ Special_SetDayOfWeek: ; 90913 hlcoord 10, 5 call Function909de call Function321c - ld c, $a + ld c, 10 call DelayFrames .asm_9096a call JoyTextDelay @@ -51694,7 +50743,7 @@ Function90e00: ; 90e00 (24:4e00) jr z, .asm_90e0e ld a, $2 ld [hBGMapMode], a - ld c, $3 + ld c, 3 call DelayFrames .asm_90e0e call WaitBGMap @@ -52771,7 +51820,7 @@ Function91492: ; 91492 Function914ab: ; 914ab (24:54ab) - ld hl, wPartyMonMenuIconAnims + 16 + ld hl, wc314 + 16 ld bc, $90 xor a call ByteFill @@ -54785,7 +53834,7 @@ Function92a98: ; 92a98 (24:6a98) ret Function92af9: ; 92af9 (24:6af9) - ld hl, $ + ld hl, 0 add hl, bc ld [hl], $0 ld hl, $3 @@ -55878,7 +54927,7 @@ Function930e9: ; 930e9 (24:70e9) jr nz, .asm_930fd ld hl, UnknownText_9311a call PrintText - ld c, $3c + ld c, 60 call DelayFrames jr .asm_93118 .asm_930fd @@ -56087,7 +55136,7 @@ Function93233: ; 93233 (24:7233) jr nz, .asm_93247 ld a, $2 ld [wcf64], a - ld hl, $ + ld hl, 0 add hl, bc ld [hl], $0 ret @@ -56203,7 +55252,7 @@ Function932e0: ; 932e0 (24:72e0) jr z, .asm_932f1 cp $5 ret nz - ld hl, $ + ld hl, 0 add hl, bc ld [hl], $0 ret @@ -56237,7 +55286,7 @@ Function932fc: ; 932fc (24:72fc) Function93316: ; 93316 push bc - ld c, $10 + ld c, 16 call DelayFrames pop bc ret @@ -58348,7 +57397,7 @@ Functioncbce5: ; cbce5 .asm_cbcf7 call DmgToCgbBGPals - ld c, $4 + ld c, 4 call DelayFrames callba _UpdateTimePals ret @@ -58361,6 +57410,7 @@ Functioncbce5: ; cbce5 ld hl, BGPals ld c, $20 .asm_cbd12 +; RGB 31, 21, 28 ld a, $bc ld [hli], a ld a, $7e @@ -58371,7 +57421,7 @@ Functioncbce5: ; cbce5 ld [rSVBK], a ld a, $1 ld [hCGBPalUpdate], a - ld c, $4 + ld c, 4 call DelayFrames callba _UpdateTimePals ret @@ -58857,13 +57907,13 @@ endr ld [hl], $f5 ld a, $1 ld [hBGMapMode], a - ld c, $14 + ld c, 20 call DelayFrames hlcoord 2, 0 call Functione03c1 ld a, $1 ld [hBGMapMode], a - ld c, $14 + ld c, 20 call DelayFrames hlcoord 2, 6 call Functione03c1 @@ -58880,7 +57930,7 @@ endr ld de, SFX_KINESIS call PlaySFX call Functione0849 - ld c, $4 + ld c, 4 call DelayFrames ld hl, wcf66 ld a, [hl] @@ -58895,10 +57945,10 @@ endr .loop2 push af call Functione0849 - ld c, $4 + ld c, 4 call DelayFrames call ClearSprites - ld c, $4 + ld c, 4 call DelayFrames pop af dec a @@ -59821,7 +58871,7 @@ Functione07eb: ; e07eb .asm_e0804 call Functione049c - ld c, $2 + ld c, 2 call DelayFrames pop bc dec c @@ -61699,7 +60749,7 @@ Functione2128: ; e2128 ld [hli], a inc a ld [hl], a - ld c, $3 + ld c, 3 call DelayFrames ret ; e2142 @@ -61712,7 +60762,7 @@ Functione2142: ; e2142 add hl, bc ld [hli], a ld [hl], a - ld c, $3 + ld c, 3 call DelayFrames ret ; e2152 @@ -61771,38 +60821,41 @@ Functione2183: ; e2183 Functione21a1: ; e21a1 (38:61a1) ld a, [wJumptableIndex] cp $7 - jr nc, .asm_e21c8 + jr nc, .quit call JoyTextDelay ld hl, hJoypadPressed ; $ffa3 ld a, [hl] and A_BUTTON - jr nz, .asm_e21cf + jr nz, .pressed_a ld a, [hl] and D_LEFT - jr nz, .asm_e21d9 + jr nz, .pressed_left ld a, [hl] and D_RIGHT - jr nz, .asm_e21e9 + jr nz, .pressed_right ld a, [hl] and D_UP - jr nz, .asm_e21fa + jr nz, .pressed_up ld a, [hl] and D_DOWN - jr nz, .asm_e220d + jr nz, .pressed_down ret -.asm_e21c8 - ld hl, $ + +.quit + ld hl, 0 add hl, bc ld [hl], $0 ret -.asm_e21cf + +.pressed_a ld hl, $c add hl, bc ld a, [hl] inc a ld [wcf64], a ret -.asm_e21d9 + +.pressed_left ld hl, $6 add hl, bc ld a, [hl] @@ -61814,7 +60867,8 @@ Functione21a1: ; e21a1 (38:61a1) add hl, bc dec [hl] ret -.asm_e21e9 + +.pressed_right ld hl, $6 add hl, bc ld a, [hl] @@ -61826,7 +60880,8 @@ Functione21a1: ; e21a1 (38:61a1) add hl, bc inc [hl] ret -.asm_e21fa + +.pressed_up ld hl, $7 add hl, bc ld a, [hl] @@ -61840,7 +60895,8 @@ Functione21a1: ; e21a1 (38:61a1) sub $9 ld [hl], a ret -.asm_e220d + +.pressed_down ld hl, $7 add hl, bc ld a, [hl] @@ -64210,7 +63266,7 @@ Functione35aa: ; e35aa (38:75aa) hlcoord 0, 4 lb bc, 8, 9 call TextBox - call Function350c + call HandleScrollingMenu ld a, [wcf73] cp $2 jr z, .done @@ -64576,7 +63632,7 @@ _OptionsMenu: ; e41d0 .asm_e422a call Functione455c - ld c, $3 + ld c, 3 call DelayFrames jr .asm_e4217 @@ -65135,30 +64191,30 @@ Functione4579: ; e4579 call DelayFrames callab Copyright call WaitBGMap - ld c, $64 + ld c, 100 call DelayFrames call ClearTileMap callba GBCOnlyScreen call Functione45e8 -.asm_e45c0 +.joy_loop call JoyTextDelay ld a, [hJoyLast] and BUTTONS - jr nz, .asm_e45de + jr nz, .pressed_button ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_e45e3 - call Functione4670 + jr nz, .finish + call PlaceGameFreakPresents callba Function8cf69 call DelayFrame - jr .asm_e45c0 + jr .joy_loop -.asm_e45de +.pressed_button call Functione465e scf ret -.asm_e45e3 +.finish call Functione465e and a ret @@ -65219,16 +64275,16 @@ Functione465e: ; e465e callba Function8cf53 call ClearTileMap call ClearSprites - ld c, $10 + ld c, 16 call DelayFrames ret ; e4670 -Functione4670: ; e4670 +PlaceGameFreakPresents: ; e4670 ld a, [wJumptableIndex] ld e, a ld d, 0 - ld hl, Jumptable_e467f + ld hl, .jumptable rept 2 add hl, de endr @@ -65238,38 +64294,38 @@ endr jp [hl] ; e467f -Jumptable_e467f: ; e467f - dw Functione468c - dw Functione468d - dw Functione46ba - dw Functione46dd +.jumptable: ; e467f + dw PlaceGameFreakPresents_0 + dw PlaceGameFreakPresents_1 + dw PlaceGameFreakPresents_2 + dw PlaceGameFreakPresents_3 ; e4687 -Functione4687: ; e4687 +PlaceGameFreakPresents_AdvanceIndex: ; e4687 ld hl, wJumptableIndex inc [hl] ret ; e468c -Functione468c: ; e468c +PlaceGameFreakPresents_0: ; e468c ret ; e468d -Functione468d: ; e468d +PlaceGameFreakPresents_1: ; e468d ld hl, wcf65 ld a, [hl] cp $20 - jr nc, .asm_e4697 + jr nc, .PlaceGameFreak inc [hl] ret -.asm_e4697 +.PlaceGameFreak ld [hl], 0 ld hl, .GAME_FREAK decoord 5, 10 ld bc, .end - .GAME_FREAK call CopyBytes - call Functione4687 + call PlaceGameFreakPresents_AdvanceIndex ld de, SFX_GAME_FREAK_PRESENTS call PlaySFX ret @@ -65282,21 +64338,21 @@ Functione468d: ; e468d db "@" ; e46ba -Functione46ba: ; e46ba +PlaceGameFreakPresents_2: ; e46ba ld hl, wcf65 ld a, [hl] cp $40 - jr nc, .asm_e46c4 + jr nc, .place_presents inc [hl] ret -.asm_e46c4 +.place_presents ld [hl], 0 ld hl, .presents decoord 7,11 ld bc, .end - .presents call CopyBytes - call Functione4687 + call PlaceGameFreakPresents_AdvanceIndex ret ; e46d6 @@ -65306,15 +64362,15 @@ Functione46ba: ; e46ba db "@" ; e46dd -Functione46dd: ; e46dd +PlaceGameFreakPresents_3: ; e46dd ld hl, wcf65 ld a, [hl] cp $80 - jr nc, .asm_e46e7 + jr nc, .finish inc [hl] ret -.asm_e46e7 +.finish ld hl, wJumptableIndex set 7, [hl] ret @@ -65446,7 +64502,7 @@ endr ld hl, $b add hl, bc inc [hl] - call Functione4687 + call PlaceGameFreakPresents_AdvanceIndex GameFreakLogoScene5: ; e47ab (39:47ab) ret @@ -66464,7 +65520,7 @@ IntroScene20: ; e5019 (39:5019) IntroScene21: ; e505d (39:505d) ; Suicune gets more distant and turns black. call Functione5451 - ld c, $3 + ld c, 3 call DelayFrames xor a ld [hBGMapMode], a @@ -66977,11 +66033,11 @@ Functione541b: ; e541b (39:541b) push af ld a, $6 ld [rSVBK], a - ld hl, Unkn1Pals + ld hl, w6_d000 decoord 0, 0 - ld b, $12 + ld b, SCREEN_HEIGHT .asm_e542a - ld c, $14 + ld c, SCREEN_WIDTH .asm_e542c ld a, [hli] ld [de], a @@ -67091,10 +66147,10 @@ Functione54c2: ; e54c2 (39:54c2) ld a, $6 ld [rSVBK], a push de - ld de, Unkn1Pals + ld de, w6_d000 call Decompress pop hl - ld de, Unkn1Pals + ld de, w6_d000 ld bc, $180 call Request2bpp pop af @@ -67107,10 +66163,10 @@ Functione54de: ; e54de (39:54de) ld a, $6 ld [rSVBK], a push de - ld de, Unkn1Pals + ld de, w6_d000 call Decompress pop hl - ld de, Unkn1Pals + ld de, w6_d000 ld bc, $1ff call Request2bpp pop af @@ -67123,10 +66179,10 @@ Functione54fa: ; e54fa (39:54fa) ld a, $6 ld [rSVBK], a push de - ld de, Unkn1Pals + ld de, w6_d000 call Decompress pop hl - ld de, Unkn1Pals + ld de, w6_d000 ld bc, $140 call Request2bpp pop af @@ -69715,7 +68771,7 @@ Function1040da: ; 1040da ld [rVBK], a ld a, $3 ld [rSVBK], a - ld de, $d800 + ld de, w3_d800 ld a, [hBGMapAddress + 1] ld [rHDMA1], a ld a, [hBGMapAddress] @@ -69740,7 +68796,7 @@ Function104101: ; 104101 ld [rVBK], a ld a, $3 ld [rSVBK], a - ld hl, $d800 + ld hl, w3_d800 call Function10419d ret ; 104110 @@ -70434,7 +69490,7 @@ LoadMapTimeOfDay: ; 104750 ld [wc2ce], a callba Function8c0e5 callba Function8c001 - call Function2173 + call OverworldTextModeSwitch call Function104770 call Function1047a3 ret @@ -72040,7 +71096,7 @@ Function105688: ; 105688 (41:5688) cp $6c jp nz, Function10571a call Function1056eb - ld c, $3c + ld c, 60 call DelayFrames call Function105777 ld hl, Text_10575e @@ -72078,7 +71134,7 @@ endr dec c ret z push bc - ld c, $4 + ld c, 4 call DelayFrames pop bc jr .asm_1056ed |