Merge pull request #1251 from LukeUsher/cleanup
Remove old documents: These predate Cxbx-R and are no longer valid
This commit is contained in:
commit
706158149a
|
@ -1,395 +0,0 @@
|
||||||
Cxbx Home Page: http://www.caustik.com/cxbx/
|
|
||||||
|
|
||||||
version: 0.8.1 (2/3/10)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Cxbx's compatibility has vastly increased (see compatibility list).
|
|
||||||
|
|
||||||
- Added video option to enable/disable hardware YUV surfaces for video playback.
|
|
||||||
(This should fix problems with videos not showing up or robotic sounds).
|
|
||||||
|
|
||||||
- Fixed bug in vertex patching code for Vista (thanks defiance)!
|
|
||||||
|
|
||||||
- Most XDKs have at least basic support.
|
|
||||||
|
|
||||||
- Fixed pipeline bumpmapping is now supported.
|
|
||||||
|
|
||||||
- Multiple thread notification routines now supported.
|
|
||||||
|
|
||||||
- Lots of bug fixes.
|
|
||||||
|
|
||||||
- And many more I can't remember (it's been a long time)!
|
|
||||||
|
|
||||||
version: 0.8.0 (??/??/??)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Turok is playable!
|
|
||||||
|
|
||||||
- Major GUI changes, new logo + about screens
|
|
||||||
|
|
||||||
- Single window emulation!
|
|
||||||
|
|
||||||
- Faux Fullscreen (Alt + Enter)!
|
|
||||||
|
|
||||||
- Preliminary pixel shader support!
|
|
||||||
|
|
||||||
- Vertex Shader support!
|
|
||||||
|
|
||||||
- Push Buffer support!
|
|
||||||
|
|
||||||
- Toggle Wireframe/Dots/Normal with F11
|
|
||||||
|
|
||||||
- HLE caching (so very very nice and speedy!)
|
|
||||||
|
|
||||||
- Tons of new debug support, including integrated debug console
|
|
||||||
|
|
||||||
- DirectSound support! Turok and Stella (Atari 2600 emulator)
|
|
||||||
are both able to play sound+music, works great!
|
|
||||||
|
|
||||||
- Added auto-pause functionality when window is minimized
|
|
||||||
|
|
||||||
- Fixes to slider device input, some more robust error handling
|
|
||||||
in input configuration (thanks Zomby!)
|
|
||||||
|
|
||||||
- Fixed start/back mapping problem :)
|
|
||||||
|
|
||||||
- Fixed a glitch in EmuExe that was outputting some bad Exes
|
|
||||||
in situations such as the msdashboard. (thanks sop skrutt!)
|
|
||||||
|
|
||||||
- Fixed LineLoop rendering (X-Marbles, Gamepad, etc etc)
|
|
||||||
|
|
||||||
- Some speed optimizations for vertex buffer translation
|
|
||||||
|
|
||||||
- CreateDevice via proxy thread caused some issues with the
|
|
||||||
interplay between directdraw & direct3d. I resolved this new
|
|
||||||
issue and things are good again.
|
|
||||||
|
|
||||||
- Overlay support now should work with multimonitors
|
|
||||||
|
|
||||||
- Overlay support detection improved (again)
|
|
||||||
|
|
||||||
- Absurd amounts of new code, including general code cleanup
|
|
||||||
|
|
||||||
- Much much more that we dont even remember!
|
|
||||||
|
|
||||||
version: 0.7.8c (09/02/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Spontaneous CreateDevice failures fixed (many, at least)
|
|
||||||
|
|
||||||
- Exe now able to generate into temporary directory, allowing
|
|
||||||
games to be run from a read only device without path issues.
|
|
||||||
|
|
||||||
- Finally, Cxbx.dll and Cxbx.exe enforce version synchronization.
|
|
||||||
This should at least diagnose about 9 billion people's problems.
|
|
||||||
|
|
||||||
- Very minor splash image tweaks
|
|
||||||
|
|
||||||
version: 0.7.8b (08/30/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Fixed debug messages accidentally left in the previous release.
|
|
||||||
|
|
||||||
version: 0.7.8 (08/29/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Halo executes (no graphics yet)
|
|
||||||
|
|
||||||
- Overlays simulated on PCs that do not support them in hardware.
|
|
||||||
|
|
||||||
- YUY2 overlay capabilities detection improved significantly
|
|
||||||
|
|
||||||
- Fixes to mesh rendering (thanks kingofc!). The "XRay" XDK demo is
|
|
||||||
extremely impressive now (and runs very efficiently), as well as
|
|
||||||
the Gamepad/Rumble demos.
|
|
||||||
|
|
||||||
- Z: drive simulation repaired
|
|
||||||
|
|
||||||
version: 0.7.7b (07/16/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Fixed lost compatibility with X-Marbles, etc
|
|
||||||
|
|
||||||
version: 0.7.7 (07/15/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Turok Evolution displays startup graphics and intro sequence!!
|
|
||||||
|
|
||||||
- Stella and a few other homebrew games are now playable :]
|
|
||||||
This means you can play all your atari games on Cxbx, which
|
|
||||||
is a great novelty.
|
|
||||||
|
|
||||||
- Finally low level emulation of the heap, which is a very
|
|
||||||
very nice thing and fixed some glitches/bugs.
|
|
||||||
|
|
||||||
- Fixed timing (FPS is much higher now! it is unbelievable)
|
|
||||||
|
|
||||||
version: 0.7.6 (07/07/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Many more homebrew apps show some graphics
|
|
||||||
|
|
||||||
- DirectInput bugs fixed
|
|
||||||
|
|
||||||
- PointSprites works great without source hack
|
|
||||||
|
|
||||||
- Lots of code cleanup
|
|
||||||
|
|
||||||
version: 0.7.5 (06/30/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- X-Marbles homebrew demo is playable!
|
|
||||||
|
|
||||||
- New GUI bitmap (thanks, bot!)
|
|
||||||
|
|
||||||
- DirectSound emulation has begun.
|
|
||||||
|
|
||||||
- Corrected converted Exe stack commit.
|
|
||||||
|
|
||||||
- Fixed a really annoying problem with the debugger
|
|
||||||
not being able to attach, that has been around for
|
|
||||||
way way too long.
|
|
||||||
|
|
||||||
- Caught up 4627 pretty far.
|
|
||||||
|
|
||||||
- PointSprites and Gamepad demos, and some other new
|
|
||||||
XDK samples run better.
|
|
||||||
|
|
||||||
- Added more Direct3D/XAPI emulation, Hunter The Reckoning
|
|
||||||
gets pretty far but no graphics yet.
|
|
||||||
|
|
||||||
version: 0.7.4 (06/23/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- FIRST RETAIL GAME GRAPHICS (simple, but yay!!)
|
|
||||||
|
|
||||||
- Quad rendering
|
|
||||||
|
|
||||||
- Tons of new XD3D emulation
|
|
||||||
|
|
||||||
- Some nice demos play now, including the cool PointSprites
|
|
||||||
demo. There are some issues right now with the mipmap filters
|
|
||||||
|
|
||||||
- Fixed a user input bug (was ignoring digital buttons)
|
|
||||||
|
|
||||||
version: 0.7.3 (06/18/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Meshes
|
|
||||||
|
|
||||||
- Indexed [primitive/vertex] rendering
|
|
||||||
|
|
||||||
- Fixed *part* of the invisible texture problem
|
|
||||||
|
|
||||||
version: 0.7.2 (06/13/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Textures (bmp, jpg, png, partial .xpr, etc)
|
|
||||||
|
|
||||||
- rtinit/cinit run on lower level
|
|
||||||
|
|
||||||
- stdio seems to be working great :]
|
|
||||||
|
|
||||||
- some advanced texture stuff (TCI)
|
|
||||||
|
|
||||||
version: 0.7.1 (05/30/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Video Configuration!
|
|
||||||
|
|
||||||
- Fixed some Xbe change detection logic
|
|
||||||
|
|
||||||
- Open Xbe and Import Exe can be done when a file
|
|
||||||
is already open (automatically closes, checking if
|
|
||||||
you made changes first).
|
|
||||||
|
|
||||||
- Direct3D Lighting is working!
|
|
||||||
|
|
||||||
version: 0.7.0 (05/27/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Magically shrunk cxbx.dll/cxbx.exe file sizes enormously!
|
|
||||||
|
|
||||||
- Added Controller Input and Configuration!
|
|
||||||
|
|
||||||
- Added Recent Xbe/Exe file menus
|
|
||||||
|
|
||||||
- Support __declspec(thread) style TLS
|
|
||||||
|
|
||||||
- Fixed GUI color issues
|
|
||||||
|
|
||||||
- Massive code re-organization.
|
|
||||||
|
|
||||||
- Sooo many random optimizations
|
|
||||||
|
|
||||||
- Went lower level with certain components of
|
|
||||||
emulation. Progress should speed up.
|
|
||||||
|
|
||||||
- Some Xbe parsing and debug output fixes.
|
|
||||||
You should now be able to deal with the
|
|
||||||
slightly odd Linux Xbe files.
|
|
||||||
|
|
||||||
- Much better emulation exception handling
|
|
||||||
|
|
||||||
version: 0.6.0-pre12 (02/23/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- HLE has advanced to intercepting Direct3D and
|
|
||||||
Xapilib calls. A simple Xbox app built with a
|
|
||||||
4361 or 4627 XDK has been shown to work.
|
|
||||||
|
|
||||||
version: 0.6.0-pre11 (02/09/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- HLE has begun. Cxbx is capable of emulating a
|
|
||||||
blank XDK project. That is, if you had the XDK
|
|
||||||
and created an Xbox "game" that did absolutely
|
|
||||||
nothing, Cxbx could run it :P. Sounds pointless,
|
|
||||||
but it is actually very significant
|
|
||||||
|
|
||||||
- New icon! Pending approval for use by the author
|
|
||||||
|
|
||||||
version: 0.6.0-pre10 (02/07/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Tons of debug console output when opening, or
|
|
||||||
converting, or saving xbe and exe files. This
|
|
||||||
was very easy to add because of the flexible
|
|
||||||
new debug console technique.
|
|
||||||
|
|
||||||
version: 0.6.0-pre9 (02/06/03)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Released source code under GNU license.
|
|
||||||
|
|
||||||
- Debugging interface changed. Much cleaner.
|
|
||||||
|
|
||||||
version: 0.5.2 (12/14/02)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- Fixed a bug in section name generation. This might
|
|
||||||
add some compatibility, not sure yet.
|
|
||||||
|
|
||||||
version: 0.5.1 (??/??/??)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- more .xbe information added to core and xbe dump
|
|
||||||
|
|
||||||
version: 0.5.0 (11/16/02)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- fixed a bug in displaying section digests.
|
|
||||||
|
|
||||||
- added conversion from .exe to .xbe!!
|
|
||||||
|
|
||||||
- more code cleanup, tiny ui improvements.
|
|
||||||
|
|
||||||
version: 0.4.4 (11/01/02)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- updated .xbe structure for more acccuracy
|
|
||||||
|
|
||||||
- added/fixed alot of information in xbe info
|
|
||||||
dumps. most notably is the TLS information,
|
|
||||||
which is finally completely correct.
|
|
||||||
|
|
||||||
- lots and lots of new kernel function prototypes
|
|
||||||
and structs/enums are very accurate now.
|
|
||||||
|
|
||||||
version: 0.4.3 (10/09/02)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- added edit menu options to patch for allowing
|
|
||||||
more than 64mb of ram, and also to toggle between
|
|
||||||
debug mode / release mode. i also fixed a few
|
|
||||||
relatively minor gui things, such as suggesting
|
|
||||||
an appropriate name for saving an .xbe file, instead
|
|
||||||
of just defaulting to "default.xbe".
|
|
||||||
|
|
||||||
version: 0.4.2 (10/07/02)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- finally got around to adding logo bitmap import
|
|
||||||
feature. this is pretty damn cool because you
|
|
||||||
can change that little logo that appears when
|
|
||||||
you boot your xbox software to whatever you want
|
|
||||||
it to be. for example, you can modify xbox media
|
|
||||||
player to display "XBMP" instead of "Microsoft"
|
|
||||||
|
|
||||||
version: 0.4.1 (10/04/02)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- internally alot of little things have changed,
|
|
||||||
code is organized pretty well now. software run
|
|
||||||
through the emulator typically safely terminates,
|
|
||||||
which is pretty damn cool from my perspective.
|
|
||||||
|
|
||||||
version: 0.4.0 (BETA) (09/16/02)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- total code rewrite. most the funcionality
|
|
||||||
has remained intact with cleaner code UI
|
|
||||||
and code design.
|
|
||||||
|
|
||||||
- logo bitmap is now decoded and displayed
|
|
||||||
in the main window when you open an .xbe
|
|
||||||
file. debug output window traces kernel
|
|
||||||
calls. logo bitmap can be exported to a
|
|
||||||
bitmap file.
|
|
||||||
|
|
||||||
- xbe_info.txt now displays the correctly
|
|
||||||
decoded kernel thunk table address.
|
|
||||||
|
|
||||||
version: 0.3.1 (09/02/2002)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- significantly decreased file sizes for cxbx.exe
|
|
||||||
and cxbx_krnl.dll. Also made debug output cleaner.
|
|
||||||
|
|
||||||
version: 0.3.0 (08/19/2002)
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
- various gui changes, new web site, significant
|
|
||||||
changes in emulation theory. kernel exports are
|
|
||||||
now hijacked and interpretted.
|
|
||||||
|
|
||||||
version: 0.2.2 (07/24/2002)
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
- fixed various minor GUI problems
|
|
||||||
|
|
||||||
- added kernel thunk address description in GUI
|
|
||||||
|
|
||||||
version: 0.2.1 (07/24/2002)
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
- added "Convert To .EXE" menu option.
|
|
||||||
|
|
||||||
- fixed problem where entry point wasn't being detected
|
|
||||||
correctly when converting to .exe
|
|
||||||
|
|
||||||
version: 0.2.0 (07/24/2002)
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
- drastically changed UI, took out convert to .exe
|
|
||||||
feature (temporarily).
|
|
||||||
|
|
||||||
version: 0.1.3b(07/18/2002)
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
- oops..fixed an incorrect debug xor value
|
|
||||||
|
|
||||||
version: 0.1.3 (07/16/2002)
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
- .xbe file information dump now shows retail/debug
|
|
||||||
translated addresses.
|
|
||||||
|
|
||||||
version: 0.1.2 (07/16/2002)
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
- cxbx now dumps .xbe file information in a .txt file.
|
|
||||||
|
|
||||||
- new icon ?
|
|
||||||
|
|
||||||
- various tiny improvements
|
|
|
@ -1,28 +0,0 @@
|
||||||
Cxbx Code Cleanup - 05.06.06+
|
|
||||||
|
|
||||||
Legend :
|
|
||||||
|
|
||||||
- Todo
|
|
||||||
: In progress
|
|
||||||
+ Done, waiting to integrate
|
|
||||||
* Done, integrated
|
|
||||||
x Obsolete, Removed
|
|
||||||
|
|
||||||
< Delegated
|
|
||||||
[ Completed, Update email sent
|
|
||||||
~ Follow-Up Comment
|
|
||||||
|
|
||||||
: Import/Export
|
|
||||||
* Pull upx into Import folder
|
|
||||||
* Export Cxbx.exe/Cxbx.dll
|
|
||||||
* Pull ntdll into Import folder
|
|
||||||
* Pull jpegdec into Import folder
|
|
||||||
: Structure
|
|
||||||
* Move all includes into Source (since they are not exported!)
|
|
||||||
- Organize all #include's cleanly, and use good relative paths when desirable
|
|
||||||
- Move things out of CxbxKrnl.h if they are internal to CxbxKrnl
|
|
||||||
- CxbxKrnl
|
|
||||||
- CxbxKrnlVerifyVersion etc
|
|
||||||
: General Cleanup
|
|
||||||
- AutoSwapFS (like AutoMutex)
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
Direct3D resources are going to be a little bit of a hack.
|
|
||||||
There is a tough situation, because precompiled resources
|
|
||||||
(XPR) can be loaded into memory manually by an Xbox Game,
|
|
||||||
and then "Registered" with pResource->Register(addr);
|
|
||||||
|
|
||||||
This is a problem because we never have an opportunity to
|
|
||||||
intercept the "this" pointer for this datatype. The base
|
|
||||||
resource class looks like this:
|
|
||||||
|
|
||||||
DWORD Common;
|
|
||||||
DWORD Data;
|
|
||||||
DWORD Lock;
|
|
||||||
|
|
||||||
The first idea is to tuck away the PC Direct3D resource
|
|
||||||
pointer inside of pResource->Data. The trouble with this
|
|
||||||
is that some Xbox Games will directly access and modify
|
|
||||||
this member.
|
|
||||||
|
|
||||||
Another technique is to hide the PC Direct3D resource pointer
|
|
||||||
inside of the buffer allocated by Data. This could work, as
|
|
||||||
long as Xbox Games do not access the resource Data after the
|
|
||||||
initial Register function is called.
|
|
||||||
|
|
||||||
The currently used method is to tuck the pointer away inside
|
|
||||||
of the Lock member, and hijack any functions that attempt to
|
|
||||||
access the Lock member variable.
|
|
|
@ -1,19 +0,0 @@
|
||||||
Controller Input is configured using a dialog inside
|
|
||||||
EmuDInput.cpp/.h
|
|
||||||
|
|
||||||
Configuration is actually saved into both the registry
|
|
||||||
and shared memory within Cxbx.dll. This means that all
|
|
||||||
active emulated games (even if there are many of them
|
|
||||||
at the same time) will have the ability to refresh the
|
|
||||||
current configuration at any given time.
|
|
||||||
|
|
||||||
This works out really great because this means you can
|
|
||||||
make changes in the input configuration at any time and
|
|
||||||
immediately see the changes take affect.
|
|
||||||
|
|
||||||
It is important to note that all access to this shared
|
|
||||||
memory, as with all shared memory, should be protected
|
|
||||||
with a mutual exclusion mechanism. Win32 provides such
|
|
||||||
a mechanism and it will be used.
|
|
||||||
|
|
||||||
-caustik
|
|
|
@ -1,183 +0,0 @@
|
||||||
>> nice code for dumping textures inside of push buffer stuff
|
|
||||||
|
|
||||||
/*
|
|
||||||
IDirect3DBaseTexture8 *pTexture = 0;
|
|
||||||
|
|
||||||
g_pD3DDevice8->GetTexture(0, &pTexture);
|
|
||||||
|
|
||||||
if(pTexture != NULL)
|
|
||||||
{
|
|
||||||
static int dwDumpTexture = 0;
|
|
||||||
|
|
||||||
char szBuffer[256];
|
|
||||||
|
|
||||||
printf("Texture Time...\n");
|
|
||||||
|
|
||||||
switch(pTexture->GetType())
|
|
||||||
{
|
|
||||||
case D3DRTYPE_TEXTURE:
|
|
||||||
{
|
|
||||||
printf("_TEXTURE\n");
|
|
||||||
sprintf(szBuffer, "C:\\Aaron\\Textures\\PushBufferTex - %.03d (0x%.08X).bmp", dwDumpTexture++, pTexture);
|
|
||||||
|
|
||||||
((IDirect3DTexture8*)pTexture)->UnlockRect(0);
|
|
||||||
|
|
||||||
D3DXSaveTextureToFile(szBuffer, D3DXIFF_BMP, pTexture, NULL);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case D3DRTYPE_CUBETEXTURE:
|
|
||||||
{
|
|
||||||
printf("_CUBETEXTURE\n");
|
|
||||||
for(int face=0;face<6;face++)
|
|
||||||
{
|
|
||||||
sprintf(szBuffer, "C:\\Aaron\\Textures\\PushBufferTexCube%d - %.03d (0x%.08X).bmp", face, dwDumpTexture++, pTexture);
|
|
||||||
|
|
||||||
((IDirect3DCubeTexture8*)pTexture)->UnlockRect((D3DCUBEMAP_FACES)face, 0);
|
|
||||||
|
|
||||||
D3DXSaveTextureToFile(szBuffer, D3DXIFF_BMP, pTexture, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//*/
|
|
||||||
|
|
||||||
<<
|
|
||||||
|
|
||||||
>>
|
|
||||||
|
|
||||||
/* TODO: Use new handle wrapping code
|
|
||||||
|
|
||||||
// ******************************************************************
|
|
||||||
// * For now, just check for 'special' cases
|
|
||||||
// ******************************************************************
|
|
||||||
if(strcmp(ObjectAttributes->ObjectName->Buffer, "\\Device\\Harddisk0\\partition1\\") == 0)
|
|
||||||
{
|
|
||||||
EmuHandle *iEmuHandle = new EmuHandle;
|
|
||||||
|
|
||||||
iEmuHandle->m_Type = EMUHANDLE_TYPE_PARTITION1;
|
|
||||||
|
|
||||||
*FileHandle = PtrToEmuHandle(iEmuHandle);
|
|
||||||
}
|
|
||||||
else if(strcmp(ObjectAttributes->ObjectName->Buffer, "\\Device\\Harddisk0\\partition1\\TDATA") == 0)
|
|
||||||
{
|
|
||||||
EmuHandle *iEmuHandle = new EmuHandle;
|
|
||||||
|
|
||||||
iEmuHandle->m_Type = EMUHANDLE_TYPE_TDATA;
|
|
||||||
|
|
||||||
*FileHandle = PtrToEmuHandle(iEmuHandle);
|
|
||||||
|
|
||||||
// TODO: Update IoStatusBlock if necessary
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EmuPanic();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
<<
|
|
||||||
|
|
||||||
__asm int 3
|
|
||||||
wchar_t wszObjectName[160];
|
|
||||||
|
|
||||||
xntdll::UNICODE_STRING NtUnicodeString;
|
|
||||||
xntdll::OBJECT_ATTRIBUTES NtObjAttr;
|
|
||||||
|
|
||||||
setlocale(LC_ALL, "English");
|
|
||||||
mbstowcs(wszObjectName, ObjectAttributes->ObjectName->Buffer, 160);
|
|
||||||
|
|
||||||
NT_RtlInitUnicodeString(&NtUnicodeString, wszObjectName);
|
|
||||||
|
|
||||||
// Initialize NtObjAttr
|
|
||||||
NtObjAttr.Length = sizeof(xntdll::OBJECT_ATTRIBUTES);
|
|
||||||
|
|
||||||
InitializeObjectAttributes(&NtObjAttr, &NtUnicodeString, ObjectAttributes->Attributes, ObjectAttributes->RootDirectory, NULL);
|
|
||||||
|
|
||||||
NTSTATUS ret = NT_NtCreateFile
|
|
||||||
(
|
|
||||||
FileHandle, DesiredAccess, &NtObjAttr, (xntdll::IO_STATUS_BLOCK*)IoStatusBlock,
|
|
||||||
(xntdll::LARGE_INTEGER*)AllocationSize, FileAttributes, ShareAccess, CreateDisposition, CreateOptions, NULL, NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
if(FAILED(ret))
|
|
||||||
MessageBox(g_hEmuWindow, "Bad!", "Cxbx", MB_OK);
|
|
||||||
else
|
|
||||||
MessageBox(g_hEmuWindow, "Good!", "Cxbx", MB_OK);
|
|
||||||
|
|
||||||
|
|
||||||
<<
|
|
||||||
|
|
||||||
// ******************************************************************
|
|
||||||
// * calculate TLS adjustment
|
|
||||||
// ******************************************************************
|
|
||||||
uint32 TlsAdjust = 0;
|
|
||||||
|
|
||||||
if(x_Xbe->m_TLS == 0)
|
|
||||||
TlsAdjust = -1;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// ******************************************************************
|
|
||||||
// * necessary tls adjustment values
|
|
||||||
// ******************************************************************
|
|
||||||
uint32 TlsZF = x_Xbe->m_TLS->dwSizeofZeroFill;
|
|
||||||
uint32 TlsEA = x_Xbe->m_TLS->dwDataEndAddr;
|
|
||||||
uint32 TlsSA = x_Xbe->m_TLS->dwDataStartAddr;
|
|
||||||
|
|
||||||
// ******************************************************************
|
|
||||||
// * calculate tls adjustment
|
|
||||||
// ******************************************************************
|
|
||||||
TlsAdjust = (TlsZF - TlsSA) + TlsEA + 0x0F;
|
|
||||||
TlsAdjust &= 0xFFFFFFF0;
|
|
||||||
TlsAdjust += 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
>> unused OpenXDK logo bitmap (OpenXDK.cpp)
|
|
||||||
|
|
||||||
// OpenXDK logo bitmap
|
|
||||||
uint08 OpenXDK[] =
|
|
||||||
{
|
|
||||||
0x5A, 0x06, 0x23, 0x49, 0x13, 0x0F, 0x33, 0x49, 0x13, 0x0F,
|
|
||||||
0x13, 0x4F, 0x33, 0x0D, 0x13, 0x49, 0x23, 0x46, 0x00, 0x23,
|
|
||||||
0x4D, 0x33, 0x0D, 0x13, 0x43, 0x22, 0x00, 0x43, 0x13, 0x22,
|
|
||||||
0x00, 0xC3, 0x22, 0xF0, 0xC3, 0x05, 0x33, 0xD3, 0x22, 0xF0,
|
|
||||||
0x83, 0x09, 0x73, 0x2A, 0xF0, 0x07, 0x83, 0x22, 0xF0, 0xD3,
|
|
||||||
0x33, 0x03, 0x73, 0xC3, 0x33, 0x0B, 0x33, 0xC3, 0x73, 0x05,
|
|
||||||
0x73, 0x22, 0xF0, 0xE3, 0x63, 0x07, 0x43, 0xF3, 0x22, 0x00,
|
|
||||||
0xF3, 0x43, 0x22, 0x00, 0xF3, 0x73, 0x33, 0x09, 0x33, 0x73,
|
|
||||||
0xF3, 0x05, 0x43, 0xF3, 0x43, 0x23, 0x07, 0x13, 0x43, 0x93,
|
|
||||||
0xB3, 0x09, 0x73, 0xC3, 0x13, 0x0D, 0x45, 0x07, 0xB3, 0x93,
|
|
||||||
0x43, 0x09, 0x23, 0x43, 0xF3, 0x43, 0x03, 0x13, 0xA3, 0xF3,
|
|
||||||
0x73, 0x07, 0x73, 0xF3, 0xA3, 0x13, 0x05, 0x73, 0xB3, 0x0B,
|
|
||||||
0x13, 0x43, 0xC3, 0x73, 0x07, 0x43, 0xF3, 0x22, 0x00, 0xF3,
|
|
||||||
0x43, 0x22, 0x00, 0xF3, 0x43, 0x0D, 0x43, 0xF3, 0x23, 0x73,
|
|
||||||
0x93, 0xF3, 0x7F, 0xB5, 0x05, 0x75, 0xB3, 0xD3, 0x7D, 0x63,
|
|
||||||
0x0B, 0xB3, 0x73, 0x0F, 0xF3, 0x43, 0x07, 0x53, 0xE3, 0xC3,
|
|
||||||
0x63, 0xC3, 0xE3, 0x53, 0x09, 0x73, 0xB3, 0x0F, 0xB3, 0x73,
|
|
||||||
0x03, 0x63, 0x73, 0x93, 0xF3, 0x7B, 0x83, 0xB3, 0xD3, 0xF3,
|
|
||||||
0x43, 0x22, 0x00, 0xF3, 0x43, 0x0D, 0x43, 0xF3, 0x33, 0xB3,
|
|
||||||
0xC3, 0xF3, 0xBD, 0xA3, 0x73, 0x63, 0x05, 0xB5, 0xD3, 0xE3,
|
|
||||||
0xBD, 0x83, 0x0B, 0xB3, 0x73, 0x0F, 0xF3, 0x43, 0x09, 0x13,
|
|
||||||
0xE3, 0xF3, 0xE3, 0x13, 0x0B, 0x73, 0xB3, 0x0F, 0xB3, 0x73,
|
|
||||||
0x03, 0x83, 0xB3, 0xC3, 0xF3, 0xBB, 0xD3, 0xF5, 0xB3, 0x23,
|
|
||||||
0x22, 0x00, 0xF3, 0x43, 0x0D, 0x43, 0xF3, 0x05, 0x43, 0xF3,
|
|
||||||
0x36, 0x00, 0x73, 0xB3, 0x32, 0x00, 0xB3, 0x73, 0x0F, 0xF3,
|
|
||||||
0x43, 0x07, 0x33, 0xC3, 0xE3, 0x73, 0xE3, 0xC3, 0x33, 0x09,
|
|
||||||
0x73, 0xB3, 0x0F, 0xB3, 0x73, 0x07, 0x43, 0xF3, 0x0D, 0x13,
|
|
||||||
0x43, 0xF3, 0x43, 0x22, 0x00, 0xF3, 0xC3, 0xA3, 0x79, 0xA3,
|
|
||||||
0xC3, 0xF3, 0x05, 0x43, 0xF3, 0x36, 0x00, 0x73, 0xE3, 0x93,
|
|
||||||
0x7B, 0x93, 0xB3, 0xC3, 0x07, 0xB3, 0x73, 0x0F, 0xF3, 0x43,
|
|
||||||
0x05, 0x73, 0xF3, 0xA3, 0x13, 0x03, 0x13, 0xA3, 0xF3, 0x73,
|
|
||||||
0x07, 0x73, 0xD3, 0x7B, 0x83, 0xB3, 0xE3, 0x73, 0x07, 0x43,
|
|
||||||
0xF3, 0x22, 0x00, 0xF3, 0x43, 0x22, 0x00, 0x53, 0x73, 0x83,
|
|
||||||
0xB9, 0x93, 0x73, 0x53, 0x05, 0x33, 0xB3, 0x36, 0x00, 0x43,
|
|
||||||
0x73, 0xA3, 0xBD, 0x83, 0x73, 0x07, 0x83, 0x63, 0x0F, 0xB3,
|
|
||||||
0x33, 0x03, 0x63, 0xE3, 0x53, 0x0B, 0x53, 0xE3, 0x63, 0x05,
|
|
||||||
0x63, 0xBF, 0x75, 0x23, 0x07, 0x33, 0xB3, 0x22, 0x00, 0xB3,
|
|
||||||
0x33, 0xFA, 0x00, 0x13, 0x0F, 0x13, 0xBE, 0x06, 0x03,
|
|
||||||
};
|
|
||||||
|
|
||||||
// size, in bytes, of the OpenXDK logo bitmap
|
|
||||||
uint32 dwSizeOfOpenXDK = 0x0000017B;
|
|
||||||
|
|
||||||
<<
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,29 +0,0 @@
|
||||||
// TODO: Confirm...
|
|
||||||
SOOVPA<11> CMcpxBuffer_GetStatus_1_0_4721 =
|
|
||||||
{
|
|
||||||
0, // Large == 0
|
|
||||||
11, // Count == 11
|
|
||||||
|
|
||||||
XREF_DSBUFFERGETSTATUSA, // XRef Is Saved
|
|
||||||
0, // XRef Not Used
|
|
||||||
|
|
||||||
{
|
|
||||||
// CMcpxBuffer_GetStatus+0x04 : mov ecx, eax
|
|
||||||
{ 0x04, 0x8B }, // (Offset,Value)-Pair #1
|
|
||||||
{ 0x05, 0xC8 }, // (Offset,Value)-Pair #2
|
|
||||||
|
|
||||||
// CMcpxBuffer_GetStatus+0x0C : jnz +0x1B
|
|
||||||
{ 0x0C, 0x75 }, // (Offset,Value)-Pair #3
|
|
||||||
{ 0x0D, 0x1B }, // (Offset,Value)-Pair #4
|
|
||||||
|
|
||||||
// CMcpxBuffer_GetStatus+0x12 : test al, 0x4
|
|
||||||
{ 0x12, 0xA8 }, // (Offset,Value)-Pair #5
|
|
||||||
{ 0x13, 0x04 }, // (Offset,Value)-Pair #6
|
|
||||||
|
|
||||||
// CMcpxBuffer_GetStatus+0x27 : mov ecx, 0x8001
|
|
||||||
{ 0x27, 0xB9 }, // (Offset,Value)-Pair #7
|
|
||||||
{ 0x28, 0x01 }, // (Offset,Value)-Pair #8
|
|
||||||
{ 0x29, 0x80 }, // (Offset,Value)-Pair #9
|
|
||||||
{ 0x2A, 0x00 }, // (Offset,Value)-Pair #10
|
|
||||||
}
|
|
||||||
};
|
|
|
@ -1,33 +0,0 @@
|
||||||
blueshogun's Todo list:
|
|
||||||
|
|
||||||
|
|
||||||
Emulation:
|
|
||||||
- Continue sorting things out between XDKs 4432 and 4627 for 4531. Some things from 4627
|
|
||||||
should be moved to 4531 anyway.
|
|
||||||
- Check for similarities in XGRAPHIC library for 4361, 4432 and 4627.
|
|
||||||
- Continue adding support for the Xbox ADPCM codec. Numerous open source projects support
|
|
||||||
it, so I guess it shouldn't be too hard.
|
|
||||||
- Finish adding basic XACT support.
|
|
||||||
- Ensure the Cxbx has some basic support for every XDK. We're close, but 5028, 5120, 5455
|
|
||||||
and 5788 need further investigation.
|
|
||||||
- The Xbox's version of the .xsb format needs to be reversed for XACT.
|
|
||||||
- Cache xbe section addresses and names for XLoad/FreeSection[ByHandle]
|
|
||||||
- Basic network capabilities?
|
|
||||||
- Some vertex shaders have their constant register usage modified by Cxbx (to balance out
|
|
||||||
the fact that Xbox vertex shaders can use constant values -96 to 96. Adding 96 in
|
|
||||||
SetVertexShaderConstant fixes some samples and Petit Copter, but breaks Turok.
|
|
||||||
- Indexed geometry rendered with D3DPT_QUADLIST is badly broken (Panzer and Robotech: Battlecry).
|
|
||||||
|
|
||||||
More:
|
|
||||||
- For completion's sake, we're going to have to use Direct3D 9 or OpenGL (OpenGL is better for
|
|
||||||
emulating Xbox, trust me) to emulate all of the missing functionality of Direct3D 8. OpenGL is
|
|
||||||
also closer to NVIDIA's hardware.
|
|
||||||
- An option to disable sound processing. Quantum Redshift may need this...
|
|
||||||
|
|
||||||
Game Specific:
|
|
||||||
- Azurik: Rize of Perathia (possibly the hardest Xbox game to emulate) has some unusual situations
|
|
||||||
going on (heap corruption, empty shaders, etc.). We need better solutions for such scenarios.
|
|
||||||
- DOA3 is getting close...
|
|
||||||
- Fusion Frenzy: There are some bugs in the D3DFMT_P8 -> D3DFMT_A8R8G8B8 conversion code.
|
|
||||||
- Keep working on Run Like Hell, you might be surprised!
|
|
||||||
- Find out what's causing the stack corruption with Petit Copter.
|
|
|
@ -1 +0,0 @@
|
||||||
Special thanks to the authors of UPX file compressor (http://upx.sourceforge.net/).
|
|
87
doc/Todo.txt
87
doc/Todo.txt
|
@ -1,87 +0,0 @@
|
||||||
Cxbx Todo (* denotes high priority, + denotes medium priority)
|
|
||||||
|
|
||||||
HLE :
|
|
||||||
|
|
||||||
* SetThreadPriority is basically ignored right now
|
|
||||||
|
|
||||||
* NSIS installer. Option to clear UDATA/TDATA/CxbxCache
|
|
||||||
|
|
||||||
* Modularize inline vertex buffers (Begin()/End())
|
|
||||||
|
|
||||||
* Direct3D_SetPushBufferSize for Antz Extreme Racing (4361). Do this
|
|
||||||
when Xiggen is stabilized! For now, safe to ignore it. Also, this
|
|
||||||
function is located @ 0x184CC0 in halo.
|
|
||||||
|
|
||||||
* Create library of working demos/games/emulators (various XDK versions)
|
|
||||||
|
|
||||||
* Add Pause hotkey
|
|
||||||
|
|
||||||
* Add FPS counter
|
|
||||||
|
|
||||||
ETC :
|
|
||||||
|
|
||||||
* Use SetAllParameters to reverse engineer 3911 DSound functions
|
|
||||||
|
|
||||||
* Stella has a memory leak in the game's list screen..
|
|
||||||
|
|
||||||
* DirectSoundUseFullHRTF -> 0x192D8C (Halo)..too small to detect?
|
|
||||||
|
|
||||||
* Palette needs to actually be used, not just allowed to execute.
|
|
||||||
|
|
||||||
* Check if 4361 Resource8_Release is the same as 4627 & 3925 (3911)
|
|
||||||
|
|
||||||
* Configurable dead zone, for touchy controllers
|
|
||||||
|
|
||||||
* Push Buffer Size is stored in a global. This may be important (hard to tell)
|
|
||||||
|
|
||||||
* Perhaps for global variable detection, have some sort of array of
|
|
||||||
function + offset pairs to check. That way if an Xbe happens to not
|
|
||||||
use a particular function (wont get linked in), there are other chances
|
|
||||||
to locate the variable. In the even that none are found, the global ptr
|
|
||||||
should be set to NULL, and any references to it should not assume it
|
|
||||||
will not be NULL.
|
|
||||||
|
|
||||||
* Special temporarily X_D3DResource handles need to be kept track of and
|
|
||||||
periodically garbage collected. Garbage collection frequency can be a
|
|
||||||
core configuration option.
|
|
||||||
|
|
||||||
* Register() probably needn't re-unswizzle each time. cache a copy of
|
|
||||||
the address it was registered to (or a global table) and simply update
|
|
||||||
the data pointer to that IDirect3DTexture8 instance.
|
|
||||||
|
|
||||||
* Support cards that just plain dont have 32 bit color?
|
|
||||||
|
|
||||||
* The notorious Heap Allocation crash still needs to be solved on a low
|
|
||||||
level. It is strongly preferable to debug this instead of having to
|
|
||||||
intercept the entire Rtl heap set of functions.
|
|
||||||
|
|
||||||
* Stabilize TLS (it's close...)
|
|
||||||
|
|
||||||
+ Closing a console should not terminate the entire process.
|
|
||||||
|
|
||||||
+ Perfect the timing on KeTickCount. This can be updated along with the
|
|
||||||
Xbox-Never-Sleeps, which would give much higher precision than the
|
|
||||||
current seperate-thread method.
|
|
||||||
|
|
||||||
+ Some sort of delete-after-emulation type of functionality?
|
|
||||||
|
|
||||||
+ Use SetDataFormat instead of parsing device input by hand?
|
|
||||||
|
|
||||||
+ Batch config all buttons (should be very easy..just click one by one)
|
|
||||||
|
|
||||||
+ Configuration screens may not necessarily need to be modal windows.
|
|
||||||
|
|
||||||
+ Xbe file associations via user configuration. This could include an
|
|
||||||
option to either automatically execute the Xbe, or simply open it up
|
|
||||||
in Cxbx's main window. For this purpose, Cxbx.dll should also be
|
|
||||||
registered in the system so that a converted Exe can run from anywhere.
|
|
||||||
|
|
||||||
Converted Exe files should use the Cxbx icon
|
|
||||||
|
|
||||||
When loading a file, menus and WM_CLOSE should be disabled and an update
|
|
||||||
progress should be sent via callback from core.
|
|
||||||
|
|
||||||
Encapsulate RecentFiles into a nice little class
|
|
||||||
|
|
||||||
Allow a logo bitmap to be added if one does not exist. This may require that
|
|
||||||
the size of headers be increased. (sizeof_headers).
|
|
|
@ -1,3 +0,0 @@
|
||||||
Go to my blog to keep up with my latest updates.
|
|
||||||
|
|
||||||
http://shogun3d-cxbx.blogspot.com/
|
|
File diff suppressed because it is too large
Load Diff
3415
doc/old_dsound.txt
3415
doc/old_dsound.txt
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue