From ca822edfc0f6aa38d620c43fc26055240edd17c0 Mon Sep 17 00:00:00 2001 From: Randy Thiemann Date: Fri, 10 Nov 2023 21:22:04 +0100 Subject: [PATCH] Making DMGT grades harder. --- bin/DMGTRIS.GBC | Bin 131072 -> 131072 bytes bin/DMGTRIS.map | 547 ++++++++++++++++++++++----------------------- bin/DMGTRIS.pocket | Bin 131072 -> 131072 bytes bin/DMGTRIS.sym | 387 ++++++++++++++++---------------- src/grading.asm | 68 +++--- 5 files changed, 496 insertions(+), 506 deletions(-) diff --git a/bin/DMGTRIS.GBC b/bin/DMGTRIS.GBC index 777013029f00898cce0520b7f6369a0eafad1b84..16ab336a6ea94993728763b69b183857bcc739ad 100644 GIT binary patch delta 4376 zcmb_f4RBLc7Jesb(xxS8UkM?!rG1yCZ7BUoo7i+$`bYt3vDE+E~};TqYKKq6(c&c;69Y3_NJn^0weg;9T&Sh5?OyECVO7;@>54=*_rK3 z@BO}e&bjBFch9-^rmHKft1IhI8i3t`7TPrH_w>zx3)(7|n+Mrz(GsQ`IEJ>nEdV{S zJ`;`ua+c{P%n4vJsH<S+udPr za3bkBfnE$v+!bCs50TU^d|)8ZE<_9#Y?D~q?hXj&4J8_>y{|EQjSepN9mxGsi{0*# zv2Mrce`?^{zKsQZ#%7nBZ0lh&d%(j`#3$2m=AP7eOB&vmhEJy9%-%HpG`uZ^dF{~s zJ$%McpoiBD8TRmc;g=M~A9{`YaPe7rP?S{>R7RfK51N8)Z3W z4+#;bzj<7^G8nO8j}wqjgy+URZ!|cvBRa>3h{j>G<_fDyEA_qAd>(ZQPnL4#IIQAx zhb9CA6j?qBf~AGjn^Er3&(9{wERukuk5GFE=lVu!c&7SU0up| z_^{0Ine=6u^j(=0DU-D2QdYTSESK_yaM|$@>niAxio{yqES~^Q;d1%4tg|X~q$PCd z6}yhl#USYsfvdz5bz%-y;+9N~DKzGA85>?} z)ZzA!AhE92+Q`PLv;p+7fhRflz z<4)SR#|1I+K z$Y;qHH^&@i;K0ji3R{s^AfK%o=#bxxyhY{rBEJjy9F^;lKZU$i<@X`qhnu&xH@7&z6SZtad9rvACgq)s(uDO6l^secyX{xR+5|`WGW}+CEDnS zfc?9O#{QN3ez-Xp(Q-vNHuO$ZX-{D*_-e|>q_iSB`xo+nd`fn^U%1~Ru5EAZ>>Fuw*(_Z30$C&b4 zwsuXy!)Oxia*aTbs?N}H)>p#q48}u22^rZKabh+Sn=UM*&%5cQvDD_G57kp~0v*Kb^ekQAq~U5hSWTa*ryE=(t05G| z72|R{oYFeCw8^c1G&J=U?t6MZO3ISL)k00fL(NTYwxyjgzXirfo7|F}(Ze9yGMzA8 zz-VzKc2#q^Y|F}YCAMWjf(qX^Y*#|i57PZ}FX2aj#9hH%aFg><$YvzGZJ7u@7c9zy zfiV6U#4Gzf_k^sSjhTP;cxcJ~hQsm{+Uv#;`9irxZk4C=3|)JJa)f+No#GNB+}P}L zhg*XYGgrX!9Q#|Be6dEop>C%@~CJ891UX(xlK{LXwRose*HDL$wy*`qG0HMS(LDxjyu*YlyUzR6AG zCm@f({U^+mD&Q0#HMs);e5c_(;MFt4aFdc{Zs|6kX(W878Q7BDh~ zjq?7xK{Saa-t0jC~_WH@r05T=ndi`t?HxIxEj752&s@ky} zL_-}KDx-%|@Z}Ud?uX3@jsDc|=@h(>f)`WpatdBaL46?UE-wWOQqY!!yj~6~fw4Wl z!e)3$4@U9r7TAj2wC%7AyFYG+@xG5+;U$1}@xcdRKAaXq*Fyn{a@wHY+Fl-Bq`YnP z;WF&}p||CCm2qao^@C$@?#Gr<@iyLnQE42GoKMYMe z@!gwX^)<1q(chZLdpAANz(=r9w=0FJoJBiF^M6;$m48&8PUqLqLv?huxNbHO=oNR( zhMCvTa)r)CW^ks%LyKZ>7Z$Je(77f~&uitgyj?!W7A+$+0X!#^Y+u_!6@w;DhackX zVU(69rDEM27@5I3=q#~y4*UU};-_=q#nJdfW0ZVWTD6pBdD!{O2<{R7GI9A{mPtCdI)@?=)$uxTXW+euCnGRhgmjt`fwwQV)>nxomZ9WSDn09 zk-MAY`Tze+-oVe6p_0)3CaXTXGJm9w3y;J;-Ny ze&Od)Jzi-y2fgIImC6m=HeiT_BKGZt ciu4Mlu?lsFqxXURzn1B>THldpp>5uO0Gw$|bpQYW delta 4458 zcmb_f4RljQ7JfHr(x#EJ-}ShR%c0xLtk4hukc zq)vu@KyG5X2=fLoNz~bQt?o_jG{quWw!qdg8jfDc;}6XVgiZYxREU^)`S}JX>ve=Y zff=Ox4IIVLXuZH`uSO(#`Hu_)ynNVT!7`4uUWcDQWhl^y-oERUQ7ON+- zBh|JEpKD;WuRVuL+URtU&E2NtZg4Ra@nIECek#%KR^iPmd{~8(cdGPNcyj`C+L7OO zb4erqZcaC1c#6~W4Fy)u^g6gbGWyJ2ra1PgaMkWa`(70;*pp}%6f8RVo`N~(7kj7L zGxk=sZ)_`3dB-j!D*xCyMCBn{PgFj#WklsAn@ijY-&i9_c*?J}HsTz_b$KMY+q79( zUWFbWOOv09F1{jlkENT((!*nE^3JigYHGlNqnxiHyHkxt4C5DXDH4zK9}^3_$N!To zUb?+3R2k4S9>bmVt6G1kA`l+6RR{Nnb=C@QbfhAnPcbrdMQwO=@Uh9*P!!;F(thdr zUTL4yD?KZ{AU!9&C?2u}`7krsG&xij2p3_E9g-2gXY#Y=WV

vuB4jb~9`F^+)x^t9dLJa z$V+sl*zlS7eX+=th`JInwM5J)5zQsyME)Pe{o^*2($`8OF5}eyR8kHN{O2W3Q$t1Y zC3kTDD>faMfonlu;~k~%LlvK4v!pdt93Z?=D`L?OLF@;TMMjk0NGKv@ZGRoIvV8NTp^7#6)^rnpb3{A$^Vw_B4MXHQ+N|7$3 zu|-PXV`bNYrN2BpYBkeHl^(71w4YC|Shx`?Zx1upG%iK@JLi&yMVWUXzX^GZ!ZpYz zBfnhXcOjpJe1XCNc`@=?3g3i$B65$ywaC+u&r$f@$WI}^N*dl6888VOUREjGgS-^^ zLd8Ibd?|9b!tX`C0r?_@>yd9qK3C!QA#X>1b%cjgksd?Z9HsXoU5<1KQY%!3jmXy` zUm6u>ApIdu`8%fWf-`(xWh>q$re!yhv;ZW_$LCo((;f!f`LM?Jjr4w~DG=6LbFppY z?NPZrh9&=eWy!>ZR#<2IN*a=mNpDluF0%aD%7Sq-?d)kzw=B;#9@TTIa#zi?lcCYq zZRZMKw*~S00>5E)H})tuTYry$?c|ctz)GjvN3sH*UN;%0hC3rxpP}}r_nOKH;6@kg%D;S0`VOXaFnOK=yK75XX|>US+vK2 z{&ABew=`F3<`}x}3i+h@k~Rp-(&5S`rz12s5H?$LOq`3X>;jz}UZz+57^Dmd5 zN8K9g6s|SGByjp}Gs0Jp<8$@+}d0 zP?7g#LSa76VVr5di%fYUV&pI_2oUH3tvow%tM6PU)Le9shq|JJG-X|UkfVxxeHIj! z#|AkYZIq|%Ql>OFG9`~9pdShcvtUy7YzL7ZhfD@HpD<4-z$ycAw!`nommgji9z8=0 zUOB`Z;?I4?Y&fr((q1F(SR8zMU2yMBkj@y|rKf)*?WK`cykqFk7DrpecEN6e`=DL$ zS)f4MUgPguzHf)Q@78@=%$+XC+lYa(eGt}wWmJxty9Obbi9k+2l21npsGsZ{fFNU8 zBjR&)=Ky)ck4%oVodc#gZW@A*7>oSoRkR}kh=w{elw0>F;L8cvKL8tJ8iR@EcN6e* z0uCqO*9mwb0rmd)aG431lYm8W$myk!?3k(BH>n8@=)o+!<%WB(nzIGkuzF?-O!0j( z7Y+b;g{}9)HSnPjoCi55N^5~?)>{&~PJS)vL&aDP1mBY0kq^-x;fk$L;@i*yM>R=a zNAO{x<4Q2=a0PF~6{anM>?GDsmk4tg!5^SOII{>| zn1DZB#!Dx})yrv$%XCc}!9Bv?I!@nni{Vgea%@T)mO~-jAduZ)#_GUwur}f`U~eP1 zyEb`f8RPE7G44(rU#7yVqgXJtLOwVJdn-&!$2s*(CHa9e&m6HuSlbHM$Zxy*@z@$_ zh2qR8u3*#T!z`6H_;4e0Bk`?@&PxjQOAg*kh~16R`2T+fum4BWP!8xpBdbp>%gWYS zL)rM}o3sh`$nkw}vnsxQ7~fJXwDUil7UbQ*M>{%>Yotem4>n2f8Qis2mOoIa? zV@SDe-W?$37(P8fCdTma0LhQxuLnqB3||-^wiwp?$W#y3yre{YY$e$kWO0X;gz;D;34nbDBr*>LxzYeLf>vERc9!TWT;)3um^1aHBFsb-%EdlmaG2- Dq^N4^ diff --git a/bin/DMGTRIS.map b/bin/DMGTRIS.map index c9d03f2..31b0aaa 100644 --- a/bin/DMGTRIS.map +++ b/bin/DMGTRIS.map @@ -232,7 +232,7 @@ ROM0 bank #0: $2119 = ChangeProfile.lninth $2128 = ChangeProfile.ltenth $2137 = ResetProfile - SECTION: $2193-$2572 ($03e0 bytes) ["Grading Functions"] + SECTION: $2193-$256b ($03d9 bytes) ["Grading Functions"] $2193 = GradeInit $21be = GradeInit.grade9start $21c3 = GradeInit.end @@ -260,278 +260,277 @@ ROM0 bank #0: $2343 = UpdateGradeDMGT.addtonce $2347 = UpdateGradeDMGT.tetris $234b = UpdateGradeDMGT.levelmult - $2363 = UpdateGradeDMGT.mult5 - $236a = UpdateGradeDMGT.mult4 - $2370 = UpdateGradeDMGT.mult3 - $2375 = UpdateGradeDMGT.mult2 - $2379 = UpdateGradeDMGT.mult1 - $237a = UpdateGradeDMGT.processgrade - $23a3 = UpdateGradeDMGT.increasegrademaybe - $23c7 = UpdateGradeDMGT.gotgm - $23d5 = DecayGradeDMGT - $23f9 = DecayGradeDMGT.nodecay - $2400 = DecayGradeDMGT.decay - $240e = UpdateGradeTGM1 - $2418 = UpdateGradeTGM1.trygradeup - $2432 = UpdateGradeTGM1.increasegrade - $2447 = UpdateGradeTGM1.skipjingle - $2454 = UpdateGradeTGM1.maybegm - $246d = UpdateGradeDEAT - $2479 = UpdateGradeDEAT.notgm - $2495 = UpdateGradeDEAT.notm - $24b8 = UpdateGradeDEAT.disqualify - $24d6 = UpdateGradeSHIR - $2519 = UpdateGradeSHIR.s5torikan - $2529 = UpdateGradeSHIR.s10torikan - $2538 = UpdateGradeSHIR.disqualify - $2547 = UpdateGradeSHIR.l1000 - $255d = UpdateGradeSHIR.l500 - SECTION: $2573-$28e7 ($0375 bytes) ["Level Functions"] - $2573 = LevelInit - $25d8 = SpecialLevelInit - $25e6 = SpecialLevelInit.jumps - $25fb = SpecialLevelInit.dmgt - $2600 = SpecialLevelInit.tgm1 - $2605 = SpecialLevelInit.tgm3 - $260a = SpecialLevelInit.deat - $260f = SpecialLevelInit.shir - $2614 = SpecialLevelInit.chil - $2619 = SpecialLevelInit.myco - $261e = SpecialLevelInit.loaddata - $2653 = LevelUp - $267d = LevelUp.doit - $26c7 = LevelUp.checknlevel - $26f5 = !0 - $270d = !1 - $2716 = LevelUp.bellmaybe - $272f = LevelUp.leveljinglemaybe - $273c = LevelUp.checkspeedup - $2750 = !2 - $275d = !3 - $276e = !4 - $277b = DoSpeedUp - $27bc = CheckSpecialLevelConditions - $27ed = CheckSpecialLevelConditions.override - $2808 = CheckSpecialLevelConditions.nooverride - $280e = CheckSpecialLevelConditions.speciallock - $282f = CheckSpecialLevelConditions.bones - $2844 = CheckSpecialLevelConditions.enterthebonezone - $2849 = CheckSpecialLevelConditions.invis - $285e = CheckSpecialLevelConditions.vanishoxyaction - $2863 = CheckSpecialLevelConditions.killscreen - $2874 = CheckSpecialLevelConditions.rip - $28a4 = CheckSpecialLevelConditions.staffroll - $28b2 = CheckSpecialLevelConditions.justkill - $28c6 = TriggerKillScreen - SECTION: $28e8-$2b9d ($02b6 bytes) ["Grading Data"] - $28e8 = sTGM1GradeScores - $290a = sTGM3InternalGradeSystem - $29aa = sTGM3GradeBoosts - $29c9 = sTGM3LevelMultiplier - $29cd = sTGM3BaselineCOOL - $29d6 = sTGM3REGRETConditions - $29ea = sDMGTGrading - $2a9e = sDMGTGaugeLUT - SECTION: $2b9e-$2e37 ($029a bytes) ["SFX Functions"] - $2b9e = SFXInit - $2bc0 = SFXPopQueue - $2bd5 = SFXPushQueue - $2be6 = SFXProcessQueue - $2bf7 = !0 - $2c12 = !1 - $2c14 = SFXTriggerNoise - $2c21 = !2 - $2c2e = !3 - $2c3a = SFXEnqueue - $2c4f = SFXEnqueue.findsfx - $2c64 = !4 - $2c74 = !5 - $2c84 = !6 - $2c94 = !7 - $2ca4 = !8 - $2cb4 = !9 - $2cc4 = !10 - $2cd4 = !11 - $2ce4 = !12 - $2cf4 = !13 - $2d04 = !14 - $2d14 = !15 - $2d24 = !16 - $2d34 = !17 - $2d44 = !18 - $2d53 = !19 - $2d62 = !20 - $2d71 = !21 - $2d80 = !22 - $2d8e = !23 - $2d9c = !24 - $2da9 = SFXKill - $2dd6 = SFXPlayNoise - $2de1 = SFXPlayNoise.noisereg - $2dee = !25 - $2df8 = SFXPlayNoise.savenoiseplayhead - $2e01 = SFXPlay - $2e0c = !26 - $2e0f = SFXPlay.play - $2e1b = SFXPlay.getRegister - $2e25 = !27 - $2e2f = SFXPlay.savePlayhead - SECTION: $2e38-$3068 ($0231 bytes) ["RNG Functions"] - $2e38 = HarvestEntropy - $2e3e = HarvestEntropy.loop - $2e5f = RNGInit - $2e95 = !0 - $2ec5 = RNGInit.complexinit - $2edc = !1 - $2ef7 = ShiftHistory - $2f14 = GetNextHellPiece - $2f19 = GetNextTGM1Piece - $2f1c = !2 - $2f34 = !3 - $2f36 = GetNextTGM2Piece - $2f39 = !4 - $2f51 = !5 - $2f53 = GetNextNesPiece - $2f61 = GetNextTGM3Piece - $2f64 = !6 - $2f87 = !7 - $2f8a = !8 - $2f9a = !9 - $2fa4 = !10 - $2fb2 = !11 - $2fc1 = !12 - $2fcd = !13 - $2fd9 = !14 - $2fe5 = !15 - $2ff1 = !16 - $2ffd = !17 - $3009 = !18 - $3018 = GetNextPiece - $3026 = GetNextPiece.nextpiecejumps - $3035 = Next35Piece - $3035 = !19 - $303f = Next7Piece - $303f = !20 - $3049 = NextByte - SECTION: $3069-$31b2 ($014a bytes) ["Progress Data"] - $3069 = sProgressData - SECTION: $31b3-$3292 ($00e0 bytes) ["Score Functions"] - $31b3 = ScoreInit - $31db = IncreaseScore - $3213 = IncreaseScore.doConvert - $3215 = !0 - $322b = IncreaseScore.carry - $322d = IncreaseScore.postConvert - $323a = !1 - $3241 = IncreaseScore.preAddDigit - $3269 = IncreaseScore.addDigit - $327f = IncreaseScore.nextDigit - SECTION: $3293-$335f ($00cd bytes) ["Input Functions"] - $3293 = InputInit - $32a5 = GetInput - $32a5 = GetInput.btns - $32b2 = GetInput.readA - $32b6 = GetInput.setA - $32c1 = GetInput.clearA - $32c4 = GetInput.readB - $32c8 = GetInput.setB - $32d3 = GetInput.clearB - $32d6 = GetInput.readSelect - $32da = GetInput.setSelect - $32e5 = GetInput.clearSelect - $32e8 = GetInput.readStart - $32ec = GetInput.setStart - $32f7 = GetInput.clearStart - $32fa = GetInput.dpad - $3307 = GetInput.readUp - $330b = GetInput.setUp - $3316 = GetInput.clearUp - $3319 = GetInput.readDown - $331d = GetInput.setDown - $3328 = GetInput.clearDown - $332b = GetInput.readLeft - $332f = GetInput.setLeft - $333a = GetInput.clearLeft - $333d = GetInput.readRight - $3341 = GetInput.setRight - $334c = GetInput.clearRight - $334f = GetInput.priorities - $335a = GetInput.zero - SECTION: $3360-$342a ($00cb bytes) ["Title Function Trampolines"] - $3360 = SwitchToTitle - $3369 = TitleEventLoopHandler - $3373 = TitleVBlankHandler - $337d = PersistLevel - $338b = DrawSpeedMain - $33db = DrawSpeedSettings - SECTION: $342b-$34f0 ($00c6 bytes) ["Time Functions"] - $342b = TimeInit - $344b = StartCountdown - $3459 = ResetGameTime - $3464 = CheckTorikan - $347b = CheckTorikan.failure - $347d = CheckTorikan.success - $3480 = HandleTimers - $34a6 = HandleTimers.reduce - $34b3 = HandleTimers.clock - $34cd = HandleTimers.go - SECTION: $34f1-$35a2 ($00b2 bytes) ["Progress Functions"] - $34f1 = SetProgress - $34fc = SetProgress.loop - $3500 = SetProgress.correct - $3527 = SetProgress.wvr_u1 - $3533 = SetProgress.wvr_u2 - $3541 = SetProgress.wvr_u3 - $354d = SetProgress.wvr_u4 - $355b = SetProgress.wvr_u5 - $3567 = SetProgress.wvr_u6 - $3575 = SetProgress.wvr_u7 - $3581 = SetProgress.wvr_u8 - $358f = SetProgress.wvr_u9 - $359b = SetProgress.wvr_u10 - SECTION: $35a3-$3634 ($0092 bytes) ["Code Entry Point"] - $35a3 = Main - $35cc = Main.notgbc - $35d2 = Main.wvr_u1 - $35f9 = EventLoop - $360f = EventLoop.eventloopjumps - $3618 = EventLoopPostHandler - $361a = EventLoopPostHandler.wvb_u2 - $362c = EventLoopPostHandler.vblankjumps - SECTION: $3635-$36ac ($0078 bytes) ["Hi Score Data"] - $3635 = sHiscoreDefaultData - SECTION: $36ad-$36fe ($0052 bytes) ["Tile Functions"] - $36ad = LoadTitleTiles - $36cb = LoadGameplayTiles - $36e1 = LoadGameplayTiles.gbc - $36f0 = LoadGameplayTiles.dmg - SECTION: $36ff-$373a ($003c bytes) ["Time Data"] - $36ff = sFramesToCS - SECTION: $373b-$3768 ($002e bytes) ["Memory Functions"] - $373b = UnsafeMemCopy - $3744 = SafeMemCopy.wvr_u1 - $3744 = SafeMemCopy - $3753 = UnsafeMemSet - $375b = SafeMemSet - $375b = SafeMemSet.wvr_u2 - SECTION: $3769-$378e ($0026 bytes) ["Gameplay Function Trampolines"] - $3769 = SwitchToGameplay - $3772 = SwitchToGameplayBig - $377b = GamePlayEventLoopHandler - $3785 = GamePlayBigEventLoopHandler - SECTION: $378f-$37b3 ($0025 bytes) ["Interrupt Initialization Functions"] - $378f = EnableScreenSquish - $37a9 = DisableScreenSquish - SECTION: $37b4-$37d5 ($0022 bytes) ["OAM Functions"] - $37b4 = CopyOAMHandler - $37c0 = ClearOAM - SECTION: $37d6-$37e4 ($000f bytes) ["Banking Functions"] - $37d6 = BankingInit - SECTION: $37e5-$37ee ($000a bytes) ["OAM DMA Code"] - $37e5 = OAMDMA - $37ef = OAMDMAEnd - EMPTY: $37ef-$3fff ($0811 bytes) - TOTAL EMPTY: $081a bytes + $2363 = UpdateGradeDMGT.mult4 + $2369 = UpdateGradeDMGT.mult3 + $236e = UpdateGradeDMGT.mult2 + $2372 = UpdateGradeDMGT.mult1 + $2373 = UpdateGradeDMGT.processgrade + $239c = UpdateGradeDMGT.increasegrademaybe + $23c0 = UpdateGradeDMGT.gotgm + $23ce = DecayGradeDMGT + $23f2 = DecayGradeDMGT.nodecay + $23f9 = DecayGradeDMGT.decay + $2407 = UpdateGradeTGM1 + $2411 = UpdateGradeTGM1.trygradeup + $242b = UpdateGradeTGM1.increasegrade + $2440 = UpdateGradeTGM1.skipjingle + $244d = UpdateGradeTGM1.maybegm + $2466 = UpdateGradeDEAT + $2472 = UpdateGradeDEAT.notgm + $248e = UpdateGradeDEAT.notm + $24b1 = UpdateGradeDEAT.disqualify + $24cf = UpdateGradeSHIR + $2512 = UpdateGradeSHIR.s5torikan + $2522 = UpdateGradeSHIR.s10torikan + $2531 = UpdateGradeSHIR.disqualify + $2540 = UpdateGradeSHIR.l1000 + $2556 = UpdateGradeSHIR.l500 + SECTION: $256c-$28e0 ($0375 bytes) ["Level Functions"] + $256c = LevelInit + $25d1 = SpecialLevelInit + $25df = SpecialLevelInit.jumps + $25f4 = SpecialLevelInit.dmgt + $25f9 = SpecialLevelInit.tgm1 + $25fe = SpecialLevelInit.tgm3 + $2603 = SpecialLevelInit.deat + $2608 = SpecialLevelInit.shir + $260d = SpecialLevelInit.chil + $2612 = SpecialLevelInit.myco + $2617 = SpecialLevelInit.loaddata + $264c = LevelUp + $2676 = LevelUp.doit + $26c0 = LevelUp.checknlevel + $26ee = !0 + $2706 = !1 + $270f = LevelUp.bellmaybe + $2728 = LevelUp.leveljinglemaybe + $2735 = LevelUp.checkspeedup + $2749 = !2 + $2756 = !3 + $2767 = !4 + $2774 = DoSpeedUp + $27b5 = CheckSpecialLevelConditions + $27e6 = CheckSpecialLevelConditions.override + $2801 = CheckSpecialLevelConditions.nooverride + $2807 = CheckSpecialLevelConditions.speciallock + $2828 = CheckSpecialLevelConditions.bones + $283d = CheckSpecialLevelConditions.enterthebonezone + $2842 = CheckSpecialLevelConditions.invis + $2857 = CheckSpecialLevelConditions.vanishoxyaction + $285c = CheckSpecialLevelConditions.killscreen + $286d = CheckSpecialLevelConditions.rip + $289d = CheckSpecialLevelConditions.staffroll + $28ab = CheckSpecialLevelConditions.justkill + $28bf = TriggerKillScreen + SECTION: $28e1-$2b96 ($02b6 bytes) ["Grading Data"] + $28e1 = sTGM1GradeScores + $2903 = sTGM3InternalGradeSystem + $29a3 = sTGM3GradeBoosts + $29c2 = sTGM3LevelMultiplier + $29c6 = sTGM3BaselineCOOL + $29cf = sTGM3REGRETConditions + $29e3 = sDMGTGrading + $2a97 = sDMGTGaugeLUT + SECTION: $2b97-$2e30 ($029a bytes) ["SFX Functions"] + $2b97 = SFXInit + $2bb9 = SFXPopQueue + $2bce = SFXPushQueue + $2bdf = SFXProcessQueue + $2bf0 = !0 + $2c0b = !1 + $2c0d = SFXTriggerNoise + $2c1a = !2 + $2c27 = !3 + $2c33 = SFXEnqueue + $2c48 = SFXEnqueue.findsfx + $2c5d = !4 + $2c6d = !5 + $2c7d = !6 + $2c8d = !7 + $2c9d = !8 + $2cad = !9 + $2cbd = !10 + $2ccd = !11 + $2cdd = !12 + $2ced = !13 + $2cfd = !14 + $2d0d = !15 + $2d1d = !16 + $2d2d = !17 + $2d3d = !18 + $2d4c = !19 + $2d5b = !20 + $2d6a = !21 + $2d79 = !22 + $2d87 = !23 + $2d95 = !24 + $2da2 = SFXKill + $2dcf = SFXPlayNoise + $2dda = SFXPlayNoise.noisereg + $2de7 = !25 + $2df1 = SFXPlayNoise.savenoiseplayhead + $2dfa = SFXPlay + $2e05 = !26 + $2e08 = SFXPlay.play + $2e14 = SFXPlay.getRegister + $2e1e = !27 + $2e28 = SFXPlay.savePlayhead + SECTION: $2e31-$3061 ($0231 bytes) ["RNG Functions"] + $2e31 = HarvestEntropy + $2e37 = HarvestEntropy.loop + $2e58 = RNGInit + $2e8e = !0 + $2ebe = RNGInit.complexinit + $2ed5 = !1 + $2ef0 = ShiftHistory + $2f0d = GetNextHellPiece + $2f12 = GetNextTGM1Piece + $2f15 = !2 + $2f2d = !3 + $2f2f = GetNextTGM2Piece + $2f32 = !4 + $2f4a = !5 + $2f4c = GetNextNesPiece + $2f5a = GetNextTGM3Piece + $2f5d = !6 + $2f80 = !7 + $2f83 = !8 + $2f93 = !9 + $2f9d = !10 + $2fab = !11 + $2fba = !12 + $2fc6 = !13 + $2fd2 = !14 + $2fde = !15 + $2fea = !16 + $2ff6 = !17 + $3002 = !18 + $3011 = GetNextPiece + $301f = GetNextPiece.nextpiecejumps + $302e = Next35Piece + $302e = !19 + $3038 = Next7Piece + $3038 = !20 + $3042 = NextByte + SECTION: $3062-$31ab ($014a bytes) ["Progress Data"] + $3062 = sProgressData + SECTION: $31ac-$328b ($00e0 bytes) ["Score Functions"] + $31ac = ScoreInit + $31d4 = IncreaseScore + $320c = IncreaseScore.doConvert + $320e = !0 + $3224 = IncreaseScore.carry + $3226 = IncreaseScore.postConvert + $3233 = !1 + $323a = IncreaseScore.preAddDigit + $3262 = IncreaseScore.addDigit + $3278 = IncreaseScore.nextDigit + SECTION: $328c-$3358 ($00cd bytes) ["Input Functions"] + $328c = InputInit + $329e = GetInput + $329e = GetInput.btns + $32ab = GetInput.readA + $32af = GetInput.setA + $32ba = GetInput.clearA + $32bd = GetInput.readB + $32c1 = GetInput.setB + $32cc = GetInput.clearB + $32cf = GetInput.readSelect + $32d3 = GetInput.setSelect + $32de = GetInput.clearSelect + $32e1 = GetInput.readStart + $32e5 = GetInput.setStart + $32f0 = GetInput.clearStart + $32f3 = GetInput.dpad + $3300 = GetInput.readUp + $3304 = GetInput.setUp + $330f = GetInput.clearUp + $3312 = GetInput.readDown + $3316 = GetInput.setDown + $3321 = GetInput.clearDown + $3324 = GetInput.readLeft + $3328 = GetInput.setLeft + $3333 = GetInput.clearLeft + $3336 = GetInput.readRight + $333a = GetInput.setRight + $3345 = GetInput.clearRight + $3348 = GetInput.priorities + $3353 = GetInput.zero + SECTION: $3359-$3423 ($00cb bytes) ["Title Function Trampolines"] + $3359 = SwitchToTitle + $3362 = TitleEventLoopHandler + $336c = TitleVBlankHandler + $3376 = PersistLevel + $3384 = DrawSpeedMain + $33d4 = DrawSpeedSettings + SECTION: $3424-$34e9 ($00c6 bytes) ["Time Functions"] + $3424 = TimeInit + $3444 = StartCountdown + $3452 = ResetGameTime + $345d = CheckTorikan + $3474 = CheckTorikan.failure + $3476 = CheckTorikan.success + $3479 = HandleTimers + $349f = HandleTimers.reduce + $34ac = HandleTimers.clock + $34c6 = HandleTimers.go + SECTION: $34ea-$359b ($00b2 bytes) ["Progress Functions"] + $34ea = SetProgress + $34f5 = SetProgress.loop + $34f9 = SetProgress.correct + $3520 = SetProgress.wvr_u1 + $352c = SetProgress.wvr_u2 + $353a = SetProgress.wvr_u3 + $3546 = SetProgress.wvr_u4 + $3554 = SetProgress.wvr_u5 + $3560 = SetProgress.wvr_u6 + $356e = SetProgress.wvr_u7 + $357a = SetProgress.wvr_u8 + $3588 = SetProgress.wvr_u9 + $3594 = SetProgress.wvr_u10 + SECTION: $359c-$362d ($0092 bytes) ["Code Entry Point"] + $359c = Main + $35c5 = Main.notgbc + $35cb = Main.wvr_u1 + $35f2 = EventLoop + $3608 = EventLoop.eventloopjumps + $3611 = EventLoopPostHandler + $3613 = EventLoopPostHandler.wvb_u2 + $3625 = EventLoopPostHandler.vblankjumps + SECTION: $362e-$36a5 ($0078 bytes) ["Hi Score Data"] + $362e = sHiscoreDefaultData + SECTION: $36a6-$36f7 ($0052 bytes) ["Tile Functions"] + $36a6 = LoadTitleTiles + $36c4 = LoadGameplayTiles + $36da = LoadGameplayTiles.gbc + $36e9 = LoadGameplayTiles.dmg + SECTION: $36f8-$3733 ($003c bytes) ["Time Data"] + $36f8 = sFramesToCS + SECTION: $3734-$3761 ($002e bytes) ["Memory Functions"] + $3734 = UnsafeMemCopy + $373d = SafeMemCopy.wvr_u1 + $373d = SafeMemCopy + $374c = UnsafeMemSet + $3754 = SafeMemSet + $3754 = SafeMemSet.wvr_u2 + SECTION: $3762-$3787 ($0026 bytes) ["Gameplay Function Trampolines"] + $3762 = SwitchToGameplay + $376b = SwitchToGameplayBig + $3774 = GamePlayEventLoopHandler + $377e = GamePlayBigEventLoopHandler + SECTION: $3788-$37ac ($0025 bytes) ["Interrupt Initialization Functions"] + $3788 = EnableScreenSquish + $37a2 = DisableScreenSquish + SECTION: $37ad-$37ce ($0022 bytes) ["OAM Functions"] + $37ad = CopyOAMHandler + $37b9 = ClearOAM + SECTION: $37cf-$37dd ($000f bytes) ["Banking Functions"] + $37cf = BankingInit + SECTION: $37de-$37e7 ($000a bytes) ["OAM DMA Code"] + $37de = OAMDMA + $37e8 = OAMDMAEnd + EMPTY: $37e8-$3fff ($0818 bytes) + TOTAL EMPTY: $0821 bytes ROMX bank #1: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] @@ -2883,7 +2882,7 @@ HRAM bank #0: TOTAL EMPTY: $0003 bytes SUMMARY: - ROM0: 14310 bytes used / 2074 free + ROM0: 14303 bytes used / 2081 free ROMX: 63957 bytes used / 34347 free in 6 banks SRAM: 1551 bytes used / 6641 free in 1 bank WRAM0: 3679 bytes used / 417 free diff --git a/bin/DMGTRIS.pocket b/bin/DMGTRIS.pocket index 4799b2de5ace6889df5ea2691f6d85e97f704391..4221dd66430e658cca80ab08099fad921329c59d 100644 GIT binary patch delta 4376 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 E1vFY~4*&oF diff --git a/bin/DMGTRIS.sym b/bin/DMGTRIS.sym index eeadd0a..1178f77 100644 --- a/bin/DMGTRIS.sym +++ b/bin/DMGTRIS.sym @@ -219,200 +219,199 @@ 00:2343 UpdateGradeDMGT.addtonce 00:2347 UpdateGradeDMGT.tetris 00:234b UpdateGradeDMGT.levelmult -00:2363 UpdateGradeDMGT.mult5 -00:236a UpdateGradeDMGT.mult4 -00:2370 UpdateGradeDMGT.mult3 -00:2375 UpdateGradeDMGT.mult2 -00:2379 UpdateGradeDMGT.mult1 -00:237a UpdateGradeDMGT.processgrade -00:23a3 UpdateGradeDMGT.increasegrademaybe -00:23c7 UpdateGradeDMGT.gotgm -00:23d5 DecayGradeDMGT -00:23f9 DecayGradeDMGT.nodecay -00:2400 DecayGradeDMGT.decay -00:240e UpdateGradeTGM1 -00:2418 UpdateGradeTGM1.trygradeup -00:2432 UpdateGradeTGM1.increasegrade -00:2447 UpdateGradeTGM1.skipjingle -00:2454 UpdateGradeTGM1.maybegm -00:246d UpdateGradeDEAT -00:2479 UpdateGradeDEAT.notgm -00:2495 UpdateGradeDEAT.notm -00:24b8 UpdateGradeDEAT.disqualify -00:24d6 UpdateGradeSHIR -00:2519 UpdateGradeSHIR.s5torikan -00:2529 UpdateGradeSHIR.s10torikan -00:2538 UpdateGradeSHIR.disqualify -00:2547 UpdateGradeSHIR.l1000 -00:255d UpdateGradeSHIR.l500 -00:2573 LevelInit -00:25d8 SpecialLevelInit -00:25e6 SpecialLevelInit.jumps -00:25fb SpecialLevelInit.dmgt -00:2600 SpecialLevelInit.tgm1 -00:2605 SpecialLevelInit.tgm3 -00:260a SpecialLevelInit.deat -00:260f SpecialLevelInit.shir -00:2614 SpecialLevelInit.chil -00:2619 SpecialLevelInit.myco -00:261e SpecialLevelInit.loaddata -00:2653 LevelUp -00:267d LevelUp.doit -00:26c7 LevelUp.checknlevel -00:2716 LevelUp.bellmaybe -00:272f LevelUp.leveljinglemaybe -00:273c LevelUp.checkspeedup -00:277b DoSpeedUp -00:27bc CheckSpecialLevelConditions -00:27ed CheckSpecialLevelConditions.override -00:2808 CheckSpecialLevelConditions.nooverride -00:280e CheckSpecialLevelConditions.speciallock -00:282f CheckSpecialLevelConditions.bones -00:2844 CheckSpecialLevelConditions.enterthebonezone -00:2849 CheckSpecialLevelConditions.invis -00:285e CheckSpecialLevelConditions.vanishoxyaction -00:2863 CheckSpecialLevelConditions.killscreen -00:2874 CheckSpecialLevelConditions.rip -00:28a4 CheckSpecialLevelConditions.staffroll -00:28b2 CheckSpecialLevelConditions.justkill -00:28c6 TriggerKillScreen -00:28e8 sTGM1GradeScores -00:290a sTGM3InternalGradeSystem -00:29aa sTGM3GradeBoosts -00:29c9 sTGM3LevelMultiplier -00:29cd sTGM3BaselineCOOL -00:29d6 sTGM3REGRETConditions -00:29ea sDMGTGrading -00:2a9e sDMGTGaugeLUT -00:2b9e SFXInit -00:2bc0 SFXPopQueue -00:2bd5 SFXPushQueue -00:2be6 SFXProcessQueue -00:2c14 SFXTriggerNoise -00:2c3a SFXEnqueue -00:2c4f SFXEnqueue.findsfx -00:2da9 SFXKill -00:2dd6 SFXPlayNoise -00:2de1 SFXPlayNoise.noisereg -00:2df8 SFXPlayNoise.savenoiseplayhead -00:2e01 SFXPlay -00:2e0f SFXPlay.play -00:2e1b SFXPlay.getRegister -00:2e2f SFXPlay.savePlayhead -00:2e38 HarvestEntropy -00:2e3e HarvestEntropy.loop -00:2e5f RNGInit -00:2ec5 RNGInit.complexinit -00:2ef7 ShiftHistory -00:2f14 GetNextHellPiece -00:2f19 GetNextTGM1Piece -00:2f36 GetNextTGM2Piece -00:2f53 GetNextNesPiece -00:2f61 GetNextTGM3Piece -00:3018 GetNextPiece -00:3026 GetNextPiece.nextpiecejumps -00:3035 Next35Piece -00:303f Next7Piece -00:3049 NextByte -00:3069 sProgressData -00:31b3 ScoreInit -00:31db IncreaseScore -00:3213 IncreaseScore.doConvert -00:322b IncreaseScore.carry -00:322d IncreaseScore.postConvert -00:3241 IncreaseScore.preAddDigit -00:3269 IncreaseScore.addDigit -00:327f IncreaseScore.nextDigit -00:3293 InputInit -00:32a5 GetInput -00:32a5 GetInput.btns -00:32b2 GetInput.readA -00:32b6 GetInput.setA -00:32c1 GetInput.clearA -00:32c4 GetInput.readB -00:32c8 GetInput.setB -00:32d3 GetInput.clearB -00:32d6 GetInput.readSelect -00:32da GetInput.setSelect -00:32e5 GetInput.clearSelect -00:32e8 GetInput.readStart -00:32ec GetInput.setStart -00:32f7 GetInput.clearStart -00:32fa GetInput.dpad -00:3307 GetInput.readUp -00:330b GetInput.setUp -00:3316 GetInput.clearUp -00:3319 GetInput.readDown -00:331d GetInput.setDown -00:3328 GetInput.clearDown -00:332b GetInput.readLeft -00:332f GetInput.setLeft -00:333a GetInput.clearLeft -00:333d GetInput.readRight -00:3341 GetInput.setRight -00:334c GetInput.clearRight -00:334f GetInput.priorities -00:335a GetInput.zero -00:3360 SwitchToTitle -00:3369 TitleEventLoopHandler -00:3373 TitleVBlankHandler -00:337d PersistLevel -00:338b DrawSpeedMain -00:33db DrawSpeedSettings -00:342b TimeInit -00:344b StartCountdown -00:3459 ResetGameTime -00:3464 CheckTorikan -00:347b CheckTorikan.failure -00:347d CheckTorikan.success -00:3480 HandleTimers -00:34a6 HandleTimers.reduce -00:34b3 HandleTimers.clock -00:34cd HandleTimers.go -00:34f1 SetProgress -00:34fc SetProgress.loop -00:3500 SetProgress.correct -00:3527 SetProgress.wvr_u1 -00:3533 SetProgress.wvr_u2 -00:3541 SetProgress.wvr_u3 -00:354d SetProgress.wvr_u4 -00:355b SetProgress.wvr_u5 -00:3567 SetProgress.wvr_u6 -00:3575 SetProgress.wvr_u7 -00:3581 SetProgress.wvr_u8 -00:358f SetProgress.wvr_u9 -00:359b SetProgress.wvr_u10 -00:35a3 Main -00:35cc Main.notgbc -00:35d2 Main.wvr_u1 -00:35f9 EventLoop -00:360f EventLoop.eventloopjumps -00:3618 EventLoopPostHandler -00:361a EventLoopPostHandler.wvb_u2 -00:362c EventLoopPostHandler.vblankjumps -00:3635 sHiscoreDefaultData -00:36ad LoadTitleTiles -00:36cb LoadGameplayTiles -00:36e1 LoadGameplayTiles.gbc -00:36f0 LoadGameplayTiles.dmg -00:36ff sFramesToCS -00:373b UnsafeMemCopy -00:3744 SafeMemCopy.wvr_u1 -00:3744 SafeMemCopy -00:3753 UnsafeMemSet -00:375b SafeMemSet -00:375b SafeMemSet.wvr_u2 -00:3769 SwitchToGameplay -00:3772 SwitchToGameplayBig -00:377b GamePlayEventLoopHandler -00:3785 GamePlayBigEventLoopHandler -00:378f EnableScreenSquish -00:37a9 DisableScreenSquish -00:37b4 CopyOAMHandler -00:37c0 ClearOAM -00:37d6 BankingInit -00:37e5 OAMDMA -00:37ef OAMDMAEnd +00:2363 UpdateGradeDMGT.mult4 +00:2369 UpdateGradeDMGT.mult3 +00:236e UpdateGradeDMGT.mult2 +00:2372 UpdateGradeDMGT.mult1 +00:2373 UpdateGradeDMGT.processgrade +00:239c UpdateGradeDMGT.increasegrademaybe +00:23c0 UpdateGradeDMGT.gotgm +00:23ce DecayGradeDMGT +00:23f2 DecayGradeDMGT.nodecay +00:23f9 DecayGradeDMGT.decay +00:2407 UpdateGradeTGM1 +00:2411 UpdateGradeTGM1.trygradeup +00:242b UpdateGradeTGM1.increasegrade +00:2440 UpdateGradeTGM1.skipjingle +00:244d UpdateGradeTGM1.maybegm +00:2466 UpdateGradeDEAT +00:2472 UpdateGradeDEAT.notgm +00:248e UpdateGradeDEAT.notm +00:24b1 UpdateGradeDEAT.disqualify +00:24cf UpdateGradeSHIR +00:2512 UpdateGradeSHIR.s5torikan +00:2522 UpdateGradeSHIR.s10torikan +00:2531 UpdateGradeSHIR.disqualify +00:2540 UpdateGradeSHIR.l1000 +00:2556 UpdateGradeSHIR.l500 +00:256c LevelInit +00:25d1 SpecialLevelInit +00:25df SpecialLevelInit.jumps +00:25f4 SpecialLevelInit.dmgt +00:25f9 SpecialLevelInit.tgm1 +00:25fe SpecialLevelInit.tgm3 +00:2603 SpecialLevelInit.deat +00:2608 SpecialLevelInit.shir +00:260d SpecialLevelInit.chil +00:2612 SpecialLevelInit.myco +00:2617 SpecialLevelInit.loaddata +00:264c LevelUp +00:2676 LevelUp.doit +00:26c0 LevelUp.checknlevel +00:270f LevelUp.bellmaybe +00:2728 LevelUp.leveljinglemaybe +00:2735 LevelUp.checkspeedup +00:2774 DoSpeedUp +00:27b5 CheckSpecialLevelConditions +00:27e6 CheckSpecialLevelConditions.override +00:2801 CheckSpecialLevelConditions.nooverride +00:2807 CheckSpecialLevelConditions.speciallock +00:2828 CheckSpecialLevelConditions.bones +00:283d CheckSpecialLevelConditions.enterthebonezone +00:2842 CheckSpecialLevelConditions.invis +00:2857 CheckSpecialLevelConditions.vanishoxyaction +00:285c CheckSpecialLevelConditions.killscreen +00:286d CheckSpecialLevelConditions.rip +00:289d CheckSpecialLevelConditions.staffroll +00:28ab CheckSpecialLevelConditions.justkill +00:28bf TriggerKillScreen +00:28e1 sTGM1GradeScores +00:2903 sTGM3InternalGradeSystem +00:29a3 sTGM3GradeBoosts +00:29c2 sTGM3LevelMultiplier +00:29c6 sTGM3BaselineCOOL +00:29cf sTGM3REGRETConditions +00:29e3 sDMGTGrading +00:2a97 sDMGTGaugeLUT +00:2b97 SFXInit +00:2bb9 SFXPopQueue +00:2bce SFXPushQueue +00:2bdf SFXProcessQueue +00:2c0d SFXTriggerNoise +00:2c33 SFXEnqueue +00:2c48 SFXEnqueue.findsfx +00:2da2 SFXKill +00:2dcf SFXPlayNoise +00:2dda SFXPlayNoise.noisereg +00:2df1 SFXPlayNoise.savenoiseplayhead +00:2dfa SFXPlay +00:2e08 SFXPlay.play +00:2e14 SFXPlay.getRegister +00:2e28 SFXPlay.savePlayhead +00:2e31 HarvestEntropy +00:2e37 HarvestEntropy.loop +00:2e58 RNGInit +00:2ebe RNGInit.complexinit +00:2ef0 ShiftHistory +00:2f0d GetNextHellPiece +00:2f12 GetNextTGM1Piece +00:2f2f GetNextTGM2Piece +00:2f4c GetNextNesPiece +00:2f5a GetNextTGM3Piece +00:3011 GetNextPiece +00:301f GetNextPiece.nextpiecejumps +00:302e Next35Piece +00:3038 Next7Piece +00:3042 NextByte +00:3062 sProgressData +00:31ac ScoreInit +00:31d4 IncreaseScore +00:320c IncreaseScore.doConvert +00:3224 IncreaseScore.carry +00:3226 IncreaseScore.postConvert +00:323a IncreaseScore.preAddDigit +00:3262 IncreaseScore.addDigit +00:3278 IncreaseScore.nextDigit +00:328c InputInit +00:329e GetInput +00:329e GetInput.btns +00:32ab GetInput.readA +00:32af GetInput.setA +00:32ba GetInput.clearA +00:32bd GetInput.readB +00:32c1 GetInput.setB +00:32cc GetInput.clearB +00:32cf GetInput.readSelect +00:32d3 GetInput.setSelect +00:32de GetInput.clearSelect +00:32e1 GetInput.readStart +00:32e5 GetInput.setStart +00:32f0 GetInput.clearStart +00:32f3 GetInput.dpad +00:3300 GetInput.readUp +00:3304 GetInput.setUp +00:330f GetInput.clearUp +00:3312 GetInput.readDown +00:3316 GetInput.setDown +00:3321 GetInput.clearDown +00:3324 GetInput.readLeft +00:3328 GetInput.setLeft +00:3333 GetInput.clearLeft +00:3336 GetInput.readRight +00:333a GetInput.setRight +00:3345 GetInput.clearRight +00:3348 GetInput.priorities +00:3353 GetInput.zero +00:3359 SwitchToTitle +00:3362 TitleEventLoopHandler +00:336c TitleVBlankHandler +00:3376 PersistLevel +00:3384 DrawSpeedMain +00:33d4 DrawSpeedSettings +00:3424 TimeInit +00:3444 StartCountdown +00:3452 ResetGameTime +00:345d CheckTorikan +00:3474 CheckTorikan.failure +00:3476 CheckTorikan.success +00:3479 HandleTimers +00:349f HandleTimers.reduce +00:34ac HandleTimers.clock +00:34c6 HandleTimers.go +00:34ea SetProgress +00:34f5 SetProgress.loop +00:34f9 SetProgress.correct +00:3520 SetProgress.wvr_u1 +00:352c SetProgress.wvr_u2 +00:353a SetProgress.wvr_u3 +00:3546 SetProgress.wvr_u4 +00:3554 SetProgress.wvr_u5 +00:3560 SetProgress.wvr_u6 +00:356e SetProgress.wvr_u7 +00:357a SetProgress.wvr_u8 +00:3588 SetProgress.wvr_u9 +00:3594 SetProgress.wvr_u10 +00:359c Main +00:35c5 Main.notgbc +00:35cb Main.wvr_u1 +00:35f2 EventLoop +00:3608 EventLoop.eventloopjumps +00:3611 EventLoopPostHandler +00:3613 EventLoopPostHandler.wvb_u2 +00:3625 EventLoopPostHandler.vblankjumps +00:362e sHiscoreDefaultData +00:36a6 LoadTitleTiles +00:36c4 LoadGameplayTiles +00:36da LoadGameplayTiles.gbc +00:36e9 LoadGameplayTiles.dmg +00:36f8 sFramesToCS +00:3734 UnsafeMemCopy +00:373d SafeMemCopy.wvr_u1 +00:373d SafeMemCopy +00:374c UnsafeMemSet +00:3754 SafeMemSet +00:3754 SafeMemSet.wvr_u2 +00:3762 SwitchToGameplay +00:376b SwitchToGameplayBig +00:3774 GamePlayEventLoopHandler +00:377e GamePlayBigEventLoopHandler +00:3788 EnableScreenSquish +00:37a2 DisableScreenSquish +00:37ad CopyOAMHandler +00:37b9 ClearOAM +00:37cf BankingInit +00:37de OAMDMA +00:37e8 OAMDMAEnd 01:4008 sDMGTSpeedCurve 01:4203 sDMGTSpeedCurveEnd 01:4205 sDMGTSpeedCurveSpecialData diff --git a/src/grading.asm b/src/grading.asm index cc91f23..e493079 100644 --- a/src/grading.asm +++ b/src/grading.asm @@ -173,39 +173,39 @@ sDMGTGrading: db 125, 10, 20, 40, 50 ; Grade 9 — frames/decay, single base, double base, triple base, tetris base db 80, 10, 20, 30, 40 ; Grade 8 — frames/decay, single base, double base, triple base, tetris base db 80, 10, 20, 30, 40 ; Grade 7 — frames/decay, single base, double base, triple base, tetris base - db 50, 10, 20, 30, 40 ; Grade 6 — frames/decay, single base, double base, triple base, tetris base - db 45, 5, 20, 30, 40 ; Grade 5 — frames/decay, single base, double base, triple base, tetris base - db 45, 5, 20, 30, 40 ; Grade 4 — frames/decay, single base, double base, triple base, tetris base - db 45, 5, 20, 30, 40 ; Grade 3 — frames/decay, single base, double base, triple base, tetris base - db 40, 5, 20, 20, 30 ; Grade 2 — frames/decay, single base, double base, triple base, tetris base - db 40, 5, 20, 20, 30 ; Grade 1 — frames/decay, single base, double base, triple base, tetris base - db 40, 2, 20, 20, 30 ; Grade S1 — frames/decay, single base, double base, triple base, tetris base - db 40, 2, 20, 20, 30 ; Grade S2 — frames/decay, single base, double base, triple base, tetris base - db 40, 2, 20, 20, 30 ; Grade S3 — frames/decay, single base, double base, triple base, tetris base - db 30, 2, 20, 20, 30 ; Grade S4 — frames/decay, single base, double base, triple base, tetris base - db 30, 2, 15, 20, 30 ; Grade S5 — frames/decay, single base, double base, triple base, tetris base - db 30, 2, 15, 20, 30 ; Grade S6 — frames/decay, single base, double base, triple base, tetris base + db 40, 10, 20, 30, 40 ; Grade 6 — frames/decay, single base, double base, triple base, tetris base + db 40, 5, 20, 30, 40 ; Grade 5 — frames/decay, single base, double base, triple base, tetris base + db 40, 5, 20, 30, 40 ; Grade 4 — frames/decay, single base, double base, triple base, tetris base + db 40, 5, 20, 30, 40 ; Grade 3 — frames/decay, single base, double base, triple base, tetris base + db 40, 2, 20, 20, 30 ; Grade 2 — frames/decay, single base, double base, triple base, tetris base + db 40, 2, 15, 20, 30 ; Grade 1 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S1 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S2 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S3 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S4 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S5 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S6 — frames/decay, single base, double base, triple base, tetris base db 20, 2, 15, 20, 30 ; Grade S7 — frames/decay, single base, double base, triple base, tetris base db 20, 2, 15, 20, 30 ; Grade S8 — frames/decay, single base, double base, triple base, tetris base - db 20, 2, 15, 20, 30 ; Grade S9 — frames/decay, single base, double base, triple base, tetris base - db 20, 2, 15, 20, 30 ; Grade S10 — frames/decay, single base, double base, triple base, tetris base - db 20, 2, 15, 20, 30 ; Grade S11 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 15, 20, 30 ; Grade S9 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 15, 20, 30 ; Grade S10 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 15, 20, 30 ; Grade S11 — frames/decay, single base, double base, triple base, tetris base db 15, 2, 15, 20, 30 ; Grade S12 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 15, 20, 30 ; Grade S13 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 15, 15, 30 ; Grade m1 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 15, 15, 30 ; Grade m2 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 15, 15, 30 ; Grade m3 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 15, 15, 30 ; Grade m4 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 12, 15, 30 ; Grade S13 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 12, 15, 30 ; Grade m1 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 12, 15, 30 ; Grade m2 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 12, 15, 30 ; Grade m3 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 12, 15, 30 ; Grade m4 — frames/decay, single base, double base, triple base, tetris base db 15, 2, 12, 15, 30 ; Grade m5 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 12, 15, 30 ; Grade m6 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 12, 15, 30 ; Grade m7 — frames/decay, single base, double base, triple base, tetris base + db 10, 2, 12, 15, 30 ; Grade m6 — frames/decay, single base, double base, triple base, tetris base + db 10, 2, 12, 15, 30 ; Grade m7 — frames/decay, single base, double base, triple base, tetris base db 10, 2, 12, 15, 30 ; Grade m8 — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 12, 15, 30 ; Grade m9 — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 12, 13, 30 ; Grade M — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 12, 13, 30 ; Grade MK — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 12, 13, 30 ; Grade MV — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 12, 13, 30 ; Grade MO — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 8, 10, 20 ; Grade MM — frames/decay, single base, double base, triple base, tetris base + db 5, 2, 8, 13, 30 ; Grade m9 — frames/decay, single base, double base, triple base, tetris base + db 5, 2, 8, 13, 30 ; Grade M — frames/decay, single base, double base, triple base, tetris base + db 5, 2, 8, 13, 30 ; Grade MK — frames/decay, single base, double base, triple base, tetris base + db 5, 1, 8, 13, 30 ; Grade MV — frames/decay, single base, double base, triple base, tetris base + db 5, 1, 8, 13, 20 ; Grade MO — frames/decay, single base, double base, triple base, tetris base + db 4, 1, 4, 10, 20 ; Grade MM — frames/decay, single base, double base, triple base, tetris base ; No entry for GM. We're done there. sDMGTGaugeLUT: @@ -531,9 +531,9 @@ UpdateGradeDMGT:: .levelmult ld a, [hCLevel+CLEVEL_THOUSANDS] ; thousands cp a, 1 - jr nc, .mult5 + jr nc, .mult4 ld a, [hCLevel+CLEVEL_HUNDREDS] ; hundreds - cp a, 7 + cp a, 9 jr nc, .mult4 cp a, 5 jr nc, .mult3 @@ -541,14 +541,6 @@ UpdateGradeDMGT:: jr nc, .mult2 jr .mult1 -.mult5 - ld a, d - add a, d - add a, d - add a, d - add a, d - jr .processgrade - .mult4 ld a, d add a, d