summaryrefslogtreecommitdiff
path: root/home/play_time.asm
diff options
context:
space:
mode:
Diffstat (limited to 'home/play_time.asm')
-rw-r--r--home/play_time.asm71
1 files changed, 71 insertions, 0 deletions
diff --git a/home/play_time.asm b/home/play_time.asm
new file mode 100644
index 00000000..d6c95fbd
--- /dev/null
+++ b/home/play_time.asm
@@ -0,0 +1,71 @@
+TrackPlayTime::
+ call CountDownIgnoreInputBitReset
+ ld hl, wd47a
+ bit 0, [hl]
+ jr nz, .maxIGT
+ ld a, [wd732]
+ bit 0, a
+ ret z
+ ld a, [wPlayTimeMaxed]
+ and a
+ ret nz
+ ld a, [wPlayTimeFrames]
+ inc a
+ ld [wPlayTimeFrames], a
+ cp 60
+ ret nz
+ xor a
+ ld [wPlayTimeFrames], a
+ ld a, [wPlayTimeSeconds]
+ inc a
+ ld [wPlayTimeSeconds], a
+ cp 60
+ ret nz
+ xor a
+ ld [wPlayTimeSeconds], a
+ ld a, [wPlayTimeMinutes]
+ inc a
+ ld [wPlayTimeMinutes], a
+ cp 60
+ ret nz
+ xor a
+ ld [wPlayTimeMinutes], a
+ ld a, [wPlayTimeHours]
+ inc a
+ ld [wPlayTimeHours], a
+ cp $ff
+ ret nz
+ ld hl, wd47a
+ set 0, [hl]
+.maxIGT
+ ld a, 59
+ ld [wPlayTimeSeconds], a
+ ld [wPlayTimeMinutes], a
+ ld a, $ff
+ ld [wPlayTimeHours], a
+ ld [wPlayTimeMaxed], a
+ ret
+
+CountDownIgnoreInputBitReset:
+ ld a, [wIgnoreInputCounter]
+ and a
+ jr nz, .asm_1f5e
+ ld a, $ff
+ jr .asm_1f5f
+.asm_1f5e
+ dec a
+.asm_1f5f
+ ld [wIgnoreInputCounter], a
+ and a
+ ret nz
+ ld a, [wd730]
+ res 1, a
+ res 2, a
+ bit 5, a
+ res 5, a
+ ld [wd730], a
+ ret z
+ xor a
+ ldh [hJoyPressed], a
+ ldh [hJoyHeld], a
+ ret