Remove old documents: These predate Cxbx-R and are no longer valid

This commit is contained in:
Luke Usher 2018-06-06 08:27:05 +01:00
parent f58159c55f
commit 8717a722ca
13 changed files with 0 additions and 7344 deletions

View file

@ -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

View file

@ -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)

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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
}
};

View file

@ -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.

View file

@ -1 +0,0 @@
Special thanks to the authors of UPX file compressor (http://upx.sourceforge.net/).

View file

@ -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).

View file

@ -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

File diff suppressed because it is too large Load diff