Skip to content

Conversation

@AngheloAlf
Copy link
Collaborator

Adds support for PS2 ELFs in create_config by using the "fake rom" approach.
This avoid issues in the long run generating elf within an elf in the build system, but adds objcopy as a dependency of create_config for PS2. Since we can't know what objcopy flavour the user may want to use then create_config will try to figure out which one the user has from a list. The user can also provide their own objcopy by passing a flag.

The generated yaml is generated from the elf and it includes info like each section from the game and automatically fill section_order and similar variables, gp value if available and a ld_gp_expression setting when possible, inferred compiler and tweaked default settings for ps2.
The compiler inferring machinery is pretty weak. Currently it assumes EEGCC unless there's a .mwcats section present in the ELF. I think this should be good enough as an starting point, and we can improve this in the future.

Since splat doesn't have built-in support for vutext, vudata, etc, those kind of sections will be listed as incbins instead.

I also wrote some docs in a separate Quickstart page. Hopefully everything is clear enough.

I'm not sure how to bump the splat version. Should I do +0.1.0 or +0.0.1?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant