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

Adapt to 64 bit platforms #188

Open
SoapyMan opened this issue Mar 16, 2023 · 2 comments
Open

Adapt to 64 bit platforms #188

SoapyMan opened this issue Mar 16, 2023 · 2 comments
Labels
enhancement New feature or request

Comments

@SoapyMan
Copy link
Contributor

SoapyMan commented Mar 16, 2023

In order to build and run a 64 bit version of the game, following steps needs to be done:

  • Make MODEL offsets data relocation 64bit friendly (or get rid of it using macros)
  • Fix MS_TARGET, needs to be strictly 64 bytes (maybe get rid of union and use cast to compatible structures instead)
  • Fix other possible bugs
  • Optional Optimize PsyX primitive headers to use 48 bit addresses and still have pgxp_index, or migrate pgxp_index to different data structure
  • Replace long with int or try to build with -mx32 if it works
@SoapyMan SoapyMan added the enhancement New feature or request label Mar 16, 2023
@Fireboyd78
Copy link
Collaborator

Fireboyd78 commented Mar 18, 2023

What's the point of this though? We don't even have proper 60FPS support and the game runs perfectly well in 32-bit mode.

As for handling pointer size differences, it would suffice to convert the 32-bit versions and resolve them into 64-bit ones. Basically think of _OUT structures (stored on disc) that get converted to internal ones (in memory). This would probably require splitting some structures up into several pieces so we don't have to maintain 2 identical structs in 64-bit mode; 32-bit mode would basically just be typedef MS_TARGET MS_TARGET_OUT, otherwise the _OUT structure needs to be defined as well.

@SoapyMan
Copy link
Contributor Author

What's the point of this though? We don't even have proper 60FPS support and the game runs perfectly well in 32-bit mode.

The main point here is a bit better portability for future ports. For example, XBox UWP, (also Android in some cases) require apps to be compiled as 64 bit only. Also for x64 Linux it would be better to have it instead of carrying i386 versions packages (as there could be lack of them).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants