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
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