Open apstygo opened 21 hours ago
This issue means the disassembler tried to symbolize the address 0x000001E0
but that address isn't valid according to your yaml.
The address space of PS2 games usually start around 0x00100000
, which is way bigger than 0x000001E0
.
Did you specify a gp_value
in your yaml? If you didn't, then try to look anywhere in code where the assembly is setting the value for the $gp
register. Look for patterns that have that register as the destination:
Pattern one:
lui $gp, %hi(D_XXXXYYYY)
// There may be extra instructions in the middle
addiu $gp, $gp, %lo(D_XXXXYYYY)
Pattern two:
lui $a0, %hi(D_XXXXYYYY)
addiu $a0, $a0, %lo(D_XXXXYYYY)
daddu $gp, $a0, $zero
etc. You are looking for instructions that have the $gp
register as the leftmost register (usually the dst register).
Once you have found this value, you have to specify it on your yaml and run splat again:
options:
# Other options...
gp_value: 0xXXXXYYYY
If this doesn't fix the issue then please post your yaml and/or a link to a repo so we can try debug this issue.
Hello!
I am trying to decompile a PS2 binary and I'm getting a lot of errors in the assembly files similar to this one:
What am I supposed to do about this error? How do I tell splat what the valid address space is? I know the heap and stack sizes at runtime but there seems to be no way of configuring them in splat.