dolphin/Source/Core/Core
EmptyChaos 83407263e5 HLE/GeckoCode: Add new HLE hook exit trampoline
Dolphin emulates GeckoCodes by fiddling with the CPU state when a
VI Interrupt occurs. The problem with this is that we don't know
where the PC is so it's non-deterministic and not necessarily
suitable for use with the codehandler.

There are two options: Patch the game like Gecko OS either directly
or using HLE::Patch, or use a trampoline so we can branch from any
PC even if it would otherwise not be valid. The problem with Gecko OS
patches is there are 10 of them and they have to be configured
manually (i.e. Game INIs to would need to have a [Core]GeckoHookType
property).

HLE_Misc::GeckoReturnTrampoline enables the Code Handler to be
entered from anywhere, the trampoline restores all the registers that
had to be secretly saved to the stack.
2016-10-03 16:27:42 +11:00
..
Boot HLE/GeckoCode: Add new HLE hook exit trampoline 2016-10-03 16:27:42 +11:00
Debugger PPCDebugInterface: Fix ToggleMemcheck 2016-09-15 13:08:48 +10:00
DSP Reorganise a ton of logs level 2016-10-01 15:50:28 -04:00
FifoPlayer Support for dynamic BAT modification (dynamic-bat). 2016-09-06 08:43:22 +02:00
HLE HLE/GeckoCode: Add new HLE hook exit trampoline 2016-10-03 16:27:42 +11:00
HW Merge pull request #4244 from leoetlino/stm-shutdown 2016-10-02 20:25:13 -07:00
IPC_HLE Merge pull request #4244 from leoetlino/stm-shutdown 2016-10-02 20:25:13 -07:00
PowerPC HLE/GeckoCode: Add new HLE hook exit trampoline 2016-10-03 16:27:42 +11:00
ActionReplay.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ActionReplay.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Analytics.cpp Suppress deprecation warning. 2016-06-26 00:49:51 -04:00
Analytics.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ARDecrypt.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ARDecrypt.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
BootManager.cpp Force disable WC24 standby mode 2016-10-01 13:06:04 +02:00
BootManager.h Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
CMakeLists.txt IPC_HLE/stm: Separate header and implementation 2016-10-01 13:06:04 +02:00
ConfigManager.cpp ConfigManager: In-class initialise member variables 2016-09-25 22:36:26 +02:00
ConfigManager.h ConfigManager: In-class initialise member variables 2016-09-25 22:36:26 +02:00
Core.cpp Reorganise a ton of logs level 2016-10-01 15:50:28 -04:00
Core.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Core.vcxproj IPC_HLE/stm: Separate header and implementation 2016-10-01 13:06:04 +02:00
Core.vcxproj.filters IPC_HLE/stm: Separate header and implementation 2016-10-01 13:06:04 +02:00
CoreTiming.cpp CoreTiming: Guarantee FIFO processing of timed events 2016-09-08 19:46:42 +10:00
CoreTiming.h CoreTiming: Document initial startup behavior 2016-09-03 14:55:45 +10:00
DSPEmulator.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
DSPEmulator.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ec_wii.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ec_wii.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
GeckoCode.cpp HLE/GeckoCode: Add new HLE hook exit trampoline 2016-10-03 16:27:42 +11:00
GeckoCode.h HLE/GeckoCode: Add new HLE hook exit trampoline 2016-10-03 16:27:42 +11:00
GeckoCodeConfig.cpp Fix building with PCH disabled. 2016-08-07 01:18:59 -05:00
GeckoCodeConfig.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Host.h VideoCommon: Drop GetConfigName. 2016-06-26 12:34:59 +02:00
HotkeyManager.cpp [Hotkey] Added custom textures toggle 2016-08-19 23:14:56 -05:00
HotkeyManager.h [Hotkey] Added custom textures toggle 2016-08-19 23:14:56 -05:00
MachineContext.h Add a context definition for OpenBSD amd64. 2016-07-17 22:15:14 -06:00
MemoryWatcher.cpp Core: Change CoreTiming event key from int to EventType* 2016-09-03 14:55:44 +10:00
MemoryWatcher.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
MemTools.cpp Add a context definition for OpenBSD amd64. 2016-07-17 22:15:14 -06:00
MemTools.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Movie.cpp Move code into Movie::SignalDiscChange 2016-08-21 12:51:14 +02:00
Movie.h Move code into Movie::SignalDiscChange 2016-08-21 12:51:14 +02:00
NetPlayClient.cpp Wiimote netplay: Check the reporting mode instead of the size 2016-08-14 19:25:00 +02:00
NetPlayClient.h Wiimote netplay: Check the reporting mode instead of the size 2016-08-14 19:25:00 +02:00
NetPlayProto.h Add md5 testing to netplay 2016-07-16 22:48:46 +02:00
NetPlayServer.cpp Merge pull request #3588 from Aestek/feature/improve-netplay-dialog 2016-07-26 02:12:22 +02:00
NetPlayServer.h Fix bogus UPnP requests 2016-07-23 20:04:07 +02:00
PatchEngine.cpp HLE/GeckoCode: Add new HLE hook exit trampoline 2016-10-03 16:27:42 +11:00
PatchEngine.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
State.cpp DVDInterface: Make changing discs savestate-safe 2016-09-27 16:51:14 +02:00
State.h DolphinWX: Don't translate OSD messages 2016-08-10 18:18:25 +02:00