From c2c78453961e03739ce3bb46fc43e21b7cda6f36 Mon Sep 17 00:00:00 2001 From: Randy Thiemann Date: Wed, 1 Nov 2023 21:24:22 +0100 Subject: [PATCH] GM SFX --- bin/DMGTRIS.GBC | Bin 131072 -> 131072 bytes bin/DMGTRIS.map | 387 ++++++++++++++++++------------------ bin/DMGTRIS.pocket | Bin 131072 -> 131072 bytes bin/DMGTRIS.sym | 234 +++++++++++----------- src/grading_systems.asm | 2 +- src/include/globals.asm | 1 + src/level.asm | 2 +- src/res/sfx_data.inc | 342 +++++++++++++++++++++++++++++++ src/res/sources/sfx.fur | Bin 2289 -> 2419 bytes src/res/sources/sfx.vgm | Bin 16038 -> 17409 bytes src/res/sources/sfxparse.py | 1 + src/score.asm | 2 +- src/sfx.asm | 14 +- 13 files changed, 673 insertions(+), 312 deletions(-) diff --git a/bin/DMGTRIS.GBC b/bin/DMGTRIS.GBC index 895ca738e94e30ff93417df3b3bb46a394a6b828..2ce18d4f73e8c366d191b88349d7fd24f138816d 100644 GIT binary patch delta 3790 zcmbVPeQXow8Nb&biG!1XL+o6fb8@e518*sn*FgsaE-nN@)^w&2N@-LQ8dxT6qN0CP zOsumR1Vn^H;1-Zc>uA&=u1*KsiotDC>%n>5H29=aUdP?wBGX#a^ z0!#0{m@jqxFAT%1?2 zTc%j&3?2pE4)#ZNy9Kx(_!^!6ij6q=)gU~s3kV#(4ScoE_W~~m9@e=PxD)tVo$mww zH{cs|ZUcVCWZw^bA@C;MZU^2Byk6%W5fJu(ut^v4fd3ZwI-MT?{sQpLDwpQ~eGh1Z zMmvFS1G+_{#XxrgZPw^qb`Jk`#B`_&n%ybgj%I1S6{Jespb0*myxGANsjbzCf zBaR7gR#X)^ee_k{-r@_m75BeZR4j7(a4LH?@D+D9kcQu9@cV>*6|9QPz6gLm&gVk} zOOQ{%OeGS95W`p?d@J)@;0p$Z&!fV7_l65T6~`+?3nMOKM5#ioVu;%}Q7d!7+bQA} z?l8}znDDIc8C$H9FX_MJyM;VcRfxVz;M$voYw<0(tRqvxKdRKRlbY+)NB zm{U8REp+{GGmb}5)JiZ%dO5PMjC65iF($))(#MexD#=^4>Ke$;>q^)Cf&CXb!;z=` zWL^as_mXRsF^Y-(80DY$N2O z&<#;T$5-DF?+82m7ps8hjgab1s>MD+CN`)Dv@S&xp5(s84s-a!ESf`!G>0h}o*W*E zECrZUA)M)6F3j|WYT6?uC(BMUtSjOIG=EX)K~KaJDLY9wmmly_LD%=Vht_<*eet0s zZ#+zXaARq9nY{c;&A^JDmCy4{wGVkIZ$qNQ+F9+*8am-e0%L&`MONgPr#+;@D{s%OCZLMJ2is_7JM$~yX#+22+!tCY(u zR3CJeGU)yMa#lT}Pl+(4kIXXMJu6i=L|^IuRc>Xu`k>9TS2qG{oKZDBWaw*^v(6|d zeQ3Ix?<&>&SXmxcy5f+6?xhjctPiU0;Vh2-l}3+H2f1H^kX#WIg-ejRj zZ})46K?B`?Le;jloVfn&NmOWUq`A}e@WL5hIJ_{7KdCEddK!m+gKSD>FgW6x;jU^p zk~0+O2FDsDVnj2<9 zJq?I)cKFgn`m^$K9*Ax0L<T1vyzomiUMxM6SpFxB*r-5F6cqYT-86jY^jtYsC+w;9UaM z5;HC7%PUzspC^r;mM*(`XPEc`X_N#*WMfF1VWMp#ddC@=F#tX-UE(QelwU7hR7R=1xi4o0)^?X;F_oFU&@G`L+V5652R5Da-C|$$s{UOI|K0VP56ol zr&YWO+69rTo70RQ0s+(Iu+kfRl9`+oLg-7{P$FJugEXGjJ<{&KBP~Xo%SgfH==C({gTmA)U9r^fSwIhFY z*yudSTb(|*TQ+N6zdCh~_r0YzU#GI|j9jko>1!n2^CX~4ODw^B; EALxr{bpQYW delta 2725 zcmaKue{2)y8OQI**-0Eb0YhvK`;y%2+rVqum5vT|4P4xj)MTY|38AzLYeJ#TCT*YVsF+Wu@(>}yX-mp z4j+FoMR)i8e4qDy{r-5KyTs$=@p$=>5`Yad3lEjl{e0*VIM3e6iV~ z(LI7oT4O=wh_u1fQEghEo7N_OrA>9c6K1z^f0Q>aoZo#TuvKRSw^Xi9N)dHRF*uIg zh5V4oCCDM1_p1@cqo|!}uIuO?8_ftL|IJ}4zy;nApIE6BXvf?Fr zmDeGBT`vh=QP1RhsLl#y=*fQy@=e8%?hId6GZ(V6G|MYlKB}Eksg_kwZB?_{m^!YF zs$*J49YrgX!QR|?$=Oj8_89|x6%5{Wl_#0mW8rVaV_^-ii+Fv`y^c}C7G5@b9FWSe zhd?j#@-n`*?r%Yy;=Q8nPdgnOjH2oKtugAa`DeqQ@;Kj8CboTh%=LwGI;eaZR5)H4 z3n~>nWoo7yb#ckH3}xiXn%}?w<-MI~r-|8j8Oa zuO8CGX2;PH5)oK2w~y-8LclxGM4svgr;&T!PnyUJ1>N@mRJWn?%1uY)epuM*hFmWl zi(=2iO=NRFc=A1uHj!PX<^tYhw#cY0!qDA)ZvYPieeXfN;~r6Ic;^au*ww5!7{$~X zTRgTnMm}$Hwf&UDUIK?PG6u?%g}_Wcu(ud+nSt_Vqer$7NIdKS4%o!g4iM+DBIofg zZzi#Wh0&C!Q!hK<`G)(0A~`e)zX1QNf-*h|JX4U#G-!<9fvz{1CcPOXV}Fxruc;GX z#-TB_F9JKu;hBW51s;PVi7hSg9hgk?w*c>crbeUcX`?O&5*vG9QEI9MvL%k7sP!h^ zUkyG8CQhve&M@{HMs!?se%Oi9m@sCzq z-9TcZ6&mp|(g)Q)*xyO+%wQhiZYjAA?d%G{DV3@dgX&rDp<6evQ75EF)U(ED|Iy)it^*4NQ&hXGGvRq?F=3DP4c<#l|7#tD3L1@Q z|5PWillO2ZNvEMYpBbp%w&`;=t>yJPOfzic$P_zpHjPWWIZ(u=+id!0HvL>dC$4uu z40oud6Yg*i1f(9idLieg1F1iB!oj+3JoLtKILG*nFR(oo3g>TppYhDGEd0g?n7mn( zxERYlR+PA0%l)7zaj}*=U6i=&M=d*7v~dG0x2h;{D=as3Q)X_Hn<>oAleV<<^gunP z<$XO+YfsA*rsaoF$jCK&@)`N#Jyu4dVPs?~z6YLicH`Nk)1-17Ct!mOhsz z3oJdICcLG!G$EGGrO6^oJ2Ir+(p4F<#L`@beBaWc47uObx$<$+nA*G_)DrxU$b6;W zzA)^0OE((@a7~ic2pveo`>ax_!Pmn1J_z`*P!?{os^KfE8Y&M!lc(~QYDhfsDlFjt zU-BpRy$S(in@(;bYsbx0Mcrl7+iZHTO}}Q-DVrX%>3`Yu*QVAe{lcf6p>Oz!koFGG Z(uBJce2K=_AbgvQZ-dn3*I`ck{{Ya_Gj;#~ diff --git a/bin/DMGTRIS.map b/bin/DMGTRIS.map index a798310..774943e 100644 --- a/bin/DMGTRIS.map +++ b/bin/DMGTRIS.map @@ -141,7 +141,7 @@ ROM0 bank #0: $1887 = GradeRendering.regulargrade $188f = GradeRendering.sgrade $18a5 = GradeRendering.gmgrade - SECTION: $18b0-$1b31 ($0282 bytes) ["SFX Functions"] + SECTION: $18b0-$1b46 ($0297 bytes) ["SFX Functions"] $18b0 = SFXInit $18d2 = SFXPopQueue $18e7 = SFXPushQueue @@ -151,186 +151,187 @@ ROM0 bank #0: $1933 = !1 $1940 = !2 $194c = SFXEnqueue - $195e = SFXEnqueue.findsfx - $1973 = !3 - $1983 = !4 - $1993 = !5 - $19a3 = !6 - $19b3 = !7 - $19c3 = !8 - $19d3 = !9 - $19e3 = !10 - $19f3 = !11 - $1a03 = !12 - $1a13 = !13 - $1a23 = !14 - $1a33 = !15 - $1a43 = !16 - $1a53 = !17 - $1a62 = !18 - $1a71 = !19 - $1a7f = !20 - $1a8d = !21 - $1a9b = !22 - $1aa8 = SFXKill - $1ad0 = SFXPlayNoise - $1adb = SFXPlayNoise.noisereg - $1ae8 = !23 - $1af2 = SFXPlayNoise.savenoiseplayhead - $1afb = SFXPlay - $1b06 = !24 - $1b09 = SFXPlay.play - $1b15 = SFXPlay.getRegister - $1b1f = !25 - $1b29 = SFXPlay.savePlayhead - SECTION: $1b32-$1d1f ($01ee bytes) ["RNG Functions"] - $1b32 = RNGInit - $1b62 = !0 - $1b7d = RNGInit.complexinit - $1b94 = !1 - $1bae = ShiftHistory - $1bcb = GetNextHellPiece - $1bd0 = GetNextTGM1Piece - $1bd3 = !2 - $1beb = !3 - $1bed = GetNextTGM2Piece - $1bf0 = !4 - $1c08 = !5 - $1c0a = GetNextNesPiece - $1c18 = GetNextTGM3Piece - $1c1b = !6 - $1c3e = !7 - $1c41 = !8 - $1c51 = !9 - $1c5b = !10 - $1c69 = !11 - $1c78 = !12 - $1c84 = !13 - $1c90 = !14 - $1c9c = !15 - $1ca8 = !16 - $1cb4 = !17 - $1cc0 = !18 - $1ccf = GetNextPiece - $1cdd = GetNextPiece.nextpiecejumps - $1cec = Next35Piece - $1cec = !19 - $1cf6 = Next7Piece - $1cf6 = !20 - $1d00 = NextByte - SECTION: $1d20-$1ec2 ($01a3 bytes) ["Level Functions"] - $1d20 = LevelInit - $1d70 = LevelUp - $1d94 = LevelUp.doit - $1dd8 = LevelUp.checknlevel - $1e06 = !0 - $1e1e = !1 - $1e27 = LevelUp.bellmaybe - $1e39 = LevelUp.leveljinglemaybe - $1e46 = LevelUp.checkspeedup - $1e57 = !2 - $1e64 = !3 - $1e75 = !4 - $1e82 = DoSpeedUp - SECTION: $1ec3-$1f8f ($00cd bytes) ["Input Functions"] - $1ec3 = InputInit - $1ed5 = GetInput - $1ed5 = GetInput.btns - $1ee2 = GetInput.readA - $1ee6 = GetInput.setA - $1ef1 = GetInput.clearA - $1ef4 = GetInput.readB - $1ef8 = GetInput.setB - $1f03 = GetInput.clearB - $1f06 = GetInput.readSelect - $1f0a = GetInput.setSelect - $1f15 = GetInput.clearSelect - $1f18 = GetInput.readStart - $1f1c = GetInput.setStart - $1f27 = GetInput.clearStart - $1f2a = GetInput.dpad - $1f37 = GetInput.readUp - $1f3b = GetInput.setUp - $1f46 = GetInput.clearUp - $1f49 = GetInput.readDown - $1f4d = GetInput.setDown - $1f58 = GetInput.clearDown - $1f5b = GetInput.readLeft - $1f5f = GetInput.setLeft - $1f6a = GetInput.clearLeft - $1f6d = GetInput.readRight - $1f71 = GetInput.setRight - $1f7c = GetInput.clearRight - $1f7f = GetInput.priorities - $1f8a = GetInput.zero - SECTION: $1f90-$205b ($00cc bytes) ["Score Functions"] - $1f90 = ScoreInit - $1fb0 = IncreaseScore - $1fe4 = IncreaseScore.doConvert - $1fe6 = !0 - $1ffc = IncreaseScore.carry - $1ffe = IncreaseScore.postConvert - $200b = !1 - $2012 = IncreaseScore.preAddDigit - $2032 = IncreaseScore.addDigit - $2048 = IncreaseScore.nextDigit - SECTION: $205c-$211e ($00c3 bytes) ["Code Entry Point"] - $205c = Main - $2071 = Main.wvr_u1 - $207a = !0 - $208a = Main.notgbc - $20b7 = Main.nocolortiles - $20d8 = Main.wvb_u2 - $20dd = !1 - $20e3 = EventLoop - $20f9 = EventLoop.eventloopjumps - $2102 = EventLoopPostHandler - $2104 = EventLoopPostHandler.wvb_u3 - $2116 = EventLoopPostHandler.vblankjumps - SECTION: $211f-$21d5 ($00b7 bytes) ["SRAM Functions"] - $211f = RestoreSRAM - $2178 = InitializeSRAM - SECTION: $21d6-$2247 ($0072 bytes) ["Grading Functions"] - $21d6 = GradeInit - $21e4 = UpdateGrade - $21ed = UpdateGrade.trygradeup - $2207 = UpdateGrade.increasegrade - $221b = CheckForGM - $2231 = PrepareScore - SECTION: $2248-$22b5 ($006e bytes) ["Title Function Trampolines"] - $2248 = SwitchToTitle - $2252 = TitleEventLoopHandler - $225c = TitleVBlankHandler - $2266 = DrawOption6 - SECTION: $22b6-$2302 ($004d bytes) ["Time Functions"] - $22b6 = TimeInit - $22cb = ResetTime - $22d6 = HandleTimers - SECTION: $2303-$2330 ($002e bytes) ["Memory Functions"] - $2303 = UnsafeMemCopy - $230c = SafeMemCopy.wvr_u1 - $230c = SafeMemCopy - $231b = UnsafeMemSet - $2323 = SafeMemSet - $2323 = SafeMemSet.wvr_u2 - SECTION: $2331-$2358 ($0028 bytes) ["Gameplay Function Trampolines"] - $2331 = SwitchToGameplay - $233b = SwitchToGameplayBig - $2345 = GamePlayEventLoopHandler - $234f = GamePlayBigEventLoopHandler - SECTION: $2359-$237a ($0022 bytes) ["Grading Data"] - $2359 = sGradeScores - SECTION: $237b-$239c ($0022 bytes) ["OAM Functions"] - $237b = CopyOAMHandler - $2387 = ClearOAM - SECTION: $239d-$23b5 ($0019 bytes) ["Interrupt Initialization Functions"] - $239d = IntrInit - $23a1 = InitializeLCDCInterrupt - SECTION: $23b6-$23bf ($000a bytes) ["OAM DMA Code"] - $23b6 = OAMDMA - $23c0 = OAMDMAEnd - EMPTY: $23c0-$3fff ($1c40 bytes) - TOTAL EMPTY: $1c4b bytes + $1961 = SFXEnqueue.findsfx + $1976 = !3 + $1986 = !4 + $1996 = !5 + $19a6 = !6 + $19b6 = !7 + $19c6 = !8 + $19d6 = !9 + $19e6 = !10 + $19f6 = !11 + $1a06 = !12 + $1a16 = !13 + $1a26 = !14 + $1a36 = !15 + $1a46 = !16 + $1a56 = !17 + $1a65 = !18 + $1a74 = !19 + $1a83 = !20 + $1a91 = !21 + $1a9f = !22 + $1aad = !23 + $1aba = SFXKill + $1ae5 = SFXPlayNoise + $1af0 = SFXPlayNoise.noisereg + $1afd = !24 + $1b07 = SFXPlayNoise.savenoiseplayhead + $1b10 = SFXPlay + $1b1b = !25 + $1b1e = SFXPlay.play + $1b2a = SFXPlay.getRegister + $1b34 = !26 + $1b3e = SFXPlay.savePlayhead + SECTION: $1b47-$1d34 ($01ee bytes) ["RNG Functions"] + $1b47 = RNGInit + $1b77 = !0 + $1b92 = RNGInit.complexinit + $1ba9 = !1 + $1bc3 = ShiftHistory + $1be0 = GetNextHellPiece + $1be5 = GetNextTGM1Piece + $1be8 = !2 + $1c00 = !3 + $1c02 = GetNextTGM2Piece + $1c05 = !4 + $1c1d = !5 + $1c1f = GetNextNesPiece + $1c2d = GetNextTGM3Piece + $1c30 = !6 + $1c53 = !7 + $1c56 = !8 + $1c66 = !9 + $1c70 = !10 + $1c7e = !11 + $1c8d = !12 + $1c99 = !13 + $1ca5 = !14 + $1cb1 = !15 + $1cbd = !16 + $1cc9 = !17 + $1cd5 = !18 + $1ce4 = GetNextPiece + $1cf2 = GetNextPiece.nextpiecejumps + $1d01 = Next35Piece + $1d01 = !19 + $1d0b = Next7Piece + $1d0b = !20 + $1d15 = NextByte + SECTION: $1d35-$1ed7 ($01a3 bytes) ["Level Functions"] + $1d35 = LevelInit + $1d85 = LevelUp + $1da9 = LevelUp.doit + $1ded = LevelUp.checknlevel + $1e1b = !0 + $1e33 = !1 + $1e3c = LevelUp.bellmaybe + $1e4e = LevelUp.leveljinglemaybe + $1e5b = LevelUp.checkspeedup + $1e6c = !2 + $1e79 = !3 + $1e8a = !4 + $1e97 = DoSpeedUp + SECTION: $1ed8-$1fa4 ($00cd bytes) ["Input Functions"] + $1ed8 = InputInit + $1eea = GetInput + $1eea = GetInput.btns + $1ef7 = GetInput.readA + $1efb = GetInput.setA + $1f06 = GetInput.clearA + $1f09 = GetInput.readB + $1f0d = GetInput.setB + $1f18 = GetInput.clearB + $1f1b = GetInput.readSelect + $1f1f = GetInput.setSelect + $1f2a = GetInput.clearSelect + $1f2d = GetInput.readStart + $1f31 = GetInput.setStart + $1f3c = GetInput.clearStart + $1f3f = GetInput.dpad + $1f4c = GetInput.readUp + $1f50 = GetInput.setUp + $1f5b = GetInput.clearUp + $1f5e = GetInput.readDown + $1f62 = GetInput.setDown + $1f6d = GetInput.clearDown + $1f70 = GetInput.readLeft + $1f74 = GetInput.setLeft + $1f7f = GetInput.clearLeft + $1f82 = GetInput.readRight + $1f86 = GetInput.setRight + $1f91 = GetInput.clearRight + $1f94 = GetInput.priorities + $1f9f = GetInput.zero + SECTION: $1fa5-$2070 ($00cc bytes) ["Score Functions"] + $1fa5 = ScoreInit + $1fc5 = IncreaseScore + $1ff9 = IncreaseScore.doConvert + $1ffb = !0 + $2011 = IncreaseScore.carry + $2013 = IncreaseScore.postConvert + $2020 = !1 + $2027 = IncreaseScore.preAddDigit + $2047 = IncreaseScore.addDigit + $205d = IncreaseScore.nextDigit + SECTION: $2071-$2133 ($00c3 bytes) ["Code Entry Point"] + $2071 = Main + $2086 = Main.wvr_u1 + $208f = !0 + $209f = Main.notgbc + $20cc = Main.nocolortiles + $20ed = Main.wvb_u2 + $20f2 = !1 + $20f8 = EventLoop + $210e = EventLoop.eventloopjumps + $2117 = EventLoopPostHandler + $2119 = EventLoopPostHandler.wvb_u3 + $212b = EventLoopPostHandler.vblankjumps + SECTION: $2134-$21ea ($00b7 bytes) ["SRAM Functions"] + $2134 = RestoreSRAM + $218d = InitializeSRAM + SECTION: $21eb-$225c ($0072 bytes) ["Grading Functions"] + $21eb = GradeInit + $21f9 = UpdateGrade + $2202 = UpdateGrade.trygradeup + $221c = UpdateGrade.increasegrade + $2230 = CheckForGM + $2246 = PrepareScore + SECTION: $225d-$22ca ($006e bytes) ["Title Function Trampolines"] + $225d = SwitchToTitle + $2267 = TitleEventLoopHandler + $2271 = TitleVBlankHandler + $227b = DrawOption6 + SECTION: $22cb-$2317 ($004d bytes) ["Time Functions"] + $22cb = TimeInit + $22e0 = ResetTime + $22eb = HandleTimers + SECTION: $2318-$2345 ($002e bytes) ["Memory Functions"] + $2318 = UnsafeMemCopy + $2321 = SafeMemCopy.wvr_u1 + $2321 = SafeMemCopy + $2330 = UnsafeMemSet + $2338 = SafeMemSet + $2338 = SafeMemSet.wvr_u2 + SECTION: $2346-$236d ($0028 bytes) ["Gameplay Function Trampolines"] + $2346 = SwitchToGameplay + $2350 = SwitchToGameplayBig + $235a = GamePlayEventLoopHandler + $2364 = GamePlayBigEventLoopHandler + SECTION: $236e-$238f ($0022 bytes) ["Grading Data"] + $236e = sGradeScores + SECTION: $2390-$23b1 ($0022 bytes) ["OAM Functions"] + $2390 = CopyOAMHandler + $239c = ClearOAM + SECTION: $23b2-$23ca ($0019 bytes) ["Interrupt Initialization Functions"] + $23b2 = IntrInit + $23b6 = InitializeLCDCInterrupt + SECTION: $23cb-$23d4 ($000a bytes) ["OAM DMA Code"] + $23cb = OAMDMA + $23d5 = OAMDMAEnd + EMPTY: $23d5-$3fff ($1c2b bytes) + TOTAL EMPTY: $1c36 bytes ROMX bank #1: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] @@ -356,7 +357,7 @@ ROMX bank #1: ROMX bank #2: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_SFX"] - SECTION: $4008-$67d1 ($27ca bytes) ["SFX Data"] + SECTION: $4008-$6c16 ($2c0f bytes) ["SFX Data"] $4008 = sSFXPieceI $4325 = sSFXPieceZ $4325 = sSFXPieceIEnd @@ -396,15 +397,17 @@ ROMX bank #2: $5e72 = sSFXLevelUpEnd $5fcd = sSFXReadyGo $5fcd = sSFXRankUpEnd - $673b = sSFXLineClear + $673b = sSFXRankGM $673b = sSFXReadyGoEnd - $6751 = sSFXLand - $6751 = sSFXLineClearEnd - $675c = sSFXLock - $675c = sSFXLandEnd - $67d2 = sSFXLockEnd - EMPTY: $67d2-$7fff ($182e bytes) - TOTAL EMPTY: $182e bytes + $6b80 = sSFXLineClear + $6b80 = sSFXRankGMEnd + $6b96 = sSFXLand + $6b96 = sSFXLineClearEnd + $6ba1 = sSFXLock + $6ba1 = sSFXLandEnd + $6c17 = sSFXLockEnd + EMPTY: $6c17-$7fff ($13e9 bytes) + TOTAL EMPTY: $13e9 bytes ROMX bank #3: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_MUSIC"] @@ -2304,8 +2307,8 @@ HRAM bank #0: TOTAL EMPTY: $0006 bytes SUMMARY: - ROM0: 9141 bytes used / 7243 free - ROMX: 48836 bytes used / 49468 free in 6 banks + ROM0: 9162 bytes used / 7222 free + ROMX: 49929 bytes used / 48375 free in 6 banks SRAM: 14 bytes used / 8178 free in 1 bank WRAM0: 3489 bytes used / 607 free HRAM: 121 bytes used / 6 free diff --git a/bin/DMGTRIS.pocket b/bin/DMGTRIS.pocket index d473554de1e5299e1ab075cc4a8d831066725f7a..64823c28fa03b9029d78de90e8eef3639705dc0a 100644 GIT binary patch delta 3790 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 Z(uBJce2K=lAbf|6Z-dm8w_#5E{{Z)CG%o-E diff --git a/bin/DMGTRIS.sym b/bin/DMGTRIS.sym index dbd3900..ef5a7db 100644 --- a/bin/DMGTRIS.sym +++ b/bin/DMGTRIS.sym @@ -112,116 +112,116 @@ 00:18f8 SFXProcessQueue 00:1926 SFXTriggerNoise 00:194c SFXEnqueue -00:195e SFXEnqueue.findsfx -00:1aa8 SFXKill -00:1ad0 SFXPlayNoise -00:1adb SFXPlayNoise.noisereg -00:1af2 SFXPlayNoise.savenoiseplayhead -00:1afb SFXPlay -00:1b09 SFXPlay.play -00:1b15 SFXPlay.getRegister -00:1b29 SFXPlay.savePlayhead -00:1b32 RNGInit -00:1b7d RNGInit.complexinit -00:1bae ShiftHistory -00:1bcb GetNextHellPiece -00:1bd0 GetNextTGM1Piece -00:1bed GetNextTGM2Piece -00:1c0a GetNextNesPiece -00:1c18 GetNextTGM3Piece -00:1ccf GetNextPiece -00:1cdd GetNextPiece.nextpiecejumps -00:1cec Next35Piece -00:1cf6 Next7Piece -00:1d00 NextByte -00:1d20 LevelInit -00:1d70 LevelUp -00:1d94 LevelUp.doit -00:1dd8 LevelUp.checknlevel -00:1e27 LevelUp.bellmaybe -00:1e39 LevelUp.leveljinglemaybe -00:1e46 LevelUp.checkspeedup -00:1e82 DoSpeedUp -00:1ec3 InputInit -00:1ed5 GetInput -00:1ed5 GetInput.btns -00:1ee2 GetInput.readA -00:1ee6 GetInput.setA -00:1ef1 GetInput.clearA -00:1ef4 GetInput.readB -00:1ef8 GetInput.setB -00:1f03 GetInput.clearB -00:1f06 GetInput.readSelect -00:1f0a GetInput.setSelect -00:1f15 GetInput.clearSelect -00:1f18 GetInput.readStart -00:1f1c GetInput.setStart -00:1f27 GetInput.clearStart -00:1f2a GetInput.dpad -00:1f37 GetInput.readUp -00:1f3b GetInput.setUp -00:1f46 GetInput.clearUp -00:1f49 GetInput.readDown -00:1f4d GetInput.setDown -00:1f58 GetInput.clearDown -00:1f5b GetInput.readLeft -00:1f5f GetInput.setLeft -00:1f6a GetInput.clearLeft -00:1f6d GetInput.readRight -00:1f71 GetInput.setRight -00:1f7c GetInput.clearRight -00:1f7f GetInput.priorities -00:1f8a GetInput.zero -00:1f90 ScoreInit -00:1fb0 IncreaseScore -00:1fe4 IncreaseScore.doConvert -00:1ffc IncreaseScore.carry -00:1ffe IncreaseScore.postConvert -00:2012 IncreaseScore.preAddDigit -00:2032 IncreaseScore.addDigit -00:2048 IncreaseScore.nextDigit -00:205c Main -00:2071 Main.wvr_u1 -00:208a Main.notgbc -00:20b7 Main.nocolortiles -00:20d8 Main.wvb_u2 -00:20e3 EventLoop -00:20f9 EventLoop.eventloopjumps -00:2102 EventLoopPostHandler -00:2104 EventLoopPostHandler.wvb_u3 -00:2116 EventLoopPostHandler.vblankjumps -00:211f RestoreSRAM -00:2178 InitializeSRAM -00:21d6 GradeInit -00:21e4 UpdateGrade -00:21ed UpdateGrade.trygradeup -00:2207 UpdateGrade.increasegrade -00:221b CheckForGM -00:2231 PrepareScore -00:2248 SwitchToTitle -00:2252 TitleEventLoopHandler -00:225c TitleVBlankHandler -00:2266 DrawOption6 -00:22b6 TimeInit -00:22cb ResetTime -00:22d6 HandleTimers -00:2303 UnsafeMemCopy -00:230c SafeMemCopy.wvr_u1 -00:230c SafeMemCopy -00:231b UnsafeMemSet -00:2323 SafeMemSet -00:2323 SafeMemSet.wvr_u2 -00:2331 SwitchToGameplay -00:233b SwitchToGameplayBig -00:2345 GamePlayEventLoopHandler -00:234f GamePlayBigEventLoopHandler -00:2359 sGradeScores -00:237b CopyOAMHandler -00:2387 ClearOAM -00:239d IntrInit -00:23a1 InitializeLCDCInterrupt -00:23b6 OAMDMA -00:23c0 OAMDMAEnd +00:1961 SFXEnqueue.findsfx +00:1aba SFXKill +00:1ae5 SFXPlayNoise +00:1af0 SFXPlayNoise.noisereg +00:1b07 SFXPlayNoise.savenoiseplayhead +00:1b10 SFXPlay +00:1b1e SFXPlay.play +00:1b2a SFXPlay.getRegister +00:1b3e SFXPlay.savePlayhead +00:1b47 RNGInit +00:1b92 RNGInit.complexinit +00:1bc3 ShiftHistory +00:1be0 GetNextHellPiece +00:1be5 GetNextTGM1Piece +00:1c02 GetNextTGM2Piece +00:1c1f GetNextNesPiece +00:1c2d GetNextTGM3Piece +00:1ce4 GetNextPiece +00:1cf2 GetNextPiece.nextpiecejumps +00:1d01 Next35Piece +00:1d0b Next7Piece +00:1d15 NextByte +00:1d35 LevelInit +00:1d85 LevelUp +00:1da9 LevelUp.doit +00:1ded LevelUp.checknlevel +00:1e3c LevelUp.bellmaybe +00:1e4e LevelUp.leveljinglemaybe +00:1e5b LevelUp.checkspeedup +00:1e97 DoSpeedUp +00:1ed8 InputInit +00:1eea GetInput +00:1eea GetInput.btns +00:1ef7 GetInput.readA +00:1efb GetInput.setA +00:1f06 GetInput.clearA +00:1f09 GetInput.readB +00:1f0d GetInput.setB +00:1f18 GetInput.clearB +00:1f1b GetInput.readSelect +00:1f1f GetInput.setSelect +00:1f2a GetInput.clearSelect +00:1f2d GetInput.readStart +00:1f31 GetInput.setStart +00:1f3c GetInput.clearStart +00:1f3f GetInput.dpad +00:1f4c GetInput.readUp +00:1f50 GetInput.setUp +00:1f5b GetInput.clearUp +00:1f5e GetInput.readDown +00:1f62 GetInput.setDown +00:1f6d GetInput.clearDown +00:1f70 GetInput.readLeft +00:1f74 GetInput.setLeft +00:1f7f GetInput.clearLeft +00:1f82 GetInput.readRight +00:1f86 GetInput.setRight +00:1f91 GetInput.clearRight +00:1f94 GetInput.priorities +00:1f9f GetInput.zero +00:1fa5 ScoreInit +00:1fc5 IncreaseScore +00:1ff9 IncreaseScore.doConvert +00:2011 IncreaseScore.carry +00:2013 IncreaseScore.postConvert +00:2027 IncreaseScore.preAddDigit +00:2047 IncreaseScore.addDigit +00:205d IncreaseScore.nextDigit +00:2071 Main +00:2086 Main.wvr_u1 +00:209f Main.notgbc +00:20cc Main.nocolortiles +00:20ed Main.wvb_u2 +00:20f8 EventLoop +00:210e EventLoop.eventloopjumps +00:2117 EventLoopPostHandler +00:2119 EventLoopPostHandler.wvb_u3 +00:212b EventLoopPostHandler.vblankjumps +00:2134 RestoreSRAM +00:218d InitializeSRAM +00:21eb GradeInit +00:21f9 UpdateGrade +00:2202 UpdateGrade.trygradeup +00:221c UpdateGrade.increasegrade +00:2230 CheckForGM +00:2246 PrepareScore +00:225d SwitchToTitle +00:2267 TitleEventLoopHandler +00:2271 TitleVBlankHandler +00:227b DrawOption6 +00:22cb TimeInit +00:22e0 ResetTime +00:22eb HandleTimers +00:2318 UnsafeMemCopy +00:2321 SafeMemCopy.wvr_u1 +00:2321 SafeMemCopy +00:2330 UnsafeMemSet +00:2338 SafeMemSet +00:2338 SafeMemSet.wvr_u2 +00:2346 SwitchToGameplay +00:2350 SwitchToGameplayBig +00:235a GamePlayEventLoopHandler +00:2364 GamePlayBigEventLoopHandler +00:236e sGradeScores +00:2390 CopyOAMHandler +00:239c ClearOAM +00:23b2 IntrInit +00:23b6 InitializeLCDCInterrupt +00:23cb OAMDMA +00:23d5 OAMDMAEnd 01:4008 sDMGTSpeedCurve 01:4210 sDMGTSpeedCurveEnd 01:4212 sTGM1SpeedCurve @@ -277,13 +277,15 @@ 02:5e72 sSFXLevelUpEnd 02:5fcd sSFXReadyGo 02:5fcd sSFXRankUpEnd -02:673b sSFXLineClear +02:673b sSFXRankGM 02:673b sSFXReadyGoEnd -02:6751 sSFXLand -02:6751 sSFXLineClearEnd -02:675c sSFXLock -02:675c sSFXLandEnd -02:67d2 sSFXLockEnd +02:6b80 sSFXLineClear +02:6b80 sSFXRankGMEnd +02:6b96 sSFXLand +02:6b96 sSFXLineClearEnd +02:6ba1 sSFXLock +02:6ba1 sSFXLandEnd +02:6c17 sSFXLockEnd 03:4008 sMusicMenu 03:681b sMusicMenuEnd 04:4008 SwitchToTitleB diff --git a/src/grading_systems.asm b/src/grading_systems.asm index 8691f34..cfb48a0 100644 --- a/src/grading_systems.asm +++ b/src/grading_systems.asm @@ -140,7 +140,7 @@ CheckForGM: ld [wDisplayedGrade], a ; Sound effect - ld a, SFX_RANKUP + ld a, SFX_RANKGM jp SFXEnqueue diff --git a/src/include/globals.asm b/src/include/globals.asm index 6f565c6..d14dc83 100644 --- a/src/include/globals.asm +++ b/src/include/globals.asm @@ -199,6 +199,7 @@ DEF SFX_LEVELLOCK EQU 14 DEF SFX_LEVELUP EQU 15 DEF SFX_RANKUP EQU 16 DEF SFX_READYGO EQU 17 +DEF SFX_RANKGM EQU 18 DEF MUSIC_MENU EQU $EE ; Tile data offsets diff --git a/src/level.asm b/src/level.asm index ce9456a..0ee184d 100644 --- a/src/level.asm +++ b/src/level.asm @@ -194,7 +194,7 @@ LevelUp:: ld a, h ldh [hLevel+1], a call DoSpeedUp - ld a, SFX_RANKUP + ld a, SFX_RANKGM jp SFXEnqueue .checknlevel diff --git a/src/res/sfx_data.inc b/src/res/sfx_data.inc index e400911..a0adba9 100644 --- a/src/res/sfx_data.inc +++ b/src/res/sfx_data.inc @@ -1961,6 +1961,347 @@ sSFXReadyGo:: db REG_NR22_CH2_VOLEV, $09, REG_NR22_CH2_VOLEV, $11, REG_NR22_CH2_VOLEV, $08, REG_NR22_CH2_VOLEV, $09 db REG_NR22_CH2_VOLEV, $11, REG_NR22_CH2_VOLEV, $08, $FE sSFXReadyGoEnd:: +sSFXRankGM:: + db REG_NR12_CH1_VOLEV, $A5, REG_NR22_CH2_VOLEV, $A5, REG_NR32_CH3_VOLUM, $20, REG_NR11_CH1_LENDT, $7F + db REG_NR11_CH1_LENDT, $7F, REG_NR12_CH1_VOLEV, $A5, REG_NR13_CH1_FRQLO, $2D, REG_NR14_CH1_FRQHI, $87 + db REG_NR21_CH2_LENDT, $7F, REG_NR21_CH2_LENDT, $7F, REG_NR22_CH2_VOLEV, $A5, REG_NR23_CH2_FRQLO, $5B + db REG_NR24_CH2_FRQHI, $86, REG_NR30_CH3_DACEN, $00, REG_WAVE_PATTERN_0, $11, REG_WAVE_PATTERN_1, $23 + db REG_WAVE_PATTERN_2, $45, REG_WAVE_PATTERN_3, $67, REG_WAVE_PATTERN_4, $89, REG_WAVE_PATTERN_5, $AB + db REG_WAVE_PATTERN_6, $CD, REG_WAVE_PATTERN_7, $EF, REG_WAVE_PATTERN_8, $FF, REG_WAVE_PATTERN_9, $FE + db REG_WAVE_PATTERN_A, $DC, REG_WAVE_PATTERN_B, $BA, REG_WAVE_PATTERN_C, $98, REG_WAVE_PATTERN_D, $76 + db REG_WAVE_PATTERN_E, $54, REG_WAVE_PATTERN_F, $32, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $11, REG_NR34_CH3_FRQHI, $85, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR11_CH1_LENDT, $7F, REG_NR11_CH1_LENDT, $7F, REG_NR12_CH1_VOLEV, $85, REG_NR13_CH1_FRQLO, $2D + db REG_NR14_CH1_FRQHI, $87, REG_NR21_CH2_LENDT, $7F, REG_NR21_CH2_LENDT, $7F, REG_NR22_CH2_VOLEV, $F5 + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $87, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $0B, REG_NR34_CH3_FRQHI, $86, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR11_CH1_LENDT, $7F, REG_NR11_CH1_LENDT, $7F, REG_NR12_CH1_VOLEV, $85, REG_NR13_CH1_FRQLO, $2D + db REG_NR14_CH1_FRQHI, $87, REG_NR21_CH2_LENDT, $7F, REG_NR21_CH2_LENDT, $7F, REG_NR22_CH2_VOLEV, $F5 + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $86, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $89, REG_NR34_CH3_FRQHI, $86, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR11_CH1_LENDT, $7F, REG_NR11_CH1_LENDT, $7F, REG_NR12_CH1_VOLEV, $85, REG_NR13_CH1_FRQLO, $21 + db REG_NR14_CH1_FRQHI, $87, REG_NR21_CH2_LENDT, $7F, REG_NR21_CH2_LENDT, $7F, REG_NR22_CH2_VOLEV, $F5 + db REG_NR23_CH2_FRQLO, $42, REG_NR24_CH2_FRQHI, $86, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $63, REG_NR34_CH3_FRQHI, $85, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $F7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $42, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $F7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $42, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $F7, REG_NR24_CH2_FRQHI, $06, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $42, REG_NR34_CH3_FRQHI, $86, $FF + + db REG_NR23_CH2_FRQLO, $42, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $F7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $42, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $F7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $42, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $B2, REG_NR34_CH3_FRQHI, $86, $FF + + db REG_NR23_CH2_FRQLO, $F7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $42, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $F7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $42, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $F7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR11_CH1_LENDT, $7F, REG_NR11_CH1_LENDT, $7F, REG_NR12_CH1_VOLEV, $85, REG_NR13_CH1_FRQLO, $2D + db REG_NR14_CH1_FRQHI, $87, REG_NR21_CH2_LENDT, $7F, REG_NR21_CH2_LENDT, $7F, REG_NR22_CH2_VOLEV, $F5 + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $86, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $89, REG_NR34_CH3_FRQHI, $85, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $5B, REG_NR34_CH3_FRQHI, $86, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $C4, REG_NR34_CH3_FRQHI, $86, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $5B, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $C4, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR11_CH1_LENDT, $7F, REG_NR11_CH1_LENDT, $7F, REG_NR12_CH1_VOLEV, $85, REG_NR13_CH1_FRQLO, $44 + db REG_NR14_CH1_FRQHI, $87, REG_NR21_CH2_LENDT, $7F, REG_NR21_CH2_LENDT, $7F, REG_NR22_CH2_VOLEV, $F5 + db REG_NR23_CH2_FRQLO, $89, REG_NR24_CH2_FRQHI, $86, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $CE, REG_NR34_CH3_FRQHI, $85, $FF + + db REG_NR23_CH2_FRQLO, $E7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $21, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $89, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $E7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $21, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $89, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $E7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $21, REG_NR24_CH2_FRQHI, $07, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $89, REG_NR34_CH3_FRQHI, $86, $FF + + db REG_NR23_CH2_FRQLO, $89, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $E7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $21, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $89, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $E7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $21, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $89, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $E7, REG_NR24_CH2_FRQHI, $06, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $CE, REG_NR34_CH3_FRQHI, $85, $FF + + db REG_NR23_CH2_FRQLO, $21, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $89, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $E7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $21, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $89, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $E7, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $21, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR11_CH1_LENDT, $7F, REG_NR11_CH1_LENDT, $7F, REG_NR12_CH1_VOLEV, $65, REG_NR13_CH1_FRQLO, $59 + db REG_NR14_CH1_FRQHI, $87, REG_NR21_CH2_LENDT, $7F, REG_NR21_CH2_LENDT, $7F, REG_NR22_CH2_VOLEV, $D5 + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $86, REG_NR30_CH3_DACEN, $00, REG_NR30_CH3_DACEN, $80 + db REG_NR32_CH3_VOLUM, $20, REG_NR33_CH3_FRQLO, $16, REG_NR34_CH3_FRQHI, $84, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR32_CH3_VOLUM, $20, REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR32_CH3_VOLUM, $20, REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR32_CH3_VOLUM, $20, REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR32_CH3_VOLUM, $40, REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR32_CH3_VOLUM, $40, REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR32_CH3_VOLUM, $40, REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR32_CH3_VOLUM, $40, REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR32_CH3_VOLUM, $60, REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR32_CH3_VOLUM, $60, REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR32_CH3_VOLUM, $60, REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR32_CH3_VOLUM, $60, REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR32_CH3_VOLUM, $00, REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR32_CH3_VOLUM, $00, REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR32_CH3_VOLUM, $00, REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR32_CH3_VOLUM, $00, REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR32_CH3_VOLUM, $00, REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $39, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $06, $FF + + db REG_NR23_CH2_FRQLO, $06, REG_NR24_CH2_FRQHI, $07, $FF + + db REG_NR12_CH1_VOLEV, $08, REG_NR13_CH1_FRQLO, $59, REG_NR14_CH1_FRQHI, $87, REG_NR22_CH2_VOLEV, $08 + db REG_NR23_CH2_FRQLO, $B2, REG_NR24_CH2_FRQHI, $86, REG_NR32_CH3_VOLUM, $00, REG_NR33_CH3_FRQLO, $16 + db REG_NR34_CH3_FRQHI, $04, $FE +sSFXRankGMEnd:: ; These sound effects contain only noise. sSFXLineClear:: @@ -2020,4 +2361,5 @@ sSFXLock:: db REG_NR43_CH4_FQRND, $00, REG_NR44_CH4_CNTRL, $00, $FE sSFXLockEnd:: + ENDC diff --git a/src/res/sources/sfx.fur b/src/res/sources/sfx.fur index b2b5f811dd68076c02181361a6006eaf88531b9d..f8edb74254f69c067f33d1b0a7b08cd44be948b6 100644 GIT binary patch literal 2419 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 LO4^Ud6y?(Q8r+7>r9BcC&xw(ZcYD@*H@ zo6vdNWvo5?hQ>+IvuO#<=~T*G%^R!yQ9OZ%c-V)Rkqf8s$iIyEksiNx<{#oZYt>rm zg7XBP69gh~Fn-grAputwZpLp4=}CAq@M(yI5$#0B96C49l|%O#dhXEsioS33e!z0*UQY^)i zS=&KgKPO`5P;d$Yr#>DP)HDaEs3uJVtJHXF?I3MYb}BHEPL!EMYJ`)+ypD!trQAnj zK-F)h1)+UPF29vAkwp%%>SWevtKRyZ^na1bxFzy&OQZ};Sy8fNl&pf#UkR^TVY1|5 zvIMz6F{)WnvSgGj30)>CL*|EURx9-{ql}rLx`zMRIlzCyc2Z7VHrJyYkqiPFg49q~ Iesp5%2YDb!egFUf delta 275 zcmZqdU|d!!9hRP}u*i;qp^%XQ4s?M0sx7=5rFUx8Gkw_1qp(@<<7UQs5CU?U=Wb?c z*(_iW5)=yGEZmT^nOSHv3p0?qw3&qgNHHQ)P<;)XnJqW7G{W?`L-e7jMAgT{0W!#u t1!O!PWd!9Wf6~&O9BnJUSzVixYw`wpp3MfPJD5-z3#?8tO`heP4ghlgR&)RW diff --git a/src/res/sources/sfxparse.py b/src/res/sources/sfxparse.py index f06125f..2de11cf 100644 --- a/src/res/sources/sfxparse.py +++ b/src/res/sources/sfxparse.py @@ -188,6 +188,7 @@ sfx_names = [ "sSFXLevelUp", "sSFXRankUp", "sSFXReadyGo", + "sSFXRankGM" ] def chunks(lst, n): diff --git a/src/score.asm b/src/score.asm index 8138848..206b455 100644 --- a/src/score.asm +++ b/src/score.asm @@ -187,7 +187,7 @@ IncreaseScore:: ; If it has, reset the score. xor a, a ldh [hScore], a - ld a, SFX_RANKUP + ld a, SFX_RANKGM jp SFXEnqueue diff --git a/src/sfx.asm b/src/sfx.asm index 5b56aee..f9073f5 100644 --- a/src/sfx.asm +++ b/src/sfx.asm @@ -154,6 +154,8 @@ SFXEnqueue:: ldh a, [hCurrentlyPlaying] cp a, SFX_RANKUP ret z + cp a, SFX_RANKGM + ret z ; If the playhead isn't null, then we're already playing something. ldh a, [hPlayhead] @@ -331,7 +333,7 @@ SFXEnqueue:: ldh [hPlayhead], a ld a, HIGH(sSFXLevelLock) ldh [hPlayhead+1], a - jr SFXPlay + jp SFXPlay : cp a, SFX_LEVELUP jr nz, :+ @@ -350,6 +352,14 @@ SFXEnqueue:: ldh [hPlayhead+1], a jr SFXPlay +: cp a, SFX_RANKGM + jr nz, :+ + ld a, LOW(sSFXRankGM) + ldh [hPlayhead], a + ld a, HIGH(sSFXRankGM) + ldh [hPlayhead+1], a + jr SFXPlay + : cp a, SFX_READYGO ret nz ld a, LOW(sSFXReadyGo) @@ -365,6 +375,8 @@ SFXKill:: ldh a, [hCurrentlyPlaying] cp a, SFX_RANKUP ret z + cp a, SFX_RANKGM + ret z ; Kill all sound without pops. ld a, %00111111