; DEBUG = 10F90-113D0, 113F0-11800
;
; 10F90-10FB0 = CD1 LBA / CD2 LBA / CD3 LBA / CD4 LBA / CD #
; 10FB0-11030 = address -> time LBA remap
; 11030-11090 = address -> time DVD5 remap
; 11090-11xxx = time -> address LBA remap



;8005ee6c : 00651821  ADDU    00000046 (v1), 00000046 (v1), 00000001 (a1),
;8005ee70 : 00431021  ADDU    00033dfb (v0), 00033dfb (v0), 00000047 (v1),
;-->
;8005ee74 : 03E00008  JR      8001f540 (ra),
;8005ee78 : 2442FF6A  ADDIU   00033e42 (v0), 00033e42 (v0), ff6a (65386),
;-->


org $80011090


; 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 (95445+)
lui a0,$9
ori a0,a0,$5445
sltu a1,v0,a0
beq a1,r0,EXIT
nop



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

; load from LBA table
lui a0,$8001
sll a1,a1,2
addu a0,a0,a1
lw v1,$0f90(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

; re-adjust for 160+ minutes
addu v0,v0,v1

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

; OLD code

EXIT:

jr ra
addiu v0,v0,$ff6a
