Cxbx-Reloaded / XbSymbolDatabase

Xbox Symbol Database library
MIT License
23 stars 10 forks source link

Add LTCG symbols: CDevice_KickOff variants, D3DDevice_MakeSpace, and XGSetSurfaceHeader #199

Closed jackchentwkh closed 11 months ago

jackchentwkh commented 11 months ago

Add LTCG symbols:

these symbols are necessary for pushbuffer based rendering.

PatrickvL commented 11 months ago

Be aware that especially KickOff has likely been inlined in many titles - and since symbol scanning only returns one location it's currently not possible to locate (nor patch!) any other occurrences...

RadWolfie commented 11 months ago

The new files should really mention your own name in the header comment block

@PatrickvL, signatures aren't copyrighted. Which they will get remove and replace with correct license. If going to keep the authors name, it is best to put it in central file which is the grouped signatures file, aka XXXX_OOPVA.inl files. See pull request #195

PatrickvL commented 11 months ago

@RadWolfie note, I did not mention the term "copyright' on purpose ;)

RadWolfie commented 11 months ago

@jackchentwkh, one other thing I noticed from our CI workflow checks. There are identical oovpa signatures being found and missing symbol entry for new symbols in unit test's database which is a requirement in order to properly test the signatures. See Add new founding symbol(s) or variant of symbol ABI section, step 4.

EDIT: Please ignore CI's Linux build failure, the cause of failure is from submodule's cmake file needs an update, thanks.

jackchentwkh commented 11 months ago

per my last conversation with @RadWolfie , he will help me commit those necessary changes to merge this PR. So I will focus on other filed. currently I am working on a new symbol CMiniport_SoftwareMethod() which is necessary for D3DDevice_RunPushbuffer() to fixup return jump instructions and other pushbuffer fixups.

RadWolfie commented 11 months ago

Fixup previous commit is made correction for titles older than build number are being detected and verified. Although, there is another function which is almost identical to CDevice_KickOff. With only difference is near end of function (first return) has "or" instruction to make it different from the other function. So, I had to rewrite the old and new signatures to use better detection. NOTE: Before 4034 does not have "or" instruction.

It is now ready for review since unit test did not report any issues nor missing detected known functions.