From 3dcbe0ff55465d3c90490947b1585f2437027986 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 10 Jan 2016 17:44:09 -0500 Subject: [PATCH] Pokegear --- battle/core.asm | 6 +- constants/sprite_constants.asm | 4 +- data/sprite_engine.asm | 2 +- engine/dummy_game.asm | 2 +- engine/events.asm | 4 +- engine/healmachineanim.asm | 46 +- engine/pokegear.asm | 177 +-- engine/prof_oaks_pc.asm | 219 ++++ engine/sprite_anims.asm | 10 +- engine/startmenu.asm | 4 +- engine/time.asm | 8 +- event/celebi.asm | 4 +- event/kurt.asm | 2 +- .../clock.tilemap.rle} | 0 .../phone.tilemap.rle} | 0 .../radio.tilemap.rle} | 0 items/item_effects.asm | 16 +- main.asm | 283 +---- misc/mobile_45.asm | 1031 ++--------------- misc/mobile_45_sprite_engine.asm | 923 +++++++++++++++ wram.asm | 32 +- 21 files changed, 1455 insertions(+), 1318 deletions(-) create mode 100755 engine/prof_oaks_pc.asm rename gfx/{unknown/0915db.tilemap.rle => pokegear/clock.tilemap.rle} (100%) rename gfx/{unknown/09158a.tilemap.rle => pokegear/phone.tilemap.rle} (100%) rename gfx/{unknown/09150d.tilemap.rle => pokegear/radio.tilemap.rle} (100%) create mode 100755 misc/mobile_45_sprite_engine.asm diff --git a/battle/core.asm b/battle/core.asm index 9a464023b..5355df23a 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -4142,7 +4142,7 @@ GetEnemyMonDVs: ; 3da97 ld a, [EnemySubStatus5] bit SUBSTATUS_TRANSFORMED, a ret z - ld hl, wc6f2 + ld hl, wEnemyBackupDVs ld a, [wBattleMode] dec a ret z @@ -5009,7 +5009,7 @@ DrawEnemyHUD: ; 3e043 ld a, [EnemySubStatus5] bit SUBSTATUS_TRANSFORMED, a jr z, .ok - ld hl, wc6f2 + ld hl, wEnemyBackupDVs .ok ld a, [hli] ld [de], a @@ -6336,7 +6336,7 @@ LoadEnemyMon: ; 3e8eb jr z, .InitDVs ; Unknown - ld hl, wc6f2 + ld hl, wEnemyBackupDVs ld de, EnemyMonDVs ld a, [hli] ld [de], a diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 13df52bd6..70399052f 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -477,14 +477,14 @@ MAX_OUTDOOR_SPRITES EQU 23 const SPRITE_ANIM_INDEX_02 const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO const SPRITE_ANIM_INDEX_04 - const SPRITE_ANIM_INDEX_05 + const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR const SPRITE_ANIM_INDEX_SLOT_GOLEM const SPRITE_ANIM_INDEX_SLOTS_CHANSEY const SPRITE_ANIM_INDEX_SLOTS_EGG const SPRITE_ANIM_INDEX_09 const SPRITE_ANIM_INDEX_RED_WALK const SPRITE_ANIM_INDEX_0B - const SPRITE_ANIM_INDEX_0C + const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR const SPRITE_ANIM_INDEX_0D const SPRITE_ANIM_INDEX_0E const SPRITE_ANIM_INDEX_0F diff --git a/data/sprite_engine.asm b/data/sprite_engine.asm index 715ff309a..4396e1745 100755 --- a/data/sprite_engine.asm +++ b/data/sprite_engine.asm @@ -66,7 +66,7 @@ SpriteAnimFrameData: ; 8d6e6 dw .Frameset_40 ; 40 celebi on the left dw .Frameset_41 ; 41 celebi on the right ; 8d76a - ; OAM idx (see SpriteAnimOAMData), flip flags/duration +; OAM idx (see SpriteAnimOAMData), flip flags/duration .Frameset_00: db $00, $20 db -1 diff --git a/engine/dummy_game.asm b/engine/dummy_game.asm index 4e2e189da..116ad9439 100755 --- a/engine/dummy_game.asm +++ b/engine/dummy_game.asm @@ -109,7 +109,7 @@ endr .spawn_object depixel 6, 3, 4, 4 - ld a, SPRITE_ANIM_INDEX_0C + ld a, SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR call _InitSpriteAnimStruct ld a, 5 ld [wDummyGameNumberTriesRemaining], a diff --git a/engine/events.asm b/engine/events.asm index 9b4062aea..a8a57f547 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -454,7 +454,7 @@ DoMapTrigger: ; 968ec ld h, [hl] ld l, a rept 4 - add hl,de + add hl, de endr call GetMapScriptHeaderBank @@ -1031,7 +1031,7 @@ DoPlayerEvent: ; 96beb ld b, 0 ld hl, PlayerEventScriptPointers rept 3 - add hl,bc + add hl, bc endr ld a, [hli] ld [ScriptBank], a diff --git a/engine/healmachineanim.asm b/engine/healmachineanim.asm index 57f03a8df..b4e0be1cf 100755 --- a/engine/healmachineanim.asm +++ b/engine/healmachineanim.asm @@ -19,7 +19,7 @@ HealMachineAnim: ; 12324 .DoJumptableFunctions: ; 1233e xor a - ld [wd1ec], a + ld [Buffer3], a .jumpable_loop ld a, [Buffer1] ld e, a @@ -31,10 +31,10 @@ endr ld a, [hli] ld h, [hl] ld l, a - ld a, [wd1ec] + ld a, [Buffer3] ld e, a inc a - ld [wd1ec], a + ld [Buffer3], a add hl, de ld a, [hl] cp 5 @@ -81,14 +81,14 @@ endr .PC_LoadBallsOntoMachine: ; 12393 ld hl, Sprites + $80 - ld de, .PC_ElmsLab_TileMap + ld de, .PC_ElmsLab_OAM call .PlaceHealingMachineTile call .PlaceHealingMachineTile jr .LoadBallsOntoMachine .HOF_LoadBallsOntoMachine: ; 123a1 ld hl, Sprites + $80 - ld de, .HOF_TileMap + ld de, .HOF_OAM .LoadBallsOntoMachine: ; 123a7 ld a, [PartyCount] @@ -126,28 +126,28 @@ endr ret ; 123dc -.PC_ElmsLab_TileMap: ; 123dc - db $20, $22, $7c, $16 - db $20, $26, $7c, $16 - db $26, $20, $7d, $16 - db $26, $28, $7d, $36 - db $2b, $20, $7d, $16 - db $2b, $28, $7d, $36 - db $30, $20, $7d, $16 - db $30, $28, $7d, $36 +.PC_ElmsLab_OAM: ; 123dc + dsprite 4, 0, 4, 2, $7c, $16 + dsprite 4, 0, 4, 6, $7c, $16 + dsprite 4, 6, 4, 0, $7d, $16 + dsprite 4, 6, 5, 0, $7d, $36 ; xflip + dsprite 5, 3, 4, 0, $7d, $16 + dsprite 5, 3, 5, 0, $7d, $36 ; xflip + dsprite 6, 0, 4, 0, $7d, $16 + dsprite 6, 0, 5, 0, $7d, $36 ; xflip ; 123fc .HealMachineGFX: ; 123fc INCBIN "gfx/unknown/0123fc.2bpp" ; 1241c -.HOF_TileMap: ; 1241c - db $3c, $51, $7d, $16 - db $3c, $56, $7d, $16 - db $3b, $4d, $7d, $16 - db $3b, $5a, $7d, $16 - db $39, $49, $7d, $16 - db $39, $5d, $7d, $16 +.HOF_OAM: ; 1241c + dsprite 7, 4, 10, 1, $7d, $16 + dsprite 7, 4, 10, 6, $7d, $16 + dsprite 7, 3, 9, 5, $7d, $16 + dsprite 7, 3, 11, 2, $7d, $16 + dsprite 7, 1, 9, 1, $7d, $16 + dsprite 7, 1, 11, 5, $7d, $16 ; 12434 .LoadPalettes: ; 12434 @@ -241,10 +241,10 @@ endr .PlaceHealingMachineTile: ; 124a3 push bc ld a, [Buffer1] - lb bc, $10, $20 + bcpixel 2, 4 cp $1 ; ElmsLab jr z, .okay - lb bc, $00, $00 + bcpixel 0, 0 .okay ld a, [de] diff --git a/engine/pokegear.asm b/engine/pokegear.asm index c777369f4..939507429 100755 --- a/engine/pokegear.asm +++ b/engine/pokegear.asm @@ -11,7 +11,7 @@ PokeGear: ; 90b8d (24:4b8d) push af xor a ld [VramState], a - call Function90bea + call .InitTilemap call DelayFrame .loop call UpdateTime @@ -41,10 +41,10 @@ PokeGear: ; 90b8d (24:4b8d) ld [hBGMapAddress + 1], a ld a, $90 ld [hWY], a - call Function91492 + call ExitPokegearRadio_HandleMusic ret -Function90bea: ; 90bea (24:4bea) +.InitTilemap: ; 90bea (24:4bea) call ClearBGPalettes call ClearTileMap call ClearSprites @@ -54,14 +54,14 @@ Function90bea: ; 90bea (24:4bea) ld [hSCX], a ld a, $7 ld [hWX], a - call Function90c4e + call Pokegear_LoadGFX callba ClearSpriteAnims call InitPokegearModeIndicatorArrow ld a, 8 call SkipMusic ld a, $e3 ld [rLCDC], a - call Function90d70 + call TownMap_InitCursorAndPlayerIconPositions xor a ld [wJumptableIndex], a ld [wcf64], a @@ -85,7 +85,7 @@ Function90bea: ; 90bea (24:4bea) call DmgToCgbObjPal0 ret -Function90c4e: ; 90c4e +Pokegear_LoadGFX: ; 90c4e call ClearVBank1 ld hl, TownMapGFX ld de, VTiles2 @@ -148,25 +148,25 @@ InitPokegearModeIndicatorArrow: ; 90d32 (24:4d32) ld [hl], $0 ret -Function90d41: ; 90d41 (24:4d41) +AnimatePokegearModeIndicatorArrow: ; 90d41 (24:4d41) ld hl, wcf64 ld e, [hl] ld d, 0 - ld hl, Unknown_90d52 + ld hl, .XCoords add hl, de ld a, [hl] - ld hl, $6 + ld hl, SPRITEANIMSTRUCT_XOFFSET add hl, bc ld [hl], a ret ; 90d52 (24:4d52) -Unknown_90d52: ; 90d52 +.XCoords: ; 90d52 db $00, $10, $20, $30 ; 90d56 -Function90d56: ; 90d56 +TownMap_GetCurrentLandmark: ; 90d56 ld a, [MapGroup] ld b, a ld a, [MapNumber] @@ -183,7 +183,7 @@ Function90d56: ; 90d56 ; 90d70 -Function90d70: ; 90d70 (24:4d70) +TownMap_InitCursorAndPlayerIconPositions: ; 90d70 (24:4d70) ld a, [MapGroup] ld b, a ld a, [MapNumber] @@ -238,7 +238,7 @@ InitPokegearTilemap: ; 90da8 (24:4da8) jp [hl] .return_from_jumptable - call Function90eb0 + call Pokegear_FinishTilemap callba TownMapPals ld a, [wcf65] and a @@ -269,12 +269,12 @@ InitPokegearTilemap: ; 90da8 (24:4da8) .UpdateBGMap: ; 90e00 (24:4e00) ld a, [hCGB] and a - jr z, .asm_90e0e + jr z, .dmg ld a, $2 ld [hBGMapMode], a ld c, 3 call DelayFrames -.asm_90e0e +.dmg call WaitBGMap ret @@ -329,7 +329,7 @@ InitPokegearTilemap: ; 90da8 (24:4da8) hlcoord 19, 2 ld [hl], $17 ld a, [wTownMapCursorLandmark] - call Function910b4 + call PokegearMap_UpdateLandmarkName ret ; 90e72 @@ -350,13 +350,13 @@ InitPokegearTilemap: ; 90da8 (24:4da8) hlcoord 0, 12 lb bc, 4, 18 call TextBox - call Function90e98 + call .PlacePhoneBars call PokegearPhone_UpdateDisplayList ret ; 90e98 -Function90e98: ; 90e98 (24:4e98) +.PlacePhoneBars: ; 90e98 (24:4e98) hlcoord 17, 1 ld a, $3c ld [hli], a @@ -372,7 +372,7 @@ Function90e98: ; 90e98 (24:4e98) ld [hl], $3f ret -Function90eb0: ; 90eb0 (24:4eb0) +Pokegear_FinishTilemap: ; 90eb0 (24:4eb0) hlcoord 0, 0 ld bc, $8 ld a, $4f @@ -384,32 +384,32 @@ Function90eb0: ; 90eb0 (24:4eb0) ld de, wPokegearFlags ld a, [de] bit 0, a - call nz, Function90ee4 + call nz, .PlaceMapIcon ld a, [de] bit 2, a - call nz, Function90eeb + call nz, .PlacePhoneIcon ld a, [de] bit 1, a - call nz, Function90ef2 + call nz, .PlaceRadioIcon hlcoord 0, 0 ld a, $46 - call Function90ef7 + call .PlacePokegearCardIcon ret -Function90ee4: ; 90ee4 (24:4ee4) +.PlaceMapIcon: ; 90ee4 (24:4ee4) hlcoord 2, 0 ld a, $40 - jr Function90ef7 + jr .PlacePokegearCardIcon -Function90eeb: ; 90eeb (24:4eeb) +.PlacePhoneIcon: ; 90eeb (24:4eeb) hlcoord 4, 0 ld a, $44 - jr Function90ef7 + jr .PlacePokegearCardIcon -Function90ef2: ; 90ef2 (24:4ef2) +.PlaceRadioIcon: ; 90ef2 (24:4ef2) hlcoord 6, 0 ld a, $42 -Function90ef7: ; 90ef7 (24:4ef7) +.PlacePokegearCardIcon: ; 90ef7 (24:4ef7) ld [hli], a inc a ld [hld], a @@ -454,7 +454,7 @@ PokegearClock_Init: ; 90f2d (24:4f2d) call PrintText ld hl, wJumptableIndex inc [hl] - call Function91492 + call ExitPokegearRadio_HandleMusic ret PokegearClock_Joypad: ; 90f3e (24:4f3e) @@ -544,7 +544,7 @@ PokegearMap_CheckRegion: ; 90fb4 (24:4fb4) ld a, 5 .done ld [wJumptableIndex], a - call Function91492 + call ExitPokegearRadio_HandleMusic ret PokegearMap_Init: ; 90fcd (24:4fcd) @@ -644,13 +644,13 @@ PokegearMap_ContinueMap: ; 90ff2 (24:4ff2) dec [hl] .done_dpad ld a, [wTownMapCursorLandmark] - call Function910b4 + call PokegearMap_UpdateLandmarkName ld a, [wPokegearMapCursorObjectPointer] ld c, a ld a, [wPokegearMapCursorObjectPointer + 1] ld b, a ld a, [wTownMapCursorLandmark] - call Function910d4 + call PokegearMap_UpdateCursorPosition ret PokegearMap_InitPlayerIcon: ; 9106a @@ -695,13 +695,13 @@ PokegearMap_InitCursor: ; 91098 ld [hl], SPRITE_ANIM_SEQ_NULL pop af push bc - call Function910d4 + call PokegearMap_UpdateCursorPosition pop bc ret ; 910b4 -Function910b4: ; 910b4 +PokegearMap_UpdateLandmarkName: ; 910b4 push af hlcoord 8, 0 lb bc, 2, 12 @@ -718,7 +718,7 @@ Function910b4: ; 910b4 ; 910d4 -Function910d4: ; 910d4 +PokegearMap_UpdateCursorPosition: ; 910d4 push bc ld e, a callba GetLandmarkCoords @@ -782,23 +782,23 @@ PokegearRadio_Joypad: ; 91112 (24:5112) .left ld a, [wPokegearFlags] bit 2, a - jr z, .asm_9113b + jr z, .no_phone ld c, $7 ld b, $2 - jr .asm_9114c + jr .switch_page -.asm_9113b +.no_phone ld a, [wPokegearFlags] bit 0, a - jr z, .asm_91148 + jr z, .no_map ld c, $2 ld b, $1 - jr .asm_9114c + jr .switch_page -.asm_91148 +.no_map ld c, $0 ld b, $0 -.asm_9114c +.switch_page call Pokegear_SwitchPage ret @@ -815,7 +815,7 @@ PokegearPhone_Init: ; 91156 (24:5156) ld [wPokegearPhoneCursorPosition], a ld [wPokegearPhoneSelectedPerson], a call InitPokegearTilemap - call Function91492 + call ExitPokegearRadio_HandleMusic ld hl, PokegearText_WhomToCall call PrintText ret @@ -841,15 +841,15 @@ PokegearPhone_Joypad: ; 91171 (24:5171) .left ld a, [wPokegearFlags] bit 0, a - jr z, .asm_9119c + jr z, .no_map ld c, $2 ld b, $1 - jr .asm_911ac + jr .switch_page -.asm_9119c +.no_map ld c, $0 ld b, $0 - jr .asm_911ac + jr .switch_page .right ld a, [wPokegearFlags] @@ -857,7 +857,7 @@ PokegearPhone_Joypad: ; 91171 (24:5171) ret z ld c, $b ld b, $3 -.asm_911ac +.switch_page call Pokegear_SwitchPage ret @@ -886,12 +886,12 @@ PokegearPhone_Joypad: ; 91171 (24:5171) call AddNTimes ld [hl], "▷" call PokegearPhoneContactSubmenu - jr c, .asm_911e5 + jr c, .quit_submenu ld hl, wJumptableIndex inc [hl] ret -.asm_911e5 +.quit_submenu ld a, $8 ld [wJumptableIndex], a ret @@ -899,19 +899,19 @@ PokegearPhone_Joypad: ; 91171 (24:5171) PokegearPhone_MakePhoneCall: ; 911eb (24:51eb) call GetMapHeaderPhoneServiceNybble and a - jr nz, .asm_91234 + jr nz, .no_service ld hl, Options res NO_TEXT_SCROLL, [hl] xor a ld [hInMenu], a ld de, SFX_CALL call PlaySFX - ld hl, UnknownText_0x9124c + ld hl, .dotdotdot call PrintText call WaitSFX ld de, SFX_CALL call PlaySFX - ld hl, UnknownText_0x9124c + ld hl, .dotdotdot call PrintText call WaitSFX ld a, [wPokegearPhoneSelectedPerson] @@ -928,9 +928,9 @@ PokegearPhone_MakePhoneCall: ; 911eb (24:51eb) inc [hl] ret -.asm_91234 +.no_service callba Phone_NoSignal - ld hl, OutOfServiceAreaText + ld hl, .OutOfServiceArea call PrintText ld a, $8 ld [wJumptableIndex], a @@ -940,14 +940,14 @@ PokegearPhone_MakePhoneCall: ; 911eb (24:51eb) ; 9124c (24:524c) -UnknownText_0x9124c: ; 0x9124c +.dotdotdot: ; 0x9124c ; text_jump UnknownText_0x1c5824 db "@" ; 0x91251 -OutOfServiceAreaText: ; 0x91251 +.OutOfServiceArea: ; 0x91251 ; You're out of the service area. text_jump UnknownText_0x1c5827 db "@" @@ -1336,17 +1336,17 @@ Pokegear_SwitchPage: ; 91480 (24:5480) call DeleteSpriteAnimStruct2ToEnd ret -Function91492: ; 91492 +ExitPokegearRadio_HandleMusic: ; 91492 ld a, [wPokegearRadioMusicPlaying] cp $fe - jr z, .asm_914a3 + jr z, .restart_map_music cp $ff call z, EnterMapMusic xor a ld [wPokegearRadioMusicPlaying], a ret -.asm_914a3 +.restart_map_music call RestartMapMusic xor a ld [wPokegearRadioMusicPlaying], a @@ -1364,8 +1364,10 @@ DeleteSpriteAnimStruct2ToEnd: ; 914ab (24:54ab) ret Pokegear_LoadTilemapRLE: ; 914bb (24:54bb) + ; Format: repeat count, tile ID + ; Terminated with $FF hlcoord 0, 0 -.row +.loop ld a, [de] cp $ff ret z @@ -1375,11 +1377,11 @@ Pokegear_LoadTilemapRLE: ; 914bb (24:54bb) ld c, a inc de ld a, b -.col +.load ld [hli], a dec c - jr nz, .col - jr .row + jr nz, .load + jr .loop ; 914ce (24:54ce) @@ -1409,11 +1411,11 @@ INCBIN "gfx/misc/pokegear_sprites.2bpp.lz" ; 9150d RadioTilemapRLE: ; 9150d -INCBIN "gfx/unknown/09150d.tilemap.rle" +INCBIN "gfx/pokegear/radio.tilemap.rle" PhoneTilemapRLE: ; 9158a -INCBIN "gfx/unknown/09158a.tilemap.rle" +INCBIN "gfx/pokegear/phone.tilemap.rle" ClockTilemapRLE: ; 915db -INCBIN "gfx/unknown/0915db.tilemap.rle" +INCBIN "gfx/pokegear/clock.tilemap.rle" ; 9163e _UpdateRadioStation: ; 9163e (24:563e) @@ -1498,7 +1500,7 @@ UpdateRadioStation: ; 9166f (24:566f) ; 916a1 (24:56a1) -Function916a1: ; 916a1 +; XXX ld [wPokegearRadioChannelBank], a ld a, [hli] ld [wPokegearRadioChannelAddr], a @@ -1846,13 +1848,13 @@ _TownMap: ; 9191c call ClearTileMap call ClearSprites call DisableLCD - call Function90c4e + call Pokegear_LoadGFX callba ClearSpriteAnims ld a, 8 call SkipMusic ld a, $e3 ld [rLCDC], a - call Function90d56 + call TownMap_GetCurrentLandmark ld [wd002], a ld [wd003], a xor a @@ -1950,13 +1952,13 @@ _TownMap: ; 9191c .next push de ld a, [wd003] - call Function910b4 + call PokegearMap_UpdateLandmarkName ld a, [wd004] ld c, a ld a, [wd005] ld b, a ld a, [wd003] - call Function910d4 + call PokegearMap_UpdateCursorPosition pop de jr .loop2 ; 91a04 @@ -1964,14 +1966,13 @@ _TownMap: ; 9191c .InitTilemap: ; 91a04 ld a, [wd002] cp KANTO_LANDMARK - jr nc, .kanto + jr nc, .kanto2 ld e, $0 - jr .okay + jr .okay_tilemap -.kanto +.kanto2 ld e, $1 - -.okay +.okay_tilemap callba PokegearMap ld a, $7 ld bc, 6 @@ -1992,7 +1993,7 @@ _TownMap: ; 9191c hlcoord 19, 2 ld [hl], $17 ld a, [wd003] - call Function910b4 + call PokegearMap_UpdateLandmarkName callba TownMapPals ret ; 91a53 @@ -2025,7 +2026,7 @@ PlayRadio: ; 91a53 .stop pop af ld [Options], a - call Function91492 + call ExitPokegearRadio_HandleMusic ret ; 91a87 @@ -2687,7 +2688,7 @@ _Area: ; 91d11 .ShowPlayerLoop ld a, [de] cp $80 - jr z, .copy + jr z, .clear_oam add b ld [hli], a inc de @@ -2711,9 +2712,9 @@ _Area: ; 91d11 pop bc jr .ShowPlayerLoop -.copy - ld hl, Sprites + $10 - ld bc, SpritesEnd - (Sprites + $10) +.clear_oam + ld hl, Sprites + 4 * 4 + ld bc, SpritesEnd - (Sprites + 4 * 4) xor a call ByteFill ret @@ -2980,8 +2981,8 @@ PokedexNestIconGFX: ; 922d1 INCBIN "gfx/pokegear/dexmap_nest_icon.2bpp" FlyMapLabelBorderGFX: ; 922e1 INCBIN "gfx/pokegear/flymap_label_border.2bpp" -Function92311: ; 92311 -; unreferenced + +; XXX xor a ld [wd002], a call ClearBGPalettes @@ -3034,7 +3035,7 @@ Function92311: ; 92311 .pressedB ld a, -1 - jr .asm_9239f + jr .finished_a_b .pressedA ld a, [wd002] @@ -3044,7 +3045,7 @@ Function92311: ; 92311 ld de, Flypoints + 1 add hl, de ld a, [hl] -.asm_9239f +.finished_a_b ld [wd002], a pop af ld [hInMenu], a diff --git a/engine/prof_oaks_pc.asm b/engine/prof_oaks_pc.asm new file mode 100755 index 000000000..05ff2b691 --- /dev/null +++ b/engine/prof_oaks_pc.asm @@ -0,0 +1,219 @@ + +ProfOaksPC: ; 0x265d3 + ld hl, OakPCText1 + call MenuTextBox + call YesNoBox + jr c, .shutdown + call ProfOaksPCBoot ; player chose "yes"? +.shutdown + ld hl, OakPCText4 + call PrintText + call JoyWaitAorB + call ExitMenu + ret + +ProfOaksPCBoot ; 0x265ee + ld hl, OakPCText2 + call PrintText + call Rate + call PlaySFX ; sfx loaded by previous Rate function call + call JoyWaitAorB + call WaitSFX + ret + +ProfOaksPCRating: ; 0x26601 + call Rate + push de + ld de, MUSIC_NONE + call PlayMusic + pop de + call PlaySFX + call JoyWaitAorB + call WaitSFX + ret + +Rate: ; 0x26616 +; calculate Seen/Owned + ld hl, PokedexSeen + ld b, EndPokedexSeen - PokedexSeen + call CountSetBits + ld [wd002], a + ld hl, PokedexCaught + ld b, EndPokedexCaught - PokedexCaught + call CountSetBits + ld [wd003], a + +; print appropriate rating + call .UpdateRatingBuffers + ld hl, OakPCText3 + call PrintText + call JoyWaitAorB + ld a, [wd003] + ld hl, OakRatings + call FindOakRating + push de + call PrintText + pop de + ret + +.UpdateRatingBuffers: ; 0x26647 + ld hl, StringBuffer3 + ld de, wd002 + call .UpdateRatingBuffer + ld hl, StringBuffer4 + ld de, wd003 + call .UpdateRatingBuffer + ret + +.UpdateRatingBuffer: ; 0x2665a + push hl + ld a, "@" + ld bc, ITEM_NAME_LENGTH + call ByteFill + pop hl + lb bc, PRINTNUM_RIGHTALIGN | 1, 3 + call PrintNum + ret + +FindOakRating: ; 0x2666b +; return sound effect in de +; return text pointer in hl + nop + ld c, a +.loop + ld a, [hli] + cp c + jr nc, .match +rept 4 + inc hl +endr + jr .loop + +.match + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + ret + +OakRatings: ; 0x2667f +oakrating: MACRO + db \1 + dw \2, \3 +endm + +; if you caught at most this many, play this sound, load this text + oakrating 9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01 + oakrating 19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02 + oakrating 34, SFX_DEX_FANFARE_20_49, OakRating03 + oakrating 49, SFX_DEX_FANFARE_20_49, OakRating04 + oakrating 64, SFX_DEX_FANFARE_50_79, OakRating05 + oakrating 79, SFX_DEX_FANFARE_50_79, OakRating06 + oakrating 94, SFX_DEX_FANFARE_80_109, OakRating07 + oakrating 109, SFX_DEX_FANFARE_80_109, OakRating08 + oakrating 124, SFX_CAUGHT_MON, OakRating09 + oakrating 139, SFX_CAUGHT_MON, OakRating10 + oakrating 154, SFX_DEX_FANFARE_140_169, OakRating11 + oakrating 169, SFX_DEX_FANFARE_140_169, OakRating12 + oakrating 184, SFX_DEX_FANFARE_170_199, OakRating13 + oakrating 199, SFX_DEX_FANFARE_170_199, OakRating14 + oakrating 214, SFX_DEX_FANFARE_200_229, OakRating15 + oakrating 229, SFX_DEX_FANFARE_200_229, OakRating16 + oakrating 239, SFX_DEX_FANFARE_230_PLUS, OakRating17 + oakrating 248, SFX_DEX_FANFARE_230_PLUS, OakRating18 + oakrating 255, SFX_DEX_FANFARE_230_PLUS, OakRating19 + +OakPCText1: ; 0x266de + text_jump _OakPCText1 + db "@" + +OakPCText2: ; 0x266e3 + text_jump _OakPCText2 + db "@" + +OakPCText3: ; 0x266e8 + text_jump _OakPCText3 + db "@" + +OakRating01: + text_jump _OakRating01 + db "@" + +OakRating02: + text_jump _OakRating02 + db "@" + +OakRating03: + text_jump _OakRating03 + db "@" + +OakRating04: + text_jump _OakRating04 + db "@" + +OakRating05: + text_jump _OakRating05 + db "@" + +OakRating06: + text_jump _OakRating06 + db "@" + +OakRating07: + text_jump _OakRating07 + db "@" + +OakRating08: + text_jump _OakRating08 + db "@" + +OakRating09: + text_jump _OakRating09 + db "@" + +OakRating10: + text_jump _OakRating10 + db "@" + +OakRating11: + text_jump _OakRating11 + db "@" + +OakRating12: + text_jump _OakRating12 + db "@" + +OakRating13: + text_jump _OakRating13 + db "@" + +OakRating14: + text_jump _OakRating14 + db "@" + +OakRating15: + text_jump _OakRating15 + db "@" + +OakRating16: + text_jump _OakRating16 + db "@" + +OakRating17: + text_jump _OakRating17 + db "@" + +OakRating18: + text_jump _OakRating18 + db "@" + +OakRating19: + text_jump _OakRating19 + db "@" + +OakPCText4: ; 0x2674c + text_jump _OakPCText4 + db "@" diff --git a/engine/sprite_anims.asm b/engine/sprite_anims.asm index f0a915312..50eb61df6 100755 --- a/engine/sprite_anims.asm +++ b/engine/sprite_anims.asm @@ -19,14 +19,14 @@ DoAnimFrame: ; 8d24b dw .two ; bouncing mon icon, selected dw .three ; bouncing mon icon, menu open dw .four - dw .five + dw .namingscreencursor dw .GameFreakLogo ; Game Freak logo dw .seven dw .eight dw .SlotsGolem ; Something to do with slots dw .SlotsChansey ; Something to do with slots dw .SlotsChanseyEgg ; Something to do with slots - dw .twelve ; blinking cursor + dw .mailcompositioncursor ; blinking cursor dw .thirteen dw .fourteen dw .fifteen @@ -217,11 +217,11 @@ DoAnimFrame: ; 8d24b ld [hl], a ret -.five: ; 8d36c (23:536c) +.namingscreencursor: ; 8d36c (23:536c) callab NamingScreen_AnimateCursor ret -.twelve: ; 8d373 (23:5373) +.mailcompositioncursor: ; 8d373 (23:5373) callab ComposeMail_AnimateCursor ret @@ -409,7 +409,7 @@ DoAnimFrame: ; 8d24b ret .fifteen: ; 8d475 (23:5475) - callab Function90d41 + callab AnimatePokegearModeIndicatorArrow ret .fourteen: ; 8d47c (23:547c) diff --git a/engine/startmenu.asm b/engine/startmenu.asm index 6ba60af36..25a3eee39 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -393,7 +393,7 @@ endr ld hl, StatusFlags2 bit 2, [hl] ; bug catching contest ret z - callba Function24bdc + callba StartMenu_DrawBugContestStatusBox ret ; 128de @@ -403,7 +403,7 @@ endr jr nz, .contest ret .contest - callba Function24be7 + callba StartMenu_PrintBugContestStatus ret ; 128ed diff --git a/engine/time.asm b/engine/time.asm index 542141198..4240522c2 100755 --- a/engine/time.asm +++ b/engine/time.asm @@ -200,11 +200,9 @@ CheckPokerusTick:: ; 114e7 call CalcDaysSince call GetDaysSince and a - jr z, .done - + jr z, .done ; not even a day has passed since game start ld b, a callba ApplyPokerusTick - .done xor a ret @@ -229,13 +227,13 @@ CheckUnusedTwoDayTimer: ; 1150c ret ; 1151c -Function1151c: ; unreferenced +; XXX ld hl, DailyFlags set 2, [hl] ret ; 11522 -Function11522: ; unreferenced +; XXX and a ld hl, DailyFlags bit 2, [hl] diff --git a/event/celebi.asm b/event/celebi.asm index d9c188f1a..3e01e31f6 100755 --- a/event/celebi.asm +++ b/event/celebi.asm @@ -61,8 +61,8 @@ endr inc a dec c jr nz, .OAMloop - ld hl, Sprites + $10 - ld bc, $90 + ld hl, Sprites + 4 * 4 + ld bc, 36 * 4 xor a call ByteFill ret diff --git a/event/kurt.asm b/event/kurt.asm index d9239b7fa..1473e4631 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -140,7 +140,7 @@ Kurt_SelectQuantity: ; 880c2 call .PlaceApricornName call PlaceApricornQuantity call ApplyTilemap - callba Function27a28 + callba Kurt_SelectQuantity_InterpretJoypad jr nc, .loop push bc diff --git a/gfx/unknown/0915db.tilemap.rle b/gfx/pokegear/clock.tilemap.rle similarity index 100% rename from gfx/unknown/0915db.tilemap.rle rename to gfx/pokegear/clock.tilemap.rle diff --git a/gfx/unknown/09158a.tilemap.rle b/gfx/pokegear/phone.tilemap.rle similarity index 100% rename from gfx/unknown/09158a.tilemap.rle rename to gfx/pokegear/phone.tilemap.rle diff --git a/gfx/unknown/09150d.tilemap.rle b/gfx/pokegear/radio.tilemap.rle similarity index 100% rename from gfx/unknown/09150d.tilemap.rle rename to gfx/pokegear/radio.tilemap.rle diff --git a/items/item_effects.asm b/items/item_effects.asm index 8cabdc7e8..2831c9407 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -452,23 +452,23 @@ endr push af set SUBSTATUS_TRANSFORMED, [hl] bit SUBSTATUS_TRANSFORMED, a - jr nz, .asm_ea13 - jr .asm_ea1a + jr nz, .ditto + jr .not_ditto -.asm_ea13 +.ditto ld a, DITTO ld [TempEnemyMonSpecies], a - jr .asm_ea27 + jr .load_data -.asm_ea1a - set 3, [hl] - ld hl, wc6f2 +.not_ditto + set SUBSTATUS_TRANSFORMED, [hl] + ld hl, wEnemyBackupDVs ld a, [EnemyMonDVs] ld [hli], a ld a, [EnemyMonDVs + 1] ld [hl], a -.asm_ea27 +.load_data ld a, [TempEnemyMonSpecies] ld [CurPartySpecies], a ld a, [EnemyMonLevel] diff --git a/main.asm b/main.asm index 3447ca781..dcae40bcb 100644 --- a/main.asm +++ b/main.asm @@ -5279,29 +5279,27 @@ Script_JumpStdFromRAM: ; 0x1369a INCLUDE "event/bug_contest_judging.asm" -; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured. ApplyPokerusTick: ; 13988 +; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured. ld hl, PartyMon1PokerusStatus ; PartyMon1 + MON_PKRS ld a, [PartyCount] and a - ret z + ret z ; make sure it's not wasting time on an empty party ld c, a .loop ld a, [hl] - and $f - jr z, .does_not_have_pokerus - sub b - jr nc, .ok + and $f ; lower nybble is the number of days remaining + jr z, .next ; if already 0, skip + sub b ; subtract the number of days + jr nc, .ok ; max(result, 0) xor a - .ok - ld d, a + ld d, a ; back up this value because we need to preserve the strain (upper nybble) ld a, [hl] and $f0 add d - ld [hl], a - -.does_not_have_pokerus + ld [hl], a ; this prevents a cured pokemon from recontracting pokerus +.next ld de, PARTYMON_STRUCT_LENGTH add hl, de dec c @@ -5678,44 +5676,44 @@ Function24b8f: ; 24b8f .booru_ko: ; 24bd4 db "ボール こ@" -Function24bdc: ; 24bdc +StartMenu_DrawBugContestStatusBox: ; 24bdc hlcoord 0, 0 - ld b, $5 - ld c, $11 + ld b, 5 + ld c, 17 call TextBox ret -Function24be7: ; 24be7 +StartMenu_PrintBugContestStatus: ; 24be7 ld hl, Options ld a, [hl] push af - set 4, [hl] - call Function24bdc + set NO_TEXT_SCROLL, [hl] + call StartMenu_DrawBugContestStatusBox hlcoord 1, 5 - ld de, String24c52 + ld de, .Balls_EN call PlaceString hlcoord 8, 5 - ld de, wSafariBallsRemaining + ld de, wParkBallsRemaining lb bc, PRINTNUM_RIGHTALIGN | 1, 2 call PrintNum hlcoord 1, 1 - ld de, String24c4b + ld de, .CAUGHT call PlaceString ld a, [wContestMon] and a - ld de, String24c59 - jr z, .asm_24c1e + ld de, .None + jr z, .no_contest_mon ld [wd265], a call GetPokemonName -.asm_24c1e +.no_contest_mon hlcoord 8, 1 call PlaceString ld a, [wContestMon] and a - jr z, .asm_24c3e + jr z, .skip_level hlcoord 1, 3 - ld de, String24c5e + ld de, .LEVEL call PlaceString ld a, [wContestMonLevel] ld h, b @@ -5724,20 +5722,20 @@ Function24be7: ; 24be7 ld c, $3 call Function3842 -.asm_24c3e +.skip_level pop af ld [Options], a ret -String24c43: ; 24c43 +.Balls_JP: ; 24c43 db "ボール こ@" -String24c4b: ; 24c4b +.CAUGHT: ; 24c4b db "CAUGHT@" -String24c52: ; 24c52 +.Balls_EN: ; 24c52 db "BALLS:@" -String24c59: ; 24c59 +.None: ; 24c59 db "None@" -String24c5e: ; 24c5e +.LEVEL: ; 24c5e db "LEVEL@" FindApricornsInBag: ; 24c64 @@ -5799,226 +5797,7 @@ INCLUDE "engine/mon_menu.asm" INCLUDE "battle/menu.asm" INCLUDE "engine/buy_sell_toss.asm" INCLUDE "engine/trainer_card.asm" - -ProfOaksPC: ; 0x265d3 - ld hl, OakPCText1 - call MenuTextBox - call YesNoBox - jr c, .shutdown - call ProfOaksPCBoot ; player chose "yes"? -.shutdown - ld hl, OakPCText4 - call PrintText - call JoyWaitAorB - call ExitMenu - ret - -ProfOaksPCBoot ; 0x265ee - ld hl, OakPCText2 - call PrintText - call Rate - call PlaySFX ; sfx loaded by previous Rate function call - call JoyWaitAorB - call WaitSFX - ret - -ProfOaksPCRating: ; 0x26601 - call Rate - push de - ld de, MUSIC_NONE - call PlayMusic - pop de - call PlaySFX - call JoyWaitAorB - call WaitSFX - ret - -Rate: ; 0x26616 -; calculate Seen/Owned - ld hl, PokedexSeen - ld b, EndPokedexSeen - PokedexSeen - call CountSetBits - ld [wd002], a - ld hl, PokedexCaught - ld b, EndPokedexCaught - PokedexCaught - call CountSetBits - ld [wd003], a - -; print appropriate rating - call .UpdateRatingBuffers - ld hl, OakPCText3 - call PrintText - call JoyWaitAorB - ld a, [wd003] - ld hl, OakRatings - call FindOakRating - push de - call PrintText - pop de - ret - -.UpdateRatingBuffers: ; 0x26647 - ld hl, StringBuffer3 - ld de, wd002 - call .UpdateRatingBuffer - ld hl, StringBuffer4 - ld de, wd003 - call .UpdateRatingBuffer - ret - -.UpdateRatingBuffer: ; 0x2665a - push hl - ld a, "@" - ld bc, ITEM_NAME_LENGTH - call ByteFill - pop hl - lb bc, PRINTNUM_RIGHTALIGN | 1, 3 - call PrintNum - ret - -FindOakRating: ; 0x2666b -; return sound effect in de -; return text pointer in hl - nop - ld c, a -.loop - ld a, [hli] - cp c - jr nc, .match -rept 4 - inc hl -endr - jr .loop - -.match - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld h, [hl] - ld l, a - ret - -OakRatings: ; 0x2667f -oakrating: MACRO - db \1 - dw \2, \3 -endm - -; if you caught at most this many, play this sound, load this text - oakrating 9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01 - oakrating 19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02 - oakrating 34, SFX_DEX_FANFARE_20_49, OakRating03 - oakrating 49, SFX_DEX_FANFARE_20_49, OakRating04 - oakrating 64, SFX_DEX_FANFARE_50_79, OakRating05 - oakrating 79, SFX_DEX_FANFARE_50_79, OakRating06 - oakrating 94, SFX_DEX_FANFARE_80_109, OakRating07 - oakrating 109, SFX_DEX_FANFARE_80_109, OakRating08 - oakrating 124, SFX_CAUGHT_MON, OakRating09 - oakrating 139, SFX_CAUGHT_MON, OakRating10 - oakrating 154, SFX_DEX_FANFARE_140_169, OakRating11 - oakrating 169, SFX_DEX_FANFARE_140_169, OakRating12 - oakrating 184, SFX_DEX_FANFARE_170_199, OakRating13 - oakrating 199, SFX_DEX_FANFARE_170_199, OakRating14 - oakrating 214, SFX_DEX_FANFARE_200_229, OakRating15 - oakrating 229, SFX_DEX_FANFARE_200_229, OakRating16 - oakrating 239, SFX_DEX_FANFARE_230_PLUS, OakRating17 - oakrating 248, SFX_DEX_FANFARE_230_PLUS, OakRating18 - oakrating 255, SFX_DEX_FANFARE_230_PLUS, OakRating19 - -OakPCText1: ; 0x266de - text_jump _OakPCText1 - db "@" - -OakPCText2: ; 0x266e3 - text_jump _OakPCText2 - db "@" - -OakPCText3: ; 0x266e8 - text_jump _OakPCText3 - db "@" - -OakRating01: - text_jump _OakRating01 - db "@" - -OakRating02: - text_jump _OakRating02 - db "@" - -OakRating03: - text_jump _OakRating03 - db "@" - -OakRating04: - text_jump _OakRating04 - db "@" - -OakRating05: - text_jump _OakRating05 - db "@" - -OakRating06: - text_jump _OakRating06 - db "@" - -OakRating07: - text_jump _OakRating07 - db "@" - -OakRating08: - text_jump _OakRating08 - db "@" - -OakRating09: - text_jump _OakRating09 - db "@" - -OakRating10: - text_jump _OakRating10 - db "@" - -OakRating11: - text_jump _OakRating11 - db "@" - -OakRating12: - text_jump _OakRating12 - db "@" - -OakRating13: - text_jump _OakRating13 - db "@" - -OakRating14: - text_jump _OakRating14 - db "@" - -OakRating15: - text_jump _OakRating15 - db "@" - -OakRating16: - text_jump _OakRating16 - db "@" - -OakRating17: - text_jump _OakRating17 - db "@" - -OakRating18: - text_jump _OakRating18 - db "@" - -OakRating19: - text_jump _OakRating19 - db "@" - -OakPCText4: ; 0x2674c - text_jump _OakPCText4 - db "@" - +INCLUDE "engine/prof_oaks_pc.asm" INCLUDE "engine/decorations.asm" PadCoords_de: ; 27092 @@ -6161,7 +5940,7 @@ INCLUDE "battle/moves/move_effects_pointers.asm" MoveEffects: ; 2732e INCLUDE "battle/moves/move_effects.asm" -Function27a28: ; 27a28 +Kurt_SelectQuantity_InterpretJoypad: ; 27a28 call BuySellToss_InterpretJoypad ld b, a ret diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 6e2c165f7..7ee14da4f 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -147,6 +147,7 @@ Function114243:: ; 114243 ld l, a pop de jp [hl] + ; 11425c Function11425c: ; 11425c @@ -157,10 +158,12 @@ rept 2 endr ld [MBC3SRamBank], a ret + ; 114268 Function114268: ; 114268 ret + ; 114269 Function114269: ; 114269 @@ -301,6 +304,7 @@ Function114269: ; 114269 ld a, $1 ld [wdc02], a jp .asm_11429b + ; 114333 Function114333: ; 114333 @@ -309,6 +313,7 @@ Function114333: ; 114333 call Function115d80 pop bc ret + ; 11433c Function11433c: ; 11433c @@ -402,6 +407,7 @@ Function11433c: ; 11433c xor a ld b, $1 jp Function11425c + ; 1143b7 Function1143b7: ; 1143b7 @@ -453,6 +459,7 @@ Function1143b7: ; 1143b7 ld a, $1 pop hl jp Function11425c + ; 1143f3 Function1143f3: ; 1143f3 @@ -481,6 +488,7 @@ Function1143f3: ; 1143f3 ld a, $1 ld b, $84 ret + ; 114412 Function114412: ; 114412 @@ -611,6 +619,7 @@ Function114412: ; 114412 ld [hl], a ld a, $1 ret + ; 1144c8 Function1144c8: ; 1144c8 @@ -619,6 +628,7 @@ Function1144c8: ; 1144c8 call Function115d80 pop bc ret + ; 1144d1 Function1144d1: ; 1144d1 @@ -718,6 +728,7 @@ endr pop hl ld a, $1 jp Function11425c + ; 114561 Function114561: ; 114561 @@ -740,6 +751,7 @@ Function114561: ; 114561 ld a, [de] ld [hl], a ret + ; 114576 Function114576: ; 114576 @@ -795,6 +807,7 @@ Function114576: ; 114576 ld a, $1 ld [Bed], a ret + ; 1145c5 Function1145c5: ; 1145c5 @@ -888,6 +901,7 @@ Function1145c5: ; 1145c5 ld [PartyMon5Defense], a xor a ret + ; 11463c Function11463c: ; 11463c @@ -951,6 +965,7 @@ Function11463c: ; 11463c ld [Carpet], a ld a, $1 ret + ; 11469b Function11469b: ; 11469b @@ -959,6 +974,7 @@ Function11469b: ; 11469b call Function115d80 pop bc ret + ; 1146a4 Function1146a4: ; 1146a4 @@ -1018,6 +1034,7 @@ endr .asm_1146f7 ld a, $1 ret + ; 1146fa Function1146fa: ; 1146fa @@ -1145,6 +1162,7 @@ endr .asm_1147cb xor a ret + ; 1147cd Function1147cd: ; 1147cd @@ -1222,6 +1240,7 @@ Function1147cd: ; 1147cd .asm_114837 ld a, $1 ret + ; 11483a Function11483a: ; 11483a @@ -1230,6 +1249,7 @@ Function11483a: ; 11483a call Function115d80 pop bc ret + ; 114843 Function114843: ; 114843 @@ -1254,6 +1274,7 @@ Function114843: ; 114843 ld [wdc00], a ld a, $1 ret + ; 114867 Function114867: ; 114867 @@ -1313,6 +1334,7 @@ Function114867: ; 114867 .asm_1148b6 ld a, $1 ret + ; 1148b9 Function1148b9: ; 1148b9 @@ -1321,6 +1343,7 @@ Function1148b9: ; 1148b9 call Function115d80 pop bc ret + ; 1148c2 Function1148c2: ; 1148c2 @@ -1413,6 +1436,7 @@ Function1148c2: ; 1148c2 .asm_114941 ld a, $1 ret + ; 114944 Function114944: ; 114944 @@ -1421,6 +1445,7 @@ Function114944: ; 114944 call Function115d80 pop bc ret + ; 11494d Function11494d: ; 11494d @@ -1505,6 +1530,7 @@ Function11494d: ; 11494d .asm_1149c0 ld a, $1 ret + ; 1149c3 Function1149c3: ; 1149c3 @@ -1513,6 +1539,7 @@ Function1149c3: ; 1149c3 call Function115d80 pop bc ret + ; 1149cc Function1149cc: ; 1149cc @@ -1563,6 +1590,7 @@ Function1149cc: ; 1149cc pop de ld a, $1 ret + ; 114a0f Function114a0f: ; 114a0f @@ -1571,6 +1599,7 @@ Function114a0f: ; 114a0f call Function115d80 pop bc ret + ; 114a18 Function114a18: ; 114a18 @@ -1638,6 +1667,7 @@ Function114a18: ; 114a18 .asm_114a6e ld a, $1 ret + ; 114a71 Function114a71: ; 114a71 @@ -1646,6 +1676,7 @@ Function114a71: ; 114a71 call Function115d80 pop bc ret + ; 114a7a Function114a7a: ; 114a7a @@ -1698,6 +1729,7 @@ Function114a7a: ; 114a7a .asm_114ac3 ld a, $1 ret + ; 114ac6 Function114ac6: ; 114ac6 @@ -1706,6 +1738,7 @@ Function114ac6: ; 114ac6 call Function115d80 pop bc ret + ; 114acf Function114acf: ; 114acf @@ -1809,6 +1842,7 @@ Function114acf: ; 114acf ld [wdc0e], a xor a ret + ; 114b4c Function114b4c: ; 114b4c @@ -1817,6 +1851,7 @@ Function114b4c: ; 114b4c call Function115d80 pop bc ret + ; 114b55 Function114b55: ; 114b55 @@ -1892,6 +1927,7 @@ endr pop bc ld b, $82 jp Function11425c + ; 114bbc Function114bbc: ; 114bbc @@ -1946,6 +1982,7 @@ Function114bbc: ; 114bbc ld a, $1 pop hl jp Function11425c + ; 114c0b Function114c0b: ; 114c0b @@ -2005,6 +2042,7 @@ Function114c0b: ; 114c0b or c jr z, .asm_114c24 jr .asm_114c18 + ; 114c55 Function114c55: ; 114c55 @@ -2013,6 +2051,7 @@ Function114c55: ; 114c55 call Function115d80 pop bc ret + ; 114c5e Function114c5e: ; 114c5e @@ -2115,6 +2154,7 @@ endr .asm_114cd7 dec bc ret + ; 114cd9 Function114cd9: ; 114cd9 @@ -2181,6 +2221,7 @@ endr pop hl ld a, $1 jp Function11425c + ; 114d39 Function114d39: ; 114d39 @@ -2249,6 +2290,7 @@ Function114d39: ; 114d39 xor a ld [hli], a ret + ; 114d99 Function114d99: ; 114d99 @@ -2324,6 +2366,7 @@ rept 2 endr xor a ret + ; 114df1 Function114df1: ; 114df1 @@ -2374,6 +2417,7 @@ Function114df1: ; 114df1 .asm_114e2b xor a ret + ; 114e2d Function114e2d: ; 114e2d @@ -2410,6 +2454,7 @@ Function114e2d: ; 114e2d jr z, .asm_114e55 xor a ret + ; 114e62 Function114e62: ; 114e62 @@ -2454,6 +2499,7 @@ Function114e62: ; 114e62 ld a, $1 ld b, $83 jp Function11425c + ; 114ea0 Function114ea0: ; 114ea0 @@ -2501,6 +2547,7 @@ Function114ea0: ; 114ea0 ld a, $1 ld b, $83 ret + ; 114ee0 Function114ee0: ; 114ee0 @@ -2509,6 +2556,7 @@ Function114ee0: ; 114ee0 call Function115d80 pop bc ret + ; 114ee9 Function114ee9: ; 114ee9 @@ -2544,6 +2592,7 @@ endr ld [hli], a ld [hl], d ret + ; 114f0a Function114f0a: ; 114f0a @@ -2580,6 +2629,7 @@ Function114f0a: ; 114f0a jr z, .asm_114f21 ld a, $ff ret + ; 114f39 Function114f39: ; 114f39 @@ -2611,6 +2661,7 @@ Function114f39: ; 114f39 .asm_114f58 ret + ; 114f59 Function114f59: ; 114f59 @@ -2738,6 +2789,7 @@ Function114f59: ; 114f59 .asm_11501e xor a ret + ; 115020 Function115020: ; 115020 @@ -2786,6 +2838,7 @@ Function115020: ; 115020 .asm_115056 ld a, $1 ret + ; 115059 Function115059: ; 115059 @@ -2794,6 +2847,7 @@ Function115059: ; 115059 call Function115d80 pop bc ret + ; 115062 Function115062: ; 115062 @@ -2848,6 +2902,7 @@ Function115062: ; 115062 .asm_1150b2 ret + ; 1150b3 Function1150b3: ; 1150b3 @@ -2952,6 +3007,7 @@ endr xor a ld [de], a ret + ; 115136 Function115136: ; 115136 @@ -2999,6 +3055,7 @@ Function115136: ; 115136 .asm_11516d ld a, $1 ret + ; 115170 Function115170: ; 115170 @@ -3007,6 +3064,7 @@ Function115170: ; 115170 call Function115d80 pop bc ret + ; 115179 Function115179: ; 115179 @@ -3118,6 +3176,7 @@ Function115179: ; 115179 ld [hl], b xor a ret + ; 11520e Function11520e: ; 11520e @@ -3126,6 +3185,7 @@ Function11520e: ; 11520e call Function115d80 pop bc ret + ; 115217 Function115217: ; 115217 @@ -3212,6 +3272,7 @@ Function115217: ; 115217 inc e call z, Function115286 jr .asm_115252 + ; 115286 Function115286: ; 115286 @@ -3220,6 +3281,7 @@ Function115286: ; 115286 call Function115d80 pop bc ret + ; 11528f Function11528f: ; 11528f @@ -3244,6 +3306,7 @@ Function11528f: ; 11528f jr nz, .asm_1152a4 ld [hl], c ret + ; 1152af Function1152af: ; 1152af @@ -3252,6 +3315,7 @@ Function1152af: ; 1152af call Function115d80 pop bc ret + ; 1152b8 Function1152b8: ; 1152b8 @@ -3378,6 +3442,7 @@ Function1152b8: ; 1152b8 add hl, de xor a jp Function11425c + ; 11537d Function11537d: ; 11537d @@ -3427,6 +3492,7 @@ Function11537d: ; 11537d ld [wdc03], a ld [wStartDay], a ret + ; 1153b5 Function1153b5: ; 1153b5 @@ -3454,6 +3520,7 @@ endr inc hl ld [hl], d ret + ; 1153d2 Function1153d2: ; 1153d2 @@ -3641,6 +3708,7 @@ Function1153d2: ; 1153d2 ld [wdc04], a xor a ret + ; 1154d4 Function1154d4: ; 1154d4 @@ -3772,6 +3840,7 @@ Function1154d4: ; 1154d4 jr z, .asm_115560 call Function1155d1 jr .asm_115547 + ; 1155af Function1155af: ; 1155af @@ -3803,6 +3872,7 @@ Function1155af: ; 1155af ld [hl], d call Function1155d1 ret + ; 1155d1 Function1155d1: ; 1155d1 @@ -3847,6 +3917,7 @@ Function1155d1: ; 1155d1 ld a, h ld [wdc0e], a ret + ; 11560a Function11560a: ; 11560a @@ -3974,6 +4045,7 @@ Function11560a: ; 11560a ld [de], a ld bc, $03db jr .asm_115659 + ; 1156cc Function1156cc: ; 1156cc @@ -4037,6 +4109,7 @@ Function1156cc: ; 1156cc ld a, $1 ld b, $83 jp Function11425c + ; 115732 Function115732: ; 115732 @@ -4080,6 +4153,7 @@ Function115732: ; 115732 ld [hli], a ld [hl], b ret + ; 11575c Function11575c: ; 11575c @@ -4167,6 +4241,7 @@ Function11575c: ; 11575c ld a, $2 ld [wStartDay], a ret + ; 1157d0 Function1157d0: ; 1157d0 @@ -4225,6 +4300,7 @@ Function1157d0: ; 1157d0 ld a, $3 ld [wStartDay], a ret + ; 11581e Function11581e: ; 11581e @@ -4332,6 +4408,7 @@ Function11581e: ; 11581e ld a, $ff ld [wStartDay], a ret + ; 1158c2 Function1158c2: ; 1158c2 @@ -4543,6 +4620,7 @@ endr ld a, $0 ld [hl], a ret + ; 1159dc Function1159dc: ; 1159dc @@ -4572,6 +4650,7 @@ Function1159dc: ; 1159dc .asm_1159f8 ld a, $2b ret + ; 1159fb Function1159fb: ; 1159fb @@ -4634,6 +4713,7 @@ Function1159fb: ; 1159fb .asm_115a5a ld a, $1 jp Function11425c + ; 115a5f Function115a5f: ; 115a5f @@ -4694,6 +4774,7 @@ Function115a5f: ; 115a5f ld a, $2 ld [wStartDay], a ret + ; 115ab0 Function115ab0: ; 115ab0 @@ -4754,6 +4835,7 @@ Function115ab0: ; 115ab0 ld [wStartDay], a xor a ret + ; 115b00 Function115b00: ; 115b00 @@ -4888,6 +4970,7 @@ endr .asm_115bc6 xor a ret + ; 115bc8 Function115bc8: ; 115bc8 @@ -4989,6 +5072,7 @@ endr .asm_115c46 ld a, $2 ret + ; 115c49 Function115c49: ; 115c49 @@ -5127,6 +5211,7 @@ endr cp $0 jp nz, .asm_115c64 ret + ; 115cfd Function115cfd: ; 115cfd @@ -5197,6 +5282,7 @@ Function115cfd: ; 115cfd .asm_115d50 sub $47 ret + ; 115d53 Function115d53: ; 115d53 @@ -5212,6 +5298,7 @@ Function115d53: ; 115d53 xor a ld [hl], a ret + ; 115d61 Function115d61: ; 115d61 @@ -5220,6 +5307,7 @@ Function115d61: ; 115d61 call Function115d80 pop bc ret + ; 115d6a Function115d6a: ; 115d6a @@ -5234,6 +5322,7 @@ Function115d6a: ; 115d6a jr nz, .asm_115d6a xor a ret + ; 115d77 Function115d77: ; 115d77 @@ -5242,6 +5331,7 @@ Function115d77: ; 115d77 call Function115d80 pop bc ret + ; 115d80 Function115d80: ; 115d80 @@ -5264,915 +5354,11 @@ Function115d80: ; 115d80 ld d, $a0 ld e, $0 ret + ; 115d99 -Function115d99: ; 115d99 - ld de, GFX_11601a - ld hl, VTiles0 tile $60 - lb bc, BANK(GFX_11601a), $14 - call Get2bpp - xor a - ld [wc305], a - ld [wc306], a - ld [wc309], a - ld [wc30a], a - ld [wc30b], a - ld [wc30c], a - ld a, $10 - ld [wc307], a - ld a, $18 - ld [wc308], a - ret -; 115dc3 +INCLUDE "misc/mobile_45_sprite_engine.asm" -Function115dc3: ; 115dc3 - xor a - ld [wc305], a - ld a, $a0 - ld hl, Sprites + $7c - ld bc, $0020 - call ByteFill - ret -; 115dd3 - -Function115dd3: ; 115dd3 - ld a, [wc305] - and a - ret z - ld a, $a0 - ld hl, Sprites + $7c - ld bc, $0020 - call ByteFill - call Function115e22 - ld a, [wc309] - sla a - ld c, a - ld b, 0 - ld hl, Unknown_115e86 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld de, Sprites + $7c - ld a, [wc307] - ld c, a - ld a, [wc308] - ld b, a - ld a, [hli] -.asm_115e04 - push af - ld a, [hli] - add b - ld [de], a - inc de - ld a, [hli] - add c - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - pop af - dec a - jr nz, .asm_115e04 - ret -; 115e18 - -Function115e18: ; 115e18 - ld a, c - ld [wc30a], a - xor a - ld [wc30b], a - jr Function115e2b -; 115e22 - -Function115e22: ; 115e22 - ld hl, wc30c - dec [hl] - ret nz - ld hl, wc30b - inc [hl] - -Function115e2b: ; 115e2b - ld a, [wc30a] - sla a - ld c, a - ld b, 0 - ld hl, Unknown_115e59 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push de - pop hl - ld a, [wc30b] - sla a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - cp $ff - jr nz, .asm_115e51 - xor a - ld [wc30b], a - jr Function115e2b - -.asm_115e51 - ld [wc309], a - ld a, [hl] - ld [wc30c], a - ret -; 115e59 - -Unknown_115e59: - dw Unknown_115e61 - dw Unknown_115e6c - dw Unknown_115e76 - dw Unknown_115e79 - -Unknown_115e61: ; 115e61 - db $4, $8 - db $5, $8 - db $6, $8 - db $7, $8 - db $8, $8 - db $ff - -Unknown_115e6c: ; 115e6c - db $1, $8 - db $2, $8 - db $3, $8 - db $9, $8 - db $a, $8 - -Unknown_115e76: ; 115e76 - db $0, $8 - db $ff - -Unknown_115e79: ; 115e79 - db $b, $8 - db $c, $8 - db $d, $8 - db $e, $8 - db $f, $8 - db $0, $8 - db $ff -; 115e86 - -Unknown_115e86: - dw Unknown_115ea6 - dw Unknown_115eb7 - dw Unknown_115ecc - dw Unknown_115ee1 - dw Unknown_115ef6 - dw Unknown_115f13 - dw Unknown_115f30 - dw Unknown_115f4d - dw Unknown_115f6a - dw Unknown_115f87 - dw Unknown_115f9c - dw Unknown_115fb1 - dw Unknown_115fc6 - dw Unknown_115fdb - dw Unknown_115ff0 - dw Unknown_116005 - -Unknown_115ea6: ; 115ea6 - db $4 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 - -Unknown_115eb7: ; 115eb7 - db $5 - db $0, $8, $64, $0 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 - -Unknown_115ecc: ; 115ecc - db $5 - db $0, $8, $65, $0 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 - -Unknown_115ee1: ; 115ee1 - db $5 - db $0, $8, $66, $0 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 - -Unknown_115ef6: ; 115ef6 - db $7 - db $0, $0, $67, $1 - db $8, $0, $68, $1 - db $10, $0, $6d, $0 - db $10, $8, $69, $0 - db $10, $10, $6a, $0 - db $18, $8, $6b, $0 - db $18, $10, $6c, $0 - -Unknown_115f13: ; 115f13 - db $7 - db $0, $0, $67, $1 - db $8, $0, $68, $1 - db $10, $0, $6e, $0 - db $10, $8, $69, $0 - db $10, $10, $6a, $0 - db $18, $8, $6b, $0 - db $18, $10, $6c, $0 - -Unknown_115f30: ; 115f30 - db $7 - db $0, $0, $67, $1 - db $8, $0, $68, $1 - db $10, $0, $6f, $0 - db $10, $8, $69, $0 - db $10, $10, $6a, $0 - db $18, $8, $6b, $0 - db $18, $10, $6c, $0 - -Unknown_115f4d: ; 115f4d - db $7 - db $0, $0, $67, $1 - db $8, $0, $68, $1 - db $10, $0, $70, $0 - db $10, $8, $69, $0 - db $10, $10, $6a, $0 - db $18, $8, $6b, $0 - db $18, $10, $6c, $0 - -Unknown_115f6a: ; 115f6a - db $7 - db $0, $0, $67, $1 - db $8, $0, $68, $1 - db $10, $0, $71, $0 - db $10, $8, $69, $0 - db $10, $10, $6a, $0 - db $18, $8, $6b, $0 - db $18, $10, $6c, $0 - -Unknown_115f87: ; 115f87 - db $5 - db $0, $8, $72, $0 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 - -Unknown_115f9c: ; 115f9c - db $5 - db $0, $8, $73, $0 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 - -Unknown_115fb1: ; 115fb1 - db $5 - db $1, $8, $64, $60 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 - -Unknown_115fc6: ; 115fc6 - db $5 - db $1, $8, $65, $60 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 - -Unknown_115fdb: ; 115fdb - db $5 - db $1, $8, $66, $60 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 - -Unknown_115ff0: ; 115ff0 - db $5 - db $1, $8, $72, $60 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 - -Unknown_116005: ; 116005 - db $5 - db $1, $8, $73, $60 - db $8, $0, $60, $1 - db $8, $8, $61, $1 - db $10, $0, $62, $1 - db $10, $8, $63, $1 -; 11601a - -GFX_11601a:: ; 11601a -INCBIN "gfx/unknown/11601a.2bpp" - -Function11615a: ; 11615a - xor a - ld [wc30d], a - ld [$c319], a - ld [wc310], a - ld [wc311], a - ld [wc312], a - ld [wc313], a - ld [wc314], a - ld [wc314 + 1], a - ld [wc314 + 4], a - ld [wc3f6], a - ld [wc3f8], a - ld [wc3f2], a - ld [wc3f4], a - ld a, $24 - ld [wc3f5], a - ld a, $7 - ld [wc3f7], a - ld a, $b0 - ld [wc30e], a - ld [wc3f1], a - ld a, $48 - ld [wc30f], a - ld [wc3f3], a - ret -; 11619d - -Function11619d: ; 11619d - ld a, [wc30d] - and a - ret z - ld a, [$c319] - cp $2 - jr c, .asm_1161b4 - ld a, $a0 - ld hl, Sprites - ld bc, $0064 - call ByteFill - -.asm_1161b4 - call Function1161b8 - ret -; 1161b8 - -Function1161b8: ; 1161b8 - ld a, [$c319] - ld e, a - ld d, 0 - ld hl, .Jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 1161c7 - -.Jumptable: ; 1161c7 - dw Function1161d5 - dw Function116294 - dw Function1162cb - dw Function1162f2 - dw Function1163c0 - dw Function11636e - dw Function116441 -; 1161d5 - -Function1161d5: ; 1161d5 - ld a, [rSVBK] - push af - - ld a, $6 - ld [rSVBK], a - - ld hl, Unknown_117356 - ld de, wDecompressScratch - ld bc, $0300 - call CopyBytes - - di - -.wait_for_vblank -; Wait until a vblank would occur had interrupts not just been disabled. - ld a, [rLY] - cp $91 - jr nz, .wait_for_vblank - - ld a, $d0 - ld [rHDMA1], a - ld a, $0 - ld [rHDMA2], a - ld a, $1c - ld [rHDMA3], a - xor a - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - ld a, $d0 - ld [rHDMA1], a - ld a, $80 - ld [rHDMA2], a - ld a, $1c - ld [rHDMA3], a - ld a, $80 - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - ld a, $d1 - ld [rHDMA1], a - ld a, $0 - ld [rHDMA2], a - ld a, $1d - ld [rHDMA3], a - xor a - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - ld a, $1 - ld [rVBK], a - - ld a, $d1 - ld [rHDMA1], a - ld a, $80 - ld [rHDMA2], a - ld a, $1c - ld [rHDMA3], a - xor a - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - ld a, $d2 - ld [rHDMA1], a - ld a, $0 - ld [rHDMA2], a - ld a, $1c - ld [rHDMA3], a - ld a, $80 - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - ld a, $d2 - ld [rHDMA1], a - ld a, $80 - ld [rHDMA2], a - ld a, $1d - ld [rHDMA3], a - xor a - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - xor a - ld [rVBK], a - - ei - - pop af - ld [rSVBK], a - - callba ReloadMapPart - ld a, $8 - ld [MusicFade], a - ld de, MUSIC_MOBILE_ADAPTER - ld a, e - ld [MusicFadeIDLo], a - ld a, d - ld [MusicFadeIDHi], a - ld a, [$c319] - inc a - ld [$c319], a - ret -; 11628c - -MenuDataHeader_11628c: ; 11628c - db $40 ; flags - db 6, 0 ; start coords - db 17, 19 ; end coords - dw NULL - db 0 ; default option -; 116294 - -Function116294: ; 116294 - callba Function170d02 - ld a, [$c319] - inc a - ld [$c319], a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, UnknBGPals + 8 * 6 - ld de, $c320 - ld bc, 2 palettes - call CopyBytes - ld hl, Palette_11734e - ld de, UnknBGPals + 8 * 7 - ld bc, 1 palettes - call CopyBytes - call SetPalettes - pop af - ld [rSVBK], a - ld a, $30 - ld [hWY], a - ret -; 1162cb - -Function1162cb: ; 1162cb - callba Function170cc6 - ld a, [$c319] - inc a - ld [$c319], a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_11730e - ld de, UnknOBPals + 2 palettes - ld bc, 6 palettes - call CopyBytes - call SetPalettes - pop af - ld [rSVBK], a - ret -; 1162f2 - -Function1162f2: ; 1162f2 - call Function11659d - call Function116758 - call Function1167a6 - ld a, [wc310] - cp EGG - ret z - sla a - ld c, a - ld b, 0 - ld hl, Unknown_1168c5 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld a, [wc30e] - ld c, a - ld a, [wc30f] - ld b, a - ld a, [wc314 + 4] - ld e, a - ld a, [hli] - sub e - ld de, Sprites + $24 -.asm_116321 - push af - ld a, [hli] - add b - ld [de], a - inc de - ld a, [hli] - add c - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - pop af - dec a - jr nz, .asm_116321 - call Function116468 - ld a, [wc3f5] - sla a - ld c, a - ld b, 0 - ld hl, Unknown_1168c5 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld a, [wc3f1] - ld c, a - ld a, [wc3f3] - ld b, a - ld a, [wc3f8] - ld e, a - ld a, [hli] - sub e - ld de, Sprites -.asm_11635a - push af - ld a, [hli] - add b - ld [de], a - inc de - ld a, [hli] - add c - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - pop af - dec a - jr nz, .asm_11635a - ret -; 11636e - -Function11636e: ; 11636e - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld de, UnknBGPals - ld bc, $0040 - call CopyBytes - pop af - ld [rSVBK], a - call SetPalettes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, $a0 - ld hl, Sprites - ld bc, 16 * 4 - call ByteFill - ld a, $90 - ld [hWY], a - call UpdateSprites - pop af - ld [rSVBK], a - callba ReloadMapPart - ld a, $8 - ld [MusicFade], a - ld a, [wMapMusic] - ld [MusicFadeIDLo], a - xor a - ld [MusicFadeIDHi], a - xor a - ld [$c319], a - ld [wc30d], a - ret -; 1163c0 - -Function1163c0: ; 1163c0 - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, $a0 - ld hl, Sprites - ld bc, 16 * 4 - call ByteFill - call DelayFrame - callba Function14146 - ld b, SCGB_MAPPALS - call GetSGBLayout - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, $c320 - ld de, wd030 - ld bc, $0010 - call CopyBytes - pop af - ld [rSVBK], a - call SetPalettes - call DelayFrame - ld a, $90 - ld [hWY], a - call UpdateSprites - callba Function14157 - pop af - ld [rSVBK], a - callba ReloadMapPart - ld a, [wLinkMode] - cp $4 - jr z, .asm_11642a - ld a, $8 - ld [MusicFade], a - ld a, [wMapMusic] - ld [MusicFadeIDLo], a - xor a - ld [MusicFadeIDHi], a - jr .asm_116439 - -.asm_11642a - ld a, $8 - ld [MusicFade], a - ld a, $0 - ld [MusicFadeIDLo], a - ld a, $0 - ld [MusicFadeIDHi], a - -.asm_116439 - xor a - ld [$c319], a - ld [wc30d], a - ret -; 116441 - -Function116441: ; 116441 - callba Function17d405 - ld a, $90 - ld [hWY], a - callba ReloadMapPart - ld a, $8 - ld [MusicFade], a - ld a, [wMapMusic] - ld [MusicFadeIDLo], a - xor a - ld [MusicFadeIDHi], a - xor a - ld [$c319], a - ld [wc30d], a - ret -; 116468 - -Function116468: ; 116468 - call Function116567 - ld a, [wc314] - cp $d - jr nz, .asm_1164a8 - ld hl, wc30e - ld a, [hl] - cp $50 - jr nc, .asm_116484 - ld a, $50 - sub [hl] - add $50 - ld [wc3f1], a - jr .asm_11648d - -.asm_116484 - sub $50 - ld c, a - ld a, $50 - sub c - ld [wc3f1], a - -.asm_11648d - ld hl, wc30f - ld a, [hl] - cp $60 - jr nc, .asm_11649e - ld a, $60 - sub [hl] - add $60 - ld [wc3f3], a - ret - -.asm_11649e - sub $60 - ld c, a - ld a, $60 - sub c - ld [wc3f3], a - ret - -.asm_1164a8 - ld hl, wc30e - ld a, $b0 - cp [hl] - jr nc, .asm_1164b8 - ld a, [wc3f1] - and a - jr z, .asm_11650b - jr .asm_1164f2 - -.asm_1164b8 - ld a, [wc3f1] - sub [hl] - jr nc, .asm_1164c1 - xor $ff - inc a - -.asm_1164c1 - ld b, a - ld c, $0 - ld a, $5 -.asm_1164c6 - srl b - rr c - dec a - jr nz, .asm_1164c6 - ld a, c - ld [wc3fa], a - ld a, b - ld [wc3f9], a - ld a, [wc3f1] - sub [hl] - jr c, .asm_1164f2 - ld c, $0 - ld a, [wc3fa] - xor $ff - add $1 - rl c - ld [wc3fa], a - ld a, [wc3f9] - xor $ff - add c - ld [wc3f9], a - -.asm_1164f2 - ld a, [wc3f2] - ld l, a - ld a, [wc3f1] - ld h, a - ld a, [wc3fa] - ld e, a - ld a, [wc3f9] - ld d, a - add hl, de - ld a, l - ld [wc3f2], a - ld a, h - ld [wc3f1], a - -.asm_11650b - ld hl, wc30f - ld a, $b0 - cp [hl] - jr c, .asm_11654d - ld a, [wc3f3] - sub [hl] - jr nc, .asm_11651c - xor $ff - inc a - -.asm_11651c - ld b, a - ld c, $0 - ld a, $5 -.asm_116521 - srl b - rr c - dec a - jr nz, .asm_116521 - ld a, c - ld [wc3fc], a - ld a, b - ld [wc3fb], a - ld a, [wc3f3] - sub [hl] - jr c, .asm_11654d - ld c, $0 - ld a, [wc3fc] - xor $ff - add $1 - rl c - ld [wc3fc], a - ld a, [wc3fb] - xor $ff - add c - ld [wc3fb], a - -.asm_11654d - ld a, [wc3f4] - ld l, a - ld a, [wc3f3] - ld h, a - ld a, [wc3fc] - ld e, a - ld a, [wc3fb] - ld d, a - add hl, de - ld a, l - ld [wc3f4], a - ld a, h - ld [wc3f3], a - ret ; 116567 Function116567: ; 116567 @@ -6211,6 +5397,7 @@ Function116567: ; 116567 ld a, [hl] ld [wc3f7], a ret + ; 11659d Function11659d: ; 11659d @@ -6227,6 +5414,7 @@ endr ld h, [hl] ld l, a jp [hl] + ; 1165af Jumptable_1165af: ; 1165af @@ -6271,6 +5459,7 @@ Function1165e3: call Function116780 ret c jp Function116797 + ; 1165f5 Function1165f5: ; 1165f5 @@ -6292,6 +5481,7 @@ Function116600: ld a, $2 ld [wc314], a ret + ; 116615 Function116615: ; 116615 @@ -6314,6 +5504,7 @@ Function116623: call Function116780 ret c jp Function116797 + ; 116635 Function116635: ; 116635 @@ -6335,6 +5526,7 @@ Function116640: ld a, $7 ld [wc314], a ret + ; 116655 Function116655: ; 116655 @@ -6381,6 +5573,7 @@ Function11668d: ld a, $c ld [wc314], a ret + ; 11669f Function11669f: ; 11669f @@ -6429,6 +5622,7 @@ Function1166d6: xor a ld [wc314], a ret + ; 1166f4 Function1166f4: ; 1166f4 @@ -6456,6 +5650,7 @@ Function1166f4: ; 1166f4 call Function11679c call Function116797 ret + ; 11671f Function11671f: ; 11671f @@ -6479,6 +5674,7 @@ Function11671f: ; 11671f call Function11679c call Function116797 ret + ; 116747 Function116747: ; 116747 @@ -6491,6 +5687,7 @@ Function116747: ; 116747 add [hl] ld [hl], a ret + ; 116758 Function116758: ; 116758 @@ -6521,6 +5718,7 @@ Function116758: ; 116758 .asm_11677a ld [wc314 + 4], a ret + ; 11677e Function11677e: ; 11677e @@ -6538,6 +5736,7 @@ Function116780: .asm_11678c and a ret + ; 11678e Function11678e: ; 11678e @@ -6546,12 +5745,14 @@ Function11678e: ; 11678e ld [wc314 + 1], a inc [hl] ret + ; 116797 Function116797: ; 116797 ld hl, wc314 inc [hl] ret + ; 11679c Function11679c: @@ -6608,6 +5809,7 @@ asm_1167af ld a, [hl] ld [wc313], a ret + ; 1167eb Unknown_1167eb: @@ -7654,6 +6856,7 @@ SECTION "Mobile Stadium", ROMX, BANK[$45] Special_GiveOddEgg: ; 117656 callba GiveOddEgg ret + ; 11765d Function11765d: ; 11765d (45:765d) @@ -7784,6 +6987,7 @@ Function117764: ; 117764 (45:7764) jr nz, .asm_11776f ld a, $1 jr .asm_117770 + .asm_11776f xor a .asm_117770 @@ -7880,6 +7084,7 @@ Function117764_d_up: ; 1177f1 (45:77f1) Function117764_d_vertical_load: ; 117806 (45:7806) ld [wcd4c], a ret + Function117764_d_down: ; 11780a (45:780a) ld a, [wcd4d] cp $4 @@ -7895,9 +7100,11 @@ Function117764_d_down: ; 11780a (45:780a) jr nc, .asm_117829 xor a jr Function117764_d_vertical_load + .asm_117825 ld a, $2 jr Function117764_d_vertical_load + .asm_117829 ld a, $1 jr Function117764_d_vertical_load @@ -7949,6 +7156,7 @@ Function117764_a_button: ; 11784c (45:784c) jr nz, .ascii_symbols ld hl, Unknown_117a0f jr .got_ascii + .ascii_symbols ld hl, Unknown_117a47 .got_ascii @@ -8103,6 +7311,7 @@ Function1179a7: ; 1179a7 (45:79a7) ld a, $1 ld [wcd49], a ret + ; 1179b5 (45:79b5) MenuDataHeader_1179b5: ; 1179b5 @@ -8146,6 +7355,7 @@ MobilePassword_IncrementJumptable: ; 117a0a (45:7a0a) ld hl, wcd49 inc [hl] ret + ; 117a0f (45:7a0f) Unknown_117a0f: @@ -8168,12 +7378,14 @@ MobileStudium: ; 0x117a7f pop af ld [hInMenu], a ret + ; 0x117a8d Function117a8d: ; 0x117a8d call Function117a94 call Function117acd ret + ; 0x117a94 Function117a94: ; 0x117a94 @@ -8187,6 +7399,7 @@ Function117a94: ; 0x117a94 callba Function172e78 callba Function104000 ret + ; 0x117ab4 Function117ab4: ; 0x117ab4 @@ -8196,6 +7409,7 @@ Function117ab4: ; 0x117ab4 callba Function172eb9 callba ReloadMapPart ret + ; 0x117acd Function117acd: ; 0x117acd @@ -8206,6 +7420,7 @@ Function117acd: ; 0x117acd call Function117ae9 callba Function104000 jr Function117acd + .asm_117ae2 call ClearBGPalettes call ClearSprites @@ -8340,10 +7555,12 @@ Function117bb6: ld a, $80 ld [wJumptableIndex], a ret + .asm_117be1 ld a, $80 ld [wJumptableIndex], a ret + .asm_117be7 ld a, [rSVBK] push af @@ -8370,12 +7587,14 @@ Function117bb6: dec c jr nz, .asm_117c0b jr .asm_117c20 + .asm_117c16 pop af ld [rSVBK], a ld a, $d3 ld [wc300], a jr .asm_117bd0 + .asm_117c20 pop af ld [rSVBK], a diff --git a/misc/mobile_45_sprite_engine.asm b/misc/mobile_45_sprite_engine.asm new file mode 100755 index 000000000..ab31a9bb9 --- /dev/null +++ b/misc/mobile_45_sprite_engine.asm @@ -0,0 +1,923 @@ +Function115d99: ; 115d99 + ld de, GFX_11601a + ld hl, VTiles0 tile $60 + lb bc, BANK(GFX_11601a), $14 + call Get2bpp + xor a + ld [wc305], a + ld [wc306], a + ld [wc309], a + ld [wc30a], a + ld [wc30b], a + ld [wc30c], a + ld a, $10 + ld [wc307], a + ld a, $18 + ld [wc308], a + ret + +; 115dc3 + +Function115dc3: ; 115dc3 + xor a + ld [wc305], a + ld a, $a0 + ld hl, Sprites + 31 * 4 + ld bc, 8 * 4 + call ByteFill + ret + +; 115dd3 + +Function115dd3: ; 115dd3 + ld a, [wc305] + and a + ret z + ld a, $a0 + ld hl, Sprites + 31 * 4 + ld bc, 8 * 4 + call ByteFill + call Function115e22 + ld a, [wc309] + sla a + ld c, a + ld b, 0 + ld hl, Unknown_115e86 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld de, Sprites + 31 * 4 + ld a, [wc307] + ld c, a + ld a, [wc308] + ld b, a + ld a, [hli] +.asm_115e04 + push af + ld a, [hli] + add b + ld [de], a + inc de + ld a, [hli] + add c + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + pop af + dec a + jr nz, .asm_115e04 + ret + +; 115e18 + +Function115e18: ; 115e18 + ld a, c + ld [wc30a], a + xor a + ld [wc30b], a + jr Function115e2b + +; 115e22 + +Function115e22: ; 115e22 + ld hl, wc30c + dec [hl] + ret nz + ld hl, wc30b + inc [hl] + +Function115e2b: ; 115e2b + ld a, [wc30a] + sla a + ld c, a + ld b, 0 + ld hl, Unknown_115e59 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + pop hl + ld a, [wc30b] + sla a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + cp $ff + jr nz, .not_end + xor a + ld [wc30b], a + jr Function115e2b + +.not_end + ld [wc309], a + ld a, [hl] + ld [wc30c], a + ret + +; 115e59 + +Unknown_115e59: + dw Unknown_115e61 + dw Unknown_115e6c + dw Unknown_115e76 + dw Unknown_115e79 + +; OAM idx (see Unknown_115e86), flip flags/duration +Unknown_115e61: ; 115e61 + db $04, $08 + db $05, $08 + db $06, $08 + db $07, $08 + db $08, $08 + db -1 + +Unknown_115e6c: ; 115e6c + db $01, $08 + db $02, $08 + db $03, $08 + db $09, $08 + db $0a, $08 +Unknown_115e76: ; 115e76 + db $00, $08 + db -1 + +Unknown_115e79: ; 115e79 + db $0b, $08 + db $0c, $08 + db $0d, $08 + db $0e, $08 + db $0f, $08 + db $00, $08 + db -1 +; 115e86 + +Unknown_115e86: + dw Unknown_115ea6 + dw Unknown_115eb7 + dw Unknown_115ecc + dw Unknown_115ee1 + dw Unknown_115ef6 + dw Unknown_115f13 + dw Unknown_115f30 + dw Unknown_115f4d + dw Unknown_115f6a + dw Unknown_115f87 + dw Unknown_115f9c + dw Unknown_115fb1 + dw Unknown_115fc6 + dw Unknown_115fdb + dw Unknown_115ff0 + dw Unknown_116005 + +Unknown_115ea6: ; 115ea6 + db 4 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115eb7: ; 115eb7 + db 5 + dsprite 0, 0, 1, 0, $64, $00 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115ecc: ; 115ecc + db 5 + dsprite 0, 0, 1, 0, $65, $00 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115ee1: ; 115ee1 + db 5 + dsprite 0, 0, 1, 0, $66, $00 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115ef6: ; 115ef6 + db 7 + dsprite 0, 0, 0, 0, $67, $01 + dsprite 1, 0, 0, 0, $68, $01 + dsprite 2, 0, 0, 0, $6d, $00 + dsprite 2, 0, 1, 0, $69, $00 + dsprite 2, 0, 2, 0, $6a, $00 + dsprite 3, 0, 1, 0, $6b, $00 + dsprite 3, 0, 2, 0, $6c, $00 + +Unknown_115f13: ; 115f13 + db 7 + dsprite 0, 0, 0, 0, $67, $01 + dsprite 1, 0, 0, 0, $68, $01 + dsprite 2, 0, 0, 0, $6e, $00 + dsprite 2, 0, 1, 0, $69, $00 + dsprite 2, 0, 2, 0, $6a, $00 + dsprite 3, 0, 1, 0, $6b, $00 + dsprite 3, 0, 2, 0, $6c, $00 + +Unknown_115f30: ; 115f30 + db 7 + dsprite 0, 0, 0, 0, $67, $01 + dsprite 1, 0, 0, 0, $68, $01 + dsprite 2, 0, 0, 0, $6f, $00 + dsprite 2, 0, 1, 0, $69, $00 + dsprite 2, 0, 2, 0, $6a, $00 + dsprite 3, 0, 1, 0, $6b, $00 + dsprite 3, 0, 2, 0, $6c, $00 + +Unknown_115f4d: ; 115f4d + db 7 + dsprite 0, 0, 0, 0, $67, $01 + dsprite 1, 0, 0, 0, $68, $01 + dsprite 2, 0, 0, 0, $70, $00 + dsprite 2, 0, 1, 0, $69, $00 + dsprite 2, 0, 2, 0, $6a, $00 + dsprite 3, 0, 1, 0, $6b, $00 + dsprite 3, 0, 2, 0, $6c, $00 + +Unknown_115f6a: ; 115f6a + db 7 + dsprite 0, 0, 0, 0, $67, $01 + dsprite 1, 0, 0, 0, $68, $01 + dsprite 2, 0, 0, 0, $71, $00 + dsprite 2, 0, 1, 0, $69, $00 + dsprite 2, 0, 2, 0, $6a, $00 + dsprite 3, 0, 1, 0, $6b, $00 + dsprite 3, 0, 2, 0, $6c, $00 + +Unknown_115f87: ; 115f87 + db 5 + dsprite 0, 0, 1, 0, $72, $00 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115f9c: ; 115f9c + db 5 + dsprite 0, 0, 1, 0, $73, $00 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115fb1: ; 115fb1 + db 5 + dsprite 0, 1, 1, 0, $64, $60 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115fc6: ; 115fc6 + db 5 + dsprite 0, 1, 1, 0, $65, $60 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115fdb: ; 115fdb + db 5 + dsprite 0, 1, 1, 0, $66, $60 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115ff0: ; 115ff0 + db 5 + dsprite 0, 1, 1, 0, $72, $60 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_116005: ; 116005 + db 5 + dsprite 0, 1, 1, 0, $73, $60 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 +; 11601a + +GFX_11601a:: ; 11601a +INCBIN "gfx/unknown/11601a.2bpp" + + +Function11615a: ; 11615a + xor a + ld [wc30d], a + ld [$c319], a + ld [wc310], a + ld [wc311], a + ld [wc312], a + ld [wc313], a + ld [wc314], a + ld [wc314 + 1], a + ld [wc314 + 4], a + ld [wc3f6], a + ld [wc3f8], a + ld [wc3f2], a + ld [wc3f4], a + ld a, $24 + ld [wc3f5], a + ld a, $7 + ld [wc3f7], a + ld a, $b0 + ld [wc30e], a + ld [wc3f1], a + ld a, $48 + ld [wc30f], a + ld [wc3f3], a + ret + +; 11619d + +Function11619d: ; 11619d + ld a, [wc30d] + and a + ret z + ld a, [$c319] + cp $2 + jr c, .asm_1161b4 + ld a, $a0 + ld hl, Sprites + ld bc, $0064 + call ByteFill + +.asm_1161b4 + call Function1161b8 + ret + +; 1161b8 + +Function1161b8: ; 1161b8 + ld a, [$c319] + ld e, a + ld d, 0 + ld hl, .Jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +; 1161c7 + +.Jumptable: ; 1161c7 + dw Function1161d5 + dw Function116294 + dw Function1162cb + dw Function1162f2 + dw Function1163c0 + dw Function11636e + dw Function116441 +; 1161d5 + +Function1161d5: ; 1161d5 + ld a, [rSVBK] + push af + + ld a, $6 + ld [rSVBK], a + + ld hl, Unknown_117356 + ld de, wDecompressScratch + ld bc, $0300 + call CopyBytes + + di + +.wait_for_vblank +; Wait until a vblank would occur had interrupts not just been disabled. + ld a, [rLY] + cp $91 + jr nz, .wait_for_vblank + + ld a, $d0 + ld [rHDMA1], a + ld a, $0 + ld [rHDMA2], a + ld a, $1c + ld [rHDMA3], a + xor a + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + ld a, $d0 + ld [rHDMA1], a + ld a, $80 + ld [rHDMA2], a + ld a, $1c + ld [rHDMA3], a + ld a, $80 + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + ld a, $d1 + ld [rHDMA1], a + ld a, $0 + ld [rHDMA2], a + ld a, $1d + ld [rHDMA3], a + xor a + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + ld a, $1 + ld [rVBK], a + + ld a, $d1 + ld [rHDMA1], a + ld a, $80 + ld [rHDMA2], a + ld a, $1c + ld [rHDMA3], a + xor a + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + ld a, $d2 + ld [rHDMA1], a + ld a, $0 + ld [rHDMA2], a + ld a, $1c + ld [rHDMA3], a + ld a, $80 + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + ld a, $d2 + ld [rHDMA1], a + ld a, $80 + ld [rHDMA2], a + ld a, $1d + ld [rHDMA3], a + xor a + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + xor a + ld [rVBK], a + + ei + + pop af + ld [rSVBK], a + + callba ReloadMapPart + ld a, $8 + ld [MusicFade], a + ld de, MUSIC_MOBILE_ADAPTER + ld a, e + ld [MusicFadeIDLo], a + ld a, d + ld [MusicFadeIDHi], a + ld a, [$c319] + inc a + ld [$c319], a + ret + +; 11628c + +MenuDataHeader_11628c: ; 11628c + db $40 ; flags + db 6, 0 ; start coords + db 17, 19 ; end coords + dw NULL + db 0 ; default option +; 116294 + +Function116294: ; 116294 + callba Function170d02 + ld a, [$c319] + inc a + ld [$c319], a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, UnknBGPals + 8 * 6 + ld de, $c320 + ld bc, 2 palettes + call CopyBytes + ld hl, Palette_11734e + ld de, UnknBGPals + 8 * 7 + ld bc, 1 palettes + call CopyBytes + call SetPalettes + pop af + ld [rSVBK], a + ld a, $30 + ld [hWY], a + ret + +; 1162cb + +Function1162cb: ; 1162cb + callba Function170cc6 + ld a, [$c319] + inc a + ld [$c319], a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_11730e + ld de, UnknOBPals + 2 palettes + ld bc, 6 palettes + call CopyBytes + call SetPalettes + pop af + ld [rSVBK], a + ret + +; 1162f2 + +Function1162f2: ; 1162f2 + call Function11659d + call Function116758 + call Function1167a6 + ld a, [wc310] + cp EGG + ret z + sla a + ld c, a + ld b, 0 + ld hl, Unknown_1168c5 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld a, [wc30e] + ld c, a + ld a, [wc30f] + ld b, a + ld a, [wc314 + 4] + ld e, a + ld a, [hli] + sub e + ld de, Sprites + $24 +.asm_116321 + push af + ld a, [hli] + add b + ld [de], a + inc de + ld a, [hli] + add c + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + pop af + dec a + jr nz, .asm_116321 + call Function116468 + ld a, [wc3f5] + sla a + ld c, a + ld b, 0 + ld hl, Unknown_1168c5 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld a, [wc3f1] + ld c, a + ld a, [wc3f3] + ld b, a + ld a, [wc3f8] + ld e, a + ld a, [hli] + sub e + ld de, Sprites +.asm_11635a + push af + ld a, [hli] + add b + ld [de], a + inc de + ld a, [hli] + add c + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + pop af + dec a + jr nz, .asm_11635a + ret + +; 11636e + +Function11636e: ; 11636e + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, BGPals + ld de, UnknBGPals + ld bc, $0040 + call CopyBytes + pop af + ld [rSVBK], a + call SetPalettes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, $a0 + ld hl, Sprites + ld bc, 16 * 4 + call ByteFill + ld a, $90 + ld [hWY], a + call UpdateSprites + pop af + ld [rSVBK], a + callba ReloadMapPart + ld a, $8 + ld [MusicFade], a + ld a, [wMapMusic] + ld [MusicFadeIDLo], a + xor a + ld [MusicFadeIDHi], a + xor a + ld [$c319], a + ld [wc30d], a + ret + +; 1163c0 + +Function1163c0: ; 1163c0 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, $a0 + ld hl, Sprites + ld bc, 16 * 4 + call ByteFill + call DelayFrame + callba Function14146 + ld b, SCGB_MAPPALS + call GetSGBLayout + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $c320 + ld de, wd030 + ld bc, $0010 + call CopyBytes + pop af + ld [rSVBK], a + call SetPalettes + call DelayFrame + ld a, $90 + ld [hWY], a + call UpdateSprites + callba Function14157 + pop af + ld [rSVBK], a + callba ReloadMapPart + ld a, [wLinkMode] + cp $4 + jr z, .asm_11642a + ld a, $8 + ld [MusicFade], a + ld a, [wMapMusic] + ld [MusicFadeIDLo], a + xor a + ld [MusicFadeIDHi], a + jr .asm_116439 + +.asm_11642a + ld a, $8 + ld [MusicFade], a + ld a, $0 + ld [MusicFadeIDLo], a + ld a, $0 + ld [MusicFadeIDHi], a + +.asm_116439 + xor a + ld [$c319], a + ld [wc30d], a + ret + +; 116441 + +Function116441: ; 116441 + callba Function17d405 + ld a, $90 + ld [hWY], a + callba ReloadMapPart + ld a, $8 + ld [MusicFade], a + ld a, [wMapMusic] + ld [MusicFadeIDLo], a + xor a + ld [MusicFadeIDHi], a + xor a + ld [$c319], a + ld [wc30d], a + ret + +; 116468 + +Function116468: ; 116468 + call Function116567 + ld a, [wc314] + cp $d + jr nz, .asm_1164a8 + ld hl, wc30e + ld a, [hl] + cp $50 + jr nc, .asm_116484 + ld a, $50 + sub [hl] + add $50 + ld [wc3f1], a + jr .asm_11648d + +.asm_116484 + sub $50 + ld c, a + ld a, $50 + sub c + ld [wc3f1], a + +.asm_11648d + ld hl, wc30f + ld a, [hl] + cp $60 + jr nc, .asm_11649e + ld a, $60 + sub [hl] + add $60 + ld [wc3f3], a + ret + +.asm_11649e + sub $60 + ld c, a + ld a, $60 + sub c + ld [wc3f3], a + ret + +.asm_1164a8 + ld hl, wc30e + ld a, $b0 + cp [hl] + jr nc, .asm_1164b8 + ld a, [wc3f1] + and a + jr z, .asm_11650b + jr .asm_1164f2 + +.asm_1164b8 + ld a, [wc3f1] + sub [hl] + jr nc, .asm_1164c1 + xor $ff + inc a + +.asm_1164c1 + ld b, a + ld c, $0 + ld a, $5 +.asm_1164c6 + srl b + rr c + dec a + jr nz, .asm_1164c6 + ld a, c + ld [wc3fa], a + ld a, b + ld [wc3f9], a + ld a, [wc3f1] + sub [hl] + jr c, .asm_1164f2 + ld c, $0 + ld a, [wc3fa] + xor $ff + add $1 + rl c + ld [wc3fa], a + ld a, [wc3f9] + xor $ff + add c + ld [wc3f9], a + +.asm_1164f2 + ld a, [wc3f2] + ld l, a + ld a, [wc3f1] + ld h, a + ld a, [wc3fa] + ld e, a + ld a, [wc3f9] + ld d, a + add hl, de + ld a, l + ld [wc3f2], a + ld a, h + ld [wc3f1], a + +.asm_11650b + ld hl, wc30f + ld a, $b0 + cp [hl] + jr c, .asm_11654d + ld a, [wc3f3] + sub [hl] + jr nc, .asm_11651c + xor $ff + inc a + +.asm_11651c + ld b, a + ld c, $0 + ld a, $5 +.asm_116521 + srl b + rr c + dec a + jr nz, .asm_116521 + ld a, c + ld [wc3fc], a + ld a, b + ld [wc3fb], a + ld a, [wc3f3] + sub [hl] + jr c, .asm_11654d + ld c, $0 + ld a, [wc3fc] + xor $ff + add $1 + rl c + ld [wc3fc], a + ld a, [wc3fb] + xor $ff + add c + ld [wc3fb], a + +.asm_11654d + ld a, [wc3f4] + ld l, a + ld a, [wc3f3] + ld h, a + ld a, [wc3fc] + ld e, a + ld a, [wc3fb] + ld d, a + add hl, de + ld a, l + ld [wc3f4], a + ld a, h + ld [wc3f3], a + ret diff --git a/wram.asm b/wram.asm index d54cc5b2e..fd07a0d5e 100644 --- a/wram.asm +++ b/wram.asm @@ -308,7 +308,7 @@ wGlobalAnimYOffset:: ds 1 wGlobalAnimXOffset:: ds 1 wSpriteAnimsEnd:: -wc3c1:: ds 11 + ds 11 wc3cc:: ds 1 wc3cd:: ds 31 wc3ec:: ds 1 @@ -373,19 +373,21 @@ wBT_OTTemp:: battle_tower_struct wBT_OTTemp wMisc:: ; ds (SCREEN_WIDTH + 4) * (SCREEN_HEIGHT + 2) wBattle:: wc608:: + ds 7 +wc60f:: + ds 3 +wc612:: + ds 10 +wInitHourBuffer:: ; c61c + ds 10 +wc626:: + ds wc608 - @ wEnemyMoveStruct:: move_struct wEnemyMoveStruct -wc60f:: wPlayerMoveStruct:: move_struct wPlayerMoveStruct -wc616:: - ds -4 -wc612:: ds 4 + EnemyMonNick:: ds PKMN_NAME_LENGTH ; c616 - ds -5 -wInitHourBuffer:: ds 5 BattleMonNick:: ds PKMN_NAME_LENGTH ; c621 - ds -6 -wc626:: ds 6 BattleMon:: battle_struct BattleMon ; c62c @@ -637,10 +639,9 @@ wc6eb:: ds 1 wPayDayMoney:: ds 3 ; c6ec wSafariMonAngerCount:: ds 1 -wSafariMonEating:: -wc6f0:: ds 2 +wSafariMonEating:: ds 2 wEnemyBackupDVs:: ; used when enemy is transformed -wc6f2:: ds 2 + ds 2 AlreadyDisobeyed:: ; c6f4 ds 1 @@ -2763,15 +2764,12 @@ wdc0d:: ds 1 wdc0e:: ds 1 ; Sprite id of each decoration -wdc0f:: Bed:: ; dc0f ds 1 Carpet:: ; dc10 ds 1 -wdc11:: Plant:: ; dc11 ds 1 -wdc12:: Poster:: ; dc12 ds 1 Console:: ; dc13 @@ -2810,8 +2808,8 @@ FruitTreeFlags:: ; dc27 wLuckyNumberDayBuffer:: ds 2 ds 2 -wSpecialPhoneCallID:: ds 2 -wdc33:: ds 2 +wSpecialPhoneCallID:: ds 1 + ds 3 wBugContestStartTime:: ds 4 ; day, hour, min, sec wdc39:: ds 1 wUnusedTwoDayTimer:: ds 1