diff options
| author | Michael M <mchtly@gmail.com> | 2017-08-10 10:42:53 -0700 |
|---|---|---|
| committer | Michael M <mchtly@gmail.com> | 2017-08-10 10:53:12 -0700 |
| commit | fcb1eb9d3b45265c998f00f540bb2a0cb3c246b7 (patch) | |
| tree | 98c93860b78b811dea8696bedee601a348237462 /docs | |
| parent | f2a9ad0089dc051d020e57af843c44c6562590cd (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.ds | 3 | ||||
| -rw-r--r-- | docs/DSP/free_dsp_rom/dsp_rom_readme.txt | 10 |
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)
-------------------------------------------------------
|
