diff options
author | Andrew Martinek <andrewrmartinek@gmail.com> | 2016-06-12 12:29:01 -0400 |
---|---|---|
committer | Andrew Martinek <andrewrmartinek@gmail.com> | 2016-06-12 12:29:01 -0400 |
commit | dd53361639bed5a37b8eb626c648de82385cae07 (patch) | |
tree | 0c43b17c2d7397a91b8e129abe9521847bb35fde /src | |
parent | 3d06cd73dfc0ade96fa8f8d416e643fa6c1cc087 (diff) |
Gave names to a few memory locations and routines.
Diffstat (limited to 'src')
-rwxr-xr-x | src/engine/bank3.asm | 326 | ||||
-rwxr-xr-x | src/engine/bank4.asm | 18 | ||||
-rwxr-xr-x | src/engine/home.asm | 38 | ||||
-rwxr-xr-x | src/wram.asm | 23 |
4 files changed, 213 insertions, 192 deletions
diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 5d1c31f..2879afb 100755 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -53,7 +53,7 @@ LoadMap: ; c000 (3:4000) call Func_c17a .asm_c092 call DoFrameIfLCDEnabled - call Func_c491 + call SetScreenScroll call Func_c0ce ld hl, $d0b4 ld a, [hl] @@ -471,10 +471,10 @@ INCBIN "baserom.gbc",$c37a,$c41c - $c37a Func_c41c: ; c41c (3:441c) ld a, [wd332] sub $40 - ld [wd235], a + ld [wSCXBuffer], a ld a, [wd333] sub $40 - ld [wd236], a + ld [wSCYBuffer], a call Func_c430 ret @@ -485,7 +485,7 @@ Func_c430: ; c430 (3:4430) sla a sla a ld b, a - ld a, [wd235] + ld a, [wSCXBuffer] cp $b1 jr c, .asm_c445 xor a @@ -495,13 +495,13 @@ Func_c430: ; c430 (3:4430) jr c, .asm_c449 ld a, b .asm_c449 - ld [wd235], a + ld [wSCXBuffer], a ld a, [wd238] sla a sla a sla a ld b, a - ld a, [wd236] + ld a, [wSCYBuffer] cp $b9 jr c, .asm_c460 xor a @@ -511,19 +511,19 @@ Func_c430: ; c430 (3:4430) jr c, .asm_c464 ld a, b .asm_c464 - ld [wd236], a + ld [wSCYBuffer], a pop bc ret Func_c469: ; c469 (3:4469) - ld a, [wd235] + ld a, [wSCXBuffer] add $4 and $f8 rrca rrca rrca ld [wd233], a - ld a, [wd236] + ld a, [wSCYBuffer] add $4 and $f8 rrca @@ -532,17 +532,17 @@ Func_c469: ; c469 (3:4469) ld [wd234], a ret -Func_c484: ; c484 (3:4484) - ld a, [wd235] - ld [wd0b6], a - ld a, [wd236] - ld [wd0b7], a +SetScreenScrollWram: ; c484 (3:4484) + ld a, [wSCXBuffer] + ld [wSCX], a + ld a, [wSCYBuffer] + ld [wSCY], a ret -Func_c491: ; c491 (3:4491) - ld a, [wd0b6] +SetScreenScroll: ; c491 (3:4491) + ld a, [wSCX] ldh [hSCX], a - ld a, [wd0b7] + ld a, [wSCY] ldh [hSCY], a ret @@ -632,7 +632,7 @@ Func_c53d: ; c53d (3:453d) ld [wd4cf], a ld a, [wd335] bit 0, a - call nz, $4687 + call nz, Func_c687 ld a, [wd335] bit 1, a call nz, Func_c6dc @@ -651,12 +651,12 @@ Func_c554: ; c554 (3:4554) push bc push de call Func_c58b - ld a, [wd235] + ld a, [wSCXBuffer] ld d, a - ld a, [wd236] + ld a, [wSCYBuffer] ld e, a ld c, $2 - call Func_3dbf + call ModifyUnknownOAMBufferProperty ld a, [wd332] sub d add $8 @@ -676,11 +676,11 @@ Func_c58b: ; c58b (3:458b) ld b, a ld a, [wPlayerYCoord] ld c, a - call Func_3927 + call GetFloorObjectFromPos and $10 push af ld c, $f - call Func_3dbf + call ModifyUnknownOAMBufferProperty pop af ld a, [hl] jr z, .asm_c5a7 @@ -751,60 +751,63 @@ Func_c5e9: ; c5e9 (3:45e9) Func_c5fe: ; c5fe (3:45fe) push bc call Func_c653 - call Func_c619 + call AttemptScriptedMovement pop bc ret -Func_c607: ; c607 (3:4607) +StartScriptedMovement: ; c607 (3:4607) push bc ld a, [wd336] ld [wd4cf], a ld a, [$d339] - call $4656 - call Func_c619 + call FindScriptedMovementWithOffset + call AttemptScriptedMovement pop bc ret -Func_c619: ; c619 (3:4619) +; bc is the location the player is being scripted to move towards. +AttemptScriptedMovement: ; c619 (3:4619) push hl push bc ld a, b cp $1f - jr nc, .asm_c650 + jr nc, .quitMovement ld a, c cp $1f - jr nc, .asm_c650 - call Func_3927 - and $c0 - jr nz, .asm_c650 + jr nc, .quitMovement + call GetFloorObjectFromPos + and $40 | $80 ; the two impassable objects found in the floor map + jr nz, .quitMovement ld a, b ld [wPlayerXCoord], a ld a, c ld [wPlayerYCoord], a - ld a, [wd335] + ld a, [wd335] ; I believe everything starting here is animation related. or $1 ld [wd335], a ld a, $10 ld [wd338], a ld c, $f - call Func_3dbf + call ModifyUnknownOAMBufferProperty set 2, [hl] ld c, $e - call Func_3dbf + call ModifyUnknownOAMBufferProperty ld a, $4 ld [hl], a -.asm_c650 +.quitMovement pop bc pop hl ret Func_c653: ; c653 (3:4653) ld a, [wd334] + +FindScriptedMovementWithOffset: ; c656 (3:4656) rlca ld c, a ld b, $0 push hl - ld hl, Unknown_3973 + ld hl, ScriptedMovementOffsetTable add hl, bc ld a, [wPlayerXCoord] add [hl] @@ -833,9 +836,15 @@ Func_c66c: ; c66c (3:466c) pop bc pop hl ret -; 0xc687 -INCBIN "baserom.gbc",$c687,$c694 - $c687 +Func_c687: ; c687 (3:4687) + push bc + ld a, [$d33a] + ld c, a + ld a, [$d339] + call Func_c694 + pop bc + ret Func_c694: ; c694 (3:4694) push hl @@ -866,7 +875,7 @@ Func_c694: ; c694 (3:4694) ld a, [wd338] or a jr nz, .asm_c6c3 - ld hl, $d335 + ld hl, wd335 set 1, [hl] .asm_c6c3 call Func_c41c @@ -893,7 +902,7 @@ Func_c6d4: ; c6d4 (3:46d4) Func_c6dc: ; c6dc (3:46dc) push hl - ld hl, $d335 + ld hl, wd335 res 0, [hl] res 1, [hl] call Func_c6f7 @@ -909,10 +918,10 @@ Func_c6f7: ; c6f7 (3:46f7) ld a, [wd336] ld [wd4cf], a ld c, $f - call Func_3dbf + call ModifyUnknownOAMBufferProperty res 2, [hl] ld c, $e - call Func_3dbf + call ModifyUnknownOAMBufferProperty ld a, $ff ld [hl], a ret @@ -933,7 +942,7 @@ Func_c71e: ; c71e (3:471e) ld a, $ff ld [wd3b6], a call Func_c653 - call Func_3927 + call GetFloorObjectFromPos and $40 jr z, .asm_c73d farcall Func_1c72e @@ -1566,60 +1575,61 @@ Func_cc32: ; cc32 (3:4c32) INCBIN "baserom.gbc",$cc3e,$cc42 - $cc3e ; called when pressing a in front of an object. creates a pointer to the data right after an RST20 -; was called, then runs Func_3aed to handle that data +; was called, then runs RunOverworldScript to handle that data RST20: ; cc42 (3:4c42) pop hl ld a, l - ld [wd413], a + ld [wOWScriptPointer], a ld a, h - ld [wd414], a + ld [wOWScriptPointer+1], a xor a ld [wd412], a .asm_cc4f - call Func_3aed + call RunOverworldScript ld a, [wd412] or a jr z, .asm_cc4f - ld hl, $d413 + ld hl, wOWScriptPointer ld a, [hli] ld c, a ld b, [hl] push bc ret -Func_cc60: ; cc60 (3:4c60) +IncreaseOWScriptPointerBy1: ; cc60 (3:4c60) ld a, 1 - jr Func_cc7a -Func_cc64: ; cc64 (3:4c64) + jr IncreaseOWScriptPointer +IncreaseOWScriptPointerBy2: ; cc64 (3:4c64) ld a, 2 - jr Func_cc7a -Func_cc68: ; cc68 (3:4c68) + jr IncreaseOWScriptPointer +IncreaseOWScriptPointerBy4: ; cc68 (3:4c68) ld a, 4 - jr Func_cc7a -Func_cc6c: ; cc6c (3:4c6c) + jr IncreaseOWScriptPointer +IncreaseOWScriptPointerBy5: ; cc6c (3:4c6c) ld a, 5 - jr Func_cc7a -Func_cc70: ; cc70 (3:4c70) + jr IncreaseOWScriptPointer +IncreaseOWScriptPointerBy6: ; cc70 (3:4c70) ld a, 6 - jr Func_cc7a -Func_cc74: ; cc74 (3:4c74) + jr IncreaseOWScriptPointer +IncreaseOWScriptPointerBy7: ; cc74 (3:4c74) ld a, 7 - jr Func_cc7a -Func_cc78: ; cc78 (3:4c78) + jr IncreaseOWScriptPointer +IncreaseOWScriptPointerBy3: ; cc78 (3:4c78) ld a, 3 -Func_cc7a: ; cc7a (3:4c7a) +; AH! increases the RST20 pointer by a, given from the above ^ or supplied +IncreaseOWScriptPointer: ; cc7a (3:4c7a) ld c, a - ld a, [wd413] + ld a, [wOWScriptPointer] add c - ld [wd413], a - ld a, [wd414] + ld [wOWScriptPointer], a + ld a, [wOWScriptPointer+1] adc a, 00 - ld [wd414], a + ld [wOWScriptPointer+1], a ret Func_cc8b: ; cc8b (3:4c8b) - ld hl, wd413 + ld hl, wOWScriptPointer ld [hl], c inc hl ld [hl], b @@ -1641,10 +1651,10 @@ Func_cc9e: ; cc9e (3:4c9e) Func_cca0: ; cca0 (3:4ca0) push hl ld l, a - ld a, [wd413] + ld a, [wOWScriptPointer] add l ld l, a - ld a, [wd414] + ld a, [wOWScriptPointer+1] adc $0 ld h, a ld a, [hli] @@ -1667,11 +1677,11 @@ Func_ccb9: ; ccb9 (3:4cb9) Func_ccbe: ; ccbe (3:4cbe) ld a, $01 ld [wd412], a - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_ccc6: ; ccc6 (3:4cc6) call Func_c111 - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_cccc: ; cccc (3:4ccc) call Func_ccc6 @@ -1683,13 +1693,13 @@ Func_ccd4: ; ccd4 (3:4cd4) ld l, c ld h, b call Func_cc32 - jp Func_cc78 + jp IncreaseOWScriptPointerBy3 Func_ccdc: ; ccdc (3:4cdc) ld l, c ld h, b call Func_c891 - jp Func_cc78 + jp IncreaseOWScriptPointerBy3 Func_cce4: ; cce4 (3:4ce4) ld a, $1 @@ -1706,7 +1716,7 @@ Func_cce9: ; cce9 (3:4ce9) jp Func_cc8b .asm_ccfe - jp Func_cc6c + jp IncreaseOWScriptPointerBy5 ; this seems to be called when battles officially start. Might be a good way to find trainer data. Func_cd01: ; cd01 (3:4d01) @@ -1743,7 +1753,7 @@ asm_cd2f ld [wd0b5], a ld hl, wd0b4 set 6, [hl] - jp Func_cc68 + jp IncreaseOWScriptPointerBy4 Func_cd4f: ; cd4f (3:4d4f) call Func_cd66 @@ -1772,7 +1782,7 @@ Func_cd76: ; cd76 (3:4d76) ld [wd0b5], a ld hl, wd0b4 set 6, [hl] - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_cd83: ; cd83 (3:4d83) ld a, [$d415] @@ -1783,7 +1793,7 @@ Func_cd83: ; cd83 (3:4d83) ld l, c ld h, b call Func_cc32 - jp Func_cc6c + jp IncreaseOWScriptPointerBy5 Func_cd94: ; cd94 (3:4d94) call Func_ca69 @@ -1797,7 +1807,7 @@ Unknown_cd98: ld l, c ld h, b call Func_cc32 - jp Func_cc74 + jp IncreaseOWScriptPointerBy7 Func_cda8: ; cda8 (3:4da8) ld a, [$d415] @@ -1808,7 +1818,7 @@ Func_cda8: ; cda8 (3:4da8) ld l, c ld h, b call Func_c891 - jp Func_cc6c + jp IncreaseOWScriptPointerBy5 Func_cdb9: ; cdb9 (3:4db9) ld l, c @@ -1817,7 +1827,7 @@ Func_cdb9: ; cdb9 (3:4db9) call Func_c111 ld a, $1 ld [wd412], a - call Func_cc78 + call IncreaseOWScriptPointerBy3 pop hl ret @@ -1826,7 +1836,7 @@ Func_cdcb: ; cdcb (3:4dcb) ld [wd3aa], a Func_4dd1: ; cdd1 (3:4dd1) farcall Func_1c50a - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_cdd8: ; cdd8 (3:4dd8) ld a, [wd3aa] @@ -1863,7 +1873,7 @@ Func_cdf5: ; cdf5 (3:4df5) ld [wd3ab], a pop af ld [wd3aa], a - jp Func_cc78 + jp IncreaseOWScriptPointerBy3 Func_ce26: ; ce26 (3:4e26) ld a, [wd3b6] @@ -1885,7 +1895,7 @@ Func_ce3a: ; ce3a (3:4e3a) call DoFrameIfLCDEnabled farcall Func_1c7de jr nz, .asm_ce3e - jp Func_cc78 + jp IncreaseOWScriptPointerBy3 Func_ce4a: ; ce4a (3:4e4a) ld a, [wd3b6] @@ -1917,14 +1927,14 @@ Func_ce6f: ; ce6f (3:4e6f) push af call Func_cc9a push bc - call Func_cc60 + call IncreaseOWScriptPointerBy1 pop bc pop af jr asm_ce5d Func_ce84: ; ce84 (3:4e84) call Func_c135 - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_ce8a: ; ce8a (3:4e8a) xor a @@ -1949,7 +1959,7 @@ Func_ce8a: ; ce8a (3:4e8a) farcall BoosterPack_1031b .asm_ceb4 call Func_c2d4 - jp Func_cc68 + jp IncreaseOWScriptPointerBy4 Func_ceba: ; ceba (3:4eba) xor a @@ -1969,7 +1979,7 @@ Func_ceba: ; ceba (3:4eba) jr .asm_cec4 .asm_ced7 call Func_c2d4 - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 ; 0xcedd INCBIN "baserom.gbc",$cedd,$cee2 - $cedd @@ -1992,7 +2002,7 @@ Func_cee2: ; cee2 (3:4ee2) call Func_c1a4 call DoFrameIfLCDEnabled call Func_c2d4 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 .asm_cf09 xor a @@ -2013,7 +2023,7 @@ asm_cf16 asm_cf19 call Func_ccb9 - jp Func_cc68 + jp IncreaseOWScriptPointerBy4 asm_cf1f call Func_ccb3 @@ -2022,11 +2032,11 @@ asm_cf1f jp Func_cc8b asm_cf2a - jp Func_cc68 + jp IncreaseOWScriptPointerBy4 Func_cf2d: ; cf2d (3:4f2d) push bc - call Func_cc60 + call IncreaseOWScriptPointerBy1 pop bc call Func_1caa ld a, h @@ -2047,12 +2057,12 @@ Func_cf3f: ; cf3f (3:4f3f) .asm_cf46 call AddCardToCollection - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_cf4c: ; cf4c (3:4f4c) ld a, c call Func_1d91 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_cf53: ; cf53 (3:4f53) ld c, $1 @@ -2071,7 +2081,7 @@ Func_cf53: ; cf53 (3:4f53) jr nz, Func_cf6d Func_cf67: ; cf67 (3:4f67) call Func_ccb9 - jp Func_cc78 + jp IncreaseOWScriptPointerBy3 Func_cf6d: ; cf6d (3:4f6d) call Func_ccb3 @@ -2080,7 +2090,7 @@ Func_cf6d: ; cf6d (3:4f6d) jp Func_cc8b .asm_cf78 - jp Func_cc78 + jp IncreaseOWScriptPointerBy3 Func_cf7b: ; cf7b (3:4f7b) ld c, $1 @@ -2102,7 +2112,7 @@ Func_cf7b: ; cf7b (3:4f7b) ld a, c cp $8 jr c, .asm_cf7d - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 ; This function doesn't look like a valid function, but it's pointed to in the table. Func_cf96: ; cf96 (3:4f96) @@ -2141,7 +2151,7 @@ Func_cfc6: ; cfc6 (3:4fc6) ld [wd3aa], a ld a, c farcall Func_1c52e - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_cfd4: ; cfd4 (3:4fd4) call Func_ca69 @@ -2178,7 +2188,7 @@ Func_cfd4: ; cfd4 (3:4fd4) ld c, [hl] call Func_ca8f dec hl - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 INCBIN "baserom.gbc",$d006,$d00b - $d006 @@ -2197,7 +2207,7 @@ Func_d00b: ; d00b (3:500b) ld [hl], e inc hl ld [hl], d - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d025: ; d025 (3:5025) call Func_ca69 @@ -2217,7 +2227,7 @@ Func_d03f: ; d03f (3:503f) call Func_ca69 dec hl call Func_1d91 - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d049: ; d049 (3:5049) call Func_cc96 @@ -2225,42 +2235,42 @@ Func_d049: ; d049 (3:5049) Func_d04f: ; d04f (3:504f) call Func_cad8 - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d055: ; d055 (3:5055) ld a, c call Func_c5ce - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 + -; this is called when the player is moving forward in the intro sequence -Func_d05c: ; 505c (3:505c) +OWScript_MovePlayer: ; 505c (3:505c) ld a, c ld [$d339], a ld a, b ld [$d33a], a - call Func_c607 + call StartScriptedMovement .asm_d067 call DoFrameIfLCDEnabled - call Func_c491 + call SetScreenScroll call Func_c53d ld a, [wd335] and $03 jr nz, .asm_d067 call DoFrameIfLCDEnabled - call Func_c491 - jp Func_cc78 + call SetScreenScroll + jp IncreaseOWScriptPointerBy3 Func_d080: ; d080 (3:5080) ld a, c farcall Func_11893 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d088: ; d088 (3:5088) ld a, c ld [wd3ab], a call Func_cc9a call Func_c926 - jp Func_cc68 + jp IncreaseOWScriptPointerBy4 Func_d095: ; d095 (3:5095) ld a, [wd3b6] @@ -2284,7 +2294,7 @@ Func_d095: ; d095 (3:5095) .asm_d0b6 ld a, e farcall Func_1c57b - jp Func_cc68 + jp IncreaseOWScriptPointerBy4 Func_d0be: ; d0be (3:50be) ld a, [wd3b6] @@ -2293,7 +2303,7 @@ Func_d0be: ; d0be (3:50be) ld c, b ld b, a farcall Func_1c461 - jp Func_cc78 + jp IncreaseOWScriptPointerBy3 Func_d0ce: ; d0ce (3:50ce) push bc @@ -2301,7 +2311,7 @@ Func_d0ce: ; d0ce (3:50ce) pop bc dec c jr nz, Func_d0ce - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d0d9: ; d0d9 (3:50d9) ld a, [wd3b6] @@ -2355,7 +2365,7 @@ Func_d125: ; d125 (3:5125) pop af farcall Medal_1029e call Func_c2d4 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d135: ; d135 (3:5135) sla c @@ -2376,7 +2386,7 @@ Func_d135: ; d135 (3:5135) ld [hl], e inc hl ld [hl], d - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 INCBIN "baserom.gbc",$d153,$d16b - $d153 @@ -2403,7 +2413,7 @@ Func_d16b: ; d16b (3:516b) ld [hl], e inc hl ld [hl], d - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d195: ; d195 (3:5195) ld a, [wd3ab] @@ -2417,11 +2427,11 @@ Func_d195: ; d195 (3:5195) call Func_f580 pop af ld [wd3ab], a - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d1ad: ; d1ad (3:51ad) call MainMenu_c75a - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d1b3: ; d1b3 (3:51b3) call Func_ca69 @@ -2448,7 +2458,7 @@ asm_d1c6 ld [wce3f], a ld a, [hl] ld [wce40], a - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 INCBIN "baserom.gbc",$d1dc,$d209 - $d1dc @@ -2488,7 +2498,7 @@ INCBIN "baserom.gbc",$d234,$d244 - $d234 Func_d244: ; d244 (3:5244) ld a, c farcall Func_80ba4 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d24c: ; d24c (3:524c) ld hl, $525e @@ -2498,7 +2508,7 @@ Func_d24c: ; d24c (3:524c) ld c, a call Func_ca8f halt - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 INCBIN "baserom.gbc",$d25e,$d271 - $d25e @@ -2506,7 +2516,7 @@ Func_d271: ; d271 (3:5271) ld hl, $527b xor a call Func_d28c - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 ; 0xd27b INCBIN "baserom.gbc",$d27b,$d28c - $d27b @@ -2597,7 +2607,7 @@ Func_d2f6: ; d2f6 (3:52f6) ld [hl], l xor a ld [$d694], a - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 ; 0xd30c INCBIN "baserom.gbc",$d30c,$d317 - $d30c @@ -2610,7 +2620,7 @@ Func_d317: ; d317 (3:5317) ld c, a call Func_ca8f ld [hl], l - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 INCBIN "baserom.gbc",$d32b,$d336 - $d32b @@ -2640,12 +2650,12 @@ DeckMachine_d336: ; d336 (3:5336) .asm_d364 call Func_37a0 call Func_c2d4 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d36d: ; d36d (3:536d) - ld a, [wd413] + ld a, [wOWScriptPointer] ld l, a - ld a, [wd414] + ld a, [wOWScriptPointer+1] ld h, a inc hl ld a, [hli] @@ -2659,15 +2669,15 @@ Func_d36d: ; d36d (3:536d) ld [wd0be], a ld hl, wd0b4 set 4, [hl] - jp Func_cc70 + jp IncreaseOWScriptPointerBy6 Func_d38f: ; d38f (3:538f) farcall Func_10c96 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d396: ; d396 (3:5396) farcall Func_1157c - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d39d: ; d39d (3:539d) ld a, c @@ -2686,7 +2696,7 @@ Func_d39d: ; d39d (3:539d) set 6, [hl] .asm_d3b6 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d3b9: ; d3b9 (3:53b9) call Func_3917 @@ -2694,20 +2704,20 @@ Func_d3b9: ; d3b9 (3:53b9) ld [wd0b5], a ld hl, wd0b4 set 6, [hl] - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d3c9: ; d3c9 (3:53c9) ld a, c farcall Func_10a70 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d3d1: ; d3d1 (3:53d1) - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d3d4: ; d3d4 (3:53d4) ld a, [$d693] bank1call Func_7576 - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 INCBIN "baserom.gbc",$d3dd,$d3e0 - $d3dd @@ -2722,62 +2732,62 @@ Func_d3e0: ; d3e0 (3:53e0) cp $2 jr nz, .asm_d3e9 farcall Func_10f2e - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d3fe: ; d3fe (3:53fe) ld a, c ld [wd112], a call PlaySong - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d408: ; d408 (3:5408) ld a, c ld [wd111], a - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d40f: ; d40f (3:540f) ld a, c call Func_3c83 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d416: ; d416 (3:5416) ld a, c call Func_3796 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d41d: ; d41d (3:541d) call Func_39fc - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d423: ; d423 (3:5423) call Func_379b - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d429: ; d429 (3:5429) call Func_37a0 - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d42f: ; d42f (3:542f) call Func_3c96 - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d435: ; d435 (3:5435) ld a, c farcall Func_1c83d - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d43d: ; d43d (3:543d) ld a, $6 ld [wd0b5], a ld hl, wd0b4 set 6, [hl] - jp Func_cc60 + jp IncreaseOWScriptPointerBy1 Func_d44a: ; d44a (3:544a) ld a, c ld c, b call Func_ca92 - jp Func_cc78 + jp IncreaseOWScriptPointerBy3 Func_d452: ; d452 (3:5452) ld a, c @@ -2787,7 +2797,7 @@ Func_d452: ; d452 (3:5452) ld c, a pop af call Func_ca92 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d460: ; d460 (3:5460) ld a, c @@ -2796,7 +2806,7 @@ Func_d460: ; d460 (3:5460) jr z, asm_d46d asm_d467 call Func_ccb9 - jp Func_cc68 + jp IncreaseOWScriptPointerBy4 asm_d46d call Func_ccb3 @@ -2805,7 +2815,7 @@ asm_d46d jp Func_cc8b .asm_d478 - jp Func_cc68 + jp IncreaseOWScriptPointerBy4 Func_d47b: ; d47b (3:547b) ld a, c @@ -2821,7 +2831,7 @@ Func_d484: ; d484 (3:5484) Func_d48a: ; d48a (3:548a) call Func_ccb9 - jp Func_cc6c + jp IncreaseOWScriptPointerBy5 Func_d490: ; d490 (3:5490) call Func_ccb3 @@ -2830,7 +2840,7 @@ Func_d490: ; d490 (3:5490) jp Func_cc8b .asm_d49b - jp Func_cc6c + jp IncreaseOWScriptPointerBy5 Func_d49e: ; d49e (3:549e) call Func_d4b6 @@ -2859,12 +2869,12 @@ Func_d4b6: ; d4b6 (3:54b6) Func_d4bc: ; d4bc (3:54bc) ld a, c call Func_cac5 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d4c3: ; d4c3 (3:54c3) ld a, c call Func_cad0 - jp Func_cc64 + jp IncreaseOWScriptPointerBy2 Func_d4ca: ; d4ca (3:54ca) ld a, c @@ -2877,7 +2887,7 @@ Func_d4d1: jr z, .asm_d4dc jp Func_cc8b .asm_d4dc - jp Func_cc68 + jp IncreaseOWScriptPointerBy4 Func_d4df: ld a, c @@ -2886,7 +2896,7 @@ Func_d4df: jr z, Func_d4d1 asm_d4e6 call Func_ccb9 - jp Func_cc68 + jp IncreaseOWScriptPointerBy4 ; 0xd4ec INCBIN "baserom.gbc",$d4ec,$f580 - $d4ec diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index 84313f5..a3fee53 100755 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -496,7 +496,7 @@ Func_10fbc: ; 10fbc (4:4fbc) ld a, $25 farcall Func_1299f ld c, $2 - call Func_3dbf + call ModifyUnknownOAMBufferProperty ld a, $80 ld [hli], a ld a, $10 @@ -534,7 +534,7 @@ Func_10fde: ; 10fde (4:4fde) or a jr nz, .asm_11015 ld c, $f - call Func_3dbf + call ModifyUnknownOAMBufferProperty set 7, [hl] .asm_11015 ret @@ -553,7 +553,7 @@ Func_11024: ; 11024 (4:5024) ld a, [wd336] ld [wd4cf], a ld c, $f - call Func_3dbf + call ModifyUnknownOAMBufferProperty set 2, [hl] ld hl, Unknown_1229f ld a, [wd33d] @@ -626,7 +626,7 @@ Func_110a6: ; 110a6 (4:50a6) push hl push bc ld c, $2 - call Func_3dbf + call ModifyUnknownOAMBufferProperty pop bc ld a, b sub [hl] @@ -766,7 +766,7 @@ Func_11184: ; 11184 (4:5184) ld a, [wd348] ld e, a ld c, $2 - call Func_3dbf + call ModifyUnknownOAMBufferProperty ld a, [wd343] add d ld d, a @@ -963,9 +963,9 @@ INCLUDE "data/unknownNPCData.asm" INCBIN "baserom.gbc",$11f4e,$1217b - $11f4e -PointerTable_1217b: ; 1217b (4:617b) +OverworldScriptTable: ; 1217b (4:617b) dw Func_ccbe - dw Func_ccc6 + dw Func_ccc6 ; seems to end conversation with mason and starts bringing aid over dw Func_ccd4 ; Seems to begin dialogue with NPCs dw Func_ccdc dw Func_cce9 ; opens the "start battle?" box @@ -994,7 +994,7 @@ PointerTable_1217b: ; 1217b (4:617b) dw Func_d049 dw Func_d04f dw Func_d055 - dw Func_d05c + dw OWScript_MovePlayer dw Func_cee2 dw Func_d080 dw Func_d088 @@ -1255,7 +1255,7 @@ Func_12ab5: ; 12ab5 (4:6ab5) push hl push af ld c, $5 - call Func_3dbf + call ModifyUnknownOAMBufferProperty pop af cp [hl] pop hl diff --git a/src/engine/home.asm b/src/engine/home.asm index 49b7dc0..93264a3 100755 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -6730,9 +6730,9 @@ Func_380e: ; 380e (0:380e) ret nz ldh a, [hBankROM] push af - ld a, BANK(Func_c484) + ld a, BANK(SetScreenScrollWram) call BankswitchHome - call Func_c484 + call SetScreenScrollWram call Func_c554 ld a, BANK(Func_1c610) call BankswitchHome @@ -6875,9 +6875,9 @@ Func_3917: ; 3917 (0:3917) call DisableExtRAM ret -Func_3927: ; 3927 (0:3927) +GetFloorObjectFromPos: ; 3927 (0:3927) push hl - call Func_3946 + call FindFloorTileFromPos ld a, [hl] pop hl ret @@ -6885,7 +6885,8 @@ Func_3927: ; 3927 (0:3927) INCBIN "baserom.gbc",$392e,$3946 - $392e -Func_3946: ; 3946 (0:3946) +; puts a floor tile in hc given coords in bc (x,y. measured in tiles) +FindFloorTileFromPos: ; 3946 (0:3946) push bc srl b srl c @@ -6895,7 +6896,7 @@ Func_3946: ; 3946 (0:3946) or b ld c, a ld b, $0 - ld hl, $d133 + ld hl, wFloorObjectMap add hl, bc pop bc ret @@ -6913,8 +6914,12 @@ Func_395a: ; 395a (0:395a) Unknown_396b: ; 396b (0:396b) INCBIN "baserom.gbc",$396b,$3973 - $396b -Unknown_3973: ; 3973 (0:3973) -INCBIN "baserom.gbc",$3973,$397b - $3973 +; Movement offsets for scripted movements +ScriptedMovementOffsetTable: ; 3973 (0:3973) + db $00, -$02 ; move 2 tiles up + db $02, $00 ; move 2 tiles right + db $00, $02 ; move 2 tiles down + db -$02, $00 ; move 2 tiles left Unknown_397b: ; 397b (0:397b) INCBIN "baserom.gbc",$397b,$3997 - $397b @@ -7134,9 +7139,9 @@ Func_3abd: ; 3abd (0:3abd) INCBIN "baserom.gbc",$3ae8,$3aed - $3ae8 -; finds a pointer on a table (in bank 4) using the data after rst20 is called and jumps to it (in bank 3) -Func_3aed: ; 3aed (0:3aed) - ld hl, $d413 +; finds an OWScript from the first byte and puts the next two bytes (usually arguments?) into bc +RunOverworldScript: ; 3aed (0:3aed) + ld hl, wOWScriptPointer ld a, [hli] ld h, [hl] ld l, a @@ -7148,11 +7153,11 @@ Func_3aed: ; 3aed (0:3aed) rlca ld c, a ld b, $0 - ld hl, PointerTable_1217b + ld hl, OverworldScriptTable add hl, bc ldh a, [hBankROM] push af - ld a, BANK(PointerTable_1217b) + ld a, BANK(OverworldScriptTable) call BankswitchHome ld a, [hli] ld h, [hl] @@ -7429,11 +7434,12 @@ Func_3d72: ; 3d72 (0:3d72) Func_3db7: ; 3db7 (0:3db7) push bc ld c, $0 - call Func_3dbf + call ModifyUnknownOAMBufferProperty pop bc ret -Func_3dbf: ; 3dbf (0:3dbf) +; this needs to be determined after we learn more about the buffer. +ModifyUnknownOAMBufferProperty: ; 3dbf (0:3dbf) ld a, [wd4cf] cp $10 jr c, .asm_3dc9 @@ -7449,7 +7455,7 @@ Func_3dbf: ; 3dbf (0:3dbf) and $f0 or c ld c, a - ld hl, $d4d0 + ld hl, wOAMBuffer add hl, bc pop bc ret diff --git a/src/wram.asm b/src/wram.asm index 0fbb3f0..f7cfefa 100755 --- a/src/wram.asm +++ b/src/wram.asm @@ -787,10 +787,10 @@ wd0b4:: ; d0b4 wd0b5:: ; d0b5 ds $1 -wd0b6:: ; d0b6 +wSCX:: ; d0b6 ds $1 -wd0b7:: ; d0b7 +wSCY:: ; d0b7 ds $1 wd0b8:: ; d0b8 @@ -911,6 +911,7 @@ wd132:: ; d132 ds $1 wBoosterViableCardList:: ; d133 +wFloorObjectMap:: ; map of the current room with unpassable objects (walls, NPCs, etc). Might be a permission map ds $100 wd233:: ; d233 @@ -919,10 +920,10 @@ wd233:: ; d233 wd234:: ; d234 ds $1 -wd235:: ; d235 +wSCXBuffer:: ; d235 ds $1 -wd236:: ; d236 +wSCYBuffer:: ; d236 ds $1 wd237:: ; d237 @@ -1054,11 +1055,10 @@ wd411:: ; d411 wd412:: ; d412 ds $1 -wd413:: ; d413 - ds $1 +wOWScriptPointer:: ; d413 + ds $2 -wd414:: ; d414 - ds $9 + ds $8 wd41d:: ; d41d ds $1 @@ -1114,8 +1114,13 @@ wd4ca:: ; d4ca wd4cb:: ; d4cb ds $4 +; some sort of control bit for the OAMBuffer wd4cf:: ; d4cf - ds $104 + ds $1 + +; this might be more of an animation buffer as I can't find any properties like which tile sprites take up are. +wOAMBuffer:: ; d4d0 + ds $103 wd5d3:: ; d5d3 ds $4 |