comex
4dc090643d
Remove ABI_AlignStack/ABI_RestoreStack and the noProlog option to ABI_CallFunctionRR.
...
The latter being true was the only case where the former would do
anything, and it was never true. They became obsolete with x86's
removal.
2014-09-08 01:00:10 -04:00
comex
c5c0b36046
Remove the inaccurately named ABI_PushAllCalleeSavedRegsAndAdjustStack (it didn't preserve FPRs!) and replace with ABI_PushRegistersAndAdjustStack.
...
To avoid FPRs being pushed unnecessarily, I checked the uses: DSPEmitter
doesn't use FPRs, and VertexLoader doesn't use anything but RAX, so I
specified the register list accordingly. The regular JIT, however, does
use FPRs, and as far as I can tell, it was incorrect not to save them in
the outer routine. Since the dispatcher loop is only exited when
pausing or stopping, this should have no noticeable performance impact.
2014-09-08 01:00:10 -04:00
comex
2dafbfb3ef
Improve code and clarify parameters to ABI_Push/PopRegistersAndAdjustStack.
...
- Factor common work into a helper function.
- Replace confusingly named "noProlog" with "rsp_alignment". Now that
x86 is not supported, we can just specify it explicitly as 8 for
clarity.
- Add the option to include more frame size, which I'll need later.
- Revert a change by magumagu in March which replaced MOVAPD with MOVUPD
on account of 32-bit Windows, since it's no longer supported. True,
apparently recent processors don't execute the former any faster if the
pointer is, in fact, aligned, but there's no point using MOVUPD for
something that's guaranteed to be aligned...
(I discovered that GenFrsqrte and GenFres were incorrectly passing false
to noProlog - they were, in fact, functions without prologs, the
original meaning of the parameter - which caused the previous change to
break. This is now fixed.)
2014-09-08 00:58:56 -04:00
Zhuowei Zhang
e63f7c01a3
Fix twi/tw instructions being switched in Jit64 and JitArm; downgrade the ERROR_LOG printed when tw is ran in the interpreter to DEBUG
2014-09-07 13:35:18 -04:00
Zhuowei Zhang
6026a3f76f
When loading the map file for a DOL/ELF file, extract only the filename from the DOL/ELF'S path
2014-09-07 11:58:32 -04:00
Zhuowei Zhang
b70c0ae521
for tw/twi instructions, force propagated constant into a register to avoid "a1 cannot be immediate" errors from the emitter
2014-09-07 11:31:51 -04:00
skidau
8abe9622fd
Route the wiimote speaker to the sound mixer (the host system's speakers). Emulated Wiimote speaker sounds will go to the host system's speakers. Real Wiimotes will continue to use their own speaker for Wiimote speaker sounds. All Wiimote speaker sound can be disabled by unchecking the "Enable Speaker Data" option.
...
Each emulated Wiimote can have its speaker routed from left to right via the "Speaker Pan" setting in the emulated wiimote settings dialog. Use any value from -127 for leftmost to 127 for rightmost with 0 being the centre.
Added code in the InputConfig to use a spin control for non-boolean values.
Defaulted the setting of "Enable Speaker Data" to disabled.
2014-09-07 14:16:20 +10:00
skidau
3caab10df8
Hooked up the emulated Wiimote speaker.
...
The Wiimotes are positioned as follows:
Wiimote 0 = Center
Wiimote 1 = Left
Wiimote 2 = Right
Wiimote 3 = Center
The Wiimote speaker output can be disabled via the "Enable Speaker Data" checkbox in the Wiimote settings.
2014-09-07 14:16:20 +10:00
skidau
a21ad12f1e
Merge pull request #1014 from RachelBryk/active-movie
...
Add an IsMovieActive function.
2014-09-07 14:05:59 +10:00
Rachel Bryk
5a163ec5e6
Add an IsMovieActive function.
...
Makes things a bit simpler, since this is a common check.
2014-09-06 23:44:25 -04:00
Zhuowei Zhang
2ac2cbbcf6
Downgrade the ERROR log printed when twi is executed in interpreter to DEBUG
2014-09-06 22:36:17 -04:00
Ryan Houdek
cdd2bd6cdc
Add a couple of asserts to the Arm64 JIT to make sure we can load everything.
2014-09-06 20:14:53 -05:00
Ryan Houdek
82dae72b63
Add AArch64 target to the backpatch header.
...
This fixes the issue of a million warnings spawning from this header.
2014-09-06 20:14:53 -05:00
Ryan Houdek
5233c87dec
Add immediate support to the GPR cache.
2014-09-06 20:14:53 -05:00
Ryan Houdek
2b06257e16
Beginning of the AArch64 JIT branch.
...
This is the bare minimum required to run a few games on AArch64.
Was able to run starfield and Animal Crossing to the Nintendo logo.
QEmu emulation is literally the slowest thing in the world, it maxes out at around 12mhz on my Core i7-4930MX.
2014-09-06 20:14:52 -05:00
shuffle2
9302218a19
Merge pull request #851 from lioncash/logg
...
Common: Kill off duplicate log warning definitions
2014-09-06 12:35:19 -07:00
Lioncash
690ed8580c
Common: Kill off duplicate log warning definitions
...
Also embed the log checks rather than using macros
2014-09-06 15:11:29 -04:00
shuffle2
227b79bf84
Merge pull request #1004 from comex/warning-fixes-2
...
Two trivial warning fixes
2014-09-06 11:56:32 -07:00
shuffle2
1b23432d34
Merge pull request #990 from rohit-n/fix-formatting
...
Fix formatting
2014-09-06 11:54:17 -07:00
shuffle2
d0d6f70980
Merge pull request #996 from RachelBryk/clear-mc-bongos
...
Clear movie variables that might have been set from a previous run.
2014-09-06 11:46:21 -07:00
shuffle2
f2237ecd64
Merge pull request #985 from skidau/dsp-loop-hle
...
Moved the loop check back to a post-loop condition in DSP HLE AX ucode.
2014-09-06 11:44:27 -07:00
comex
30e577fda7
Revert "Merge pull request #993 from phire/fix_getOpInfo"
...
This reverts commit a8f724e7c2
, reversing
changes made to 7a1eca149f
.
For why I'm reverting this entirely, see pull request 997.
2014-09-06 13:46:17 -04:00
comex
48ef6fcad1
Fix signed/unsigned warning in GeckoCode.cpp.
...
No actual bug here.
2014-09-06 13:34:00 -04:00
comex
6c382f6627
Merge pull request #926 from comex/ppcstate-reg
...
PowerPCState register (and rationalize register usage, and add some registers to replace it)
2014-09-06 13:24:38 -04:00
comex
6fd0333c14
Symbolicize explicit uses of x86 registers where possible (GPRs only for now).
...
Uses are split into three categories:
- Arbitrary (except for size savings) - constants like RSCRATCH are
used.
- ABI (i.e. RAX as return value) - ABI_RETURN is used.
- Fixed by architecture (RCX shifts, RDX/RAX for some instructions) -
explicit register is kept.
In theory this allows the assignments to be modified easily. I verified
that I was able to run Melee with all the registers changed, although
there may be issues if RSCRATCH[2] and ABI_PARAM{1,2} conflict.
2014-09-06 13:18:31 -04:00
comex
100a7ac97b
Actually add RCX, plus RDI and RSI on Unix.
...
And switch to a register order that consistently prefers callee-save to
caller-save. phire suggested putting rdi/rsi first, even though they're
caller-save, to save code space; this is more conservative and I can do
that later.
2014-09-06 13:16:21 -04:00
comex
8dea26762d
Rationalize temporary register usage.
...
Rather than using a variety of registers including RSI, ABI_PARAM1
(either RCX or RDI), RCX, and RDX, the rule is:
- RDI and RSI are never used. This allows them to be allocated on Unix,
bringing parity with Windows.
- RDX is a permanent temporary register along with RAX (and is thus not
FlushLocked). It's used frequently enough that allocating it would
probably be a bad idea, as it would constantly get flushed.
- RCX is allocatable, but is flushed in two situations:
- Non-immediate shifts (rlwnm), because x86 requires RCX to be used.
- Paired single loads and stores, because they require three
temporary registers: the helper functions take two integer
arguments, and another register is used as an index to get the
function address.
These should be relatively rare.
While we're at it, in stores, use the registers directly where possible
rather than always using temporaries (by making SafeWriteRegToReg
clobber less). The address doesn't need to be clobbered in the usual
case, and on CPUs with MOVBE, neither does the value.
Oh, and get rid of a useless MEMCHECK.
This commit does not actually add new registers to the allocation order;
it is intended to test for any performance or correctness issues
separately.
2014-09-06 13:16:20 -04:00
comex
67cdb6e07a
Factor code from ABI_CallFunctionRR and GetWriteTrampoline into a helper, and fix a special case.
...
The special case is where the registers are actually to be swapped (i.e.
func(ABI_PARAM2, ABI_PARAM1); this was previously impossible but would
be ugly not to handle anyway.
2014-09-06 13:16:20 -04:00
comex
487eb967eb
Fix a bug with update loads in memcheck mode.
...
In two cases, my old code was using a temporary register but not saving
it properly; it basically worked by accident (an otherwise useless
FlushLock was causing CallerSavedRegistersInUse to think it was in use
by the GPR cache, even though it was actually a temporary).
I'm going to modify this in the next commit to use RDX, but I didn't
want to leave a broken revision in the middle.
2014-09-06 13:16:20 -04:00
comex
48891c6359
Reserve a register for ppcState.
...
The register is RBP, previously in the GPR allocation order. The next
commit will investigate whether there are too few GPRs (now or before),
but for now there is no replacement.
Previously, it was accessed RIP relatively; using RBP, anything in the
first 0x100 bytes of ppcState (including all the GPRs) can be accessed
with three fewer bytes. Code to access ppcState is generated constantly
(mostly by register save/load), so in principle, this should improve
instruction cache footprint significantly. It seems that this makes a
significant performance difference in practice.
The vast majority of this commit is mechanically replacing
M(&PowerPC::ppcState.x) with a new macro PPCSTATE(x).
Version 2: gets most of the cases which were using the register access
macros.
2014-09-06 13:16:18 -04:00
Rohit Nirmal
629ceaf2b1
Split some parts of UpdateBoundingBox into multiple lines. Also,
...
fix issues causing failure on Lint.
2014-09-06 09:49:27 -05:00
Rachel Bryk
2a82b591e1
Clear movie variables that might have been set from a previous run.
2014-09-06 07:10:41 -04:00
skidau
a8f724e7c2
Merge pull request #993 from phire/fix_getOpInfo
...
GetOpInfo: Assert on all invalid Ops.
2014-09-06 19:50:15 +10:00
Scott Mansell
23b54117cd
GetOpInfo: Assert on all invalid Ops.
...
GetOpInfo was returning null pointers for invalid ops in subtables
instead of asserting an error. This was causing segfaults when the
jit tried to jit invalid code.
2014-09-06 20:09:30 +12:00
Scott Mansell
1963717855
Panic on invalid reads/writes for non-mmu games.
...
Previously it would fall through to the mmu code path, and raise a dsi
exception, which it would never check for, so it would continue
executing code silently.
2014-09-06 19:16:54 +12:00
Scott Mansell
96e92d33b7
Don't write to EXRAM if it doesn't exist.
...
Previously, if a gamecube game wrote to an EXRAM address, dolphin would
segfault.
2014-09-06 19:16:02 +12:00
Lioncash
e035ac5591
Merge pull request #992 from phire/betterassert
...
Make Invalid instruction debug assert a non-debug assert.
2014-09-06 03:12:19 -04:00
Scott Mansell
50657548b1
Make Invalid instruction debug assert a non-debug assert.
...
Users need to be able to see this error message. Otherwise they can't
report bugs.
2014-09-06 19:04:34 +12:00
Rohit Nirmal
1ecb318bcc
Fix some formatting (new lines on collapsed single-line conditionals,
...
new lines for opening braces).
2014-09-06 01:23:05 -05:00
shuffle2
a831121683
Merge pull request #979 from shuffle2/fix-memcard-flush3
...
raw memcards: revert last change so flushes are still time-driven.
2014-09-05 22:27:12 -07:00
Shawn Hoffman
96d7b642f4
raw memcards: revert last change so flushes are still time-driven.
...
It turns out the actual slowdown was from memcpy'ing the entire
memcard buffer...not synchronization overhead or the flush itself.
2014-09-05 21:16:59 -07:00
skidau
9800252a28
Re-added the acc_end_reached logic for AXWii.
2014-09-06 11:57:37 +10:00
skidau
0154b8edfd
Moved the loop check back to a post-loop condition in DSP HLE AX ucode. This brings DSP HLE in line with DSP LLE and fixes issue 7627. This effectively reverts ef501137be
which is not needed as the loop check is now corrected.
2014-09-06 11:02:32 +10:00
Fiora
4ec8f83a1a
JIT: fix branch merging with bclr
2014-09-05 13:58:06 -07:00
Fiora
801153301f
Remove debug printf from earlier commit
2014-09-05 10:31:29 -07:00
Fiora
07e0c917c6
Revert "JIT64: optimize CA calculations"
2014-09-05 10:26:30 -07:00
comex
97420c6ec6
Merge pull request #852 from FioraAeterna/optimizeca
...
JIT64: optimize CA calculations
2014-09-05 11:52:02 -04:00
comex
aa1df21bb6
Merge pull request #947 from FioraAeterna/rsqrte
...
JIT: implement frsqte
2014-09-05 11:48:00 -04:00
comex
d4b1d42a21
Merge pull request #975 from FioraAeterna/jittimerinline
...
JIT: completely inline timer reading
2014-09-05 11:45:22 -04:00
shuffle2
3d88dfbad9
Merge pull request #701 from LPFaint99/memcard
...
GCI Folder: try to reserve space for new saves from the current game
2014-09-04 23:02:23 -07:00
Fiora
2f9e9bf1fc
JIT: completely inline timer reading
...
Should be a bit faster on games that heavily use the timer.
2014-09-04 21:55:36 -07:00
LPFaint99
e6e50ee621
GCI Folder: try to leave 10% of the blocks free. only applies if the save is not for the current game
2014-09-04 20:59:38 -07:00
shuffle2
a9a6270982
Merge pull request #774 from magcius/texdecode-cleanup
...
Clean up the TextureDecoder and some related things
2014-09-04 19:37:49 -07:00
Jasper St. Pierre
a5297f6da8
PixelEngine: Remove unused AllowIdleSkipping and all references to it
2014-09-04 17:25:59 -07:00
MikeRavenelle
411c060504
Checkbox for iteration
...
Added the option to handle whether the user wants to iterate through the
assignment of button mappings or assign them one at a time.
fixed formatting issues and code style.
I excluded this option from the config file. This stopped the check box value and the boolean from becoming offset. Since the option should always start as false.
This still causes an issue with the Wiimote input, since the class variable that keeps the state will be wiped, but the check box value will stay the same after closing/reopening without closing the entire Wiimote configuration. I am looking for a way to resolve this.
I also reduced wait time to 2.5 seconds vs. the 5 seconds previously. Seemed to be a little long.
These changes apparently did not go through.
This should fix the Wiimote issue.
2014-09-04 19:23:04 -05:00
shuffle2
127fc1bdc1
Merge pull request #965 from FioraAeterna/srawixzero
...
JIT: remove srawix fallback
2014-09-04 08:44:33 -07:00
lioncash
9f48f02514
Core: Make the tables in ARDecrypt.cpp static
2014-09-04 09:29:34 -04:00
lioncash
4b329a0a75
Core: Fix variable prefixing of statics in Core.cpp
...
These aren't globals.
2014-09-04 08:26:15 -04:00
Fiora
a63b9f6713
JIT: remove srawix fallback
...
As far as I can tell, this has literally been here since the start of the git
history; maybe it was stubbed out because the author wasn't sure it was right?
It matches the PPC/Broadway manuals perfectly, though.
2014-09-03 23:39:52 -07:00
LPFaint99
f6d89c5c98
GCI Folder: if there are too many files in the folder, try to leave free directory entries.
...
Rule: Load first 112 files, any remaining files in the folder are ignored unless they are the same gameid as the current game
2014-09-03 21:15:41 -07:00
Lioncash
956b0708b4
Core: Initialize all JITIL RegInfo members in the initializer list.
2014-09-03 23:06:05 -04:00
shuffle2
1f6f01e2a0
Merge pull request #955 from skidau/geckocodes-mmio
...
Added code to patch the codehandler's MMIO address
2014-09-03 15:33:57 -07:00
skidau
0da22d687d
Added code to patch the codehandler's MMIO address to the currently running system. Added code to detect the location of where the code list should be. This allows any Gecko code handler to be used. Replace the codehandler.bin file with the code handler to be used (e.g. codehandleronly.bin).
2014-09-04 07:44:45 +10:00
Fiora
068b5c26f4
JIT: fix regression in timer patch
2014-09-03 14:36:38 -07:00
Fiora
1b50f9df14
JIT: implement fres
...
Mostly a straightforward translation of the interpreter code, with a few
tricksy optimizations and fallbacks for rare paths.
2014-09-03 12:15:30 -07:00
Fiora
c72a133206
JIT: implement frsqrte
...
Mostly a straightforward translation of the interpreter code, with a few
tricksy optimizations and fallbacks for rare paths.
2014-09-03 11:21:04 -07:00
skidau
08715167a8
Added code to patch the codehandler's MMIO address to the currently running system. Added code to detect the location of where the code list should be. This allows any Gecko code handler to be used. Replace the codehandler.bin file with the code handler to be used (e.g. codehandleronly.bin).
2014-09-04 00:48:52 +10:00
Rachel Bryk
5adbc83453
Change ControlState typedef to double, and change all related floats/doubles to use it.
...
Fixes an off by 1 issue related to double->float->double conversion, and eliminates numerous warnings.
2014-09-03 03:08:09 -04:00
comex
64575d565a
Merge pull request #923 from FioraAeterna/fixcallersave
...
JIT: Fix caller-save registers on WIN64
2014-09-03 02:27:44 -04:00
Dolphin Bot
e2dfa603a0
Merge pull request #891 from RachelBryk/netplay-time
...
Allow system time to move forward during netplay.
2014-09-03 08:26:51 +02:00
comex
51a5311d6a
Merge pull request #949 from comex/eviction-policy
...
Evict registers from the cache based on LRU.
2014-09-03 02:22:45 -04:00
shuffle2
50879f5624
Merge pull request #905 from RachelBryk/status-bar-messages
...
Add OSD messages back to status bar.
2014-09-02 23:21:58 -07:00
shuffle2
d20f5fb861
Merge pull request #946 from ChuckRozhon/fix_cast_bug
...
Fixed bug introduced in PR#803 caused by casting
2014-09-02 22:58:53 -07:00
Ryan Houdek
1ad1a9062a
Remove PowerPCState::DebugCount.
...
This value was "helpful" for debugging when the stack got corrupted.
Helpful that if gpr[1](Which is the stack pointer with PPC ABI) is zero then the interpreter would spam huge amounts of annoy text saying that we
managed to get in to a "corrupted" state.
This is incremented every instruction on the interpreter, or every block run on the JIT64....Only if debugging is enabled(JIT64 it is a const
variable)
The message is only outputted when interpreter is used and debugging is enabled.
2014-09-03 00:26:57 -05:00
comex
f5c7f676dc
Evict registers from the cache based on LRU.
...
The old method would always evict the first suitable register, i.e. the
same register every time once the cache got full. The cache doesn't get
terribly often, but the result is pathological...
2014-09-03 01:06:14 -04:00
Dolphin Bot
fa29b18e3e
Merge pull request #840 from FioraAeterna/jittimer
...
JIT: implement timer support in mtspr
2014-09-03 07:01:20 +02:00
Fiora
6875d911f1
JIT: merge paired timebase reads where possible
...
Combined with the previous patch, ~1% faster overall on F-Zero GX.
2014-09-02 21:49:24 -07:00
Fiora
816d056657
JIT: implement timer support in mtspr
...
Faster, of course, since we avoid the interpreter, but also means we can
get more a more accurate timer in long blocks by adding the offset from the
start of the block to the retrieved timer. I don't know if this will actually
fix any issues, but it's more correct and a nearly-free improvement.
2014-09-02 21:47:45 -07:00
Charles Rozhon
0e5fde52ac
Fixed bug introduced in PR#803 caused by casting
...
Also changed casts to C++ style casts to removed some of the ambiguity.
2014-09-02 21:50:43 -05:00
Ryan Houdek
1bc246735b
Add some static_asserts to the Arm32 JIT to make sure ppcState is sane.
2014-09-02 18:38:42 -05:00
Fiora
6655c7775e
JIT: Fix callee-save registers on WIN64
2014-09-02 10:56:14 -07:00
Pierre Bourdon
ddb2aefedf
Merge pull request #904 from FioraAeterna/dcbz
...
JIT64: try enabling dcbz again
2014-09-02 15:41:40 +02:00
shuffle2
cc6db8cf26
Merge pull request #939 from shuffle2/fix-memcard-flush2
...
move the decision to delay raw memcard flushes out of the thread.
2014-09-02 00:28:31 -07:00
Shawn Hoffman
44a1a7cdbe
move the decision to delay raw memcard flushes out of the thread.
...
This allows the flush to work better with games which hammer
memcard accesses over short periods as it delays more of the work.
2014-09-01 22:38:31 -07:00
Shawn Hoffman
0625b5defb
windows: make failure to load hid.dll or bthprops.cpl not pop a msgbox, and not crash
2014-09-01 21:27:44 -07:00
Shawn Hoffman
266992684d
msvc: remove some remnants of SDL and DSound from projects and general cleanup.
2014-09-01 21:27:44 -07:00
Dolphin Bot
e5705a9273
Merge pull request #908 from FioraAeterna/fixenhancedbat
...
MMU: fix enhanced BAT support
2014-09-02 05:46:03 +02:00
Fiora
3aa40dab00
JIT64: optimize carry calculations
...
Omit carry calculations that get overwritten later in the block before they're
used. Very common in the case of srawix and friends.
2014-09-01 20:41:48 -07:00
Fiora
a40278b1c4
JIT64: support merged branching for rlwinmx, too
...
Not quite as common a branch instruction as cmpwi, but close.
2014-09-01 20:41:12 -07:00
Fiora
10d691a277
JIT64: optimize some special cases of srawix
...
Shift by 31 and 1, both of which are pretty common, can be done in a few less
instructions. Tested with a hwtest.
2014-09-01 20:41:12 -07:00
Fiora
805be80f12
JIT64: Optimize carry handling
...
Carries are rather common and unpredictable, so do them branchlessly wherever
we can.
2014-09-01 20:41:11 -07:00
Fiora
ee24d4714a
JIT64: tweak srwx/slwx BindToRegister arguments
...
Register B gets immediately moved into the shift register, so even if a == b
it doesn't need to be loaded.
2014-09-01 20:41:11 -07:00
Fiora
ad51fc7c4b
JIT64: use xor instead of mov for loading a zero regcache immediate
2014-09-01 20:41:10 -07:00
Fiora
27996a65cf
JIT64: use LEA for the "a = b + imm" case of addi
2014-09-01 20:41:10 -07:00
Fiora
cd0c52b537
JIT64: avoid using LEA for adds when not necessary
2014-09-01 20:41:10 -07:00
Fiora
355850f499
JIT64: optimize sign/zero-extend
...
Also remove some comments that no longer apply since x86_32 was dropped.
2014-09-01 20:41:09 -07:00
Fiora
61af91ff16
JIT64: Optimize cmpXX
...
Use TEST instead of CMP if we're comparing against 0 (rather common), and
optimize the case of immediate compares further.
2014-09-01 20:41:09 -07:00
Fiora
41c3dde737
JIT64: optimize rlwinmx/rlwinix and friends
...
Take advantage of movzx as a replacement for anding with 0xff or 0xffff, and
abuse loads from the register cache to save ops.
2014-09-01 20:41:08 -07:00
Fiora
58dc802ce2
JIT64: optimize multiplication by immediate constants
...
Factor out common code and handle a few more common cases.
2014-09-01 20:41:08 -07:00
Pierre Bourdon
24b5ce2ddc
Merge pull request #917 from lioncash/input
...
InputCommon: Rename class InputPlugin to InputConfig
2014-09-01 16:36:52 +02:00
Lioncash
27bd0ce70e
Merge pull request #929 from skidau/dsp-acc-loop
...
Take the size of the audio data into account when checking for the loop address
2014-09-01 10:07:43 -04:00
skid
91a6962565
Take the size of the audio data into account when checking for the loop address. Fixes the static audio in the FMV of Megaman X Collection, Pac Man World 2, off pitched instruments in Skies of Arcadia and audio desync in the Taiko no Tatsujin series.
...
Fixes:
issue 7154
issue 7222
issue 7280
issue 7457
2014-09-01 21:43:33 +10:00
Pierre Bourdon
494a60e41b
VertexLoader: Change VtxDesc to use u64 instead of u32
...
This is required to make packing consistent between compilers: with u32, MSVC
would not allocate a bitfield that spans two u32s (it would leave a "hole").
2014-09-01 11:18:02 +02:00
Lioncash
f8e24de833
Merge pull request #907 from FioraAeterna/rollbacklmw
...
JIT: revert lmw optimizations
2014-08-31 13:51:24 -04:00
Lioncash
1a3ebbb831
InputCommon: Rename class InputPlugin to InputConfig
2014-08-31 00:59:06 -04:00
Pierre Bourdon
ea7eee1f58
Merge pull request #913 from lioncash/movie-func
...
Core: Break movie header validity checking into a function
2014-08-31 06:55:04 +02:00
Lioncash
f22597a4ee
Core: Break movie header validity checking into a function
2014-08-31 00:52:36 -04:00
Pierre Bourdon
ee880ea73c
Merge pull request #914 from lioncash/potential-uninitialized
...
Core: Fix potential uninitialized variable warnings in Wii_IPC_HLE_Devices_es.cpp
2014-08-31 06:46:45 +02:00
Lioncash
377a1c8f20
AudioCommon: Get rid of now unused handle param for InitSoundStream()
2014-08-30 23:36:00 -04:00
Ryan Houdek
1a6268e6cf
Merge pull request #899 from FioraAeterna/checkram
...
JIT: fix RAM check in load-from-constant-address
2014-08-30 20:49:33 -05:00
Lioncash
5f43685f4e
Core: Fix potential uninitialized variable warnings in Wii_IPC_HLE_Device_es.cpp
2014-08-30 19:06:07 -04:00
Lioncash
beb95b75ca
PPCAnalyst: Use std::swap instead of making a temporary variable
2014-08-30 18:32:09 -04:00
Lioncash
eb535be874
Core: Clean up brace placements
2014-08-30 18:06:49 -04:00
Lioncash
77aef014a0
Merge pull request #909 from lioncash/void
...
Get rid of C-style empty function parameter indicators
2014-08-30 15:28:47 -04:00
Lioncash
1d706b2311
Get rid of C-style empty function parameter indicators
2014-08-30 15:23:48 -04:00
Lioncash
d7db9dd1a8
Core: Change a bitwise OR fail case to a logical AND success check in
...
ActionReplay.cpp
2014-08-30 15:17:15 -04:00
Fiora
08ab2d3110
MMU: fix enhanced BAT support
...
I don't know what I can test this on, but it was definitely broken before.
Seems to be a few clock cycles faster too due to the refactoring?
2014-08-30 05:47:05 -07:00
Fiora
1ed6be12b9
JIT: revert lmw optimizations
...
This seems to break Star Wars Rogue Leader and I have no idea why, so for the
meantime I'm just going to revert it since it's not very important.
2014-08-30 04:17:48 -07:00
Rachel Bryk
ecdd0f6ac0
Add OSD messages back to status bar.
...
OSD messages can be disabled, while still leaving them in the status bar. This is incredibly useful for certain users, who may wish to see the messages, but do not wish to have them cover up half of the screen. In particular TASers will generally have OSD messages on the screen 100% of the time, and they cover up useful information, making it critical to turn them off. However the messages are still very useful to them, so it's important to have them somewhere.
This reverts 4a16211bae
.
2014-08-29 17:46:41 -04:00
Fiora
6f617c4175
JIT64: try enabling dcbz again
...
This time, check the address carefully beforehand, since apparently some games
do horrible things like running it on non-RAM addresses, or at the very least
virtual addresses.
2014-08-29 12:19:58 -07:00
Dolphin Bot
d159bc9998
Merge pull request #886 from RachelBryk/netplay-buffer
...
Change default netplay buffer to 5.
2014-08-29 06:51:56 +02:00
Fiora
88095a607a
JIT: fix RAM check in load-from-constant-address
...
A bug that seems to have been uncovered by allowing immediate-address loads.
Super Monkey Ball 2 crashes without this change -- it's possible, however, that
the game actually requires the MMU hack, since it crashed due to accessing an
address in the 0x20000000-0x3fffffff range.
2014-08-28 12:54:23 -07:00
Ryan Houdek
ad8fe0fb52
Merge pull request #879 from FioraAeterna/frspx
...
JIT64: add frspx implementation
2014-08-28 14:12:21 -05:00
Fiora
c359d65dfe
JIT64: add frspx implementation
2014-08-28 11:40:31 -07:00
Ryan Houdek
4a78a8a72a
Merge pull request #876 from FioraAeterna/floatloadstore
...
JIT64: clean up and unify float load/store code
2014-08-28 13:37:27 -05:00
Dolphin Bot
359aa664e1
Merge pull request #898 from FioraAeterna/fprffix
...
JIT: make fprf conditional in fcmp, just like the other instructions
2014-08-28 20:25:26 +02:00
Dolphin Bot
5e514dcfbc
Merge pull request #881 from FioraAeterna/mulhwx
...
JIT64: add mulhwx implementation
2014-08-28 20:25:13 +02:00
Fiora
7929f2f033
JIT: make fprf conditional in fcmp, just like the other instructions
...
Missed in the FPRF merge (it didn't break anything, but it's probably a bit
slower and not consistent with the others).
2014-08-28 11:19:09 -07:00
Ryan Houdek
0217fb2008
Merge pull request #843 from FioraAeterna/fprf
...
JIT: Initial FPRF support
2014-08-28 13:15:50 -05:00
Fiora
043256449e
Jit64: some load/store optimizations
...
Avoid extra ops during address calculation in loads; use LEAs or immediates
whenever possible.
2014-08-28 10:12:55 -07:00
Rachel Bryk
a3cfc98f26
Allow system time to move forward during netplay.
2014-08-27 16:45:15 -04:00
Fiora
7e07acbf3f
Fix another absent-minded typo in the fmul interpreter patch
2014-08-26 23:00:11 -07:00
Fiora
1a0a33518b
Bugfixes for fmul rounding
...
Fix the places I forgot to add Force25Bit, and fix an incredibly silly typo bug
2014-08-26 21:37:45 -07:00
Rachel Bryk
31353573cb
Change default netplay buffer to 5.
2014-08-26 21:50:30 -04:00
Fiora
7dbc623dc0
JIT: Initial FPRF support
...
Doesn't support all the FPSCR flags, just the FPRF ones.
Add PPCAnalyzer support to remove unnecessary FPRF calculations.
POV-ray benchmark with enableFPRF forced on for an extreme comparison:
Before: 1500s
After, fmul/fmadd only: 728s
After, all float: 753s
In real games that use FPRF, like F-Zero GX, FPRF previously cost a few percent
of total runtime.
Since FPRF is so much faster now, if enableFPRF is set, just do it for every
float instruction, not just fmul/fmadd like before. I don't know if this will
fix any games, but there's little good reason not to.
2014-08-26 10:57:03 -07:00
Fiora
288babf414
PPCFP: add comment
2014-08-26 09:08:22 -07:00
Fiora
90324f3809
JIT64: add mulhwx implementation
2014-08-26 01:09:04 -07:00
Fiora
aaca1b01e5
JIT64: clean up and unify float load/store code
...
While we're at it, support a bunch of float load/store variants that weren't
implemented in the JIT. Might not have a big speed impact on typical games but
they're used at least a bit in povray and luabench.
694 -> 644 seconds on povray.
2014-08-25 19:51:40 -07:00
Lioncash
44ee2f20b9
Merge pull request #874 from FioraAeterna/fixidiocy
...
JIT: fix incredibly silly mistake in fmul rounding patch
2014-08-25 13:22:33 -04:00
Fiora
f04e362721
JIT: fix incredibly silly mistake in fmul rounding patch
2014-08-25 10:10:28 -07:00
comex
6574682ff5
Remove unused variable m_zero.
2014-08-24 16:22:19 -04:00
comex
d128795594
Merge pull request #862 from comex/registersinuse
...
Reduce my idiocy in register saving code.
2014-08-24 16:16:32 -04:00
comex
a7752f49be
Merge pull request #861 from comex/warnings
...
Fix warnings for OS X
2014-08-24 16:15:58 -04:00
comex
cf01f47b52
Fix bloody printf specifiers.
...
In particular, even in code that only runs on x86-64, you can't use
PRIx64 for size_t because, on OS X, one is unsigned long and the other
is unsigned long long and clang whines about the difference. I guess
you could make a size_t specifier macro, but those are horribly ugly, so
I just used casting.
Anyone want to make a nice (and slow) template-based printf?
Now without bare 'unsigned'.
2014-08-24 15:56:41 -04:00
Pierre Bourdon
9ff7125786
Merge pull request #810 from lioncash/controller-interface
...
InputCommon: Don't base default radius of analog sticks off of their name
2014-08-24 19:58:25 +02:00
Pierre Bourdon
ebf1b98106
Merge pull request #834 from FioraAeterna/fixfmulrounding
...
JIT64: Fix fmul rounding issues
2014-08-24 19:49:56 +02:00
Fiora
4d7b1275c9
Interpreter: apply the same odd rounding to single multiplies as the JIT
2014-08-24 10:28:52 -07:00
Fiora
4f18f6078f
JIT64: Fix fmul rounding issues
...
Thanks to magumagu's softfp experiments, we know a lot more about the Wii's
strange floating point unit than we used to. In particular, when doing a
single-precision floating point multiply (fmulsx), it rounds the right hand
side's mantissa so as to lose the low 28 bits (of the 53-bit mantissa).
Emulating this behavior in Dolphin fixes a bunch of issues with games that
require extremely precise emulation of floating point hardware, especially
game replays. Fortunately, we can do this with rather little CPU cost; just ~5
extra instructions per multiply, instead of the vast load of a pure-software
float implementation.
This doesn't make floating-point behavior at all perfect. I still suspect
fmadd rounding might not be quite right, since the Wii uses fused instructions
and Dolphin doesn't, and NaN/infinity/exception handling is probably off in
various ways... but it's definitely way better than before.
This appears to fix replays in Mario Kart Wii, Mario Kart Double Dash, and
Super Smash Brothers Brawl. I wouldn't be surprised if it fixes a bunch of
other stuff too.
The changes to instructions other than fmulsx may not be strictly necessary,
but I included them for completeness, since it feels wrong to fix some
instructions but not others, since some games we didn't test might rely on
them.
2014-08-24 10:28:52 -07:00
Pierre Bourdon
aaff5a0afb
Merge pull request #856 from FioraAeterna/ppcfpopt
...
JIT: faster PPC_FP code
2014-08-24 19:25:56 +02:00
comex
d19ec35363
Reduce my idiocy in register saving code.
...
(1) Rename ABI_ALL_CALLEE_SAVED to ABI_ALL_CALLER_SAVED, because that's
what it was actually defined as (and used as). Derp.
(2) RegistersInUse is always used for the purpose of saving registers
before calling a C++ function in the middle of a JIT block (without
flushing). There is no need to save callee-saved registers in this
case. Change the name to CallerSavedRegistersInUse and mask with
ABI_ALL_CALLER_SAVED.
Nothing obvious broke when starting up a Melee game. (I added a test
for anything actually being masked out; it happens, but in this
particular case seemed to occur at most a few dozen times per second, so
the actual performance benefit is probably negligible.)
2014-08-23 15:46:10 -04:00
comex
e0f35e0e59
Remove unused declarations.
2014-08-23 15:26:59 -04:00
Dolphin Bot
43f890322f
Merge pull request #845 from ChuckRozhon/switch_to_cstdint
...
Changed unsigned ints and chars to cstdint counterparts
2014-08-23 21:18:18 +02:00
Shawn Hoffman
af2405eefd
Remove dsound audio backend.
...
There isn't any reason to use dsound over xaudio.
2014-08-23 11:19:19 -07:00
Shawn Hoffman
327d35377d
windows: remove now-extraneous NOMINMAX and WIN32_LEAN_AND_MEAN #defines from dolphin code.
...
Wrap dinput.h in a header defining DIRECTINPUT_VERSION instead of repeating it multiple places.
2014-08-23 10:48:48 -07:00
Pierre Bourdon
f7102faae7
Merge pull request #853 from lioncash/memmap
...
Core: Simplify Memory::GetString
2014-08-23 19:19:09 +02:00
Fiora
59c1a46ab1
JIT: faster PPC_FP code
...
The PPC_FP conversion code can be made a lot simpler with the observation
that the only values that need to be sent through the slow x87 path are
denormals.
A whole bunch faster: 708->678 seconds on POV-RAY.
2014-08-23 07:44:42 -07:00
Ryan Houdek
db039d1440
Merge pull request #850 from lioncash/unused-headers
...
Core: Removed blank headers Boot_ELF.h and Boot_WiiWAD.h
2014-08-22 02:07:10 -05:00
Lioncash
130f57df91
Core: Simplify Memory::GetString
2014-08-22 01:22:58 -04:00
Ryan Houdek
fc5a73d62e
Merge pull request #849 from FioraAeterna/fixppcanalyzer
...
PPCAnalyzer: move num_instructions initialization to correct place
2014-08-22 00:14:11 -05:00
Lioncash
de9edbeebf
Core: Removed blank headers Boot_ELF.h and Boot_WiiWAD.h
2014-08-21 15:30:51 -04:00
Lioncash
25e29c323d
Merge pull request #842 from lioncash/jit
...
Coding style clean up for the Jit, JitARM and JitIL
2014-08-21 15:25:43 -04:00
Fiora
5c0145f71b
PPCAnalyzer: move num_instructions initialization to correct place
...
Much of the PPC Analyzer code (e.g. instruction reordering for merging
branches) wasn't actually being run.
2014-08-21 11:19:23 -07:00
Lioncash
f17dcd2019
Merge pull request #764 from magcius/new-nogui-2
...
Rewrite GLInterface
2014-08-21 14:14:54 -04:00
Charles Rozhon
965b1f1f2c
Removed the typedefs for Elf32 word types
2014-08-20 15:21:41 -05:00
Charles Rozhon
d84b2f3be4
Changed unsigned ints and chars to cstdint counterparts
2014-08-20 14:52:01 -05:00
Lioncash
20f8ec9afa
Core: Join a few if statements in IR.cpp
2014-08-20 14:26:16 -04:00
Lioncash
99ae79f7f9
Core: Better assert messages for stx op
2014-08-20 14:16:05 -04:00
Lioncash
d694637938
Core: Clean up brace/body placements for JitIL
2014-08-20 14:04:01 -04:00
Lioncash
b005ba2797
Core: Clean up body/brace placements in JitArm32
2014-08-20 14:03:46 -04:00
Lioncash
6145ced5f7
Core: Change "unsigned result" to "u32 result" in rlwinmx for Jit64
2014-08-20 12:51:30 -04:00
Lioncash
e7f49692e8
Core: Clean up body/brace placements in Jit64 and JitCommon
2014-08-20 12:50:42 -04:00
Shawn Hoffman
043ea31f14
msvc: resolve all warnings in Core.
...
Note: vs14 will support empty macro parameter as used by MMIO.
2014-08-19 22:33:46 -07:00
Lioncash
a013830b4f
Core: Fix vertical alignment of a table in DSPTables.cpp
2014-08-19 13:58:59 -04:00
Jasper St. Pierre
6dbafa9238
Core: Move the titlebar / statusbar abstraction to DolphinWX
...
The concept of a "title bar" / "status bar" shouldn't be a core concept,
so remove the Host_UpdateStatusBar function, and move the code handles
whether to update the status bar or titlebar into DolphinWX.
2014-08-19 10:37:47 -04:00
Jasper St. Pierre
3bad4bcfdb
PPCSymbolDB: Don't show any messages in the status bar
...
These don't really help anybody. We don't even have a status bar
in MainNoGUI -- status bar text should be controlled by the UI, not the
core code!
2014-08-19 10:09:33 -04:00
Jasper St. Pierre
4a16211bae
Core: Don't display messages in the titlebar / statusbar
...
We already put them on-screen, that should be good enough.
2014-08-19 10:07:59 -04:00
Jasper St. Pierre
63f1a16969
Core: Remove UpdateFPSDisplay
...
This is effectively unused, as the window handles that we pass to the
GLInterface are window handles for the frame which isn't ever a real
toplevel window. Host_UpdateTitle is what actually sets the proper title
on the render window.
2014-08-19 10:05:58 -04:00
Jasper St. Pierre
7ca8d8dfc7
Core: Don't pass through a reference to the window handle
...
Now that MainNoGUI is properly architected and GLX doesn't need to
sometimes craft its own windows sometimes which we have to thread back
into MainNoGUI, we don't need to thread the window handle that GLX
creates at all.
This removes the reference to pass back here, and the g_pWindowHandle
always be the same as the window returned by Host_GetRenderHandle().
A future cleanup could remove g_pWindowHandle entirely.
2014-08-19 10:05:58 -04:00
Jasper St. Pierre
6e312dce91
Core: Remove Core::GetWindowHandle
...
Finally, it's unused. Whoa.
2014-08-19 10:05:58 -04:00
Ryan Houdek
355f7b366b
Merge pull request #831 from FioraAeterna/cleanupimm
...
JIT: cleanup unnecessary immedate size-checking logic
2014-08-19 04:15:22 -05:00
Dolphin Bot
2bcc8d414c
Merge pull request #807 from FioraAeterna/avoidpcstore
...
JIT: avoid saving the PC on every store
2014-08-19 11:12:54 +02:00
Dolphin Bot
961c1db116
Merge pull request #746 from FioraAeterna/fastermtcrf
...
Improve performance of CR functions in JIT64
2014-08-19 11:10:18 +02:00
Fiora
a1655a0e3c
JIT: avoid saving the PC on every store
...
Modify the backpatcher to store the PC in the trampolines.
Should be ~3.5% faster overall (measured on POV-RAY benchmark).
2014-08-19 02:08:53 -07:00
Matthew Parlane
7246ea9616
Merge pull request #792 from booto/dsp-cleanup
...
DSP cleanup
2014-08-19 20:28:51 +12:00
Ryan Houdek
bac9634fde
Merge pull request #803 from ChuckRozhon/cast_from_double_to_u8_warnings
...
Removed warnings by explicitly casting to `u8` for controllers
2014-08-18 17:01:02 -05:00
Fiora
1a36210093
JIT: cleanup unnecessary immedate size-checking logic
...
We do this in the emitter now, so this code isn't needed anymore.
2014-08-18 08:20:46 -07:00
Shawn Hoffman
bd7f856424
Rewrite raw memcard threading code. Intended to fix issue 7484.
...
EXI memcard code now doesn't know specifics of how data is flushed to whatever backing storage is used.
GC raw memcard now flushes every 15 seconds if dirty, and on memcard destruction.
GCI folder now flushes only on memcard destruction.
2014-08-17 21:52:40 -07:00
Ryan Houdek
7222eb11e0
Merge pull request #822 from FioraAeterna/integerflush2
...
JIT: flush *after* the merged branch, not before
2014-08-17 02:34:15 -05:00
Fiora
75279881cc
JIT: flush *after* the merged branch, not before
...
More correct and should avoid lots of redundant stores.
2014-08-17 00:02:00 -07:00
Lioncash
66a30d0fc6
Merge pull request #820 from RachelBryk/movie-includes
...
Remove a couple unneeded includes from Movie.cpp.
2014-08-17 02:24:37 -04:00
Lioncash
4759510f70
Get rid of instances of "using namespace std;" in the project
2014-08-17 02:05:33 -04:00
Rachel Bryk
d8baf64747
Remove a couple unneeded includes from Movie.cpp.
2014-08-16 23:54:11 -04:00
Lioncash
d18d3e1f3e
Common: Get rid of StdConditionVariable, StdMutex, and StdThread.
...
All of the compilers we support have support for these now.
2014-08-16 23:33:19 -04:00
shuffle2
2270c3e90a
Merge pull request #797 from shuffle2/msvc-pch
...
Windows: Use a shared precompiled header for dolphin code under Source/
2014-08-16 14:58:28 -07:00
Ryan Houdek
239e04db02
Merge pull request #757 from Tilka/ps_sum0
...
Jit64: re-enable ps_sum0
2014-08-15 20:25:14 -05:00
Dolphin Bot
444e47a07a
Merge pull request #812 from FioraAeterna/fixundefined
...
JIT: don't rely on undefined behavior for constant overflow checking
2014-08-16 00:36:08 +02:00
Fiora
1cb50c9609
JIT64: faster implementation of mtcrf and mcrxr
2014-08-15 14:09:28 -07:00
Fiora
c936984c96
JIT64: faster + branchless crxxx
2014-08-15 14:09:28 -07:00
Fiora
8c71703098
JIT64: faster implementation of mfcr
2014-08-15 14:09:27 -07:00
Lioncash
4c406cc4a1
Merge pull request #814 from lioncash/jitwindow
...
Core: Kill off Host_ShowJitResults
2014-08-15 15:26:45 -04:00
Lioncash
cf46ac7dc9
Core: Kill off Host_ShowJitResults
...
Another host function that can be killed off by simple wx event handling
2014-08-15 15:18:28 -04:00
Fiora
1669b361a2
JIT: don't rely on undefined behavior for constant overflow checking
...
I have no idea what the compiler does with these, and this code probably
isn't triggered in most games, but it's probably better not to taunt the
undefined behavior demon.
2014-08-15 11:26:10 -07:00
Charles Rozhon
3baea48bba
Removed warning caused by calling std::min<int> with size_t values
2014-08-15 13:23:19 -05:00
Lioncash
7fd5e4300a
InputCommon: Don't base default radius of analog sticks off of their name.
2014-08-15 13:06:56 -04:00
Shawn Hoffman
f1b82a34b2
Windows: Use a shared precompiled header for dolphin code under Source/
2014-08-14 23:51:13 -07:00
Charles Rozhon
a8c31d134b
Removed warnings by explicitly casting to `u8` for controllers
2014-08-14 14:44:10 -05:00
Ryan Houdek
64697abe48
Merge pull request #798 from FioraAeterna/integerflush
...
JIT: Don't needlessly flush register state in merged integer+branch code
2014-08-14 12:21:03 -05:00
Fiora
97beea1963
JIT: Don't needlessly flush register state in merged integer+branch code
...
The actual branch code doesn't flush the register state, so it doesn't make
much sense for the merged optimization to do so either.
2014-08-14 09:55:11 -07:00
Fiora
a4b23d80b7
JIT: correctly set skipNext even if conditional-continue is off
...
Part 2: I missed the other branch-merging case in the first commit.
2014-08-14 09:31:35 -07:00
Ryan Houdek
e6fa582753
Merge pull request #799 from FioraAeterna/mergebranchfix
...
JIT: correctly set skipNext even if conditional-continue is off
2014-08-14 10:12:19 -05:00
Fiora
75cc8917a1
JIT: correctly set skipNext even if conditional-continue is off
2014-08-14 07:57:55 -07:00
booto
34bf0a4ab7
DSP: General cleanup. No behaviour change.
2014-08-14 09:45:05 +08:00
booto
72179f98b6
DSP: Use completion event for ARAM interrupt
2014-08-13 18:26:02 +08:00
Pierre Bourdon
e4e44909d5
Merge pull request #762 from booto/dma-audio-3
...
DSP: DMA behaviour adjustments to fix regressions
2014-08-12 18:18:51 -07:00
shuffle2
d1702b1160
Merge pull request #676 from lioncash/zelda-ratio
...
Core: Remove the ratio parameter in Zelda UCode's SizeForResampling func
2014-08-12 14:43:32 -07:00
shuffle2
fe2321e117
Merge pull request #748 from lioncash/null
...
Core: Default initialize a pointer to nullptr in gdsp_do_dma()
2014-08-12 13:56:54 -07:00
shuffle2
4e73dd2d0c
Merge pull request #722 from lioncash/casts
...
Fix a cast warning when compiling with MSVC
2014-08-12 13:45:31 -07:00
booto
adf2ae2ac9
DSP: Add minor delay to initial AIDMA interrupt
...
When AIDMA begins, the first thing it does is load the source address
and length into internal registers. It then triggers the AID interrupt.
Some begin the AIDMA process without all the data necessary for the
interrupt callback being set up already - they require a few more cycles
to set it up (the delay between the DMA being set to begin and the
interrupt firing). The value of this delay was approximated by tests on real
hardware.
2014-08-13 00:20:13 +08:00
archshift
c0008b2012
Removed Tracer.h/cpp from VS files
2014-08-11 23:25:04 -07:00
archshift
9aa7a4ddae
Removed unused Tracer.h/cpp
2014-08-11 23:06:44 -07:00
booto
a4bc15e7ba
DSP: Do updates to DSP interrupt bits asap
...
This was being scheduled on the next possible event, which caused
timing issues (in FFCC, AI interrupt would fire before DSP interrupt)
2014-08-11 02:04:08 +08:00
booto
92064d1025
DSP: Fixes behaviour for audio dmas of length 0
...
This behaviour was tested on a real (wii) console.
2014-08-11 02:02:18 +08:00
Lioncash
11f730fd1e
Core: Get rid of C-style struct typedefs
2014-08-09 21:58:08 -04:00
Lioncash
a899d2b5dd
Merge pull request #763 from lioncash/ar
...
Core: Get rid of function prototypes in ActionReplay.cpp
2014-08-09 21:05:08 -04:00
Lioncash
6faed31a44
Core: Get rid of calls to mem_fn in thread instantiations
...
These are not necessary for the same behavior.
2014-08-09 12:46:05 -04:00
Lioncash
e266635f40
Merge pull request #740 from lioncash/host
...
Core: Kill off a few Host interface functions.
2014-08-09 00:50:14 -04:00
Lioncash
5fb0090fcf
Core: Get rid of function prototypes in ActionReplay.cpp
...
Also marked said functions static
2014-08-09 00:19:03 -04:00
Lioncash
7bf82f1989
Core: Kill off Host_UpdateLogDisplay()
...
This was actually never used as far as I can tell. There was no wx event handling done whatsoever for the global ID, So this is basically a dead function.
2014-08-08 19:21:40 -04:00
Lioncash
d4eb0684f7
Core: Kill off Host_UpdateBreakPointView()
...
Uses wxWidgets event propagation to the parent window which then appropriately handles the breakpoint list updating.
2014-08-08 19:21:29 -04:00
lioncash
47274ab992
Core: Fix two more potential memory leaks within IOdarwin.mm
2014-08-08 13:14:18 -04:00
Pierre Bourdon
b38022df43
Merge pull request #750 from lioncash/leak
...
Core: Fix a leak on OSX that could occur in IOdarwin.mm
2014-08-07 09:56:36 -07:00
Tillmann Karras
8058baa3da
Jit64: re-enable ps_sum0
...
The issue seems to have been fixed in the mean time.
https://code.google.com/p/dolphin-emu/issues/detail?id=3471
2014-08-07 04:50:42 +02:00
Ryan Houdek
88934fdef8
Merge pull request #751 from FioraAeterna/fixsignext
...
JIT64: correctly sign-extend immediate RC values
2014-08-06 20:50:35 -05:00
Tillmann Karras
f927af20f2
Fix more warnings from #579
2014-08-07 03:24:42 +02:00
Fiora
047cf23f51
JIT64: correctly sign-extend immediate RC values
2014-08-06 14:21:56 -04:00
lioncash
f21d50e104
Core: Fix a leak on OSX that could occur in IOdarwin.mm
...
If a bluetooth connection isn't able to be opened with a Wiimote, then a memory leak would occur as we don't release cbt
2014-08-06 12:34:40 -04:00
lioncash
3c5326fd38
Core: Default initialize a pointer to nullptr in gdsp_do_dma()
...
The if-statement implies that this could fail in the switch statement somehow. If it does fail, then we'd be comparing with an uninitialized pointer.
2014-08-06 12:10:09 -04:00
Lioncash
42354035e2
Core: Remove unused file DSPJitUtil.h
2014-08-05 23:55:34 -04:00
Pierre Bourdon
b7d4481081
Merge pull request #736 from FioraAeterna/fixdirt
...
JIT: Don't assume the reserved bits in GQRs are zero
2014-08-04 20:32:08 -07:00
Fiora
133e04541a
JIT: Don't assume the reserved bits in GQRs are zero
...
While the unused bits in the GQR SPR are probably not supposed to be set, some
games set them anyways (e.g. Dirt 2), which broke the JIT code.
2014-08-04 14:22:00 -04:00
Fiora
c9be85b079
Fix quant/dequant table bug
...
1<<31 is not 2^31 because 1 is a signed int in C; this bug affected both the
JIT and interpreter quantized store implementations, though I don't know if
any games were actually affected.
2014-08-04 10:08:42 -04:00
Pierre Bourdon
6befa34b60
Merge pull request #647 from lioncash/disasm
...
Common: Introduce the new Gekko disassembler to Common.
2014-08-03 21:52:08 -07:00
Pierre Bourdon
7ba400bea2
Revert "Jit64: Fix immediates being zero-extended to cr_val instead of sign-extended."
2014-08-03 21:50:12 -07:00
Lioncash
0718937237
Common: Introduce the new Gekko disassembler to Common.
...
This moves the Gekko disassembler to Common where it should be. Having it in the Bochs disassembly Externals is incorrect.
Unlike the PowerPC disassembler prior however, this one is updated to have an API that is more fitting for C++. e.g. Not needing to specify a string buffer and size. It does all of this under the hood.
This modifies all the DebuggingInterfaces as necessary to handle this.
2014-08-04 00:45:07 -04:00
Pierre Bourdon
b1553b42ce
Merge pull request #542 from Parlane/weird_buffering
...
Remove weird buffering from WII_IPC_HLE_Device_sdio_slot0.cpp
2014-08-03 21:30:35 -07:00
Pierre Bourdon
95a8c24841
Merge pull request #723 from lioncash/warnings
...
Core: Fix two sets of warnings when compiling on Linux.
2014-08-03 21:25:44 -07:00
Pierre Bourdon
4c42b38de1
Merge pull request #428 from Sonicadvance1/x86_32-removal
...
Remove x86_32 support from Dolphin.
2014-08-03 21:17:28 -07:00
Pierre Bourdon
e15ec56bf0
Merge pull request #716 from delroth/vertex-loader
...
Make vertex loader testable
2014-08-03 21:14:59 -07:00
Lioncash
3aba909b25
Core: Get rid of Host_GetInstance()
2014-08-03 23:47:29 -04:00
Pierre Bourdon
ae27d36961
Jit64: Fix immediates being zero-extended to cr_val instead of sign-extended. Thanks to konpie for finding this issue.
2014-08-03 16:00:41 -07:00
Lioncash
1b7d933072
Fix a cast warning when compiling with MSVC
...
Would previously give a C4800 warning.
2014-08-03 17:33:24 -04:00
Ryan Houdek
e004c8ff2d
Remove x86_32 from x64MemTools
2014-08-03 13:48:53 -05:00
Ryan Houdek
8a123b4d75
Remove x86_32 from the JIT block "profiler."
2014-08-03 13:48:53 -05:00
Ryan Houdek
e357fea279
Remove x86_32 from JitCommon.
2014-08-03 13:48:53 -05:00
Ryan Houdek
f2457bbe9d
Remove x86_32 from Jit64IL.
2014-08-03 13:47:56 -05:00
Ryan Houdek
1d5281068d
Remove x86_32 from Jit64.
2014-08-03 13:45:54 -05:00
Ryan Houdek
35bebe9ce0
Remove x86_32 from the DSP JIT.
2014-08-03 13:44:37 -05:00
Lioncash
e1192bc64b
Core: Fix usages of NULL and 0 literals for pointers in GCMemcardDirectory
2014-08-02 18:55:37 -04:00
Lioncash
10d3b7f8e9
Core: Fix formatting warnings in DSPJitRegCache
2014-08-02 18:48:10 -04:00
Lioncash
0bcebd81f6
Merge pull request #721 from lioncash/netplay-unused-param
...
Core: Kill off an unused parameter for NetPlayServer::StartGame
2014-08-02 18:31:38 -04:00
Lioncash
a77d397312
Merge pull request #717 from lioncash/unused
...
Core: Remove unused parameters in Movie
2014-08-02 18:30:18 -04:00
Lioncash
44a157fc09
Core: Kill off an unused parameter for NetPlayServer::StartGame
2014-08-02 18:28:26 -04:00
Pierre Bourdon
9f8e1e2a0d
Merge pull request #720 from booto/dma-audio-fix2
...
DSP: copy audio dma samples as early as possible
2014-08-02 15:13:26 -07:00
booto
35dfe57bc1
DSP: copy audio dma samples as early as possible
2014-08-03 05:24:19 +08:00
Lioncash
a46a500b94
Core: Fix warnings on Linux related to the JIT
2014-08-02 16:15:20 -04:00
Lioncash
41af9a81a5
Core: Remove unused parameters in Movie
2014-08-02 15:07:13 -04:00
Pierre Bourdon
da2833c0e6
Merge pull request #679 from lioncash/ucode-update-params
...
Core: Remove the unused cycle parameter from DSPHLE update calls
2014-08-02 10:37:19 -07:00
Pierre Bourdon
8f768e5a54
Merge pull request #714 from lioncash/gen
...
Core: Remove using namespace statements from the Jit and Interpreter headers
2014-08-02 10:36:31 -07:00
Pierre Bourdon
8b26d7bf1e
UnitTests: make it possible to build tests for code that has global dependencies
2014-08-02 09:34:39 -07:00
Pierre Bourdon
226a9c2392
Move GLInterface around to remove VideoBackends dependency on DolphinWX
2014-08-02 09:34:39 -07:00
Lioncash
a723fd39df
Merge pull request #715 from lioncash/interp
...
Core: Clean up coding style in the Interpreter
2014-08-02 08:39:11 -04:00
Lioncash
8467c82f79
Core: Clean up coding style in the Interpreter
2014-08-02 07:49:11 -04:00
Lioncash
afb539699e
Core: Remove using statements from the Jit and Interpreter headers
2014-08-02 01:48:02 -04:00
Lioncash
b8e64716be
Merge pull request #713 from lioncash/cast
...
Core: Remove now redundant assert conditions in some DSPJitRegCache functions
2014-08-01 22:55:52 -04:00
Lioncash
44f751f752
Merge pull request #692 from booto/dma-audio-fix
...
DSP: latch dma parameters
2014-08-01 22:19:50 -04:00
Lioncash
899bc84e98
Core: Remove now redundant assert conditions in some DSPJitRegCache functions
2014-08-01 20:49:48 -04:00
Lioncash
005004dfa5
Core: Fix cast warnings in DSPJitRegCache
2014-08-01 20:44:38 -04:00
Lioncash
4e2f487741
Core: Get rid of a cast in JitRegCache.cpp
2014-08-01 20:25:39 -04:00
Lioncash
6c923b776e
Merge pull request #695 from lioncash/ipl-string
...
Core: Use a std::string in EXI_DeviceIPL instead of a char buffer
2014-08-01 19:59:56 -04:00
booto
47ba8cc4c1
DSP: latch dma parameters
2014-08-02 05:59:36 +08:00
Pierre Bourdon
0380bb61fa
Merge pull request #708 from lioncash/drum-axis
...
Core: Fix Y-data not being assigned in Drums.cpp
2014-07-31 22:20:40 -07:00
Lioncash
31e9b1ebdd
Core: Fix Y-data not being assigned in Drums.cpp
...
Prior to this we were overwriting the x-axis with y-axis data.
2014-08-01 01:18:39 -04:00
Lioncash
5bb9a74759
Merge pull request #527 from delroth/flags-opt
...
[RFC] PowerPC flags emulation optimization
2014-07-31 02:51:48 -04:00
Ryan Houdek
fda2190a37
Support the 64bit CR flags in the ARM JIT.
2014-07-30 21:41:18 -07:00
Ryan Houdek
3627bd21f1
Remove JitArmIL files from the project.
...
Due to how the new CR-flags work, it isn't possible without some hefty work in the JITIL backend to support this on 32bit systems.
2014-07-30 21:41:17 -07:00
magumagu
f27940478d
JitIL: Attempt to constant-fold more aggressively.
2014-07-30 21:41:17 -07:00
magumagu
79ecdf5fd0
JitIL: Misc small optimizations.
2014-07-30 21:41:17 -07:00
magumagu
c8dd557dde
JITIL: compare instruction folding.
2014-07-30 21:41:17 -07:00
magumagu
5bb428c685
JITIL: optimize branches.
2014-07-30 21:41:17 -07:00
magumagu
79cc000d62
JITIL: Optimize compare instruction.
2014-07-30 21:41:17 -07:00
magumagu
1429fccb97
Initial unoptimized JITIL flag optimization.
2014-07-30 21:41:17 -07:00
Pierre Bourdon
5506e57ab8
CR: Replace some magic values with constants.
2014-07-30 21:41:17 -07:00
Pierre Bourdon
0ff1481494
Optimize PPC CR emulation by using magic 64 bit values
...
PowerPC has a 32 bit CR register, which is used to store flags for results of
computations. Most instructions have an optional bit that tells the CPU whether
the flags should be updated. This 32 bit register actually contains 8 sets of 4
flags: Summary Overflow (SO), Equals (EQ), Greater Than (GT), Less Than (LT).
These 8 sets are usually called CR0-CR7 and accessed independently. In the most
common operations, the flags are computed from the result of the operation in
the following fashion:
* EQ is set iff result == 0
* LT is set iff result < 0
* GT is set iff result > 0
* (Dolphin does not emulate SO)
While X86 architectures have a similar concept of flags, it is very difficult
to access the FLAGS register directly to translate its value to an equivalent
PowerPC value. With the current Dolphin implementation, updating a PPC CR
register requires CPU branching, which has a few performance issues: it uses
space in the BTB, and in the worst case (!GT, !LT, EQ) requires 2 branches not
taken.
After some brainstorming on IRC about how this could be improved, calc84maniac
figured out a neat trick that makes common CR operations way more efficient to
JIT on 64 bit X86 architectures. It relies on emulating each CRn bitfield with
a 64 bit register internally, whose value is the result of the operation from
which flags are updated, sign extended to 64 bits. Then, checking if a CR bit
is set can be done in the following way:
* EQ is set iff LOWER_32_BITS(cr_64b_val) == 0
* GT is set iff (s64)cr_64b_val > 0
* LT is set iff bit 62 of cr_64b_val is set
To take a few examples, if the result of an operation is:
* -1 (0xFFFFFFFFFFFFFFFF) -> lower 32 bits not 0 => !EQ
-> (s64)val (-1) is not > 0 => !GT
-> bit 62 is set => LT
!EQ, !GT, LT
* 0 (0x0000000000000000) -> lower 32 bits are 0 => EQ
-> (s64)val (0) is not > 0 => !GT
-> bit 62 is not set => !LT
EQ, !GT, !LT
* 1 (0x0000000000000001) -> lower 32 bits not 0 => !EQ
-> (s64)val (1) is > 0 => GT
-> bit 62 is not set => !LT
!EQ, GT, !LT
Sometimes we need to convert PPC CR values to these 64 bit values. The
following convention is used in this case:
* Bit 0 (LSB) is set iff !EQ
* Bit 62 is set iff LT
* Bit 63 is set iff !GT
* Bit 32 always set to disambiguize between EQ and GT
Some more examples:
* !EQ, GT, LT -> 0x4000000100000001 (!B63, B62, B32, B0)
-> lower 32 bits not 0 => !EQ
-> (s64)val is > 0 => GT
-> bit 62 is set => LT
* EQ, GT, !LT -> 0x0000000100000000
-> lower 32 bits are 0 => EQ
-> (s64)val is > 0 (note: B32) => GT
-> bit 62 is not set => !LT
2014-07-30 21:41:17 -07:00
Lioncash
f507827399
Merge pull request #681 from phire/non-sse4_1
...
Fix PPC_FP on non-sse4.1 code paths.
2014-07-31 00:31:02 -04:00
Scott Mansell
8c857b45f8
Fix PPC_FP on non-sse4.1 code paths.
...
The Invalid bit on the x87 fpu is sticky, so once a single NaN goes
through the old code on CPUs without sse4.1 all future floats are
mutilated.
Patch to emulate PTEST by Fiora.
Fixes issue 7237 and issue 7510.
2014-07-31 16:00:27 +12:00
Matthew Parlane
5516b0382c
Merge pull request #699 from lioncash/enum
...
Core: Use an enum for the Gekko exception flags instead of defines
2014-07-30 13:53:58 +12:00
Matthew Parlane
a3ca3b0424
Merge pull request #696 from lioncash/more-forward-decls
...
Convert some more header inclusions into forward declarations
2014-07-30 13:53:48 +12:00
Lioncash
ad3ade1510
Core: Use an enum for the Gekko exception flags instead of defines
2014-07-29 21:51:30 -04:00
Lioncash
b03c12764d
Really get rid of the MSVC 2005 workaround completely
2014-07-29 21:20:43 -04:00
Lioncash
522a5c35ad
Convert some more header inclusions into forward declarations
2014-07-29 20:55:07 -04:00
Lioncash
3d95ed93f5
Core: Use a std::string in EXI_DeviceIPL instead of a char buffer
...
Allows getting rid of extra code.
2014-07-29 20:05:57 -04:00
Pierre Bourdon
c0e8d9879a
Merge pull request #678 from lioncash/overflow
...
Fix a possible overflow in EXI_DeviceIPL.
2014-07-29 16:42:58 -07:00
Lioncash
412196a055
Core: Remove defines used to work around an MSVC 2005 bug
2014-07-29 19:33:08 -04:00
Pierre Bourdon
8ff3cf1838
Merge pull request #684 from lioncash/forward-decls
...
Core: Turn some includes into forward declarations.
2014-07-28 20:50:27 -07:00
Pierre Bourdon
062bce8b7e
Merge pull request #659 from Parlane/classic_controller_fix2
...
Classic controller fix
2014-07-28 20:34:00 -07:00
Tony Wasserka
3fb829ca73
Merge pull request #589 from LPFaint99/gcifolder-fifo
...
Gcifolder use correct region for fifologs
2014-07-28 14:44:01 +02:00
Tony Wasserka
9c7d4b6408
Merge pull request #667 from RachelBryk/remove-audio-limit
...
Remove audio frame limit.
2014-07-28 14:38:35 +02:00
Matthew Parlane
3554a15180
Merge pull request #680 from lioncash/fakepoll-removal
...
Remove fakepoll.h
2014-07-28 21:06:37 +12:00
Lioncash
e225e3679a
Merge pull request #685 from lioncash/invalid-reg
...
Core: Use the enum constant for an invalid reg in JitRegCache
2014-07-27 19:37:43 -04:00
Lioncash
0bb84a1f65
Core: Use the enum constant for an invalid reg in JitRegCache
2014-07-27 19:29:52 -04:00
Lioncash
eb3a1de3f6
Core: Turn some includes into forward declarations.
2014-07-27 13:37:09 -04:00
Tony Wasserka
38c8a4efb2
MMIO: Cleanup Mapping class by using templates instead of macros.
2014-07-27 19:23:19 +02:00
Lioncash
4fa71dd59e
Remove fakepoll.h.
...
It was only used for Windows XP and lower.
This also bumps the _WIN32_WINNT define in the stdafx precompiled headers to set the minimum version as Windows Vista.
2014-07-26 22:53:40 -04:00
Lioncash
551cf4b2a2
Core: Remove the unused cycle parameter from DSPHLE update calls
2014-07-26 20:04:15 -04:00
Lioncash
0b8a6f852b
Core: Use character literals within EXI_DeviceIPL
2014-07-26 19:07:19 -04:00
Lioncash
70ba8cfbc2
Core: Fix a possible overflow in EXI_DeviceIPL
...
m_szBuffer has a size of 256, but addressable range is 0 - 255
2014-07-26 19:06:23 -04:00
Lioncash
c1673824bd
Core: Remove the ratio parameter in Zelda UCode's SizeForResampling func
...
It's only ever passed PB.RatioInt
2014-07-26 17:39:26 -04:00
Pierre Bourdon
957a39942e
Merge pull request #675 from lioncash/movie-params
...
Core: Use param padState instead of a global in SetInputDisplayString
2014-07-26 23:30:26 +02:00
Lioncash
d1e487ae00
Core: Use param padState instead of a global in SetInputDisplayString
2014-07-26 17:14:54 -04:00
Lioncash
40273634a4
Merge pull request #674 from lioncash/loldsp
...
Core: Get rid of the void handle parameter for DSP initialization
2014-07-26 17:00:02 -04:00
Lioncash
e8d0a910da
Core: Get rid of the void handle parameter for DSP initialization
2014-07-26 16:54:36 -04:00
Dolphin Bot
30962ec361
Merge pull request #664 from booto/dtk-surgery
...
DTK: Adjustments attempting to increase accuracy
2014-07-26 21:26:33 +02:00
booto
a6a4229865
DTK: Adjustments attempting to increase accuracy
2014-07-27 03:15:52 +08:00
Pierre Bourdon
6bd5fb3a67
Merge pull request #666 from booto/audio-dma-sampling
...
AudioCommon/Mixer: Allow input sample rate changes
2014-07-26 19:22:37 +02:00
Pierre Bourdon
8e865f3848
Merge pull request #506 from Armada651/d3dfullscreen
...
D3D: Add exclusive fullscreen support.
2014-07-26 13:22:11 +02:00
Jules Blok
6724ce6275
Cosmetic changes based on feedback on PR #506 .
2014-07-26 13:04:39 +02:00
Rachel Bryk
acaac51077
Remove audio frame limit.
...
It serves no purpose and causes bugs and confusion for users.
2014-07-25 12:17:10 -04:00
Lioncash
4189703b40
Merge pull request #662 from lioncash/log-comment
...
Clarify that WiimoteEmu::Spy is intended for debugging purposes
2014-07-25 08:46:52 -04:00
Fog
250cc9d5a0
Fixed last tick count not being set on movie load
2014-07-24 20:56:27 -04:00
Lioncash
cefea9a1a1
Core: Fix the license headers for Memmap.h and SystemTimers.h/.cpp
2014-07-24 20:15:43 -04:00
booto
7d920bbb3a
AudioCommon/Mixer: Allow input sample rate changes
2014-07-24 22:42:29 +08:00
Lioncash
5767691f4e
Get rid of a few C-style struct declarations
2014-07-23 20:36:45 -04:00
Matthew Parlane
008b907bf0
Merge pull request #655 from lioncash/crashes
...
Fix two possible crashes related to the debugger.
2014-07-23 21:24:03 +12:00
Pierre Bourdon
257d2a6faf
Merge pull request #661 from delroth/dolphinbar
...
Fix WiiMote issues causing DolphinBar to not work
2014-07-23 05:26:38 +02:00
Pierre Bourdon
e51c459406
IOWin: rework _IOWrite OVERLAPPED/bytes written handling.
...
CheckDeviceType_Write uses an OVERLAPPED structure to make sure some bytes
were written to the device for a given _IOWrite operation. However, the
OVERLAPPED structure is only used for the BlueSoleil stack, not the MS stack
(which goes through an alternate HID path instead of WriteFile, and does not
have an equivalent async operation).
Make _IOWrite return the number of written bytes instead, since it knows
about the Bluetooth stack being used.
2014-07-23 05:17:04 +02:00
Lioncash
7f55d36013
Clarify that WiimoteEmu::Spy is intended for debugging purposes
2014-07-22 22:38:31 -04:00
Pierre Bourdon
ff61158466
IOWin: Make error 0x1F less noisy.
...
This error code is used by third-party WiiMote adapters to signal the
absence of a WiiMote connected to their virtual HID port. Ignoring it
removes some log spamming and doesn't change anything in terms of
behavior.
2014-07-23 03:32:15 +02:00
Shawn Hoffman
c3eb45f7bc
Revert "Merge pull request #473 from Tilka/frsp"
...
This reverts commit d369627d70
, reversing
changes made to 67ff926f1e
.
2014-07-21 20:40:21 -07:00
Matthew Parlane
cee07ff16e
Use new stick/trigger constants for Classic.cpp
2014-07-22 12:16:34 +12:00
Matthew Parlane
82ee68663f
Add stick and trigger radius/center/range consts
2014-07-22 12:14:47 +12:00
Matthew Parlane
e30f4576c9
Revert "Use new stick/trigger constants for Classic.cpp"
...
Added using github, Parlane is an idiot.
This reverts commit 954e61949f
.
2014-07-22 00:08:10 +00:00
Matthew Parlane
954e61949f
Use new stick/trigger constants for Classic.cpp
2014-07-22 11:57:12 +12:00
Lioncash
d369627d70
Merge pull request #473 from Tilka/frsp
...
Jit64: implement frsp
2014-07-21 14:35:40 -04:00
Jules Blok
36ea1890c8
Let the Renderer decide when to exit fullscreen.
...
This ensures the transition from/to exclusive mode happens while the RenderFrame is fullscreen.
This prevents fullscreen loops and relieves us of having to restore the window size after we exit fullscreen.
2014-07-21 17:11:13 +02:00
booto
0d2bef2743
GCPadStatus: coalescing magic numbers into consts
2014-07-21 19:56:05 +08:00
Matthew Parlane
38d5197a2c
Merge pull request #646 from lioncash/warnings
...
Core: Fix warnings in JitRegCache
2014-07-21 20:43:41 +12:00
Lioncash
44e43fe5c3
Core: Make CPU_POWERDOWN the initial CPU state.
...
This isn't a correct state for the CPU to begin in when starting the application.
Also CPU_STEPPING as an initial state causes the emulator to crash if you use any of the debugger stepping buttons, since it checks if the CPU is in the CPU_STEPPING state before performing their functions.
2014-07-19 19:43:53 -04:00
Pierre Bourdon
963e1a698c
Merge pull request #581 from TotalNerd/memcard-emu
...
Emulate GameCube memory card speeds
2014-07-20 00:12:47 +02:00
booto
631a361cc8
GCPadEmu: stop sticks wrapping at extreme values
2014-07-19 19:22:05 +08:00
LPFaint99
da99e0448b
GCI Folder: no need to force reload sysmenu to get version
...
causes crash with larger gci folders as we pull the loader out from under the ppc
2014-07-18 20:34:26 -07:00
TotalNerd
b2ac65bb21
Revised channel access from EXI_DeviceMemoryCard
2014-07-18 20:06:03 -05:00
Pierre Bourdon
8085b3d264
Merge pull request #638 from lioncash/bound-check
...
Core: Fix bounds checking within GCMemcard.cpp.
2014-07-18 09:14:27 +02:00
Pierre Bourdon
4db84c5188
Merge pull request #637 from lioncash/unused
...
Core: Remove unused function Callback_ISOName()
2014-07-18 09:14:06 +02:00
Lioncash
98f352a4e6
Core: Fix warnings in JitRegCache
2014-07-18 02:44:29 -04:00
Tillmann Karras
771a30da36
Jit64: implement frsp
2014-07-17 23:22:41 +02:00
TotalNerd
f602372885
Redo timing in DMAWrite/DMARead
2014-07-17 10:57:34 -05:00
TotalNerd
8a0093de23
Emulate GameCube memory card speeds
2014-07-17 10:57:34 -05:00
Scott Mansell
7aff56bef5
Implement the correct method for determining field order.
...
Based on advice from tueidj we implement this method based on how
TVs actually determin the field order.
Removes spammy messages about "Invalid field order"
2014-07-17 23:56:23 +12:00
Lioncash
7ca8a834c1
Core: Fix bounds checking within GCMemcard.cpp.
...
Prior to this 127 would be an allowed numeric index. However There is only an addressable range from 0-126.
2014-07-17 01:33:47 -04:00
LPFaint99
19c94de6e0
Gcifolder use correct region for fifologs and homebrew
2014-07-16 21:41:09 -07:00
Lioncash
041445a155
Core: Remove unused function Callback_ISOName()
2014-07-16 20:44:17 -04:00
Pierre Bourdon
8cf21cdcdb
Merge pull request #633 from magcius/wip/input-focus-fix
...
Fix input focus issues
2014-07-17 01:21:31 +02:00
Tony Wasserka
2daa83da48
Merge pull request #372 from Tilka/fctiwzx
...
Jit64: implement fctiwx/fctiwzx
2014-07-16 17:41:21 +02:00
Jasper St. Pierre
44307c9508
Host: Add a new "UIHasFocus" hook to determine if the UI has focus
...
We can't use RendererHasFocus for this purpose because of some issues
with exclusive fullscreen, and the new RendererHasFocus implementation
didn't work for non-Render to Main Window cases, since the renderer
window wasn't managed by wx.
2014-07-16 10:27:21 -04:00
Lioncash
6c57457f9f
Core: Correct some function casings.
2014-07-15 19:41:50 -04:00
Tillmann Karras
6521929f99
Jit64: implement fctiw/fctiwz
2014-07-15 23:58:09 +02:00
Rachel Bryk
ed5169c5eb
Fix leaking exi devices.
2014-07-15 16:15:38 -04:00
Lioncash
ebd029973a
Merge pull request #604 from magcius/wip/emu-cleanup-2
...
Start cleaning up the input interface
2014-07-15 12:11:17 -04:00
LPFaint99
198d137ca0
GCI Folder fix compatibility with games that relocate the save after first use
2014-07-14 18:52:29 -07:00
shuffle2
3cabacde9d
Merge pull request #613 from lioncash/uninitialized
...
Core: Fix potential uninitialized var usage in WII_IPC_HLE_Device_usb
2014-07-13 14:03:02 -07:00
Lioncash
fae0cf3698
Core: Fix potential uninitialized var usage in WII_IPC_HLE_Device_usb
...
If "if (ReadStoredLinkKey->read_all == 1)" is not true, then
num_keys_read would be used uninitialized.
2014-07-13 15:41:35 -04:00
Lioncash
9d3c0102fc
Core: Get rid of an unnecessary struct typedef in Boot.h.
2014-07-13 15:28:50 -04:00
Pierre Bourdon
16582a0459
Merge pull request #543 from RachelBryk/patches
...
Fix patches not being loaded when running real gc bios.
2014-07-13 06:25:39 +02:00
Tillmann Karras
0ccee6c87b
Fix warnings unearthed by #579
2014-07-13 02:16:51 +02:00
Jasper St. Pierre
e4eec2002b
ControllerEmu: Remove focus-checking code from the rest of ControllerEmu
2014-07-11 14:08:29 -04:00
Jasper St. Pierre
5abc028ace
ControllerEmu: Make BackgroundInput a global setting through the virtualization
...
This will allow us to simplify the checks for background input and push
them further down into the architecture, into the ControllerEmu layer.
The new setting isn't actually used yet, though.
2014-07-11 13:38:37 -04:00
Jasper St. Pierre
a6dc3c47a9
ControllerEmu: Change the GetState interface to remove range/base
...
Do the scaling in the code that interprets the results.
This also removes the templatization of things and changes the interface
to always take a double.
This does add a bit more code to the users of GetState, especially when
having to deal with focus management, but this will be cleaned up very
soon, as focus and focus-related options will be centralized inside the
input platforms themselves, rather than spread out across all the input
plugins.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre
68a4979f35
Nunchuk: Stop the dereference dance
2014-07-11 13:32:56 -04:00
Jasper St. Pierre
e20a0265de
Remove UDPWiimote feature
...
It substantially complicates the code and doesn't really provide any
functionality. According to the forums, the Android app is out of date
and has been broken for quite a while.
If we want to add this back, I'd write an app that speaks a more native
Wiimote protocol, and we can hook that up to the backend quite easily.
It could even be over our NetPlay protocol!
2014-07-11 13:32:56 -04:00
degasus
7e79806efc
remove unused globals
...
Also change globals into statics which are only used in one file
2014-07-11 16:10:20 +02:00
degasus
81ed17be53
avoid the extern keyword in .cpp files
2014-07-11 16:10:20 +02:00
degasus
6d3f249dcc
mark all local variables as static
2014-07-11 16:10:20 +02:00
degasus
22e1aa5bb4
mark all local functions as static
2014-07-11 16:07:23 +02:00
Lioncash
896d7e5685
Change SPADStatus struct name to GCPadStatus
...
Also get rid of the typedef, since this is unnecessary in C++
2014-07-10 22:02:38 -04:00
Dolphin Bot
bc655d1a82
Merge pull request #515 from Armada651/threading
...
Make the emulation stop asynchronous to prevent deadlocks.
2014-07-10 21:02:47 +02:00
Rachel Bryk
36bc494a0b
Fix code style in WII_IPC_HLE_Device_net.h/.cpp.
2014-07-09 05:26:04 -04:00
Jules Blok
4df00ae544
Movie: Do not attempt to record input when the emulation has not started yet.
...
Fixes a null pointer exception when the user starts the recording during a state transition.
2014-07-08 22:32:35 +02:00
Jules Blok
db7e746cb4
Check whether the core is running instead of checking if it is unitialized.
...
This properly handles the stopping state and more accurately represents the intended check.
2014-07-08 22:30:44 +02:00
Jules Blok
49eade69a3
Core: Return CORE_STOPPING even if hardware is already uninitialized.
2014-07-08 21:21:24 +02:00
Jules Blok
3266394dfb
Make the emulation stop asynchronous to prevent deadlocks.
...
This may expose bugs which relied on the Main Thread to be suspended in the stopping state.
2014-07-08 21:21:23 +02:00
Pierre Bourdon
b0b70381f7
Revert "Don't add segfault handler in interpreter mode"
2014-07-07 05:30:06 +02:00
Dolphin Bot
4ec8c3714d
Merge pull request #328 from Tilka/enum_cpubackend
...
Don't add segfault handler in interpreter mode
2014-07-06 19:28:10 +02:00
Dolphin Bot
db4e32a124
Merge pull request #547 from lioncash/cleanups
...
Clean up the DSP disassembler a little.
2014-07-06 19:20:07 +02:00
Tony Wasserka
a798548c30
Merge pull request #546 from workhorsy/header_guard_to_pragma_once
...
Changed lingering header include guards to pragma once.
2014-07-06 14:19:32 +02:00
degasus
e72b01caa1
ConfigManager: fix alignment
2014-07-06 11:05:16 +02:00
Dolphin Bot
8da2bc63cf
Merge pull request #559 from RachelBryk/gci-folder-state
...
Merge pull request #559 from RachelBryk/gci-folder-state
Keep device type EXIDEVICE_MEMORYCARDFOLDER for gci folder.
2014-07-06 07:34:55 +02:00
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
Matthew Parlane
5dc7c8ad31
Remove weird buffering from WII_IPC_HLE_Device_sdio_slot0.cpp
2014-06-30 03:39:40 +00: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
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
magumagu
c01ac18d4d
VideoInterface: clean up naming and bitfields.
...
Matching the hardware more closely will hopefully make this code easier to
read.
2014-05-05 11:01:15 -07:00
magumagu
2db2f3dce9
VideoInterface: accurate XFB width and height.
...
What we call "fbWidth" here is really the stride, but I'll fix that in a
followup.
2014-05-05 11:01:14 -07:00
Tillmann Karras
4cce79e744
Jit64: implement tw/twi more accurately
...
Fixes issue 7253.
2014-05-03 12:30:07 +02:00
LPFaint99
b549ec70b4
GCMemcard: fix edge case of adding to a fragmented memcard.
...
allocates last block of memcard, and then wraps around, instead of attempting to write past the end of the card
2014-05-01 12:21:48 -07:00
Tony Wasserka
557c3db462
Merge pull request #81 from degasus/skip_framelimit_hotkey
...
Add a hotkey for disabling the framelimit.
2014-05-01 12:40:01 +02:00
Ryan Houdek
c5d506142f
Merge pull request #305 from magumagu/movie-scanf
...
Movie: don't use "hh" scanf modifier.
2014-04-30 20:01:27 -05:00
Ryan Houdek
c4221e8f68
Merge pull request #323 from Sonicadvance1/newer-ppcanalyst
...
[RFC] New PPCAnalyst class.
2014-04-30 18:59:24 -05:00
Pierre Bourdon
951612f08e
Merge pull request #325 from Tilka/nop
...
Fix NOP padding
2014-04-30 18:55:36 +02:00
Ryan Houdek
8e1dfef14c
Remove the old PPAnalyst::Flatten function that is no longer in use.
2014-04-30 10:49:39 -05:00
Ryan Houdek
6949087ee1
Missed the analyzer object not named correctly.
2014-04-30 10:49:39 -05:00
Ryan Houdek
70d1f5adfb
Let Jit64IL use the new PPCAnalyst class
2014-04-30 10:49:39 -05:00
Ryan Houdek
1cb1260c1d
Address delroth's comments.
2014-04-30 10:49:39 -05:00
Ryan Houdek
40c317d1d4
Support the new PPCAnalyst class in JIT64.
...
Implements support for OPTION_CONDITIONAL_CONTINUE in JIT64.
2014-04-30 10:49:39 -05:00
Ryan Houdek
ad167e7b52
Adds support to the new PPCAnalyst to the ARM JIT cores.
...
ArmJit32 supports OPTION_CONDITIONAL_CONTINUE with this.
2014-04-30 10:49:38 -05:00
Ryan Houdek
da2ed2e17d
Adds new PPCAnalyser class.
...
Supports conditional branch continuation.
More features to come.
2014-04-30 10:49:31 -05:00
Tillmann Karras
36dbde0f3c
Jit_Util: reduce NOP padding of 8 bit loads
...
and use MOVSX directly if needed.
2014-04-30 15:26:11 +02:00
Tillmann Karras
e659f5ac58
JitBackpatch: fix NOP padding
...
The new NOP emitter breaks when called with a negative count. As it
turns out, it did happen when deoptimizing 8 bit MOVs because they are
only 4 bytes long and need no BSWAP.
2014-04-30 15:26:11 +02:00
booto
9892c8ea54
numCyclesMinusOne to numCycles in GekkoOPInfo
2014-04-30 19:04:02 +08:00
degasus
f254fdfd96
drop Host_GetKeyState
...
This function isn't used any more and it shouldn't be used at all as it generates a sync request to the x11 server. So it has to wait for a complete round trip time.
2014-04-30 12:51:13 +02:00
degasus
30586f4d29
Add set/get functions for IsFramelimiterTempDisabled
2014-04-30 12:51:13 +02:00
degasus
8483811b39
Add a hotkey for disabling the framelimit.
...
Atm this is hardcoded to '\t'.
2014-04-30 12:50:53 +02:00
Pierre Bourdon
a093b41231
Merge pull request #312 from Tilka/small_jit_optimizations
...
Small JIT optimizations
2014-04-27 11:51:21 +02:00
Pierre Bourdon
8bf2a338c4
Merge pull request #314 from Sonicadvance1/Clean-UpdateCR1
...
Removes unused argument in Helper_UpdateCR1.
2014-04-27 11:50:44 +02:00
Sean
895e84edfe
ARM: Fix Wii games on JIT
2014-04-25 18:32:49 -04:00
Ryan Houdek
94497961ac
Removes unused argument in Helper_UpdateCR1.
...
Interpreter::Helper_UpdateCR1 doesn't use the argument passed to UpdateCR1. It pulls its value from the FPSCR register.
Also there was a Interpreter::Helper_UpdateCR1(float) in addition to Helper_UpdateCR1(double) that hasn't ever existed. Remove the function
declaration.
2014-04-24 22:00:58 -05:00
Ryan Houdek
c29961cc90
Fix missing instructions in ARM JIT Tables.
...
The ARM insturction tables were missing addcox, addeox, and subfcox.
Implements support for addcox and addeox to the ArmJit, required little work since they are basically the same as addcx and addex.
2014-04-24 19:34:21 -05:00
Tillmann Karras
886c887e80
Fix Fastmem on CPUs without MOVBE
...
The problem was that when BSWAP was used, UnsafeWriteRegToReg() returned
the address of that instead of the MOV.
2014-04-25 01:11:52 +02:00
Tillmann Karras
688644dd18
Jit64: use integer instructions for boolean logic
...
They are semantically equivalent and according to Agner Fog they can run
on more execution ports than their floating point counterparts (at least
on Intel CPUs).
2014-04-24 22:50:27 +02:00
magumagu
78292e5d18
Movie: don't use "hh" scanf modifier.
...
Attempting to use it with Visual Studio is a good way to corrupt the stack.
2014-04-24 11:05:25 -07:00
Tillmann Karras
12054e9f16
Jit64IL: remove dummy implementations
2014-04-24 18:52:56 +02:00
Tillmann Karras
1f2e551c8c
BackPatch: make sure MOVBE is long enough
2014-04-24 16:36:03 +02:00
Tillmann Karras
acfd9ee76c
Add remaining possible uses of MOVBE
...
Also fixes a missing 'break' statement in DisassembleMov().
2014-04-24 16:36:03 +02:00
magumagu
b5f71e901f
PatchEngine: Remove no-op function LoadDiscList.
...
(The function just pushes elements onto an std::vector which is unused
otherwise.)
2014-04-21 21:07:02 -07:00
Pierre Bourdon
8e38b1e63b
Merge pull request #285 from delroth/movbe
...
WriteToConstRamAddress: support swap on 32 bit too
2014-04-21 02:23:30 +02:00
Pierre Bourdon
78b3eb1e64
Merge pull request #289 from Sonicadvance1/Fix-IPL-Horizontal-Offset
...
Change IPL horizontal offset from +5 to 0.
2014-04-20 01:26:41 +02:00
Ryan Houdek
e6fa9bf048
Change IPL horizontal offset from +5 to 0.
...
Noticed this while fiddling with things.
Having a default offset of +5 is stupid.
Changes the bit that contains the offset and the two hashs.
2014-04-18 23:31:44 -05:00
magumagu
002fb0b563
Interpreter: don't PanicAlert on write to SPR_HID2.
...
The alert apparently triggers on Midway Arcade Treasures 2; given that the
game otherwise works fine, it's not a high priority to accurately emulate
the bit in question.
Fixes issue 7197.
2014-04-18 20:20:42 -07:00
Pierre Bourdon
257b11366d
WriteToConstRamAddress: support swap on 32 bit too
2014-04-19 02:23:57 +02:00
Pierre Bourdon
cf315a487f
Merge pull request #271 from delroth/threading-stuff
...
Threading improvements: add Common::Flag and improve Common::Event
2014-04-14 23:23:16 +02:00
Pierre Bourdon
6bdcbad3e4
Common: Move the Event class to a separate file, and add tests for it. Fix includes everywhere to match this.
2014-04-14 10:54:07 +02:00
Ryan Houdek
3f73fc37fc
[ARM] Implements more fastmem instructions in lXX.
...
There are a few instructions in lXX that aren't currently fastmem capable due to using a register offset.
This implements fastmem for those few instructions.
Really I'll be changing how ARMv7 fastmem works in the future so this is really temporary code.
Just don't know how long it'll stay.
This relies on PR #257
2014-04-14 00:38:46 -05:00
Ryan Houdek
a07f8fb65b
Merge pull request #257 from Sonicadvance1/LoadStore-Fix
...
[ARM] Minor cleanup to lXX and stX. Fixes a bug.
2014-04-14 00:38:13 -05:00
magumagu
1a4156a4a0
JitIL: fix carry computation for srawi.
...
The carry computation needs to be based on the input value, not the output
of the shift.
2014-04-13 20:31:32 -07:00
SlEePlEs5
891fb056a3
Added BBA TAP backend for OS X.
...
TUN/TAP OS X needs to be installed, and /dev/tap0 chown’d to the user.
The tap0 network interface doesn’t appear until /dev/tap0 is opened by
the program, so all bridging must be done once the game is already
running.
Unfortunately, bridging seems to be broken on OS X, so this does not
actually work over LAN (yet!).
2014-04-12 09:51:34 +02:00
Pierre Bourdon
745fe14269
Jit64: Use LoadAndSwap/SwapAndStore where it makes sense.
2014-04-11 23:33:21 +02:00
Pierre Bourdon
6cb42859d4
JitAsmCommon: Use MOVBE everywhere it matters (!x86 only code, !old CPU support code).
2014-04-11 23:33:21 +02:00
Pierre Bourdon
fcbe265adc
Jit_Util: Provide two util functions to load/store and swap values, using MOVBE internally when possible.
2014-04-11 23:33:21 +02:00
Tony Wasserka
306b9afd1e
Merge pull request #224 from magumagu/swrender-deletepixelfork
...
Software backend: Delete forked PixelEngine.
2014-04-11 20:01:23 +02:00
Ryan Houdek
bedb386560
Merge pull request #242 from LPFaint99/GCMemcard
...
MemcardManager: Fix "export all saves"
2014-04-10 22:10:34 -05:00
Kristian Buchman
abd57f7198
Updated the Cmake and VCX project files
2014-04-10 12:10:55 -06:00
Kristian Buchman
45589e7735
Renamed all Core/DPS/Dsp* files to Core/DSP/DSP*
2014-04-10 12:10:55 -06:00
Ryan Houdek
d17d5ead07
[ARM] Minor cleanup to lXX and stX. Fixes a bug.
...
Fixes an issue in lXX where if the instruction was an update instruction and was a register address offset that we would add garbage values to the
writeback register.
Does some minor cleanups as well which save a few instructions here and there.
2014-04-10 02:17:01 -05:00
Ryan Houdek
87d106d65c
Remove dumb CodeBlock duplication in the emitters.
...
Fixes issue 6990.
This uses a bit of templating to remove the duplicate code that is the CodeBlocks in each emitter headers.
No actual functionality change in this.
2014-04-09 13:53:43 -05:00
Ryan Houdek
ccc4866118
Fix Fastmem on ARM once more.
2014-04-06 10:28:58 -04:00
Rachel Bryk
d9d292fd1c
Add dsp rom hashes to movie header.
...
Also fix a random typo.
2014-04-06 09:36:45 -04:00
magumagu
accd652aa1
Fix trailing whitespace.
2014-04-04 16:25:08 -07:00
Pierre Bourdon
c68be42c55
Merge pull request #226 from LPFaint99/Issue6753
...
Use a 251 block Memory card for games that do not work with larger cards. Fixes Issue 6753
2014-04-03 10:15:43 +02:00
LPFaint99
6333a4b5ba
fix exporting all saves in memcardmanager
2014-04-02 22:58:03 -07:00
lioncash
e79895e372
Replace use of the deprecated mem_fun function with mem_fn.
2014-04-01 12:09:22 -04:00
Pierre Bourdon
bad109402e
Merge pull request #233 from delroth/dsphle-cleanups
...
DSPHLE Zelda cleanups
2014-03-30 20:12:20 +02:00
Pierre Bourdon
76fafb1c7b
Merge pull request #220 from magumagu/audio-handling-cleanup-v2
...
Audio handling cleanup v2
2014-03-30 13:24:52 +02:00
Pierre Bourdon
c7642e4712
DSPHLE: Rename variables in the Zelda UCode to match Dolphin's coding style
2014-03-30 13:06:45 +02:00
Pierre Bourdon
66fa0b626a
DSPHLE: Remove 'ZeldaObsolete.txt'
2014-03-30 12:51:21 +02:00
Pierre Bourdon
b31d1fd313
Merge pull request #232 from delroth/dsphle-cleanups
...
Random DSPHLE cleanups
2014-03-30 01:23:09 +01:00
Pierre Bourdon
c2ae791440
DSPHLE: Cleanup common style issues in Zelda.{cpp,h} (most of the file is not coding style compliant)
2014-03-30 01:13:33 +01:00
Pierre Bourdon
18ca5b880e
DSPHLE: Cleanup ROM.{cpp,h}
2014-03-30 01:13:33 +01:00
Pierre Bourdon
090e7637c8
DSPHLE: Cleanup INIT.{cpp,h}
2014-03-30 01:10:08 +01:00
Pierre Bourdon
41e9d8e1a4
DSPHLE: Cleanup GBA.{cpp,h}
2014-03-30 01:10:07 +01:00
Pierre Bourdon
061e3f998a
DSPHLE: Cleanup CARD.{cpp,h}
2014-03-30 01:10:07 +01:00
Pierre Bourdon
85ebffd839
DSPHLE: Cleanup AX{,Wii}.{cpp,h}
2014-03-30 01:10:07 +01:00
Pierre Bourdon
d3abe3824f
DSPHLE: Cleanup UCodes.{cpp,h}
2014-03-30 01:10:07 +01:00
Matthew Parlane
2e119af086
Merge pull request #230 from Parlane/libogc_ios_fix
...
Fixes Wiimotes for libogc.
2014-03-30 12:07:02 +13:00
Pierre Bourdon
17d64a1d50
DSPHLE: Mass rename classes to match our coding style better.
2014-03-30 00:01:15 +01:00
Pierre Bourdon
6bc845a804
DSPHLE: Rename files to remove redundant 'UCode' prefix.
2014-03-30 00:01:15 +01:00
Matthew Parlane
cb319ba1da
Fixes Wiimotes for libogc.
...
Caused by USB not writing back expected values.
Fixes Issue 7109
2014-03-30 11:04:30 +13:00
magumagu
0661efea84
Software backend: Delete forked PixelEngine.
...
Mostly just zapping a bunch of duplicated code; the only interesting thing
going on here is the changes to the performance counter implementation.
2014-03-29 12:07:20 -07:00
magumagu
3afa17f752
Move audio handling out of DSP emulation.
...
This is good for a couple of reasons: one, it gets rid of duplicated code,
and two, DSP emulation shouldn't need to interact with audio in the first
place.
2014-03-29 11:19:32 -07:00
magumagu
78499e5b7c
Delete AudioCommon::UseJIT().
2014-03-29 11:19:31 -07:00
magumagu
102ea55f20
Move mixer construction to AudioCommon.cpp.
2014-03-29 11:19:30 -07:00
magumagu
aac4206664
Move UDSPControl structure into DSP.h .
2014-03-29 11:19:19 -07:00
LPFaint99
c47f047ac6
Use memory card 251 for games that cannot use large memory cards
2014-03-29 10:14:24 -07:00
Lioncash
73a3a6726d
Add the algorithm header to a few FifoPlayer cpp files.
...
Both of them use std::min and std::max, but this header wasn't included.
2014-03-29 10:42:28 -04:00
Pierre Bourdon
664c8d30a0
Remove all trailing whitespaces from our codebase.
2014-03-29 11:05:44 +01:00
magumagu
23174d25c6
Minor Ucode cleanup.
...
Clean out unnecessary references to the audio system from the ucode
implementation.
2014-03-27 14:16:16 -07:00
Pierre Bourdon
784c636db8
Merge pull request #214 from magumagu/zelda-ucode-cleanup
...
Zelda ucode cleanup
2014-03-27 09:57:03 +01:00
magumagu
8a3da44d91
Fix CMake build.
2014-03-26 15:59:23 -07:00
magumagu
f8b7a2fc10
Add audio output for Zelda Ucode variants.
...
Untested.
2014-03-26 15:17:37 -07:00
magumagu
e9896c1ff9
Use correct sample rate in Zelda Ucode HLE.
...
The Ucode's output should be independent of the sample rate Dolphin is using.
2014-03-26 15:12:00 -07:00
magumagu
3b62e8b798
Fix minor Zelda Ucode audio corruption.
...
Stupid mistake in my previous commit; the value of m_CurBuffer was
off-by-one.
2014-03-26 14:34:00 -07:00
magumagu
4fafa954a1
Zelda Ucode partly working without Premix hack.
...
The code is still completely wrong, and it only outputs some sound,
but the mess is confined to the Zelda Ucode implementation.
2014-03-26 14:06:32 -07:00
magumagu
8dad1be319
Fix sound buffer addresses in Zelda UCode HLE.
...
The code previously mixed up the addresses of the right and left buffer;
testing shows that the address of the left buffer comes first.
2014-03-26 14:06:30 -07:00
magumagu
ae9367a89b
Delete a bunch of old audio HLE cruft.
...
This commit intentionally breaks audio output from HLE Zelda UCode; no other functional change.
2014-03-26 11:17:19 -07:00
magumagu
ca4e0495c0
Save registers before calls in x86-32 JIT.
...
I have no idea what the person who added RegistersInUse() was thinking,
but not correctly saving registers is an easy way to end up with crashes.
2014-03-25 20:50:14 -07:00
Tony Wasserka
8941f19cdb
BPMemory: Expose the pixel_format and zformat fields in PE_CONTROL as enumerations.
2014-03-25 23:57:58 +01:00
Lioncash
59eb59dd98
Remove an unused parameter from UpdateDebugger_MapLoaded.
2014-03-23 17:19:12 -04:00
Ryan Houdek
a3e18cd498
Merge pull request #171 from lioncash/rarc-cleanup
...
File tree building cleanup
2014-03-23 00:34:26 -05:00
Matthew Parlane
b8f469dedd
Merge pull request #195 from Sonicadvance1/RuntimeExtendedInfo
...
Allow the user to enable the extended information string like the old days.
2014-03-23 18:32:37 +13:00
Ryan Houdek
7549ee232c
Allow the user to enable the extended information string like the old days.
...
This string shows emulated CPU speed, including true mhz + idle skipping mhz
2014-03-22 23:32:07 -05:00
Lioncash
9ed562d7de
Mark the PPCDebugInterface and DSPDebugInterface as final.
2014-03-18 20:42:08 -04:00
Matthew Parlane
6445e02d53
Merge pull request #159 from Tilka/misc
...
Cleanup stuff
2014-03-17 17:43:20 +13:00
Tillmann Karras
fa3cc05753
Turn some non-const refs into pointers
2014-03-17 02:55:57 +01:00
Tillmann Karras
2fcaca0603
More range-based loops and overrides
2014-03-17 02:55:55 +01:00
Tillmann Karras
3fc9ca0789
UCodes: nits
2014-03-17 02:55:54 +01:00
Tillmann Karras
3c46c0ede9
Interpreter: make some class members private
2014-03-17 02:55:54 +01:00
Lioncash
692deb24ba
Remove unused function PanicAlertToVideo from Core.cpp.
2014-03-16 21:07:34 -04:00
Rachel Bryk
89dbec437f
Save bHLE_BS2 to config cache before it can be changed while booting.
...
This variable can be changed in SConfig::AutoSetup, so we need to save it before that is called.
2014-03-16 20:05:09 -04:00
Tillmann Karras
a9a15690a2
UCode_AX: don't always call NotifyAXThread()
...
StartWorking() already does this if needed
2014-03-16 22:05:59 +01:00
Lioncash
bd1ce18f90
Simplify file tree building for the filesystem view.
...
Technically this also simplifies on disc filename building in general.
2014-03-16 16:54:00 -04:00
Lioncash
3b27a2d22e
Make WiiSocket function names conform to the coding style.
2014-03-14 20:11:52 -04:00
Pierre Bourdon
8d679e76d2
Merge pull request #164 from lioncash/cstr-cull
...
Kill off some usages of c_str.
2014-03-15 00:57:56 +01:00
Pierre Bourdon
974123000d
MemoryInterface: properly register region MMIOs.
2014-03-14 21:52:45 +01:00
Lioncash
a82675b7d5
Kill off some usages of c_str.
...
Also changes some function params, but this is ok.
Some simplifications were also able to be made (ie. killing off strcmps with ==, etc).
2014-03-14 13:51:23 -04:00
Lioncash
0edda2bd7f
Fix a typo in DSPSymbols. (DisasssembleRange -> DisassembleRange)
...
Also remove IsHexDigit and IsAlpha and replace them with their cctype equivalents.
2014-03-12 20:51:06 -04:00
Matthew Parlane
31cfc73a09
Fixes spacing for "for", "while", "switch" and "if"
...
Also moved && and || to ends of lines instead of start.
Fixed misc vertical alignments and some { needed newlining.
2014-03-11 00:35:07 +13:00
Tillmann Karras
d802d39281
clang-modernize -use-nullptr
...
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09 21:14:26 +01:00
Tillmann Karras
f28116b7da
clang-modernize -add-override
2014-03-09 21:12:01 +01:00
Tillmann Karras
c89f04a7c5
clang-modernize -loop-convert
...
and some manual adjustments
2014-03-09 21:11:59 +01:00
Pierre Bourdon
f401263867
Merge pull request #152 from Tilka/float_stuff
...
Fix IsQNAN() and reduce code duplication
2014-03-09 21:06:19 +01:00
Tillmann Karras
16885d0f74
Interpreter: less duplicate code in float compares
2014-03-09 19:35:13 +01:00
Tillmann Karras
9ef64245fa
MathUtil: fix IsQNAN()
...
The constants were one nibble too short and the lower 51 bits don't
actually have to be zero.
2014-03-09 19:34:58 +01:00
Lioncash
e9d1796c24
Rename assemble.cpp/.h and disassemble.cpp./.h to DSPAssembler.cpp/.h and DSPDisassembler.cpp/.h
2014-03-09 13:25:50 -04:00
Lioncash
db0596e088
Add a namespace to DSPHost.
...
Gets rid of the "DSPHost_" prefix in function names.
2014-03-09 12:30:13 -04:00
Tillmann Karras
d05e205a24
FPURoundMode: revert use of enums in bit-fields
...
The workaround of using fixed underlying types produces lots of warnings
in GCC because now the bit-fields are too small for the value range used
for conversion semantics.
2014-03-09 15:24:35 +01:00
Tillmann Karras
aa7a2fc4bf
Jit64::twx(): add assert message
...
The implemented and the real control flow differ a bit.
2014-03-09 15:24:33 +01:00
Matthew Parlane
2e70ff2441
Add missing functional include caused by PR111
2014-03-09 12:28:58 +13:00
Matthew Parlane
d9ca5c83c9
Fix bug in PrintCallstack caused by trying to use MMIO
...
Also tidy up methods in Debugger_SymbolMap.cpp
2014-03-09 12:23:30 +13:00
Pierre Bourdon
8802770a85
JitUtil: Optimize MMIO loads by generating code to directly access a given MMIO.
2014-03-08 23:32:43 +01:00
Pierre Bourdon
71962ee0eb
MMIO: Pass pointers to the complex method lambdas when visiting.
2014-03-08 23:32:43 +01:00
Pierre Bourdon
6b645f5cac
MMIO: Add a function to check if a given address refers to MMIO registers.
2014-03-08 23:32:43 +01:00
Matthew Parlane
886060aaf7
Merge pull request #96 from lioncash/remove-console-correctly
...
Remove console correctly
2014-03-08 15:54:06 +13:00
Pierre Bourdon
248f5d7f22
Merge pull request #130 from lioncash/breakpoint-clear
...
Actually make PPCDebugInterface::ClearAllBreakpoints have functionality.
2014-03-07 20:42:52 +01:00
Matthew Parlane
57f2eda130
Fix MAC address reading on Windows.
2014-03-07 21:40:59 +13:00
Lioncash
aa82680be7
Mark functions in the PPCDebugInterface and DSPDebugInterface as final.
...
The way they currently were, they would allow for a class to inherit and override these interfaces functions. However, this doesn't make sense conceptually.
2014-03-05 21:54:34 -05:00
Lioncash
610a6f9b23
Add ClearAllMemChecks to DebugInterface
...
Breakpoints have one, but memchecks don't, despite being cleared directly in the breakpoint window.
Now DolphinWX should call the interface functions and not the direct functions of the breakpoints or memchecks for clearing.
2014-03-05 21:50:23 -05:00
lioncash
96328902a5
Actually make PPCDebugInterface::ClearAllBreakpoints have functionality.
...
Fairly simple - just clear the breakpoints.
2014-03-05 20:27:27 -05:00
Matthew Parlane
e5b250fa79
Merge pull request #122 from lioncash/rename-default
...
Rename the JIT function Default() to FallBackToInterpreter(). Communicates intent way better in terms of telling the reader what's going on.
2014-03-06 12:13:54 +13:00
Shawn Hoffman
7733463e65
commit 1a428de189
introduced a bug by using a signed enum in a bitfield, the value of which is then used in a ldmxcsr instruction. The sign-extension corrupts the value, causing an exception by attempting to load mxcsr with an invalid value.
2014-03-05 10:19:29 -08:00
Ryan Houdek
4f02132f93
Make our architecture defines less stupid.
...
Our defines were never clear between what meant 64bit or x86_64
This makes a clear cut between bitness and architecture.
This commit also has the side effect of bringing up aarch64 compiling support.
2014-03-04 09:36:59 -06:00
Pierre Bourdon
91676ad930
Merge pull request #128 from lioncash/normalize-debug-interface-func-names
...
Change the DebugInterface, PPCDebugInterface, and DSPDebugInterface to use CamelCase function names.
2014-03-03 18:58:36 +01:00
Tillmann Karras
891b334f52
Fix 32 bit non-Windows build
2014-03-03 10:46:08 +01:00
Lioncash
279a8c0148
Change the DebugInterface, PPCDebugInterface, and DSPDebugInterface to use CamelCase names.
...
This is the standard coding convention in the codebase, so our interfaces should use it too.
2014-03-03 00:39:08 -05:00
Lioncash
34b5a7871f
Rename the JIT function Default() to FallBackToInterpreter(). Communicates intent way better in terms of telling the reader what's going on.
...
Also did some minor cleanup in functions that used Default.
2014-03-02 19:59:20 -05:00
Lioncash
13a007abed
Remove another clamp function laying in the codebase and replace it with the one in MathUtil.h.
2014-03-02 13:57:27 -05:00
Matthew Parlane
70b3749d4b
Merge pull request #109 from lioncash/file-io-clarifications
...
Eliminate the magic constants in the switch statement in WII_IPC_HLE_Device_FileIO.cpp's Seek function.
2014-03-02 18:29:48 +13:00
Lioncash
3bc082be52
Fix WII_SEEK_END seeking.
2014-02-28 19:56:42 -05:00
Pierre Bourdon
bc844a168f
Merge pull request #100 from Tilka/misc_fixes
...
Misc fixes
2014-02-28 23:08:56 +01:00
Pierre Bourdon
1a7e3b3227
Merge pull request #80 from Tilka/dsp
...
DSP: add inline opcode documentation
2014-02-28 22:50:37 +01:00
Tillmann Karras
892012dc02
Remove own round() implementation
...
1. It's not correct, it rounds x.5 down to x.
2. It is visible across the whole project (!).
3. VS2013 finally supports this:
http://msdn.microsoft.com/en-us/library/dn353646.aspx
http://msdn.microsoft.com/en-us/library/dn329049.aspx
2014-02-28 12:43:23 +01:00
Tillmann Karras
46e7c0657f
Crypto: small cleanup
2014-02-28 12:43:22 +01:00
Tillmann Karras
315a8ba1c0
Various changes suggested by cppcheck
...
- remove unused variables
- reduce the scope where it makes sense
- correct limits (did you know that strcat()'s last parameter does not
include the \0 that is always added?)
- set some free()'d pointers to NULL
2014-02-28 12:43:20 +01:00
Tillmann Karras
1a428de189
x64FPURoundMode: move things around a bit
2014-02-28 12:28:21 +01:00
Tillmann Karras
6914eca167
Fix various warnings reported by clang
...
- mostly remove unused variables
- rename some generic JIT identifiers
2014-02-28 12:28:19 +01:00
Pierre Bourdon
ea34ae0a70
Merge pull request #113 from Parlane/fix_wifi
...
Randomise the mac address and store it in the config.
2014-02-28 11:25:29 +01:00
Matthew Parlane
c68cd3a8ea
Randomise the mac address and store it in the config.
...
This stops error 20115 when trying to go online.
2014-02-28 22:53:00 +13:00
Matthew Parlane
e1ec4729b4
Initialise entropy correctly for ssl.
2014-02-27 21:46:14 +13:00
Tony Wasserka
66d1f16f98
Merge pull request #107 from lioncash/tiny-cleanup
...
Tiny cleanup of WII_IPC_HLE.cpp.
2014-02-26 12:46:49 +01:00
Lioncash
d5fd68e4a4
Eliminate the magic constants in the switch statement in WII_IPC_HLE_Device_FileIO.cpp's Seek function.
2014-02-24 15:01:08 -05:00
Lioncash
4094c35203
Tiny cleanup to WII_IPC_HLE.cpp.
...
- Inlined loop vars in statements where possible.
- Eliminate some explicit iterators with foreach loops.
- Kill off some newlines that weren't necessary.
2014-02-24 14:09:42 -05:00
Tillmann Karras
33beaf20f3
PolarSSL: adapt Dolphin to new version
...
- strip down PolarSSL's CMakeLists.txt
- switch to the PolarSSL 1.3 API
- use entropy interface instead of havege (PolarSSL 1.3 has disabled
havege by default because it is "considered unsafe for primary usage")
- add VS2013 .vcxproj file
2014-02-24 16:20:50 +01:00
Lioncash
98d2e76fcc
Unnecessary c_str call in WII_IPC_HLE_Device_es.cpp's OpenTitleContent function.
...
m_ContentFile is a string, so it's kind of pointless to pass a c_str of a string to constructor of a new string.
2014-02-24 08:32:45 -05:00
Lioncash
e71db8fe04
In UCode_AX.cpp in function HandleCommandList() - case CMD_MIX_AUXB_NOWRITE should have 1 being passed, not false, as the aux ID in MixAUXSamples.
2014-02-23 17:22:20 -05:00
Pierre Bourdon
99db9f0fb1
Merge pull request #94 from Tilka/uninitialized
...
Fix struct initialization
2014-02-23 17:07:24 +01:00
Pierre Bourdon
4a569c4449
Merge pull request #97 from delroth/mmio-gpfifo
...
WriteToHardware: Pass through the whole 0xCC008xxx area to GPFifo instead of only 0xCC008000.
2014-02-23 10:20:56 +01:00
Lioncash
e3e78128a2
isSameValue in IR.cpp/.h should be returning a boolean value.
2014-02-23 04:14:57 -05:00
Lioncash
679a1bb2eb
WII_IPC_HLE_Device_usb_kbd.cpp's Update method should return 0, not false, it communicates the wrong intent otherwise.
2014-02-23 04:08:52 -05:00
Pierre Bourdon
86326de6f6
WriteToHardware: Pass through the whole 0xCC008xxx area to GPFifo instead of only 0xCC008000.
2014-02-23 10:01:47 +01:00
Lioncash
8d57f38be7
Purge wx elements of the console.
2014-02-23 03:12:24 -05:00
Pierre Bourdon
c06c8f0ec8
MMIO: Fix a megaderp in the UniqueID function causing handlers to be overwritten by other handlers.
2014-02-23 08:34:05 +01:00
Pierre Bourdon
b8582b00a9
MMIO: Pass the provided high part/low part addrs to handlers in {Read,Write}ToSmaller.
2014-02-23 08:33:27 +01:00
Pierre Bourdon
803c110e30
MMIO: Show the read/write size in invalid handlers.
2014-02-23 08:32:52 +01:00
Lioncash
d45351a43f
Initial removal of the actual console functionality on windows.
2014-02-23 02:01:35 -05:00
Pierre Bourdon
70f3a069f2
Revert "Merge pull request #83 from lioncash/remove-console"
...
This breaks Linux stdout logging.
This reverts commit 7ac5b1f2f8
, reversing
changes made to 9bc14012fc
.
Revert "Merge pull request #77 from lioncash/remove-console"
This reverts commit 9bc14012fc
, reversing
changes made to b18a33377d
.
Conflicts:
Source/Core/Common/LogManager.cpp
Source/Core/DolphinWX/Frame.cpp
Source/Core/DolphinWX/FrameAui.cpp
Source/Core/DolphinWX/LogConfigWindow.cpp
Source/Core/DolphinWX/LogWindow.cpp
2014-02-23 07:48:06 +01:00
Tillmann Karras
3038bca0a4
JitBackpatch: initialize InstructionInfo to 0
...
DisassembleMov() doesn't always initialize all fields of 'info'.
2014-02-23 04:36:26 +01:00
Pierre Bourdon
311caef094
Merge pull request #25 from Tilka/ppc_fp
...
Fix non-IEEE mode
2014-02-23 04:15:37 +01:00
Tillmann Karras
ee21cbe2d1
Add phire's more accurate DoubleToSingle version
...
This method doesn't involve messing around with the quirks of the x87
FPU and should be reasonably fast. As a bonus, it does the correct thing
for out-of-range doubles.
However, it is also a little slower and only benefits programs that rely
on undefined behavior so it is disabled for now.
2014-02-23 04:13:47 +01:00
Pierre Bourdon
c698c07755
Make DiscIO/ mostly IWYU clean (and fix errors in rest of the project detected by this change).
2014-02-22 23:37:29 +01:00
Pierre Bourdon
83b7bb64aa
Make Common/ mostly IWYU clean (and fix errors in rest of the project detected by this change).
2014-02-22 23:37:29 +01:00
Pierre Bourdon
6d8df311a3
Merge pull request #88 from lioncash/relative-includes
...
Relative includes
2014-02-20 02:08:44 +01:00
Lioncash
24ba058404
Fix the Windows build for the final time.
2014-02-19 19:38:23 -05:00
Lioncash
146b301a91
Fix more header sorting issues in Core/ (now check-includes clean).
2014-02-20 01:01:11 +01:00
Lioncash
eee549f92b
Scope the Windows include directory to only point to Source/Core/.
...
Also fix the Windows build with this change.
2014-02-18 13:21:12 -05:00
Rachel Bryk
b1f77d0191
Save frame skipping option, and allow loading it from game ini too.
2014-02-18 12:25:11 -05:00
Pierre Bourdon
362dec9c7c
Dolphin now builds on Linux with only Source/Core as include dir
2014-02-18 12:18:47 +01:00
Pierre Bourdon
dc1db82f70
Fix Linux build
2014-02-18 12:09:38 +01:00
Lioncash
2afe215271
Convert all includes to relative paths.
2014-02-18 02:19:10 -05:00
Lioncash
3fd87a7636
Second and final pass of clearing out tabs.
2014-02-17 02:19:41 -05:00
Lioncash
d9ce4a892b
Remove the leftover folder for Wii IO bridge. Was removed in the mmio merge
2014-02-16 21:08:32 -05:00
Lioncash
cd8196f5db
Turns out Console.cpp and ConsoleListener.cpp were being built into the Linux builds too. Fixes the build.
2014-02-16 20:55:07 -05:00
Lioncash
ca7bdf1d5d
Remove the embedded Console from the possible logging options.
...
Note I do not mean the Logging window, but the console window.
It's literally rarely, if at all used, and offers less advantages over the built-in logging window (ie. it breaks on different locales: http://i.imgur.com/Cs92tQE.png )
This commit should remove all of the console logging.
2014-02-16 20:40:33 -05:00
Lioncash
6c4ee1753a
Fix some vertical alignments
...
ie. uses spaces for alignment.
2014-02-16 20:12:05 -05:00
Pierre Bourdon
96a66ada2e
Use a pointer instead of a non-const ref in MMIO::Mapping::Read now that compatibility with the old interface is not required anymore.
2014-02-16 19:22:40 +01:00
Pierre Bourdon
92f8d93e96
Remove the old MMIO access "interface".
2014-02-16 19:22:40 +01:00
Pierre Bourdon
5b5dfb384e
MMIO: Port the VideoCommon PE MMIOs to the new interface.
2014-02-16 19:22:40 +01:00
Pierre Bourdon
4129b30494
MMIO: Port the VideoCommon CP MMIOs to the new interface (and provide framework for other video related mappings).
2014-02-16 19:22:40 +01:00
Pierre Bourdon
bdedaa24a9
MMIO: Port the EXI MMIOs to the new interface.
2014-02-16 19:22:40 +01:00
Pierre Bourdon
353c145e64
MMIO: Port the IPC MMIOs to the new interface (and move the IOB handling to IPC).
2014-02-16 19:22:40 +01:00
Pierre Bourdon
a7c1e0d0d7
MMIO: Port the AI MMIOs to the new interface.
2014-02-16 19:22:40 +01:00
Pierre Bourdon
191b447092
MMIO: Port the SI MMIOs to the new interface.
2014-02-16 19:22:40 +01:00
Pierre Bourdon
f34651f48d
MMIO: Port the DI MMIOs to the new interface.
2014-02-16 19:22:40 +01:00
Pierre Bourdon
63990787fd
MMIO: Port the DSP/ARAM/AI MMIOs to the new interface.
2014-02-16 19:22:40 +01:00
Pierre Bourdon
b7a0c34906
MMIO: Port the MI MMIOs to the new interface (and rework that module extensively).
2014-02-16 19:22:40 +01:00
Pierre Bourdon
f1dba04be7
MMIO: Port the VI MMIOs to the new interface.
2014-02-16 19:22:39 +01:00
Pierre Bourdon
a3f95c1e10
MMIO: Port the PI MMIOs to the new interface.
2014-02-16 19:22:39 +01:00
Pierre Bourdon
9fe58d28ba
Starting point for the new MMIO interface
...
Design doc:
https://docs.google.com/document/d/11qcGCWLne1wYvmtFaSrOKZt_vHxXrcWcZsdWJ-MJnyo/edit
The code is currently not used. Migration plan:
1. Implement MMIO access via MMIO::Mapping in parallel to the current
method.
2. Implement all existing MMIO handlers via the new interface.
3. Remove the old hwRead/hwReadWii/hwReadIOBridge code.
4. Implement JIT optimizations for MMIO accesses.
2014-02-16 19:22:39 +01:00
Tillmann Karras
6ae2972444
DSP: add inline opcode documentation
...
While further increasing the table width doesn't make the code any less
ugly, it makes it easy to generate auto-comments in the IDA processor
plugin. Also, use spaces for alignment instead of tabs.
2014-02-16 18:29:53 +01:00
Tillmann Karras
9f462a00a0
DSP: remove redundant expression
2014-02-16 18:18:23 +01:00
degasus
e5eff6bc1a
Remove slowdown warning
...
Now it's shown as "debug" which is disabled by default.
2014-02-16 12:57:17 +01:00
Ryan Houdek
9b57292395
Fix ARM build
2014-02-15 22:05:12 -06:00
Ryan Houdek
77851edc1b
Fix the arbitrary exits. We have to make sure that the block links are cleared entirely.
2014-02-15 20:41:42 -06:00
Ryan Houdek
0a9fd93eda
On block unlinking, wipe the address from the valid links.
2014-02-15 20:23:01 -06:00
Ryan Houdek
d2a90e6eab
If block linking isn't enabled then make sure there isn't a performance hit from getting a block number.
2014-02-15 20:23:00 -06:00
Ryan Houdek
c5b8c65ddc
Initialize linkStatus to false in the ARM JIT cores as well.
2014-02-15 20:23:00 -06:00
Ryan Houdek
22b86e64f5
redo 'jit: change our linking module to be able to handle arbitrary exit addresses'
2014-02-15 20:22:59 -06:00
Pierre Bourdon
cf736cd5df
Merge pull request #73 from lioncash/ArraySize-Cleanup
...
Kill off some usages of the ArraySize macro.
2014-02-15 18:22:28 +01:00
Lioncash
655d22512b
Kill off some usages of the ArraySize macro.
...
This required the use of std::array in some cases.
2014-02-15 02:43:54 -05:00
Matthew Parlane
48798d8d34
Merge pull request #70 from lioncash/fifo-unsigned
...
Kill off some casting in the FifoPlayer.
2014-02-15 20:42:15 +13:00
Lioncash
867d0f01a2
Remove #if 0 statement in lfd() in Jit64/Jit_LoadStoreFloating.cpp
2014-02-14 23:46:09 -05:00
Lioncash
49d6be26cd
Remove dead else branch in StoreFromRegister() in Jit64/JitRegCache.cpp
2014-02-14 23:43:51 -05:00
Lioncash
d42e8817a0
Clean out some old left-behind quantizer stuff in Jit64/Jit_LoadStorePaired.cpp and Jit64/Jit_SystemRegisters.cpp.
2014-02-14 23:32:37 -05:00
Lioncash
c78faafeae
Kill off some silly casting in the FifoPlayer.
...
Also makes more sense conceptually, since it's not like we'll ever have negative frames.
2014-02-14 22:07:12 -05:00
Tillmann Karras
404624bf0b
Turn loops into range-based form
...
and some things suggested by cppcheck and compiler warnings.
2014-02-13 09:05:50 +01:00
Tillmann Karras
2ff794d299
Fix some warnings
2014-02-13 09:02:43 +01:00
Matthew Parlane
88526be3b5
Merge pull request #50 from Parlane/inifile_tidy
...
Fix IniFile to use string& instead of char*
2014-02-13 19:04:27 +13:00
Matthew Parlane
3fe05e0a9f
Fix IniFile to use string& instead of char*
...
Also removes .c_str() usages where found.
2014-02-13 17:06:30 +13:00
Scott Mansell
7062cf8657
Interpeter: Fixed ConvertToDouble to match the manual.
...
Also added some documntation comments.
2014-02-12 23:12:17 +01:00
Tillmann Karras
f6897039c7
Interpreter: fix float conversions
...
Can't use simple casting, otherwise we get the same problems as in Jit64.
2014-02-12 23:12:15 +01:00
Tillmann Karras
db196d8c5b
Jit64[IL]: fix float conversions
...
Floating-point is complicated...
Some background: Denormals are floats that are too close to zero to be
stored in a normalized way (their exponent would need more bits). Since
they are stored unnormalized, they are hard to work with, even in
hardware. That's why both PowerPC and SSE can be configured to operate
in faster but non-standard-conpliant modes in which these numbers are
simply rounded ('flushed') to zero.
Internally, we do the same as the PowerPC CPU and store all floats in
double format. This means that for loading and storing singles we need a
conversion. The PowerPC CPU does this in hardware. We previously did
this using CVTSS2SD/CVTSD2SS. Unfortunately, these instructions are
considered arithmetic and therefore flush denormals to zero if non-IEEE
mode is active. This normally wouldn't be a problem since the next
arithmetic floating-point instruction would do the same anyway but as it
turns out some games actually use floating-point instructions for
copying arbitrary data.
My idea for fixing this problem was to use x87 instructions since the
x87 FPU never supported flush-to-zero and thus doesn't mangle denormals.
However, there is one more problem to deal with: SNaNs are automatically
converted to QNaNs (by setting the most-significant bit of the
fraction). I opted to fix this by manually resetting the QNaN bit of all
values with all-1s exponent.
2014-02-12 23:12:15 +01:00
lioncash
d2038049f5
Replace all include guard ifdefs with "#pragma once"
2014-02-10 18:07:16 -05:00
degasus
532cd44003
Use float to calculate the fps/vps
...
This will round internally, so 59.99 fps will now be shown as 60 fps.
2014-02-10 16:08:03 +01:00
degasus
a51b5f7815
Drop framelimit by fps
...
Framelimit by fps can't be done per coretiming
2014-02-10 16:08:03 +01:00
degasus
f7dc918057
Throttle by coretiming event instead of VI
...
VI isn't called as regular as we want to, so we have to create a new throttling event called regularly by coretiming.
Atm we throttle every 1 ms when we are too fast and skip throttling when we lack 40ms (to avoid fast boosts after slowdowns)
2014-02-10 16:08:03 +01:00
lioncash
f5408c3f52
Clarify an if statement in NetPlayClient.cpp. See: https://github.com/LaurentGomila/SFML/issues/26 .
...
This was simply an error in documentation. It actually returns an sf::Socket::Status enum value as a result.
2014-02-10 09:26:29 -05:00
Matthew Parlane
32bfcc034f
Some tidy up of sprintf to StringFromFormat
...
Includes a small fix to SetupWiiMemory
2014-02-10 17:25:18 +13:00
Lioncash
ebb48d019e
Clean up some struct indentations
...
Also cleaned up the indentations of some variable declarations.
2014-02-09 19:40:11 -05:00
Lioncash
40182a48a5
Cleanup enum indentations.
2014-02-09 16:16:10 -05:00
Pierre Bourdon
e59f770ccb
Revert "Merge pull request #49 from Parlane/sprintf_tidy"
...
Change broke the build on Debian stable.
This reverts commit 28755439b3
, reversing
changes made to 64e01ec763
.
2014-02-09 16:14:13 +01:00
Matthew Parlane
ebff7974c3
Some tidy up of sprintf to StringFromFormat
2014-02-08 14:32:48 +13:00
Matthew Parlane
6b980cbf30
Tidy up SetupWiiMemory
2014-02-07 19:00:34 +13:00
Matthew Parlane
70d2592ffb
Fix warnings found by StringFromFormat having printf style checking.
2014-02-07 01:38:08 +13:00
Lioncash
9ac6e35b5f
Add static and const qualifiers to the maps.
2014-02-06 03:23:13 -05:00
Lioncash
78356ce184
Simplified GetAreaCode() and GetHardwareModel() to simply use a map in comparisons.
2014-02-05 19:59:13 -05:00
Pierre Bourdon
9a24ba343b
Merge pull request #34 from lioncash/geckocode-foreach
...
Change some for+iterator loops in GeckoCode.cpp and GeckoCodeConfig.cpp into foreach loops.
2014-02-05 17:07:40 +01:00
Lioncash
249b00c469
Change the modified parameter in the Clamp function to be a pointer.
...
Makes it easier to identify the one being modified.
2014-02-05 04:04:35 -05:00
Lioncash
6b87a0ef20
Introduce a generic clamp function to clean up some similarly duplicated code.
2014-02-04 20:43:07 -05:00
Lioncash
8039963858
Add const qualifiers to two foreach loop variables for consistency.
...
Also fix a vector include I happened to notice. Should be "<vector>" not "vector"
2014-02-04 19:44:02 -05:00
Lioncash
a73a600343
Fix name conventions of some of the foreach loop variables.
2014-02-04 19:30:46 -05:00
Lioncash
63700ad28a
Change some for+iterator loops in GeckoCode.cpp and GeckoCodeConfig.cpp into foreach loops.
2014-02-04 19:19:48 -05:00
Ryan Houdek
00089433a6
Merge pull request #31 from Sonicadvance1/slowmemfix
...
[JITARM] Fixes an issue in the slowmem path that causes grey THP movies,...
2014-02-04 12:55:43 -08:00
Ryan Houdek
57f86f7f52
[JITARM] Fixes an issue in the slowmem path that causes grey THP movies, and issues of games not working like Mario Kart being incapable of getting ingame. This was due to me forgetting an instruction.
2014-02-04 13:44:26 -06:00
Tillmann Karras
442796b681
Jit64IL: nits
2014-02-04 09:09:06 +01:00
Pierre Bourdon
3363b396af
Merge pull request #23 from lioncash/sorta-large-input-cleanup
...
Larger cleanup to input-related source files (this time using unique_ptr).
2014-02-02 15:11:15 -08:00
Lioncash
3efb0aa5f7
Purely stylistic cleanup of Core/HW/WiimoteEmu/Attachment/* files.
...
Also cleaned up WiimoteEmu.h as well.
2014-02-01 19:13:38 -05:00
Lioncash
557015626a
Introduce the usage of unique_ptr into the InputCommon ControlEmu.h class. Allows for the automatic handling of resource deallocation.
2014-02-01 17:20:35 -05:00
Lioncash
89001accd8
Move two macros that literally doesn't change across all JIT platforms (JITDISABLE and INSTRUCTION_START) and simply have it in the JitBase.h source file. This way the macro is just located in one spot rather than 6 places.
2014-01-30 22:11:39 -05:00
Lioncash
fea3076241
Fix an unused variable within function GetScheduledEventsSummary() in CoreTiming.cpp.
2014-01-30 15:52:27 -05:00
Lioncash
6f74f59427
[Core] Remove an unnecessary pragma directive from EXI_Channel.h.
...
Dolphin uses warning level 3 in VS. This warning is only triggered in warning level 4.
2014-01-25 17:12:59 -05:00
Tillmann Karras
e94a6f07f4
Fix warning
2014-01-25 21:42:44 +01:00
Rachel Bryk
a3d1b9aba7
Increase save state version.
2014-01-24 00:15:56 -05:00
Rachel Bryk
4a81baff3f
Reenable vsync after releasing tab even if frame limit is disabled.
2014-01-19 02:48:59 -05:00
Ryan Houdek
839df31347
Merge of GL-AutoChoose.
...
This branch is the final step of fully supporting both OpenGL and OpenGL ES in the same binary.
This of course only applies to EGL and won't work for GLX/AGL/WGL since they don't really support GL ES.
The changes here actually aren't too terrible, basically change every #ifdef USE_GLES to a runtime check.
This adds a DetectMode() function to the EGL context backend.
EGL will iterate through each of the configs and check for GL, GLES3_KHR, and GLES2 bits
After that it'll change the mode from _DETECT to whichever one is the best supported.
After that point we'll just create a context with the mode that was detected
2014-01-18 04:11:59 +00:00
skidau
8b53385c54
Added a check for a redundant mov in the fastmem writes code.
...
Fixes issue 6905.
2014-01-13 22:18:19 +11:00
Pierre Bourdon
45f74840d6
Do not fastmem addresses that were constant propagated
2014-01-09 08:28:45 +01:00
Rachel Bryk
48470a20ca
Code cleanup
...
Move enums for max SI and EXI devices to their respective .h file, and rename them.
Use only those enums in BootManager.cpp. Same thing in Movie.cpp
Change one instance of MAX_BBMOTES to MAX_WIIMOTES in Movie.cpp, since movies do not support balance board.
2014-01-08 20:36:27 -05:00
Jasper St. Pierre
3046d0e701
NetPlay: Sync CPU engine between NetPlay clients/servers
2014-01-08 19:42:02 -05:00
Rachel Bryk
216f4c927a
Fix copy and paste error in BootManager.cpp.
2014-01-08 19:37:51 -05:00
Rachel Bryk
509ec9cc99
Bootmanager.cpp fixes and clean up.
...
Some settings that bootmanger reads from game ini can be changed while a game is running, so we don't have to revert these back to what they were when starting the game, unless they were actually changed by the game ini.
Fix signed/unsigned warnings that pauldacheez pointed out.
2014-01-02 16:36:06 -05:00
Rachel Bryk
450cacd092
Allow pad settings to be set via game ini.
2014-01-02 13:13:59 -05:00
Rachel Bryk
7a818e05ef
I've never claimed to be a good coder.
2014-01-01 07:45:20 -05:00
Rachel Bryk
8f34085172
Really fix android build.
2014-01-01 07:39:50 -05:00
Rachel Bryk
777c62c67a
Fix android build.
2014-01-01 07:04:30 -05:00
Rachel Bryk
8a765f8749
Allow wiimote source to be set via game ini.
2014-01-01 06:59:01 -05:00
Jasper St. Pierre
34692ab826
Remove unnecessary Src/ folders
2013-12-31 14:03:19 -05:00
Jasper St. Pierre
43e618682e
Convert all vcxproj files to UNIX line endings
2013-12-31 14:03:18 -05:00
Jasper St. Pierre
b6ad8bd712
HW: Remove unnecessary "../HW/" in include paths
2013-12-31 14:03:17 -05:00
Jasper St. Pierre
70d4d973f9
TAP_Win32: Remove unnecessary Memmap.h include
2013-12-31 14:00:06 -05:00
Ryan Houdek
c8cdc81ce3
[ARM] Implement tw/twi
2013-12-28 04:43:07 -06:00
Jordan Woyak
620bf0b304
Eliminate some Wiimote acceleration logic redundancy.
...
Yeah, I eliminated a total of 3 LSB of accel data in the process, but no one will notice.
2013-12-27 16:35:11 -06:00
Jordan Woyak
c5695c987b
Revert "Reading shake force from calibration rather than a constant"
...
It didn't make sense. The math was nonsensical. Calibration data was somehow applied twice. I don't even.
This reverts commit 4dad640d5f
.
Fixed issue 6702.
2013-12-27 16:00:59 -06:00
Jordan Woyak
4d1f113ab1
Fix some emulated wiimote turntable stupidness (DJ Hero controller). Happy Christmas!
...
Fixed issue 6865.
2013-12-25 15:33:33 -06:00
Rachel Bryk
04b87e1dcc
Change a PanicAlert to OSD message.
2013-12-23 07:18:28 -05:00
Ryan Houdek
42217fbd75
Fix the extended information status line that shows emulated mhz + idles skipped.
2013-12-21 17:58:04 -06:00
degasus
5eab3239bb
Jit64: load second operator for double intrutions
...
SSE do support non-vector instructions, but they _all_ overwrite the dest register
if the src location isn't a register. (wtf?)
So we have to load the src into a temporay register :(
2013-12-17 08:49:06 +01:00
degasus
2fad2a3e88
Revert "Jit64: use AVX instructions in some places"
...
and the fixes afterwards
This reverts commit ff91789773
.
This reverts commit bcefa880e4
.
This reverts commit 710a0ff435
.
This reverts commit ddaf29e039
.
2013-12-17 08:49:06 +01:00
comex
1b617c736c
Add a non-tiny warning about CPUs that will silently desync.
2013-12-16 22:41:52 -05:00
comex
d619ccee21
Remove the flawed, unused attempt to manually emulate Gecko codes.
...
Parsing Gecko codes (in any manner) is much like parsing HTML with regex
- that w̷a̶y̸ l̵i̷e̴s̵ m̴̲a̵͈d̵̝n̵̙ę̵͎̞̼̙̼͔̞͖͎̝s̵̨̬̱͍͓͉̠̯̤͙̝s̷͍̲̲̭̼͍͎͖̤̭̘. Luckily, with the embedded codehandler.bin,
the monstrosity may remain at only one implementation. Anyway, removing
the inserted_asm_codes thing probably speeds up the interpreter a bit.
2013-12-16 22:27:13 -05:00
Lioncash
e0aa674c72
Minor const-correctness for some functions in FifoPlayer and some AudioCommon headers.
2013-12-11 08:43:58 -05:00
Ryan Houdek
db9c586356
Revert "jit: change our linking module to be able to handle arbitrary exit addresses"
...
This shouldn't cause issues, but does in Windows. Revert for now.
This reverts commit 1aa06b8fa4
.
2013-11-25 16:56:04 -06:00
Ryan Houdek
6f73162df4
[ARM] Implement the Acid test in the JIT core. This test is currently broken in JIT64 since it uses cr instead of cr_fast.
2013-11-24 10:51:07 +00:00
skidau
efeb0096c9
Changed the DSP ROM warning from a panic alert to an on-screen message.
2013-11-22 14:55:25 +11:00
Ryan Houdek
ea9ac07ec9
Merge branch 'master' into jit_exit_addresses
2013-11-21 21:17:58 -06:00
Tillmann Karras
ff91789773
Jit64: really fix fmrx regression
...
This is more tricky than I thought!
2013-11-21 05:31:55 +01:00
degasus
011fe86d01
jit64: add regcache option IsBound
...
Lots of x86 instructions are different on memory vs registers.
So to generate code, we often have to check if a ppc register is already bound to a x86 register.
2013-11-21 05:16:58 +01:00
Tillmann Karras
bcefa880e4
Jit64: fix fmrx regression
...
Revision ddaf29e039
introduced a register
corruption bug (#6825 ). Since fmrx/MOVSD only modifies ps0 but we save
both ps0 and ps1 in one xmm register, not loading the previous value
when binding to a x64 register trashed ps1.
But hey, a good opportunity to shave off one more instruction ;)
2013-11-20 21:30:49 +01:00
comex
4f13f6ecaa
"warning fixes" commit introduced warnings; fix them. (And I refuse to use PRI macros.)
2013-11-18 14:34:21 -05:00
Tillmann Karras
b863e40677
Merge branch 'ppc_fp'
2013-11-18 19:31:09 +01:00
Matthew Parlane
e805bf6068
Only add real HID devices to HID list.
2013-11-17 21:14:22 +13:00
Jordan Cristiano
714633f311
Fixed console commands not registering. Code cleanup.
2013-11-14 22:23:55 -05:00
Jordan Cristiano
0fced651a5
More warning fixes, OSX build fix.
2013-11-14 03:11:40 -05:00
Jordan Cristiano
c3069eda28
build fix
2013-11-14 02:27:53 -05:00
Jordan Cristiano
39a4d4329d
more warning fixes
2013-11-14 02:19:15 -05:00
Ryan Houdek
63a9dff3bb
Windows requires memory to be included to use unique_ptr
2013-11-13 12:51:49 -06:00
Ryan Houdek
652ef24a2e
Remove our two instances of auto_ptr and replace it with unique_ptr. auto_ptr has been deprecated.
2013-11-13 11:44:04 -06:00
Tillmann Karras
038ffea369
Jit64: don't flush clean FPRs
2013-11-13 08:03:18 +01:00
degasus
d78c8c21a2
jit64: enable fp instructions faddx fsubx fdivx fdivsx
...
all of them are now accurate enough as we handle non-ieee floats correctly
2013-11-13 06:26:50 +01:00
Tillmann Karras
cd069fdce1
Interpreter: software-based flush-to-zero
...
bDAZ is now called bFlushToZero to better reflect what it's actually
used for.
I decided not to support any hardware-based flush-to-zero on systems
that don't support this for both inputs _and_ outputs. It makes the code
cleaner and the intersection of CPUs that support SSE2 but not DAZ
should be very small.
2013-11-13 06:24:58 +01:00
Tillmann Karras
466a7afde3
Interpreter: support non-IEEE mode emulation
...
v2: fix fxsave on visual studio, thx @ rodolfo for this patch
2013-11-13 06:24:57 +01:00
Tillmann Karras
710a0ff435
Jit64: don't unnecessarily load registers
2013-11-13 06:16:24 +01:00
Tillmann Karras
ddaf29e039
Jit64: use AVX instructions in some places
2013-11-13 06:15:56 +01:00
Tillmann Karras
22b47d5b9c
Jit64: Fix and re-enable psq_l for W=1
...
Patch by konpie:
https://forums.dolphin-emu.org/Thread-code-bug-report-based-on-3-0-735
2013-11-13 05:58:28 +01:00
Tillmann Karras
2fecb033be
Jit64: micro-optimize ps_sel
...
Adapted from a patch by konpie:
https://forums.dolphin-emu.org/Thread-code-bug-report-based-on-3-0-735
2013-11-13 04:45:43 +01:00
Tillmann Karras
6f5650f82e
Fix Bluetooth warnings
2013-11-13 04:01:24 +01:00
Tillmann Karras
268bdf19ce
Fix format string warnings
2013-11-13 04:01:16 +01:00
Ryan Houdek
39ad5a2f7a
Disable Fastmem on JIT64IL. JIT64IL is completely incompatible with Fastmem and doesn't need it since it has its own way to speed up memory accesses. This fixes the JIT64IL core, which I totally didn't break but was blamed for.
2013-11-12 19:37:09 -06:00
Ryan Houdek
a72b3ca20c
[ARM] Don't leave my test code in the JIT core.
2013-11-12 04:22:42 +00:00
Ryan Houdek
56557c845a
[ARM] Fix NEON emitter encodings.
2013-11-12 01:01:54 +00:00
Shawn Hoffman
33d56f50a4
Re-plumb window handle to the dsound backend.
...
Reverts parts of commit 71c01d83ab614b9e0c421d03ca694713dbabff48.
Fixes issue 6800
2013-11-07 09:24:56 -08:00
Lioncash
c33036aa01
Fix the filter for some files in the Core VS project related to the JitIL. They were in the root of the project. They should actually be in their own filter named JitILCommon.
2013-11-07 01:33:32 -05:00
degasus
1aa06b8fa4
jit: change our linking module to be able to handle arbitrary exit addresses
...
And also do this for all JIT backends...
2013-11-07 06:19:35 +01:00
Pierre Bourdon
ea6fd58b97
Use an unordered_set to track FIFO write adresses
...
Reduces CheckGatherPipe CPU consumption by 40%.
2013-11-07 03:22:32 +01:00
Tillmann Karras
cdc27e46f1
Jit64: implement ps_res
...
This is probably more accurate than it is allowed to be. After all, the
instructions are supposed to be "estimates".
2013-11-07 02:19:20 +01:00
Tillmann Karras
0a2a273a2e
Jit64: simplify ps_sel
2013-11-07 02:02:38 +01:00
Tillmann Karras
201c4c65a5
Jit64: fix typo in ps_sel and re-enable it
2013-11-07 02:02:24 +01:00
degasus
2f7ca688ae
jit64: remove dead code
2013-11-07 01:59:10 +01:00
Tillmann Karras
c29fb22cd4
Jit64: extract frsqrtex as method
2013-11-07 01:59:00 +01:00
Matthew Parlane
897bec1add
[JitIL] No more terrible usage of vectors.
...
This is possible because of C++11.
2013-11-06 22:18:08 +13:00
Ryan Houdek
948ace9546
[ARM] Minor idle skip optimization in bx.
2013-11-05 13:05:39 +00:00
Matthew Parlane
e15f628935
Fix {Read,Write}FileToString.
...
We should be using binary always.
2013-11-05 00:33:41 +13:00
comex
3f1ea21e4f
Fix warnings.
2013-11-03 20:54:06 -05:00
comex
21610c2e54
Run code through clang-modernize -add-override to add 'override' decls.
2013-11-03 20:54:05 -05:00
comex
c579637eaf
Run code through the advanced tool 'sed' to remove trailing whitespace.
2013-11-03 20:54:05 -05:00
comex
965b32be9c
Run code through clang-modernize -loop-convert to create range-based for loops, and manually fix some stuff up.
2013-11-03 20:54:01 -05:00
Rachel Bryk
a250ab0af7
Stop saving random files to ./
2013-11-02 23:47:10 -04:00
skidau
65404e7475
Removed duplicate definition of ibuild within JitIL.h. Fixes JitIL from hanging on x64/x86.
2013-11-01 12:33:29 +11:00
comex
82729fcc8f
Merge remote-tracking branch 'shuffle2/vc12'
...
Conflicts:
Source/Core/Common/Common.vcxproj
Source/Core/Common/Common.vcxproj.filters
2013-10-31 16:51:56 -04:00
comex
4c7bbd96e4
Improve ChunkFile.h:
...
- Add support for std::set and std:pair.
- Switch from std::is_pod to std::is_trivially_copyable, to allow for
types that have constructors but trivial copy constructors. Easy,
except there are three different nonstandard versions of it required
on different platforms, in addition to the standard one.
2013-10-31 15:40:53 -04:00
Ryan Houdek
8e73e8ae5f
Wipe all traces of OpenSSL's AES implementation. Use polarssl instead.
2013-10-27 18:27:07 +00:00
Shawn Hoffman
8dcd13cca7
[vc12] std::min/max requires <algorithm> header. It should be in pch, but just add it for the single file that needs it, for now.
2013-10-26 18:04:00 -07:00
Shawn Hoffman
ccd30024b3
Update to VS2013 and a slew of build-related updates. Notes:
...
* Currently there is no DEBUGFAST configuration. Defining DEBUGFAST as a preprocessor definition in Base.props (or a global header) enables it for now, pending a better method. This was done to make managing the build harder to screw up. However it may not even be an issue anymore with the new .props usage.
* D3DX11SaveTextureToFile usage is dropped and not replaced.
* If you have $(DXSDK_DIR) in your global property sheets (Microsoft.Cpp.$(PlatformName).user), you need to remove it. The build will error out with a message if it's configured incorrectly.
* If you are on Windows 8 or above, you no longer need the June 2010 DirectX SDK installed to build dolphin. If you are in this situation, it is still required if you want your built binaries to be able to use XAudio2 and XInput on previous Windows versions.
* GLew updated to 1.10.0
* compiler switches added: /volatile:iso, /d2Zi+
* LTCG available via msbuild property: DolphinRelease
* SDL updated to 2.0.0
* All Externals (excl. OpenAL and SDL) are built from source.
* Now uses STL version of std::{mutex,condition_variable,thread}
* Now uses Build as root directory for *all* intermediate files
* Binary directory is populated as post-build msbuild action
* .gitignore is simplified
* UnitTests project is no longer compiled
2013-10-26 17:55:38 -07:00
skidau
41f6f6adc9
Added memchecks when the MMU is enabled. Thanks to comex for the fix.
...
Fixes issue 6754.
2013-10-26 14:32:03 +11:00
comex
005af7bd63
Fix build on Mavericks.
2013-10-24 16:39:46 -04:00
Tillmann Karras
69a10869bb
Document FPSCR fields
2013-10-24 01:46:07 +02:00
Rachel Bryk
8aef60f6ca
Allow frame limit to be set via game ini.
2013-10-23 13:45:03 -04:00
Ryan Houdek
887f8e463d
[Android] Fix MIPS compiling.
2013-10-21 09:43:19 -05:00
Lioncash
1f0710caf7
Remove some more includes.
2013-10-19 19:59:03 -04:00
Lioncash
6adf3e37e2
Clean out unnecessary includes from the DSP JIT.
2013-10-19 19:59:00 -04:00
Lioncash
af1b5fe767
Woops forgot to clean out some files in the Jit64IL. All clean now.
2013-10-19 19:58:59 -04:00
Lioncash
80b4cb6cf3
Clean out includes from regular JitCommon.
2013-10-19 19:58:59 -04:00
Lioncash
3360ec013f
Clean out includes in JitILCommon.
2013-10-19 19:58:58 -04:00
Lioncash
22cdc0f56e
Remove some more unnecessary includes, as well as organize a little more.
2013-10-19 19:58:57 -04:00
Lioncash
97cd42f5c3
Remove some unnecessary includes as well as simplifying exisiting ones if possible.
2013-10-19 19:58:56 -04:00
comex
33ee04626d
Don't define __rdtsc if x86intrin.h already does.
2013-10-19 12:40:21 -04:00
Lioncash
81964517d6
Remove a redundant assignment in Init() within PowerPC.cpp. We already assign zero to ppcState.dtlb_last.
2013-10-17 20:38:49 -04:00
Lioncash
b8a947ce0a
Fix a filter in the VS project file for JitILCommon-related files.
2013-10-17 06:36:32 -04:00
comex
de1773affb
Basic precompiled header support for Linux/OS X. Shaves 20-30% off full rebuild time on my system.
2013-10-17 00:07:35 -04:00
Tillmann Karras
e4a81f32d4
Document some UGeckoInstruction fields
2013-10-17 04:59:13 +02:00
Rachel Bryk
f605ea9eeb
[Netplay] Allow a spectator to leave without affecting players.
2013-10-16 21:44:49 -04:00
degasus
5a212a8fe0
jit64: enable faddsx again
...
It was disabled because of issue 182, but as this game depeneds on FPRF, it was just 'fixed' because of the fallback to interpreter (which implements FPRF by default).
Also enables FPRF for this game via GameIni, so that the issue is still workaround.
If there are any regressions because of this commit, please try to enable FPRF in GameIni.
2013-10-17 01:43:16 +02:00
Tillmann Karras
c234dc97c0
Jit64: optimize floating-point/paired-single arith
...
The "else if (b != d)" branch was dead code and only works if b == d. Now
the last else block with two temporary XMM registers is not needed anymore.
2013-10-16 00:52:21 +02:00
skidau
b4513313bb
Increase the trampoline cache size to cater for fastmem writes.
...
Fixes issue 6722.
2013-10-16 09:26:08 +11:00
Lioncash
f3af8ee0f0
Revert "Remove some unnecessary includes."
...
Turns out this explodes on Linux.
This reverts commit c4696568cc
.
2013-10-14 04:05:38 -04:00
Lioncash
c4696568cc
Remove some unnecessary includes.
2013-10-14 04:01:57 -04:00
Ryan Houdek
2f0aca2055
[ARM] Fix the JITILArm and JITArm dispatchers from comex's recent changes.
2013-10-12 08:30:26 +00:00
Ryan Houdek
0556193442
Build fix for previous commit.
2013-10-11 21:45:44 -05:00
comex
78a4dbced8
Remove more unused stuff.
2013-10-09 21:37:29 -04:00
comex
8962b9606b
One shudders to imagine what inhuman thoughts lie behind that code.
...
(Read_Opcode_JIT and Write_Opcode_JIT read/write from unrelated memory
areas.* Rename the latter and refactor.)
*except at the one specific exception handler where it doesn't. I
have no idea what this is supposed to do, but it probably doesn't do
it correctly. For now, remove the exception.
2013-10-09 21:37:29 -04:00
comex
2e32f11f03
Remove "deprecated" and unused function Read_Opcode_JIT_LC.
2013-10-09 21:37:28 -04:00
comex
5847e26d34
Minor JitCache cleanup.
2013-10-09 21:37:28 -04:00
comex
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
Ryan Houdek
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
Ryan Houdek
bd79603c66
[ARM-JitArmIL] Enable a bunch of instructions.
2013-10-09 23:03:39 +00:00
Ryan Houdek
4914665429
[ARM-JITArmIL] Remove the SystemRegisters file.
2013-10-09 20:59:15 +00:00
comex
d5e40bfb01
Don't waste time looking up the block if enableBlocklink is off anyway.
2013-10-09 15:01:55 -04:00
Matthew Parlane
935ed814ea
Missed a accept error handler.
...
Init instead of memset.
2013-10-09 23:35:29 +13:00
Matthew Parlane
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
Ryan Houdek
932586f743
[JitArmIL] Fix Windows build?
2013-10-09 00:55:43 +00:00
Ryan Houdek
4263f062b0
[JITArmIL] Fix JITIL compiling on x86.
2013-10-08 19:16:27 -05:00
Ryan Houdek
ce5dbfe7a7
[ARM-JITArmIL] Begin merging of the two IL cores in to a common source base.
2013-10-08 19:23:37 +00:00
Ryan Houdek
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
Ryan Houdek
0236ba3f86
[ARM-JITARMIL] CMP optimization. Int3 IR. DownCount added.
2013-10-07 23:25:13 +00:00
Ryan Houdek
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
comex
d6f0ecebb4
Fix updating the register even if an exception occurred in MMU mode.
2013-10-07 02:34:38 -04:00
comex
a9908fdf09
Fix build issues on OS X i386.
2013-10-07 02:16:51 -04:00
skidau
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
Matthew Parlane
8722b9cfb5
Missing break for IOCTL_ES_DELETETITLECONTENT
2013-10-06 16:22:44 +13:00
Lioncash
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
skidau
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
comex
6498a77362
Fix storeSingleFloat stack alignment.
2013-10-05 07:56:57 -04:00
skidau
8324510d65
Removed the IOSVersion check (caused some Wii games like Battalion Wars 2 not to boot).
2013-10-05 13:07:40 +10:00
skidau
b7d1c03c8a
Added a check for the IOS version before overriding the OSGetResetCode() function.
...
Fixes issue 6700.
2013-10-05 12:41:59 +10:00
comex
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
comex
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
comex
a91469ffa5
Fix stfd, which was broken in the fastmem writes commit.
2013-10-03 18:22:35 -04:00
comex
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
comex
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
comex
3b0c0e2500
Trap to the debugger properly after BackPatch failure.
2013-10-03 18:21:29 -04:00
Ryan Houdek
fe3d0c9aa2
[ARM] Disable subfic, it prevents Wind Waker from booting into a save game.
2013-10-03 06:43:16 +00:00
comex
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
Lioncash
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
Matthew Parlane
cd99e5e3a6
mtspr fall through to interpreter not needed for basic SPRs
2013-09-30 23:43:11 +13:00
Matthew Parlane
d261dfaf46
Upgrade libusb to 1.0.16
2013-09-30 18:36:54 +13:00
Rachel Bryk
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
comex
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
comex
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
Rachel Bryk
9c53a21c18
Allow setting DSP settings via game ini.
2013-09-28 08:31:28 -04:00
Rachel Bryk
785171abb4
Change iTLBHack to a bool.
...
It is only used as a bool.
Fixes issue 6668.
2013-09-28 08:07:23 -04:00
skidau
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
Lioncash
4542b9fcbb
[Core] Fix a memory leak in NetPlayServer.cpp in function OnData().
2013-09-26 15:42:22 -04:00
Ryan Houdek
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
Ryan Houdek
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
comex
54843ad1e8
Need to reload from XMM0 in this case.
2013-09-25 14:16:20 -04:00
Rachel Bryk
74ee85aaac
Fix linux, attempt 2.
2013-09-25 06:22:11 -04:00
Rachel Bryk
f77b3ccf8a
Fix linux, probably.
2013-09-25 06:13:44 -04:00
Rachel Bryk
93f7622e16
Fix changing wiimotes when starting netplay.
...
AccessWiiMote() crashed for some users. Not sure why...
2013-09-25 05:44:16 -04:00
comex
ebe4448749
Save only the registers that need to be saved rather than going through ProtectFunction.
2013-09-25 03:15:53 -04:00
comex
2a339c926e
Fastmem writes for x86-64.
2013-09-25 03:15:53 -04:00
Ryan Houdek
624c92f97e
[ARM] fresx/fnmaddsx/fselx/frsqrtex/fnmaddx implementations.
2013-09-25 03:00:57 +00:00
Ryan Houdek
ae75f92b2a
[ARM] psq_lx/psq_lux/psq_stx/psq_stux implementations. Four more instructions that JIT64 doesn't have.
2013-09-25 02:22:52 +00:00
Ryan Houdek
357a7707a6
[ARM] ps_cmpu0/ps_cmpu1/ps_cmpo0/ps_cmpo1 implementations.
2013-09-24 21:13:33 +00:00
Ryan Houdek
74bc855f20
[ARM] ps_res implementation.
2013-09-24 21:00:50 +00:00
Ryan Houdek
3b1b0d3fb5
[ARM] ps_div implementation.
2013-09-24 20:46:57 +00:00
Ryan Houdek
94a731b49d
[ARM] fctiwx implementation.
2013-09-24 20:37:10 +00:00
Ryan Houdek
482170c3ea
[ARM] Implement subfic with optimizations stolen from JIT64.
2013-09-24 19:01:03 +00:00
Ryan Houdek
405aa30cb8
[ARM] Fix fastmem...
2013-09-24 18:03:06 +00:00
Ryan Houdek
8e2e5a4e70
[ARM] Have both fastmem and non-fastmem paths for floating point loadstores because fastmem is completely broken garbage on Android at this point in time.
2013-09-24 17:40:12 +00:00
Ryan Houdek
5866859ff0
Screw you comex, this doesn't even make any damn sense.
2013-09-24 17:25:13 +00:00
Ryan Houdek
eb6ed3e42a
[ARM] Change all floating point loadstores to fastmem implementations except lfs since all floating point accesses tend to be to RAM space. lfs tends to get used to write quickly to the gatherpipe and other places, look at the JIT64 implementation to see how to make it quicker.
2013-09-24 05:41:58 +00:00
comex
29dc253fde
Improve context structure handling on non-Windows.
...
Instead of copying data into and out of a fake CONTEXT structure with
only a few entries, use the platform specific structure directly with a
typedef and macros. This is needed because fastmem writes need to be
able to access any register from BackPatch. It adds a fair number of
repetitive defines, but it's better than the alternative.
2013-09-24 01:38:27 -04:00
comex
4cdce55615
Don't define _M_IX86 on ARM(!).
...
Also define _M_* in a common location, and clean up code that these
changes break (including DSPJit files that assume X86 yet are compiled
on ARM for some reason...)
2013-09-24 01:30:41 -04:00
comex
2f384c75d2
Only include scmrev.h from Version.cpp.
...
This way less code has to be rebuilt whenever that file gets
regenerated.
2013-09-24 01:14:56 -04:00
Scott Mansell
0696fc93b2
Merge branch 'fix-field-ordering'
...
Fixes 6387
Closes 6635
2013-09-24 13:47:20 +12:00
Ryan Houdek
41ab4a2275
Nevermind the previous commit, SafeLoadToEAX already calls in to UnsafeLoadToEAX if fastmem is enabled. This one just tidys up the code.
2013-09-24 01:40:19 +00:00
Ryan Houdek
aa41978834
Enable fastmem for the lfs instruction for unix and OSX as well.
2013-09-24 01:34:08 +00:00
Ryan Houdek
3fe8134f3b
[ARM] lfsux/lfdx/lfdux/stfsx/stfsux/stfdx/stfdux implementations.
2013-09-24 01:17:24 +00:00
Rachel Bryk
1745bfdc45
Fix crash in gc games in netplay.
2013-09-23 11:07:15 -04:00
Rachel Bryk
0bdef3932f
Automatically connect the appropriate wiimotes in netplay. Extensions must still be set manually.
2013-09-23 02:56:17 -04:00
Scott Mansell
440353a3a1
Remove all refrences of field ordering from video backends.
...
They were unused.
2013-09-23 18:29:31 +12:00
Scott Mansell
4d3c41c8a2
Fixed issues with feild ordering.
...
This commit fixes issues with PAL games which use the incorrect feild
ordering.
We move all code that deals with indivudal fields from the indivudal
video plugins and VideoCommon and make VideoInterface always pass in
the start address of the whole XFB into VideoCommon.
2013-09-23 16:31:27 +12:00
comex
c8c83f7b8a
Remove FifoQueue iterator and RemoveThreadsafeEvents.
...
No point making a whole iterator class for the sake of a function that
doesn't need to exist.
2013-09-22 23:14:42 -04:00
Rachel Bryk
0a093cf1b9
Why do compilers assume i don't know order of opperations? :(
2013-09-22 22:01:25 -04:00
Rachel Bryk
12e7c22006
Fix recording netplay with wiimote.
2013-09-22 17:32:11 -04:00
comex
80b14e80b5
Fix crash when a player leaves in NetPlay.
...
The player ID was being written as int and read as PlayerId (u8).
2013-09-22 16:12:16 -04:00
comex
c3b9f3556f
Make CoreTiming's threadsafe events lock-free.
...
Not sure if this actually helps in practice, but might help in
pathological cases, and almost certainly can't hurt.
2013-09-22 16:08:01 -04:00
comex
6209067daa
Fix stack misalignment fix.
2013-09-22 15:48:27 -04:00
Rachel Bryk
f3469c16a5
Merge branch 'wiimote-netplay'
...
Conflicts:
Source/Core/Core/Src/NetPlayClient.cpp
Source/Core/Core/Src/NetPlayClient.h
Source/Core/Core/Src/NetPlayProto.h
Source/Core/Core/Src/NetPlayServer.cpp
Source/Core/Core/Src/NetPlayServer.h
Source/Core/DolphinWX/Src/NetWindow.cpp
Source/Core/DolphinWX/Src/NetWindow.h
2013-09-22 14:27:52 -04:00
Rachel Bryk
75129dc3a7
Merge branch 'to-merge-after-4.0'
2013-09-22 10:58:24 -04:00
Pierre Bourdon
1f95a294cd
Add the new 'Clean' themes from MaJoR and default to Clean by changing the name of the config key (yes, hack)
2013-09-22 16:00:56 +02:00
Scott Mansell
4758ef9a9e
Merge commit 'fa8a4cdbb57e'
2013-09-22 15:25:10 +12:00
LPFaint99
95aac4ff68
if a memcard is set to read only, fail more gracefully by reporting when writes to the file fail instead of saying that the file does not exist.
2013-09-20 12:08:58 -07:00
Ryan Houdek
85f067780a
[ARM] Reenable flush per instruction with FPR cache. Something is still very wrong.
2013-09-19 02:08:20 +00:00
Ryan Houdek
930f997f04
[ARM] Fix and optimize mtcrf.
2013-09-19 02:08:19 +00:00
Ryan Houdek
1b1b5d2100
[ARM] MicroOps in the branching instructions.
2013-09-19 02:08:19 +00:00
Ryan Houdek
5158aea4dc
[ARM] Fix misuse of RBIT in crXXX, meant to use MVN.
2013-09-19 02:08:19 +00:00
Rachel Bryk
dc73222bfc
Remove suggestion to restart dolphin if a wiimote movie desyncs, since it's no longer necessary.
2013-09-18 21:51:37 -04:00
comex
ae607ea1e9
Fix missing md5thread.detach()
2013-09-18 21:48:23 -04:00
Ryan Houdek
452fd84bbd
[ANDROID] Fix ARM JIT. Is due to Android using softfp instead of hardfp.
2013-09-18 17:21:22 -05:00
Lioncash
197b317357
Fix indentation in function PSO_MakeSaveGameValid() in GCMemcard.cpp.
...
Also move the iterator variable for a for loop into the loop statement in function CARD_GetSerialNo()
2013-09-17 21:27:37 -04:00
Ryan Houdek
39a8645ffc
[ARM] Fix the FPR cache to not have to dump registers after every instruction. Add mullwox instruction.
2013-09-17 22:08:23 +00:00
Ryan Houdek
302e9c891b
[ARM] crand/crandc/creqv/crnand/crnor/cror/crorc/crxor/mcrf/mfcr/mtcrf/mtsr/mcrxr/mfsr implementations.
2013-09-17 11:00:16 +00:00
Ryan Houdek
dcf74ef2b3
[ARM] Renables load instructions with update.
2013-09-17 11:00:15 +00:00
Ryan Houdek
1529bb48c8
[ARM] Flush the fpr cache between every instruction. Do this until I figure out what is destroying the FPR register states.
2013-09-16 15:44:41 +00:00
Ryan Houdek
9b9526fba2
[ARM] Add dcbt/dcbtst/dcba noops.
2013-09-16 15:13:37 +00:00
Ryan Houdek
98fb4c146e
[ARM] ps_sel implementation.
2013-09-16 14:05:50 +00:00
Ryan Houdek
cba2dd01bc
[ARM] Remove extraneous BKPT from ps_rsqrte.
2013-09-16 13:39:02 +00:00
Ryan Houdek
a0a0c526ae
[ARM] ps_rsqrte implementation.
2013-09-16 12:59:34 +00:00
Ryan Houdek
5a9cb84ae2
[ARM] ps_nmadd/ps_nmsub implementations.
2013-09-16 12:03:08 +00:00
Ryan Houdek
b7f47bc2e1
[ARM] rlwnmx implementation.
2013-09-16 11:53:22 +00:00
Ryan Houdek
43f2313ef9
[ARM] Implement ps_msub. Minor optimizations.
2013-09-16 11:53:21 +00:00
Ryan Houdek
0bcc20ca5b
[ARM] fcmpo/fcmpu implementations.
2013-09-16 08:57:51 +00:00
Ryan Houdek
c56ecce840
[ARM] fctiwzx implementation. This isn't implemented in JIT64 and it is unstandeable why it isn't.
2013-09-16 07:49:16 +00:00
Pierre Bourdon
24e9aedc14
Merge branch 'global-user-directory'
...
Please read https://wiki.dolphin-emu.org/index.php?title=Controlling_the_Global_User_Directory
for documentation about this feature.
Thanks to neobrain and RachelB for their work on this change, and thanks to
everyone who helped test it.
2013-09-14 19:24:27 +02:00
Pierre Bourdon
4ef5624f1f
Change the name of INI options for memcard paths and NAND path to make migrating User directory from non-global to global easier
2013-09-14 17:46:41 +02:00
Pierre Bourdon
501eafb407
Overlay local gameinis over global gameinis instead of copying.
...
Huge megacommit because a lot of things needed to be modified to make this
possible.
2013-09-14 17:46:41 +02:00
Ryan Houdek
e56071f2be
[ARM] slwx/srwx/srawx implementations.
2013-09-14 09:07:34 +00:00
Ryan Houdek
53498dafeb
[ARM] fmaddsx and fmaddx implementations.
2013-09-14 05:52:09 +00:00
Ryan Houdek
be4277e8a1
[ARM] stmw implementation.
2013-09-14 05:16:18 +00:00
Ryan Houdek
c211d06ad2
[ARM] stfd and stfdu implementations.
2013-09-14 05:09:46 +00:00
Ryan Houdek
6fe86f1fd1
[ARM] cntlzwx implementation.
2013-09-14 04:29:37 +00:00
Ryan Houdek
ef2ea31eac
[ARM] ps_madds0 and ps_madds1 implementations.
2013-09-14 04:12:57 +00:00
Pierre Bourdon
6bdb6585d6
Overlay the user Maps/ over the shared one to avoid copying files
2013-09-14 06:08:29 +02:00
Rachel Bryk
dfcef6890e
Use global user directory on windows.
...
Can override by setting HKCU\Software\Dolphin-emu\LocalUserConfig to true.
2013-09-14 06:08:29 +02:00
Ryan Houdek
4512813cf9
[ARM] lfdu and stfsu implementations.
2013-09-14 04:00:40 +00:00
Ryan Houdek
0ae8fa964d
[ARM] lfsu implementation.
2013-09-14 03:51:32 +00:00
Ryan Houdek
aaf8e92f78
[ARM] Fixes srawix implementation.
2013-09-14 03:00:33 +00:00
Jasper St. Pierre
f830b85d10
NetPlayServer: Drop all the pads for a client when she disconnects
...
This makes intuitive sense, and prevents issues with users stealing
up all the pads and requiring admin intervention to participate.
2013-09-13 21:33:11 -04:00
comex
0040e66282
Merge branch 'geckoos-fix'
...
Fixes issue 6551.
2013-09-13 18:18:51 -04:00
comex
e15e30602c
Fix HLE_HOOK_START in the interpreter.
2013-09-13 18:18:20 -04:00
comex
e62bc44f15
Use d01f1bad for the gameid check in RunCodeHandler rather than the actual ID.
...
This avoids conflict with the icache hack. codehandleronly.s does not
actually use the gameid, so it shouldn't matter.
2013-09-13 18:14:56 -04:00
comex
e6cd3b3283
Fix placement of HLE::Patch to not get overwritten by HLE::PatchFunctions.
...
(This applies to the existing HBReload hook, which would be erased in
various circumstances depending on the type of file loaded.)
2013-09-13 15:31:51 -04:00
comex
a316e2f182
Hook the Gecko codehandler to invalidate the icache.
...
The codehandler is broken and does not do this itself. This is a hack,
but a lot simpler than the alternatives.
2013-09-13 15:31:51 -04:00
comex
354b205dec
Return correct value to fix libogc's IOS launch sequence.
2013-09-13 15:31:50 -04:00
comex
1f8237c570
Fake ticket views for missing IOS title.
2013-09-13 15:31:50 -04:00
comex
868ab1918b
Reset es_inuse upon Reset.
2013-09-13 15:31:50 -04:00
comex
39a524f47d
Returning false from an IPC_HLE method should not produce an INFO_LOG.
...
It's commonly used to delay replying to a message and is in no way an
error.
2013-09-13 15:31:50 -04:00
Ryan Houdek
1680f27739
[ARM] Disable loadstorepaired instructions when fastmem is disabled.
2013-09-12 23:07:19 -05:00
Ryan Houdek
c1ddeacc9d
[ARM] Removes extraneous fpr.Flush
2013-09-12 10:31:29 +00:00
Ryan Houdek
aa8f0c2ca4
[ARM] Fixes ps_madd implementation.
2013-09-12 10:30:52 +00:00
Ryan Houdek
8882d27689
[ARM] Fixes the ps_merge00 and ps_merge10 implementations. They both had the potential to overwrite the source registers in the moves.
2013-09-12 10:17:27 +00:00
Ryan Houdek
749b62fcd9
[ARM] Fixes orcx implementation.
2013-09-12 09:55:55 +00:00
Ryan Houdek
e1d510c2dc
[ARM] Disables loadstores with update because they are broken.
2013-09-12 09:40:10 +00:00
Ryan Houdek
2c33bab1a6
[ARM] lfsx implementation.
2013-09-12 07:52:19 +00:00
Ryan Houdek
fa5499e046
[ARM] Disable lmw when fastmem is disabled.
2013-09-12 02:51:38 -05:00
Glenn Rice
acbdcc8ea0
Use the POLARSSL_LIBRARY variable to set the link library. This fixes a
...
possible linkage issue when multiple versions of the library are around.
2013-09-11 22:09:49 -05:00
comex
b9c1af04ad
Replace the one use of CompileTimeAssert with static_assert (already used elsewhere).
2013-09-11 20:58:47 -04:00
comex
9ee50a2730
Merge branch '6584'
...
Fix for XP and lifetime issues on Mac. Fixes issue 6584.
2013-09-11 20:47:27 -04:00
Jordan Woyak
fde3815d34
Replace ARRAYSIZE macro with another ugly macro. At least this will throw an error for a non-array and won't conflict with Windows macro names.
2013-09-11 19:19:36 -05:00
Jasper St. Pierre
2b10142b4f
Remove a bunch of old HLE junk
...
This hasn't been used since 2008
2013-09-10 22:35:52 -04:00
comex
56686666d6
Fix ES_DECRYPT.
...
ES_DECRYPT is usually called with the in IV parameter equal to the out
IV parameter. Dolphin was preemptively zeroing out the out buffer,
causing it to read zeroes for the IV. (Also be more correct when those
parameters *aren't* equal.)
Dolphin now has the dubious honor of having an exploit (smashstack) work
in it. It crashes in Project M, though.
2013-09-10 17:09:37 -04:00
comex
4add0f55e0
Fix SDIO HLE writing garbage to memory.
...
When servicing a write-register request, it wrote the contents to the
register offset plus 0x8d070000, which corresponds to the actual
hardware registers, presumably in case the application wanted to read
them directly rather than with a read-register request. WriteToHardware
doesn't handle cached writes to registers, so it decided the address was
RAM, applied RAM_MASK, and happily wrote the register contents to
0x81070000, causing random corruption. Since the PPC does not normally
have access to those registers, there is no reason to be doing this in
the first place. Use a member to store these values instead.
(Also add a proper DoState.)
2013-09-09 23:57:51 -04:00
Rachel Bryk
0d341e9f28
[NetPlay] Fix copy and paste error.
2013-09-09 03:12:42 -04:00
Rachel Bryk
772046647a
Revert "Revert "NetPlay: Use the correct pad mappings for rumble""
...
This reverts commit 06140e8083
.
2013-09-09 03:09:45 -04:00
comex
06140e8083
Revert "NetPlay: Use the correct pad mappings for rumble"
...
This reverts commit 92c846de45
.
It breaks NetPlay entirely for me.
2013-09-09 02:39:28 -04:00
comex
fe0a450ee4
Don't request authentication (aka I should actually test before committing).
2013-09-08 19:32:14 -04:00
comex
22d9331b96
Improve IOdarwin -
...
Add requestAuthentication, which might help someone who can't sync, and
better error reporting.
2013-09-08 18:15:49 -04:00
Ryan Houdek
4146e1f3d6
[ARM] Implement psq_st. Optimizations in psq_l and fix all the remaining bugs...except clamping within the max value range of the value. Causes some minor visual effects mostly.
2013-09-08 21:56:17 +00:00
Jasper St. Pierre
92c846de45
NetPlay: Use the correct pad mappings for rumble
...
Rename the functions around so we don't get confused again, too.
2013-09-08 13:54:05 -04:00
Ryan Houdek
ba0c52b104
[ARM] Optimization to psq_l, no need to push/pop regs anymore. Implement support for single float loading, gives a decent speedup to Ikaruga in menus and game.
2013-09-08 08:18:34 +00:00
Ryan Houdek
e5b5713d70
[ARM] Optimize that fastmem load/stores minimally.
2013-09-08 07:37:03 +00:00
Ryan Houdek
2126f405e0
[ARM] 1 instruction optimization for psq_l
2013-09-08 07:25:59 +00:00
Ryan Houdek
e6af4970d8
[ARM] Use NEON for loading the values from psq_l, gives a minimal performance increase. This change also begins a new NEONXEmitter for having cleaner support for NEON.
2013-09-08 07:07:15 +00:00
comex
8b4f0ef034
IODummy needs it too.
2013-09-07 16:17:00 -04:00
comex
b31502893f
Fix lifetime issues in IOWakeup.
2013-09-07 16:13:39 -04:00
comex
f4586570ac
Use SetEvent instead of CancelIoEx for XP compatibility.
2013-09-07 15:43:17 -04:00
Ryan Houdek
31b69c53f7
[ARM] Implement psq_l for 2x float loads. Couldn't find a game using quantized loads. Huge speed boost to Ikaruga and THP movies with this one.
2013-09-07 17:44:10 +00:00
Ryan Houdek
614a7c2081
[ARM] Clean up some host side register allocations I missed.
2013-09-07 17:44:10 +00:00
Rachel Bryk
33fb1b562f
Move some code from NetPlayClient.h to NetPlayProto.h, and only include that outside of NetPlay.
2013-09-07 00:27:35 -04:00
Matthew Parlane
d25a8bb6cb
Fix reply after shutdown error.
...
Fixes Issue 6577
2013-09-07 13:07:00 +12:00
Ryan Houdek
67c65831bc
[ARM] Make fnabsx and ps_nabs quicker. Sleep deprivation got the better of me.
2013-09-07 00:35:12 +00:00
Ryan Houdek
ef05a14757
[ARM] Clean up FPR cache. Rapid fire floating point instruction implementations. Adds 13 new instructions.
2013-09-07 00:19:32 +00:00
comex
cd7b97f767
Make JITDISABLE not defeat grep.
2013-09-05 18:38:47 -04:00
Rachel Bryk
3baab41cf4
Allow input display to work with netplay even when not recording.
2013-09-05 16:09:56 -04:00
skidau
b2657f6a9b
Re-added the HLE code that creates the cdb.vff file on first launch of the Wii sysmenu.
...
Revert "Remove HLE_IPC_CreateVirtualFATFilesystem as it no longer takes 3 minutes to LLE like the comment says."
This reverts commit 5d47fd1dde
.
2013-09-05 21:29:04 +10:00
comex
2fb0147967
Merge branch 'comex-wiimote-fixes'
...
Should fix issue 6574.
2013-09-05 06:13:33 -04:00
Ryan Houdek
a7f244e96d
Revert "Revert "[NetPlay] Make the Memory Card A/B setting sync across netplay.""
...
This reverts commit 5696da0b3e
.
JMC messed up, it wasn't due to this commit.
2013-09-04 19:16:28 -05:00