Welp, why reverse-engineer the hash format when you can just disable the hash check entirely.
I got lucky. Using the memory breakpoint at the address of the chart's hash, I quickly found the code that compares the hash against the computed hash. I then replaced the instructions that execute when the integrity test fails with nops. DJ Hero can now load custom charts.
Props to the dev team for the nice debugger, and to WiiBrew for the PPC assembler reference.
Gecko Code to disable the chart integrity test and allow loading custom charts.
For DJ Hero NTSC (SWAE52). Tested in Dolphin, haven't tested on a Real Wii yet.
I got lucky. Using the memory breakpoint at the address of the chart's hash, I quickly found the code that compares the hash against the computed hash. I then replaced the instructions that execute when the integrity test fails with nops. DJ Hero can now load custom charts.
Props to the dev team for the nice debugger, and to WiiBrew for the PPC assembler reference.
Gecko Code to disable the chart integrity test and allow loading custom charts.
For DJ Hero NTSC (SWAE52). Tested in Dolphin, haven't tested on a Real Wii yet.
Code:
$Enable Custom Charts [shockdude]
042acaf4 60000000
042acaf8 60000000
*Enable loading custom charts by disabling the game's chart integrity check.
