; DEBUG = 11480-118B0
;
; 11480-11490 = CD1 LBA / CD2 LBA / CD3 LBA / CD4 LBA
; 11490-114A0 = DVD5 state / CD #
; 114A0-11510 = address -> time LBA remap
; 11510-11560 = address -> time DVD5 remap
; 11560-115xx = time -> address LBA remap



;80062744 : 00651821  ADDU    00000028 (v1), 00000028 (v1), 00000008 (a1),
;80062748 : 00431021  ADDU    00047a18 (v0), 00047a18 (v0), 00000030 (v1),
;-->
;8006274c : 03E00008  JR      80064d08 (ra),
;80062750 : 2442FF6A  ADDIU   00047a48 (v0), 00047a48 (v0), ff6a (65386),
;-->


org $80011560

; OLD code

addiu v0,v0,$ff6a

; ======================
; ======================
; ======================
; ======================

; Ignore directory code
;lui a1,$801e
;ori a1,a1,$8d48
;bne ra,a1,EXIT
;nop

; avoid LBA range (0-17)
sltiu a1,v0,$18
bne a1,r0,EXIT
nop

; avoid LBA range (90AE6+)
lui a0,$9
ori a0,a0,$0ae6
sltu a1,v0,a0
beq a1,r0,EXIT
nop



; load CD # (0-3)
lui a0,$8008
lbu a1,$2a5c(a0)
nop

; load from LBA table
lui a0,$8001
sll a1,a1,2
addu a0,a0,a1
lw v1,$1480(a0)
nop

; move v0 to 'zero offset'
subu v0,v0,v1

; move v0 to 'fixed LBA offset'
addiu v0,v0,$18




; check for 160+ minutes
;lui v1,$a
;ori v1,v1,$fc80
;sltu a0,v0,v1
;bne a0,r0,EXIT
;nop

lui a0,$8001
lw a0,$1490(a0)
nop
beq a0,r0,EXIT

; re-adjust for 160+ minutes
lui v1,$a
ori v1,v1,$fc80
addu v0,v0,v1

; ======================
; ======================
; ======================
; ======================

; OLD code

EXIT:

jr ra
nop
