Moved OOVPAs lowered

* XGSwizzleRect, XGUnswizzleRect functions are still UNPATCHED. Those OOVPA are available.

Verified this PR with
Azurik - Rise of Perathia (3911)
NightCaster (4039)
Double-S.T.E.A.L (4134)
Legends of Wrestling (4242)
Nakashima Tetsunari no Othello Seminar (4361)
Sega Soccer Slam (4432)
NHL HITZ 2003 (4531)
Innocent Tears (4627)
Terminator - Dawn of Fate (4721)
Whacked! (4831)
Unreal Championship (4928)
N.U.D.E.@ (5120)
Rayman 3 - Hoodlum Havoc (5233)
Starsky & Hutch (5344)
Dinosaur Hunting (5455)
NHL HITZ Pro 2004 (5558)
LMA Manager 2004 (5659)
All-Star Baseball 2005 (5788)
Nickelodeon Tak 2 - The Staff of Dreams (5849)
This commit is contained in:
jarupxx 2017-10-04 21:31:59 +09:00 committed by Luke Usher
parent cc46eff896
commit fd1f7cea5c
14 changed files with 148 additions and 26 deletions

View File

@ -395,6 +395,7 @@ $(SOLUTIONDIR)Export.bat</Command>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.OOVPA.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.3911.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4034.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4134.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4432.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4627.inl" />

View File

@ -821,6 +821,9 @@
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4034.inl">
<Filter>HLEDatabase\XG</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4134.inl">
<Filter>HLEDatabase\XG</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4361.inl">
<Filter>HLEDatabase\XG</Filter>
</None>

View File

@ -76,7 +76,6 @@ OOVPA_NO_XREF(XGSwizzleBox, 3911, 8)
{ 0xFE, 0x45 },
OOVPA_END;
/* Leave unpatched
// ******************************************************************
// * XGUnswizzleRect
// ******************************************************************
@ -91,7 +90,6 @@ OOVPA_NO_XREF(XGUnswizzleRect, 3911, 8)
{ 0xDE, 0x89 },
{ 0xFE, 0x60 },
OOVPA_END;
*/
// ******************************************************************
// * XGWriteSurfaceOrTextureToXPR
@ -152,6 +150,29 @@ OOVPA_NO_XREF(XGUnswizzleBox, 3911, 8)
{ 0xFE, 0x20 },
OOVPA_END;
// ******************************************************************
// * XGCompressRect
// ******************************************************************
//Generic OOVPA as of 3911 and newer.
OOVPA_NO_XREF(XGCompressRect, 3911, 12)
{ 0x00, 0x55 },
{ 0x01, 0x8D },
{ 0x14, 0x83 },
{ 0x15, 0x7D },
{ 0x16, 0x6C },
{ 0x17, 0x00 },
{ 0x18, 0x56 },
{ 0x19, 0x57 },
{ 0x1A, 0xC7 },
{ 0x1B, 0x45 },
{ 0xC0, 0x7E },
{ 0xC1, 0x01 },
OOVPA_END;
#if 0 // No longer used, replaced by generic 3911 version
// ******************************************************************
// * XGCompressRect
// ******************************************************************
@ -166,7 +187,7 @@ OOVPA_NO_XREF(XGCompressRect, 3911, 8)
{ 0xBE, 0x80 },
{ 0xDA, 0xAF },
OOVPA_END;
#endif
// ******************************************************************
// * XGSetIndexBufferHeader
// ******************************************************************

View File

@ -0,0 +1,81 @@
// ******************************************************************
// *
// * .,-::::: .,:: .::::::::. .,:: .:
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
// * $$$ Y$$$P $$""""Y$$ Y$$$P
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
// *
// * Cxbx->Win32->CxbxKrnl->XG.1.0.4134.cpp
// *
// * This file is part of the Cxbx project.
// *
// * Cxbx and Cxbe are free software; you can redistribute them
// * and/or modify them under the terms of the GNU General Public
// * License as published by the Free Software Foundation; either
// * version 2 of the license, or (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have recieved a copy of the GNU General Public License
// * along with this program; see the file COPYING.
// * If not, write to the Free Software Foundation, Inc.,
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
// *
// * (c) 2017 jarupxx
// *
// * All rights reserved
// *
// ******************************************************************
// ******************************************************************
// * XGSetVertexBufferHeader
// ******************************************************************
//Generic OOVPA as of 4134 and newer.
OOVPA_NO_XREF(XGSetVertexBufferHeader, 4134, 15)
{ 0x01, 0x44 },
{ 0x04, 0x8B },
{ 0x07, 0x18 },
{ 0x0A, 0x08 },
{ 0x0C, 0xC7 },
{ 0x0D, 0x00 },
{ 0x0E, 0x01 },
{ 0x0F, 0x00 },
{ 0x10, 0x00 }, // XGSetVertexBufferHeader 0x00 vs XGSetIndexBufferHeader 0x01
{ 0x11, 0x00 },
{ 0x12, 0x89 },
{ 0x13, 0x48 },
{ 0x14, 0x04 },
{ 0x15, 0xC2 },
{ 0x16, 0x18 },
OOVPA_END;
// ******************************************************************
// * XGSetIndexBufferHeader
// ******************************************************************
//Generic OOVPA as of 4134 and newer.
OOVPA_NO_XREF(XGSetIndexBufferHeader, 4134, 15)
{ 0x01, 0x44 },
{ 0x04, 0x8B },
{ 0x07, 0x18 },
{ 0x0A, 0x08 },
{ 0x0C, 0xC7 },
{ 0x0D, 0x00 },
{ 0x0E, 0x01 },
{ 0x0F, 0x00 },
{ 0x10, 0x01 }, // XGSetVertexBufferHeader 0x00 vs XGSetIndexBufferHeader 0x01
{ 0x11, 0x00 },
{ 0x12, 0x89 },
{ 0x13, 0x48 },
{ 0x14, 0x04 },
{ 0x15, 0xC2 },
{ 0x16, 0x18 },
OOVPA_END;

View File

@ -86,6 +86,7 @@ OOVPA_NO_XREF(XGSwizzleRect, 4361, 10)
{ 0xED, 0x0B },
OOVPA_END;
#endif
#if 0 // No longer used, replaced by generic 4134 version
// ******************************************************************
// * XGSetVertexBufferHeader
// ******************************************************************
@ -100,6 +101,7 @@ OOVPA_NO_XREF(XGSetVertexBufferHeader, 4361, 8) // 4134
{ 0x13, 0x48 },
{ 0x16, 0x18 },
OOVPA_END;
#endif
#if 0 // Moved to 3911
// ******************************************************************
// * XGCompressRect
@ -116,7 +118,7 @@ OOVPA_NO_XREF(XGCompressRect, 4361, 8)
{ 0xFE, 0x8B },
OOVPA_END;
#endif
#if 0 // Moved to 4134
// ******************************************************************
// * XGSetIndexBufferHeader
// ******************************************************************
@ -138,6 +140,7 @@ OOVPA_NO_XREF(XGSetIndexBufferHeader, 4361, 13)
{ 0x16, 0x18 },
OOVPA_END;
#endif
// ******************************************************************
// * XFONT_OpenBitmapFontFromMemory
@ -165,8 +168,8 @@ OOVPATable XG_4361[] = {
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 3911, PATCH),
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGCompressRect, 3911, XREF),
REGISTER_OOVPA(XGUnswizzleBox, 3911, DISABLED),
REGISTER_OOVPA(XFONT_OpenBitmapFontFromMemory, 4361, XREF),

View File

@ -45,8 +45,8 @@ OOVPATable XG_4432[] = {
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 3911, PATCH),
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGCompressRect, 3911, XREF),
REGISTER_OOVPA(XGUnswizzleBox, 3911, DISABLED),

View File

@ -83,8 +83,8 @@ OOVPATable XG_4627[] = {
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 3911, PATCH),
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGCompressRect, 3911, XREF),
REGISTER_OOVPA(XGUnswizzleBox, 3911, DISABLED),
REGISTER_OOVPA(XFONT_OpenBitmapFontFromMemory, 4361, XREF),

View File

@ -42,8 +42,8 @@ OOVPATable XG_5028[] = {
// REGISTER_OOVPA(XGUnswizzleRect, 3911, DISABLED), // TODO : Uncomment
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGUnswizzleBox, 3911, DISABLED),
REGISTER_OOVPA(XFONT_OpenBitmapFontFromMemory, 4361, XREF),

View File

@ -43,8 +43,8 @@ OOVPATable XG_5233[] = {
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 3911, PATCH),
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGCompressRect, 3911, XREF),
REGISTER_OOVPA(XGUnswizzleBox, 3911, DISABLED),
REGISTER_OOVPA(XFONT_OpenBitmapFontFromMemory, 4361, XREF),

View File

@ -43,8 +43,8 @@ OOVPATable XG_5344[] = {
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 3911, PATCH),
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGCompressRect, 3911, XREF),
REGISTER_OOVPA(XGUnswizzleBox, 3911, DISABLED),
REGISTER_OOVPA(XFONT_OpenBitmapFontFromMemory, 4361, XREF),

View File

@ -73,8 +73,8 @@ OOVPATable XG_5558[] = {
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 3911, PATCH),
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGCompressRect, 3911, XREF),
REGISTER_OOVPA(XGUnswizzleBox, 3911, DISABLED),
REGISTER_OOVPA(XFONT_OpenBitmapFontFromMemory, 4361, XREF),

View File

@ -60,8 +60,8 @@ OOVPATable XG_5788[] = {
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 3911, PATCH),
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGCompressRect, 3911, XREF),
REGISTER_OOVPA(XGUnswizzleBox, 3911, DISABLED),
REGISTER_OOVPA(XFONT_OpenBitmapFontFromMemory, 4361, XREF),

View File

@ -43,8 +43,8 @@ OOVPATable XG_5849[] = {
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 3911, PATCH),
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4134, XREF),
REGISTER_OOVPA(XGCompressRect, 3911, XREF),
REGISTER_OOVPA(XGUnswizzleBox, 3911, DISABLED),
REGISTER_OOVPA(XFONT_OpenBitmapFontFromMemory, 4361, XREF),

View File

@ -32,6 +32,18 @@
// *
// ******************************************************************
// TODO: Known Xgraphics OOVPA issue list
// * 4034 is not verified each OOVPA.
// * Following OOVPA revision are not verified
// * XGCompressRect (4242, 4721, 5028, 5120)
// * XGSetIndexBufferHeader (4039)
// * XGSetVertexBufferHeader (4039)
// * XGSwizzleBox (4242)
// * XGUnswizzleBox (4039)
// * XGWriteSurfaceOrTextureToXPR (4242, 5028)
// NOTE: Known Xgraphics OOVPA not included in initial revision.
// * XFONT_OpenBitmapFontFromMemory (4361)
#ifndef XGRAPHC_OOVPA_INL
#define XGRAPHC_OOVPA_INL
@ -39,6 +51,7 @@
#include "HLEDataBase/XG.1.0.3911.inl"
#include "HLEDataBase/XG.1.0.4034.inl"
#include "HLEDataBase/XG.1.0.4134.inl"
#include "HLEDataBase/XG.1.0.4361.inl"
#include "HLEDataBase/XG.1.0.4432.inl"
#include "HLEDataBase/XG.1.0.4627.inl"
@ -57,13 +70,13 @@ OOVPATable XGRAPHC_OOVPAV2[] = {
REGISTER_OOVPAS(XFONT_OpenBitmapFontFromMemory, XREF, 4361),
REGISTER_OOVPAS(XGCompressRect, XREF, 3911),
REGISTER_OOVPAS(XGIsSwizzledFormat, PATCH, 3911),
REGISTER_OOVPAS(XGSetIndexBufferHeader, XREF, 3911, 4361),
REGISTER_OOVPAS(XGSetIndexBufferHeader, XREF, 3911, 4134/*4361*/),
REGISTER_OOVPAS(XGSetTextureHeader, PATCH, 3911),
REGISTER_OOVPAS(XGSetVertexBufferHeader, XREF, 3911, 4361),
REGISTER_OOVPAS(XGSetVertexBufferHeader, XREF, 3911, 4134/*4361*/),
REGISTER_OOVPAS(XGSwizzleBox, PATCH, 3911),
// REGISTER_OOVPAS(XGSwizzleRect, UNPATCHED, 3911), // TODO : Uncomment
REGISTER_OOVPAS(XGSwizzleRect, UNPATCHED, 3911),
REGISTER_OOVPAS(XGUnswizzleBox, UNPATCHED, 3911),
// REGISTER_OOVPAS(XGUnswizzleRect, UNPATCHED, 3911), // TODO : Uncomment
REGISTER_OOVPAS(XGUnswizzleRect, UNPATCHED, 3911),
REGISTER_OOVPAS(XGWriteSurfaceOrTextureToXPR, PATCH, 3911),
};