Skip to content

Fix: Various PAL1.1 asset offsets and Main Menu options screen#3045

Merged
leggettc18 merged 5 commits intoHarbourMasters:develop-sulufrom
Archez:fix-pal11-issues
Jul 3, 2023
Merged

Fix: Various PAL1.1 asset offsets and Main Menu options screen#3045
leggettc18 merged 5 commits intoHarbourMasters:develop-sulufrom
Archez:fix-pal11-issues

Conversation

@Archez
Copy link
Contributor

@Archez Archez commented Jun 28, 2023

This address some reported PAL1.1 asset issues

  • Falling platforms in Ganondorf's lair had incorrect vertex values
  • Din's Fire magic effect had incorrect offset values
  • Main Menu options screen has dramatically different data compared to PAL GC

Regarding the PAL N64 Main Menu option screen, there are additional options for changing the game language. The corresponding code does not exist for this feature and the way the assets are defined differ quite a bit.

PAL GC defines one list of vertices for the headers and a separate copy for German. Similarly one list for the options vertices and a separate copy for German.

However, PAL N64 doesn't define a separate copy for German, instead the german specific vertices are listed in a separate spot. PAL N64 also has vertices for the change language mixed in, so those are currently ignored and skipped over as necessary.

I have added resource methods to query the region and platform type of a game version (ResourceMgr_GetGamePlatform and ResourceMgr_GetGameRegion). In the case of the Main Menu, I am using this to detect if the loaded game (original in the case both original and MQ are provided) is PAL N64 or PAL GC to conditionally apply the different vertices.

Targeting Sulu even though it would require re-generating the PAL1.1 otr, but the game wont crash in this case if users don't re-gen. Fixing the asset issues seems preferable as a bugfix release.

These changes were aimed as a bug fix for current PAL 1.1 issues. It's possible that as we expand rom support, we may find it better to create specific draw methods for the different types here. That would also open the possibility if we wanted to support the in-game language change feature for PAL N64.

Fixes #3022, #3023

Build Artifacts

@Archez
Copy link
Contributor Author

Archez commented Jun 28, 2023

/cc @NEstelami

@Archez
Copy link
Contributor Author

Archez commented Jun 28, 2023

Before:

image

After:

image

The empty space between z-target and brightness corresponds to the change language feature that is missing in code.

@PurpleHato
Copy link
Member

PurpleHato commented Jun 28, 2023

Before:

image

After:

image

The empty space between z-target and brightness corresponds to the change language feature that is missing in code.

I have a small quesiton with this and I had this in mind since a while, so don't worry it's just a question
Do you think in the future we might replicate the language selection menu from the N64,, check if the OTR is generated from the N64 and if yes, tying it to our Cvar system so we can have "vanilla" behavior language setup ? (Which also might add a tiny bit of conveiniance for foreigner players on consoles and not needing to use the F1 menu for that)

@Archez
Copy link
Contributor Author

Archez commented Jun 28, 2023

I have a small quesiton with this and I had this in mind since a while, so don't worry it's just a question
Do you think in the future we might replicate the language selection menu from the N64,, check if the OTR is generated from the N64 and if yes, tying it to our Cvar system so we can have "vanilla" behavior language setup ? (Whichi also might add a tiny bit of conveiniance for foreigner player on consoles and not needing to use the F1 menu for that)

Yes I mention above that for a feature change, we could very well have different draw/update methods for PAL N64 entirely and attempt to replicate the language change feature (tied to the CVar yeah).

@PurpleHato
Copy link
Member

I have a small quesiton with this and I had this in mind since a while, so don't worry it's just a question
Do you think in the future we might replicate the language selection menu from the N64,, check if the OTR is generated from the N64 and if yes, tying it to our Cvar system so we can have "vanilla" behavior language setup ? (Whichi also might add a tiny bit of conveiniance for foreigner player on consoles and not needing to use the F1 menu for that)

Yes I mention above that for a feature change, we could very wall have different draw/update methods for PAL N64 entirely and attempt to replicate the language change feature (tied to the CVar yeah).

Just wanted to make sure ! That would be awesome indeed! :)

@leggettc18
Copy link
Contributor

I think I agree with this being develop-sulu despite OTR breakage, since OTR regen isn't explicitly required (i.e. won't crash) and is only needed for one source rom. @briaguya-ai would you agree with this going to Sulu?

@leggettc18 leggettc18 merged commit b7dca5d into HarbourMasters:develop-sulu Jul 3, 2023
@Archez Archez deleted the fix-pal11-issues branch July 3, 2023 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants