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
shuffle2
c4e60d5353
Merge pull request #356 from Sonicadvance1/Fix-MMUAnalyst
...
Fixes games that use the MMU to page in code(Rogue Leader).
2014-05-21 20:59:25 -07:00
magumagu
5dffa28f0a
DVDInterface: make fast disc speed faster.
...
Fixes workaround for crash in Star Wars Rogue Leader.
2014-05-18 20:03:55 -07:00
Pierre Bourdon
826a9e0152
MMIO: Lazy-initialize read/write handlers since most are not actually used
2014-05-18 17:37:33 +02:00
Pierre Bourdon
0f1b1dd3cf
CheckExceptions: add TODO and remove a wrong comment
2014-05-18 00:56:18 +02:00
Pierre Bourdon
5391b2dd9c
Merge pull request #327 from magumagu/dvd-seek-time
...
DVD emulation: make seek timing more accurate.
2014-05-17 18:48:35 +02:00
Toad King
1ba5ffeea3
remove trailing whitespace
2014-05-16 20:10:30 -04:00
Toad King
e7e6021414
changed IOCTL_SO_GETHOSTID to remove malloc()/free() calls
...
account for GetIpForwardTable() returning ERROR_MORE_DATA
2014-05-16 19:13:52 -04:00
Toad King
ce64885a66
make IOCTL_SO_GETHOSTID more accurate on Windows
2014-05-15 20:33:21 -04:00
Fredrik Ehnbom
31ec57ab81
PPCAnalyst now detects internal branches better
...
For example:
```
addr opcode disasm
80026584 48000054 b ->0x800265D8
```
2014-05-15 16:36:44 +02:00
shuffle2
36720e6822
Merge pull request #351 from Tilka/make_unique
...
Add a std::make_unique implementation (Common/StdMakeUnique.h)
2014-05-11 01:46:09 -07:00
Tillmann Karras
fd94ce5210
fixmeup use
2014-05-11 10:40:18 +02:00
Ryan Houdek
004af614cf
Merge pull request #335 from Tilka/twx
...
Jit64: implement tw/twi more accurately
2014-05-10 22:26:02 -05:00
Ryan Houdek
cdec575bef
Fixes games that use the MMU to page in code(Rogue Leader).
...
The issue was that on memory exception we wouldn't call in to PPCAnalyst and our code_block would retain the previous blocks information.
This would cause us to compile the previous blocks instructions in prior to the exception exit.
2014-05-09 09:10:45 -05:00
magumagu
4f5421ffb5
DVDInterface: code cleanup.
2014-05-08 11:47:38 -07:00
Shawn Hoffman
fa65eeb492
Apparently the debug build has not been freeing memory since 2008. Undo that.
2014-05-08 00:58:55 -07:00
Tillmann Karras
452cdefaa3
Use std::make_unique where it makes sense to
...
(and improve some other unique_ptr initializations).
Adapted from delroth's pull request.
2014-05-06 12:35:50 +02:00
magumagu
f123e08731
DVDInterface: tweak buffered reads to be a bit faster.
...
A read finishes when the result is complete in the drive's buffer, not
main memory.
2014-05-05 14:52:15 -07:00
magumagu
8014795d56
DVD emulation: make seek timing more accurate.
...
Based on real measurements of a Gamecube disk on a Wii. (If anyone else
is interested in running more tests, I can upload my code; it's a mess at
the moment.)
This isn't a complete model, but it's a step in the right direction:
in Metroid Prime, the loading times are sane, and I think I managed to do it
without breaking anything.
2014-05-05 14:33:00 -07:00
Ryan Houdek
0bfec024e9
Merge pull request #330 from LPFaint99/GCMemcard_addsave_fix
...
GCMemcard: fix edge case of adding to a fragmented memcard.
2014-05-05 16:31:33 -05:00
magumagu
727ef4a625
JIT: unify JitAsm for JIT64 and JIT64IL.
...
Having a bunch of nearly identical code sitting around isn't a good idea,
so fix that. JITIL had a couple of extra entry points into the JIT main
loop, so adjust the code appropriately.
Also fixes Issue 7186.
2014-05-05 11:12:22 -07:00