2013-09-08 07:14:24 +00:00
|
|
|
; 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.
|
|
|
|
|
2014-02-02 01:26:39 +00:00
|
|
|
DoubleSpeed:: ; 2fef
|
2013-09-08 07:14:24 +00:00
|
|
|
ld hl, rKEY1
|
|
|
|
bit 7, [hl]
|
|
|
|
jr z, SwitchSpeed
|
|
|
|
ret
|
|
|
|
; 2ff7
|
|
|
|
|
2014-02-02 01:26:39 +00:00
|
|
|
NormalSpeed:: ; 2ff7
|
2013-09-08 07:14:24 +00:00
|
|
|
ld hl, rKEY1
|
|
|
|
bit 7, [hl]
|
|
|
|
ret z
|
|
|
|
; 2ffd
|
|
|
|
|
2014-02-02 01:26:39 +00:00
|
|
|
SwitchSpeed:: ; 2ffd
|
2013-09-08 07:14:24 +00:00
|
|
|
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
|
|
|
|
|