Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PRESET] Create Compiler Presets for "Aironauts" #1343

Open
bismurphy opened this issue Sep 11, 2024 · 1 comment
Open

[PRESET] Create Compiler Presets for "Aironauts" #1343

bismurphy opened this issue Sep 11, 2024 · 1 comment

Comments

@bismurphy
Copy link
Contributor

bismurphy commented Sep 11, 2024

I would like to create/update a compiler preset on decomp.me.

  • Preset Name: Aironauts
  • Preset ID (when updating): N/A; this is a request for new presets
  • Platform: e.g. psx
  • Compiler ID: e.g. gcc
  • Compiler Flags: e.g. -G0 -O2 -gcoff

Hello!

I have recently started a light "Aironauts" decompilation project, at https://github.com/bismurphy/Aironauts-decomp. I have been using decomp.me to get started, and now that I have some working functions decompiled, it would be great to have a preset.

There are two key issues here. One is that this game does NOT appear to use ASPSX like all existing PlayStation games do, and therefore should not use maspsx. Please view the Makefile on the project above (https://github.com/bismurphy/Aironauts-decomp/blob/main/Makefile) to see this. Instead, I am using a simple Python script I made called "menospsx" (https://github.com/bismurphy/Aironauts-decomp/blob/main/tools/menospsx/menospsx.py) to do some very light cleanup on the assembly from the compiler.

The other issue is that this game seems to use GCC 2.8 for some functions, and 2.7 for others (specifically, I have been using 2.8.1-psx and 2.7.2-psx). I have not explored enough of the game to work out which parts use which, and it's possible that there are yet more GCC versions being used in different places. What this means is that ultimately, this game will need two different compiler options.

I think it would be a bit silly to make two whole presets just for this one game (especially since I'm probably the only person interested in this game), so ideally it would be nice if there could just be one preset with 2.7 or 2.8 (doesn't matter which), and be able to toggle over after making the scratch.

So far from what I've found, all the functions want -G0 -O2 -gcoff, regardless of which compiler is used. Presumably as more functions are decompiled we will narrow down the edge cases and may need to add more arguments.

It may end up being that the best way to fulfill the needs of this game is to allow independent selection of compiler and assembler on the site. Alternatively, there could maybe be a toggle in the Options to use either maspsx or menospsx?

I don't know enough about the site internals to start putting this together, but thought I would make the issue here to start a conversation, and hopefully an active maintainer might pick this up :)

Happy to work with anyone to iterate on this as needed, thank you for your time.

@bismurphy bismurphy changed the title [PRESET] Create/Update Compiler Presets for "Aironauts" [PRESET] Create Compiler Presets for "Aironauts" Sep 11, 2024
@ethteck
Copy link
Member

ethteck commented Nov 28, 2024

Sorry for not replying to this sooner, but I'm wondering if it'd be possible for you to migrate to maspsx as one potential option. (also l0l @ menos/mas)

Having multiple presets for one game is something other games do and is totally fine. Eventually ™️ when the projects feature is more fleshed out, a project will be a collection of presets anyway, so going ahead and making the presets you need is totally encouraged.

Decoupling the assembler from the compiler is a thing we could do, but it's a lot of plumbing and dramatically increases the number of "configurations" we're signing up for supporting on the site, which is kind of scary to me personally..but yeah I see the use-case for it for sure

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

No branches or pull requests

2 participants