Skip to content

Fix and update D3DDevice_CopyRects signatures#224

Merged
ergo720 merged 2 commits into
Cxbx-Reloaded:masterfrom
RadWolfie:d3d-oovpa-fixes
Aug 2, 2025
Merged

Fix and update D3DDevice_CopyRects signatures#224
ergo720 merged 2 commits into
Cxbx-Reloaded:masterfrom
RadWolfie:d3d-oovpa-fixes

Conversation

@RadWolfie

Copy link
Copy Markdown
Member

The original bug was from the Project: Snowblind title received the wrong detected address for D3DDevice_CopyRects. Since the signatures are very old, I went ahead majority replaced them with the new signatures. With these new updated signatures, even more titles are able to detect D3DDevice_CopyRects symbol.

The first commit made these LTCG titles able to detect the symbol:

  • NBA 2K2 (Sega Sports) (4039)
  • Bruce Lee (4432)
  • MURAKUMO (4531)
  • Crimson Sea (5120)
  • Kung Fu Chaos (5120)
  • Midtown Madness 3 (5233)
  • Speed Kings (5344)

Then the second commit was brought to my attention relative to the change of order of having allocated stack 2 assembly instructions later, instead of at the beginning. These titles are also LTCG:

  • Rally Fusion: Race of Champions (4928)
  • Enter The Matrix (5344)
  • The Italian Job (5344)
  • Star Wars - Battlefront (5849)

Titles with existing symbol detected did not show a change of address or loss of detected symbol.

resolve #222 ticket

@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 labels Jul 29, 2025

@PatrickvL PatrickvL left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only did a visual inspection, but looks good. Just one lint issue to resolve.

@RadWolfie

Copy link
Copy Markdown
Member Author

Lint issue is currently a bug as it should be checking against diffs which isn't working at this time. Please disregard it until macros for wip future support for D3D's member variables are fully integrated. As they are the cause of issue.

Comment thread src/OOVPADatabase/D3D8/3911.inl Outdated
Removed:
- 4034 (d3d8)
- 1036 (4627, d3d8ltcg)
- 1048 (4928, d3d8ltcg)
- 1024 (5455, d3d8ltcg)

Updated:
- 3911 (d3d8)
- 4627 (d3d8)
- 5120 (d3d8)

Added:
- 3911 (d3d8ltcg)
- 4627 (d3d8ltcg)
- 5121 (d3d8ltcg)
Added:
- 4628 (4627, 2nd revision for special case)
@RadWolfie

Copy link
Copy Markdown
Member Author

I noticed 1036 (d3d8ltcg) signature was not removed, so I went ahead delete it as part of fixup.

@ergo720
ergo720 merged commit 433d341 into Cxbx-Reloaded:master Aug 2, 2025
13 of 14 checks passed
@RadWolfie RadWolfie removed the needs-verification Require verification before approval label Aug 2, 2025
@RadWolfie
RadWolfie deleted the d3d-oovpa-fixes branch August 2, 2025 19:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

D3D8LTCG OOVPA relative topic D3D8 OOVPA relative topic OOVPA Any OOVPA change relative

Projects

None yet

Development

Successfully merging this pull request may close these issues.

BUG: D3D8LTCG's D3DDevice_CopyRects signature(s) isn't accurate

3 participants