Merge pull request #5912 from ligfx/fixdspreset
dsp_rom: skip bootucode_ax when running from entrypoint
This commit is contained in:
commit
d30b87947c
Binary file not shown.
|
@ -41,22 +41,26 @@ static bool VerifyRoms()
|
||||||
u32 hash_drom; // dsp_coef.bin
|
u32 hash_drom; // dsp_coef.bin
|
||||||
};
|
};
|
||||||
|
|
||||||
static const std::array<DspRomHashes, 5> known_roms = {
|
static const std::array<DspRomHashes, 6> known_roms = {{
|
||||||
{// Official Nintendo ROM
|
// Official Nintendo ROM
|
||||||
{0x66f334fe, 0xf3b93527},
|
{0x66f334fe, 0xf3b93527},
|
||||||
|
|
||||||
// LM1234 replacement ROM (Zelda UCode only)
|
// LM1234 replacement ROM (Zelda UCode only)
|
||||||
{0x9c8f593c, 0x10000001},
|
{0x9c8f593c, 0x10000001},
|
||||||
|
|
||||||
// delroth's improvement on LM1234 replacement ROM (Zelda and AX only,
|
// delroth's improvement on LM1234 replacement ROM (Zelda and AX only,
|
||||||
// IPL/Card/GBA still broken)
|
// IPL/Card/GBA still broken)
|
||||||
{0xd9907f71, 0xb019c2fb},
|
{0xd9907f71, 0xb019c2fb},
|
||||||
|
|
||||||
// above with improved resampling coefficients
|
// above with improved resampling coefficients
|
||||||
{0xd9907f71, 0xdb6880c1},
|
{0xd9907f71, 0xdb6880c1},
|
||||||
|
|
||||||
// above with support for GBA ucode
|
// above with support for GBA ucode
|
||||||
{0x3aa4a793, 0xa4a575f5}}};
|
{0x3aa4a793, 0xa4a575f5},
|
||||||
|
|
||||||
|
// above with fix to skip bootucode_ax when running from ROM entrypoint
|
||||||
|
{0x128ea7a2, 0xa4a575f5},
|
||||||
|
}};
|
||||||
|
|
||||||
u32 hash_irom = HashAdler32((u8*)g_dsp.irom, DSP_IROM_BYTE_SIZE);
|
u32 hash_irom = HashAdler32((u8*)g_dsp.irom, DSP_IROM_BYTE_SIZE);
|
||||||
u32 hash_drom = HashAdler32((u8*)g_dsp.coef, DSP_COEF_BYTE_SIZE);
|
u32 hash_drom = HashAdler32((u8*)g_dsp.coef, DSP_COEF_BYTE_SIZE);
|
||||||
|
|
|
@ -55,7 +55,8 @@ param5:
|
||||||
jnz mainloop+#IROM_BASE
|
jnz mainloop+#IROM_BASE
|
||||||
call wait_for_cpu_mbox+#IROM_BASE
|
call wait_for_cpu_mbox+#IROM_BASE
|
||||||
lr $AR0, @CMBL
|
lr $AR0, @CMBL
|
||||||
jmp 0x80b5
|
; skip the branch of bootucode that uses the AX registers
|
||||||
|
jmp bootucode_ix+#IROM_BASE
|
||||||
|
|
||||||
wait_dma:
|
wait_dma:
|
||||||
lrs $AC0.M, @DSCR
|
lrs $AC0.M, @DSCR
|
||||||
|
|
|
@ -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)
|
Legal GC/WII DSP IROM replacement (v0.3)
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue