mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-23 13:09:44 +00:00
18f2bde385
Having `platform: psx` will not correctly disassemble PSP functions with opcodes that are not part of the R3000 (the PSX CPU) architecture. These functions would be disassembled by Splat as a bunch of `.word 0xBLAHBLAH`. Changing the platform to `psp` introduces all sort of new challenges. Function prototypes needs to be declared earlier. But also the MWCC compiler will not accept the `%lo` and `%hi` dialect from GNU AS. There were some patches on `mwcpp.py` to use `la SYMBOL_NAME` that would expand into a `lui / addiu` combo. But even though symbols needs to be declared like function prototypes at the top of the file. This is simply not feasible on bigger overlays. As a solution to the problem above, I replaced the existing patches by converting instructions into `.word`. The overlay cannot longer be relocated with this approach, but it is not an issue as the final goal is to decompile these functions any way. The labels in the jump table has the same problem, which forced me to change the segment type from `rodata` to `data. This is just another single step to create the conditions to start including bigger re-compilable PSP overlays. I am sure the `mwcpp.py` solution will be thrown into the bin at some point, but this PR improves our current situation. |
||
---|---|---|
.. | ||
saturn | ||
check.hd.sha | ||
check.pspeu.sha | ||
check.saturn.sha | ||
check.us.sha | ||
dirt.hd.json | ||
dirt.pspeu.json | ||
dirt.saturn.json | ||
dirt.us.json | ||
disk.us.lba | ||
gfx.game.json | ||
splat.hd.dra.yaml | ||
splat.hd.tt_000.yaml | ||
splat.pspeu.tt_000.yaml | ||
splat.us.dra.yaml | ||
splat.us.main.yaml | ||
splat.us.ric.yaml | ||
splat.us.stcen.yaml | ||
splat.us.stdre.yaml | ||
splat.us.stmad.yaml | ||
splat.us.stno3.yaml | ||
splat.us.stnp3.yaml | ||
splat.us.stnz0.yaml | ||
splat.us.strwrp.yaml | ||
splat.us.stsel.yaml | ||
splat.us.stst0.yaml | ||
splat.us.stwrp.yaml | ||
splat.us.tt_000.yaml | ||
splat.us.weapon.yaml | ||
symbols.beta.txt | ||
symbols.hd.dra.txt | ||
symbols.hd.tt_000.txt | ||
symbols.hd.txt | ||
symbols.pspeu.tt_000.txt | ||
symbols.pspeu.txt | ||
symbols.stmad.txt | ||
symbols.us.dra.txt | ||
symbols.us.main.txt | ||
symbols.us.ric.txt | ||
symbols.us.stcen.txt | ||
symbols.us.stdre.txt | ||
symbols.us.stno3.txt | ||
symbols.us.stnp3.txt | ||
symbols.us.stnz0.txt | ||
symbols.us.strwrp.txt | ||
symbols.us.stsel.txt | ||
symbols.us.stst0.txt | ||
symbols.us.stwrp.txt | ||
symbols.us.tt_000.txt | ||
symbols.us.txt | ||
symbols.us.weapon.txt | ||
symbols.us.weapon.txt.in | ||
undefined_syms.beta.txt | ||
undefined_syms.hd.txt | ||
undefined_syms.pspeu.txt | ||
undefined_syms.us.txt |