2e32f11f03
Remove "deprecated" and unused function Read_Opcode_JIT_LC.
2013-10-09 21:37:28 -04:00
5847e26d34
Minor JitCache cleanup.
2013-10-09 21:37:28 -04:00
86f2e1734a
Make JIT_UNLIMITED_ICACHE always on.
...
(1) The alternative doesn't compile.
(2) Despite "unlimited" sounding like a hack, it's actually
significantly more correct then the alternative, which is no
emulated icache.
(3) Easier to wrap my head around.
2013-10-09 21:37:28 -04:00
715d5ae8a7
Merge branch 'JitArmIL'
...
This implements a partial JITIL based off of the JIT64IL. It's enough to run most games, albiet at a slow speed.
Implementing instructions for this IL is really simple since it basically is just enabling based on what is already in JIT64IL, and then enabling each individual IL instruction.
2013-10-09 23:16:07 +00:00
bd79603c66
[ARM-JitArmIL] Enable a bunch of instructions.
2013-10-09 23:03:39 +00:00
4914665429
[ARM-JITArmIL] Remove the SystemRegisters file.
2013-10-09 20:59:15 +00:00
d5e40bfb01
Don't waste time looking up the block if enableBlocklink is off anyway.
2013-10-09 15:01:55 -04:00
935ed814ea
Missed a accept error handler.
...
Init instead of memset.
2013-10-09 23:35:29 +13:00
f811dbb575
Fix accept() bug, which was using the wrong isRW for error conversion.
...
Also fixed a debug issue where local_name is used uninitialised.
2013-10-09 22:16:04 +13:00
932586f743
[JitArmIL] Fix Windows build?
2013-10-09 00:55:43 +00:00
4263f062b0
[JITArmIL] Fix JITIL compiling on x86.
2013-10-08 19:16:27 -05:00
ce5dbfe7a7
[ARM-JITArmIL] Begin merging of the two IL cores in to a common source base.
2013-10-08 19:23:37 +00:00
a0f2183424
[ARM-JITArmIL] Provide the necessary instructions to allow the JitArmIL to actually run. Disable branch instructions as well for now since one is wrong somewhere.
2013-10-08 16:42:33 +00:00
0236ba3f86
[ARM-JITARMIL] CMP optimization. Int3 IR. DownCount added.
2013-10-07 23:25:13 +00:00
a4eab75d15
[ARM] Beginning of JitArmIL JIT recompiler. This code is entirely based off of magumagu's work with the JIT64IL. This puts down the base needed for the recompiler. Starfield actually runs quite a few blocks being mysteriously dying while most other games just exit out due to an instruction not being done yet. A lot of this code can be tidied up and actually shared between the two IL recompilers but isn't yet done.
2013-10-07 14:25:07 +00:00
d6f0ecebb4
Fix updating the register even if an exception occurred in MMU mode.
2013-10-07 02:34:38 -04:00
a9908fdf09
Fix build issues on OS X i386.
2013-10-07 02:16:51 -04:00
2b08172a45
Corrected the XMM0 processing for pairedStoreQuantized in the x86 build.
...
Updated the PC for the fifo writes processing in the less common case.
2013-10-06 16:31:34 +11:00
8722b9cfb5
Missing break for IOCTL_ES_DELETETITLECONTENT
2013-10-06 16:22:44 +13:00
a7d073b0da
[Core] Simplify a loop within function Run() in Interpreter.cpp. The increment variable for the for loop is never used at all, so it's sensible to replace it with a while loop.
2013-10-05 14:38:21 -04:00
2d00c3a4f8
Added code to update the PC before doing a fastmem write. Fixes games with freezing and FIFO errors since r2a339c926e43c11f7b9acc8d3af202f0be54e2b0.
2013-10-05 23:23:49 +10:00
6498a77362
Fix storeSingleFloat stack alignment.
2013-10-05 07:56:57 -04:00
8324510d65
Removed the IOSVersion check (caused some Wii games like Battalion Wars 2 not to boot).
2013-10-05 13:07:40 +10:00
b7d1c03c8a
Added a check for the IOS version before overriding the OSGetResetCode() function.
...
Fixes issue 6700.
2013-10-05 12:41:59 +10:00
a51eb5fd19
Fix idle skipping.
...
It incorrectly continued to test EAX after it was changed to load
directly to the assigned register.
Also switch from a flush to ABI_PushRegistersAndAdjustStack, to avoid
needless flushing in the no-idle case.
2013-10-04 20:33:39 -04:00
3679f9ba60
Don't push registers before pairedStoreQuantized, that's dumb.
...
And fix some stuff up. It would probably be good to unify the stack
handling some more rather than having ABI_PushRegistersAndAdjustStack do
part of it and ABI_AlignStack the rest, causing unnecessary subtract
instructions on Linux x86 (only).
2013-10-04 15:48:06 -04:00
a91469ffa5
Fix stfd, which was broken in the fastmem writes commit.
2013-10-03 18:22:35 -04:00
5e4665301b
Finish replacing ThunkManager with ABI_PushRegistersAndAdjustStack.
...
As part of that, change SafeLoadToEAX to SafeLoadToReg, and have JitIL
use that, which should fix fastmem on JitIL.
This should also fix a potential stack corruption issue with x86.
2013-10-03 18:22:35 -04:00
a53dc6f981
Remove profiled re-JIT support in JitIL.
...
It's extremely unsafe, unused (not exposed in the GUI and not present in
any gameconfigs), and mostly obviated by fastmem. Although this type of
thing could theoretically be useful someday for fastmem support with
MMU, it's probably not the best way to do it, the existing
implementation is way too simplistic, and it can always be dug up to
provide support for a new implementation if needed.
Not like it's a big deal to keep it working, but it really seems
pointless.
2013-10-03 18:22:12 -04:00
3b0c0e2500
Trap to the debugger properly after BackPatch failure.
2013-10-03 18:21:29 -04:00
fe3d0c9aa2
[ARM] Disable subfic, it prevents Wind Waker from booting into a save game.
2013-10-03 06:43:16 +00:00
cb3afe8f70
Warning fixes:
...
- Don't use %lu for size_t; they're different on Linux x86.
- has_warned_about_drivers is only used on win32, so only declare it
there to avoid a unused variable warning.
2013-10-02 20:48:37 -04:00
1ec4894bc5
[Common] Abstract out the decode5A3Image and decodeCI8Image functions in BannerLoaderGC, BannerLoaderWii, and GCMemcard into ColorUtil.cpp. Makes for less copied code and remains functionally the same.
2013-10-02 18:18:54 -04:00
cd99e5e3a6
mtspr fall through to interpreter not needed for basic SPRs
2013-09-30 23:43:11 +13:00
d261dfaf46
Upgrade libusb to 1.0.16
2013-09-30 18:36:54 +13:00
b0200219dd
Add literally a million blank inputs in netplay when a wiimote changes reporting mode, just to make nsmbw sync.
2013-09-28 23:39:29 -04:00
853392b790
Use a separate section for enabled Gecko codes, like AR.
...
This properly fixes default gecko codes.
It makes perfect sense to have two separate cheat windows and two
separate code paths for the different code formats, right?
2013-09-28 23:38:40 -04:00
f57ff0a569
Support a gcm revision-specific game ini for cheats + partially fix gecko codes in default ini.
...
The local ini is not revision-specific because it would require renaming
everything. Meh.
2013-09-28 23:38:25 -04:00
9c53a21c18
Allow setting DSP settings via game ini.
2013-09-28 08:31:28 -04:00
785171abb4
Change iTLBHack to a bool.
...
It is only used as a bool.
Fixes issue 6668.
2013-09-28 08:07:23 -04:00
9a2c7df8dc
Added a small disc access delay to fix the missing music in Super Monkey Ball 2.
2013-09-27 20:35:27 +10:00
4542b9fcbb
[Core] Fix a memory leak in NetPlayServer.cpp in function OnData().
2013-09-26 15:42:22 -04:00
e37cb1fc76
Implement CR1 for the intepreter. To be honest I have no idea why this was never done previously, all it is is copying four bits from the FPSCR register to CR1. This fixes issue 2390.
2013-09-26 18:09:25 +00:00
691f76b826
[ARM] Implement CR1 setting for the few floating point instructions that I have setting the flags. For the rest, drop to interpreter if it sets CR1. At that point it'll spam a panic alert. I don't quite understand why Interpreter and JIT64/IL don't do this yet, it's a simple 4 bit copy.
2013-09-25 18:17:05 +00:00
54843ad1e8
Need to reload from XMM0 in this case.
2013-09-25 14:16:20 -04:00
74ee85aaac
Fix linux, attempt 2.
2013-09-25 06:22:11 -04:00
f77b3ccf8a
Fix linux, probably.
2013-09-25 06:13:44 -04:00
93f7622e16
Fix changing wiimotes when starting netplay.
...
AccessWiiMote() crashed for some users. Not sure why...
2013-09-25 05:44:16 -04:00
ebe4448749
Save only the registers that need to be saved rather than going through ProtectFunction.
2013-09-25 03:15:53 -04:00
2a339c926e
Fastmem writes for x86-64.
2013-09-25 03:15:53 -04:00