z64utils / z64convert

GNU General Public License v3.0
4 stars 1 forks source link

FEATURE: Instruction output #3

Open JerryWester opened 3 years ago

JerryWester commented 3 years ago

Different from C output (unless I'm mistaken, it's all just header defines), I'd like to have the actual, compilable F3DEX C output. An example of what I'm looking for. Is something like this possible?

Dragorn421 commented 3 years ago

I actually plan to have objex2 directly output C, at some point. (probably not before months, I'm all over the place)

Meanwhile you could use ZAPD to disassemble the zobj z64convert produces to C

Compiling ZAPD may be your main concern if you want to go that route, as there are no released binaries

I posted this recently on the Hylian Modding discord:

as a kind of proof of concept with zapd

decompiling my_object.zobj in the current directory .

my_object.xml:

<Root>
    <File Name="my_object.zobj" Segment="6">
        <DList Name="Cube" Offset="0x180"/>
    </File>
</Root>
tools/ZAPD/ZAPD.out e -i my_object.xml -b . -o my_object_disas

-i my_object.xml means read description from this xml -b . means search my_object.zobj in . -o my_object_disas is the output directory

-> my_object_disas/my_object.c

For how to add stuff to the xml see https://github.com/zeldaret/ZAPD/blob/master/docs/zapd_extraction_xml_reference.md

feel free to @ me on the ml64 discord for more info

z64me commented 3 years ago

This shouldn't require much work, in theory. Were you wanting textures written externally as well or do you think it's okay to embed them?

JerryWester commented 3 years ago

@z64me embedded works fine. Thanks for the quick response

@Dragorn421 wow, I had no idea ZAPD existed! Thanks a ton for pointing this out to me!