Commit Graph

124 Commits

Author SHA1 Message Date
RadWolfie de1633dab5 Move D3D8 and Direct3D9 files into its own folder 2018-09-02 09:10:30 -05:00
RadWolfie a2c667f706 Final clean up except for D3D8 files. 2018-09-01 14:49:03 -05:00
RadWolfie a89f702d1e Add D3D8 filter to visual studio 2018-09-01 14:23:18 -05:00
RadWolfie f083da6666 Move XGraphic to its own folder 2018-09-01 14:22:58 -05:00
RadWolfie 81d3ae8510 Move XOnline files to its own folder 2018-09-01 14:11:37 -05:00
RadWolfie dc24c3f1c1 Move XActEng files to its own folder 2018-09-01 13:34:50 -05:00
RadWolfie ba9dd0b399 Move XInput plugin in OHCI folder 2018-09-01 12:47:53 -05:00
RadWolfie a650e1e4f3 Move Xapi, XInput, and DInput into their own folder
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?
2018-09-01 11:54:58 -05:00
RadWolfie 5ff6e9e6b5 Move DirectSound plugin to its own folder
Will eventually need to separate the APIs and its classes into a generic class.
2018-09-01 11:54:58 -05:00
RadWolfie ce67dea010 Move HLE's Intercept and Patches to their own folder
First step to organize the filesystem! (Beside hardware files has its own directory, good job!)
2018-09-01 11:54:58 -05:00
Luke Usher b00ab30648 Split Symbol scanning and patching phases
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.
2018-08-28 16:23:53 +01:00
RadWolfie a185690160 Implement IPC interface support 2018-08-16 16:12:18 -05:00
ergo720 26c61b5381 Added log window to GUI 2018-08-13 20:50:54 +02:00
Luke Usher 4412fef9bb
Initial D3D9 port (#1375) 2018-08-08 09:08:50 +01:00
RadWolfie 07a05f0e52 Use settings ini file method (#1370)
* 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.
2018-08-07 08:30:07 +01:00
ergo720 87e1833941 Allow cxbxr to build with LLE USB 2018-07-20 18:29:58 +02:00
ergo720 f47c481ee6 Introduced InputDeviceManager 2018-07-16 23:55:55 +02:00
ergo720 e1a76b643c Added SDL2 submodule 2018-07-14 23:32:18 +02:00
ergo720 45f4f32790 Amend previous rebasing 2018-07-14 17:19:34 +02:00
ergo720 f4c47fddc9 Implemented xid gamepad device + updates to hub 2018-07-14 16:58:30 +02:00
ergo720 0691b8bfb4 More hub init + some refactoring 2018-07-14 16:56:49 +02:00
ergo720 138e103ca4 Some refactoring + started Hub device work 2018-07-14 16:54:18 +02:00
ergo720 36c60e7ca7 Isochronous TD + changed usb folder structure 2018-07-14 16:52:11 +02:00
ergo720 828822c695 OHCI_GetFrameRemaining 2018-07-14 16:45:32 +02:00
ergo720 6aafb25dee Virtual and real timers 2018-07-14 16:39:55 +02:00
ergo720 403f9cb710 MMIO support for USB devices 2018-07-14 16:37:42 +02:00
ergo720 46a03cb442 Created USB devices 2018-07-14 16:22:25 +02:00
RadWolfie 05be1dd4bd Create inline function file for Windows
Plus linux filter folder for future linux support.
2018-06-16 20:18:22 -05:00
jackchentwkh 6edf293699 Add controller port configuration GUI and support virtual SB controller with feedback status (#1196)
* Add XB_ prefix for xbox XInput related structures and variables to prevent mis-use host equivalent.
Add newly findings for device table related info.

* Revert g_Controller ZeroMemory() calls.
now the XINPUT_STATE is correctly refering to host type, no need to specify the name space.

* Add X_CONTROLLER_HOST_BRIDGE structure type.
Prepare for configurabale host input, and virtual xbox controller.

* Fix DeviceInfo initialization when device table is not found.
always set state to enable rumble.

* experimenting virtual SteelBatalion controller.
using console as controller output.
using XInput and direct input combined keys

* first attem to emulat SteelBatalion controller works.

* add dialog file to solution

* Restore missing dialog files and functions

* Minor fix

* fix dialog control grouping
now registry works.

* refine some controller related constants

* Using Dialog for showing
SBC controller feedback
add possibility of using same dialog for virtual controller input.

* using EmuUpdateTickCount() as modeless dialog message handler.
sort of working.
revert the dlg message handling from wnd.cpp

* Finally the dialog for virtual SB controller feedback status works!
modeless dialog got issues. modal dialog will occupy focus. only way is to use a DLL, load the DLL when cxbx-r emulation child process started, and create a dummy window from DLL then create a modal dialog.
lots of code change and clean up.

* fix debug build,  use same character set setting for all configurations.

* restore C++ optimiztion setting in master

* remove unitended included ribbon resources

* removed necessary official document mentioning

* Add src/CxbxVSBC/Release and src/CxbxVSBC/Debug to .gitignore

* Move Host Port assignment related code to src/common/win32

* fix merge confliction

* oops, fix merge conflictions again.

* Add OLD_XINPUT mark for those marked out old XInput code. need to be reviewed in the future.

* remove unintended binary files

* fix debug build, again.
revert unindteded changes to submodule

* rever unintended submodule change

* Relocate project to build/Win32 folder

Co-Authored-By: anita999 <anita999@ms12.hinet.net>

* Restore sln file base on master

* Include project dependency to build

* Final fixup for sln file

* Restore original new line code

* Update Wnd.cpp

* Remove old include

* Include CxbxVSBC.dll into AppVeyor

This should be the last fixup for pull request.

* Fix merge-conflict

* Fix files encode format to UTF-8

* treat .rc file as text instead of binary

* Revert "treat .rc file as text instead of binary"

This reverts commit 034039d723.
2018-05-29 13:33:01 +01:00
PatrickvL 0682970e42 Project fixups 2018-05-24 10:36:24 +02:00
PatrickvL 356b7c5a27 xbdm : Initial commit; Thunk table + importing (2 functions already imported by debugchannel.xbe XDK sample) 2018-05-22 15:09:58 +02:00
RadWolfie ccff183600 Editorconfig second revision
* Apply only for src and resource directories.

With this setup, it should work as intended only for Cxbx-Reloaded's source code without affecting third-party projects.
2018-05-16 10:20:48 -05:00
RadWolfie ed263d7dbc Start using XbSymbolDatabase library
It does not fully transfer everything yet and D3D8 depending on OOVPA signature directly are currently disabled for time being.
2018-05-12 07:24:10 -05:00
RadWolfie 4344f5db58 Remove HLEDatabase files
Moving into new project.
2018-05-12 07:24:10 -05:00
ergo720 125bc23d4f Pool manager initialization 2018-04-28 22:05:06 +02:00
ergo720 4ecfc4d5d4 Started to write eeprom menu 2018-04-19 19:56:20 +02:00
PatrickvL ffceb1600a
Merge pull request #1076 from ergo720/signature
Xbe signature validation
2018-04-19 09:25:40 +02:00
PatrickvL 4ca78e947d Add Debug_Direct3D9 build configuration, specifically to be able to build for Direct3D9 while keeping the Direct3D8 code paths intact. 2018-04-16 13:18:47 +02:00
ergo720 ac8b798c66 Finished RSA decryption 2018-04-13 16:40:11 +02:00
jarupxx 3d7ddaa340 Initialize commits of HLEDB D3D8LTCG 2018-04-03 05:52:01 +09:00
Luke Usher e1a65a3bde Introduce functional NV2A LLE 2018-04-01 20:18:22 +01:00
ergo720 2608a2767c Implemented termal sensor device 2018-03-28 14:48:24 +02:00
Luke Usher d30aadda4c Oops, forgot to commit updated project files.. 2018-03-15 10:39:27 +00:00
PatrickvL 52f936611b NV2A : Copy over more nv2a code from OpenXbox/Xqemu 2018-02-19 10:58:26 +01:00
Luke Usher a2f727f0a1 Update xxHash to use Hardware CRC32C if available 2018-02-17 12:03:59 +00:00
PatrickvL 451dae5987 Kernel : Move Ki* symbols to own files 2018-02-17 11:56:31 +00:00
PatrickvL 4fb8326384 NV2A : Hide less code behind COMPILE_OPENGL 2018-02-16 11:37:19 +01:00
PatrickvL c3d8cc2e0e NV2A : Moved a few functions inside our device class 2018-02-16 11:36:54 +01:00
patrickvl 21db823596 NV2A : Split up in the same way as OpenXbox. This makes differences between the two easier to spot. 2018-02-16 11:36:22 +01:00
x1nixmzeng 5f3ddf6ee1 Merge https://github.com/Cxbx-Reloaded/Cxbx-Reloaded into cxbx-debugger 2018-02-07 22:05:11 +00:00