Expand score to 8 digits.
This commit is contained in:
		
							parent
							
								
									df9b65e78f
								
							
						
					
					
						commit
						ae2711689a
					
				
							
								
								
									
										
											BIN
										
									
								
								bin/DMGTRIS.GBC
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/DMGTRIS.GBC
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										678
									
								
								bin/DMGTRIS.map
								
								
								
								
							
							
						
						
									
										678
									
								
								bin/DMGTRIS.map
								
								
								
								
							|  | @ -119,7 +119,7 @@ ROM0 bank #0: | |||
| 	         $1566 = !11 | ||||
| 	         $15b5 = !12 | ||||
| 	         $1604 = !13 | ||||
| 	SECTION: $1656-$1a21 ($03cc bytes) ["Domain Specific Functions"] | ||||
| 	SECTION: $1656-$1a75 ($0420 bytes) ["Domain Specific Functions"] | ||||
| 	         $1656 = ApplyTells | ||||
| 	         $16b1 = ApplyNext | ||||
| 	         $16e1 = ApplyNext.regular | ||||
|  | @ -134,269 +134,270 @@ ROM0 bank #0: | |||
| 	         $17d0 = ApplyHold.postoffsets | ||||
| 	         $17d4 = ApplyHold.getoffh | ||||
| 	         $17df = ApplyHold.skipoffh | ||||
| 	         $1819 = ApplyNumbers6 | ||||
| 	         $1841 = ApplyNumbers4 | ||||
| 	         $185d = SetNumberSpritePositions | ||||
| 	         $1944 = GradeRendering | ||||
| 	         $1979 = GradeRendering.effect | ||||
| 	         $1989 = GradeRendering.noeffect | ||||
| 	         $1991 = GradeRendering.drawgrade | ||||
| 	         $1998 = GradeRendering.regulargrade | ||||
| 	         $19a0 = GradeRendering.sgrade | ||||
| 	         $19b6 = GradeRendering.hisgrade | ||||
| 	         $19cc = GradeRendering.mgrade | ||||
| 	         $19e2 = GradeRendering.lettergrade | ||||
| 	         $19ff = GradeRendering.mk | ||||
| 	         $1a05 = GradeRendering.mv | ||||
| 	         $1a0b = GradeRendering.mo | ||||
| 	         $1a11 = GradeRendering.mm | ||||
| 	         $1a17 = GradeRendering.gmgrade | ||||
| 	SECTION: $1a22-$1d35 ($0314 bytes) ["Grading Functions"] | ||||
| 	         $1a22 = GradeInit | ||||
| 	         $1a4d = GradeInit.grade9start | ||||
| 	         $1a52 = GradeInit.end | ||||
| 	         $1a54 = UpdateGrade | ||||
| 	         $1a62 = UpdateGrade.gradejumptable | ||||
| 	         $1a74 = DecayGradeProcess | ||||
| 	         $1a82 = DecayGradeProcess.gradejumptable | ||||
| 	         $1a94 = DecayGradeDelay | ||||
| 	         $1aa2 = DecayGradeDelay.gradejumptable | ||||
| 	         $1ab4 = PrepareScore | ||||
| 	         $1acb = UpdateGradeDMGT | ||||
| 	         $1ae1 = UpdateGradeDMGT.clearrate | ||||
| 	         $1af2 = UpdateGradeDMGT.combomult | ||||
| 	         $1aff = UpdateGradeDMGT.combo10 | ||||
| 	         $1b10 = UpdateGradeDMGT.combo5 | ||||
| 	         $1b21 = UpdateGradeDMGT.combo1 | ||||
| 	         $1b30 = UpdateGradeDMGT.prelevel | ||||
| 	         $1b3f = UpdateGradeDMGT.single | ||||
| 	         $1b4f = UpdateGradeDMGT.double | ||||
| 	         $1b60 = UpdateGradeDMGT.adddonce | ||||
| 	         $1b64 = UpdateGradeDMGT.triple | ||||
| 	         $1b75 = UpdateGradeDMGT.addtonce | ||||
| 	         $1b79 = UpdateGradeDMGT.tetris | ||||
| 	         $1b7d = UpdateGradeDMGT.levelmult | ||||
| 	         $1b95 = UpdateGradeDMGT.mult5 | ||||
| 	         $1b9c = UpdateGradeDMGT.mult4 | ||||
| 	         $1ba2 = UpdateGradeDMGT.mult3 | ||||
| 	         $1ba7 = UpdateGradeDMGT.mult2 | ||||
| 	         $1bab = UpdateGradeDMGT.mult1 | ||||
| 	         $1bac = UpdateGradeDMGT.processgrade | ||||
| 	         $1bd0 = UpdateGradeDMGT.increasegrademaybe | ||||
| 	         $1bf1 = UpdateGradeDMGT.gotgm | ||||
| 	         $1bfc = DecayGradeDMGT | ||||
| 	         $1c1c = DecayGradeDMGT.nodecay | ||||
| 	         $1c21 = DecayGradeDMGT.decay | ||||
| 	         $1c2d = UpdateGradeTGM1 | ||||
| 	         $1c37 = UpdateGradeTGM1.trygradeup | ||||
| 	         $1c51 = UpdateGradeTGM1.increasegrade | ||||
| 	         $1c63 = UpdateGradeTGM1.skipjingle | ||||
| 	         $1c70 = UpdateGradeTGM1.maybegm | ||||
| 	         $1c86 = UpdateGradeDEAT | ||||
| 	         $1c92 = UpdateGradeDEAT.notgm | ||||
| 	         $1cab = UpdateGradeDEAT.notm | ||||
| 	         $1ccb = UpdateGradeDEAT.disqualify | ||||
| 	         $1cd1 = UpdateGradeSHIR | ||||
| 	         $1d11 = UpdateGradeSHIR.s5torikan | ||||
| 	         $1d21 = UpdateGradeSHIR.s10torikan | ||||
| 	         $1d30 = UpdateGradeSHIR.disqualify | ||||
| 	SECTION: $1d36-$1fcc ($0297 bytes) ["SFX Functions"] | ||||
| 	         $1d36 = SFXInit | ||||
| 	         $1d58 = SFXPopQueue | ||||
| 	         $1d6d = SFXPushQueue | ||||
| 	         $1d7e = SFXProcessQueue | ||||
| 	         $1d8b = !0 | ||||
| 	         $1dac = SFXTriggerNoise | ||||
| 	         $1db9 = !1 | ||||
| 	         $1dc6 = !2 | ||||
| 	         $1dd2 = SFXEnqueue | ||||
| 	         $1de7 = SFXEnqueue.findsfx | ||||
| 	         $1dfc = !3 | ||||
| 	         $1e0c = !4 | ||||
| 	         $1e1c = !5 | ||||
| 	         $1e2c = !6 | ||||
| 	         $1e3c = !7 | ||||
| 	         $1e4c = !8 | ||||
| 	         $1e5c = !9 | ||||
| 	         $1e6c = !10 | ||||
| 	         $1e7c = !11 | ||||
| 	         $1e8c = !12 | ||||
| 	         $1e9c = !13 | ||||
| 	         $1eac = !14 | ||||
| 	         $1ebc = !15 | ||||
| 	         $1ecc = !16 | ||||
| 	         $1edc = !17 | ||||
| 	         $1eeb = !18 | ||||
| 	         $1efa = !19 | ||||
| 	         $1f09 = !20 | ||||
| 	         $1f17 = !21 | ||||
| 	         $1f25 = !22 | ||||
| 	         $1f33 = !23 | ||||
| 	         $1f40 = SFXKill | ||||
| 	         $1f6b = SFXPlayNoise | ||||
| 	         $1f76 = SFXPlayNoise.noisereg | ||||
| 	         $1f83 = !24 | ||||
| 	         $1f8d = SFXPlayNoise.savenoiseplayhead | ||||
| 	         $1f96 = SFXPlay | ||||
| 	         $1fa1 = !25 | ||||
| 	         $1fa4 = SFXPlay.play | ||||
| 	         $1fb0 = SFXPlay.getRegister | ||||
| 	         $1fba = !26 | ||||
| 	         $1fc4 = SFXPlay.savePlayhead | ||||
| 	SECTION: $1fcd-$21ba ($01ee bytes) ["RNG Functions"] | ||||
| 	         $1fcd = RNGInit | ||||
| 	         $1ffd = !0 | ||||
| 	         $2018 = RNGInit.complexinit | ||||
| 	         $202f = !1 | ||||
| 	         $2049 = ShiftHistory | ||||
| 	         $2066 = GetNextHellPiece | ||||
| 	         $206b = GetNextTGM1Piece | ||||
| 	         $206e = !2 | ||||
| 	         $2086 = !3 | ||||
| 	         $2088 = GetNextTGM2Piece | ||||
| 	         $208b = !4 | ||||
| 	         $20a3 = !5 | ||||
| 	         $20a5 = GetNextNesPiece | ||||
| 	         $20b3 = GetNextTGM3Piece | ||||
| 	         $20b6 = !6 | ||||
| 	         $20d9 = !7 | ||||
| 	         $20dc = !8 | ||||
| 	         $20ec = !9 | ||||
| 	         $20f6 = !10 | ||||
| 	         $2104 = !11 | ||||
| 	         $2113 = !12 | ||||
| 	         $211f = !13 | ||||
| 	         $212b = !14 | ||||
| 	         $2137 = !15 | ||||
| 	         $2143 = !16 | ||||
| 	         $214f = !17 | ||||
| 	         $215b = !18 | ||||
| 	         $216a = GetNextPiece | ||||
| 	         $2178 = GetNextPiece.nextpiecejumps | ||||
| 	         $2187 = Next35Piece | ||||
| 	         $2187 = !19 | ||||
| 	         $2191 = Next7Piece | ||||
| 	         $2191 = !20 | ||||
| 	         $219b = NextByte | ||||
| 	SECTION: $21bb-$2370 ($01b6 bytes) ["Grading Data"] | ||||
| 	         $21bb = sTGM1GradeScores | ||||
| 	         $21dd = sTGM3InternalGradeSystem | ||||
| 	         $227d = sTGM3GradeBoosts | ||||
| 	         $229c = sTGM3LevelMultiplier | ||||
| 	         $22a0 = sTGM3BaselineCOOL | ||||
| 	         $22a9 = sTGM3REGRETConditions | ||||
| 	         $22bd = sDMGTGrading | ||||
| 	SECTION: $2371-$2513 ($01a3 bytes) ["Level Functions"] | ||||
| 	         $2371 = LevelInit | ||||
| 	         $23c1 = LevelUp | ||||
| 	         $23e5 = LevelUp.doit | ||||
| 	         $2429 = LevelUp.checknlevel | ||||
| 	         $2457 = !0 | ||||
| 	         $246f = !1 | ||||
| 	         $2478 = LevelUp.bellmaybe | ||||
| 	         $248a = LevelUp.leveljinglemaybe | ||||
| 	         $2497 = LevelUp.checkspeedup | ||||
| 	         $24a8 = !2 | ||||
| 	         $24b5 = !3 | ||||
| 	         $24c6 = !4 | ||||
| 	         $24d3 = DoSpeedUp | ||||
| 	SECTION: $2514-$25e0 ($00cd bytes) ["Input Functions"] | ||||
| 	         $2514 = InputInit | ||||
| 	         $2526 = GetInput | ||||
| 	         $2526 = GetInput.btns | ||||
| 	         $2533 = GetInput.readA | ||||
| 	         $2537 = GetInput.setA | ||||
| 	         $2542 = GetInput.clearA | ||||
| 	         $2545 = GetInput.readB | ||||
| 	         $2549 = GetInput.setB | ||||
| 	         $2554 = GetInput.clearB | ||||
| 	         $2557 = GetInput.readSelect | ||||
| 	         $255b = GetInput.setSelect | ||||
| 	         $2566 = GetInput.clearSelect | ||||
| 	         $2569 = GetInput.readStart | ||||
| 	         $256d = GetInput.setStart | ||||
| 	         $2578 = GetInput.clearStart | ||||
| 	         $257b = GetInput.dpad | ||||
| 	         $2588 = GetInput.readUp | ||||
| 	         $258c = GetInput.setUp | ||||
| 	         $2597 = GetInput.clearUp | ||||
| 	         $259a = GetInput.readDown | ||||
| 	         $259e = GetInput.setDown | ||||
| 	         $25a9 = GetInput.clearDown | ||||
| 	         $25ac = GetInput.readLeft | ||||
| 	         $25b0 = GetInput.setLeft | ||||
| 	         $25bb = GetInput.clearLeft | ||||
| 	         $25be = GetInput.readRight | ||||
| 	         $25c2 = GetInput.setRight | ||||
| 	         $25cd = GetInput.clearRight | ||||
| 	         $25d0 = GetInput.priorities | ||||
| 	         $25db = GetInput.zero | ||||
| 	SECTION: $25e1-$26ac ($00cc bytes) ["Score Functions"] | ||||
| 	         $25e1 = ScoreInit | ||||
| 	         $2601 = IncreaseScore | ||||
| 	         $2635 = IncreaseScore.doConvert | ||||
| 	         $2637 = !0 | ||||
| 	         $264d = IncreaseScore.carry | ||||
| 	         $264f = IncreaseScore.postConvert | ||||
| 	         $265c = !1 | ||||
| 	         $2663 = IncreaseScore.preAddDigit | ||||
| 	         $2683 = IncreaseScore.addDigit | ||||
| 	         $2699 = IncreaseScore.nextDigit | ||||
| 	SECTION: $26ad-$2763 ($00b7 bytes) ["SRAM Functions"] | ||||
| 	         $26ad = RestoreSRAM | ||||
| 	         $2706 = InitializeSRAM | ||||
| 	SECTION: $2764-$2807 ($00a4 bytes) ["Code Entry Point"] | ||||
| 	         $2764 = Main | ||||
| 	         $2779 = Main.wvr_u1 | ||||
| 	         $2782 = !0 | ||||
| 	         $2792 = Main.notgbc | ||||
| 	         $27c1 = Main.wvb_u2 | ||||
| 	         $27c6 = !1 | ||||
| 	         $27cc = EventLoop | ||||
| 	         $27e2 = EventLoop.eventloopjumps | ||||
| 	         $27eb = EventLoopPostHandler | ||||
| 	         $27ed = EventLoopPostHandler.wvb_u3 | ||||
| 	         $27ff = EventLoopPostHandler.vblankjumps | ||||
| 	SECTION: $2808-$287b ($0074 bytes) ["Time Functions"] | ||||
| 	         $2808 = TimeInit | ||||
| 	         $281d = ResetGameTime | ||||
| 	         $2828 = CheckTorikan | ||||
| 	         $283f = CheckTorikan.failure | ||||
| 	         $2841 = CheckTorikan.success | ||||
| 	         $2844 = HandleTimers | ||||
| 	SECTION: $287c-$28e9 ($006e bytes) ["Title Function Trampolines"] | ||||
| 	         $287c = SwitchToTitle | ||||
| 	         $2886 = TitleEventLoopHandler | ||||
| 	         $2890 = TitleVBlankHandler | ||||
| 	         $289a = DrawOption6 | ||||
| 	SECTION: $28ea-$293b ($0052 bytes) ["Tile Functions"] | ||||
| 	         $28ea = LoadTitleTiles | ||||
| 	         $2908 = LoadGameplayTiles | ||||
| 	         $291e = LoadGameplayTiles.gbc | ||||
| 	         $292d = LoadGameplayTiles.dmg | ||||
| 	SECTION: $293c-$2969 ($002e bytes) ["Memory Functions"] | ||||
| 	         $293c = UnsafeMemCopy | ||||
| 	         $2945 = SafeMemCopy.wvr_u1 | ||||
| 	         $2945 = SafeMemCopy | ||||
| 	         $2954 = UnsafeMemSet | ||||
| 	         $295c = SafeMemSet | ||||
| 	         $295c = SafeMemSet.wvr_u2 | ||||
| 	SECTION: $296a-$2991 ($0028 bytes) ["Gameplay Function Trampolines"] | ||||
| 	         $296a = SwitchToGameplay | ||||
| 	         $2974 = SwitchToGameplayBig | ||||
| 	         $297e = GamePlayEventLoopHandler | ||||
| 	         $2988 = GamePlayBigEventLoopHandler | ||||
| 	SECTION: $2992-$29b3 ($0022 bytes) ["OAM Functions"] | ||||
| 	         $2992 = CopyOAMHandler | ||||
| 	         $299e = ClearOAM | ||||
| 	SECTION: $29b4-$29cc ($0019 bytes) ["Interrupt Initialization Functions"] | ||||
| 	         $29b4 = IntrInit | ||||
| 	         $29b8 = InitializeLCDCInterrupt | ||||
| 	SECTION: $29cd-$29d6 ($000a bytes) ["OAM DMA Code"] | ||||
| 	         $29cd = OAMDMA | ||||
| 	         $29d7 = OAMDMAEnd | ||||
| 	EMPTY: $29d7-$3fff ($1629 bytes) | ||||
| 	TOTAL EMPTY: $1634 bytes | ||||
| 	         $1819 = ApplyNumbers8 | ||||
| 	         $184d = ApplyNumbers6 | ||||
| 	         $1875 = ApplyNumbers4 | ||||
| 	         $1891 = SetNumberSpritePositions | ||||
| 	         $1998 = GradeRendering | ||||
| 	         $19cd = GradeRendering.effect | ||||
| 	         $19dd = GradeRendering.noeffect | ||||
| 	         $19e5 = GradeRendering.drawgrade | ||||
| 	         $19ec = GradeRendering.regulargrade | ||||
| 	         $19f4 = GradeRendering.sgrade | ||||
| 	         $1a0a = GradeRendering.hisgrade | ||||
| 	         $1a20 = GradeRendering.mgrade | ||||
| 	         $1a36 = GradeRendering.lettergrade | ||||
| 	         $1a53 = GradeRendering.mk | ||||
| 	         $1a59 = GradeRendering.mv | ||||
| 	         $1a5f = GradeRendering.mo | ||||
| 	         $1a65 = GradeRendering.mm | ||||
| 	         $1a6b = GradeRendering.gmgrade | ||||
| 	SECTION: $1a76-$1d85 ($0310 bytes) ["Grading Functions"] | ||||
| 	         $1a76 = GradeInit | ||||
| 	         $1aa1 = GradeInit.grade9start | ||||
| 	         $1aa6 = GradeInit.end | ||||
| 	         $1aa8 = UpdateGrade | ||||
| 	         $1ab6 = UpdateGrade.gradejumptable | ||||
| 	         $1ac8 = DecayGradeProcess | ||||
| 	         $1ad6 = DecayGradeProcess.gradejumptable | ||||
| 	         $1ae8 = DecayGradeDelay | ||||
| 	         $1af6 = DecayGradeDelay.gradejumptable | ||||
| 	         $1b08 = PrepareScore | ||||
| 	         $1b1b = UpdateGradeDMGT | ||||
| 	         $1b31 = UpdateGradeDMGT.clearrate | ||||
| 	         $1b42 = UpdateGradeDMGT.combomult | ||||
| 	         $1b4f = UpdateGradeDMGT.combo10 | ||||
| 	         $1b60 = UpdateGradeDMGT.combo5 | ||||
| 	         $1b71 = UpdateGradeDMGT.combo1 | ||||
| 	         $1b80 = UpdateGradeDMGT.prelevel | ||||
| 	         $1b8f = UpdateGradeDMGT.single | ||||
| 	         $1b9f = UpdateGradeDMGT.double | ||||
| 	         $1bb0 = UpdateGradeDMGT.adddonce | ||||
| 	         $1bb4 = UpdateGradeDMGT.triple | ||||
| 	         $1bc5 = UpdateGradeDMGT.addtonce | ||||
| 	         $1bc9 = UpdateGradeDMGT.tetris | ||||
| 	         $1bcd = UpdateGradeDMGT.levelmult | ||||
| 	         $1be5 = UpdateGradeDMGT.mult5 | ||||
| 	         $1bec = UpdateGradeDMGT.mult4 | ||||
| 	         $1bf2 = UpdateGradeDMGT.mult3 | ||||
| 	         $1bf7 = UpdateGradeDMGT.mult2 | ||||
| 	         $1bfb = UpdateGradeDMGT.mult1 | ||||
| 	         $1bfc = UpdateGradeDMGT.processgrade | ||||
| 	         $1c20 = UpdateGradeDMGT.increasegrademaybe | ||||
| 	         $1c41 = UpdateGradeDMGT.gotgm | ||||
| 	         $1c4c = DecayGradeDMGT | ||||
| 	         $1c6c = DecayGradeDMGT.nodecay | ||||
| 	         $1c71 = DecayGradeDMGT.decay | ||||
| 	         $1c7d = UpdateGradeTGM1 | ||||
| 	         $1c87 = UpdateGradeTGM1.trygradeup | ||||
| 	         $1ca1 = UpdateGradeTGM1.increasegrade | ||||
| 	         $1cb3 = UpdateGradeTGM1.skipjingle | ||||
| 	         $1cc0 = UpdateGradeTGM1.maybegm | ||||
| 	         $1cd6 = UpdateGradeDEAT | ||||
| 	         $1ce2 = UpdateGradeDEAT.notgm | ||||
| 	         $1cfb = UpdateGradeDEAT.notm | ||||
| 	         $1d1b = UpdateGradeDEAT.disqualify | ||||
| 	         $1d21 = UpdateGradeSHIR | ||||
| 	         $1d61 = UpdateGradeSHIR.s5torikan | ||||
| 	         $1d71 = UpdateGradeSHIR.s10torikan | ||||
| 	         $1d80 = UpdateGradeSHIR.disqualify | ||||
| 	SECTION: $1d86-$201c ($0297 bytes) ["SFX Functions"] | ||||
| 	         $1d86 = SFXInit | ||||
| 	         $1da8 = SFXPopQueue | ||||
| 	         $1dbd = SFXPushQueue | ||||
| 	         $1dce = SFXProcessQueue | ||||
| 	         $1ddb = !0 | ||||
| 	         $1dfc = SFXTriggerNoise | ||||
| 	         $1e09 = !1 | ||||
| 	         $1e16 = !2 | ||||
| 	         $1e22 = SFXEnqueue | ||||
| 	         $1e37 = SFXEnqueue.findsfx | ||||
| 	         $1e4c = !3 | ||||
| 	         $1e5c = !4 | ||||
| 	         $1e6c = !5 | ||||
| 	         $1e7c = !6 | ||||
| 	         $1e8c = !7 | ||||
| 	         $1e9c = !8 | ||||
| 	         $1eac = !9 | ||||
| 	         $1ebc = !10 | ||||
| 	         $1ecc = !11 | ||||
| 	         $1edc = !12 | ||||
| 	         $1eec = !13 | ||||
| 	         $1efc = !14 | ||||
| 	         $1f0c = !15 | ||||
| 	         $1f1c = !16 | ||||
| 	         $1f2c = !17 | ||||
| 	         $1f3b = !18 | ||||
| 	         $1f4a = !19 | ||||
| 	         $1f59 = !20 | ||||
| 	         $1f67 = !21 | ||||
| 	         $1f75 = !22 | ||||
| 	         $1f83 = !23 | ||||
| 	         $1f90 = SFXKill | ||||
| 	         $1fbb = SFXPlayNoise | ||||
| 	         $1fc6 = SFXPlayNoise.noisereg | ||||
| 	         $1fd3 = !24 | ||||
| 	         $1fdd = SFXPlayNoise.savenoiseplayhead | ||||
| 	         $1fe6 = SFXPlay | ||||
| 	         $1ff1 = !25 | ||||
| 	         $1ff4 = SFXPlay.play | ||||
| 	         $2000 = SFXPlay.getRegister | ||||
| 	         $200a = !26 | ||||
| 	         $2014 = SFXPlay.savePlayhead | ||||
| 	SECTION: $201d-$220a ($01ee bytes) ["RNG Functions"] | ||||
| 	         $201d = RNGInit | ||||
| 	         $204d = !0 | ||||
| 	         $2068 = RNGInit.complexinit | ||||
| 	         $207f = !1 | ||||
| 	         $2099 = ShiftHistory | ||||
| 	         $20b6 = GetNextHellPiece | ||||
| 	         $20bb = GetNextTGM1Piece | ||||
| 	         $20be = !2 | ||||
| 	         $20d6 = !3 | ||||
| 	         $20d8 = GetNextTGM2Piece | ||||
| 	         $20db = !4 | ||||
| 	         $20f3 = !5 | ||||
| 	         $20f5 = GetNextNesPiece | ||||
| 	         $2103 = GetNextTGM3Piece | ||||
| 	         $2106 = !6 | ||||
| 	         $2129 = !7 | ||||
| 	         $212c = !8 | ||||
| 	         $213c = !9 | ||||
| 	         $2146 = !10 | ||||
| 	         $2154 = !11 | ||||
| 	         $2163 = !12 | ||||
| 	         $216f = !13 | ||||
| 	         $217b = !14 | ||||
| 	         $2187 = !15 | ||||
| 	         $2193 = !16 | ||||
| 	         $219f = !17 | ||||
| 	         $21ab = !18 | ||||
| 	         $21ba = GetNextPiece | ||||
| 	         $21c8 = GetNextPiece.nextpiecejumps | ||||
| 	         $21d7 = Next35Piece | ||||
| 	         $21d7 = !19 | ||||
| 	         $21e1 = Next7Piece | ||||
| 	         $21e1 = !20 | ||||
| 	         $21eb = NextByte | ||||
| 	SECTION: $220b-$23c0 ($01b6 bytes) ["Grading Data"] | ||||
| 	         $220b = sTGM1GradeScores | ||||
| 	         $222d = sTGM3InternalGradeSystem | ||||
| 	         $22cd = sTGM3GradeBoosts | ||||
| 	         $22ec = sTGM3LevelMultiplier | ||||
| 	         $22f0 = sTGM3BaselineCOOL | ||||
| 	         $22f9 = sTGM3REGRETConditions | ||||
| 	         $230d = sDMGTGrading | ||||
| 	SECTION: $23c1-$2563 ($01a3 bytes) ["Level Functions"] | ||||
| 	         $23c1 = LevelInit | ||||
| 	         $2411 = LevelUp | ||||
| 	         $2435 = LevelUp.doit | ||||
| 	         $2479 = LevelUp.checknlevel | ||||
| 	         $24a7 = !0 | ||||
| 	         $24bf = !1 | ||||
| 	         $24c8 = LevelUp.bellmaybe | ||||
| 	         $24da = LevelUp.leveljinglemaybe | ||||
| 	         $24e7 = LevelUp.checkspeedup | ||||
| 	         $24f8 = !2 | ||||
| 	         $2505 = !3 | ||||
| 	         $2516 = !4 | ||||
| 	         $2523 = DoSpeedUp | ||||
| 	SECTION: $2564-$2643 ($00e0 bytes) ["Score Functions"] | ||||
| 	         $2564 = ScoreInit | ||||
| 	         $258c = IncreaseScore | ||||
| 	         $25c4 = IncreaseScore.doConvert | ||||
| 	         $25c6 = !0 | ||||
| 	         $25dc = IncreaseScore.carry | ||||
| 	         $25de = IncreaseScore.postConvert | ||||
| 	         $25eb = !1 | ||||
| 	         $25f2 = IncreaseScore.preAddDigit | ||||
| 	         $261a = IncreaseScore.addDigit | ||||
| 	         $2630 = IncreaseScore.nextDigit | ||||
| 	SECTION: $2644-$2710 ($00cd bytes) ["Input Functions"] | ||||
| 	         $2644 = InputInit | ||||
| 	         $2656 = GetInput | ||||
| 	         $2656 = GetInput.btns | ||||
| 	         $2663 = GetInput.readA | ||||
| 	         $2667 = GetInput.setA | ||||
| 	         $2672 = GetInput.clearA | ||||
| 	         $2675 = GetInput.readB | ||||
| 	         $2679 = GetInput.setB | ||||
| 	         $2684 = GetInput.clearB | ||||
| 	         $2687 = GetInput.readSelect | ||||
| 	         $268b = GetInput.setSelect | ||||
| 	         $2696 = GetInput.clearSelect | ||||
| 	         $2699 = GetInput.readStart | ||||
| 	         $269d = GetInput.setStart | ||||
| 	         $26a8 = GetInput.clearStart | ||||
| 	         $26ab = GetInput.dpad | ||||
| 	         $26b8 = GetInput.readUp | ||||
| 	         $26bc = GetInput.setUp | ||||
| 	         $26c7 = GetInput.clearUp | ||||
| 	         $26ca = GetInput.readDown | ||||
| 	         $26ce = GetInput.setDown | ||||
| 	         $26d9 = GetInput.clearDown | ||||
| 	         $26dc = GetInput.readLeft | ||||
| 	         $26e0 = GetInput.setLeft | ||||
| 	         $26eb = GetInput.clearLeft | ||||
| 	         $26ee = GetInput.readRight | ||||
| 	         $26f2 = GetInput.setRight | ||||
| 	         $26fd = GetInput.clearRight | ||||
| 	         $2700 = GetInput.priorities | ||||
| 	         $270b = GetInput.zero | ||||
| 	SECTION: $2711-$27c7 ($00b7 bytes) ["SRAM Functions"] | ||||
| 	         $2711 = RestoreSRAM | ||||
| 	         $276a = InitializeSRAM | ||||
| 	SECTION: $27c8-$286b ($00a4 bytes) ["Code Entry Point"] | ||||
| 	         $27c8 = Main | ||||
| 	         $27dd = Main.wvr_u1 | ||||
| 	         $27e6 = !0 | ||||
| 	         $27f6 = Main.notgbc | ||||
| 	         $2825 = Main.wvb_u2 | ||||
| 	         $282a = !1 | ||||
| 	         $2830 = EventLoop | ||||
| 	         $2846 = EventLoop.eventloopjumps | ||||
| 	         $284f = EventLoopPostHandler | ||||
| 	         $2851 = EventLoopPostHandler.wvb_u3 | ||||
| 	         $2863 = EventLoopPostHandler.vblankjumps | ||||
| 	SECTION: $286c-$28df ($0074 bytes) ["Time Functions"] | ||||
| 	         $286c = TimeInit | ||||
| 	         $2881 = ResetGameTime | ||||
| 	         $288c = CheckTorikan | ||||
| 	         $28a3 = CheckTorikan.failure | ||||
| 	         $28a5 = CheckTorikan.success | ||||
| 	         $28a8 = HandleTimers | ||||
| 	SECTION: $28e0-$294d ($006e bytes) ["Title Function Trampolines"] | ||||
| 	         $28e0 = SwitchToTitle | ||||
| 	         $28ea = TitleEventLoopHandler | ||||
| 	         $28f4 = TitleVBlankHandler | ||||
| 	         $28fe = DrawOption6 | ||||
| 	SECTION: $294e-$299f ($0052 bytes) ["Tile Functions"] | ||||
| 	         $294e = LoadTitleTiles | ||||
| 	         $296c = LoadGameplayTiles | ||||
| 	         $2982 = LoadGameplayTiles.gbc | ||||
| 	         $2991 = LoadGameplayTiles.dmg | ||||
| 	SECTION: $29a0-$29cd ($002e bytes) ["Memory Functions"] | ||||
| 	         $29a0 = UnsafeMemCopy | ||||
| 	         $29a9 = SafeMemCopy.wvr_u1 | ||||
| 	         $29a9 = SafeMemCopy | ||||
| 	         $29b8 = UnsafeMemSet | ||||
| 	         $29c0 = SafeMemSet | ||||
| 	         $29c0 = SafeMemSet.wvr_u2 | ||||
| 	SECTION: $29ce-$29f5 ($0028 bytes) ["Gameplay Function Trampolines"] | ||||
| 	         $29ce = SwitchToGameplay | ||||
| 	         $29d8 = SwitchToGameplayBig | ||||
| 	         $29e2 = GamePlayEventLoopHandler | ||||
| 	         $29ec = GamePlayBigEventLoopHandler | ||||
| 	SECTION: $29f6-$2a17 ($0022 bytes) ["OAM Functions"] | ||||
| 	         $29f6 = CopyOAMHandler | ||||
| 	         $2a02 = ClearOAM | ||||
| 	SECTION: $2a18-$2a30 ($0019 bytes) ["Interrupt Initialization Functions"] | ||||
| 	         $2a18 = IntrInit | ||||
| 	         $2a1c = InitializeLCDCInterrupt | ||||
| 	SECTION: $2a31-$2a3a ($000a bytes) ["OAM DMA Code"] | ||||
| 	         $2a31 = OAMDMA | ||||
| 	         $2a3b = OAMDMAEnd | ||||
| 	EMPTY: $2a3b-$3fff ($15c5 bytes) | ||||
| 	TOTAL EMPTY: $15d0 bytes | ||||
| 
 | ||||
| ROMX bank #1: | ||||
| 	SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] | ||||
|  | @ -2232,32 +2233,32 @@ WRAM0 bank #0: | |||
| 	         $c82c = wSPRScore4 | ||||
| 	         $c830 = wSPRScore5 | ||||
| 	         $c834 = wSPRScore6 | ||||
| 	         $c838 = wSPRCLevel1 | ||||
| 	         $c83c = wSPRCLevel2 | ||||
| 	         $c840 = wSPRCLevel3 | ||||
| 	         $c844 = wSPRCLevel4 | ||||
| 	         $c848 = wSPRNLevel1 | ||||
| 	         $c84c = wSPRNLevel2 | ||||
| 	         $c850 = wSPRNLevel3 | ||||
| 	         $c854 = wSPRNLevel4 | ||||
| 	         $c858 = wSPRQueue1A | ||||
| 	         $c85c = wSPRQueue1B | ||||
| 	         $c860 = wSPRQueue2A | ||||
| 	         $c864 = wSPRQueue2B | ||||
| 	         $c868 = wSPRModeRNG | ||||
| 	         $c86c = wSPRModeRot | ||||
| 	         $c870 = wSPRModeDrop | ||||
| 	         $c874 = wSPRModeHiG | ||||
| 	         $c878 = wGrade0 | ||||
| 	         $c87c = wGrade1 | ||||
| 	         $c880 = wUnused0 | ||||
| 	         $c884 = wUnused1 | ||||
| 	         $c888 = wUnused2 | ||||
| 	         $c88c = wUnused3 | ||||
| 	         $c890 = wUnused4 | ||||
| 	         $c894 = wUnused5 | ||||
| 	         $c898 = wUnused6 | ||||
| 	         $c89c = wUnused7 | ||||
| 	         $c838 = wSPRScore7 | ||||
| 	         $c83c = wSPRScore8 | ||||
| 	         $c840 = wSPRCLevel1 | ||||
| 	         $c844 = wSPRCLevel2 | ||||
| 	         $c848 = wSPRCLevel3 | ||||
| 	         $c84c = wSPRCLevel4 | ||||
| 	         $c850 = wSPRNLevel1 | ||||
| 	         $c854 = wSPRNLevel2 | ||||
| 	         $c858 = wSPRNLevel3 | ||||
| 	         $c85c = wSPRNLevel4 | ||||
| 	         $c860 = wSPRQueue1A | ||||
| 	         $c864 = wSPRQueue1B | ||||
| 	         $c868 = wSPRQueue2A | ||||
| 	         $c86c = wSPRQueue2B | ||||
| 	         $c870 = wSPRModeRNG | ||||
| 	         $c874 = wSPRModeRot | ||||
| 	         $c878 = wSPRModeDrop | ||||
| 	         $c87c = wSPRModeHiG | ||||
| 	         $c880 = wSPRGrade1 | ||||
| 	         $c884 = wSPRGrade2 | ||||
| 	         $c888 = wUnused0 | ||||
| 	         $c88c = wUnused1 | ||||
| 	         $c890 = wUnused2 | ||||
| 	         $c894 = wUnused3 | ||||
| 	         $c898 = wUnused4 | ||||
| 	         $c89c = wUnused5 | ||||
| 	SECTION: $c8a0-$cd1e ($047f bytes) ["Field Variables"] | ||||
| 	         $c8a0 = wField | ||||
| 	         $c990 = wBackupField | ||||
|  | @ -2358,58 +2359,57 @@ HRAM bank #0: | |||
| 	         $ffab = hCLevel | ||||
| 	         $ffaf = hNLevel | ||||
| 	         $ffb5 = hPrevHundreds | ||||
| 	SECTION: $ffb6-$ffc4 ($000f bytes) ["Score Variables"] | ||||
| 	SECTION: $ffb6-$ffc7 ($0012 bytes) ["Score Variables"] | ||||
| 	         $ffb6 = hScore | ||||
| 	         $ffbc = hScoreIncrement | ||||
| 	         $ffbe = hScoreIncrementBCD | ||||
| 	         $ffc4 = hScoreIncrementHead | ||||
| 	SECTION: $ffc5-$ffcf ($000b bytes) ["High RNG Variables"] | ||||
| 	         $ffc5 = hRNGSeed | ||||
| 	         $ffc9 = hPieceHistory | ||||
| 	         $ffcd = hNextPiece | ||||
| 	         $ffce = hUpcomingPiece1 | ||||
| 	         $ffcf = hUpcomingPiece2 | ||||
| 	SECTION: $ffd0-$ffd9 ($000a bytes) ["High Gameplay Variables"] | ||||
| 	         $ffd0 = hCurrentPiece | ||||
| 	         $ffd1 = hCurrentPieceX | ||||
| 	         $ffd2 = hCurrentPieceY | ||||
| 	         $ffd3 = hCurrentPieceRotationState | ||||
| 	         $ffd4 = hHeldPiece | ||||
| 	         $ffd5 = hHoldSpent | ||||
| 	         $ffd6 = hMode | ||||
| 	         $ffd7 = hModeCounter | ||||
| 	         $ffd8 = hPrePause | ||||
| 	         $ffd9 = hRequestedJingle | ||||
| 	SECTION: $ffda-$ffe3 ($000a bytes) ["OAM DMA"] | ||||
| 	         $ffda = hOAMDMA | ||||
| 	         $ffe0 = !0 | ||||
| 	SECTION: $ffe4-$ffec ($0009 bytes) ["High SFX Variables"] | ||||
| 	         $ffe4 = hPlayhead | ||||
| 	         $ffe6 = hCurrentlyPlaying | ||||
| 	         $ffe7 = hPlayQueue | ||||
| 	         $ffeb = hNoisePlayhead | ||||
| 	SECTION: $ffed-$fff4 ($0008 bytes) ["High Input Variables"] | ||||
| 	         $ffed = hUpState | ||||
| 	         $ffee = hDownState | ||||
| 	         $ffef = hLeftState | ||||
| 	         $fff0 = hRightState | ||||
| 	         $fff1 = hAState | ||||
| 	         $fff2 = hBState | ||||
| 	         $fff3 = hStartState | ||||
| 	         $fff4 = hSelectState | ||||
| 	SECTION: $fff5-$fff6 ($0002 bytes) ["High Time Variables"] | ||||
| 	         $fff5 = hFrameCtr | ||||
| 	         $fff6 = hEvenFrame | ||||
| 	SECTION: $fff7-$fff7 ($0001 byte) ["High Globals"] | ||||
| 	         $fff7 = hGameState | ||||
| 	SECTION: $fff8-$fff8 ($0001 byte) ["High Interrupt Variables"] | ||||
| 	         $fff8 = hLCDCCtr | ||||
| 	EMPTY: $fff9-$fffe ($0006 bytes) | ||||
| 	TOTAL EMPTY: $0006 bytes | ||||
| 	         $ffbe = hScoreIncrement | ||||
| 	         $ffc0 = hScoreIncrementBCD | ||||
| 	SECTION: $ffc8-$ffd2 ($000b bytes) ["High RNG Variables"] | ||||
| 	         $ffc8 = hRNGSeed | ||||
| 	         $ffcc = hPieceHistory | ||||
| 	         $ffd0 = hNextPiece | ||||
| 	         $ffd1 = hUpcomingPiece1 | ||||
| 	         $ffd2 = hUpcomingPiece2 | ||||
| 	SECTION: $ffd3-$ffdc ($000a bytes) ["High Gameplay Variables"] | ||||
| 	         $ffd3 = hCurrentPiece | ||||
| 	         $ffd4 = hCurrentPieceX | ||||
| 	         $ffd5 = hCurrentPieceY | ||||
| 	         $ffd6 = hCurrentPieceRotationState | ||||
| 	         $ffd7 = hHeldPiece | ||||
| 	         $ffd8 = hHoldSpent | ||||
| 	         $ffd9 = hMode | ||||
| 	         $ffda = hModeCounter | ||||
| 	         $ffdb = hPrePause | ||||
| 	         $ffdc = hRequestedJingle | ||||
| 	SECTION: $ffdd-$ffe6 ($000a bytes) ["OAM DMA"] | ||||
| 	         $ffdd = hOAMDMA | ||||
| 	         $ffe3 = !0 | ||||
| 	SECTION: $ffe7-$ffef ($0009 bytes) ["High SFX Variables"] | ||||
| 	         $ffe7 = hPlayhead | ||||
| 	         $ffe9 = hCurrentlyPlaying | ||||
| 	         $ffea = hPlayQueue | ||||
| 	         $ffee = hNoisePlayhead | ||||
| 	SECTION: $fff0-$fff7 ($0008 bytes) ["High Input Variables"] | ||||
| 	         $fff0 = hUpState | ||||
| 	         $fff1 = hDownState | ||||
| 	         $fff2 = hLeftState | ||||
| 	         $fff3 = hRightState | ||||
| 	         $fff4 = hAState | ||||
| 	         $fff5 = hBState | ||||
| 	         $fff6 = hStartState | ||||
| 	         $fff7 = hSelectState | ||||
| 	SECTION: $fff8-$fff9 ($0002 bytes) ["High Time Variables"] | ||||
| 	         $fff8 = hFrameCtr | ||||
| 	         $fff9 = hEvenFrame | ||||
| 	SECTION: $fffa-$fffa ($0001 byte) ["High Globals"] | ||||
| 	         $fffa = hGameState | ||||
| 	SECTION: $fffb-$fffb ($0001 byte) ["High Interrupt Variables"] | ||||
| 	         $fffb = hLCDCCtr | ||||
| 	EMPTY: $fffc-$fffe ($0003 bytes) | ||||
| 	TOTAL EMPTY: $0003 bytes | ||||
| 
 | ||||
| SUMMARY: | ||||
| 	ROM0: 10700 bytes used / 5684 free | ||||
| 	ROM0: 10800 bytes used / 5584 free | ||||
| 	ROMX: 56508 bytes used / 41796 free in 6 banks | ||||
| 	SRAM: 14 bytes used / 8178 free in 1 bank | ||||
| 	WRAM0: 3503 bytes used / 593 free | ||||
| 	HRAM: 121 bytes used / 6 free | ||||
| 	HRAM: 124 bytes used / 3 free | ||||
|  |  | |||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										496
									
								
								bin/DMGTRIS.sym
								
								
								
								
							
							
						
						
									
										496
									
								
								bin/DMGTRIS.sym
								
								
								
								
							|  | @ -99,193 +99,194 @@ | |||
| 00:17d0 ApplyHold.postoffsets | ||||
| 00:17d4 ApplyHold.getoffh | ||||
| 00:17df ApplyHold.skipoffh | ||||
| 00:1819 ApplyNumbers6 | ||||
| 00:1841 ApplyNumbers4 | ||||
| 00:185d SetNumberSpritePositions | ||||
| 00:1944 GradeRendering | ||||
| 00:1979 GradeRendering.effect | ||||
| 00:1989 GradeRendering.noeffect | ||||
| 00:1991 GradeRendering.drawgrade | ||||
| 00:1998 GradeRendering.regulargrade | ||||
| 00:19a0 GradeRendering.sgrade | ||||
| 00:19b6 GradeRendering.hisgrade | ||||
| 00:19cc GradeRendering.mgrade | ||||
| 00:19e2 GradeRendering.lettergrade | ||||
| 00:19ff GradeRendering.mk | ||||
| 00:1a05 GradeRendering.mv | ||||
| 00:1a0b GradeRendering.mo | ||||
| 00:1a11 GradeRendering.mm | ||||
| 00:1a17 GradeRendering.gmgrade | ||||
| 00:1a22 GradeInit | ||||
| 00:1a4d GradeInit.grade9start | ||||
| 00:1a52 GradeInit.end | ||||
| 00:1a54 UpdateGrade | ||||
| 00:1a62 UpdateGrade.gradejumptable | ||||
| 00:1a74 DecayGradeProcess | ||||
| 00:1a82 DecayGradeProcess.gradejumptable | ||||
| 00:1a94 DecayGradeDelay | ||||
| 00:1aa2 DecayGradeDelay.gradejumptable | ||||
| 00:1ab4 PrepareScore | ||||
| 00:1acb UpdateGradeDMGT | ||||
| 00:1ae1 UpdateGradeDMGT.clearrate | ||||
| 00:1af2 UpdateGradeDMGT.combomult | ||||
| 00:1aff UpdateGradeDMGT.combo10 | ||||
| 00:1b10 UpdateGradeDMGT.combo5 | ||||
| 00:1b21 UpdateGradeDMGT.combo1 | ||||
| 00:1b30 UpdateGradeDMGT.prelevel | ||||
| 00:1b3f UpdateGradeDMGT.single | ||||
| 00:1b4f UpdateGradeDMGT.double | ||||
| 00:1b60 UpdateGradeDMGT.adddonce | ||||
| 00:1b64 UpdateGradeDMGT.triple | ||||
| 00:1b75 UpdateGradeDMGT.addtonce | ||||
| 00:1b79 UpdateGradeDMGT.tetris | ||||
| 00:1b7d UpdateGradeDMGT.levelmult | ||||
| 00:1b95 UpdateGradeDMGT.mult5 | ||||
| 00:1b9c UpdateGradeDMGT.mult4 | ||||
| 00:1ba2 UpdateGradeDMGT.mult3 | ||||
| 00:1ba7 UpdateGradeDMGT.mult2 | ||||
| 00:1bab UpdateGradeDMGT.mult1 | ||||
| 00:1bac UpdateGradeDMGT.processgrade | ||||
| 00:1bd0 UpdateGradeDMGT.increasegrademaybe | ||||
| 00:1bf1 UpdateGradeDMGT.gotgm | ||||
| 00:1bfc DecayGradeDMGT | ||||
| 00:1c1c DecayGradeDMGT.nodecay | ||||
| 00:1c21 DecayGradeDMGT.decay | ||||
| 00:1c2d UpdateGradeTGM1 | ||||
| 00:1c37 UpdateGradeTGM1.trygradeup | ||||
| 00:1c51 UpdateGradeTGM1.increasegrade | ||||
| 00:1c63 UpdateGradeTGM1.skipjingle | ||||
| 00:1c70 UpdateGradeTGM1.maybegm | ||||
| 00:1c86 UpdateGradeDEAT | ||||
| 00:1c92 UpdateGradeDEAT.notgm | ||||
| 00:1cab UpdateGradeDEAT.notm | ||||
| 00:1ccb UpdateGradeDEAT.disqualify | ||||
| 00:1cd1 UpdateGradeSHIR | ||||
| 00:1d11 UpdateGradeSHIR.s5torikan | ||||
| 00:1d21 UpdateGradeSHIR.s10torikan | ||||
| 00:1d30 UpdateGradeSHIR.disqualify | ||||
| 00:1d36 SFXInit | ||||
| 00:1d58 SFXPopQueue | ||||
| 00:1d6d SFXPushQueue | ||||
| 00:1d7e SFXProcessQueue | ||||
| 00:1dac SFXTriggerNoise | ||||
| 00:1dd2 SFXEnqueue | ||||
| 00:1de7 SFXEnqueue.findsfx | ||||
| 00:1f40 SFXKill | ||||
| 00:1f6b SFXPlayNoise | ||||
| 00:1f76 SFXPlayNoise.noisereg | ||||
| 00:1f8d SFXPlayNoise.savenoiseplayhead | ||||
| 00:1f96 SFXPlay | ||||
| 00:1fa4 SFXPlay.play | ||||
| 00:1fb0 SFXPlay.getRegister | ||||
| 00:1fc4 SFXPlay.savePlayhead | ||||
| 00:1fcd RNGInit | ||||
| 00:2018 RNGInit.complexinit | ||||
| 00:2049 ShiftHistory | ||||
| 00:2066 GetNextHellPiece | ||||
| 00:206b GetNextTGM1Piece | ||||
| 00:2088 GetNextTGM2Piece | ||||
| 00:20a5 GetNextNesPiece | ||||
| 00:20b3 GetNextTGM3Piece | ||||
| 00:216a GetNextPiece | ||||
| 00:2178 GetNextPiece.nextpiecejumps | ||||
| 00:2187 Next35Piece | ||||
| 00:2191 Next7Piece | ||||
| 00:219b NextByte | ||||
| 00:21bb sTGM1GradeScores | ||||
| 00:21dd sTGM3InternalGradeSystem | ||||
| 00:227d sTGM3GradeBoosts | ||||
| 00:229c sTGM3LevelMultiplier | ||||
| 00:22a0 sTGM3BaselineCOOL | ||||
| 00:22a9 sTGM3REGRETConditions | ||||
| 00:22bd sDMGTGrading | ||||
| 00:2371 LevelInit | ||||
| 00:23c1 LevelUp | ||||
| 00:23e5 LevelUp.doit | ||||
| 00:2429 LevelUp.checknlevel | ||||
| 00:2478 LevelUp.bellmaybe | ||||
| 00:248a LevelUp.leveljinglemaybe | ||||
| 00:2497 LevelUp.checkspeedup | ||||
| 00:24d3 DoSpeedUp | ||||
| 00:2514 InputInit | ||||
| 00:2526 GetInput | ||||
| 00:2526 GetInput.btns | ||||
| 00:2533 GetInput.readA | ||||
| 00:2537 GetInput.setA | ||||
| 00:2542 GetInput.clearA | ||||
| 00:2545 GetInput.readB | ||||
| 00:2549 GetInput.setB | ||||
| 00:2554 GetInput.clearB | ||||
| 00:2557 GetInput.readSelect | ||||
| 00:255b GetInput.setSelect | ||||
| 00:2566 GetInput.clearSelect | ||||
| 00:2569 GetInput.readStart | ||||
| 00:256d GetInput.setStart | ||||
| 00:2578 GetInput.clearStart | ||||
| 00:257b GetInput.dpad | ||||
| 00:2588 GetInput.readUp | ||||
| 00:258c GetInput.setUp | ||||
| 00:2597 GetInput.clearUp | ||||
| 00:259a GetInput.readDown | ||||
| 00:259e GetInput.setDown | ||||
| 00:25a9 GetInput.clearDown | ||||
| 00:25ac GetInput.readLeft | ||||
| 00:25b0 GetInput.setLeft | ||||
| 00:25bb GetInput.clearLeft | ||||
| 00:25be GetInput.readRight | ||||
| 00:25c2 GetInput.setRight | ||||
| 00:25cd GetInput.clearRight | ||||
| 00:25d0 GetInput.priorities | ||||
| 00:25db GetInput.zero | ||||
| 00:25e1 ScoreInit | ||||
| 00:2601 IncreaseScore | ||||
| 00:2635 IncreaseScore.doConvert | ||||
| 00:264d IncreaseScore.carry | ||||
| 00:264f IncreaseScore.postConvert | ||||
| 00:2663 IncreaseScore.preAddDigit | ||||
| 00:2683 IncreaseScore.addDigit | ||||
| 00:2699 IncreaseScore.nextDigit | ||||
| 00:26ad RestoreSRAM | ||||
| 00:2706 InitializeSRAM | ||||
| 00:2764 Main | ||||
| 00:2779 Main.wvr_u1 | ||||
| 00:2792 Main.notgbc | ||||
| 00:27c1 Main.wvb_u2 | ||||
| 00:27cc EventLoop | ||||
| 00:27e2 EventLoop.eventloopjumps | ||||
| 00:27eb EventLoopPostHandler | ||||
| 00:27ed EventLoopPostHandler.wvb_u3 | ||||
| 00:27ff EventLoopPostHandler.vblankjumps | ||||
| 00:2808 TimeInit | ||||
| 00:281d ResetGameTime | ||||
| 00:2828 CheckTorikan | ||||
| 00:283f CheckTorikan.failure | ||||
| 00:2841 CheckTorikan.success | ||||
| 00:2844 HandleTimers | ||||
| 00:287c SwitchToTitle | ||||
| 00:2886 TitleEventLoopHandler | ||||
| 00:2890 TitleVBlankHandler | ||||
| 00:289a DrawOption6 | ||||
| 00:28ea LoadTitleTiles | ||||
| 00:2908 LoadGameplayTiles | ||||
| 00:291e LoadGameplayTiles.gbc | ||||
| 00:292d LoadGameplayTiles.dmg | ||||
| 00:293c UnsafeMemCopy | ||||
| 00:2945 SafeMemCopy.wvr_u1 | ||||
| 00:2945 SafeMemCopy | ||||
| 00:2954 UnsafeMemSet | ||||
| 00:295c SafeMemSet | ||||
| 00:295c SafeMemSet.wvr_u2 | ||||
| 00:296a SwitchToGameplay | ||||
| 00:2974 SwitchToGameplayBig | ||||
| 00:297e GamePlayEventLoopHandler | ||||
| 00:2988 GamePlayBigEventLoopHandler | ||||
| 00:2992 CopyOAMHandler | ||||
| 00:299e ClearOAM | ||||
| 00:29b4 IntrInit | ||||
| 00:29b8 InitializeLCDCInterrupt | ||||
| 00:29cd OAMDMA | ||||
| 00:29d7 OAMDMAEnd | ||||
| 00:1819 ApplyNumbers8 | ||||
| 00:184d ApplyNumbers6 | ||||
| 00:1875 ApplyNumbers4 | ||||
| 00:1891 SetNumberSpritePositions | ||||
| 00:1998 GradeRendering | ||||
| 00:19cd GradeRendering.effect | ||||
| 00:19dd GradeRendering.noeffect | ||||
| 00:19e5 GradeRendering.drawgrade | ||||
| 00:19ec GradeRendering.regulargrade | ||||
| 00:19f4 GradeRendering.sgrade | ||||
| 00:1a0a GradeRendering.hisgrade | ||||
| 00:1a20 GradeRendering.mgrade | ||||
| 00:1a36 GradeRendering.lettergrade | ||||
| 00:1a53 GradeRendering.mk | ||||
| 00:1a59 GradeRendering.mv | ||||
| 00:1a5f GradeRendering.mo | ||||
| 00:1a65 GradeRendering.mm | ||||
| 00:1a6b GradeRendering.gmgrade | ||||
| 00:1a76 GradeInit | ||||
| 00:1aa1 GradeInit.grade9start | ||||
| 00:1aa6 GradeInit.end | ||||
| 00:1aa8 UpdateGrade | ||||
| 00:1ab6 UpdateGrade.gradejumptable | ||||
| 00:1ac8 DecayGradeProcess | ||||
| 00:1ad6 DecayGradeProcess.gradejumptable | ||||
| 00:1ae8 DecayGradeDelay | ||||
| 00:1af6 DecayGradeDelay.gradejumptable | ||||
| 00:1b08 PrepareScore | ||||
| 00:1b1b UpdateGradeDMGT | ||||
| 00:1b31 UpdateGradeDMGT.clearrate | ||||
| 00:1b42 UpdateGradeDMGT.combomult | ||||
| 00:1b4f UpdateGradeDMGT.combo10 | ||||
| 00:1b60 UpdateGradeDMGT.combo5 | ||||
| 00:1b71 UpdateGradeDMGT.combo1 | ||||
| 00:1b80 UpdateGradeDMGT.prelevel | ||||
| 00:1b8f UpdateGradeDMGT.single | ||||
| 00:1b9f UpdateGradeDMGT.double | ||||
| 00:1bb0 UpdateGradeDMGT.adddonce | ||||
| 00:1bb4 UpdateGradeDMGT.triple | ||||
| 00:1bc5 UpdateGradeDMGT.addtonce | ||||
| 00:1bc9 UpdateGradeDMGT.tetris | ||||
| 00:1bcd UpdateGradeDMGT.levelmult | ||||
| 00:1be5 UpdateGradeDMGT.mult5 | ||||
| 00:1bec UpdateGradeDMGT.mult4 | ||||
| 00:1bf2 UpdateGradeDMGT.mult3 | ||||
| 00:1bf7 UpdateGradeDMGT.mult2 | ||||
| 00:1bfb UpdateGradeDMGT.mult1 | ||||
| 00:1bfc UpdateGradeDMGT.processgrade | ||||
| 00:1c20 UpdateGradeDMGT.increasegrademaybe | ||||
| 00:1c41 UpdateGradeDMGT.gotgm | ||||
| 00:1c4c DecayGradeDMGT | ||||
| 00:1c6c DecayGradeDMGT.nodecay | ||||
| 00:1c71 DecayGradeDMGT.decay | ||||
| 00:1c7d UpdateGradeTGM1 | ||||
| 00:1c87 UpdateGradeTGM1.trygradeup | ||||
| 00:1ca1 UpdateGradeTGM1.increasegrade | ||||
| 00:1cb3 UpdateGradeTGM1.skipjingle | ||||
| 00:1cc0 UpdateGradeTGM1.maybegm | ||||
| 00:1cd6 UpdateGradeDEAT | ||||
| 00:1ce2 UpdateGradeDEAT.notgm | ||||
| 00:1cfb UpdateGradeDEAT.notm | ||||
| 00:1d1b UpdateGradeDEAT.disqualify | ||||
| 00:1d21 UpdateGradeSHIR | ||||
| 00:1d61 UpdateGradeSHIR.s5torikan | ||||
| 00:1d71 UpdateGradeSHIR.s10torikan | ||||
| 00:1d80 UpdateGradeSHIR.disqualify | ||||
| 00:1d86 SFXInit | ||||
| 00:1da8 SFXPopQueue | ||||
| 00:1dbd SFXPushQueue | ||||
| 00:1dce SFXProcessQueue | ||||
| 00:1dfc SFXTriggerNoise | ||||
| 00:1e22 SFXEnqueue | ||||
| 00:1e37 SFXEnqueue.findsfx | ||||
| 00:1f90 SFXKill | ||||
| 00:1fbb SFXPlayNoise | ||||
| 00:1fc6 SFXPlayNoise.noisereg | ||||
| 00:1fdd SFXPlayNoise.savenoiseplayhead | ||||
| 00:1fe6 SFXPlay | ||||
| 00:1ff4 SFXPlay.play | ||||
| 00:2000 SFXPlay.getRegister | ||||
| 00:2014 SFXPlay.savePlayhead | ||||
| 00:201d RNGInit | ||||
| 00:2068 RNGInit.complexinit | ||||
| 00:2099 ShiftHistory | ||||
| 00:20b6 GetNextHellPiece | ||||
| 00:20bb GetNextTGM1Piece | ||||
| 00:20d8 GetNextTGM2Piece | ||||
| 00:20f5 GetNextNesPiece | ||||
| 00:2103 GetNextTGM3Piece | ||||
| 00:21ba GetNextPiece | ||||
| 00:21c8 GetNextPiece.nextpiecejumps | ||||
| 00:21d7 Next35Piece | ||||
| 00:21e1 Next7Piece | ||||
| 00:21eb NextByte | ||||
| 00:220b sTGM1GradeScores | ||||
| 00:222d sTGM3InternalGradeSystem | ||||
| 00:22cd sTGM3GradeBoosts | ||||
| 00:22ec sTGM3LevelMultiplier | ||||
| 00:22f0 sTGM3BaselineCOOL | ||||
| 00:22f9 sTGM3REGRETConditions | ||||
| 00:230d sDMGTGrading | ||||
| 00:23c1 LevelInit | ||||
| 00:2411 LevelUp | ||||
| 00:2435 LevelUp.doit | ||||
| 00:2479 LevelUp.checknlevel | ||||
| 00:24c8 LevelUp.bellmaybe | ||||
| 00:24da LevelUp.leveljinglemaybe | ||||
| 00:24e7 LevelUp.checkspeedup | ||||
| 00:2523 DoSpeedUp | ||||
| 00:2564 ScoreInit | ||||
| 00:258c IncreaseScore | ||||
| 00:25c4 IncreaseScore.doConvert | ||||
| 00:25dc IncreaseScore.carry | ||||
| 00:25de IncreaseScore.postConvert | ||||
| 00:25f2 IncreaseScore.preAddDigit | ||||
| 00:261a IncreaseScore.addDigit | ||||
| 00:2630 IncreaseScore.nextDigit | ||||
| 00:2644 InputInit | ||||
| 00:2656 GetInput | ||||
| 00:2656 GetInput.btns | ||||
| 00:2663 GetInput.readA | ||||
| 00:2667 GetInput.setA | ||||
| 00:2672 GetInput.clearA | ||||
| 00:2675 GetInput.readB | ||||
| 00:2679 GetInput.setB | ||||
| 00:2684 GetInput.clearB | ||||
| 00:2687 GetInput.readSelect | ||||
| 00:268b GetInput.setSelect | ||||
| 00:2696 GetInput.clearSelect | ||||
| 00:2699 GetInput.readStart | ||||
| 00:269d GetInput.setStart | ||||
| 00:26a8 GetInput.clearStart | ||||
| 00:26ab GetInput.dpad | ||||
| 00:26b8 GetInput.readUp | ||||
| 00:26bc GetInput.setUp | ||||
| 00:26c7 GetInput.clearUp | ||||
| 00:26ca GetInput.readDown | ||||
| 00:26ce GetInput.setDown | ||||
| 00:26d9 GetInput.clearDown | ||||
| 00:26dc GetInput.readLeft | ||||
| 00:26e0 GetInput.setLeft | ||||
| 00:26eb GetInput.clearLeft | ||||
| 00:26ee GetInput.readRight | ||||
| 00:26f2 GetInput.setRight | ||||
| 00:26fd GetInput.clearRight | ||||
| 00:2700 GetInput.priorities | ||||
| 00:270b GetInput.zero | ||||
| 00:2711 RestoreSRAM | ||||
| 00:276a InitializeSRAM | ||||
| 00:27c8 Main | ||||
| 00:27dd Main.wvr_u1 | ||||
| 00:27f6 Main.notgbc | ||||
| 00:2825 Main.wvb_u2 | ||||
| 00:2830 EventLoop | ||||
| 00:2846 EventLoop.eventloopjumps | ||||
| 00:284f EventLoopPostHandler | ||||
| 00:2851 EventLoopPostHandler.wvb_u3 | ||||
| 00:2863 EventLoopPostHandler.vblankjumps | ||||
| 00:286c TimeInit | ||||
| 00:2881 ResetGameTime | ||||
| 00:288c CheckTorikan | ||||
| 00:28a3 CheckTorikan.failure | ||||
| 00:28a5 CheckTorikan.success | ||||
| 00:28a8 HandleTimers | ||||
| 00:28e0 SwitchToTitle | ||||
| 00:28ea TitleEventLoopHandler | ||||
| 00:28f4 TitleVBlankHandler | ||||
| 00:28fe DrawOption6 | ||||
| 00:294e LoadTitleTiles | ||||
| 00:296c LoadGameplayTiles | ||||
| 00:2982 LoadGameplayTiles.gbc | ||||
| 00:2991 LoadGameplayTiles.dmg | ||||
| 00:29a0 UnsafeMemCopy | ||||
| 00:29a9 SafeMemCopy.wvr_u1 | ||||
| 00:29a9 SafeMemCopy | ||||
| 00:29b8 UnsafeMemSet | ||||
| 00:29c0 SafeMemSet | ||||
| 00:29c0 SafeMemSet.wvr_u2 | ||||
| 00:29ce SwitchToGameplay | ||||
| 00:29d8 SwitchToGameplayBig | ||||
| 00:29e2 GamePlayEventLoopHandler | ||||
| 00:29ec GamePlayBigEventLoopHandler | ||||
| 00:29f6 CopyOAMHandler | ||||
| 00:2a02 ClearOAM | ||||
| 00:2a18 IntrInit | ||||
| 00:2a1c InitializeLCDCInterrupt | ||||
| 00:2a31 OAMDMA | ||||
| 00:2a3b OAMDMAEnd | ||||
| 01:4008 sDMGTSpeedCurve | ||||
| 01:4210 sDMGTSpeedCurveEnd | ||||
| 01:4212 sTGM1SpeedCurve | ||||
|  | @ -1921,32 +1922,32 @@ | |||
| 00:c82c wSPRScore4 | ||||
| 00:c830 wSPRScore5 | ||||
| 00:c834 wSPRScore6 | ||||
| 00:c838 wSPRCLevel1 | ||||
| 00:c83c wSPRCLevel2 | ||||
| 00:c840 wSPRCLevel3 | ||||
| 00:c844 wSPRCLevel4 | ||||
| 00:c848 wSPRNLevel1 | ||||
| 00:c84c wSPRNLevel2 | ||||
| 00:c850 wSPRNLevel3 | ||||
| 00:c854 wSPRNLevel4 | ||||
| 00:c858 wSPRQueue1A | ||||
| 00:c85c wSPRQueue1B | ||||
| 00:c860 wSPRQueue2A | ||||
| 00:c864 wSPRQueue2B | ||||
| 00:c868 wSPRModeRNG | ||||
| 00:c86c wSPRModeRot | ||||
| 00:c870 wSPRModeDrop | ||||
| 00:c874 wSPRModeHiG | ||||
| 00:c878 wGrade0 | ||||
| 00:c87c wGrade1 | ||||
| 00:c880 wUnused0 | ||||
| 00:c884 wUnused1 | ||||
| 00:c888 wUnused2 | ||||
| 00:c88c wUnused3 | ||||
| 00:c890 wUnused4 | ||||
| 00:c894 wUnused5 | ||||
| 00:c898 wUnused6 | ||||
| 00:c89c wUnused7 | ||||
| 00:c838 wSPRScore7 | ||||
| 00:c83c wSPRScore8 | ||||
| 00:c840 wSPRCLevel1 | ||||
| 00:c844 wSPRCLevel2 | ||||
| 00:c848 wSPRCLevel3 | ||||
| 00:c84c wSPRCLevel4 | ||||
| 00:c850 wSPRNLevel1 | ||||
| 00:c854 wSPRNLevel2 | ||||
| 00:c858 wSPRNLevel3 | ||||
| 00:c85c wSPRNLevel4 | ||||
| 00:c860 wSPRQueue1A | ||||
| 00:c864 wSPRQueue1B | ||||
| 00:c868 wSPRQueue2A | ||||
| 00:c86c wSPRQueue2B | ||||
| 00:c870 wSPRModeRNG | ||||
| 00:c874 wSPRModeRot | ||||
| 00:c878 wSPRModeDrop | ||||
| 00:c87c wSPRModeHiG | ||||
| 00:c880 wSPRGrade1 | ||||
| 00:c884 wSPRGrade2 | ||||
| 00:c888 wUnused0 | ||||
| 00:c88c wUnused1 | ||||
| 00:c890 wUnused2 | ||||
| 00:c894 wUnused3 | ||||
| 00:c898 wUnused4 | ||||
| 00:c89c wUnused5 | ||||
| 00:c8a0 wField | ||||
| 00:c990 wBackupField | ||||
| 00:ca80 wPreShadowField | ||||
|  | @ -2033,38 +2034,37 @@ | |||
| 00:ffaf hNLevel | ||||
| 00:ffb5 hPrevHundreds | ||||
| 00:ffb6 hScore | ||||
| 00:ffbc hScoreIncrement | ||||
| 00:ffbe hScoreIncrementBCD | ||||
| 00:ffc4 hScoreIncrementHead | ||||
| 00:ffc5 hRNGSeed | ||||
| 00:ffc9 hPieceHistory | ||||
| 00:ffcd hNextPiece | ||||
| 00:ffce hUpcomingPiece1 | ||||
| 00:ffcf hUpcomingPiece2 | ||||
| 00:ffd0 hCurrentPiece | ||||
| 00:ffd1 hCurrentPieceX | ||||
| 00:ffd2 hCurrentPieceY | ||||
| 00:ffd3 hCurrentPieceRotationState | ||||
| 00:ffd4 hHeldPiece | ||||
| 00:ffd5 hHoldSpent | ||||
| 00:ffd6 hMode | ||||
| 00:ffd7 hModeCounter | ||||
| 00:ffd8 hPrePause | ||||
| 00:ffd9 hRequestedJingle | ||||
| 00:ffda hOAMDMA | ||||
| 00:ffe4 hPlayhead | ||||
| 00:ffe6 hCurrentlyPlaying | ||||
| 00:ffe7 hPlayQueue | ||||
| 00:ffeb hNoisePlayhead | ||||
| 00:ffed hUpState | ||||
| 00:ffee hDownState | ||||
| 00:ffef hLeftState | ||||
| 00:fff0 hRightState | ||||
| 00:fff1 hAState | ||||
| 00:fff2 hBState | ||||
| 00:fff3 hStartState | ||||
| 00:fff4 hSelectState | ||||
| 00:fff5 hFrameCtr | ||||
| 00:fff6 hEvenFrame | ||||
| 00:fff7 hGameState | ||||
| 00:fff8 hLCDCCtr | ||||
| 00:ffbe hScoreIncrement | ||||
| 00:ffc0 hScoreIncrementBCD | ||||
| 00:ffc8 hRNGSeed | ||||
| 00:ffcc hPieceHistory | ||||
| 00:ffd0 hNextPiece | ||||
| 00:ffd1 hUpcomingPiece1 | ||||
| 00:ffd2 hUpcomingPiece2 | ||||
| 00:ffd3 hCurrentPiece | ||||
| 00:ffd4 hCurrentPieceX | ||||
| 00:ffd5 hCurrentPieceY | ||||
| 00:ffd6 hCurrentPieceRotationState | ||||
| 00:ffd7 hHeldPiece | ||||
| 00:ffd8 hHoldSpent | ||||
| 00:ffd9 hMode | ||||
| 00:ffda hModeCounter | ||||
| 00:ffdb hPrePause | ||||
| 00:ffdc hRequestedJingle | ||||
| 00:ffdd hOAMDMA | ||||
| 00:ffe7 hPlayhead | ||||
| 00:ffe9 hCurrentlyPlaying | ||||
| 00:ffea hPlayQueue | ||||
| 00:ffee hNoisePlayhead | ||||
| 00:fff0 hUpState | ||||
| 00:fff1 hDownState | ||||
| 00:fff2 hLeftState | ||||
| 00:fff3 hRightState | ||||
| 00:fff4 hAState | ||||
| 00:fff5 hBState | ||||
| 00:fff6 hStartState | ||||
| 00:fff7 hSelectState | ||||
| 00:fff8 hFrameCtr | ||||
| 00:fff9 hEvenFrame | ||||
| 00:fffa hGameState | ||||
| 00:fffb hLCDCCtr | ||||
|  |  | |||
|  | @ -4341,7 +4341,6 @@ BigFieldDelay:: | |||
|     sub a, 2          ; - 2 | ||||
|     ldh [hComboCt], a | ||||
| 
 | ||||
| 
 | ||||
|     ; Line clear delay. | ||||
|     ; Count down the delay. If we're out of delay, clear the lines and go to LINE_ARE. | ||||
| .lineclear | ||||
|  |  | |||
|  | @ -310,15 +310,15 @@ DecayGradeDelay:: | |||
| 
 | ||||
|     ; Get the four most significant figures of the score in BC as BCD. | ||||
| PrepareScore: | ||||
|     ld a, [hScore+3] | ||||
|     ldh a, [hScore+SCORE_HUNDREDS] | ||||
|     ld b, a | ||||
|     ld a, [hScore+2] | ||||
|     ldh a, [hScore+SCORE_THOUSANDS] | ||||
|     swap a | ||||
|     or b | ||||
|     ld c, a | ||||
|     ld a, [hScore+1] | ||||
|     ldh a, [hScore+SCORE_TENTHOUSANDS] | ||||
|     ld b, a | ||||
|     ld a, [hScore] | ||||
|     ldh a, [hScore+SCORE_HUNDREDTHOUSANDS] | ||||
|     swap a | ||||
|     or b | ||||
|     ld b, a | ||||
|  | @ -457,10 +457,10 @@ UpdateGradeDMGT:: | |||
|     ; What is our level multiplier? | ||||
|     ; Running counter is in in D now. | ||||
| .levelmult | ||||
|     ld a, [hCLevel] ; thousands | ||||
|     ld a, [hCLevel+CLEVEL_THOUSANDS] ; thousands | ||||
|     cp a, 1 | ||||
|     jr nc, .mult5 | ||||
|     ld a, [hCLevel+1] ; hundreds | ||||
|     ld a, [hCLevel+CLEVEL_HUNDREDS] ; hundreds | ||||
|     cp a, 7 | ||||
|     jr nc, .mult4 | ||||
|     cp a, 5 | ||||
|  | @ -685,7 +685,7 @@ UpdateGradeTGM1: | |||
| 
 | ||||
| .maybegm | ||||
|     ; Level needs to be 1000 or greater. | ||||
|     ld a, [hCLevel] ; Level, thousands digit. | ||||
|     ld a, [hCLevel+CLEVEL_THOUSANDS] ; Level, thousands digit. | ||||
|     cp a, 1 | ||||
|     ret c | ||||
| 
 | ||||
|  | @ -722,7 +722,7 @@ UpdateGradeDEAT: | |||
|     jr nz, .notm | ||||
| 
 | ||||
|     ; We should be GM if we're at or past level 1000. | ||||
|     ldh a, [hCLevel] ; Level, thousands digit. | ||||
|     ldh a, [hCLevel+CLEVEL_THOUSANDS] ; Level, thousands digit. | ||||
|     cp a, 1 | ||||
|     ret c ; If less than 1000, return. | ||||
| 
 | ||||
|  | @ -741,7 +741,7 @@ UpdateGradeDEAT: | |||
| 
 | ||||
| .notm | ||||
|     ; If we're not M, check if we should be M. | ||||
|     ldh a, [hCLevel+1] ; Level, hundreds digit. | ||||
|     ldh a, [hCLevel+CLEVEL_HUNDREDS] ; Level, hundreds digit. | ||||
|     cp a, 5 | ||||
|     ret c ; If less than 500, return. | ||||
| 
 | ||||
|  | @ -786,13 +786,13 @@ UpdateGradeSHIR: | |||
|     ret z | ||||
| 
 | ||||
|     ; We don't give out a grade until level 100. | ||||
|     ldh a, [hCLevel+1] ; Level, hundreds digit. | ||||
|     ldh a, [hCLevel+CLEVEL_HUNDREDS] ; Level, hundreds digit. | ||||
|     cp a, 0 | ||||
|     ret z | ||||
| 
 | ||||
|     ; Get the hundreds and thousands of the level as a hex number. | ||||
|     ld b, a ; Hundreds | ||||
|     ldh a, [hCLevel] ; Thousands | ||||
|     ldh a, [hCLevel+CLEVEL_THOUSANDS] ; Thousands | ||||
|     swap a | ||||
|     or b | ||||
| 
 | ||||
|  |  | |||
|  | @ -176,7 +176,7 @@ DEF HOLD_BASE_X         EQU 100 | |||
| DEF HOLD_BASE_Y         EQU 77 | ||||
| DEF QUEUE_BASE_X        EQU 133 | ||||
| DEF QUEUE_BASE_Y        EQU 35 | ||||
| DEF SCORE_BASE_X        EQU 112 | ||||
| DEF SCORE_BASE_X        EQU 99 | ||||
| DEF SCORE_BASE_Y        EQU 112 | ||||
| DEF LEVEL_BASE_X        EQU 112 | ||||
| DEF CLEVEL_BASE_Y       EQU 133 | ||||
|  | @ -372,5 +372,23 @@ DEF MODE_GAME_OVER          EQU 21 | |||
| DEF MODE_PRE_GAME_OVER      EQU 24 | ||||
| DEF MODE_PAUSED             EQU 27 | ||||
| 
 | ||||
| ; Helpers to avoid magic numbers | ||||
| DEF SCORE_ONES              EQU 7 | ||||
| DEF SCORE_TENS              EQU 6 | ||||
| DEF SCORE_HUNDREDS          EQU 5 | ||||
| DEF SCORE_THOUSANDS         EQU 4 | ||||
| DEF SCORE_TENTHOUSANDS      EQU 3 | ||||
| DEF SCORE_HUNDREDTHOUSANDS  EQU 2 | ||||
| DEF SCORE_MILLIONS          EQU 1 | ||||
| DEF SCORE_TENMILLIONSS      EQU 0 | ||||
| DEF CLEVEL_THOUSANDS        EQU 0 | ||||
| DEF CLEVEL_HUNDREDS         EQU 1 | ||||
| DEF CLEVEL_TENS             EQU 2 | ||||
| DEF CLEVEL_ONES             EQU 3 | ||||
| DEF NLEVEL_THOUSANDS        EQU 0 | ||||
| DEF NLEVEL_HUNDREDS         EQU 1 | ||||
| DEF NLEVEL_TENS             EQU 2 | ||||
| DEF NLEVEL_ONES             EQU 3 | ||||
| 
 | ||||
| 
 | ||||
| ENDC | ||||
|  |  | |||
|  | @ -23,10 +23,9 @@ INCLUDE "globals.asm" | |||
| 
 | ||||
| 
 | ||||
| SECTION "Score Variables", HRAM | ||||
| hScore:: ds 6 | ||||
| hScoreIncrement:: ds 2 | ||||
| hScoreIncrementBCD:: ds 6 | ||||
| hScoreIncrementHead:: ds 1 | ||||
| hScore::             ds 8 | ||||
| hScoreIncrement::    ds 2 | ||||
| hScoreIncrementBCD:: ds 8 | ||||
| 
 | ||||
| 
 | ||||
| SECTION "Score Functions", ROM0 | ||||
|  | @ -39,6 +38,8 @@ ScoreInit:: | |||
|     ldh [hScore+3], a | ||||
|     ldh [hScore+4], a | ||||
|     ldh [hScore+5], a | ||||
|     ldh [hScore+6], a | ||||
|     ldh [hScore+7], a | ||||
|     ldh [hScoreIncrement], a | ||||
|     ldh [hScoreIncrement+1], a | ||||
|     ld a, $FF | ||||
|  | @ -48,6 +49,8 @@ ScoreInit:: | |||
|     ldh [hScoreIncrementBCD+3], a | ||||
|     ldh [hScoreIncrementBCD+4], a | ||||
|     ldh [hScoreIncrementBCD+5], a | ||||
|     ldh [hScoreIncrementBCD+6], a | ||||
|     ldh [hScoreIncrementBCD+7], a | ||||
|     ret | ||||
| 
 | ||||
| 
 | ||||
|  | @ -61,6 +64,8 @@ IncreaseScore:: | |||
|     ldh [hScoreIncrementBCD+3], a | ||||
|     ldh [hScoreIncrementBCD+4], a | ||||
|     ldh [hScoreIncrementBCD+5], a | ||||
|     ldh [hScoreIncrementBCD+6], a | ||||
|     ldh [hScoreIncrementBCD+7], a | ||||
| 
 | ||||
|     ; First convert to BCD. | ||||
|     ldh a, [hScoreIncrement] | ||||
|  | @ -112,17 +117,21 @@ IncreaseScore:: | |||
|     ld [hl+], a | ||||
|     ld [hl], a | ||||
| 
 | ||||
|     ld de, hScoreIncrementBCD+5 | ||||
|     ld hl, hScoreIncrementBCD+7 | ||||
|     ld b, 0 | ||||
|     ld a, $FF | ||||
| :   cp a, b | ||||
| :   cp a, [hl] | ||||
|     jr nz, .preAddDigit | ||||
|     inc b | ||||
|     dec de | ||||
|     dec hl | ||||
|     jr :- | ||||
| 
 | ||||
| .preAddDigit | ||||
|     ; B contains the amount of times we need to shift the BCD score to the right. | ||||
|     ldh a, [hScoreIncrementBCD+6] | ||||
|     ldh [hScoreIncrementBCD+7], a | ||||
|     ldh a, [hScoreIncrementBCD+5] | ||||
|     ldh [hScoreIncrementBCD+6], a | ||||
|     ldh a, [hScoreIncrementBCD+4] | ||||
|     ldh [hScoreIncrementBCD+5], a | ||||
|     ldh a, [hScoreIncrementBCD+3] | ||||
|  | @ -136,9 +145,9 @@ IncreaseScore:: | |||
|     xor a, a | ||||
|     ldh [hScoreIncrementBCD], a | ||||
|     dec b | ||||
|     jr z, :- | ||||
|     ld hl, hScore+5 | ||||
|     ld de, hScoreIncrementBCD+5 | ||||
|     jr nz, .preAddDigit | ||||
|     ld hl, hScore+7 | ||||
|     ld de, hScoreIncrementBCD+7 | ||||
| 
 | ||||
|     ; DE is now pointing to the last digit of the BCD score. | ||||
|     ; HL points at the last digit of the displayed score. | ||||
|  | @ -156,8 +165,8 @@ IncreaseScore:: | |||
|     cp a, $0A | ||||
|     jr c, .nextDigit | ||||
| 
 | ||||
|     ; Except if this is the 6th digit. | ||||
|     ld a, 5 | ||||
|     ; Except if this is the 8th digit. | ||||
|     ld a, 7 | ||||
|     cp a, b | ||||
|     jr z, .nextDigit | ||||
| 
 | ||||
|  | @ -175,7 +184,7 @@ IncreaseScore:: | |||
|     dec hl | ||||
| 
 | ||||
|     ; Check if we're out of numbers. | ||||
|     ld a, 5 | ||||
|     ld a, 7 | ||||
|     cp a, b | ||||
|     jr nz, .addDigit | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										140
									
								
								src/sprites.asm
								
								
								
								
							
							
						
						
									
										140
									
								
								src/sprites.asm
								
								
								
								
							|  | @ -40,6 +40,8 @@ wSPRScore3::   ds 4 | |||
| wSPRScore4::   ds 4 | ||||
| wSPRScore5::   ds 4 | ||||
| wSPRScore6::   ds 4 | ||||
| wSPRScore7::   ds 4 | ||||
| wSPRScore8::   ds 4 | ||||
| wSPRCLevel1::  ds 4 | ||||
| wSPRCLevel2::  ds 4 | ||||
| wSPRCLevel3::  ds 4 | ||||
|  | @ -56,16 +58,14 @@ wSPRModeRNG::  ds 4 | |||
| wSPRModeRot::  ds 4 | ||||
| wSPRModeDrop:: ds 4 | ||||
| wSPRModeHiG::  ds 4 | ||||
| wGrade0::      ds 4 | ||||
| wGrade1::      ds 4 | ||||
| wSPRGrade1::   ds 4 | ||||
| wSPRGrade2::   ds 4 | ||||
| wUnused0::     ds 4 | ||||
| wUnused1::     ds 4 | ||||
| wUnused2::     ds 4 | ||||
| wUnused3::     ds 4 | ||||
| wUnused4::     ds 4 | ||||
| wUnused5::     ds 4 | ||||
| wUnused6::     ds 4 | ||||
| wUnused7::     ds 4 | ||||
| ENDU | ||||
| 
 | ||||
| 
 | ||||
|  | @ -381,6 +381,64 @@ ApplyHold:: | |||
|     ret | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     ; Generic function to draw a BCD number (8 digits) as 8 sprites. | ||||
|     ; Address of first sprite in hl. | ||||
|     ; Address of first digit in de. | ||||
| ApplyNumbers8:: | ||||
|     inc hl | ||||
|     inc hl | ||||
|     ld bc, 4 | ||||
| 
 | ||||
|     ld a, [de] | ||||
|     add a, TILE_0 | ||||
|     ld [hl], a | ||||
|     add hl, bc | ||||
|     inc de | ||||
| 
 | ||||
|     ld a, [de] | ||||
|     add a, TILE_0 | ||||
|     ld [hl], a | ||||
|     add hl, bc | ||||
|     inc de | ||||
| 
 | ||||
|     ld a, [de] | ||||
|     add a, TILE_0 | ||||
|     ld [hl], a | ||||
|     add hl, bc | ||||
|     inc de | ||||
| 
 | ||||
|     ld a, [de] | ||||
|     add a, TILE_0 | ||||
|     ld [hl], a | ||||
|     add hl, bc | ||||
|     inc de | ||||
| 
 | ||||
|     ld a, [de] | ||||
|     add a, TILE_0 | ||||
|     ld [hl], a | ||||
|     add hl, bc | ||||
|     inc de | ||||
| 
 | ||||
|     ld a, [de] | ||||
|     add a, TILE_0 | ||||
|     ld [hl], a | ||||
|     add hl, bc | ||||
|     inc de | ||||
| 
 | ||||
|     ld a, [de] | ||||
|     add a, TILE_0 | ||||
|     ld [hl], a | ||||
|     add hl, bc | ||||
|     inc de | ||||
| 
 | ||||
|     ld a, [de] | ||||
|     add a, TILE_0 | ||||
|     ld [hl], a | ||||
|     ret | ||||
| 
 | ||||
| 
 | ||||
|     ; Generic function to draw a BCD number (6 digits) as 6 sprites. | ||||
|     ; Address of first sprite in hl. | ||||
|     ; Address of first digit in de. | ||||
|  | @ -528,6 +586,30 @@ SetNumberSpritePositions:: | |||
|     ld [hl], a | ||||
|     inc hl | ||||
|     inc hl | ||||
|     ld b, a | ||||
|     ld a, OAMF_PAL1 | $07 | ||||
|     ld [hl], a | ||||
|     ld a, b | ||||
|     add a, 8 | ||||
| 
 | ||||
|     ld hl, wSPRScore7 | ||||
|     ld [hl], SCORE_BASE_Y | ||||
|     inc hl | ||||
|     ld [hl], a | ||||
|     inc hl | ||||
|     inc hl | ||||
|     ld b, a | ||||
|     ld a, OAMF_PAL1 | $07 | ||||
|     ld [hl], a | ||||
|     ld a, b | ||||
|     add a, 8 | ||||
| 
 | ||||
|     ld hl, wSPRScore8 | ||||
|     ld [hl], SCORE_BASE_Y | ||||
|     inc hl | ||||
|     ld [hl], a | ||||
|     inc hl | ||||
|     inc hl | ||||
|     ld a, OAMF_PAL1 | $07 | ||||
|     ld [hl], a | ||||
| 
 | ||||
|  | @ -633,22 +715,22 @@ SetNumberSpritePositions:: | |||
| GradeRendering:: | ||||
|     ; Set the Y position of the grade objects. | ||||
|     ld a, GRADE_BASE_Y | ||||
|     ld [wGrade0], a | ||||
|     ld [wGrade1], a | ||||
|     ld [wSPRGrade1], a | ||||
|     ld [wSPRGrade2], a | ||||
| 
 | ||||
|     ; Set the X position of the grade objects. | ||||
|     ldh a, [rSCX] | ||||
|     ld b, a | ||||
|     ld a, GRADE_BASE_X | ||||
|     sub a, b | ||||
|     ld [wGrade0+1], a | ||||
|     ld [wSPRGrade1+1], a | ||||
|     add a, 9 | ||||
|     ld [wGrade1+1], a | ||||
|     ld [wSPRGrade2+1], a | ||||
| 
 | ||||
|     ; Set the grades to blank | ||||
|     ld a, TILE_BLANK | ||||
|     ld [wGrade0+2], a | ||||
|     ld [wGrade1+2], a | ||||
|     ld [wSPRGrade1+2], a | ||||
|     ld [wSPRGrade2+2], a | ||||
| 
 | ||||
|     ; If our grade is GRADE_NONE, we don't need to do anything else. | ||||
|     ld a, [wDisplayedGrade] | ||||
|  | @ -667,19 +749,19 @@ GradeRendering:: | |||
| 
 | ||||
|     ; Cycle the palette of the grade objects. | ||||
| .effect | ||||
|     ld a, [wGrade0+3] | ||||
|     ld a, [wSPRGrade1+3] | ||||
|     inc a | ||||
|     and a, OAMF_PALMASK | ||||
|     or a, OAMF_PAL1 | ||||
|     ld [wGrade0+3], a | ||||
|     ld [wGrade1+3], a | ||||
|     ld [wSPRGrade1+3], a | ||||
|     ld [wSPRGrade2+3], a | ||||
|     jr .drawgrade | ||||
| 
 | ||||
|     ; Set the palette of the grade objects to the normal palette. | ||||
| .noeffect | ||||
|     ld a, 7 | OAMF_PAL1 | ||||
|     ld [wGrade0+3], a | ||||
|     ld [wGrade1+3], a | ||||
|     ld [wSPRGrade1+3], a | ||||
|     ld [wSPRGrade2+3], a | ||||
| 
 | ||||
|     ; Do we draw this as a regular grade? | ||||
| .drawgrade | ||||
|  | @ -692,7 +774,7 @@ GradeRendering:: | |||
|     ld b, a | ||||
|     ld a, "9" | ||||
|     sub a, b | ||||
|     ld [wGrade1+2], a | ||||
|     ld [wSPRGrade2+2], a | ||||
|     ret | ||||
| 
 | ||||
| .sgrade | ||||
|  | @ -702,13 +784,13 @@ GradeRendering:: | |||
| 
 | ||||
|     ; Draw as S grade. | ||||
|     ld a, "S" | ||||
|     ld [wGrade0+2], a | ||||
|     ld [wSPRGrade1+2], a | ||||
|     ld a, [wDisplayedGrade] | ||||
|     sub a, GRADE_S1 | ||||
|     ld b, a | ||||
|     ld a, "1" | ||||
|     add a, b | ||||
|     ld [wGrade1+2], a | ||||
|     ld [wSPRGrade2+2], a | ||||
|     ret | ||||
| 
 | ||||
| .hisgrade | ||||
|  | @ -718,13 +800,13 @@ GradeRendering:: | |||
| 
 | ||||
|     ; Draw as high S grade. | ||||
|     ld a, "S" | ||||
|     ld [wGrade0+2], a | ||||
|     ld [wSPRGrade1+2], a | ||||
|     ld a, [wDisplayedGrade] | ||||
|     sub a, GRADE_S10 | ||||
|     ld b, a | ||||
|     ld a, "a" | ||||
|     add a, b | ||||
|     ld [wGrade1+2], a | ||||
|     ld [wSPRGrade2+2], a | ||||
|     ret | ||||
| 
 | ||||
| .mgrade | ||||
|  | @ -734,13 +816,13 @@ GradeRendering:: | |||
| 
 | ||||
|     ; Draw as m grade. | ||||
|     ld a, "m" | ||||
|     ld [wGrade0+2], a | ||||
|     ld [wSPRGrade1+2], a | ||||
|     ld a, [wDisplayedGrade] | ||||
|     sub a, GRADE_M1 | ||||
|     ld b, a | ||||
|     ld a, "1" | ||||
|     add a, b | ||||
|     ld [wGrade1+2], a | ||||
|     ld [wSPRGrade2+2], a | ||||
|     ret | ||||
| 
 | ||||
| .lettergrade | ||||
|  | @ -750,7 +832,7 @@ GradeRendering:: | |||
| 
 | ||||
|     ; Draw as MX grade. | ||||
|     ld a, "M" | ||||
|     ld [wGrade0+2], a | ||||
|     ld [wSPRGrade1+2], a | ||||
|     ld a, [wDisplayedGrade] | ||||
|     cp a, GRADE_M | ||||
|     ret z ; No second letter for M. | ||||
|  | @ -766,30 +848,30 @@ GradeRendering:: | |||
| 
 | ||||
| .mk | ||||
|     ld a, "K" | ||||
|     ld [wGrade1+2], a | ||||
|     ld [wSPRGrade2+2], a | ||||
|     ret | ||||
| 
 | ||||
| .mv | ||||
|     ld a, "V" | ||||
|     ld [wGrade1+2], a | ||||
|     ld [wSPRGrade2+2], a | ||||
|     ret | ||||
| 
 | ||||
| .mo | ||||
|     ld a, "O" | ||||
|     ld [wGrade1+2], a | ||||
|     ld [wSPRGrade2+2], a | ||||
|     ret | ||||
| 
 | ||||
| .mm | ||||
|     ld a, "M" | ||||
|     ld [wGrade1+2], a | ||||
|     ld [wSPRGrade2+2], a | ||||
|     ret | ||||
| 
 | ||||
| .gmgrade | ||||
|     ; Draw as GM grade. | ||||
|     ld a, "G" | ||||
|     ld [wGrade0+2], a | ||||
|     ld [wSPRGrade1+2], a | ||||
|     ld a, "M" | ||||
|     ld [wGrade1+2], a | ||||
|     ld [wSPRGrade2+2], a | ||||
|     ret | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -614,7 +614,7 @@ GamePlayEventLoopHandlerB:: | |||
| 
 | ||||
|     ld hl, wSPRScore1 | ||||
|     ld de, hScore | ||||
|     call ApplyNumbers6 | ||||
|     call ApplyNumbers8 | ||||
| 
 | ||||
|     ld hl, wSPRCLevel1 | ||||
|     ld de, hCLevel | ||||
|  | @ -1243,7 +1243,7 @@ GamePlayBigEventLoopHandlerB: | |||
| 
 | ||||
|     ld hl, wSPRScore1 | ||||
|     ld de, hScore | ||||
|     call ApplyNumbers6 | ||||
|     call ApplyNumbers8 | ||||
| 
 | ||||
|     ld hl, wSPRCLevel1 | ||||
|     ld de, hCLevel | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue