* Remove x64 target from MSVC Solution
Cxbx-Reloaded currently is not able to be compiled as a 64-bit binary,
in part due to it's method of direct code execution.
To avoid confusion, this commit removes the x64 build target from the
solution.
Both XInput and DInput are migrated together. It's best to keep them in XInput folder.
As for Xapi files, may not require any plugin? Or possible put into their own folder?
This allows for both steps to be completely disconnected, easily
allowing patches to be turned on or off based on a set of flags, as well
as preventing the need to clear the HLE cache when switching from
HLE->LLE.
This also allows patches to be seen/modifed from a central location,
no more searching through the codebase to determine if a function should
be patched or not, and no more 'FUNC_EXPORTS/GetProcAddress' magic!
Currently, this is used for HLE only, but could really shine when
extended to introduce optional detour based logging even when LLE is
enabled.
For example We could easily add a LLE_D3D_DETOUR flag, which when
enabled, patches functions with a wrapper, which simply logs input and
output, calling the original xbox function via a trampoline.
This would be great for debugging, as we'd get a full call trace from
the API level, even when not implementing HLE.
There's also the possibility of mixing in some patches even with LLE
enabled: for a hybrid HLE/LLE solution of the same functionality,
but there are no plans to implement that at this moment of time.
* Import SimpleIni module
* Rename XBController to DInputController
Since it's only about configure DirectInput support.
* Append to previous 2 commits
* Initialize Settings class
* Append to previous commit
* Properly use EmuXTL header instead of EmuShared
* Move audio variables into setting class
* Move video variables into Settings class
* Append to previous commit
* Move hack variables into Settings class
* Append previous commit
* Append to third previous commit
* Move xbox controller port map to Settings class
* Append to second previous commit
* Move DirectInput Controller map to Settings class
* Remove old XInput member variable
* Append to second previous commit
* Tiny Fixup
* Remove Load/Save from EmuShared class
* Move both GUI and emulate/core to Settings class
* Oops, append to DirectInput controller's commit(s)
* Fix spaces to tab plus remove useless extra spaces
* Code format fixes
* Fix EmuShared's Set____ function to include const type.
Then "set" functions are supportive for both const and non-const variables.
* Add Sync and GetDataLocation functions to Settings class
* Move include filesystem into root header file.
* Introduce Verify function in Settings class
* Fix old bug for console remains open
* Making some adjustments...
* Append
* Another fix for any output prints crash.
* Add Delete function to Settings class
Plus keep save's file path if has given one.
* Fix LLE_USB to set into Settings class' member variable.
* No longer rely on GUI's end to reset LLE flags for multi-xbe titles.
* Simulate what GUI will do except in standalone kernel mode support.
* Move m_StorageLocation into Settings class as central.
Plus optimization for GetDataLocation function.
* Update sentence...
* Remove m_XbePath from EmuShared class.
Since kernel process is launching by on its own without rely on GUI process.
* Update copyright
* Fix DirectInput config not responding message
* Implement new feature: Bypass running as admin warning message
* Rename Emulate Settings to Core Settings
Plus move AllowAdminPrivilage option to core.
* Add reserve space for Settings' structure to integrate into EmuShared
* Ensure all reserves are set to 0 by default.
* Append to "Rename Emulate Settings to Core Settings" commit
* Fix rebase loss.
* Fix kernel mode process's window screen
* Correction: use bool for allowAdminPrivilege and add a save data
* Few fixes for allowAdminPrivilege
* Implement support to prevent tamper shared memory between GUI processes.
NOTE: Kernel process will be using same shared memory since guiProcessID will remain as 0.
* Various improvement
* Use std library functions
* Use single column spaces for align support on different tab size
* Include failsafe if custom and file path string values are bad format
Apparently ARRAYSIZE isn't define on other compilers.
* Last ARRAYSIZE replacement plus buffer overflow protection
* Replace WinAPI to std library's filesystem
* Revert support for 2+ emulation process at same time.
Emulation's graphic screen has corruption between both windows. Not even a wrapper to D3D9 will fix it.
With this, the Debug_Direct3D9 build now compiles and successfully runs
basic XDK samples (Gamepad, Tutorials, etc)
Known Issues:
1. Vertex Shaders are completely broken, any titles using vertex shaders
WILL crash
2. Vertex conversion is completely broken, any titles using Xbox
specific data types WILL crash
This is NOT ready for use in any shape or form, just a step towards the
eventual D3D9 port.