summaryrefslogtreecommitdiff
path: root/home/double_speed.asm
blob: 4bb6e1253fb148bc0a14f9f1aecd6c46e62605df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
; The CGB hardware introduces Double Speed Mode.
; While active, the clock speed is doubled.

; The hardware can switch between normal speed
; and double speed at any time, but LCD output
; collapses during the switch.

DoubleSpeed:: ; 2fef
	ld hl, rKEY1
	bit 7, [hl]
	jr z, SwitchSpeed
	ret
; 2ff7

NormalSpeed:: ; 2ff7
	ld hl, rKEY1
	bit 7, [hl]
	ret z
; 2ffd

SwitchSpeed:: ; 2ffd
	set 0, [hl]
	xor a
	ld [rIF], a
	ld [rIE], a
	ld a, $30
	ld [rJOYP], a
	stop ; rgbasm adds a nop after this instruction by default
	ret
; 300b