Cxbx Todo (* denotes high priority) * 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? * GetDisplayMode / GetAdapterDisplayMode should not return real display mode when windowed! * Stabilize Heap Allocation (i.e. operator new) -> Crashes after initial commit is full * Stabilize TLS (it's close...) * 3D Textured Demo * Retail Games (esp. XDK 4361) What does SetLastError check Irql for? Should this be emulated? Perfect the timing on KeTickCount 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) Encapsulate RecentFiles into a nice little class Configuration screens may not necessarily need to be modal windows. Closing a console should not terminate the entire process. If possible, Direct3D Rendering window should inherit from Wnd. 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 Allow a logo bitmap to be added if one does not exist. This may require that the size of headers be increased. (sizeof_headers). When loading a file, menus and WM_CLOSE should be disabled and an update progress should be sent via callback from core. Xbe::m_Header should be allocated dynamically to make room for huge headers.