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

Upgrade OOVPA symbol group files #208

Merged
merged 32 commits into from
Sep 25, 2024
Merged

Upgrade OOVPA symbol group files #208

merged 32 commits into from
Sep 25, 2024

Conversation

RadWolfie
Copy link
Member

@RadWolfie RadWolfie commented Jul 15, 2024

Note

(COMPLETED) upgrade-symbol-groups branch, in this pull request, is currently in major work in progress and not a final design.

Note

GitHub CI build may can fail at any time, do not worry about it.

Note

Some things may not be fully done due to in need for other internal changes to enable such various support.
Such as self-register symbols support.

resolve #122

Some changes to symbol names are require to functional with new upgrade system.

  • Removed XAPI prefix, no longer necessary.
    • Currently undetermined for OFFSET swapped in prefix and suffix field. (now always use suffix)
  • D3D8LTCG symbol names have been updated to expected generator symbol name for LTCG version.
    • Register name with reference to parameter name has been optimized to use register name and parameter offset by one.

Also, some symbols may have additional/removed parameters. These symbols will need their own OOVPA revision to separate and provide correct parameters and stack size usage.

New feature for CLI tool:

  • [-d -demangle] option will output generic name instead of mangled name.
  • [-e -extendinfo] option will output with parameters' name and storage of the symbol; i.e. DSOUND__FUN__CDirectSoundStream_GetInfo(stk pThis, stk pInfo) = 0x########.

UnitTest may have not been updated with symbol name changes.

Checklist of symbol group files has been done:

  • D3D8
  • D3D8LTCG
  • DSound
  • JVS
  • XActEng
  • Xapi
  • XGraphic
  • XNet
  • XOnline

Review remarks are welcome. 🙂
Pull request to upgrade-symbol-groups branch for incomplete symbol group file are also welcome too.
Best thing to do is look for TODO notes relative to parameters change or the like and any /*unknown*/ comments.


TODO:

  • Update self test library function for:
    • (POSTPONE) Duplicate reference index, list of parameters. (May likely migrate from Extend OOVPA Tests #154 pull request)
  • Update UnitTest tool for:
    • Remove unnecessary numerous of mangled names output if not found reference.

UPDATE: Calling conventions are added to this pull request due to ghidra-xbe's decompile doesn't understand and couldn't do a manual check for what type of calling conventions for the functions.

ghidra-xbe's future options support is now able to decompile correctly with corrected parameters and calling conventions.

@github-actions github-actions bot added OOVPA Any OOVPA change relative needs-verification Require verification before approval D3D8 OOVPA relative topic D3D8LTCG OOVPA relative topic DSOUND OOVPA relative topic XACTENG OOVPA relative topic JVS OOVPA relative topic XGRAPHIC OOVPA relative topic XNET OOVPA relative topic XONLINE OOVPA relative topic XAPI OOVPA relative topic TOOLS labels Jul 15, 2024
@RadWolfie RadWolfie force-pushed the upgrade-symbol-groups branch 3 times, most recently from 4917ddb to 13a672e Compare July 15, 2024 09:56
@RadWolfie RadWolfie force-pushed the upgrade-symbol-groups branch from 13a672e to 4a7fb4a Compare July 21, 2024 07:28
@github-actions github-actions bot added the CMAKE label Jul 21, 2024
include/libParamTypes.h Outdated Show resolved Hide resolved
@RadWolfie RadWolfie force-pushed the upgrade-symbol-groups branch from b999211 to a167837 Compare September 21, 2024 05:47
@RadWolfie RadWolfie marked this pull request as ready for review September 21, 2024 05:48
@RadWolfie
Copy link
Member Author

RadWolfie commented Sep 21, 2024

Unit tests are passing for all libraries locally after correcting all of the symbol renames.

@RadWolfie RadWolfie removed the needs-verification Require verification before approval label Sep 21, 2024
include/xref/list_xref.h Outdated Show resolved Hide resolved
src/OOVPADatabase/OOVPA.h Outdated Show resolved Hide resolved
src/OOVPADatabase/OOVPA.h Outdated Show resolved Hide resolved
src/OOVPADatabase/OOVPA.h Outdated Show resolved Hide resolved
src/OOVPADatabase/OOVPA.h Outdated Show resolved Hide resolved
src/OOVPADatabase/OOVPA.h Outdated Show resolved Hide resolved
src/OOVPADatabase/OOVPA.h Outdated Show resolved Hide resolved
@github-actions github-actions bot added the needs-verification Require verification before approval label Sep 24, 2024
@RadWolfie RadWolfie force-pushed the upgrade-symbol-groups branch 2 times, most recently from 770ef47 to 1c370eb Compare September 24, 2024 10:37
src/OOVPADatabase/OOVPA.h Outdated Show resolved Hide resolved
@RadWolfie RadWolfie force-pushed the upgrade-symbol-groups branch from 1c370eb to a1b1a5b Compare September 24, 2024 12:57
@RadWolfie RadWolfie removed the needs-verification Require verification before approval label Sep 25, 2024
@ergo720 ergo720 merged commit 10b4a5a into master Sep 25, 2024
27 checks passed
@RadWolfie RadWolfie deleted the upgrade-symbol-groups branch September 26, 2024 12:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CMAKE D3D8LTCG OOVPA relative topic D3D8 OOVPA relative topic DSOUND OOVPA relative topic JVS OOVPA relative topic OOVPA Any OOVPA change relative TOOLS XACTENG OOVPA relative topic XAPI OOVPA relative topic XGRAPHIC OOVPA relative topic XNET OOVPA relative topic XONLINE OOVPA relative topic
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature: Add Parameter Info into Symbol Group
2 participants