Cxbx-Reloaded/doc/ShogunChangelog.txt

1406 lines
49 KiB
Plaintext
Raw Normal View History

Cxbx Changelog for Shogun3D Branch
??/??/09
- Added most of my previous changes to the disten branch so I can continue
to build my work on it (mainly because my old branch was just too slow).
- Got Smashing Drive to run at full speed. The intro animations will now
show as well. Still have some buggy textures though.
- Added the changes necesarry to run XDK 4831 games.
- Added more XDK functions (I don't remember what they all were):
IDirectSound8_EnableHeadphones (4627, 4721)
IDirect3DDevice8_SetPixelShader (4721)
IDirectSoundStream_Pause (4627, 4928)
EmuXapiApplyKernelPatches (4831)
- Lots more stuff too, I just don't remember what I did exactly. I'll log
it when I remember :)
4/20?/09
- Unreal Championship finally shows the first intro video! I've been at
this game for ages, but couldn't get it to work in XP, only vista and I
have no screens because videos won't render in Vista for some reason
(not even in Turok!) -_- Anyway, I had to do a brute force hack for it
to work (I skipped the call to IDirectSoundStream_SetHeadroom) when running
with OllyDbg. I couldn't get a working OOVPA for it for some odd reason!
4/24/09 7:46 PM
- Moved the following functions (from -> to)
IDirect3DDevice8_GetGammaRamp (4627 -> 4034)
IDirect3DDevice8_GetCreationParameters (5849 -> 4034)
IDirect3DDevice8_setViewport (4361 -> 4034)
- Added the following functions
IDirect3DDevice8_GetViewport (4034)
4/25/09 10:44 AM
- Moved the following function(s) (from -> to)
IDirect3DDevice8_GetBackBuffer (4361 -> 4134)
IDirect3DDevice8_GetDepthStencilSurface (4361 -> 4134)
IDirect3DDevice8_SetRenderTarget (4361 -> 4134)
5/16/09 8:24 PM
- Added the following function(s)
IDirect3DDevice8_AddRef (5558)
- Other new stuff:
D3DTOP_DOTPRODUCT3 (for bumpmapping!)
8/28/09
- Added more Direct3D stuff (4627 and maybe more, I forgot what they all were).
IDirect3DDevice8_SetPalette (4627) is the only one I really remember.
8/29/09
- Fixed a bug in EmuDirectSoundCreateStream. This function is sometimes called before
DirectSoundCreate is called, so when that happens we need to initialize DirectSound
before we can continue.
- The above fix gets Rayman Arena showing intros again!
- Added the following function(s)
IDirect3DDevice8_SetGammaRamp (3925)
SetThreadPriorityBoost (3911)
GetThreadPriority (3911)
CreateFiber (3911)
DeleteFiber (3911)
8/30/09
- Added the following functions(s)
IDirect3DDevice8_BackFillMode (4531)
IDirect3DDevice8_GetProjectionViewMatrix (4627)
IDirect3DDevice8_DrawRectPatch (4627)
IDirect3DDevice8_InsertCallback (4627)
IDirect3DDevice8_CreateStateBlock (4627)
IDirect3DDevice8_SetPixelShaderProgram (4627)
IDirect3DDevice8_BackFillMode (4531)
IDIrect3DDevice8_Release (4432)
CreateFiber (4034-4627)
CreateFiber (4034-4627)
IDirect3DSurface8_GetDesc (4432-4531)
- Redirected XAPILIB 4531 to 4627.
9/1/09
- Added the following functions
Get2DSurfaceDesc (4432-4531)
IDirect3DDevice8_SetMaterial (3925)
- Added the following kernel API(s)
AvGetSavedDataAddress (IDirect3DDevice8_GetPersistedSurface is too small to HLE).
- Added the following source files
XOnline(s).1.0.4627.h/inl
??/??/09
- Added the following function(s)
XInputGetCapabilities (3911)
10/??/09
- Added the following file(s)
EmuXAudio\XboxAdpcm.cpp/h
EmuXAudio\XSoundBank.cpp/h
EmuXAudio\XWaveBank.cpp/h
10/13/09
- Added the following functions
XLoadSectionA (3911-4627 and beyond?)
XFreeSectionA (3911-4627 and beyond?)
CDirectSound8::SetAllParametersA (4831)
NtQueueApcThread
- Caustik's theory was right, section loading APIs are safe to ignore (so far)!
- Updated the following functions
EmuIDirect3DResource8_Register (added D3DFMT_LIN_A1R5G5B5)
EmuUpdateActiveTexture (added D3DFMT_LIN_A1R5G5B5)
- Zapper (XDK 4831) now reaches intros and plays intro videos!
- Taz: Wanted (XDK 4432) plays intro videos and shows loading screen!
- The games listed above use the same engine and have the same bug. If/when I find it,
I guess both games should be okay.
10/14/09
- Added the following functions
IDirectSoundBuffer8_AddRef (4627, should be the same as 3936 but not tested).
10/15/09
- Added the following functions
IDirect3DDevice8_SetVertexShaderConstant4 (5558)
IDirect3DDevice8_DrawVerticesUP (5558)
IDirect3DDevice8_GetTransform (5233-5558)
10/16/09
- Added the following functions
CMcpxBuffer::Play (4721)
10/20/09
- Added the following functions
D3DDevice_SetRenderState_MultiSampleMask (4627, 4721)
D3DDevice_SetRenderState_LogicOp (4627, 4721)
- Robotech: Battlecry is starting to work!
TODO: Add IDirectSoundBuffer_GetStatus and IDirectSoundBuffer_Pause for 4721
11/1/09
- Added the following functions
GetTimeZoneInformation (4034 - 5120)
11/2/09
- Added the following functions
IDirect3DDevice8_SetPixelShaderConstant (4627-4298)
SetThreadPriority (4034 - 5120)
GetExitCodeThread (4242 - 4928)
RtlDestroyHeap (4627-4928) (Others?)
CDirectSoundVoice::SetAllParameters (4627 - 4928)
CDirectSoundBuffer::SetAllParameters (4627 - 4928)
IDirectSoundBuffer8_SetAllParameters (4627 - 4928)
D3D::SetFence (4627 - 4928)
IDirect3DDevice8_InsertFence (4627 - 4928)
D3D::CDevice::KickOff (4627 - 4928)
IDirect3DDevice8_SetPixelShaderConstant (4928 - 5344) (implimented only for 4928)
IDirect3DDevice8_SetRenderState_TwoSidedLighting (4627 - 4928)
IDirect3DDevice8_GetTexture2 (4627 - 4928)
- Other new stuff
Added D3DTOP_BLENDTEXTUREALPHA (14)
- Panzer Dragoon Orta (4928) goes ingame! No 3D graphics yet, but still significant progress. Not yet stable due to a few random crashes and freezes prior to going ingame.
TODO: Investigate 0x2AE7F2 and 0x2C8877 for Panzer.
11/3/09
- Fixed my implementation of IDirect3DDevice8_GetTexture2 (dirty hack)
11/4/09
- Added the following functions
D3D::CDevice::SetStateVB (4627 - 4928)
D3D::CDevice::SetStateUP (4627 - 4928)
IDirect3DDevice8_DrawIndexedVerticesUP (4627 - 4928)
11/5/09
- Added the following functions
IDirect3DDevice8_SetPalette (5233)
IDirect3DDevice8_GetCreationParameters (5233)
IDirect3DDevice8_SetFlickerFilter (5233 - 5344)
IDirect3DDevice8_SetSoftDisplayFilter (5233 - 5344)
XACTEngineCreate (4627 & 4928)
XACTEngineDoWork (4627)
XACT::CEngine::RegisterWaveBank (4627)
IXACTEngine_RegisterWaveBank (4627)
XACT::CEngine::RegisterStreamedWaveBank (4627)
IXACTEngine_RegisterStreamedWaveBank (4627)
XACT::CEngine::CreateSoundBank (4627)
IXACTEngine_CreateSoundBank (4627)
XACT::CEngine::DownloadEffectsImage (4627)
IXACTEngine_DownloadEffectsImage (4627)
XACT::CEngine::CreateSoundSource (4627)
IXACTEngine_CreateSoundSource (4627)
XACT::CSoundBank::GetSoundCueIndexFromFriendlyName (4627)
IXACTSoundBank_GetSoundCueIndexFromFriendlyName (4627)
IXACTSoundBank_Play (4627) (Needs further investigation...)
- Added the following texture formats
D3DFMT_A8B8G8R8 (Swizzled)
D3DFMT_UYVY (Swizzled, afaik)
11/11/09
- Added the following texture format(s)
D3DFMT_UNKNOWN (Undefined) (For MetalSlug 3)
- Added the following functions
IDirect3DDevice8_SetShaderConstantMode (5849)
IDirect3DDevice8_SetViewport (5849)
QueueUserAPC (5849) (Possibly too high level)
CDirectSound_SetAllParameters (4721)
11/18/09
- Added the following function(s)
IDirect3D8_CreateDevice (5028)
11/20/09
- Added the following function(s)
RtlReallocateHeap (4361)
RtlSizeHeap (4361)
CDirectSoundVoiceSettings::SetMixBinVolumes (4361)
CDirectSoundVoice::SetMixBinVolumes (4361)
CDirectSoundBuffer::SetMixBinVolumes (4361)
- Removed DSOUND 4361 alias to 4627 (This will break Smashing Drive!)
11/22/09
- Temporarily set DSOUND 4361 alias to 4627 again.
- Added the following function(s)
CDirectSoundStream_SetMixBins (4627)
CMcpxVoiceClient_SetEG (4627)
CDirectSoundVoice_SetEG (4627)
CDirectSoundStream_SetEG (4627)
CDirectSoundStream_FlushEx (4627)
IDirectSoundStream_FlushEx (4627)
11/23/09
- Added the following function(s)
RtlCreateHeap (4134)
RtlAllocateHeap (4134)
RtlFreeHeap (4134)
RtlReAllocateHeap (4134)
RtlSizeHeap (4134)
XapiBootDash (4134)
XRegisterThreadNotifyRoutine (4134)
XGetDeviceChanges (4134)
XID_fCloseDevice (XREF) (4134)
XInputClose (4134)
XInputGetCapabilities (4134)
SetThreadPriorityBoost (4134)
GetThreadPriority (4134)
XGetDevices (4134)
QueryPerformanceCounter (4134)
QueryPerformanceFrequency (4134)
XInputPoll (4134 - 4928)
XGetSectionHandleA (4134 - 4928)
XLoadSectionByHandle (4134 - 4928)
XFreeSectionByHandle (4134 - 4928)
RtlDestroyHeap (4134 - 4928)
D3DDevice_CreatePixelShader (4134)
IDirect3DSurface8_LockRect (4134)
Lock2DSurface (4134)
D3DDevice_SetGammaRamp (4134)
IDirect3D8_CheckDeviceFormat (4134)
IDirect3D8_GetAdapterModeCount (4134)
IDirect3D8_EnumAdapterModes (4134)
IDirect3DDevice8_LoadVertexShader (4134)
IDirect3DDevice8_SelectVertexShader (4134)
IDirect3DDevice8_CopyRects (4134)
IDirect3DDevice8_CreateImageSurface (4134)
IDirect3DDevice8_SetVertexShaderConstant (4134)
IDirect3DDevice8_SetPixelShader (4134)
IDirect3DDevice8_SetTextureState_BumpEnv (4134)
IDirect3DDevice8_SetIndices (4134)
IDirect3DDevice8_SetTexture (4134)
IDirect3DDevice8_SetRenderState_VertexBlend (4134)
IDirect3DDevice8_SetRenderState_TextureFactor (4134)
IDirect3DDevice8_SetRenderState_EdgeAntiAlias (4134)
IDirect3DDevice8_SetRenderState_Simple (4134)
IDirect3DDevice8_SetRenderState_ZEnable (4134)
IDirect3DDevice8_SetRenderState_StencilEnable (4134)
IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias (4134)
IDirect3DDevice8_GetTransform (4134)
IDirect3DDevice8_SetStreamSource (4134)
IDirect3DDevice8_SetVertexShader (4134)
IDirect3DDevice8_DrawVertices (4134)
IDirect3DDevice8_DrawVerticesUP (4134)
IDirect3DDevice8_DrawIndexedVertices (4134)
IDirect3DDevice8_SetLight (4134)
IDirect3DDevice8_SetMaterial (4134)
IDirect3DDevice8_LightEnable (4134)
IDirect3DVertexBuffer8_Lock (4134)
Get2DSurfaceDesc (4134)
IDirect3DSurface8_GetDesc (4134)
IDirect3DDevice8_SetRenderState_StencilFail (4134)
IDirect3DDevice8_SetRenderState_NormalizeNormals (4134)
IDirect3DDevice8_Reset (4134 - 4361)
IDirect3D8_KickOffAndWaitForIdle (4134 - 4361)
IDirect3DDevice8_SetTextureState_TwoSidedLighting (4134 - 4361)
IDirect3DDevice8_SetRenderState_BackFillMode (4134 - 4361)
IDirect3DDevice8_SetTextureState_ColorKeyColor (4134 - 4361)
IDirect3DDevice8_SetRenderState_FrontFace (4134 - 4361)
IDirect3DDevice8_SetRenderState_LogicOp (4134 - 4361)
IDirect3DDevice8_SetRenderState_StencilFail (4134 - 4361)
IDirect3DDevice8_SetRenderState_OcclusionCullEnable (4134 - 4361)
IDirect3DDevice8_SetRenderState_StencilCullEnable (4134 - 4361)
- Move the following functions
XInputPoll (4928 -> 4134)
XGetSectionHandleA (4627 -> 4134)
XLoadSectionByHandle (4627 -> 4134)
XFreeSectionByHandle (4627 -> 4134)
RtlDestroyHeap (4627 -> 4134)
IDirect3DDevice8_Reset (4134)
IDirect3D8_KickOffAndWaitForIdle (4432 -> 4134)
IDirect3DDevice8_SetTextureState_TwoSidedLighting (4432 -> 4134)
IDirect3DDevice8_SetRenderState_BackFillMode (4432 -> 4134)
IDirect3DDevice8_SetTextureState_ColorKeyColor (4432 -> 4134)
IDirect3DDevice8_SetRenderState_FrontFace (4432 -> 4134)
IDirect3DDevice8_SetRenderState_LogicOp (4432 -> 4134)
IDirect3DDevice8_SetRenderState_StencilFail (4432 -> 4134)
IDirect3DDevice8_SetRenderState_OcclusionCullEnable (4432 -> 4134)
IDirect3DDevice8_SetRenderState_StencilCullEnable (4432 -> 4134)
- Added a bit of code to print out more details about the Direct3D device
each Xbox game is trying to create.
- Added a hack to disable Tripple Buffering. JSRF needs this for cards that
don't support it with the parameters it's using.
11/24/09
- Added the following functions(s)
IDirect3DDevice8_FillMode (4134)
IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead (4134 - 4627)
IDirect3DDevice8_SetRenderState_RopZRead (4134 - 4627)
IDirect3DDevice8_SetRenderState_DoNotCullUncompressed (4134 - 4627)
IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable (4134 - 4361)
IDirect3DDevice8_SetRenderState_MultiSampleMask (4134 - 4361)
IDirect3DDevice8_SetRenderState_MultiSampleMode (4134 - 4361)
IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode (4134 - 4361)
IDirect3DDevice8_SetRenderState_ShadowFunc (4134 - 4361)
IDirect3DDevice8_SetRenderState_YuvEnable (4134 - 4361)
IDirect3DDevice8_DrawIndexedVerticesUP (4134 - 4361)
IDirect3DDevice8_SetPixelShaderConstant (4134 - 4627)
IDirect3DDevice8_DeletePixelShader (4134 - 4627)
IDirect3DDevice8_SetRenderState_CullModeB (4134 - 4627)
IDirect3DDevice8_DeleteVertexShader (4134 - 4627)
IDirect3DDevice8_SetScreenSpaceOffset (4134 - 4627)
D3D::SetFence (XREF) (4134 - 4627)
IDirect3DDevice8_SetRenderState_LineWidth (4134 - 4361)
IDirect3DDevice8_GetGammaRamp (4134)
SetThreadPriorityBoost (4134 - 4361)
IDirect3DDevice8_BlockUntilVerticalBlank (4134)
IDirect3DDevice8_SetSwapCallback (4134 - 4361)
IDirect3DDevice8_GetTile (4134 - 4361)
IDirect3DDevice8_SetTile (4134 - 4361)
IDirect3DDevice8_IsBusy (4134 - 4361)
- Fix a bug in D3D8 4134. IDirect3DDevice8_SetRenderState_Fillmode_1_0_3925 was giving
us a false positive. The problem exists in 4034 as well because whoever started
trying to add 4034 and 4134 support just threw in a bunch of signatures from D3D8 3925
must have been looking for similarities in that XDK. Good idea when you don't have
a certain XDK, but it's not 100% safe to do (or leave in unattended).
- Attempting to impliment IDirect3DDevice8_SetSwapCallback. Some of the steps necessary
will revolve around IDirect3DDevice8_SetVerticalBlankCallback's inner workings. Adding
the callback function to execute each time D3DDevice_Present/Swap is called is easy, but
Some of the parameters require a bit of leg work. Right now, some of my implementation
is guess work. Hopefully Caustik will have a good idea of what to do.
- Even worse, the signatures for D3DDevice_SetSwapCallback and D3DDevice_SetVerticalBlankCallback
are almost completely identical and are different by an extremely small margin. For 4134,
it looks the same as 4361's. I might be over reacting, but I just don't want to screw this
up because working on JSRF is proving to be a delicate operation!
11/26/09
- Added the following function(s)
XnInit (5233)
bind (5233)
ioctlsocket (5233)
WSAStartup (5233)
XNetStartup (5233 - 5344)
CDirectSoundStream_SetMode (3936)
12/1/09
- Added the following function(s)
XACT::CEngine::RegisterNotification (4627)
IXACTEngine_RegisterNotification (4627)
XACT::CEngine::GetNotification (4627)
IXACTEngine_GetNotification (4627)
XACT::CEngine::CreateSoundBank (4928)
IXACTEngine::CreateSoundBank (4928)
XACT::CEngine::RegisterWaveBank (4928)
IXACTEngine::RegisterWaveBank (4928)
XAudioDownloadEffectsImage (4627 - 4928)
12/2/09
- Added the following function(s)
XACT::CEngine::UnRegisterWaveBank (4928)(*)
IXACTEngine_UnRegisterWaveBank (4928)(*)
IDirect3DDevice8_PersistDisplay (4627 & 4928)
XNetGetEthernetLinkStatus (4627 - 4928, 5233 & 5344)
XGWriteSurfaceOrTextureToXPR (4627 - 4928)
- Other things
Added D3DTOP_BLENDCURRENTALPHA (13)
- Unreal Championship gets passed the loading screen and the menus appear to be interactive
as well. It took F-O-R-E-V-E-R, but I'm finally beginning to make some significant progress
since my last updates for this game.
(*) Could be wrong. Look into IXACTEngine_SetNotification as well...
12/3/09
- Added the following function(s)
XLaunchNewImageA (4627 & 4928)
XGetLaunchInfo (4627 - 4928)
- Unreal Championship appears to be "almost" ingame. The LaunchData parameter from XLaunchNewImageA
is saved in a .bin file (CxbxLaunchData.bin) and is loaded once XGetLaunchInfo is called. After it
is loaded, the file is deleted so that Unreal Championship is started normally. When CxbxLaunchData.bin
is loaded by XGetLaunchInfo, Unreal Championship will use this data to load the desired level and
data that goes with it. The biggest problem is that the controller is no longer recognized after
Cxbx is restarted. It may take yet another hack to get around this. If we can, we'll find out whether
this game can be played or not.
12/26/09
- Added the following function(s)
XSetProcessQuantumLength (4627 & 4721)
XGetFileCacheSize (5233 & 5344)
IDirect3DDevice8_Unknown1 (5233) (*)
IDirect3DDevice8_SetRenderState_TwoSidedLighting (5120 & 5233)
IDirect3DDevice8_SetRenderState_FrontFace (4531 - 5233)
IDirect3DDevice8_SetRenderState_LogicOp (4721 - 5344)
IDirect3DDevice8_BeginPush (5233 & 5344)
IDirect3DDevice8_EndPush (5233 & 5344)
(*) This is not the actual function name. Since I was unable to find any functions even somewhat similar
to it (I don't have 5233, but not even 5344 helped this time), I just created a dummy function to the game
from crashing. There were 4 functions that had access to it, and I had no idea which one was calling it,
nor could I find out what those functions were either. The only lead I had was that it called the kernel
function AvSendTVEncoderOption, which led me to the assumption that we can get away with ignoring this function
for now. So far, this only occurs in games known as "Run Like Hell" and "Oddworld Munch's Oddyssee".
12/27/09
- Added the following function(s)
IDirect3DDevice8_AddRef (3925) [3911]
CDirectSoundStream_GetInfo (All) (*)
IDirect3DDevice8_Unknown1 (3925) (**)
IDirect3DDevice8_GetViewport (3925)
IDirect3DDevice8_GetGammaRamp (3925)
SignalObjectAndWait (3911 - 4627)
PulseEvent (3911)
IDirect3DDevice8_GetDisplayFieldStatus (3925)
- Stopped Cxbx from trying to assemble "empty" shaders in Azurik: Rize of Perathia.
(*) Since this function is part of the DirectSoundStream VTable (CDirectSoundStream::vtbl), the XDK doesn't
matter.
(**) See update for 12/26/09
12/28/09
- Added the following function(s)
IDirect3DDevice8_SetSwapCallback (4928)
IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias (3925) [3911]
12/29/09
- Added the following function(s)
CDirectSoundVoice_SetMode (4627 - 4831)
CDirectSoundBuffer_SetMode (4627 - 4831)
IDirectSoundBuffer_SetMode (4627 - 4831)
IDirect3DDevice8_SetRenderState_FrontFace (4531 - 5120)
IDirect3DDevice8_SetRenderState_MultiSampleMode (4531 - 4831)
IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode (4531 - 4831)
IDirect3DDevice8_SetRenderState_StencilCullEnable (4531 - 4831)
1/1/2010
- Added the following function(s)
IDirect3DDevice8_SetGammaRamp (4242 - 4531)
IDirect3DDevice8_CreateVertexBuffer (4432)
IDirect3DDevice8_SetShaderConstantMode (4361 - 4432)
IDirect3DDevice8_SetVertexShaderConstant (4432 & 4531?)
IDirect3DDevice8_CreatePixelShader (4432 & 4531)
IDirect3DDevice8_GetViewport (4400 - 4531?)
IDirect3DDevice8_DrawVertices (4400 - 4531?)
IDirect3DDevice8_SetFlickerFilter (4361 & 4432)
IDirect3DDevice8_SetSoftDisplayFilter (4361 & 4432)
IDirect3DDevice8_SetGammaRamp (4432)
IDirect3DDevice8_DrawIndexedVertices (4400 - 4531?)
IDirect3DDevice8_PrimeVertexCache (4361)
IDirect3DDevice8_BeginPush/EndPush (4361)
IDirect3DDevice8_Begin/End (4361 - 4531?)
IDirect3DDevice8_SetVertexData2f (4361 - 4531?)
IDirect3DDevice8_SetVertexData4f (4361 - 4531?)
IDirect3DDevice8_SetVertexData4ub (4361 - 4531?)
CDirectSoundBuffer_PlayEx (4361 - 4627)(*)
IDirectSoundBuffer8_PlayEx (4361 - 4627)(*)
CMxpxBuffer_Stop2 (4361 - 4432)(**)
CDirectSoundBuffer_StopEx (4361 - 4627)
IDirectSoundBuffer8_StopEx (4361 - 4627)
CDirectSound_SetPosition (4361 - 4432)
- Added support for D3DVSDE_BLENDWEIGHT
(*) Not yet confirmed
(**) There are two versions of CMcpxBuffer_Stop. One has one parameter (ulong), and the other has two and calls
the first one (__int64, ulong). My signature is for the one with 2 params.
1/2/10
- Added the following function(s)
CDirectSound_SetVelocity (4432)
CDirectSoundVOice_SetPosition (4432)
IDirect3DDevice8_SetIndices (4400 - 4531)
- Added all known blending operations (a bit surprised Caustik only added D3DBLENDOP_ADD)
1/3/10
- Added the following function(s)
IDirect3DDevice8_SetRenderState_VertexBlend (3925) [3911]
IDirect3DDevice8_SetRenderState_BackFillMode (3925) [3911]
IDirect3DDevice8_SetRenderState_TwoSidedLighting (3925) [3911]
IDirect3DDevice8_SetRenderState_NormalizeNormals (3925) [3911]
IDirect3DDevice8_SetRenderState_FrontFace (3925) [3911]
IDirect3DDevice8_SetRenderState_TextureFactor (3925) [3911]
IDirect3DDevice8_SetRenderState_LogicOp (3925) [3911]
IDirect3DDevice8_SetRenderState_EdgeAntiAlias (3925) [3911]
IDirect3DDevice8_SetRenderState_MultiSampleMask (3925) [3911]
IDirect3DDevice8_SetRenderState_MultiSampleMode (3925) [3911]
CreateFiber (4432)
DeleteFiber (4432)
- Added the following kernel function(s)
KeBugCheck (*)
- Fixed up EmuIDirect3DDevice8_UpdateOverlay a bit. Updating the overlay
in software lets me see video playback again and let's me take screen
shots because it's a YUV -> RGB conversion. Videos also play at more
"correct" speeds in software anyway. Unreal Championship requires
this to be done in software to avoid crashing. Also, since the YUV
overlay is done in software, it's not updated automatically like a hard-
ware accelerated overlay, so I added a hack to update the screen if
Present or Swap was not called since the last update of the overlay.
this fixes most problems I've had with video playback.
(*) TODO: Find out what is calling this (possibly XapiFiberStartup)
1/4/10
- Added the following function(s)
IDirect3DDevice8_SetRenderState_ShadowFunc (3925) [3911]
IDirect3DDevice8_SetRenderState_LineWidth (3925) [3911]
IDirect3DDevice8_SetRenderState_YuvEnable (3925) [3911]
IDirect3DDevice8_PersistDisplay (3925) [3911]
1/5/10
- Added the following function(s)
CDirectSoundVoice_SetPitch (4627)
CDirectSoundBuffer_SetPitch (4627)
IDirectSoundBuffer8_SetPitch (4627)
CMcpxBuffer_GetStatus (4721)
IDirect3DDevice8_CreateIndexBuffer (5558)
IDirect3DDevice8_CreateIndexBuffer2 (5558)
IDirect3DDevice8_SetVerticalBlankCallback (5233)
- The TechCertGame works again, but freezes ingame.
1/6/10
- Added the following function(s)
IDirect3DDevice8_SampleAlpha (5233 - 5344)
IDirect3DDevice8_GetVertexShaderSize (4134 - 4531)
1/8/10
- Added the following function(s)
CMcpxBuffer_Pause (4928 - 5344)
CDirectSoundBuffer_Pause (4928 - 5344)
IDirectSoundBuffer8_Pause (4928 - 5344)
CreateSemaphore (5558) (*)
ReleaseSemaphore (5558) (*)
IDirect3D8_GetAdapterModeCount (4721 - 5558)
IDirect3D8_EnumAdapterModes (4721 - 5558)
IDirect3DDevice8_SetverticalBlankCallback (5558)
IDirect3DDevice8_SetSwapCallback (5558)
IDirect3DDevice8_GetGammaRamp (5558 - 5659?)
IDirect3DDevice8_SetRenderState_TextureFactor (5558)
IDirect3DDevice8_SetRenderState_VertexBlend (5558)
- Created new function EmuXB2PC_D3DMultisampleFormat(DWORD Type) in convert.cpp
- Fixed a bug in IDirect3D8_CheckMultiSampleDeviceType, actually use PCSurfaceFormat
flag instead of actual parameter!
(*) Yes they are high level, but it fixes some problems with Metal Arms (5558)
1/15/10
- Added the following function(s)
IDirect3DDevice8_DrawVertices (3925) [3911]
IDirect3DDevice8_DrawVerticesUP (3925) [3911]
IDirect3DDevice8_DrawIndexedVerticesUP (3925) [3911]
CMcpxAPU::Set3dDopplerFactor (3936) [3911]
CDirectSound::SetDopplerFactor (3936) [3911]
IDirectSound8_SetDopplerFactor (3936) [3911]
IDirect3DDevice8_GetDisplayMode (3925) [3911]
XGIsSwizzledFormat (3911)
XGSizzleRect (3911)
XGUnswizzleRect (3911)
XGSwizzleBox (3911)
XGWriteSurfaceOrTextureToXPR (3911)
- Added the following kernel function(s)
IoDismountVolumeByName
HalReadSMCTrayState
- Added XG.1.0.3911.h/inl (it's about damn time!)
1/16/09
- Added the folliwing function(s)
IDirect3DDevice8_SetTextureState_BumpEnv (3925) [3911]
IDirect3DDevice8_SetTextureState_ColorKeyColor (3925) [3911]
IDirect3DDevice8_SetVertexData4s (3925) [3911]
IDirect3D8_SetPushBufferSize (3925) [3911]
CSensaura3d::GetFullHRTFFilterPair (3936) [3911]
DirectSoundUseFullHRTF (3936) [3911]
CDirectSound::GetCaps (3936) [3911]
IDirectSound8_GetCaps (3936) [3911]
1/22/09
- Added the following function(s)
timeSetEvent (4627 & 4721)
timeKillEvent (4627 & 4721)
CDirectSoundVoice::SetConeAngles (3936) [3911]
DirectSoundEnterCriticalSection (3936) [3911]
CDirectSoundBuffer::PlayEx (3936) [3911]
IDirectSoundBuffer8_PlayEx (3936) [3911]
DirectSoundUseFullHRTF (3936) [3911]
RaiseException (4627 - 4928)
1/23/10
- Added the following function(s)
D3D_AllocContiguousMemory (3925) [3911] (*)
IDirect3DResource8_GetType (3925) [3911] (*)
(*) Cxbx doesn't crash without this signature...
(**) Just for testing purposes. You can remove it if you want/need.
1/24/10
- Added the following function(s)
IDirect3DDevice8_SetRenderState_Deferred (3925) [3911] (*)
IDirect3DDevice8_SetLight (3925) [3911]
IDirect3DDevice8_LightEnable (3925) [3911]
IDirect3DDevice8_CreateVertexShader (3925) [3911]
IDirect3DDevice8_SetRenderTarget (3948) [3911]
(*) This can/should be removed once the detection of 3911's D3DDeferredRenderState
is properly located.
- Fixed the ordering problem with Deferred Texture States in 3911.
- TODO: Compensate the difference in modified vertex shader constants.
1/25/10
- Added the following function(s)
IDirect3DSurface8_GetDesc (3925) [3911]
IDirectSound8_AddRef (3936) / [3911] - 4242
DirectSoundGetSampleTime (3936) [3911]
IDirectSoundBuffer8_AddRef (3936) [3911] - 4627
- Moved the following function(s)
IDirectSound8_AddRef (4361 -> 3936)
IDirectSoundBuffer8_AddRef (4627 -> 3936)
- Fix some bugs in EmuDirectSoundBufferCreate. DSBCAPS_MIXIN,_FXIN AND _FXIN2
were getting by the "AcceptableMask" undetected.
1/27/10
- Added the following function(s)
IDirect3DDevice8_SetTile (3925) [3911]
CDirectSoundBuffer::SetMinDistance (3936) [3911]
IDirectSoundBuffer8_SetMinDistance (3936) [3911]
CDirectSoundBuffer::SetMaxDistance (3936) [3911]
IDirectSoundBuffer8_SetMaxDistance (3936) [3911]
IDirect3DDevice8_ApplyStateBlock (3925) [3911]
IDirect3DDevice8_CaptureStateBlock (3925) [3911]
IDirect3DDevice8_CreateStateBlock (3925) [3911]
IDirect3DDevice8_DeleteStateBlock (3925) [3911]
IDirect3DDevice8_DeletePixelShader (3925) [3911]
IDirectSoundBuffer8_SetMixBinVolumes (3925) [3911]
_ Added the following kernel function(s)
KeRaiseIrqlToDpcLevel
1/28/10
- Added the following function(s)
QueueUserAPC (3911 - 5788)
GetThreadPriority (5849)
SetThreadPriorityBoost (5849)
IDirect3DDevice8_BlockUntilVerticalBlank (5849)
XGetSectionHandleA (5849)
XLoadSectionByHandle (5949)
XFreeSectionByHandle (5849)
XGetSectionSize (5849)
- Moved the following function(s)
QueueUserAPC (5849 -> 3911)
- Fixed the problem with QueueUserAPC, it works now. Had to set the
right permisions for it to work on windows.
- Made another signature for CMcpxBuffer::GetCurrentPosition (3911). The original
was off by one byte.
2/4/10
- Added the following function(s)
D3D::KickOffAndWaitForIdle (5344 - 5558)
IDirect3DDevice8_Reset (5558)
IDirect3DDevice8_SetGammaRamp (5455 - 5558)
IDirect3DDevice8_GetViewport (5558)
GetFileAttributesA (5558)
VirtualProtect (4627 - 5558) (*)
(*) Probably too high level...
4/9/10
- Added new Simple Renderstates
D3DRS_STENCILZFAIL
D3DRS_STENCILPASS
D3DRS_STENCILFUNC
D3DRS_STENCILREF
D3DRS_STENCILMASK
D3DRS_STENCILWRITEMASK
- Added the following function(s)
D3DDevice_SetModelView (3925) [3911]
D3DDevice_FlushVertexCache (3925) [3911]
D3DDevice_SetScissors (3925) [3911]
D3DDevice_SetVertexShaderInput (3925) [3911]
D3DDevice_PrimeVertexCache (3925) [3911]
D3DDevice_SetVertexData4ub (3925) [3911]
D3DDevice_SetVertexShaderConstant (3925) [3911]
D3DDevice_BeginPushBuffer (3925) [3911]
D3DDevice_EndPushBuffer (3925) [3911]
D3DDevice_SetRenderState_RopZCmpAlwaysRead (3925) [3911]
D3DDevice_SetRenderState_RopZRead (3925) [3911] (*)
D3DDevice_SetRenderState_DoNotCullUncompressed (3925) [3911] (*)
(*) Not yet verified. Signatures are right, but XRefs probably aren't.
4/10/10
- Added a new fix for Halo in EmuFlushIVB(). Use g_IVBFVF when the current FVF is 0.
- Added the following function(s)
D3D::SetFence (XRef) (3925) [3911]
D3DDevice_InsertFence (3925) [3911]
D3DDevice_LoadVertexShaderProgram (3925) [3911]
D3DDevice_RunPushBuffer (3925) [3911]
IDirectSoundBuffer8_Play (3936) [3911] (Fixed)
- Azurik: Rize of Perathia now goes ingame!
4/11/10
- Fixed a minor bug with the deferred texture state (D3DTSS_MAGFILTER) for XDK 3911.
- Fixed a major bug in the push buffer execution code. The stride was not incremented
for the D3DFVF_XYZ flag. Using the position mask to find position related FVFs.
- Robotech: Battlecry is now playable!
4/13/10
- Added the following function(s)
Direct3D_EnumAdapterModes (5233-5344)
D3DDevice_SetVerticalBlankCallback (5455)
D3DDevice_GetProjection
4/21/10
- Added the following function(s)
D3DDevice_GetModelView (5558)
D3DDevice_SetBackMaterial (5558)
D3DDevice_SetRenderState_TwoSidedLighting (5558)
4/26/10
- Added the following function(s)
D3DDevice_SetTransform (4034) (removed 3925 signature causing false positives).
D3DDevice_CreatePixelShader (4034, 4039)
D3DDevice_GetVertexShaderSize (4034, 4039)
4/27/10
- Added the following function(s)
D3DDevice_SetRenderState_CullMode (4034, 4039)
D3DSurface_LockRect (4034)
Lock2DSurface (4034)
D3DDevice_BeginVisibilityTest (4034)
D3DDevice_EndVisibilityTest (4034)
- Moved the following signature(s)
D3DDevice_DrawVertices (4134 -> 4034)
D3DDevice_DrawIndexedVertices (4134 -> 4034)
D3DDevice_BeginVisibilityTest (4034)
D3DDevice_EndVisibilityTest (4034)
TODO: Add D3DResource_GetType?
4/28/10
- Added the following function(s)
D3DDevice_CopyRects (4034)
D3DDevice_SetStreamSource (4034)
D3DDevice_SetTextureState_BorderColor (4034)
D3DDevice_SetTextureState_ColorKeyColor (4034)
D3DDevice_LoadVertexShader (4034)
D3DDevice_DrawRectPatch (4034)
D3DDevice_SetIndices (4034)
D3DDevice_SetRenderState_EdgeAntiAlias (4034)
D3DDevice_SetRenderState_FillMode (4034)
D3DDevice_SetRenderState_BackFillMode (4034)
D3DDevice_SetRenderState_FogColor (4034)
D3DDevice_SetRenderState_FrontFace (4034)
D3DDevice_SetRenderState_LogicOp (4034)
D3DDevice_SetRenderState_MultiSampleAntiAlias (4034)
D3DDevice_SetRenderState_MultiSampleMask (4034)
D3DDevice_SetRenderState_NormalizeNormals (4034)
D3DDevice_SetRenderState_ShadowFunc (4034)
D3DDevice_SetRenderState_Simple (4034)
D3DDevice_SetRenderState_StencilEnable (4034)
D3DDevice_SetRenderState_StencilFail (4034)
D3DDevice_SetRenderState_YuvEnable (4034)
D3DDevice_SetRenderState_VertexBlend (4034)
D3DDevice_Swap (4034)
Direct3D_CheckDeviceFormat (4034)
Direct3D_SetPushBufferSize (4034)
Get2DSurfaceDesc (4034)
D3DTexture_GetSurfaceLevel (4034)
D3DDevice_SetRenderState_ZEnable (4034)
D3DDevice_LightEnable (4034)
D3DDevice_ (4034)
XInputSetState (4034)
RtlCreateHeap (4034)
RtlReallocateHeap (4034)
RtlFreeHeap (4034)
RtlReAllocateHeap (4034)
RtlSizeHeap (4034)
XRegisterThreadNotifyRoutine (4034)
XGetDeviceChanges (4034)
XID_fCloseDevice (4034)
XInputClose (4034)
XInputGetCapabilities (4034)
GetThreadPriority (4034)
XInputOpen (4034)
XInputGetState (4034)
- Some of the above signatures need to be fixed.
- Also, many of these signatures above will work with 4039 as well.
4/29/10
- Added the following function(s)
D3D::CDevice::KickOff (4134)
D3D::SetFence (4134)
D3DDevice_BlockOnFence (4134 - 4361)
D3DDevice_GetRenderTarget (4134 - 4361)
D3DDevice_Release (4134)
D3DDevice_GetDisplayMode (4134)
- Added the following texture format(s)
D3DFMT_LIN_D16 (Use D3DFMT_R5G6B5 instead)
D3DFMT_LIN_G8B8 (Use D3DFMT_R5G6B5 instead)
6/??/10
- Panzer goes ingame again.
7/5/10
- Added the following function(s)
XLaunchNewImageA (5849)
7/11/10
- Added the following function(s)
D3DDevice_BeginStateBlock (5558)
D3DDevice_EndStateBlock (5558)
CDirectSound::EnableHeadphones [3936] (3911)
IDirectSound_EnableHeadphones [3936] (3911)
- Blasteroids-X shows intro screen (missing an unknown DirectSound API and a bug in RtlLeaveCriticalSection)
- BloodWake shows loading screen.
- Fixed a bug where some textures weren't getting unswizzled before rendering (thanks defiance!)
- Temporarily commented out bad signatures:
CDirectSoundStream::SetAllParameters[AB] (3911)
CDirectSoundStream::SetI3DL2Source[A] (3911)
- Turok broke somehow (NULL surface causing crash). :(
7/14/10
- Added the following function(s)
Direct3D_EnumAdapterModes (3911) [3925]
Direct3D_GetAdapterModeCount (3911) [3925]
D3DDevice_Reset (3911) [3925]
Direct3D_GetAdapterIdentifier (3911) [3925]
Direct3D_GetDeviceCaps (3911) [3925]
lstrcmpiW (3911 - 3944)
7/15/10
- Added the following function(s)
GetFileAttributesA (4361) (*)
XMountMUA (4361)
CreateWaitableTimerA (4361)
SetWaitableTimer (4361)
(*) This function should be used instead of it's low level counterpart!
7/16/10
- Added the following function(s)
D3DDevice_SetRenderState_FrontFace (5558)
7/17/10
- Added the following function(s)
D3DDevice_Clear (5849_LTCG)
D3DDevice_Swap (5849_LTCG)
D3DVertexBuffer_Lock2 (5849_LTCG)
D3DDevice_SetVertexShader (5849_LTCG)
7/19/10
- Added the following function(s)
D3DDevice_SetRenderState_FrontFace (5849)
D3DDevice_SetBackMaterial (5849)
D3DDevice_SetRenderState_TwoSidedLighting (5849)
7/23/10
- Added the following function(s)
XMountAlternativeTitleA (3911, 4627, 4928)
XUnmountAlternativeTitleA (3911, 4627 - 4928)
7/24/10
- Added the following function(s)
D3D::KickOffAndWaitForIdle (5849)
- Added a seperate check for priviledged instructions
11/7/10
- Added the following function(s)
D3DDevice_BeginStateBlock (4627)
D3DDevice_EndStateBlock (4627)
D3DDevice_ApplyStateBlock (4627)
D3DDevice_CaptureStateBlock (4627)
D3DDevice_DeleteStateBlock (4627)
D3DSurface_GetDesc (4034, 4039)
D3D::PixelJar::Get2DSurfaceDesc (4034, 4039)
D3DDevice_Clear (4034)
D3DDevice_SetLight (4034)
D3DVertexBuffer_Lock (4034)
D3DDevice_SetTexture (4034)
D3DDevice_SetPalette (4034)
D3DDevice_SetTextureState_TexCoordIndex (4034)
D3DDevice_SetMaterial (4034)
D3DDevice_SetVertexShader (4034)
D3DDevice_Swap (4034)
D3D::KickOffAndwaitForIdle (4034)
11/8/10
- Added the following function(s)
XGSwizzleBox (4034)
XGSwizzleRect (4034)
D3D::PixelJar::Get2DSurfaceDesc (5558)
D3DTexture_LockRect (5558)
D3D::MakeRequestedSpace (5558)(*)
D3DDevice_MakeSpace (5558)(*)
CDirectSoundVoice::SetI3DL2Source (5558)
CDirectSoundBuffer::SetI3DL2Source (5558)
IDirectSoundBuffer8_SetI3DL2Source (5558)
CDirectSoundVoice::SetAllParameters (5558)
CDirectSoundBuffer::SetAllParameters (5558)
IDirectSoundBuffer8_SetAllParameters (5558)
XGetSectionHandleA (5558)
XLoadSectionByHandleA (5558)
XFreeSectionByHandleA (5558)
CDirectSoundVoice::SetHeadroom (5558)
CDirectSoundBuffer::SetHeadroom (5558)
IDirectSoundBuffer8_SetHeadroom (5558)
CDirectSoundStream::SetHeadroom (5558)(**)
CDirectSoundBuffer::GetCurrentPosition (5558)
IDirectSoundBuffer_GetCurrentPosition (5558)
CDirectSoundStream::SetFormat (5558)
CDirectSoundStream::SetMixBins (5558)
D3DDevice_SetRenderTarget (5558)
D3DDevice_SetPixelShaderConstant (5558)
Lock2DSurface (5558)
D3DDevice_SetFlickerFilter (5455)
CDirectSound::EnableHeadphones (5455, 5558)
IDirectSound8_EnableHeadphones (5455, 5558)
SetThreadPriority (5455, 5558)
D3DDevice_BlockUntilVerticalBlank (5455)
GetThreadPriority (5455, 5558)
GetTimeZoneInformation (5455, 5558)
SetThreadPriorityBoost (5455, 5558)
D3DDevice_SetScissors (5455)
D3DDevice_SetScreenSpaceOffset (5455, 5558)
D3DDevice_InsertCallback (5455, 5558)
D3DDevice_SetRenderState_LineWidth (5455)
D3DDevice_FlushVertexCache (5455, 5558)
D3DDevice_SetRenderState_LogicOp (5455, 5558)
- Added the following file(s)
XG.1.0.4034.cpp/h
- Fixed the 5558 signature for D3DDevice_SetVertexShaderConstant1
- Added cube texture support in EmuIDirect3DDevice8_CreateTexture2
- Metal Arms (XDK 5558) is starting to work!
(*) These functions are not to be emulated, just used to find functions
that call them... making my life easer!
(**) I only added the signature, not the actual function that goes with
it. I'll do that later because I'm just adding the stuff that Metal Arms
needs to work for now.
11/9/10
- Added the following function(s)
D3DDevice_LightEnable (5455)
D3DDevice_SetModelView (5455, 5558)
D3DDevice_SetIndices (5455)
IDirectSound_AddRef (5233)
D3DDevice_SetVertexData4ub (4531-5344)
D3DDevice_SetVertexData2f (5233, 5344)
D3DDevice_SetVertexData4f (5233, 5344)
D3DDevice_SetViewport (5344)
D3DDevice_SetTransform (5344)
D3DDevice_GetBackBuffer2B (5558)(*)
D3DDevice_PersistDisplay (5558)
- An implementation of D3DDevice_SetModelView is still needed!
- Fixed a bug in HLEIntercept.cpp; XapiInitProcess sig for XDK 5344 was not
being referenced (was using 5233's sig instead).
- Tetris Worlds (5233) shows intro screens and XIII (5558) shows dirty disc
error (because I didn't hava a full dump).
(*) Nothing special, but the signature is just different by one byte
in XIII, so I created two different sigs so Metal Arms doesn't break!
11/11/10
- Added the following function(s)
D3DDevice_Release (4361)
D3D::CreateStandAloneSurface (4034)(*)
D3DDevice_GetBackBuffer (4034)
D3D::SetTileNoWait (5849)
D3DDevice_SetGammaRamp (5849)
CDirectSoundVoiceSettings::SetMixBins (5849)
CDirectSoundVoice::SetMixBins (5849)
CDirectSoundBuffer::SetMixBins (5849)
IDirectSoundBuffer_SetMixBins (5849)
CDirectSoundStream_SetMixBins (5849)
CDirectSound::SetMixBinVolumes (5849)
IDirectSound_SetMixBinVolumes (5849)
XnInit (5849)
XNetStartup (5849)
WSAStartup (5849)
XNetGetEthernetLinkStatus (5849)
XInputSetState (5849)
CDirectSound::SetPosition (5849)
IDirectSound_SetPosition (5849)
(*) D3DDevice_CreateImageSurface is just a simple call to this function.
It's the same, so treat it as such. Add it whenever possible because
Cxbx won't crash when it's not intercepted! I added this and Simpsons
RoadRage started to work!
11/13/10
- Added the following function(s)
CDirectSound::setVelocity (5849)
IDirectSound_SetVelocity (5849)
CDirectSound::CommitDeferredSettings (5849)
D3DDevice_GetRenderTarget2 (5849)
12/13/10
- Added the following function(s)
D3D::BlockOnTime (3911) [3925]
D3D::BlockOnResource (3911) [3925]
- Fixed a bug in NtAllocateVirtualMemory. The Xbox exclusive flag MEM_NOZERO
holds the same value as MEM_ROTATE, causing an error to be returned (0xC00000F3)
that occurs in XP, but not Vista.
- Azurik now goes ingame on XP (due to the above fix)! Man, I love this game so
much... *tear*
12/26/10
- Added the following function(s)
D3DDevice_CreateCubeTexture (4361)
D3DCubeTexture_GetCubeMapSurface (4361)
1/13/11
- Added the following function(s)
XInputGetCapabilities (4928, for Defender)
CDirectSound::SetAllParameters (4928)
CDirectSoundVoice::SetRollOffCurve (4627-4928)
CDirectSoundBuffer::SetRollOffCurve (4627-4928)
CDirectSoundStream::SetRollOffCurve (4627-4928)
IDirectSoundBuffer_SetRollOffCurve (4627-4928)
D3D::BlockOnTime (4627-4928)
D3DDevice_BlockOnFence (4627-4928)
1/28/11
- Added the following texture format(s)
D3DFMT_LIN_A8
- Added the following function(s)
D3D::PixelJar::Lock3DSurface (4627-4831)(*)
D3D::PixelJar::Lock2DSurface (4242-5120)(*)
D3DDevice_CreateImageSurface (4627-4831)
D3DCubeTexture8_GetCubeMapSurface2 (4627-4831)
XFileCreateMediaObjectEx (4627-4831)
- Fixed a bug in EmuIDirect3DDevice8_SetTextureStageState_TextureCoordIndex
- Whacked goes ingame, only on Debug mode so far. Retail crashes. Single
player campaign crashes also :(
- Quantum Redshift reaches menus. Missing blending required option.
(*) These should have been added a long time ago. With all due respect, I
find it a bit amusing that D3DDevice_CopyRects was implemented and
D3DDevice_CreateImageSurface wasn't O_o
TODO: Verify that Lock3DSurface is the same on other XDKs like Lock2DSurface
1/29/11
- Added the following function(s):
XWaveFileCreateMediaObject (4627-4831)
CDirectSoundBuffer::SetEG (4627-4721)
IDirectSoundBuffer_SetEG (4627-4721)
D3DDevice_SetSoftDisplayFilter (4627-4928)
XGetFileCacheSize (4627-4928)
CDirectSoundStream_SetHeadRoom (4627-4928)
D3DDevice_SetPixelShader (4627-4928)
D3DDevice_CreatePalette2 (4627)
D3DPalette_Lock2 (4627)
- Added a dirty hack for a missing blend state D3DBLEND_CONSTANTCOLOR
This is not supported by standard Direct3D, but is supported on OpenGL.
- Quantum Redshift; controller input not yet working, but updated to ingame
status because ingame graphics do work when demos are played and loads
levels without problems, but complete loading fails due to a failed texture
creation attempt (512x512xDXT1 8 mip levels). Controller won't respond.
2/3/11
- Added the following function(s)
XMountMUA (5558)
Probably more I forgot.
2/4/11
- Added the following function(s)
D3DDevice::SetRenderState_StencilFail (5849)
D3DDevice::SetRenderState_VertexBlend (5849)
D3DDevice::SetRenderState_MultiSampleMask (5849)
D3DDevice::SetPalette (5849)
D3DDevice::LoadVertexShaderProgram (5849)
DirectSoundCreateBuffer (5849)
XGetDeviceEnumerationStatus (5849)
D3DDevice::GetPushBufferOffset (5849)
D3D::MakeRequestedSpace (5849) (XRef only)
D3D::MakeSpace? (5849) (XRef only)
D3DDevice_SetVertexShaderConstantNotInline (5849)
D3DDevice_FlushVertexCache (5849)
D3DDevice_BeginPushBuffer (4627)
D3DDevice_EndPushBuffer (4627)
3/27/11
- Instead of redirecting DSOUND 4134 -> 4627, Write a totally new DSOUND .inl
file for it. See? I'm working on JSRF...
- Added the following function(s)
IDirectSound8_CreateSoundBuffer (4134)
CDirectSoundVoice::SetHeadroom (4134)
CDirectSoundBuffer::SetHeadroom (4134)
IDirectSoundBuffer_SetHeadroom (4134)
IDirectSoundBuffer_Lock (4134)
CDirectSoundVoice::SetVolume (4134)
CDirectSoundBuffer::SetVolume (4134)
IDirectSoundBuffer_SetVolume (4134)
CDirectSound::SetI3DL2Listener (4134)
IDirectSound_SetI3DL2Listener (4134)
CDirectSound::GetBufferData (4134)
IDirectSound_GetBufferData (4134)
timeSetEvent (4134)
timeKillEvent (4134)
CDirectSoundVoiceSettings::SetMixBins (4134)
CDirectSoundVoice::SetMixBins (4134)
CDirectSoundBuffer::SetMixBins (4134)
IDirectSoundBuffer_SetMixBins (4134)
4/6/11
- Added the following function(s)
XGSetTextureHeader (3911)
4/16/11
- Added the following function(s)
D3DDevice_SetShaderConstantMode (4134)
4/17/11
- Added the following function(s)
D3DDevice_GetVertexShaderSize (5849)
D3DDevice_LoadVertexShader (5849)
D3DDevice_SelectVertexShader (5849)
CMcpxBuffer::SetCurrentPosition (5849)
CDirectSoundBuffer::SetCurrentPosition (5849)
IDirectSoundBuffer_SetCurrentPosition (5849)
5/9/11
- Added the following function(s)
CDirectSound::SetDistanceFactor (4531)
CDirectSound::SetDopplerFactor (4531)
CDirectSoundBuffer::SetLoopRegion (5849)
IDirectSoundBuffer_SetLoopRegion (5849)
XFormatUtilityDrive (5849)
D3DDevice_AddRef (5849)
D3D::ClearStateBlockFlags (5849)
D3D::RecordStateBlock (5849)
D3DDevice_BeginStateBlock (5849)
D3DDevice_EndStateBlock (5849)
CMcpxBuffer::Stop (5849)
CDirectSoundBuffer::StopEx (5849)
IDirectSoundBuffer_StopEx (5849)
5/20/11
- Added the following function(s)
D3DDevice_SetRenderState_BackFillMode (5849)
D3DDevice_SetRenderState_Dxt1NoiseEnable (5849)
D3DDevice_GetTile (5849)
XapiInitProcess (5028)
6/15/11
- Added the following function(s)
XGUnswizzleRect (4627)
- Added the following source file(s)
XG.1.0.4432.h/inl
6/25/11
- Added the following function(s)
XInputGetDeviceDescription (4831)
- Fixed the signature for XInputCapabilities (4831). This signature is
generally very weak among 4831 and 4928...
11/2/11
- Added the following function(s)
XAutoPowerDownResetTimer (3911, 3944)
CDirectSoundBuffer::SetNotificationPositions (3911, 3944)
IDirectSoundBuffer_SetNotificationPositions (3911, 3944)
XLoadSectionHandleA (3911, 3944)
XFreeSectionHandleA (3911, 3944)
XGetSectionHandleA (3911, 3944)
XMountMURootA (3911, 3944)
- Added the following kernel function(s)
DbgPrint
ExSaveNonVolatileSetting
- Xbox Dashboard (3944) is working. Not fully functional but working.
11/3/11
- Made a few quick fixes to make the Dashboard a little more functional
and a little less buggy/crashy. Now only the system info option will
kill you!
12/3/11
- Added proper critical section handling. Xbox critical section structure
is different than the Win32 one. Using revel8n (defiance)'s code. Thanks!
- Added a dirty fix for XAPILIB.1.0.3950. So far, only the Halo demo uses this.
Should make a proper fix later.
1/7/12
- Added the following function(s)
CreateFiber (5558-5849)
DeleteFiber (5558-5849)
SwitchToFiber (3911, 5558-5849)
ChangeThreadToFiber (3911, 5558-5849)
1/10/12
- Added the following function(s)
D3DDevice_Swap (5849)(*)
D3D::CDevice::KickOff (D3DDevice::KickPushBuffer) (5849)
D3DDevice_SetRenderState_RopZCmpAlwaysRead (5455-5849)
D3DDevice_SetRenderState_RopZRead (5455-5849)
D3DDevice_SetRenderState_DoNotCullUncompressed (5455-5849)
D3DDevice_SetSoftDisplayFilter (5849)
D3DDevice_SetFlickerFilter (5849)
CDirectSound::SetRollOffFactor (5849)
IDirectSound8_SetRollOffFactor (5849)
CDirectSound::SetDopplerFactor (5849)
IDirectSound8_SetDopplerFactor (5849)
CDirectSoundVoice::SetPitch (5849)
CDirectSoundBuffer::SetPitch (5849)
IDirectSoundBuffer8:SetPitch (5849)
CDirectSoundVoice::SetMaxDistance (5849)
CDirectSoundBuffer::SetMaxDistance (5849)
IDirectSoundBuffer8_SetMaxDistance (5849)
CDirectSoundVoice::SetMinDistance (5849)
CDirectSoundBuffer::SetMinDistance (5849)
IDirectSoundBuffer8_SetMinDistance (5849)
CDirectSoundVoice::SetVolume (5849)
CDirectSoundBuffer::SetVolume (5849)
IDirectSoundBuffer8_SetVolume (5849)
CDirectSoundVoice::SetPosition (5849)
CDirectSoundBuffer::SetPosition (5849)
IDirectSoundBuffer8_SetPosition (5849)
CDirectSoundVoice::SetVelocity (5849)
CDirectSoundBuffer::SetVelocity (5849)
IDirectSoundBuffer8_SetVelocity (5849)
CMcpxBuffer::Play (5849)(**)
CDirectSoundBuffer::PlayEx (5849)
IDirectSoundBuffer8_PlayEx (5849)
D3DDevice_SetRenderState_MultiSampleMode (5849)
D3DDevice_SetRenderState_MultiSampleRenderTargetMode (5849)
D3DDevice_SetRenderState_MultiSampleAntiAlias (5849)
D3DDevice_SetRenderState_MultiSampleMask (5849)
RtlDestroyHeap (4242-4531, 4721-5849)
CDirectSound::CreateSoundStream (5849)
DirectSoundCreateStream (5849)
CDirectSoundStream::SetMixBinVolumes (5849)
CMcpxStream::Pause (5849)
CDirectSoundStream::Pause (5849)
CDirectSoundStream::FlushEx (5849)
IDirectSoundStream_FlushEx (5849)
DirectSoundDoWork (5849)
D3DDevice_GeDisplayFieldStatus (5849)
CDirectSound::SynchPlayback (5849)
IDirectSound8_SynchPlayback (5849)
- Fixed a tiny bug in the vertex shader reassembler code (needed a bigger buffer
for Castlevania).
(*) Needed an alternative signature for this one.
(**) Needed a new signature.
1/14/12
- Added the following function(s)
D3DDevice_SetVertexShaderConstant1Fast (5558)
D3DDevice_LoadVertexShaderProgram (5558)
D3DDevice_SetPixelShaderProgram (5558)
XID_fCloseDevice (5558)
XInputClose (5558)
CDirectSound::SetPosition (5558)
IDirectSound8_SetPosition (5558)
CDirectSound::SetVelocity (5558)
IDirectSound8_SetPosition (5558)
CDirectSound::CreateStream (5558)
IDirectSound8_CreateStream (5558)
CDirectSoundStream::SetRolloffCurve (5558)
CDirectSoundStream::SetMinDistance (5558)
CDirectSoundStream::SetHeadroom (5558)
CDirectSoundStream::SetFrequency (5558)
2/29/12
- Added the following function(s)
D3DDevice_SetRenderState_BackFillMode (5344-5558)
D3DDevice_SetRenderState_TextureFactor (5344-5558)
D3DDevice_SetRenderState_MultiSampleMask (5344-5558)
D3DDevice_SetRenderState_MultiSampleMode (5455, 5558)
D3DDevice_SetRenderState_MultiSampleRenderTargetMode (5455, 5558)
D3DDevice_SetRenderState_Dxt1NoiseEnable (5455, 5558)
D3DDevice_SetRenderState_StencilCullEnable (5344-5558)
D3DDevice_SetTextureState_ColorKeyColor (5344-5558)
9/24/12
- Added the following function(s)
D3DDevice_GetBackBuffer2 (5344)
D3DDevice_SetVerticalBlankCallback (5344)
D3DDevice_SetSwapCallback (5344)
D3DDevice_GetViewport (5344)
CDirectSoundVoice::SetMaxDistance (5344)
CDirectSoundBuffer::SetMaxDistance (5344)
IDirectSoundBuffer_SetMaxDistance (5344)
CDirectSoundVoice::SetMinDistance (5344)
CDirectSoundBuffer::SetMinDistance (5344)
IDirectSoundBuffer_SetMinDistance (5344)
CDirectSound::SetI3DL2Listener (5344)
IDirectSound_SetI3DL2Listener (5344)
CDirectSound::SetRolloffFactor (5344)
IDirectSound_SetRolloffFactor (5344)
CDirectSound::SetDistanceFactor (5344)
IDirectSound_SetDistanceFactor (5344)
CDirectSound::SetDopplerFactor (5344)
IDirectSound_SetDopplerFactor (5344)
D3DDevice_SetRenderTargetFast (5344)
D3DDevice_SetScreenSpaceOffset (5344)
D3DDevice_SetScissors (5344)
D3DDevice_SetMaterial (5344)
D3DCubeTexture_GetCubeMapSurface2 (5344, 5849)
D3DDevice_SetVertexShaderConstant1Fast (5788, 5849)
9/27/12
- Added the following function(s)
XAudioDownloadEffectsImage (5849)
IDirectSound_SetEffectData (5849) (No X-Refs!)
D3DDevice_SetScissors (5849)
D3DDevice_GetScissors (5849)
D3DDevice_GetBackMaterial (5849)
D3DDevice_CaptureStateBlock (5849)
D3DDevice_ApplyStateBlock (5849)
D3DDevice_SetRenderState_StencilCullEnable (5849)
D3DDevice_SetRenderState_OcclusionCullEnable (5849)
XFileMediaObject_Seek (XDK Independent)
CDirectSoundStream::SetFormat (5849)
CDirectSoundStream::SetPitch (5849)
CDirectSoundStream::SetHeadroom (5849)
XFileMediaObject_AddRef (XDK Independent)
XFileMediaObject_Release (XDK Independent)
XFileMediaObject_GetInfo (XDK Independent)
XFileMediaObject_GetStatus (XDK Independent)
XFileMediaObject_Process (XDK Independent)
XFileMediaObject_DoWork (XDK Independent)
XFileMediaObject_Discontinuity (XDK Independent)
CDirectSoundBuffer::Play (5849)
IDirectSoundBuffer_Play (5849)
D3DDevice_GetTexture2 (5849)
- Fixed a bug in EmuIDirect3DResource8_Register to prevent crashing.
- Outrun2 is starting to work!
9/28/12
- Added the following function(s)
D3DDevice_SetRenderTargetFast (5455 - 5849)
- Fixed a [stupid] error in D3DDevice_GetTexture2. It was my fault, so
I have no one to blame but myself this time. This should (hopefully)
fix Panzer Dragoon ORTA's issue with Pandora's Box.