From fd5b4fd26ee6aad74fdf94173a18e36b351fa8c3 Mon Sep 17 00:00:00 2001 From: Randy Thiemann Date: Mon, 13 Nov 2023 02:25:08 +0100 Subject: [PATCH] Add virtual leveling. --- bin/DMGTRIS.GBC | Bin 131072 -> 131072 bytes bin/DMGTRIS.map | 504 +++++++++++++++++++++++---------------------- bin/DMGTRIS.pocket | Bin 131072 -> 131072 bytes bin/DMGTRIS.sym | 348 +++++++++++++++---------------- src/level.asm | 31 +++ 5 files changed, 459 insertions(+), 424 deletions(-) diff --git a/bin/DMGTRIS.GBC b/bin/DMGTRIS.GBC index 284e7db32309400ac5739c64476074f924c50c55..c790ea3adadb3909a6991ad882df5ada8ed7753c 100644 GIT binary patch delta 4375 zcmb_f3vg3a8oqy?O-ow>ecYDPM2DWoLFe zJ?Hz*|DSXJ|KxoCxwoq;t*a~TRSm##UJG+Ik2HDb!Flbpu#*F+HBU>JUa&IMW)zrQ z5qrQz`rg6Em>R8@IqhOZB3jRxtQzcMrd+xEcV^MXeU#pNYx+HUDEAI!f33yt=tQM^ zE&odm{K>ngaE`7s>?E7|%*H-&GZgWl3LE#P#yu*$NreYh*tk#Sufm&Bn9~NI>f>}l ze;=n0n)Y%AevRd!)@!Z>H;DLj<9_of_8dszO)sYK;K39&{yv30FC{T=x3*wj>^gO3 z?0xFo*bbt~j%_2V{MZ(v%8;!msvOx$qRNsjBA!%kY!*pn%3rcJVhrMr$;8-a-jvwh z1RWepjeFyppRjty(oJLO;8<$hH+HU?n()DK?)8zYAank-NOr)$w3^n@f*JhC6c)De zX(iXd3w&eAr-r2tZaf|4%S){}acJkVgX02zifjTJmXuCH&xcCgu$wEbZIb*il*zEWb{(9Wp-BZD@pfGSfaa+ZX* z9L3qG?KX83k&Hkz(>l(e$tsGwkM~C>3>b7-^>mweS=mvL!^y&lR$D_}9NI(AdqO*p z*wW+(ve9&}?P&<}G28B>Z(qeMSjvA&Pze z{goDN-da26l|z*-Gu|2KTK=HDt@BOC!%@bX!KF!;IJfkbDDy7lYmm=Pa1HV)$eR;< zJ@V_3&rfhbJ{9@(3Eqvo0C{VIYmsLlZ%Obcke@@oK>Dgvd7uslUROD6Kwgf#Eipll zdvPK5&7fD7b`rPj`V$`v*UCN(iKSCky_q#M6;0p8u^mA zIUDH@Ny@X1mtYq!Iy$PuPP2VA`SK(f?#P!P7Ch zJ%ug5sH&_WXi3#~enkAo)mNqU)b@(IW^DbOsip;$P~IfQbHG#7K$~DhWVp4Ry<|r zYkrGudu=7Vw-%Ruy;l5ltvFCCzFR9Es}%#a;%V>h+6~(5#yYg#SSK#86YsARJNc{Y z4pyes1ACcb`+N-BtZ%WIh5u|J7jv2FFTeZE!w%0Qj#lkiD<7-7r+CZ)u

-0qG3gTu3YM1DA8FqwjIAZ-L zy$~a}jv9B@i~el!t%(K*m_4%z(*=x{Mx16(uBa;#&`${lFUHhWg9oy?y0 zB;^I?<_t{C5TH*j!W8*RS2@}3A{Szi&d7HM6UBQtPriu>Go(Pg2fg>Z9?-t#W(O=Q z@v6O^E_Y$t+$6~(&5~ww4E4C>>Tr<`KU)VkW4(?{3q*6Qh33cF$*Nw^%cs=b-A~m`GVbE@-V}U%RPo z8Tn)v=;UC~P@XWnrWn468-$};U?D6V(!=D^is$0a>^O6&w?c zGvJJ6dSDBGV&VQ?Wf9?Nw8s}NxdAU{Wyz7aO^&8C5zR&=n$}T6C>#&}qB8DCgio~% zLbd@4iy}@U?Sk^dS7z^d{own=Wfq2xEu0f@)2Br42l>9a)w|r4O*z5>>Gj*lXo{BOY^=V@{Avu zd~o*-nUff=O+rc22{_B-$?uYhDaxV7*?OEUkNzPAUr)kL7a2%m7de)Kr&I8J3Vxn~ zms0R@3L5;Qj~kzYg(+A%3OR%HgI{Rs2F};s1f>QT6xMlQ19lagVI_9kH$#PQ$1KRy zzI7LZnAIQc5vy1^*bO>5N?4*_#%#{?({E{T5-~DCl|${&@2}PxfXi!xliTN!0nJ` zQ?`m85-e>{3QL7YdZ0vD(*{>h>~091jn1=9=nr0}yxN%QuyCjiil(C$8at?LZnWxg zN6z$1XU$)CkgNTefvl9q4$g!{m2=ZcO`#8@zu*lLLqFm^594m ztl4y-J9JJC=MjTI%^d^UjezO z=;#Wl&ctMvI!N?nWowJLR&aH|FHBfix6olbJ6%{O05QvjR^b^kN~goVKnL7BS=No} zz+aJsu0#)4Du)GeN&P?dAYAN%JQwEmACuvE$T%_Dc)syqmZTIw*X)1!gG%^P#{_flk(z zVBHS#N25@@9rERoet9HE{$iBXa)%zTK=ZL7l6@j^_njUhIZ1qeh!iC8=R>48i7yS2 zk|e%7L~KcH@DqCykN1-*#o6fgc4!A{v| delta 4419 zcmb_f4|G%28Gm2WBuz_O0&V(QN}Eedn-*&NM`>%)XIg1fU|MiR3=ENC>HP0-8#(F90uejrk5~p1Cu~U2bSyJ(N;u97~~OXofKj3mzur75?{!4*o*I4A6TArhYnH(2GhRMV)w>$ zrF%8=tOlML*pe|>=qNx71<|;`W)u&}Zt7 zE^m|`nM@74Ba0vPx+c@^$@Iu%YS=S*teP6}#SuQ>A#)(5YHl#ir)Qdt8)>+PAD_j- zIzBP~a(Ixh&HqGSZ{w!YVZNxqk{*GjT$+E1&r6X_L&u7O85p^~zzJRap@NyQ_!9+% zIE`lZTx@N#8#33`gu)h<3;VNtT!BB?rwkW|`JUO<;>b+Vc>_B_y7%?k)GVqDna<@! zqvb44&URbXSp<`Pp%lv$y(Tp$5gNAc z+S1WyyEnvGlDS0bJm-|Y6lLCtydC+XDAypLg}fokHzB_o`I0CHZ4TcQJW$X6hDMfpR>??=8g%Js;1A#aNE zEyy20zD(hvB&2^qx*$RyLAn~L8);sjEtHD`2Ki7Kr(@+Iu>Lcov3@Q6EjZg3(pqxR<{t^m?J&0d-DQPY@u-l_`h_$k4ND`` zQ!aY={<6F&W994^r&~4Cnt|aTl;zwqR!)Y(Z(6^~f72Sk=QDgxvwLwy*=%_R0lSkk z-~bC9DfgcrYVLQD!6D;DWz-pr{yRP&;d6@aEW>0k&sY5gM&$6bL&o*^wpHc#6u(oB ziKBSBx|)q=#6xA`yJaF%E)JB5=ga8n@=vb{<(GZyMZ|wsJ|}TQWxs#R5M9n+R`F!| zvQ?S zZn2x(+zZLdL@V56a}=}LrnM^1FBDI`62>z09^iIJPOoX!&GPp}p9Zs-uzh^vzuVrz zg^R=qjR1Kt>RAg=ps5_S>zQDo?^w~XqGqzkZERUdK7I-kX`j9A1T;Zq}Q zfga(GBwWoNVOtWcN|EGmH@cw`7xDRC&w;7%+eA;^G&rR5G-Sd1g&nx}b{&P=!5o&i z;ijXI!zhr``*W#3k9x_TK?pGB+i`1}_6(9IyvXFuyJyf8!+6CKO6rcoNyaRHcSeUO z8yiRKaI|dwLmVEA!45k)9K&{UG!94Na4Zf_$Km-nybybijQxa*)m5Br6UF4&A+@m5%a-L|bz?AhJ~DH=E^>{+z!< zciqU(V_LD(b~_isLt&15D9GpGKqmKzd^B*|r3Ex(qmK!BEl>dU!hJg-UubWE%ci&2 z1Wtw)Tc-8>XhK1gxa3B+ZRAfje#GKW5qMHiW5d6>KuaHsCP1nPRNruFV ziIiC3#?_GAkys(#SsnO1#8}e;=dd*f0@!M0<9G-xX>_SGa7s?(tn?Ya-V|z;_mfr5 zM#i{DCNS=S35@^a30$wjw?;9$0&A2`T7=W9Ap;d1S`FnXSWLZ*goa9*8%4L^XoVY$ zc(6V~hfCRc!bSmzNj_*5o-CszI_&Ya!nHGH-KaMFB}wQ~^l+(ixGo~8|EC^=bDdyz zU|s*Q7*30-`H_Rbrz(B z%{sgSO-Bbw+VSY!H!?`lV|Z+kWX165L6RH8=LboC3||-|))>}%NofpE^^%Gh&i0b3 z7%uPj*~i1B@g48h*CG*_CG2$N4R?@Bu3=AAL3h7c!vtVuEHOwu#rN#a@u6HDIyiTd%=tvmG(lBTBB6aXqhnoIj~-m OQ0-dJ$NM06*}nj?To)by diff --git a/bin/DMGTRIS.map b/bin/DMGTRIS.map index 8cb951e..7413c69 100644 --- a/bin/DMGTRIS.map +++ b/bin/DMGTRIS.map @@ -301,7 +301,7 @@ ROM0 bank #0: $2663 = UpdateGradeSHIR.disqualify $2672 = UpdateGradeSHIR.l1000 $2688 = UpdateGradeSHIR.l500 - SECTION: $269e-$2a80 ($03e3 bytes) ["Level Functions"] + SECTION: $269e-$2a9a ($03fd bytes) ["Level Functions"] $269e = LevelInit $270e = SpecialLevelInit $271c = SpecialLevelInit.jumps @@ -345,255 +345,257 @@ ROM0 bank #0: $2a39 = TriggerKillScreen $2a5b = GetSection $2a6c = GetSectionBCD - $2a75 = SkipSection - SECTION: $2a81-$2d36 ($02b6 bytes) ["Grading Data"] - $2a81 = sTGM1GradeScores - $2aa3 = sTGM3InternalGradeSystem - $2b43 = sTGM3GradeBoosts - $2b62 = sTGM3LevelMultiplier - $2b66 = sTGM3BaselineCOOL - $2b6f = sTGM3REGRETConditions - $2b83 = sDMGTGrading - $2c37 = sDMGTGaugeLUT - SECTION: $2d37-$2fd6 ($02a0 bytes) ["SFX Functions"] - $2d37 = SFXInit - $2d59 = SFXPopQueue - $2d6e = SFXPushQueue - $2d7f = SFXProcessQueue - $2d90 = !0 - $2dab = !1 - $2dad = SFXTriggerNoise - $2dba = !2 - $2dc7 = !3 - $2dd3 = SFXEnqueue - $2de8 = SFXEnqueue.findsfx - $2dfd = !4 - $2e0d = !5 - $2e1d = !6 - $2e2d = !7 - $2e3d = !8 - $2e4d = !9 - $2e5d = !10 - $2e6d = !11 - $2e7d = !12 - $2e8d = !13 - $2e9d = !14 - $2ead = !15 - $2ebd = !16 - $2ecd = !17 - $2edd = !18 - $2eec = !19 - $2efb = !20 - $2f0a = !21 - $2f19 = !22 - $2f27 = !23 - $2f35 = !24 - $2f42 = SFXKill - $2f75 = SFXPlayNoise - $2f80 = SFXPlayNoise.noisereg - $2f8d = !25 - $2f97 = SFXPlayNoise.savenoiseplayhead - $2fa0 = SFXPlay - $2fab = !26 - $2fae = SFXPlay.play - $2fba = SFXPlay.getRegister - $2fc4 = !27 - $2fce = SFXPlay.savePlayhead - SECTION: $2fd7-$3207 ($0231 bytes) ["RNG Functions"] - $2fd7 = HarvestEntropy - $2fdd = HarvestEntropy.loop - $2ffe = RNGInit - $3034 = !0 - $3064 = RNGInit.complexinit - $307b = !1 - $3096 = ShiftHistory - $30b3 = GetNextHellPiece - $30b8 = GetNextTGM1Piece - $30bb = !2 - $30d3 = !3 - $30d5 = GetNextTGM2Piece - $30d8 = !4 - $30f0 = !5 - $30f2 = GetNextNesPiece - $3100 = GetNextTGM3Piece - $3103 = !6 - $3126 = !7 - $3129 = !8 - $3139 = !9 - $3143 = !10 - $3151 = !11 - $3160 = !12 - $316c = !13 - $3178 = !14 - $3184 = !15 - $3190 = !16 - $319c = !17 - $31a8 = !18 - $31b7 = GetNextPiece - $31c5 = GetNextPiece.nextpiecejumps - $31d4 = Next35Piece - $31d4 = !19 - $31de = Next7Piece - $31de = !20 - $31e8 = NextByte - SECTION: $3208-$33cf ($01c8 bytes) ["Hi Score Functions"] - $3208 = CheckAndAddHiscore - $3212 = CheckAndAddHiscore.checkloop - $3217 = CheckAndAddHiscore.checkgrade - $3220 = CheckAndAddHiscore.oldgraded - $322f = CheckAndAddHiscore.oldungraded - $3236 = CheckAndAddHiscore.checklevel - $325b = CheckAndAddHiscore.checkscore - $329e = CheckAndAddHiscore.notbetter - $32ab = CheckAndAddHiscore.better - $32ad = InsertHiScore - $32ad = InsertHiScore.copylower - $32be = InsertHiScore.copyupper - $32cb = !0 - $32df = InsertHiScore.findrow - $32ec = !1 - $32f0 = InsertHiScore.insert - $3349 = InsertHiScore.persist - $335a = GetHiScoreEntry - $336f = !2 - $3373 = GetHiScoreEntry.store - $337c = InitTargetHSTable - $3387 = InitTargetHSTable.jumps - $339c = InitTargetHSTable.dmgt - $33a1 = InitTargetHSTable.tgm1 - $33a6 = InitTargetHSTable.tgm3 - $33ab = InitTargetHSTable.deat - $33b0 = InitTargetHSTable.shir - $33b5 = InitTargetHSTable.chil - $33ba = InitTargetHSTable.myco - $33bd = InitTargetHSTable.store - SECTION: $33d0-$3519 ($014a bytes) ["Progress Data"] - $33d0 = sProgressData - SECTION: $351a-$3659 ($0140 bytes) ["Hi Score Data"] - $351a = sHiscoreDefaultData - SECTION: $365a-$378d ($0134 bytes) ["Input Functions"] - $365a = InputInit - $366c = GetInput - $366c = GetInput.btns - $3679 = GetInput.readA - $367d = GetInput.setA - $3688 = GetInput.clearA - $368b = GetInput.readB - $368f = GetInput.setB - $369a = GetInput.clearB - $369d = GetInput.readSelect - $36a1 = GetInput.setSelect - $36ac = GetInput.clearSelect - $36af = GetInput.readStart - $36b3 = GetInput.setStart - $36be = GetInput.clearStart - $36c1 = GetInput.dpad - $36ce = GetInput.readUp - $36d2 = GetInput.setUp - $36dd = GetInput.clearUp - $36e0 = GetInput.readDown - $36e4 = GetInput.setDown - $36ef = GetInput.clearDown - $36f2 = GetInput.readLeft - $36f6 = GetInput.setLeft - $3701 = GetInput.clearLeft - $3704 = GetInput.readRight - $3708 = GetInput.setRight - $3713 = GetInput.clearRight - $3716 = GetInput.priorities - $3723 = GetInput.jumps - $3732 = GetInput.dlru - $3745 = GetInput.ulrd - $3758 = GetInput.lrud - $3765 = GetInput.udlr - $3772 = GetInput.zeroud - $3778 = GetInput.zerolr - $377e = GetInput.zerolrd - $3786 = GetInput.zerolru - SECTION: $378e-$386d ($00e0 bytes) ["Score Functions"] - $378e = ScoreInit - $37b6 = IncreaseScore - $37ee = IncreaseScore.doConvert - $37f0 = !0 - $3806 = IncreaseScore.carry - $3808 = IncreaseScore.postConvert - $3815 = !1 - $381c = IncreaseScore.preAddDigit - $3844 = IncreaseScore.addDigit - $385a = IncreaseScore.nextDigit - SECTION: $386e-$3938 ($00cb bytes) ["Title Function Trampolines"] - $386e = SwitchToTitle - $3877 = TitleEventLoopHandler - $3881 = TitleVBlankHandler - $388b = PersistLevel - $3899 = DrawSpeedMain - $38e9 = DrawSpeedSettings - SECTION: $3939-$39fe ($00c6 bytes) ["Time Functions"] - $3939 = TimeInit - $3959 = StartCountdown - $3967 = ResetGameTime - $3972 = CheckTorikan - $3989 = CheckTorikan.failure - $398b = CheckTorikan.success - $398e = HandleTimers - $39b4 = HandleTimers.reduce - $39c1 = HandleTimers.clock - $39db = HandleTimers.go - SECTION: $39ff-$3ab0 ($00b2 bytes) ["Progress Functions"] - $39ff = SetProgress - $3a0a = SetProgress.loop - $3a0e = SetProgress.correct - $3a35 = SetProgress.wvr_u1 - $3a41 = SetProgress.wvr_u2 - $3a4f = SetProgress.wvr_u3 - $3a5b = SetProgress.wvr_u4 - $3a69 = SetProgress.wvr_u5 - $3a75 = SetProgress.wvr_u6 - $3a83 = SetProgress.wvr_u7 - $3a8f = SetProgress.wvr_u8 - $3a9d = SetProgress.wvr_u9 - $3aa9 = SetProgress.wvr_u10 - SECTION: $3ab1-$3b48 ($0098 bytes) ["Code Entry Point"] - $3ab1 = Main - $3ada = Main.notgbc - $3ae0 = Main.wvr_u1 - $3b0d = EventLoop - $3b23 = EventLoop.eventloopjumps - $3b2c = EventLoopPostHandler - $3b2e = EventLoopPostHandler.wvb_u2 - $3b40 = EventLoopPostHandler.vblankjumps - SECTION: $3b49-$3b9a ($0052 bytes) ["Tile Functions"] - $3b49 = LoadTitleTiles - $3b67 = LoadGameplayTiles - $3b7d = LoadGameplayTiles.gbc - $3b8c = LoadGameplayTiles.dmg - SECTION: $3b9b-$3bd6 ($003c bytes) ["Time Data"] - $3b9b = sFramesToCS - SECTION: $3bd7-$3c04 ($002e bytes) ["Memory Functions"] - $3bd7 = UnsafeMemCopy - $3be0 = SafeMemCopy.wvr_u1 - $3be0 = SafeMemCopy - $3bef = UnsafeMemSet - $3bf7 = SafeMemSet - $3bf7 = SafeMemSet.wvr_u2 - SECTION: $3c05-$3c2a ($0026 bytes) ["Gameplay Function Trampolines"] - $3c05 = SwitchToGameplay - $3c0e = SwitchToGameplayBig - $3c17 = GamePlayEventLoopHandler - $3c21 = GamePlayBigEventLoopHandler - SECTION: $3c2b-$3c4f ($0025 bytes) ["Interrupt Initialization Functions"] - $3c2b = EnableScreenSquish - $3c45 = DisableScreenSquish - SECTION: $3c50-$3c71 ($0022 bytes) ["OAM Functions"] - $3c50 = CopyOAMHandler - $3c5c = ClearOAM - SECTION: $3c72-$3c80 ($000f bytes) ["Banking Functions"] - $3c72 = BankingInit - SECTION: $3c81-$3c8a ($000a bytes) ["OAM DMA Code"] - $3c81 = OAMDMA - $3c8b = OAMDMAEnd - EMPTY: $3c8b-$3fff ($0375 bytes) - TOTAL EMPTY: $0380 bytes + $2a75 = GetAdjustedSection + $2a86 = GetAdjustedSectionBCD + $2a8f = SkipSection + SECTION: $2a9b-$2d50 ($02b6 bytes) ["Grading Data"] + $2a9b = sTGM1GradeScores + $2abd = sTGM3InternalGradeSystem + $2b5d = sTGM3GradeBoosts + $2b7c = sTGM3LevelMultiplier + $2b80 = sTGM3BaselineCOOL + $2b89 = sTGM3REGRETConditions + $2b9d = sDMGTGrading + $2c51 = sDMGTGaugeLUT + SECTION: $2d51-$2ff0 ($02a0 bytes) ["SFX Functions"] + $2d51 = SFXInit + $2d73 = SFXPopQueue + $2d88 = SFXPushQueue + $2d99 = SFXProcessQueue + $2daa = !0 + $2dc5 = !1 + $2dc7 = SFXTriggerNoise + $2dd4 = !2 + $2de1 = !3 + $2ded = SFXEnqueue + $2e02 = SFXEnqueue.findsfx + $2e17 = !4 + $2e27 = !5 + $2e37 = !6 + $2e47 = !7 + $2e57 = !8 + $2e67 = !9 + $2e77 = !10 + $2e87 = !11 + $2e97 = !12 + $2ea7 = !13 + $2eb7 = !14 + $2ec7 = !15 + $2ed7 = !16 + $2ee7 = !17 + $2ef7 = !18 + $2f06 = !19 + $2f15 = !20 + $2f24 = !21 + $2f33 = !22 + $2f41 = !23 + $2f4f = !24 + $2f5c = SFXKill + $2f8f = SFXPlayNoise + $2f9a = SFXPlayNoise.noisereg + $2fa7 = !25 + $2fb1 = SFXPlayNoise.savenoiseplayhead + $2fba = SFXPlay + $2fc5 = !26 + $2fc8 = SFXPlay.play + $2fd4 = SFXPlay.getRegister + $2fde = !27 + $2fe8 = SFXPlay.savePlayhead + SECTION: $2ff1-$3221 ($0231 bytes) ["RNG Functions"] + $2ff1 = HarvestEntropy + $2ff7 = HarvestEntropy.loop + $3018 = RNGInit + $304e = !0 + $307e = RNGInit.complexinit + $3095 = !1 + $30b0 = ShiftHistory + $30cd = GetNextHellPiece + $30d2 = GetNextTGM1Piece + $30d5 = !2 + $30ed = !3 + $30ef = GetNextTGM2Piece + $30f2 = !4 + $310a = !5 + $310c = GetNextNesPiece + $311a = GetNextTGM3Piece + $311d = !6 + $3140 = !7 + $3143 = !8 + $3153 = !9 + $315d = !10 + $316b = !11 + $317a = !12 + $3186 = !13 + $3192 = !14 + $319e = !15 + $31aa = !16 + $31b6 = !17 + $31c2 = !18 + $31d1 = GetNextPiece + $31df = GetNextPiece.nextpiecejumps + $31ee = Next35Piece + $31ee = !19 + $31f8 = Next7Piece + $31f8 = !20 + $3202 = NextByte + SECTION: $3222-$33e9 ($01c8 bytes) ["Hi Score Functions"] + $3222 = CheckAndAddHiscore + $322c = CheckAndAddHiscore.checkloop + $3231 = CheckAndAddHiscore.checkgrade + $323a = CheckAndAddHiscore.oldgraded + $3249 = CheckAndAddHiscore.oldungraded + $3250 = CheckAndAddHiscore.checklevel + $3275 = CheckAndAddHiscore.checkscore + $32b8 = CheckAndAddHiscore.notbetter + $32c5 = CheckAndAddHiscore.better + $32c7 = InsertHiScore + $32c7 = InsertHiScore.copylower + $32d8 = InsertHiScore.copyupper + $32e5 = !0 + $32f9 = InsertHiScore.findrow + $3306 = !1 + $330a = InsertHiScore.insert + $3363 = InsertHiScore.persist + $3374 = GetHiScoreEntry + $3389 = !2 + $338d = GetHiScoreEntry.store + $3396 = InitTargetHSTable + $33a1 = InitTargetHSTable.jumps + $33b6 = InitTargetHSTable.dmgt + $33bb = InitTargetHSTable.tgm1 + $33c0 = InitTargetHSTable.tgm3 + $33c5 = InitTargetHSTable.deat + $33ca = InitTargetHSTable.shir + $33cf = InitTargetHSTable.chil + $33d4 = InitTargetHSTable.myco + $33d7 = InitTargetHSTable.store + SECTION: $33ea-$3533 ($014a bytes) ["Progress Data"] + $33ea = sProgressData + SECTION: $3534-$3673 ($0140 bytes) ["Hi Score Data"] + $3534 = sHiscoreDefaultData + SECTION: $3674-$37a7 ($0134 bytes) ["Input Functions"] + $3674 = InputInit + $3686 = GetInput + $3686 = GetInput.btns + $3693 = GetInput.readA + $3697 = GetInput.setA + $36a2 = GetInput.clearA + $36a5 = GetInput.readB + $36a9 = GetInput.setB + $36b4 = GetInput.clearB + $36b7 = GetInput.readSelect + $36bb = GetInput.setSelect + $36c6 = GetInput.clearSelect + $36c9 = GetInput.readStart + $36cd = GetInput.setStart + $36d8 = GetInput.clearStart + $36db = GetInput.dpad + $36e8 = GetInput.readUp + $36ec = GetInput.setUp + $36f7 = GetInput.clearUp + $36fa = GetInput.readDown + $36fe = GetInput.setDown + $3709 = GetInput.clearDown + $370c = GetInput.readLeft + $3710 = GetInput.setLeft + $371b = GetInput.clearLeft + $371e = GetInput.readRight + $3722 = GetInput.setRight + $372d = GetInput.clearRight + $3730 = GetInput.priorities + $373d = GetInput.jumps + $374c = GetInput.dlru + $375f = GetInput.ulrd + $3772 = GetInput.lrud + $377f = GetInput.udlr + $378c = GetInput.zeroud + $3792 = GetInput.zerolr + $3798 = GetInput.zerolrd + $37a0 = GetInput.zerolru + SECTION: $37a8-$3887 ($00e0 bytes) ["Score Functions"] + $37a8 = ScoreInit + $37d0 = IncreaseScore + $3808 = IncreaseScore.doConvert + $380a = !0 + $3820 = IncreaseScore.carry + $3822 = IncreaseScore.postConvert + $382f = !1 + $3836 = IncreaseScore.preAddDigit + $385e = IncreaseScore.addDigit + $3874 = IncreaseScore.nextDigit + SECTION: $3888-$3952 ($00cb bytes) ["Title Function Trampolines"] + $3888 = SwitchToTitle + $3891 = TitleEventLoopHandler + $389b = TitleVBlankHandler + $38a5 = PersistLevel + $38b3 = DrawSpeedMain + $3903 = DrawSpeedSettings + SECTION: $3953-$3a18 ($00c6 bytes) ["Time Functions"] + $3953 = TimeInit + $3973 = StartCountdown + $3981 = ResetGameTime + $398c = CheckTorikan + $39a3 = CheckTorikan.failure + $39a5 = CheckTorikan.success + $39a8 = HandleTimers + $39ce = HandleTimers.reduce + $39db = HandleTimers.clock + $39f5 = HandleTimers.go + SECTION: $3a19-$3aca ($00b2 bytes) ["Progress Functions"] + $3a19 = SetProgress + $3a24 = SetProgress.loop + $3a28 = SetProgress.correct + $3a4f = SetProgress.wvr_u1 + $3a5b = SetProgress.wvr_u2 + $3a69 = SetProgress.wvr_u3 + $3a75 = SetProgress.wvr_u4 + $3a83 = SetProgress.wvr_u5 + $3a8f = SetProgress.wvr_u6 + $3a9d = SetProgress.wvr_u7 + $3aa9 = SetProgress.wvr_u8 + $3ab7 = SetProgress.wvr_u9 + $3ac3 = SetProgress.wvr_u10 + SECTION: $3acb-$3b62 ($0098 bytes) ["Code Entry Point"] + $3acb = Main + $3af4 = Main.notgbc + $3afa = Main.wvr_u1 + $3b27 = EventLoop + $3b3d = EventLoop.eventloopjumps + $3b46 = EventLoopPostHandler + $3b48 = EventLoopPostHandler.wvb_u2 + $3b5a = EventLoopPostHandler.vblankjumps + SECTION: $3b63-$3bb4 ($0052 bytes) ["Tile Functions"] + $3b63 = LoadTitleTiles + $3b81 = LoadGameplayTiles + $3b97 = LoadGameplayTiles.gbc + $3ba6 = LoadGameplayTiles.dmg + SECTION: $3bb5-$3bf0 ($003c bytes) ["Time Data"] + $3bb5 = sFramesToCS + SECTION: $3bf1-$3c1e ($002e bytes) ["Memory Functions"] + $3bf1 = UnsafeMemCopy + $3bfa = SafeMemCopy.wvr_u1 + $3bfa = SafeMemCopy + $3c09 = UnsafeMemSet + $3c11 = SafeMemSet + $3c11 = SafeMemSet.wvr_u2 + SECTION: $3c1f-$3c44 ($0026 bytes) ["Gameplay Function Trampolines"] + $3c1f = SwitchToGameplay + $3c28 = SwitchToGameplayBig + $3c31 = GamePlayEventLoopHandler + $3c3b = GamePlayBigEventLoopHandler + SECTION: $3c45-$3c69 ($0025 bytes) ["Interrupt Initialization Functions"] + $3c45 = EnableScreenSquish + $3c5f = DisableScreenSquish + SECTION: $3c6a-$3c8b ($0022 bytes) ["OAM Functions"] + $3c6a = CopyOAMHandler + $3c76 = ClearOAM + SECTION: $3c8c-$3c9a ($000f bytes) ["Banking Functions"] + $3c8c = BankingInit + SECTION: $3c9b-$3ca4 ($000a bytes) ["OAM DMA Code"] + $3c9b = OAMDMA + $3ca5 = OAMDMAEnd + EMPTY: $3ca5-$3fff ($035b bytes) + TOTAL EMPTY: $0366 bytes ROMX bank #1: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] @@ -3299,7 +3301,7 @@ HRAM bank #0: TOTAL EMPTY: $0000 bytes SUMMARY: - ROM0: 15488 bytes used / 896 free + ROM0: 15514 bytes used / 870 free ROMX: 68697 bytes used / 29607 free in 6 banks SRAM: 2951 bytes used / 5241 free in 1 bank WRAM0: 3910 bytes used / 186 free diff --git a/bin/DMGTRIS.pocket b/bin/DMGTRIS.pocket index 022c0bba80a584dbf7ba7c701d71de8065414fa2..042a08a6b8d4f4315c73fdf33f7dcdf72a507815 100644 GIT binary patch delta 4375 zcmb_f3vg3a8oqy?O-ow>ecYDP?0;{P=62Oxc4nv3 zbH4BV|2g;nPtNzBd%L>Qy1LR{)c_plwJ=xX{meTb&TFTIT^vZQd0N8sf|a2rcOF2W z(i>p_keiua!n^~Fj)uLr>fhDYBxV@p88|w|!__af`Xd#AsCgg{9h7M%H^0C%qrl{j zR0iCn?;U)Mslj@g(=J9NqV=4~s=+R1%9Xo+XBKVTN9nz{rr)E7GVf6K*IMk3PE@+r z^1sx;pS*hu=jb}aF0!f5Z0v(Zh9VwRVdK8kxJQLIsqml*8~3aHRd`bhbK2mRK28_( z_i_55X&-0c*H|8Ez2;hI1QDNZJYXKho`Wg8>4g*?d@+TMzfWP$OG(UET3awLcAYvi z_C9rPYzI+g$F>nweryX-WysbMRgP>0QDw;%5l<>NHjAV(87!Ca4a?MA3Ik~P59tA_xi|Hkhx%5Bs*YWT21R{!3=(63Jcr$ zw32J!dA_0KQ^QgRH=YjjWj1S099DAK!EpgUMK%EqOKg+S^C4R!?BS2tCMW&R*h+C3 z&D3ewI;J+~Z?BKWtSlD`76dq3Fe9K$7l-+6Q|;yPl@jZQc186c8MIjiRGBi7vn0Ib zD9%o8x2vOwWCWs_)^P?+R#Du2ygxc&z@W>jquag9N{@mZP8LqI+UxV;urlI6;V5Ix;L@Z^T%+`rDDy7lYmm=Pa1HV)$eR;< zJ@V_3FGz4eJ{9@(3Eqvo0C{VIYmsLlZ%Obcke@?-v-DM`@<1I9ysmQCfV>QOTVjG9 z`4Z%w1b-6wqsSK~xB>ZIXUFMQq$`lNBelHgh-M-GHS#5K zb2ic+l9Xp1FTrkJbaYgQUFOQw{k}R1_J2e*_HU%WMy3X$T5A!G1y9H1 z_7t}KqN>t@lvh-54@)PdQ_^Yrezo{M|4fx--1pV&c}~B4vOO2w2daudZgcVv;1c9y z>@Dja1Z)pyL=P*y$fs3X;8osUE&DZBuPwh&jSogqba%I!z7RjC5=W}U!fKILiQ}rN zrslKjq9s+|`4RCSS6`LZ-0qG3gTu0w@(5D=9<8*qco;0{ZKj21Tz`N?iYPaZe8+L|nIAZ-L zy$~a}jvDvWiT-Tyt%(K*m_4%z(*=x{MqFl3!;OS_0+>uBa;#&`${lFUHhWg9oy?y0 zB;^Iy<_t{C5TIKYVTyc(yNv8{lM69OXXLwsiQ+w+C*Q<`8B!qLgWmhy4`^R&WCtuO z@v6O^E_Y+v+$6~(&5~ww4D~e1)!`x?ex?@YVZDw_3q*6Qh33cF$*Nw^%cs=b-Au}^OM@z~qAX>mWH1;7Gf-)aDx#u;`Qm`G_rE@-V}f4iw| z8Tn*4=;UC~P?j*frWn468-$};U?D6V(!*q1`Ll6ncAPobPLj;*2oUH6t-Orr_2uiJ z8F0ojJ+Os8v2cH{vWV~$+T#nC+<=#}vgAnICP!mSM6*$erghX13dh60sEj)j;ZtqB zkZpj%qKJz~yJ0+ohl()ICV*82Vnk>*fJbL>i+0~m15|3u57vnb=Y+Q18`{1GG8xn3 z(zeH>?Nk|!*aNh9PJBc>D12sujc`!7Cmnb5ps*tymS;v>_&!E^oVbZE^!g5uhu@|7 zEEC{}-q&0JAC-3Ex!ZdT?uNXWd<54YgCa(OoFQ0DgBI#1`-dRJynz-E9!VVwsyU{}5wR${kfGnD&w&Vo!0 zyeI6P1BE#D#vEwTVG&;{RBeM&U-?`JXl^pOLw}6Ml)d>jW@$fABix)y7PRg+pynG#$0j&_QK$gH?|^ za;9H8YyP@}Tr+_nNTI;Yf#o9jZuQO2Gfx`?eQ6v9?34~|5^ znoSorhR(@>d@21MA8(F!$mhu}MR}RvL7Jl_D>6dtjNM+l=Qh zsV5)msa{k3UTx@APv~%0*M}PEaOmX*>E$T%_DeU@`8RPHbWr$oE6h>^=0ky<0-dZa z!MX$Fk4B+*2jt5m{qjhT{KY7%P0-?mIn1a+3J`5GhFF&xc5H5?>l3 zB}sgFh}e_Z;3t(yJl;=glDN=MYLnRJC+-A}q@N&7J|_<&nz&Ne-}OH#wMe+H2h!ql zUGS4iJ=X(8M$}^ND%#y6Kt8KrMVGT1X_HEq4nff+72uVmE>EqLbs1enmY<00^66f< zD`SiRWw>9+;9-=S0q%I*7wOFC|>+8SSH$! delta 4419 zcmb_f4|G%28Gm2WBuz_O0&V(QN}EeVn-*&NM`>%)XIp7gU{Y{JEDVui>HP0-8##LRzFHTU#C-VUS0lby9?5Kx*~|i+v%}5i7?83$jx%)25(?(*H-n}B}b{(X+2h+aLV)y!V zrF$jwoCcn9@5x@6&^hWLJ^dy_Kh!c5@lh2v?2X%9D%_*OM^)IcPZh7iJ#oxw{SWnX z34U)sr}G>4a(ccaZ$oqT6;KNzzTL3jG=W{u#BtBFaeVZ-I5zw?j$JRrFkfP6#Jbo` z>dM%=)U~l~L{%NzLR9s!jYL%;TSZhgvc*JIC7VNB@!Hr_60elMV5z|z#9cFqq2JUK zUEU}?I++^wMixKnbxo!{lj+gP)Ua>zST!}`izD3aA#)(5a&9oqr)Qdtn`pS2AD_j- zdOk7#a(IBR$^TeiZ|A1cVZP96Nsqu1F3ms1=cUM|p<|_W21ahM)0Dkk zTF&Cs>{gpPi(s-Zlwz5p*QDk|!l!ye(~js9Qmg2C_o{-|K~5(X2U={^<_IhaJnafR zdf1jIXOM=jJ8e5*ln>jUipBO9H9?Pn`4pcs?0%e4Hd~%T!0zS@ zIKV&iTG7VH;Lf^najru~{`zq-#l64kmjHj{XI%My=ct|D z$^`0;Z?FUhq{Z|nPI})Ay2MFuoJp&z>56%@vV^X84*0b`zriP+q<2)&emnhzo!&N& zK2lBc9f5Cgp)lbMRbr-7Bu@RV!2H9OZ|DbMQaj=7t`faz;v3WT;4`@v5T*+lEtMQ5 zSIv(I^8hd@NaS26yOq1rl4f$PQwNz`tue|UbZkq;!t_4+&~;cMKi^qMx}D^MFeEYZ z9m9n1zBbD@Hem)8i1(#?yYuH-{)jXCm0I>l-U7Uquci%7ES;Mnxuhm(0mo2Rt$dQ4 zr^Am|!eTtzgL8eMbW65rV=HOz1D(9nP2H{J!6;_e%DILypivdDNEJ{YDaH|;<2&xc zxFxORrankkCR*7_wnQn8d8qF;kqOxQlU;oog< z;=)DZghqfo81<|Juxcts9eO5M;5%M;ys(+=cu~mBg6I?jz6#T6r4r2~TDMGyslRr2{tmdnO*}Qzj91qCYZm z{(QX1l_|#~J~n6-kxJ{8<@lL zHr#v+au@}2dVenU=TR@&HwXd7d>d{})4oCSm=~G6dG`&PVi>PjLP^~TIK`Od@6PBD zWn<%L9gdc*zl*~|G1%!KM`GAPj>X|f9FE1|nK--9GgWpH*zMQ`MV?(vkfMP@!k&eYjkeboLSq761oc8`FBEu+ z7J*N5&A20QAQV>C=Bu!=29@?TD%^Yv79Du$ha3an=fFkwEZG50ov?Wqm<8d-a2Hbf0gnXWTL~u^DU4w54BL!MrC)6MTaYLazHv|`l5|o=EVwRrPQ=>Mm$)# zS~{aH@Mq~Ayaj285Nv_pz_8G_3=U@EkBSWGq?oe?PjpkkT7v&M{1r0lx$!#qAjyze zK9LeD+^`0cI}^*rJE{VI4>7j1zBSK9<_p)-CD(At^nmd3!_cG%%!2|Oh6Gt#f@KHDKQM*d9grzo24qXR{OeLy z%S}4G0!_yTN!p3%-8V8w(qnjRkYvU1nL&~p!xsigehgn6B(@mVdr3(QPxX@W7|!;R z${4nKi8G3WNhe61r-FxZO+=}iZ~Y&Ynj_q`8xkXOUHZLBJ-r)p45-D7cG|I9fJ|1w ziY^z_(mItc?Si69D!@xIT@J66bs1_Wt4~C9`B)#^nmkFD$@0uGp%(6k{Qs`eE9&AJ z&1g5h+b*jiqCdnptMH>L{F(}XsKQ1H>B?!7(XNP8@a_jQYE;?}g=&pbMWdy{{Aa*+ PNkVmKJs&*}xy%0rPLvl$ diff --git a/bin/DMGTRIS.sym b/bin/DMGTRIS.sym index a9b7817..4dc0b43 100644 --- a/bin/DMGTRIS.sym +++ b/bin/DMGTRIS.sym @@ -302,179 +302,181 @@ 00:2a39 TriggerKillScreen 00:2a5b GetSection 00:2a6c GetSectionBCD -00:2a75 SkipSection -00:2a81 sTGM1GradeScores -00:2aa3 sTGM3InternalGradeSystem -00:2b43 sTGM3GradeBoosts -00:2b62 sTGM3LevelMultiplier -00:2b66 sTGM3BaselineCOOL -00:2b6f sTGM3REGRETConditions -00:2b83 sDMGTGrading -00:2c37 sDMGTGaugeLUT -00:2d37 SFXInit -00:2d59 SFXPopQueue -00:2d6e SFXPushQueue -00:2d7f SFXProcessQueue -00:2dad SFXTriggerNoise -00:2dd3 SFXEnqueue -00:2de8 SFXEnqueue.findsfx -00:2f42 SFXKill -00:2f75 SFXPlayNoise -00:2f80 SFXPlayNoise.noisereg -00:2f97 SFXPlayNoise.savenoiseplayhead -00:2fa0 SFXPlay -00:2fae SFXPlay.play -00:2fba SFXPlay.getRegister -00:2fce SFXPlay.savePlayhead -00:2fd7 HarvestEntropy -00:2fdd HarvestEntropy.loop -00:2ffe RNGInit -00:3064 RNGInit.complexinit -00:3096 ShiftHistory -00:30b3 GetNextHellPiece -00:30b8 GetNextTGM1Piece -00:30d5 GetNextTGM2Piece -00:30f2 GetNextNesPiece -00:3100 GetNextTGM3Piece -00:31b7 GetNextPiece -00:31c5 GetNextPiece.nextpiecejumps -00:31d4 Next35Piece -00:31de Next7Piece -00:31e8 NextByte -00:3208 CheckAndAddHiscore -00:3212 CheckAndAddHiscore.checkloop -00:3217 CheckAndAddHiscore.checkgrade -00:3220 CheckAndAddHiscore.oldgraded -00:322f CheckAndAddHiscore.oldungraded -00:3236 CheckAndAddHiscore.checklevel -00:325b CheckAndAddHiscore.checkscore -00:329e CheckAndAddHiscore.notbetter -00:32ab CheckAndAddHiscore.better -00:32ad InsertHiScore -00:32ad InsertHiScore.copylower -00:32be InsertHiScore.copyupper -00:32df InsertHiScore.findrow -00:32f0 InsertHiScore.insert -00:3349 InsertHiScore.persist -00:335a GetHiScoreEntry -00:3373 GetHiScoreEntry.store -00:337c InitTargetHSTable -00:3387 InitTargetHSTable.jumps -00:339c InitTargetHSTable.dmgt -00:33a1 InitTargetHSTable.tgm1 -00:33a6 InitTargetHSTable.tgm3 -00:33ab InitTargetHSTable.deat -00:33b0 InitTargetHSTable.shir -00:33b5 InitTargetHSTable.chil -00:33ba InitTargetHSTable.myco -00:33bd InitTargetHSTable.store -00:33d0 sProgressData -00:351a sHiscoreDefaultData -00:365a InputInit -00:366c GetInput -00:366c GetInput.btns -00:3679 GetInput.readA -00:367d GetInput.setA -00:3688 GetInput.clearA -00:368b GetInput.readB -00:368f GetInput.setB -00:369a GetInput.clearB -00:369d GetInput.readSelect -00:36a1 GetInput.setSelect -00:36ac GetInput.clearSelect -00:36af GetInput.readStart -00:36b3 GetInput.setStart -00:36be GetInput.clearStart -00:36c1 GetInput.dpad -00:36ce GetInput.readUp -00:36d2 GetInput.setUp -00:36dd GetInput.clearUp -00:36e0 GetInput.readDown -00:36e4 GetInput.setDown -00:36ef GetInput.clearDown -00:36f2 GetInput.readLeft -00:36f6 GetInput.setLeft -00:3701 GetInput.clearLeft -00:3704 GetInput.readRight -00:3708 GetInput.setRight -00:3713 GetInput.clearRight -00:3716 GetInput.priorities -00:3723 GetInput.jumps -00:3732 GetInput.dlru -00:3745 GetInput.ulrd -00:3758 GetInput.lrud -00:3765 GetInput.udlr -00:3772 GetInput.zeroud -00:3778 GetInput.zerolr -00:377e GetInput.zerolrd -00:3786 GetInput.zerolru -00:378e ScoreInit -00:37b6 IncreaseScore -00:37ee IncreaseScore.doConvert -00:3806 IncreaseScore.carry -00:3808 IncreaseScore.postConvert -00:381c IncreaseScore.preAddDigit -00:3844 IncreaseScore.addDigit -00:385a IncreaseScore.nextDigit -00:386e SwitchToTitle -00:3877 TitleEventLoopHandler -00:3881 TitleVBlankHandler -00:388b PersistLevel -00:3899 DrawSpeedMain -00:38e9 DrawSpeedSettings -00:3939 TimeInit -00:3959 StartCountdown -00:3967 ResetGameTime -00:3972 CheckTorikan -00:3989 CheckTorikan.failure -00:398b CheckTorikan.success -00:398e HandleTimers -00:39b4 HandleTimers.reduce -00:39c1 HandleTimers.clock -00:39db HandleTimers.go -00:39ff SetProgress -00:3a0a SetProgress.loop -00:3a0e SetProgress.correct -00:3a35 SetProgress.wvr_u1 -00:3a41 SetProgress.wvr_u2 -00:3a4f SetProgress.wvr_u3 -00:3a5b SetProgress.wvr_u4 -00:3a69 SetProgress.wvr_u5 -00:3a75 SetProgress.wvr_u6 -00:3a83 SetProgress.wvr_u7 -00:3a8f SetProgress.wvr_u8 -00:3a9d SetProgress.wvr_u9 -00:3aa9 SetProgress.wvr_u10 -00:3ab1 Main -00:3ada Main.notgbc -00:3ae0 Main.wvr_u1 -00:3b0d EventLoop -00:3b23 EventLoop.eventloopjumps -00:3b2c EventLoopPostHandler -00:3b2e EventLoopPostHandler.wvb_u2 -00:3b40 EventLoopPostHandler.vblankjumps -00:3b49 LoadTitleTiles -00:3b67 LoadGameplayTiles -00:3b7d LoadGameplayTiles.gbc -00:3b8c LoadGameplayTiles.dmg -00:3b9b sFramesToCS -00:3bd7 UnsafeMemCopy -00:3be0 SafeMemCopy.wvr_u1 -00:3be0 SafeMemCopy -00:3bef UnsafeMemSet -00:3bf7 SafeMemSet -00:3bf7 SafeMemSet.wvr_u2 -00:3c05 SwitchToGameplay -00:3c0e SwitchToGameplayBig -00:3c17 GamePlayEventLoopHandler -00:3c21 GamePlayBigEventLoopHandler -00:3c2b EnableScreenSquish -00:3c45 DisableScreenSquish -00:3c50 CopyOAMHandler -00:3c5c ClearOAM -00:3c72 BankingInit -00:3c81 OAMDMA -00:3c8b OAMDMAEnd +00:2a75 GetAdjustedSection +00:2a86 GetAdjustedSectionBCD +00:2a8f SkipSection +00:2a9b sTGM1GradeScores +00:2abd sTGM3InternalGradeSystem +00:2b5d sTGM3GradeBoosts +00:2b7c sTGM3LevelMultiplier +00:2b80 sTGM3BaselineCOOL +00:2b89 sTGM3REGRETConditions +00:2b9d sDMGTGrading +00:2c51 sDMGTGaugeLUT +00:2d51 SFXInit +00:2d73 SFXPopQueue +00:2d88 SFXPushQueue +00:2d99 SFXProcessQueue +00:2dc7 SFXTriggerNoise +00:2ded SFXEnqueue +00:2e02 SFXEnqueue.findsfx +00:2f5c SFXKill +00:2f8f SFXPlayNoise +00:2f9a SFXPlayNoise.noisereg +00:2fb1 SFXPlayNoise.savenoiseplayhead +00:2fba SFXPlay +00:2fc8 SFXPlay.play +00:2fd4 SFXPlay.getRegister +00:2fe8 SFXPlay.savePlayhead +00:2ff1 HarvestEntropy +00:2ff7 HarvestEntropy.loop +00:3018 RNGInit +00:307e RNGInit.complexinit +00:30b0 ShiftHistory +00:30cd GetNextHellPiece +00:30d2 GetNextTGM1Piece +00:30ef GetNextTGM2Piece +00:310c GetNextNesPiece +00:311a GetNextTGM3Piece +00:31d1 GetNextPiece +00:31df GetNextPiece.nextpiecejumps +00:31ee Next35Piece +00:31f8 Next7Piece +00:3202 NextByte +00:3222 CheckAndAddHiscore +00:322c CheckAndAddHiscore.checkloop +00:3231 CheckAndAddHiscore.checkgrade +00:323a CheckAndAddHiscore.oldgraded +00:3249 CheckAndAddHiscore.oldungraded +00:3250 CheckAndAddHiscore.checklevel +00:3275 CheckAndAddHiscore.checkscore +00:32b8 CheckAndAddHiscore.notbetter +00:32c5 CheckAndAddHiscore.better +00:32c7 InsertHiScore +00:32c7 InsertHiScore.copylower +00:32d8 InsertHiScore.copyupper +00:32f9 InsertHiScore.findrow +00:330a InsertHiScore.insert +00:3363 InsertHiScore.persist +00:3374 GetHiScoreEntry +00:338d GetHiScoreEntry.store +00:3396 InitTargetHSTable +00:33a1 InitTargetHSTable.jumps +00:33b6 InitTargetHSTable.dmgt +00:33bb InitTargetHSTable.tgm1 +00:33c0 InitTargetHSTable.tgm3 +00:33c5 InitTargetHSTable.deat +00:33ca InitTargetHSTable.shir +00:33cf InitTargetHSTable.chil +00:33d4 InitTargetHSTable.myco +00:33d7 InitTargetHSTable.store +00:33ea sProgressData +00:3534 sHiscoreDefaultData +00:3674 InputInit +00:3686 GetInput +00:3686 GetInput.btns +00:3693 GetInput.readA +00:3697 GetInput.setA +00:36a2 GetInput.clearA +00:36a5 GetInput.readB +00:36a9 GetInput.setB +00:36b4 GetInput.clearB +00:36b7 GetInput.readSelect +00:36bb GetInput.setSelect +00:36c6 GetInput.clearSelect +00:36c9 GetInput.readStart +00:36cd GetInput.setStart +00:36d8 GetInput.clearStart +00:36db GetInput.dpad +00:36e8 GetInput.readUp +00:36ec GetInput.setUp +00:36f7 GetInput.clearUp +00:36fa GetInput.readDown +00:36fe GetInput.setDown +00:3709 GetInput.clearDown +00:370c GetInput.readLeft +00:3710 GetInput.setLeft +00:371b GetInput.clearLeft +00:371e GetInput.readRight +00:3722 GetInput.setRight +00:372d GetInput.clearRight +00:3730 GetInput.priorities +00:373d GetInput.jumps +00:374c GetInput.dlru +00:375f GetInput.ulrd +00:3772 GetInput.lrud +00:377f GetInput.udlr +00:378c GetInput.zeroud +00:3792 GetInput.zerolr +00:3798 GetInput.zerolrd +00:37a0 GetInput.zerolru +00:37a8 ScoreInit +00:37d0 IncreaseScore +00:3808 IncreaseScore.doConvert +00:3820 IncreaseScore.carry +00:3822 IncreaseScore.postConvert +00:3836 IncreaseScore.preAddDigit +00:385e IncreaseScore.addDigit +00:3874 IncreaseScore.nextDigit +00:3888 SwitchToTitle +00:3891 TitleEventLoopHandler +00:389b TitleVBlankHandler +00:38a5 PersistLevel +00:38b3 DrawSpeedMain +00:3903 DrawSpeedSettings +00:3953 TimeInit +00:3973 StartCountdown +00:3981 ResetGameTime +00:398c CheckTorikan +00:39a3 CheckTorikan.failure +00:39a5 CheckTorikan.success +00:39a8 HandleTimers +00:39ce HandleTimers.reduce +00:39db HandleTimers.clock +00:39f5 HandleTimers.go +00:3a19 SetProgress +00:3a24 SetProgress.loop +00:3a28 SetProgress.correct +00:3a4f SetProgress.wvr_u1 +00:3a5b SetProgress.wvr_u2 +00:3a69 SetProgress.wvr_u3 +00:3a75 SetProgress.wvr_u4 +00:3a83 SetProgress.wvr_u5 +00:3a8f SetProgress.wvr_u6 +00:3a9d SetProgress.wvr_u7 +00:3aa9 SetProgress.wvr_u8 +00:3ab7 SetProgress.wvr_u9 +00:3ac3 SetProgress.wvr_u10 +00:3acb Main +00:3af4 Main.notgbc +00:3afa Main.wvr_u1 +00:3b27 EventLoop +00:3b3d EventLoop.eventloopjumps +00:3b46 EventLoopPostHandler +00:3b48 EventLoopPostHandler.wvb_u2 +00:3b5a EventLoopPostHandler.vblankjumps +00:3b63 LoadTitleTiles +00:3b81 LoadGameplayTiles +00:3b97 LoadGameplayTiles.gbc +00:3ba6 LoadGameplayTiles.dmg +00:3bb5 sFramesToCS +00:3bf1 UnsafeMemCopy +00:3bfa SafeMemCopy.wvr_u1 +00:3bfa SafeMemCopy +00:3c09 UnsafeMemSet +00:3c11 SafeMemSet +00:3c11 SafeMemSet.wvr_u2 +00:3c1f SwitchToGameplay +00:3c28 SwitchToGameplayBig +00:3c31 GamePlayEventLoopHandler +00:3c3b GamePlayBigEventLoopHandler +00:3c45 EnableScreenSquish +00:3c5f DisableScreenSquish +00:3c6a CopyOAMHandler +00:3c76 ClearOAM +00:3c8c BankingInit +00:3c9b OAMDMA +00:3ca5 OAMDMAEnd 01:4008 sDMGTSpeedCurve 01:4203 sDMGTSpeedCurveEnd 01:4205 sDMGTSpeedCurveSpecialData diff --git a/src/level.asm b/src/level.asm index f92b112..e3a3f10 100644 --- a/src/level.asm +++ b/src/level.asm @@ -844,6 +844,37 @@ GetSectionBCD:: ret + ; Gets a 0-indexed section number, returned in A as binary. + ; Levels 0000-0099 would return 0, levels 0100-0199 would return 1, ... levels 9900-9999 would return 99. + ; This version calculates the amount of skipped sections in. +GetAdjustedSection:: + ; Load thousands. + ldh a, [hTrueCLevel+CLEVEL_THOUSANDS] + + ; Multiply by 10, which is equal to multiply by 8 + multiply by 2 + ld b, a + sla b + sla a + sla a + sla a + add a, b + + ; Add hundreds. + ld hl, hTrueCLevel+CLEVEL_HUNDREDS + add a, [hl] + ret + + + ; Gets the current section, but as BCD in A. + ; This version calculates the amount of skipped sections in. +GetAdjustedSectionBCD:: + ldh a, [hTrueCLevel+CLEVEL_THOUSANDS] + swap a + ld hl, hTrueCLevel+CLEVEL_HUNDREDS + or a, [hl] + ret + + ; Will skip the virtual level forward by 100 levels. ; This will NOT affect the displayed level, nor will it affect scoring. ; It will only make it so the internal speed pointer will be ahead by N*100 levels.