summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorMichael M <mchtly@gmail.com>2017-08-10 10:42:53 -0700
committerMichael M <mchtly@gmail.com>2017-08-10 10:53:12 -0700
commitfcb1eb9d3b45265c998f00f540bb2a0cb3c246b7 (patch)
tree98c93860b78b811dea8696bedee601a348237462 /docs
parentf2a9ad0089dc051d020e57af843c44c6562590cd (diff)
dsp_rom: skip bootucode_ax when running from entrypoint
This could cause the first branch of the bootucode procedure, which takes its parameters from the AX registers, to run during the ROM init sequence. Since the ROM doesn't set any of the AX registers, the values aren't meaningful, and can cause bad DMA transfers and crashes.
Diffstat (limited to 'docs')
-rw-r--r--docs/DSP/free_dsp_rom/dsp_rom.ds3
-rw-r--r--docs/DSP/free_dsp_rom/dsp_rom_readme.txt10
2 files changed, 12 insertions, 1 deletions
diff --git a/docs/DSP/free_dsp_rom/dsp_rom.ds b/docs/DSP/free_dsp_rom/dsp_rom.ds
index bf94ac49a4..7e845f8a02 100644
--- a/docs/DSP/free_dsp_rom/dsp_rom.ds
+++ b/docs/DSP/free_dsp_rom/dsp_rom.ds
@@ -55,7 +55,8 @@ param5:
jnz mainloop+#IROM_BASE
call wait_for_cpu_mbox+#IROM_BASE
lr $AR0, @CMBL
- jmp 0x80b5
+ ; skip the branch of bootucode that uses the AX registers
+ jmp bootucode_ix+#IROM_BASE
wait_dma:
lrs $AC0.M, @DSCR
diff --git a/docs/DSP/free_dsp_rom/dsp_rom_readme.txt b/docs/DSP/free_dsp_rom/dsp_rom_readme.txt
index 8a3ff8c79b..51ee21eba3 100644
--- a/docs/DSP/free_dsp_rom/dsp_rom_readme.txt
+++ b/docs/DSP/free_dsp_rom/dsp_rom_readme.txt
@@ -1,3 +1,13 @@
+Legal GC/WII DSP IROM replacement (v0.3.1)
+-------------------------------------------------------
+
+- irom: When running from the ROM entrypoint, skip the bootucode_ax branch
+ of the bootucode procedure. Since the ROM doesn't set any of the AX
+ registers, it could cause bad DMA transfers and crashes.
+
+ligfx
+10/aug/2017
+
Legal GC/WII DSP IROM replacement (v0.3)
-------------------------------------------------------