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