Cxbx-reloaded: Review all OOVPATable's (for better HLE)

Created on 12 Jan 2017  路  8Comments  路  Source: Cxbx-Reloaded/Cxbx-Reloaded

An OOVPATable contains OOVPA_TABLE_PATCH and OOVPA_TABLE_XREF entries for functions that exist in one version of one library .

For example, OOVPATable D3D8_1_0_4361 contains entries for the D3D8 library, version 4361 (the 1.0 prefix can safely be ignored).

These libraries are linked into Xbox Executables (XBE's), as separate sections.
The libraries Cxbx currently scans are:

  • D3D8
  • D3D8LTCG (for Link-Time-Code-Generation builds)
  • D3DX8
  • DSOUND
  • XACTENG
  • XAPILIB
  • XGRAPHC
  • XNETS
  • XONLINE (a typo for XONLINES?)
  • XONLINES

In total, there have existed 34 versions (excluding 2 unconfirmed version numbers).
Earlier Xbox Development Kits (XDK's) offered the libraries with differing version numbers.
Later, XDK's used one version number for all contained libraries.

The library versions Cxbx currently scans are:

  • 3911 for XAPILIB, XGRAPHC, XNETS
  • 3925 for D3D8
  • 3936 for DSOUND
  • 4034 for XAPILIB, D3D8, XGRAPHC
  • 4134 for XAPILIB, D3D8, DSOUND
  • 4361 for XAPILIB, D3D8, DSOUND, XGRAPHC, XONLINE
  • 4432 for XAPILIB, D3D8, DSOUND, XGRAPHC
  • 4627 for XAPILIB, D3D8, DSOUND, XGRAPHC, XNETS, XONLINES, XACTENG
  • 4721 for XAPILIB
  • 5233 for XAPILIB, D3D8, DSOUND, XGRAPHC, XONLINE
  • 5558 for XAPILIB, D3D8, DSOUND, XGRAPHC, XONLINE
  • 5849 for XAPILIB, D3D8, D3D8LTCG, DSOUND, XGRAPHC, XONLINE

There are a few issues with these OOVPATable's that need to be addressed :

  • Some OOVPA_TABLE_PATCH entries refer to an older version of a function, while a more recent version exists
  • Some OOVPA_TABLE_PATCH entries refer multiple versions of an OOVPA
  • There's no strict ordering for OOVPA_TABLE_PATCH entries.

On the subject of ordering of OOVPATable entries:

If an ordering is defined, a descision must be made whether to apply the ordering to all existing OOVPATable entries, or only for new ones.
If applied to all existing OOVPATable entries, be aware that this will hinder comparisons with other Cxbx forks and branches.

HLE OOVPA

Most helpful comment

All 8 comments

Attached a dump from the cxbx-reloaded compatibility database, this is a list of every library encountered so far by user-uploaded XBEs

library_versions.xlsx

5659 and 5788 are aliased to 5558, but those version failed scans libraries.
I seems it is necessary to make a customized OOVPATable.

@jarupxx @Radwolfie Is the work described in this issue entirely finished now? If not, please describe what still remains to be done.

Most library versions can be scanned. There is an unverified version in DSound library.

@jarupxx Please document what still needs to be done. Or, if you're planning to do it yourself, tell us to wait patiently ;)

Well, let's ask @RadWolfie whether we need additional investigate the DSound library.
Since I added missing OOVPA with PR #786, it may have been completed.

Okay, I'm doing it myself. Thank you for your patience ;)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

PatrickvL picture PatrickvL  路  3Comments

PatrickvL picture PatrickvL  路  3Comments

PatrickvL picture PatrickvL  路  3Comments

childishbeat picture childishbeat  路  4Comments

PatrickvL picture PatrickvL  路  3Comments