diff --git a/audio/engine.asm b/audio/engine.asm index 14c007935..fef41bb5d 100644 --- a/audio/engine.asm +++ b/audio/engine.asm @@ -1293,7 +1293,7 @@ GetNoiseSample: ; e86c5 ld e, a ld d, $00 ; load ptr to noise sample set in hl - ld hl, NoiseSampleSetsPointers + ld hl, Drumkits add hl, de add hl, de ld a, [hli] @@ -2813,306 +2813,305 @@ WaveSamples: ; e8db2 db $11, $00, $00, $08, $00, $13, $57, $9a, $b4, $ba, $a9, $98, $87, $65, $43, $21 ; e8e52 -NoiseSampleSetsPointers: ; e8e52 - dw NoiseSampleSets0 - dw NoiseSampleSets1 - dw NoiseSampleSets2 - dw NoiseSampleSets3 - dw NoiseSampleSets4 - dw NoiseSampleSets5 +Drumkits: ; e8e52 + dw Drumkit0 + dw Drumkit1 + dw Drumkit2 + dw Drumkit3 + dw Drumkit4 + dw Drumkit5 ; e8e5e -NoiseSampleSets: -NoiseSampleSets0: ; e8e5e - dw NoiseSampleSet00 ; rest - dw NoiseSampleSet01 ; c - dw NoiseSampleSet02 ; c# - dw NoiseSampleSet03 ; d - dw NoiseSampleSet04 ; d# - dw NoiseSampleSet05 ; e - dw NoiseSampleSet06 ; f - dw NoiseSampleSet07 ; f# - dw NoiseSampleSet08 ; g - dw NoiseSampleSet09 ; g# - dw NoiseSampleSet10 ; a - dw NoiseSampleSet11 ; a# - dw NoiseSampleSet12 ; b -NoiseSampleSets1: ; e8e78 - dw NoiseSampleSet00 - dw NoiseSampleSet08 - dw NoiseSampleSet09 - dw NoiseSampleSet10 - dw NoiseSampleSet11 - dw NoiseSampleSet12 - dw NoiseSampleSet13 - dw NoiseSampleSet14 - dw NoiseSampleSet15 - dw NoiseSampleSet16 - dw NoiseSampleSet17 - dw NoiseSampleSet18 - dw NoiseSampleSet19 -NoiseSampleSets2: ; e8e92 - dw NoiseSampleSet00 - dw NoiseSampleSet01 - dw NoiseSampleSet17 - dw NoiseSampleSet18 - dw NoiseSampleSet19 - dw NoiseSampleSet05 - dw NoiseSampleSet06 - dw NoiseSampleSet07 - dw NoiseSampleSet08 - dw NoiseSampleSet09 - dw NoiseSampleSet10 - dw NoiseSampleSet11 - dw NoiseSampleSet12 -NoiseSampleSets3: ; e8eac - dw NoiseSampleSet21 - dw NoiseSampleSet22 - dw NoiseSampleSet23 - dw NoiseSampleSet24 - dw NoiseSampleSet25 - dw NoiseSampleSet26 - dw NoiseSampleSet20 - dw NoiseSampleSet27 - dw NoiseSampleSet28 - dw NoiseSampleSet29 - dw NoiseSampleSet21 - dw NoiseSampleSet37 - dw NoiseSampleSet34 -NoiseSampleSets4: ; e8ec6 - dw NoiseSampleSet21 - dw NoiseSampleSet20 - dw NoiseSampleSet23 - dw NoiseSampleSet24 - dw NoiseSampleSet25 - dw NoiseSampleSet33 - dw NoiseSampleSet26 - dw NoiseSampleSet35 - dw NoiseSampleSet31 - dw NoiseSampleSet32 - dw NoiseSampleSet36 - dw NoiseSampleSet37 - dw NoiseSampleSet30 -NoiseSampleSets5: ; e8ee0 - dw NoiseSampleSet00 - dw NoiseSampleSet17 - dw NoiseSampleSet18 - dw NoiseSampleSet19 - dw NoiseSampleSet27 - dw NoiseSampleSet28 - dw NoiseSampleSet29 - dw NoiseSampleSet05 - dw NoiseSampleSet06 - dw NoiseSampleSet30 - dw NoiseSampleSet24 - dw NoiseSampleSet23 - dw NoiseSampleSet37 +Drumkit0: ; e8e5e + dw Drum00 ; rest + dw Snare1 ; c + dw Snare2 ; c# + dw Snare3 ; d + dw Snare4 ; d# + dw Drum05 ; e + dw Triangle1 ; f + dw Triangle2 ; f# + dw HiHat1 ; g + dw Snare5 ; g# + dw Snare6 ; a + dw Snare7 ; a# + dw HiHat2 ; b +Drumkit1: ; e8e78 + dw Drum00 + dw HiHat1 + dw Snare5 + dw Snare6 + dw Snare7 + dw HiHat2 + dw HiHat3 + dw Snare8 + dw Triangle3 + dw Triangle4 + dw Snare9 + dw Snare10 + dw Snare11 +Drumkit2: ; e8e92 + dw Drum00 + dw Snare1 + dw Snare9 + dw Snare10 + dw Snare11 + dw Drum05 + dw Triangle1 + dw Triangle2 + dw HiHat1 + dw Snare5 + dw Snare6 + dw Snare7 + dw HiHat2 +Drumkit3: ; e8eac + dw Drum21 + dw Snare12 + dw Snare13 + dw Snare14 + dw Kick1 + dw Triangle5 + dw Drum20 + dw Drum27 + dw Drum28 + dw Drum29 + dw Drum21 + dw Kick2 + dw Crash2 +Drumkit4: ; e8ec6 + dw Drum21 + dw Drum20 + dw Snare13 + dw Snare14 + dw Kick1 + dw Drum33 + dw Triangle5 + dw Drum35 + dw Drum31 + dw Drum32 + dw Drum36 + dw Kick2 + dw Crash1 +Drumkit5: ; e8ee0 + dw Drum00 + dw Snare9 + dw Snare10 + dw Snare11 + dw Drum27 + dw Drum28 + dw Drum29 + dw Drum05 + dw Triangle1 + dw Crash1 + dw Snare14 + dw Snare13 + dw Kick2 ; e8efa -NoiseSampleSet00: ; e8efa +Drum00: ; e8efa ; unused - db $20, $11, $00 + noise $20, $11, $00 db $ff ; end ; e8efe -NoiseSampleSet01: ; e8efe - db $20, $c1, $33 +Snare1: ; e8efe + noise $20, $c1, $33 db $ff ; end ; e8f02 -NoiseSampleSet02: ; e8f02 - db $20, $b1, $33 +Snare2: ; e8f02 + noise $20, $b1, $33 db $ff ; end ; e8f06 -NoiseSampleSet03: ; e8f06 - db $20, $a1, $33 +Snare3: ; e8f06 + noise $20, $a1, $33 db $ff ; end ; e8f0a -NoiseSampleSet04: ; e8f0a - db $20, $81, $33 +Snare4: ; e8f0a + noise $20, $81, $33 db $ff ; end ; e8f0e -NoiseSampleSet05: ; e8f0e - db $27, $84, $37 - db $26, $84, $36 - db $25, $83, $35 - db $24, $83, $34 - db $23, $82, $33 - db $22, $81, $32 +Drum05: ; e8f0e + noise $27, $84, $37 + noise $26, $84, $36 + noise $25, $83, $35 + noise $24, $83, $34 + noise $23, $82, $33 + noise $22, $81, $32 db $ff ; end ; e8f21 -NoiseSampleSet06: ; e8f21 - db $20, $51, $2a +Triangle1: ; e8f21 + noise $20, $51, $2a db $ff ; end ; e8f25 -NoiseSampleSet07: ; e8f25 - db $21, $41, $2b - db $20, $61, $2a +Triangle2: ; e8f25 + noise $21, $41, $2b + noise $20, $61, $2a db $ff ; end ; e8f2c -NoiseSampleSet08: ; e8f2c - db $20, $81, $10 +HiHat1: ; e8f2c + noise $20, $81, $10 db $ff ; end ; e8f30 -NoiseSampleSet09: ; e8f30 - db $20, $82, $23 +Snare5: ; e8f30 + noise $20, $82, $23 db $ff ; end ; e8f34 -NoiseSampleSet10: ; e8f34 - db $20, $82, $25 +Snare6: ; e8f34 + noise $20, $82, $25 db $ff ; end ; e8f38 -NoiseSampleSet11: ; e8f38 - db $20, $82, $26 +Snare7: ; e8f38 + noise $20, $82, $26 db $ff ; end ; e8f3c -NoiseSampleSet12: ; e8f3c - db $20, $a1, $10 +HiHat2: ; e8f3c + noise $20, $a1, $10 db $ff ; end ; e8f40 -NoiseSampleSet13: ; e8f40 - db $20, $a2, $11 +HiHat3: ; e8f40 + noise $20, $a2, $11 db $ff ; end ; e8f44 -NoiseSampleSet14: ; e8f44 - db $20, $a2, $50 +Snare8: ; e8f44 + noise $20, $a2, $50 db $ff ; end ; e8f48 -NoiseSampleSet15: ; e8f48 - db $20, $a1, $18 - db $20, $31, $33 +Triangle3: ; e8f48 + noise $20, $a1, $18 + noise $20, $31, $33 db $ff ; end ; e8f4f -NoiseSampleSet16: ; e8f4f - db $22, $91, $28 - db $20, $71, $18 +Triangle4: ; e8f4f + noise $22, $91, $28 + noise $20, $71, $18 db $ff ; end ; e8f56 -NoiseSampleSet17: ; e8f56 - db $20, $91, $22 +Snare9: ; e8f56 + noise $20, $91, $22 db $ff ; end ; e8f5a -NoiseSampleSet18: ; e8f5a - db $20, $71, $22 +Snare10: ; e8f5a + noise $20, $71, $22 db $ff ; end ; e8f5e -NoiseSampleSet19: ; e8f5e - db $20, $61, $22 +Snare11: ; e8f5e + noise $20, $61, $22 db $ff ; end ; e8f62 -NoiseSampleSet20: ; e8f62 - db $20, $11, $11 +Drum20: ; e8f62 + noise $20, $11, $11 db $ff ; end ; e8f66 -NoiseSampleSet21: ; e8f66 +Drum21: ; e8f66 db $ff ; e8f67 -NoiseSampleSet22: ; e8f67 - db $20, $91, $33 +Snare12: ; e8f67 + noise $20, $91, $33 db $ff ; end ; e8f6b -NoiseSampleSet23: ; e8f6b - db $20, $51, $32 +Snare13: ; e8f6b + noise $20, $51, $32 db $ff ; end ; e8f6f -NoiseSampleSet24: ; e8f6f - db $20, $81, $31 +Snare14: ; e8f6f + noise $20, $81, $31 db $ff ; end ; e8f73 -NoiseSampleSet25: ; e8f73 - db $20, $88, $6b - db $20, $71, $00 +Kick1: ; e8f73 + noise $20, $88, $6b + noise $20, $71, $00 db $ff ; end ; e8f7a -NoiseSampleSet26: ; e8f7a - db $30, $91, $18 +Triangle5: ; e8f7a + noise $30, $91, $18 db $ff ; end ; e8f7e -NoiseSampleSet27: ; e8f7e - db $27, $92, $10 +Drum27: ; e8f7e + noise $27, $92, $10 db $ff ; end ; e8f82 -NoiseSampleSet28: ; e8f82 - db $33, $91, $00 - db $33, $11, $00 +Drum28: ; e8f82 + noise $33, $91, $00 + noise $33, $11, $00 db $ff ; end ; e8f89 -NoiseSampleSet29: ; e8f89 - db $33, $91, $11 - db $33, $11, $00 +Drum29: ; e8f89 + noise $33, $91, $11 + noise $33, $11, $00 db $ff ; end ; e8f90 -NoiseSampleSet30: ; e8f90 - db $33, $88, $15 - db $20, $65, $12 +Crash1: ; e8f90 + noise $33, $88, $15 + noise $20, $65, $12 db $ff ; end ; e8f97 -NoiseSampleSet31: ; e8f97 - db $33, $51, $21 - db $33, $11, $11 +Drum31: ; e8f97 + noise $33, $51, $21 + noise $33, $11, $11 db $ff ; end ; e8f9e -NoiseSampleSet32: ; e8f9e - db $33, $51, $50 - db $33, $11, $11 +Drum32: ; e8f9e + noise $33, $51, $50 + noise $33, $11, $11 db $ff ; end ; e8fa5 -NoiseSampleSet33: ; e8fa5 - db $20, $a1, $31 +Drum33: ; e8fa5 + noise $20, $a1, $31 db $ff ; end ; e8fa9 -NoiseSampleSet34: ; e8fa9 - db $20, $84, $12 +Crash2: ; e8fa9 + noise $20, $84, $12 db $ff ; end ; e8fad -NoiseSampleSet35: ; e8fad - db $33, $81, $00 - db $33, $11, $00 +Drum35: ; e8fad + noise $33, $81, $00 + noise $33, $11, $00 db $ff ; end ; e8fb4 -NoiseSampleSet36: ; e8fb4 - db $33, $81, $21 - db $33, $11, $11 +Drum36: ; e8fb4 + noise $33, $81, $21 + noise $33, $11, $11 db $ff ; end ; e8fbb -NoiseSampleSet37: ; e8fbb - db $20, $a8, $6b - db $20, $71, $00 +Kick2: ; e8fbb + noise $20, $a8, $6b + noise $20, $71, $00 db $ff ; end ; e8fc2 diff --git a/main.asm b/main.asm index 3f6c50384..2693e7ef9 100644 --- a/main.asm +++ b/main.asm @@ -71188,12 +71188,12 @@ Function8c5dc: ; 8c5dc (23:45dc) call DelayFrame jr Function8c673 .asm_8c639 - ld hl, $46a1 + ld hl, Unknown_8c6a1 ld a, [TimeOfDayPal] ; $d841 - and $3 - cp $3 + and 3 + cp 3 jr nz, .asm_8c648 - ld hl, $46a9 + ld hl, Unknown_8c6a9 .asm_8c648 ld a, [rSVBK] ; $ff00+$70 push af @@ -71243,16 +71243,33 @@ Function8c698: ; 8c698 (23:4698) ret ; 8c6a1 (23:46a1) -INCBIN "baserom.gbc",$8c6a1,$8c6b1 - $8c6a1 +Unknown_8c6a1: ; 8c6a1 + RGB 31, 18, 29 + RGB 31, 11, 15 + RGB 31, 05, 05 + RGB 07, 07, 07 +; 8c6a9 + +Unknown_8c6a9: ; 8c6a9 + RGB 31, 18, 29 + RGB 31, 05, 05 + RGB 31, 05, 05 + RGB 31, 05, 05 +; 8c6b1 ; known jump sources: 8c5fa (23:45fa) Function8c6b1: ; 8c6b1 (23:46b1) ld a, [OtherTrainerClass] ; $d22f - ld de, $46b8 + ld de, Unknown_8c6b8 ret ; 8c6b8 (23:46b8) -INCBIN "baserom.gbc",$8c6b8,$8c6d8 - $8c6b8 +Unknown_8c6b8: ; 8c6b8 + db $03, $c0, $0f, $f0, $3c, $3c, $30, $0c + db $60, $06, $63, $c6, $c6, $63, $fc, $3f + db $fc, $3f, $c6, $63, $63, $c6, $60, $06 + db $30, $0c, $3c, $3c, $0f, $f0, $03, $c0 +; 8c6d8 Function8c6d8: ; 8c6d8 ld a, [rSVBK] @@ -71299,14 +71316,14 @@ Function8c6f7: ; 8c6f7 (23:46f7) Function8c70c: ; 8c70c (23:470c) ld e, a ld a, d - ld d, $0 - ld hl, $4728 + ld d, 0 + ld hl, Unknown_8c728 add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] - ld hl, $0 + ld hl, 0 .asm_8c71b srl a jr nc, .asm_8c720 @@ -71319,12 +71336,19 @@ Function8c70c: ; 8c70c (23:470c) ret ; 8c728 (23:4728) -INCBIN "baserom.gbc",$8c728,$8c768 - $8c728 +Unknown_8c728: ; 8c728 +; Another sine wave? +x set 0 + rept $20 + dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up +x set x + $100 * $40000 + endr +; 8c768 ; no known jump sources Function8c768: ; 8c768 (23:4768) callba Function5602 - ld de, $4792 + ld de, Unknown_8c792 .asm_8c771 ld a, [de] cp $ff @@ -71351,7 +71375,18 @@ Function8c768: ; 8c768 (23:4768) ret ; 8c792 (23:4792) -INCBIN "baserom.gbc",$8c792,$8c7b7 - $8c792 +Unknown_8c792: ; 8c792 + dbbw 4, 2, $c548 ; (8, 8) + dbbw 6, 4, $c533 ; (7, 7) + dbbw 8, 6, $c51e ; (6, 6) + dbbw 10, 8, $c509 ; (5, 5) + dbbw 12, 10, $c4f4 ; (4, 4) + dbbw 14, 12, $c4df ; (3, 3) + dbbw 16, 14, $c4ca ; (2, 2) + dbbw 18, 16, $c4b5 ; (1, 1) + dbbw 20, 18, $c4a0 ; (0, 0) + db $ff +; 8c7b7 ; known jump sources: 8c784 (23:4784) Function8c7b7: ; 8c7b7 (23:47b7) @@ -71372,11 +71407,18 @@ Function8c7b7: ; 8c7b7 (23:47b7) ret ; 8c7c9 (23:47c9) -INCBIN "baserom.gbc",$8c7c9,$8c7d4 - $8c7c9 +Function8c7c9: ; 8c7c9 + ld a, $1 + ld [hBGMapMode], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ret +; 8c7d4 Function8c7d4: ; 8c7d4 call WaitSFX - ld de, $0053 + ld de, SFX_SURF call PlaySFX call WaitSFX ret @@ -71397,13 +71439,13 @@ Function8c7e1: ; 8c7e1 Function8c80a: ; 8c80a callba Function8cf53 - ld de, $49cc + ld de, GFX_8c9cc ld hl, VTiles1 - ld bc, $2304 + lb bc, BANK(GFX_8c9cc), 4 call Request2bpp - ld de, $4893 + ld de, HeadbuttTreeGFX ld hl, $8840 - ld bc, $2308 + lb bc, BANK(HeadbuttTreeGFX), 8 call Request2bpp call Function8cad3 ld a, $1b @@ -71418,7 +71460,7 @@ Function8c80a: ; 8c80a ld a, $20 ld [$cf64], a call WaitSFX - ld de, $006d + ld de, SFX_SANDSTORM call PlaySFX .asm_8c852 ld hl, $cf64 @@ -71442,15 +71484,17 @@ Function8c80a: ; 8c80a ld bc, $0010 xor a call ByteFill - ld de, $4200 + ld de, Font ld hl, VTiles1 - ld bc, $3e0c + lb bc, BANK(Font), $c call Get1bpp call Functione4a ret ; 8c893 +HeadbuttTreeGFX: ; 8c893 INCBIN "baserom.gbc", $8c893, $8c913 - $8c893 +; 8c913 Function8c913: ; 8c913 xor a @@ -71459,8 +71503,8 @@ Function8c913: ; 8c913 and $c srl a ld e, a - ld d, $0 - ld hl, $4938 + ld d, 0 + ld hl, Unknown_8c938 add hl, de ld a, [hli] ld h, [hl] @@ -71478,7 +71522,12 @@ Function8c913: ; 8c913 ret ; 8c938 -INCBIN "baserom.gbc", $8c938, $8c940 - $8c938 +Unknown_8c938: ; 8c938 + dw $c570 ; ( 8, 10) + dw $c520 ; ( 8, 6) + dw $c546 ; ( 6, 8) + dw $c54a ; (10, 8) +; 8c940 Function8c940: ; 8c940 ld a, e @@ -71486,7 +71535,7 @@ Function8c940: ; 8c940 ld [$cf63], a call Function8c96d call WaitSFX - ld de, $001e + ld de, SFX_PLACE_PUZZLE_PIECE_DOWN call PlaySFX .asm_8c952 ld a, [$cf63] @@ -71505,18 +71554,24 @@ Function8c940: ; 8c940 Function8c96d: ; 8c96d callab Function8cf53 - ld de, $49cc + ld de, GFX_8c9cc ld hl, VTiles1 - ld bc, $2304 + lb bc, BANK(GFX_8c9cc), 4 call Request2bpp - ld de, $498c + ld de, CutTreeGFX ld hl, $8840 - ld bc, $2304 + lb bc, BANK(CutTreeGFX), 4 call Request2bpp ret ; 8c98c -INCBIN "baserom.gbc",$8c98c,$8ca0c - $8c98c +CutTreeGFX: ; c898c +INCBIN "baserom.gbc", $8c98c, $8c9cc - $8c98c +; c89cc + +GFX_8c9cc: ; 8c9cc +INCBIN "baserom.gbc", $8c9cc, $8ca0c - $8c9cc +; 8ca0c Function8ca0c: ; 8ca0c ld a, [$cf63] @@ -71628,7 +71683,7 @@ Function8ca8e: ; 8ca8e (23:4a8e) and $c add e ld e, a - ld hl, $4ab3 + ld hl, Unknown_8cab3 add hl, de add hl, de ld e, [hl] @@ -71637,7 +71692,24 @@ Function8ca8e: ; 8ca8e (23:4a8e) ret ; 8cab3 (23:4ab3) -INCBIN "baserom.gbc",$8cab3,$8cad3 - $8cab3 +Unknown_8cab3: ; 8cab3 + db $58, $60 + db $48, $60 + db $58, $70 + db $48, $70 + db $58, $40 + db $48, $40 + db $58, $50 + db $48, $50 + db $38, $60 + db $48, $60 + db $38, $50 + db $48, $50 + db $58, $60 + db $68, $60 + db $58, $50 + db $68, $50 +; 8cad3 ; known jump sources: 8ca23 (23:4a23) Function8cad3: ; 8cad3 (23:4ad3) @@ -71645,8 +71717,8 @@ Function8cad3: ; 8cad3 (23:4ad3) and $c srl a ld e, a - ld d, $0 - ld hl, $4ae5 + ld d, 0 + ld hl, Unknown_8cae5 add hl, de ld e, [hl] inc hl @@ -71654,7 +71726,12 @@ Function8cad3: ; 8cad3 (23:4ad3) ret ; 8cae5 (23:4ae5) -INCBIN "baserom.gbc",$8cae5,$8caed - $8cae5 +Unknown_8cae5: ; 8cae5 + db $50, $68 + db $50, $48 + db $40, $58 + db $60, $58 +; 8caed Function8caed: ; 8caed call DelayFrame @@ -71756,7 +71833,7 @@ Function8cb9b: ; 8cb9b (23:4b9b) ld a, [CurPartyMon] ; $d109 ld hl, PartySpecies ; $dcd8 ld e, a - ld d, $0 + ld d, 0 add hl, de ld a, [hl] ld [$d265], a @@ -71778,7 +71855,7 @@ Function8cbc8: ; 8cbc8 (23:4bc8) ret c and $7 ret nz - ld de, $18 + ld de, SFX_FLY call PlaySFX ret .asm_8cbe0 @@ -71925,8 +72002,8 @@ Function8ccc9: ; 8ccc9 call ClearSprites call DisableLCD callab Function8cf53 - call Function8cdc3 - call Function8cd27 + call SetMagnetTrainPals + call DrawMagnetTrain ld a, $90 ld [hWY], a call EnableLCD @@ -71964,61 +72041,59 @@ Function8ccc9: ; 8ccc9 ret ; 8cd27 -Function8cd27: ; 8cd27 +DrawMagnetTrain: ; 8cd27 ld hl, VBGMap0 xor a .asm_8cd2b - call Function8cd74 - ld b, $10 - call Function8cd6c + call GetMagnetTrainBGTiles + ld b, 32 / 2 + call .FillAlt inc a cp $12 jr c, .asm_8cd2b ld hl, $98c0 - ld de, $4eff - ld c, $14 - call Function8cd65 + ld de, MagnetTrainTilemap1 + ld c, 20 + call .FillLine ld hl, $98e0 - ld de, $4f13 - ld c, $14 - call Function8cd65 + ld de, MagnetTrainTilemap2 + ld c, 20 + call .FillLine ld hl, $9900 - ld de, $4f27 - ld c, $14 - call Function8cd65 + ld de, MagnetTrainTilemap3 + ld c, 20 + call .FillLine ld hl, $9920 - ld de, $4f3b - ld c, $14 - call Function8cd65 + ld de, MagnetTrainTilemap4 + ld c, 20 + call .FillLine ret ; 8cd65 -Function8cd65: ; 8cd65 -.asm_8cd65 +.FillLine ; 8cd65 ld a, [de] inc de ld [hli], a dec c - jr nz, .asm_8cd65 + jr nz, .FillLine ret ; 8cd6c -Function8cd6c: ; 8cd6c -.asm_8cd6c +.FillAlt ; 8cd6c ld [hl], e inc hl ld [hl], d inc hl dec b - jr nz, .asm_8cd6c + jr nz, .FillAlt ret ; 8cd74 -Function8cd74: ; 8cd74 +GetMagnetTrainBGTiles: ; 8cd74 push hl ld e, a - ld d, $0 - ld hl, $4d82 + ld d, 0 + ld hl, MagnetTrainBGTiles add hl, de add hl, de ld e, [hl] @@ -72028,7 +72103,28 @@ Function8cd74: ; 8cd74 ret ; 8cd82 -INCBIN "baserom.gbc",$8cd82,$8cda6 - $8cd82 +MagnetTrainBGTiles: ; 8cd82 +; Alternating tiles for each line +; of the Magnet Train tilemap. + db $4c, $4d ; bush + db $5c, $5d ; bush + db $4c, $4d ; bush + db $5c, $5d ; bush + db $08, $08 ; fence + db $18, $18 ; fence + db $1f, $1f ; track + db $31, $31 ; track + db $11, $11 ; track + db $11, $11 ; track + db $0d, $0d ; track + db $31, $31 ; track + db $04, $04 ; fence + db $18, $18 ; fence + db $4c, $4d ; bush + db $5c, $5d ; bush + db $4c, $4d ; bush + db $5c, $5d ; bush +; 8cda6 Function8cda6: ; 8cda6 ld hl, LYOverrides @@ -72044,25 +72140,34 @@ Function8cda6: ; 8cda6 ret ; 8cdc3 -Function8cdc3: ; 8cdc3 +SetMagnetTrainPals: ; 8cdc3 ld a, $1 ld [rVBK], a + + ; bushes ld hl, VBGMap0 ld bc, $0080 ld a, $2 call ByteFill + + ; train ld hl, $9880 ld bc, $0140 xor a call ByteFill + + ; more bushes ld hl, $99c0 ld bc, $0080 ld a, $2 call ByteFill + + ; train window ld hl, $9907 ld bc, $0006 ld a, $4 call ByteFill + ld a, $0 ld [rVBK], a ret @@ -72071,8 +72176,8 @@ Function8cdc3: ; 8cdc3 Function8cdf7: ; 8cdf7 ld a, [$cf63] ld e, a - ld d, $0 - ld hl, $4e06 + ld d, 0 + ld hl, Jumptable_8ce06 add hl, de add hl, de ld a, [hli] @@ -72081,7 +72186,124 @@ Function8cdf7: ; 8cdf7 jp [hl] ; 8ce06 -INCBIN "baserom.gbc",$8ce06,$8ceae - $8ce06 +Jumptable_8ce06: ; 8ce06 + dw Function8ce19 + dw Function8ce6d + dw Function8ce47 + dw Function8ce6d + dw Function8ce7a + dw Function8ce6d + dw Function8cea2 +; 8ce14 + +Function8ce14: ; 8ce14 + ld hl, $cf63 + inc [hl] + ret +; 8ce19 + +Function8ce19: ; 8ce19 + ld d, $55 + ld a, [$d195] + ld e, a + ld b, $15 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [PlayerGender] + bit 0, a + jr z, .asm_8ce31 + ld b, $1f + +.asm_8ce31 + pop af + ld [rSVBK], a + ld a, b + call Function3b2a + ld hl, $0003 + add hl, bc + ld [hl], $0 + call Function8ce14 + ld a, $80 + ld [$cf66], a + ret +; 8ce47 + +Function8ce47: ; 8ce47 + ld hl, $d193 + ld a, [$cf65] + cp [hl] + jr z, .asm_8ce64 + ld e, a + ld a, [$d191] + xor $ff + inc a + add e + ld [$cf65], a + ld hl, $c3c0 + ld a, [$d191] + add [hl] + ld [hl], a + ret + +.asm_8ce64 + call Function8ce14 + ld a, $80 + ld [$cf66], a + ret +; 8ce6d + +Function8ce6d: ; 8ce6d + ld hl, $cf66 + ld a, [hl] + and a + jr z, .asm_8ce76 + dec [hl] + ret + +.asm_8ce76 + call Function8ce14 + ret +; 8ce7a + +Function8ce7a: ; 8ce7a + ld hl, $d194 + ld a, [$cf65] + cp [hl] + jr z, .asm_8ce9e + ld e, a + ld a, [$d191] + xor $ff + inc a + ld d, a + ld a, e + add d + add d + ld [$cf65], a + ld hl, $c3c0 + ld a, [$d191] + ld d, a + ld a, [hl] + add d + add d + ld [hl], a + ret + + ret + +.asm_8ce9e + call Function8ce14 + ret +; 8cea2 + +Function8cea2: ; 8cea2 + ld a, $80 + ld [$cf63], a + ld de, SFX_TRAIN_ARRIVED + call PlaySFX + ret +; 8ceae Function8ceae: ; 8ceae callba Function8cf69 @@ -72120,7 +72342,11 @@ Function8ceae: ; 8ceae ret ; 8ceff -INCBIN "baserom.gbc",$8ceff,$8cf4f - $8ceff +MagnetTrainTilemap1: db $1f, $05, $06, $0a, $0a, $0a, $09, $0a, $0a, $0a, $0a, $0a, $0a, $09, $0a, $0a, $0a, $0b, $0c, $1f +MagnetTrainTilemap2: db $14, $15, $16, $1a, $1a, $1a, $19, $1a, $1a, $1a, $1a, $1a, $1a, $19, $1a, $1a, $1a, $1b, $1c, $1d +MagnetTrainTilemap3: db $24, $25, $26, $27, $07, $2f, $29, $28, $28, $28, $28, $28, $28, $29, $07, $2f, $2a, $2b, $2c, $2d +MagnetTrainTilemap4: db $20, $1f, $2e, $1f, $17, $00, $2e, $1f, $1f, $1f, $1f, $1f, $1f, $2e, $17, $00, $1f, $2e, $1f, $0f +; 8cf4f Function8cf4f: ; 8cf4f call Function3238 @@ -72147,8 +72373,6 @@ Function8cf62: ; 8cf62 ret ; 8cf69 - - Function8cf69: ; 8cf69 push hl push de @@ -72619,7 +72843,7 @@ Function8d24b: ; 8d24b add hl, bc ld e, [hl] ld d, $0 - ld hl, $525b + ld hl, Jumptable_8d25b add hl, de add hl, de ld a, [hli] @@ -72748,7 +72972,62 @@ Function8d302: ; 8d302 (23:5302) jp [hl] ; 8d306 (23:5306) -INCBIN "baserom.gbc",$8d306,$8d35a - $8d306 +; Anonymous jumptable (see Function8d6c5) + dw Function8d30a + dw Function8d321 +; 8d30a + +Function8d30a: ; 8d30a + call Function8d6d8 + ld hl, $0000 + add hl, bc + ld a, [hl] + ld hl, $000d + add hl, bc + and $3 + ld [hl], a + inc [hl] + swap a + ld hl, $000c + add hl, bc + ld [hl], a + +Function8d321: ; 8d321 + ld hl, $0004 + add hl, bc + ld a, [hl] + cp $a4 + jr nc, .asm_8d356 + ld hl, $000d + add hl, bc + add $4 + ld hl, $0004 + add hl, bc + ld [hl], a + ld hl, $0005 + add hl, bc + inc [hl] + ld hl, $000d + add hl, bc + ld a, [hl] + sla a + sla a + ld d, $2 + ld hl, $000c + add hl, bc + ld a, [hl] + add $3 + ld [hl], a + call Function8d6de + ld hl, $0007 + add hl, bc + ld [hl], a + ret + +.asm_8d356 + call Function8d036 + ret +; 8d35a ; no known jump sources Function8d35a: ; 8d35a (23:535a) @@ -72925,7 +73204,7 @@ Function8d43e: ; 8d43e (23:543e) call Function8d036 ld a, $4 ld [$cf64], a - ld de, $1e + ld de, SFX_PLACE_PUZZLE_PIECE_DOWN call PlaySFX ret .asm_8d461 @@ -72960,7 +73239,119 @@ Function8d483: ; 8d483 (23:5483) jp [hl] ; 8d487 (23:5487) -INCBIN "baserom.gbc",$8d487,$8d52a - $8d487 +; Anonymous jumptable (see Function8d6c5) + dw Function8d493 + dw Function8d4d5 + dw Function8d4a5 + dw Function8d4b8 + dw Function8d4e8 + dw Function8d526 +; 8d493 + +Function8d493: ; 8d493 + ld a, $14 + call Function8d120 + ld hl, $000b + add hl, bc + ld [hl], $2 + ld hl, $000c + add hl, bc + ld [hl], $20 + ret +; 8d4a5 + +Function8d4a5: ; 8d4a5 + ld hl, $000c + add hl, bc + ld a, [hl] + and a + jr z, .asm_8d4af + dec [hl] + ret + +.asm_8d4af + call Function8d6d8 + ld hl, $000c + add hl, bc + ld [hl], $40 + +Function8d4b8: ; 8d4b8 + ld hl, $000c + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_8d4cd + dec [hl] + ld d, $28 + call Function8d6de + ld hl, $0007 + add hl, bc + ld [hl], a + ret + +.asm_8d4cd + ld de, SFX_GOT_SAFARI_BALLS + call PlaySFX + jr Function8d526 +; 8d4d5 + +Function8d4d5: ; 8d4d5 + ld hl, $000b + add hl, bc + ld [hl], $4 + ld hl, $000c + add hl, bc + ld [hl], $30 + ld hl, $000d + add hl, bc + ld [hl], $24 + ret +; 8d4e8 + +Function8d4e8: ; 8d4e8 + ld hl, $000d + add hl, bc + ld a, [hl] + and a + jr z, .asm_8d51c + ld d, a + ld hl, $000c + add hl, bc + ld a, [hl] + call Function8e72c + ld hl, $0007 + add hl, bc + ld [hl], a + ld hl, $000c + add hl, bc + inc [hl] + ld a, [hl] + and $3f + ret nz + ld hl, $000c + add hl, bc + ld [hl], $20 + ld hl, $000d + add hl, bc + ld a, [hl] + sub $c + ld [hl], a + ld de, SFX_SWITCH_POKEMON + call PlaySFX + ret + +.asm_8d51c + xor a + ld hl, $0007 + add hl, bc + ld [hl], a + call Function8d6d8 + ret + +Function8d526: ; 8d526 + call Function8d036 + ret +; 8d52a ; no known jump sources Function8d52a: ; 8d52a (23:552a) @@ -72973,7 +73364,7 @@ Function8d52a: ; 8d52a (23:552a) jr nc, .asm_8d53f and $3 ret nz - ld de, $3 + ld de, SFX_POKEBALLS_PLACED_ON_TABLE call PlaySFX ret .asm_8d53f @@ -73277,7 +73668,12 @@ Function8d6c5: ; 8d6c5 (23:56c5) ret ; 8d6d8 (23:56d8) -INCBIN "baserom.gbc",$8d6d8,$8d6de - $8d6d8 +Function8d6d8: ; 8d6d8 + ld hl, $000b + add hl, bc + inc [hl] + ret +; 8d6de ; known jump sources: 8d363 (23:5363), 8d39c (23:539c), 8d3d7 (23:53d7), 8d465 (23:5465), 8d561 (23:5561), 8d59d (23:559d), 8d658 (23:5658), 8d677 (23:5677), 8d68f (23:568f) Function8d6de: ; 8d6de (23:56de) @@ -74353,15 +74749,14 @@ Function902c9: ; 902c9 ; no known jump sources Function902e3: ; 902e3 (24:42e3) - ld de, $6c + ld de, SFX_NO_SIGNAL call PlaySFX - jr asm_902f1 - + jr Function902f1 Function902eb:: ; 902eb call Function9031d call Function90355 -asm_902f1: +Function902f1: call Function9032f call Function90355 call Function9033b @@ -75151,7 +75546,7 @@ Function90b8d: ; 90b8d (24:4b8d) call DelayFrame jr .asm_90ba9 .asm_90bc4 - ld de, $8 + ld de, SFX_READ_TEXT_2 call PlaySFX call WaitSFX pop af @@ -87981,13 +88376,13 @@ INCBIN "gfx/misc/footprints.w128.1bpp" INCBIN "baserom.gbc", $fb434, $fb449 - $fb434 Functionfb449:: ; fb449 - ld de, $4200 + ld de, Font ld hl, VTiles1 ld bc, Function3e80 ld a, [rLCDC] bit 7, a jp z, Copy1bpp - ld de, $4200 + ld de, Font ld hl, VTiles1 ld bc, $3e20 call Functionddc