Skip to content

Unrecognized Instructions using XenonRecomp for Heavy Weapon #63

@Fanaticalight

Description

@Fanaticalight

So far, I've had some great success at finding the addresses needed for the vmx, gprlr, fpr and 64 addreses. Currently I'm trying to learn how to go about piecing together the functions in the .toml input for XenonRecomp to get rid of the switch cases errors (and failing pretty bad, but a start is a start.)

Though, I ran into some output regarding unrecognized instructions. For example, the output looks like this.

Unrecognized instruction at 0x8211291C: fnmadd...
Unrecognized instruction at 0x8218CA18: vandc...
Unrecognized instruction at 0x821E09DC: vpkswss...
Unrecognized instruction at 0x82210D20: vsububm...
Unrecognized instruction at 0x82210D4C: vsrab...
Unrecognized instruction at 0x8226A0E0: vcmpgtsh. # this has a period at the end
Unrecognized instruction at 0x8226A0F4: vcmpgtsw. # so does this one

I could list more, but so far, it failed to recognize the following instructions:
fnmadd, vandc, mulhd, vpkswss, vsububm, vsrab, vaddsbs, vspltish, vsubshs, vslh, vminsh, vmaxsh, vsrah, vcmpgtsh, vpkshss, vcmpequh. , vsrh, vctuxs, vpkswus, vpkuhus, vcfpuxws128, eqv, vaddsws, vcmpgtsh. , vcmpgtsw. , vcmpequh, vsel128, lhbrx, vminsw, stvebx, vavgsw, vrlh, vsubsbs, vslo, cror, crorc, vavguh

Interestingly, it also outputted a few odd outputs in the log.
vcmpgtuh. at 82695940 has RC bit enabled but no comparison was generated

Here is the full Terminal output for those wanting to view it: XenonRecompOutput.txt

As far as I know, I don't believe I need to swap the read tables.

Here is SWA.toml's contents.

[main]
file_path = "../Recompile/HeavyWeapon/default.xex"
out_directory_path = "../ppc"
switch_table_file_path = "SWA_switch_tables.toml"

skip_lr = false
skip_msr = false
ctr_as_local = false
xer_as_local = false
reserved_as_local = false
cr_as_local = false
non_argument_as_local = false
non_volatile_as_local = false

restgprlr_14_address = 0x822F3380
savegprlr_14_address = 0x822F3330
restfpr_14_address = 0x822F3F1C
savefpr_14_address = 0x822F3ED0
restvmx_14_address = 0x822F6CA8
savevmx_14_address = 0x822F6A10
restvmx_64_address = 0x822F6D3C
savevmx_64_address = 0x822F6AA4

I'm just wondering if all these instructions it failed to recognize is due to the game's nature and RNG to spawn the various planes. I figured I'd create this issue to provide or get insight as to the unrecognized instructions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions