Rachel Bryk
86ccf13c09
End movie play back immediately if g_currentByte > g_totalBytes.
...
Also uncomment a PanicAlert in the case of g_currentByte > totalSavedBytes, and add comment explaining how it can happen.
2014-07-05 19:48:44 -04:00
Tillmann Karras
ad2aaedd8b
Don't install segfault handler in interpreter mode
2014-07-05 11:02:41 +02:00
Tillmann Karras
311e9e655a
CoreParameter: add enum CPUBackend
2014-07-05 11:02:41 +02:00
Tillmann Karras
20a16beabd
enum CPUState: rename CPU_* to STATE_*
2014-07-05 11:01:49 +02:00
Rachel Bryk
e02f680861
Keep device type EXIDEVICE_MEMORYCARDFOLDER for gci folder.
...
This fixes loading save states when type mismatches.
2014-07-05 00:22:42 -04:00
Tillmann Karras
20dc0e7819
Remove unused variables
2014-07-04 03:56:58 +02:00
Lioncash
9c764eff3a
Fix a type-conversion warning in Movie.cpp
...
Fixes a C4800 warning. 'int' : forcing value to bool 'true' or 'false'
(performance warning)
2014-07-03 02:07:29 -04:00
Lioncash
ab6434f616
Merge pull request #551 from lioncash/movie
...
Clean up string handling in Movie.cpp
2014-07-02 22:57:01 -04:00
Lioncash
d649027ec8
Clean up string handling in Movie.cpp
2014-07-02 22:45:50 -04:00
Rachel Bryk
de3f587b32
Add support for 2 memory cards for movies.
2014-07-02 22:26:29 -04:00
Lioncash
af7efaa461
[Core] Clean up the DSP disassembler
...
- Get rid of deletes.
- Clean out all of the sprintf calls. Now std::string based.
- Fully explicit function names, etc.
2014-07-02 20:19:39 -04:00
Matthew Brennan Jones
124210c50f
Changed lingering header include guards to pragma once.
...
Some headers where using #ifndef to guard being including multiple times. But most were using pragma once. So for consistency I changed them all to use pragma once.
2014-07-01 22:17:33 -07:00
Rachel Bryk
899274445b
Fix patches not being loaded when running real gc bios.
2014-06-30 17:28:45 -04:00
Lioncash
8ada47876a
Get rid of a few delete[] calls in sdio_slot0.cpp
2014-06-29 22:55:47 -04:00
galop1n
729758f2f9
Fix an invalid foreach loop over an unordered_map with deletion in WiiSockets
2014-06-27 13:02:28 -04:00
Lioncash
bd377b9580
Merge pull request #443 from magumagu/loadstore-cleanup
...
Loadstore cleanup
2014-06-26 21:32:59 -04:00
Lioncash
11d304ae29
Merge pull request #259 from magumagu/dtk-rewrite
...
DTK rewrite
2014-06-26 20:01:07 -04:00
magumagu
ca0203a1cc
AudioCommon: restore support for DTK volume setting.
2014-06-26 16:56:57 -07:00
Lioncash
ca5340ebde
Centralize the logging code into its own folder in Common.
2014-06-25 22:11:42 -04:00
Ryan Houdek
a40ae6883a
Move CoreTiming::downcount to PowerPC::ppcState.
...
This isn't technically the correct place to have the downcount variable, but it is similar to what PPSSPP does to gain a bit of extra speed on ARM.
We access this variable quite a bit, with each exit in a block it is subtracted from.
On ARM this required four instructions to load and store the value, while now it only requires two.
This gives an average of 1FPS gain to most games.
Examples:
Crazy Taxi: 54FPS -> 55FPS
Luigi's Mansion: 20FPS -> 21FPS
Wind Waker(Save Screen): 27FPS -> 28FPS
This seems to average a 6mhz to 16mhz CPU core emulation improvement in the few games I've tested.
2014-06-26 01:48:00 +00:00
Lioncash
177658aed6
Merge pull request #513 from lioncash/vs-x64
...
Remove the 32-bit config platform from the VS solution file
2014-06-25 21:23:45 -04:00
Lioncash
2db50612b9
Merge pull request #510 from RachelBryk/unused
...
Remove an unused variable.
2014-06-25 12:41:04 -04:00
Tony Wasserka
416a3201ed
Merge pull request #480 from Sonicadvance1/PR371-Revert
...
Revert "PPCAnalyst now detects internal branches better"
2014-06-25 16:02:52 +02:00
Ryan Houdek
a99ad2db7c
Merge pull request #499 from magumagu/ipchle-disk-channel
...
ES_LAUNCH fixes for disk channel etc
2014-06-25 04:00:57 -05:00
Lioncash
8b13afbb8e
Remove the 32-bit config platform from the VS solution and projects
2014-06-24 22:07:26 -04:00
LPFaint99
c65a6f5fb0
GCI Folder: correctly identify region of sysmenu
2014-06-23 19:58:27 -07:00
LPFaint99
32b2c40490
first implementation of memcard from directory, creates a memory card from USERDIR/GC/<REGION>/Card <A/B>
...
Savestates include the entire memorycard, but the only saves that should be modified are the ones that are directly modified by the game the others are preserved merely to avoid changing the memory card header during the game as some games (Zelda) refuse to save
Implement DMA r/w for memcard.
Skips programming buffer for writes
Add a migration feature that auto imports all saves from your default memcard to the new memcard dir if it doesn't exist.
Actually "delete" save files by renaming to s/*.gci/*.gci.deleted/
2014-06-22 18:03:52 -07:00
LPFaint99
404e9ce3ee
move memorycard handling to its own class
2014-06-22 17:59:08 -07:00
Pierre Bourdon
add090bde6
DSP: Add support for PCAP logging of CPU<->DSP communications
2014-06-22 20:04:46 +02:00
Pierre Bourdon
7889d90633
DSPLLE: Improve initialization by using an options structure instead of individual params
2014-06-22 20:04:46 +02:00
Lioncash
3c51c75b3e
Merge pull request #526 from RachelBryk/input-label
...
Fix an incorrect label in fps display string.
2014-06-22 13:31:31 -04:00
Rachel Bryk
addbbf11d7
Allow progressive scan to be set by game ini.
2014-06-22 12:29:16 -04:00
Rachel Bryk
93a215c9e7
Fix an incorrect label in fps display string.
2014-06-22 12:21:11 -04:00
Pierre Bourdon
5dff577339
Merge pull request #500 from lioncash/ini
...
Use only section-based ini reading.
2014-06-22 17:21:45 +02:00
Lioncash
86d6455391
Merge pull request #505 from RachelBryk/wiimote-state
...
Save an unsaved wiimote variable to save states.
2014-06-21 19:59:24 -04:00
Lioncash
72050d455d
Merge pull request #521 from RisingFog/dtm-update
...
Removed unused variable, Added tick count check
2014-06-21 19:19:02 -04:00
Fog
76c5fa084b
Removed unused variable, added tick count check
2014-06-21 11:43:33 -04:00
Rachel Bryk
3e60979000
Abort loading a save state if emulation isn't running.
2014-06-20 21:22:54 -04:00
magumagu
eeb7fc25f4
JIT: Make lmw/stmw use safe load/stores.
2014-06-20 12:54:10 -07:00
magumagu
6c9095ebab
JITIL: fix some unsafe loads.
...
I'm planning on making changes to the memory code, so I don't want this
stuff to get in the way. The slight performance hit to JITIL isn't really
important at the moment.
2014-06-20 12:53:22 -07:00
magumagu
85724dd78a
JIT: Remove dead code.
2014-06-20 12:53:21 -07:00
magumagu
06864e9fee
JIT: Clean up float loads and stores.
...
Less code is good, and this should make future changes to memory handling
easier.
2014-06-20 12:52:39 -07:00
Rachel Bryk
0d60389d03
Save an unsaved wiimote variable to save states.
2014-06-20 09:35:47 -04:00
Tony Wasserka
ddce7e9778
Merge pull request #508 from RisingFog/upstream
...
Add Tick Count to Movie Files
2014-06-20 13:47:05 +02:00
Fog
c6e1a19e61
Add Tick Count to Movie Files
...
Added tick count to .dtm movie files for more accurate time calculations
2014-06-19 12:11:09 -04:00
Tony Wasserka
0e0238eccf
Merge pull request #498 from magumagu/remove-daz
...
Don't set DAZ on x86 in non-IEEE mode.
2014-06-19 16:53:21 +02:00
Tony Wasserka
9f22b2378d
Merge pull request #485 from magumagu/packed-fp-reciprocal
...
Interpreter: return single-precision results for ps_rsqrte.
2014-06-19 16:51:33 +02:00
Tony Wasserka
0b1cb1ee45
Merge pull request #436 from RachelBryk/netplay-kick
...
Add an option to kick players from netplay.
2014-06-19 14:57:00 +02:00
Tillmann Karras
feef0bbd2b
JITs: add a macro for easy interpreter fallback
2014-06-19 14:39:01 +02:00
Tillmann Karras
f351ec64db
Jit64[IL]: remove code leftover from x86-32
2014-06-19 14:32:53 +02:00
Tillmann Karras
e684e902ef
Jit64IL: remove unused macro
2014-06-19 14:32:53 +02:00
Rachel Bryk
e519b05e7a
Remove an unused variable.
...
It's never been used since it was added except to check the value, which is always false.
2014-06-18 20:25:21 -04:00
Lioncash
ce54c1e571
Kill off replaceable usages of s[n]printf.
2014-06-18 19:53:38 -04:00
magumagu
1f604e87be
Try to make DTK rewrite handle events the same way as the old code.
2014-06-18 13:09:55 -07:00
Rachel Bryk
dbcd40111f
Add an option to kick players from netplay.
2014-06-18 13:22:45 -04:00
Ryan Houdek
ee690fe401
Merge pull request #468 from RachelBryk/remove-exi-update
...
Remove unused EXI update functions.
2014-06-16 16:36:13 -05:00
Lioncash
f05d3f6e5d
Use only section-based ini reading.
2014-06-16 01:31:23 -04:00
magumagu
31b950325d
HLE: Remove ES_LAUNCH HLE.
...
It isn't necessary anymore now that we emulate ES_LAUNCH correctly in
IPCHLE. This fixes launching MP2 multiplayer in Metroid Prime Trilogy.
2014-06-15 20:08:15 -07:00
magumagu
b423004ab3
IPCHLE: use only one CoreTiming event.
2014-06-15 20:08:14 -07:00
magumagu
f9b72d0891
IPCHLE: Fix ES_LAUNCH so it works for disk titles.
...
Among other things, this makes the Disk Channel fully functional.
2014-06-15 20:08:14 -07:00
magumagu
a282f181cd
Streaming/DTK audio: fix pausing playback.
2014-06-15 15:08:47 -07:00
Ryan Houdek
78d2322aa0
Fix ARM Jit's subfic when d != a.
...
Missed this path previously, Crazy Taxi hits it.
2014-06-15 15:37:17 +00:00
Ryan Houdek
83157ba350
Fix the ARM JIT's subfic implementation.
2014-06-15 09:40:31 -05:00
Pierre Bourdon
020b4fde1e
Merge pull request #492 from Armada651/master
...
Remove EmuWindow
2014-06-15 14:16:53 +02:00
magumagu
d905cbfd5d
Don't set DAZ on x86 in non-IEEE mode.
...
I have no idea why we were using it in the first place; it doesn't match
the behavior of PPC NI flag.
2014-06-15 03:51:51 -07:00
Tony Wasserka
a6395ae5b3
Merge pull request #432 from magumagu/ipchle-timing
...
IPC-HLE event handling improvements
2014-06-15 12:00:54 +02:00
magumagu
d43ecd0bd1
Rewrite handling of DTK (streaming) audio.
...
The primary motivation here is to make sure we submit samples from the
CPU thread. This makes sure the timing of related interrupts accurate,
and generally keeps the different kinds of audio synchronized. This will also
allow improvements to audio dumping functionality.
The new code is also more concise because it gets rid of some duplicated
audio mixing code.
2014-06-14 15:55:20 -07:00
Armada
f2759ffe65
Remove EmuWindow.
...
All it did was raise complexity.
2014-06-15 00:49:49 +02:00
Pierre Bourdon
a0ff868c34
Merge pull request #488 from Tilka/dead_code
...
Jit64: remove dead code
2014-06-14 22:39:50 +02:00
magumagu
58e9b65f9b
IPCHLE: clean up spelling.
2014-06-14 10:03:49 -07:00
magumagu
063ab30e3d
IPCHLE: improve HLE timing.
...
This change attempts to make calls to WII_IPC_HLE_Interface::Update()
more consistent. We should be calling it whenever there is something we
can pop from a queue, and this patch does that.
DeviceUpdate() now works independently of Update(): it's now just a periodic
timer for devices which need to regularly update state.
With this change, we need a non-zero default delay for IPC replies because
replies are popped off the queue much more aggressively.
This fixes launching channels from the the System Menu.
2014-06-14 10:02:46 -07:00
Tony Wasserka
a8f32adcab
Merge pull request #470 from pauldacheez/s-Gamecube-GameCube
...
Fix the capitalization of "GameCube" throughout the project.
2014-06-13 21:52:08 +02:00
Tillmann Karras
32e427cd73
Jit64: remove dead code
2014-06-13 20:15:31 +02:00
Ryan Houdek
2152e812fc
Fix conditional branching on x86_64.
...
The register cache can be filled to the point that when dumping them the FixupBranch goes over the maximum size of 0x80.
Force them to use the "5byte" variant of the jump.
If we were able to determine if the length we had to jump was <0x80 in the future this could be a slight optimization.
This has to be done in bcctrx, bclrx, and twx. It was already done in bcx before.
This fixes issue 7378.
2014-06-13 12:41:50 -05:00
magumagu
3da52018dc
Interpreter: return single-precision results for ps_rsqrte.
2014-06-11 19:50:33 -07:00
Ryan Houdek
1db93db474
Merge pull request #474 from Sonicadvance1/conditional-branch
...
Support conditional register cache flushing on ARMv7.
2014-06-10 07:21:07 -05:00
Ryan Houdek
be4b544bf6
Merge pull request #479 from Sonicadvance1/x86-regcache
...
Jit64 RegCache cleanup
2014-06-10 07:20:55 -05:00
Ryan Houdek
5147e721ae
Revert "PPCAnalyst now detects internal branches better"
...
This reverts commit 31ec57ab81
.
2014-06-10 04:58:56 -05:00
Ryan Houdek
c2b6a41e6b
Fix a few code style remarks.
...
Removes some casting of size_t to int.
2014-06-10 02:52:15 -05:00
Ryan Houdek
b4ec70f0ac
Add conditional register cache flushing to JIT64's twx instruction.
2014-06-10 02:46:10 -05:00
Ryan Houdek
06e8c7d7c9
Add conditional register cache flushing to JIT64's bcx instruction.
2014-06-10 02:45:04 -05:00
Ryan Houdek
b99edd6202
Add conditional register cache flushing to JIT64's bcctrx conditional route.
2014-06-10 02:44:16 -05:00
Ryan Houdek
5e1a465d50
Change register cache to using an enum to determine flush mode.
...
This is easier to identify what the flush is doing rather than a "true" as argument.
2014-06-10 02:42:00 -05:00
Ryan Houdek
2989ccff79
Support conditional register cache flushing on ARMv7.
...
Similar to PR #451 , but for ARM as well.
2014-06-09 06:08:13 -05:00
Tony Wasserka
489534bc7c
Merge pull request #248 from RachelBryk/dsp-rom-hash
...
Add DSP rom hashes to movie header.
2014-06-08 11:27:55 +02:00
Paul Olszewski
5d793881b0
Fix the capitalization of "GameCube" throughout the project.
2014-06-08 11:24:49 +09:00
Ryan Houdek
b778b43992
Merge pull request #404 from magumagu/jitcache-cleanup
...
JitCache cleanup
2014-06-07 01:49:07 -05:00
Ryan Houdek
b591184e4b
Merge pull request #437 from lioncash/netplay
...
Minor netplay server cleanup
2014-06-07 01:08:52 -05:00
Ryan Houdek
b6db0d0ab8
Merge pull request #457 from Tilka/jcc
...
x64Emitter: J_CC: use 32 bit offset automatically
2014-06-06 20:53:50 -05:00
Ryan Houdek
c118632cde
Merge pull request #450 from Tilka/fmrx
...
Jit64: revert fmrx revert
2014-06-06 20:53:21 -05:00
Rachel Bryk
525965a873
Remove unused EXI update functions.
2014-06-06 20:30:36 -04:00
Ryan Houdek
db08f7bf4a
Merge pull request #371 from quarnster/patch-1
...
PPCAnalyst now detects internal branches better
2014-06-06 02:45:24 -05:00
Pierre Bourdon
834bc85e1f
Merge pull request #458 from Tilka/warnings
...
Fix some warnings
2014-06-06 00:58:37 +02:00
Pierre Bourdon
b780ef950c
Merge pull request #435 from YourGamesBeOver/master
...
Options for selecting which columns are visible in the game list.
2014-06-06 00:46:26 +02:00
yourgamesbeover
91840cb4c7
added option for selecting which column are displayed in the game list, added optional game id column, and added config entry to disable making compressed games blue
2014-06-05 15:34:20 -04:00
Tillmann Karras
0eb341e542
Fix some warnings.
...
The 'offset' variable needs to stay because the disabled code below uses it.
2014-06-04 01:04:52 +02:00
Tillmann Karras
f8280401f6
x64Emitter: J_CC: use 32 bit offset automatically
2014-06-03 23:08:58 +02:00
degasus
541bfd071e
Jit64: Don't flush the regcache on bcx
2014-06-02 18:12:54 +02:00
degasus
0cd9eea99e
RegCache: make state clear optional on flushes
2014-06-02 18:12:53 +02:00
degasus
38c3812a60
RegCache: merge fpr+gpr BindToRegister
2014-06-02 18:12:53 +02:00
degasus
9e9b71fa87
RegCache: merge fpr+gpr StoreFromRegister
2014-06-02 18:12:53 +02:00
degasus
fd9bfddde7
RegCache64: devirtualize RegCache::Start
2014-06-02 18:12:53 +02:00
degasus
8693e0abaa
RegCache64: Use std::array
2014-06-02 18:11:26 +02:00
degasus
6089812482
RegCache64: move x?locks into register structs
2014-06-02 13:02:52 +02:00
degasus
c800918fd8
RegCache64: remove unused functions
2014-06-02 09:53:44 +02:00
Tillmann Karras
2cf27e4de8
Jit64: revert fmrx revert
...
The AVX revert was not supposed to touch fmrx.
Partially reverts 2fad2a3e88
.
2014-06-02 08:53:02 +02:00
Ryan Houdek
e0a60a40a5
Remove unused mojs array from ppcState.
...
This was some unused array just sitting in our global ppcState struct.
I've got no idea what its use was /supposed/ to be used for if ever implemented.
2014-06-02 01:39:07 -05:00
degasus
4545fa589d
Jit64: remove unused FlushMode enum
2014-06-02 08:24:25 +02:00
Lioncash
7babc635cb
Compress a for loop in NetPlayServer.
...
Also gets rid of a redundant return from a void function.
2014-05-29 22:14:50 -04:00
Lioncash
49b0eef393
Remove the min/max functions in CommonFuncs.
...
The algorithm header has the same functions.
2014-05-29 21:44:41 -04:00
Lioncash
a3ae20fc15
Remove the use of a delete[] in NetPlayServer.
...
We just use a vector instead of a raw pointer.
2014-05-29 20:39:09 -04:00
shuffle2
7c09f07f36
Merge pull request #399 from magumagu/bsemu-bat
...
BS2 emulation: set up a reasonable BAT during startup.
2014-05-29 15:36:28 -07:00
shuffle2
e9975cdd63
Merge pull request #419 from magumagu/jit-load-store-cleanup
...
Jit load store cleanup
2014-05-29 15:25:00 -07:00
shuffle2
3b23f4bbd6
Merge pull request #420 from magumagu/backpatch-s8
...
JIT: make backpatch handle sign-extend from 8 bits correctly.
2014-05-29 14:09:59 -07:00
shuffle2
d18bc31e74
Merge pull request #429 from RachelBryk/netplay-pid
...
Make sure netplay player IDs are actually unique.
2014-05-29 14:02:24 -07:00
Pierre Bourdon
2a14c55279
Merge pull request #409 from lioncash/lolmemset
...
Explicitly center the X and Y joystick values.
2014-05-28 12:19:48 +02:00
Rachel Bryk
8c70ee7194
Make sure netplay player IDs are actually unique.
...
Fixes issue 7329.
2014-05-28 06:04:08 -04:00
Pierre Bourdon
0602dacfde
Merge pull request #423 from lioncash/dsp-clarification
...
Clarify what FindBrackets does in the DSP assembler
2014-05-28 12:01:05 +02:00
Pierre Bourdon
3c722b6be7
Merge pull request #417 from magumagu/jit-unused-flags
...
Jit: Remove unused members from JitState.
2014-05-28 12:00:46 +02:00
Pierre Bourdon
5abd518eb9
Merge pull request #427 from magumagu/interpreter-hle
...
Interpreter: correctly support HLE functions.
2014-05-28 11:59:02 +02:00
lioncash
4cb111e5db
Clarify what FindBrackets does in the DSP assembler
2014-05-26 17:04:58 -04:00
Pierre Bourdon
f5e1dee230
Merge pull request #413 from delroth/flags-opt
...
PowerPC: Get rid of the 'cr' field which was obsoleted by the new 'cr_fast'
2014-05-26 22:37:01 +02:00
magumagu
2599cd545e
JIT: make backpatch handle sign-extend from 8 bits correctly.
...
I don't think this is actually possible to trigger at the moment... but
it matches the implementation of SafeLoadToReg.
2014-05-26 01:45:07 -07:00
magumagu
e5ebf22161
JIT: unify two branches in SafeLoadToReg.
...
Should behave the same as it did before.
2014-05-25 21:14:06 -07:00
magumagu
68a327c246
JIT: Simplify redundant if statements for memcheck.
2014-05-25 21:13:39 -07:00
magumagu
e239e82ea3
Jit: Remove unused members from JitState.
2014-05-25 18:19:47 -07:00
magumagu
ec9dd80b7f
Memmap: get rid of unused junk.
...
This should make it a bit more clear what interfaces we're actually
exposing for memory access at the moment.
2014-05-25 18:07:09 -07:00
magumagu
44f481ec13
PPCCache: Get rid of FAST_ICACHE define.
...
There's no reason to keep around the ifdefs.
2014-05-25 18:06:52 -07:00
magumagu
98dd99a696
Interpreter: correctly support HLE functions.
...
m_EndBlock is always false at the beginning of SingleStepInner in the
normal interpreter loop.
2014-05-25 15:39:46 -07:00
Pierre Bourdon
3a76c0c8f5
PowerPC: Get rid of the 'cr' field which was obsoleted by the new 'cr_fast'
2014-05-25 22:59:51 +02:00
Pierre Bourdon
010ca048df
Merge pull request #408 from lioncash/bool
...
Use a bool instead of an int to represent the initialized state in IOWin.cpp
2014-05-25 02:25:56 +02:00
Lioncash
9e7c5c0e58
Explicitly center the X and Y joystick values.
...
More self-explanatory at a glance than a memset.
2014-05-24 20:10:41 -04:00
Lioncash
728078bc09
Use a bool instead of an int to represent the initialized state in IOWin.cpp
2014-05-24 19:43:11 -04:00
Lioncash
dd35a968f8
Fix a struct overflow case in WII_IPC_HLE_Device_hid.cpp
...
WiiHIDDeviceDescriptor is 20 bytes in size (2 of which are padding bytes)
libusb_device_descriptor on the other hand is 18 bytes (does not have the
2 padding bytes).
So we were pulling 20 bytes out of an 18 byte struct, which isn't really
correct.
2014-05-24 18:36:28 -04:00
magumagu
282e9bd292
JitCache: use a custom bit-set class.
...
Unfortunately, this appears to be necessary for the sake of performance;
the standard library equivalents don't work well enough on Visual Studio
2013. vector<bool>::insert() is way too slow in debug
builds to be usable, and std::bitset generates inefficient code in release
builds.
2014-05-24 14:17:53 -07:00
magumagu
6bb08de8a0
JIT: get rid of useless code in JitCache.cpp.
2014-05-24 11:04:24 -07:00
magumagu
336b55bbc4
BS2 emulation: set up a reasonable BAT during startup.
...
It doesn't really matter much at the moment given our current terrible MMU
emulation, but it will start mattering once our MMU emulation gets more
accurate.
2014-05-24 03:46:12 -07:00
magumagu
440246a190
Interpreter: use numeric_limits instead of FLT_MAX.
...
Minor cleanup, and fixes compilation on some systems.
2014-05-24 10:58:15 +02:00
Tony Wasserka
cffa848b99
Merge pull request #390 from magumagu/fp-reciprocal
...
Add accurate implementations of frsqrte and fres
2014-05-24 10:45:01 +02:00
magumagu
6955fef161
Interpreter: Code style fixes.
2014-05-23 15:06:09 -07:00
magumagu
d0ed3b8192
Jit: Use infinity and NaN from numeric_limits.
...
MSVC's implementation of INFINITY is unusable.
2014-05-23 14:59:03 -07:00
magumagu
a9a2d3d98d
New frsqrte implementation; verified accurate.
...
This is similar to the old implementation, but it uses smaller tables, and
handles more edge cases correctly. (hwtest coming soon.)
2014-05-23 14:59:02 -07:00
magumagu
129e76e60d
Interpreter: refactor the rsqrte code, and use it for ps_rsqrte.
2014-05-23 14:59:00 -07:00
magumagu
567724b2f8
Jit: get rid of incorrect implementations of fres and frsqrte.
...
The existing implementations produce answers which aren't consistent with
the hardware, and games care about correct floating point math.
These can be reimplemented at some point in the future, if someone cares
enough, but the general case is probably too much code to inline.
(I'm leaving the ARM implementations in place by request, even though they
suffer the same issues.)
2014-05-23 14:57:34 -07:00
Yuriy O'Donnell
ac75766c25
removed trailing whitespace
2014-05-23 21:14:48 +02:00
Yuriy O'Donnell
d08abfc14e
JIT: JitBaseBlockCache::InvalidateICache no longer memsets iCache memory to INVALID_BYTE.
...
This is redundant, since we reset the valid_block bits any way.
However, this was a source of a significant performance issues in some games.
In particular, Metal Gear Solid: Twin Snakes.
2014-05-23 20:40:45 +02:00
Yuriy O'Donnell
de1e2127dc
JIT: JitBaseBlockCache::valid_block is now std::vector<bool>
...
This was previously a std::bitset, which resulted in generation of suboptimal code by VS2013 compiler.
See https://gist.github.com/kayru/753db9607d680e26194b
2014-05-23 20:32:25 +02:00
magumagu
2f8a147eda
Interpreter: make fres match hardware.
...
New table-based implementation written based on actual hardware behavior.
(hwtest coming soon).
2014-05-22 19:48:48 -07:00
magumagu
ad4ad7c1ed
Use accurate frsqrte in Interpreter.
...
The implementation of frsqrte exposed by this change isn't completely
correct; that will be fixed in a later commit.
2014-05-22 19:46:27 -07:00
shuffle2
fc41a53b46
Merge pull request #309 from magumagu/jit-unify-asm
...
JIT: unify JitAsm for JIT64 and JIT64IL.
2014-05-21 23:10:08 -07:00