diff --git a/F3DZEX.asm b/F3DZEX.asm index 271128c..f6b2089 100644 --- a/F3DZEX.asm +++ b/F3DZEX.asm @@ -179,7 +179,10 @@ fill 0xD0 origin 0x0000 base 0x1000 - j label_1054 +// quirk with the addressing used in the boot file: +constant BOOT_IMEM_ADDR(0xA4000000) // doesn't affect functionality + + j label_1054 | BOOT_IMEM_ADDR addi at, r0, TASK_START label_1008: @@ -195,7 +198,7 @@ label_1020: mfc0 a0, DMA_BUSY // wait until it finishes bnez a0,- nop - jal func_103C // check error status + jal func_103C | BOOT_IMEM_ADDR // check error status nop jr a3 // jump to the new code we just loaded mtc0 r0, SEMAPHORE @@ -219,7 +222,7 @@ label_1054: andi v0, v0, 2 // check flag 1 beqz v0,+ nop - jal func_103C + jal func_103C | BOOT_IMEM_ADDR nop mfc0 v0, RDP_STATUS @@ -243,9 +246,9 @@ label_1080: mfc0 a0, DMA_BUSY // wait until it finishes bnez a0,- nop - jal func_103C // check error status + jal func_103C | BOOT_IMEM_ADDR // check error status nop - j label_1008 + j label_1008 | BOOT_IMEM_ADDR nop nop diff --git a/bin/.gitignore b/bin/.gitignore index 64f15a6..88f5125 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -3,4 +3,3 @@ # files without disassemblies yet: !6102.bin !F3DZEX.data.bin -!common.boot.bin diff --git a/bin/common.boot.bin b/bin/common.boot.bin deleted file mode 100644 index a6013bf..0000000 Binary files a/bin/common.boot.bin and /dev/null differ diff --git a/task.asm b/task.asm index 8af114e..ec18dcc 100644 --- a/task.asm +++ b/task.asm @@ -65,8 +65,7 @@ PushRSPTask: LoadRSPBoot: la t2, UCODE_BOOT & ADDR_MASK - li t3, UCODE_BOOT.size - subiu t3, t3, 1 // DMA quirk + li t3, UCODE_BOOT.size - 1 // DMA quirk SP_DMA_WAIT() // clobbers t0, a0 la t1, 0xA4001000 sw t1, SP_MEM_ADDR(a0) @@ -75,6 +74,6 @@ LoadRSPBoot: jr ra nop -align(16); insert UCODE_BOOT, "bin/common.boot.bin" +align(16); insert UCODE_BOOT, "bin/F3DZEX2.boot.bin" align(16); insert F3DZEX_IMEM, "bin/F3DZEX2.bin" align(16); insert F3DZEX_DMEM, "bin/F3DZEX2.data.bin"