magumagu
43d56febc4
JIT: use fastmem loads in MMU mode.
...
Even in games that require MMU mode, loads outside the area specified by
the BAT are rare, so fastmem is a substantial improvement.
All of the interesting changes are in the backpatch handler, to make it
generate DSI exceptions correctly.
2014-12-12 22:08:46 -08:00
skidau
6fb89e3b77
Fixed the Y button (typo) on the GC adapter.
2014-12-13 16:14:18 +11:00
skidau
1f41c3c2d5
Fixed the non-responsive d-pad on the GC Adapter.
...
Fixed -Wmissing-declarations and -Wshadow warning (thanks rohit-n).
2014-12-13 15:04:03 +11:00
Pierre Bourdon
4747cc7a15
Fix DSP CMPAR disassembly
...
Previously the two operand register selection bits were inverted, causing "CMPAR AC1, AX0.H" to be disassembled as "CMPAR AC0, AX1.H".
DSP RE is always fun: on the one hand Nintendo does a lot of stupid shit, so anything weird could be a legitimate bug of the UCode that is not supposed to make any sense. On the other hand, Dolphin *also* does a lot of stupid shit, so there's always that doubt.
Note: completely untested change - done with the GH text editor, just to show you how much I care :) . These operand descriptions are only used for disassembly, so no real behavior change is expected.
2014-12-13 04:14:51 +01:00
skidau
297ef16745
Merge pull request #1678 from skidau/GC-Adapter
...
Added GameCube Adapter support
2014-12-13 12:06:17 +11:00
Rohit Nirmal
b030d29067
Silence some -Wswitch-default warnings.
2014-12-11 22:23:05 -06:00
skidau
aaa2dca554
Merge pull request #1684 from skidau/mmu-blocklink
...
Enable block-linking with MMU
2014-12-12 13:51:39 +11:00
skidau
110d079c1e
Enable block-linking with MMU. Blocks that cause an ISI exception are not linked.
2014-12-12 13:25:51 +11:00
Lioncash
815c29f6f4
Merge pull request #1682 from JosJuice/volumehandler-return
...
VolumeHandler: Return success value
2014-12-11 20:38:43 -05:00
skidau
fe67230663
Merge pull request #1670 from lioncash/array
...
FifoRecorder: Use std::vector for m_Ram and m_ExRam
2014-12-11 14:26:09 +11:00
skidau
30b34f3b2e
Moved the GC Adapter processing under "Standard Controller" as it appears the adapter does not work with controllers other than the standard controller (pads, bongos, some dance mats).
2014-12-11 14:06:35 +11:00
skidau
8fdd04e647
Fixed wireless GC controller detection.
...
Made the controller update thread-safe.
Added pad origin to wired and wireless pads only.
2014-12-11 11:15:36 +11:00
JosJuice
16f3970c79
VolumeHandler: Return success value
2014-12-10 22:25:02 +01:00
skidau
344c43cc74
Retrieved the endpoint addresses of the GC Adapter via the descriptor.
2014-12-10 21:35:30 +11:00
skidau
8d4a47d40c
Added GameCube Adapter support.
...
The libusb driver must be installed on the adapter (e.g. zadig can be used to install the driver in Windows). GameCube pad controllers are supported and will override the current input device assigned to the port. GameCube controller buttons are auto-configured and cannot be re-assigned. Rumble is supported. Hotplug is supported while playing a game. If a controller is unplugged from the adapter, Dolphin will fallback to using the host input device on that port. If a port on the adapter is unused, Dolphin will use the host input device for that port, allowing a mixture of host input devices and controllers connected to the adapter.
The adapter support can be disabled in the Controllers config if the OS driver is preferred (allowing the pad buttons to be reconfigured).
One adapter per system is supported.
2014-12-10 20:45:45 +11:00
Fiora
92aad1140e
JIT: fix MOVD_xmm typoes in ConvertDoubleToSingle
...
Ordering, plus MOVQ instead of MOVD
2014-12-09 04:19:44 -08:00
skidau
1ce3696e8b
Merge pull request #1623 from FioraAeterna/fixppcfp
...
JIT: fix PPC_FP snan/qnan handling
2014-12-09 14:25:23 +11:00
Lioncash
faf962d528
FifoRecorder: Use std::vector for m_Ram and m_ExRam
...
No need to delete/recreate the arrays every time a new recording happens. Just zero it out.
2014-12-07 18:13:53 -05:00
Tillmann Karras
6e928d08a0
Jit64: clean up casts in memory operands
2014-12-07 20:23:27 +01:00
Ryan Houdek
81cc177c44
Merge pull request #1477 from magcius/nunchuk-cleanup
...
Nunchuk cleanup
2014-12-07 01:29:59 -06:00
Ryan Houdek
d9d0e285c9
Merge pull request #1560 from magcius/pad-cleanup-1
...
Pad cleanup 1
2014-12-07 01:22:03 -06:00
Ryan Houdek
6d6b425061
Merge pull request #1647 from magumagu/mmu-flag-cleanup
...
Cleanup: remove unnecessary uses of the bMMU flag
2014-12-07 01:08:30 -06:00
Ryan Houdek
dec2f9f89b
Merge pull request #1596 from Tilka/wiimote
...
WiimoteReal: use inheritance instead of #ifdef
2014-12-07 01:03:08 -06:00
Ryan Houdek
b9c6ee93b6
Merge pull request #1661 from FioraAeterna/fixloadstorebind
...
JIT: fix possible panicalert in loadstore
2014-12-07 00:54:59 -06:00
Fiora
68972da1e5
JIT: fix possible panicalert in loadstore
...
Didn't bind address register tcorrectly in a very rare case.
2014-12-06 16:09:13 -08:00
Fiora
3d12849967
JIT: fix snan/qnan handling in float loads/stores
...
Also simplify the conversion code with some suggestions by flacs; might even
be slightly faster now despite handling more cases.
2014-12-06 13:07:24 -08:00
Rohit Nirmal
fa501e9d8d
Fix -Wshadow warning.
2014-12-05 20:33:24 -06:00
skidau
f7a16eca84
Merge pull request #1437 from skidau/Remove-DSP-thread-option
...
Removed the DSP LLE on separate thread option.
2014-12-06 10:54:53 +11:00
skidau
d485acdb51
Stored a copy of the PTE in the TLB like the real hardware does.
...
Updated PTE.R bit on Write and Instruction fetch.
Added code to read the PTE from MEM2 if the PTE is stored there.
Refactored the two hash functions to reduce code duplication.
Updated save state version.
2014-12-06 10:28:34 +11:00
skidau
997681b65a
Removed the tag check in InvalidateTLBEntry. All four TLB entries are always cleared on each invalidate command.
...
Initialised the TLB cache to start from a consistent state on reset.
2014-12-05 19:56:45 +11:00
skidau
693f413364
Updated C bit on TLB cache hits.
...
Added TLB state to the save state file.
2014-12-05 14:29:13 +11:00
Tillmann Karras
8d9a30b370
WiimoteReal: use inheritance instead of #ifdef
2014-12-05 00:16:41 +01:00
Tillmann Karras
94197b604e
WiimoteReal: inline unnecessary function
2014-12-04 17:09:12 +01:00
Tillmann Karras
d087cb95cd
WiimoteReal: shuffle code around
2014-12-04 17:09:12 +01:00
Tillmann Karras
a1e974fedf
WiimoteReal: add m_ prefix to member variables
2014-12-04 17:09:12 +01:00
skidau
b1b7ae9f6a
Merge pull request #1644 from FioraAeterna/fixtlb
...
TLB: fix backwards exception check
2014-12-04 13:19:03 +11:00
Ryan Houdek
d8cb976bba
Merge pull request #1639 from Sonicadvance1/aarch64_improvements
...
Aarch64 improvements
2014-12-03 19:15:55 -06:00
Lioncash
c715a4f8ef
Jit: Remove unnecessary include
2014-12-03 17:30:57 -05:00
magumagu
6b34b1b0d0
JIT: remove unnecessary uses of MMU flag.
2014-12-03 14:06:06 -08:00
magumagu
c3b36de51e
HLE code replacement: remove unused code.
2014-12-03 14:05:05 -08:00
Lioncash
241c94d337
Merge pull request #1645 from magumagu/jit-unused-flag
...
JIT: remove unused flag.
2014-12-03 16:13:31 -05:00
Fiora
a4c6cf85e9
TLB: fix backwards exception check
2014-12-03 06:00:23 -08:00
skidau
b9b3277fb5
Merge pull request #1618 from JosJuice/dvd-low-open-partition
...
Fix Wii disc partitions
2014-12-03 21:24:56 +11:00
Ryan Houdek
71e4e67ae1
[AArch64] Only flush registers that are needed with interpreter fallback.
...
We try to keep as many registers as possible in callee saved registers, so if we have guest registers in the correct registers and the interpreter
call we are falling back to doesn't need the registers then we can dump just those ones. Which means we don't have to dump 100% of our register state
when falling to the interpreter.
2014-12-02 21:08:38 -06:00
Ryan Houdek
71b77f3173
[AArch64] Makes some integer instructions more clear what they're doing.
...
ComputeRC was a bit unclear by using 64bit registers for setting the immediate and then calling SXTW on a 6b4it register which is just a bit obscure.
When the source register is an immediate in cntlzwx, just use the built in GCC function instead of our own implementing for counting leading zeros.
2014-12-02 21:08:38 -06:00
Ryan Houdek
8dfb8d8ad5
[AArch64] Implements HLE function injection
2014-12-02 21:08:38 -06:00
Ryan Houdek
51ad798105
[AArch64] Implements block linking.
...
Before block linking was enabled but it wasn't ever implemented.
Implements link blocks and destroy block functions and moves the downcount check in the WriteExit function so it doesn't get overwritten when linking.
2014-12-02 21:08:38 -06:00
Ryan Houdek
ca04601b14
[AArch64] Fixes the dispatcher
...
Changes the dispatcher to make sure to we are saving the LR(X30) to the stack. Also makes sure to keep the stack aligned.
AArch64's AAPCS64 mandates the stack to be quad-word aligned.
Fixes the dispatcher from infinite looping due to a downcount check jumping to the dispatcher. This was because checking exceptions and the state
pointer wouldn't reset the global conditional flags. So it would leave the timing/exception, jump to the start of the dispatcher and then jump back
again due to the conditional branch.
2014-12-02 21:08:38 -06:00
Ryan Houdek
c3c80e9440
[AArch64] Improves the register cache.
...
Removes the REG_AWAY nonsense I was doing. I've got to get the JIT more up to speed before thinking of insane register cache things.
Also fixes a bug in immediate setting where if the register being set to an immediate already had a host register tied to it then it wouldn't free the
register it had. Resulting in register exhaustion.
2014-12-02 21:08:38 -06:00
Ryan Houdek
08660c89ad
Fix register usage detection in PPCAnalyst.
...
lmw/stmw weren't properly setting input and output registers since they use multiple registers.
dcbz was just missing a flag in the instruction tables.
2014-12-02 16:12:33 -06:00
Fiora
863fb91cad
JIT: fix profiler call
...
Sometimes this seems to require a 64-bit offset, so use CallFunction instead
2014-12-02 10:17:58 -08:00
JosJuice
bbd7370d82
DVDInterface: Tweak speeds
2014-12-02 12:27:03 +01:00
Lioncash
54f1e3a3c1
Merge pull request #1630 from lioncash/unused
...
WII_IPC_HLE_Device_fs: Remove unused macro constant
2014-12-01 21:49:07 -05:00
skidau
b34c80d138
Merge pull request #1626 from kamiyo/fix-wiimote-volume-divisor
...
Fix Wiimote speaker divisor for format 0x00
2014-12-02 12:51:15 +11:00
Lioncash
11e6d75ea6
WII_IPC_HLE_Device_fs: Remove unused macro constant
2014-12-01 19:33:53 -05:00
Lioncash
af5b1063bf
Merge pull request #1619 from FioraAeterna/removepxor
...
JIT: remove unnecessary pxor in paired stores
2014-12-01 15:50:31 -05:00
kamiyo
e8c393b00f
Fix wiimote speaker divisor.
...
Playing with the wiimote volume in the Wii menu in-game, I found that the range for m_reg_speaker.volume is 0 -127, not 0 - 64.
2014-12-01 13:06:53 -05:00
Ryan Houdek
4946c6876d
Merge pull request #1607 from Sonicadvance1/armv7-optimizations
...
A whole bunch of ARMv7 optimizations and minor fixes.
2014-11-30 15:48:27 -06:00
Fiora
644a661bf1
JIT: remove unnecessary pxor in paired stores
...
I don't think this is necessary anymore?
2014-11-30 08:11:45 -08:00
magumagu
4bb48d09dd
DiskIO: Clean up GetTMD() API.
2014-11-30 16:38:13 +01:00
magumagu
b1df4e5986
Make DVDLowOpenPartition actually change partitions.
2014-11-30 16:01:05 +01:00
Ryan Houdek
cd13d2d66f
[ARM32] Fix a couple bugs in the paired loadstore routines.
...
This code was obviously wrong, we were sign extending 8 bit unsigned values and loading from the wrong offset as well.
This fixes a bug in Muramasa where some colours were going insane.
2014-11-30 04:10:17 +00:00
Ryan Houdek
b848365f78
[ARM32] Minor optimization in paired loadstores.
...
When the offset can fit in the instruction encoding make sure to do so.
2014-11-30 04:10:16 +00:00
Ryan Houdek
52c6fb180b
[ARM32] Moves loadstore extend flag to backpatch code.
2014-11-30 04:10:16 +00:00
Ryan Houdek
32dc105aa3
[ARM32] Eat a register to store our memory base.
...
This saves at least two instructions per fastmem operation.
2014-11-30 04:10:16 +00:00
Ryan Houdek
e2f8286415
[ARM32] Adds unsigned compares.
...
Superscedes PR #1131 .
Optimizes cmpi a bit.
2014-11-30 04:10:16 +00:00
Ryan Houdek
581ab9edec
[ARM32] cntlzwx optimization if source is immediate
2014-11-30 04:10:16 +00:00
Ryan Houdek
9c82adb14f
[ARM32] negx optimization if source is immediate
2014-11-30 04:10:15 +00:00
Ryan Houdek
1dbb39f791
[ARM32] srawix optimization when source is an immediate.
2014-11-30 04:10:15 +00:00
Ryan Houdek
fca0fd9dd5
[ARM32] rlwimix and rlwnmx optimizations.
2014-11-30 04:10:15 +00:00
magumagu
c693cf46e9
JIT: remove unused flag.
2014-11-29 12:41:36 -08:00
Fiora
72c96c20d3
JIT: more optimizing of float ops based on known input characteristics
...
If the inputs are both float singles, and the top half is known to be identical
to the bottom half, we can use packed arithmetic instead of scalar to skip
the movddup.
This is slower on a few rather old CPUs, plus the Atom+Silvermont, so detect
Atom and disable it in that case.
Also avoid PPC_FP on stores if we know that the output came from a float op.
2014-11-29 11:33:11 -08:00
Fiora
4e0591cdf1
JIT: float instruction attribute fixes, fix binding mistakes
...
These instructions modify only the bottom halves of the output register,
so the output register needs to be treated as an input too.
2014-11-29 11:30:52 -08:00
Fiora
8d039a77af
JIT: minor cleanup, avoid MOVSD where MOVAPD will do
...
Avoids false dependencies.
2014-11-29 11:30:51 -08:00
Fiora
7df50b0710
JIT: skip weird fmul rounding if the input is known to be single precision
2014-11-29 11:30:51 -08:00
Ryan Houdek
f588a82b9a
Merge pull request #1294 from FioraAeterna/noaccuratefcmp
...
JIT: remove "accurate fcmp" option
2014-11-28 22:48:11 -06:00
Ryan Houdek
1aed2542c7
Merge pull request #1602 from FioraAeterna/fixforce25bitimprecise
...
JIT: fix Force25BitPrecision with accurate single precision mode off
2014-11-28 22:42:44 -06:00
Ryan Houdek
5003618587
Merge pull request #1605 from FioraAeterna/fixcrormerge
...
JIT: fix fcmp+cror merging bug
2014-11-28 22:39:13 -06:00
Ryan Houdek
1a85df0459
Merge pull request #1603 from FioraAeterna/nofastinterrupts
...
JIT: remove "fast interrupts" option set and then used nowhere
2014-11-28 22:37:52 -06:00
Ryan Houdek
ec3d6da7b5
[ARM32] Remove conditional execution from store instructions.
2014-11-29 02:44:17 +00:00
Ryan Houdek
6c399ce9ae
[ARM32] Removes a block of conditional execution in the dispatcher.
2014-11-29 02:42:30 +00:00
Ryan Houdek
e358696d46
[ARM32] Removes conditional execution from ARMv7's Jit function.
2014-11-29 02:42:22 +00:00
Fiora
d42305aba0
JIT: fix fcmp+cror merging bug
...
Destination CR bit needs to be cleared if it's not one of the sources.
2014-11-28 16:11:04 -08:00
Jasper St. Pierre
854f6b8688
HW: Poll system input from system timers
...
Rather than playing terrible hacks to determine the start of input
frames, just update system input periodically. Specifically, every
60th of a second.
2014-11-28 10:56:11 -08:00
Jasper St. Pierre
f3b739341e
HW: Remove UpdateOutput
...
All of the rumble interfaces are now immediate mode.
2014-11-28 10:54:04 -08:00
Jasper St. Pierre
1cee3b8cc6
WiimoteEmu: Hardcode acceleration calibration values
...
Now we don't have any runtime calibration at all.
2014-11-28 10:51:30 -08:00
Jasper St. Pierre
5f6cfd67b7
Nunchuk: Hardcode Nunchuk accelerometre calibration values as well
2014-11-28 10:51:30 -08:00
Jasper St. Pierre
211eafc130
Nunchuk: Hardcode Nunchuk stick calibration values
...
The game can never change these, so there's no reason to make it
dynamic. Just put the constants in the code.
While we're at it, take the time to clean up the code and also
and document several of the hacks we're doing inside to make the code
clearer to understand.
2014-11-28 10:51:30 -08:00
Jasper St. Pierre
64014d1dcd
Nunchuk: Use the accel_cal struct directly in nu_cal
2014-11-28 10:51:30 -08:00
Jasper St. Pierre
cd95002356
WiimoteHid: Remove unused structs
2014-11-28 10:51:30 -08:00
Jasper St. Pierre
fca9b491cc
WiimoteEmu: Remove Spy method
...
This is the only use for a lot of unused methods and structs, and it's a
poorly written mess that doesn't even compile. Just remove it so we can
clean up the rest of a lot of code.
2014-11-28 10:51:30 -08:00
Jasper St. Pierre
e43ad58a3a
GCPad: Clean up Motor/Rumble interfaces
...
Remove the duplication here and just have one Rumble interface that
takes a single strength parameter.
2014-11-28 10:50:45 -08:00
Jasper St. Pierre
6aa1a59ee8
SI: Clean up controller-like devices with subclassing
...
This takes the giant mess of controller-like devices (dance mat and
steering wheel) down to something more manageable, similar to how
the Donkey Konga bongo controller works.
Based-on-a-patch-by: comex <comexk@gmail.com>
2014-11-28 10:50:45 -08:00
Ryan Houdek
ce059769f6
Merge pull request #1439 from Armada651/ogl-stereo-3d
...
OGL: Stereoscopic 3D Support
2014-11-28 11:45:38 -06:00
Fiora
41f5ef3304
JIT: remove "fast interrupts" option set and then used nowhere
2014-11-28 06:42:40 -08:00
Fiora
3e893913dd
JIT: fix Force25BitPrecision with accurate single precision mode off
...
Doesn't affect anything now, but it's more correct (and should make setting
AccurateSinglePrecision to false work properly now).
2014-11-28 06:39:47 -08:00
Fiora
561e96b080
JIT: clear FIFO write addresses when block cache is cleared
...
Fixes a spurious FIFO write check which caused a flags locking assert in
Splinter Cell: Double Agent.
2014-11-27 17:15:01 -08:00
Rohit Nirmal
84b060d313
Fix building with PCH disabled.
2014-11-26 10:21:04 -06:00
skidau
b806680eac
Merge pull request #1522 from jcowgill/sfml-2.1
...
Update / Port to SFML 2.1
2014-11-26 12:33:03 +11:00
skidau
69bd1562e2
Merge pull request #1561 from comex/10.9
...
Update OS X Requirement to 10.9 + fixes
2014-11-26 12:31:28 +11:00
Fiora
3be31ca2c8
JIT: remove "accurate fcmp" option
...
This doesn't seem to be necessary anymore now that FPRF is implemented in the
JIT. Technically, this isn't the same as before, since the JIT doesn't
implement the fcmp exception semantics, but as far as testing has shown, this
doesn't seem necessary.
This should make games that use FPRF a few percent faster (e.g. F-Zero GX)
since fcmpx no longer has to be fallbacked.
2014-11-25 09:54:40 -08:00
Lioncash
aa92797f93
Merge pull request #1582 from Stevoisiak/newImprovedFormatting
...
More formatting and consistency fixes
2014-11-25 12:41:32 -05:00
James Cowgill
a93f86330e
Port dolphin to SFML 2.1
2014-11-25 16:44:38 +00:00
comex
e631f68c1b
Switch from deprecated Carbon idle tickling to Cocoa power assertions.
...
Also, this avoids keeping the system awake if a game is not being
played.
Frankly, I don't know what the point of precisely tracking these things
is, but that's how the API works. Feel free to add analogous
functionality on other platforms.
2014-11-25 00:27:13 -05:00
Gabriel Corona
5b9aeaa686
Use CLI argument for Linux perf JIT support
2014-11-24 23:30:29 +01:00
Gabriel Corona
9722ae2a5d
Move the JIT registration logic in its own file
...
Move the JITed function/basic-block registration logic out of the CPU
subsystem in order to add JIT registration to JITed DSP and
Video/VertexLoader code.
This necessary in order to add /tmp/perf-$pid.map support to other
JITed code as they need to write to the same file.
2014-11-24 23:18:18 +01:00
Gabriel Corona
cdce5ace25
Add Linux perf JIT support (/tmp/perf-$pid.map)
...
'perf' is the standard builtin tool for performance analysis on recent
Linux kernel. Its source code is shipped within the kernel repository.
'perf' has basic support for JIT. For each process, it can read a file
named /tmp/perf-$PID.map. This file contains mapping from address
range to function name in the format:
41187e2a 1a EmuCode_804a33fc
with the following entries:
1. beginning of the range (hexadecimal);
2. size of the range (hexadecimal);
3. name of the function.
We supply the PowerPC address of the basic block as function name.
Usage:
DOLPHIN_PERF_DIR=/tmp dolphin-emu &
perf record -F99 -p $(pgrep dolphin-emu) --call-graph dwarf
perf script | stackcollapse-perf.pl | grep EmuCode__ | flamegraph.pl > profile.svg
Issue: perf does not have support for region invalidation. It reads
the file in postprocessing. It probably does not work very well if a
JIT region is reused for another basic block: wrong results should be
expected in this case. Currently, nothing is done to prevent this.
2014-11-24 23:18:18 +01:00
Stevoisiak
6da394a4d0
More formatting and consistency fixes
2014-11-24 17:16:59 -05:00
Rohit Nirmal
4d931c16ad
Silence a few "zero as null pointer" warnings.
2014-11-24 12:36:46 -06:00
Jules Blok
6e62dd3415
Add stereoscopy hotkeys.
2014-11-23 14:30:12 +01:00
Ryan Houdek
e84999386b
Merge pull request #1579 from Sonicadvance1/armv7-fastmem-rewrite
...
Rewrites ARMv7 fastmem entirely.
2014-11-21 14:54:05 -06:00
Ryan Houdek
bfbbddd76f
Rewrites ARMv7 fastmem entirely.
...
This is a fairly lengthy change that can't be separated out to multiple commits well due to the nature of fastmem being a bit of an intertangled mess.
This makes my life easier for maintaining fastmem on ARMv7 because I now don't have to do any terrible instruction counting and NOP padding. Really
makes my brain stop hurting when working with it.
This enables fastmem for a whole bunch of new instructions, which basically means that all instructions now have fastmem working for them. This also
rewrites the floating point loadstores again because the last implementation was pretty crap when it comes to performance, even if they were the
cleanest implementation from my point of view.
This initially started with me rewriting the fastmem routines to work just like the previous/current implementation of floating loadstores. That was
when I noticed that the performance tanked and decided to rewrite all of it.
This also happens to implement gatherpipe optimizations alongside constant address optimization.
Overall this comment brings a fairly large speedboost when using fastmem.
2014-11-21 05:21:57 -06:00
Matthew Parlane
1f7dbbef07
Merge pull request #1567 from comex/remove-android-ndk-hack
...
Remove Android <ucontext.h> hack.
2014-11-21 19:56:28 +13:00
Matthew Parlane
21e4e035cc
Merge pull request #1281 from Stevoisiak/RenameEuRGB60
...
Renamed EuRGB to PAL60
2014-11-21 19:09:42 +13:00
skidau
15e7a8c247
Merge pull request #1573 from kamiyo/fix-wiimote-speaker
...
Fix wiimotespeaker emulation affecting real wiimote
2014-11-21 13:13:21 +11:00
skidau
2968cb138c
Fixed the fast disc speed option (immediately service the interrupt instead of going through the scheduler).
2014-11-20 18:23:05 +11:00
skidau
ba1a8d2ef3
Merge pull request #1517 from JosJuice/cav-disc-drive
...
DVDInterface: Timing accuracy improvements
2014-11-20 13:30:02 +11:00
Lioncash
ccebac8bcc
Merge pull request #1456 from Stevoisiak/AddCountries
...
Additional Country Filters
2014-11-19 19:21:59 -05:00
Lioncash
19dabee326
Merge pull request #1568 from rohit-n/android-warnings
...
Android: Silence a few warnings.
2014-11-19 12:17:13 -05:00
kamiyo
e76e3b7390
Added condition so that function to mix wiimote-speaker data into the master mixer is called only if wiimote is emulated.
2014-11-19 01:28:11 -05:00
skidau
f5aed3d6c6
Merge pull request #1548 from skidau/region-australia
...
Added Australia to the list of valid PAL regions
2014-11-19 16:59:08 +11:00
Steven Vascellaro
695bbac36a
Removed SDK flag
...
SDK is not an official Nintendo country code, and is not actually used
by any official software.
2014-11-18 19:44:17 -05:00
Stevoisiak
f1a26ff654
Various country flag improvements
...
* Added country flags for games from Netherlands and Spain
* Added separate category for Region Free games (Uses European flag as placeholder)
* Added missing country filter options in "show regions" menu
* Rearranged country filters for readability
* Incremented CACHE_REVISION
Also fixed various country filters not showing up as options in the "Show regions" menu.
2014-11-18 19:44:16 -05:00
Stevoisiak
e7a82c4ded
Renamed EuRGB60 to PAL60
2014-11-18 16:51:21 -05:00
skidau
2affe25191
Merge pull request #1559 from Sonicadvance1/armv7-minor-optimizations
...
ARMv7 block profiling + minor optimization
2014-11-18 12:51:03 +11:00
Dolphin Bot
dced84d440
Merge pull request #1564 from RachelBryk/freelook
...
Make freelook hotkeys configurable.
2014-11-17 20:44:48 +01:00
Rohit Nirmal
8ec791c4f3
Android: Silence a few warnings.
2014-11-17 19:21:38 +00:00
Lioncash
f78600ec9e
Merge pull request #1562 from lioncash/host
...
Host: Kill off GetRenderWindowSize
2014-11-17 13:51:40 -05:00
Lioncash
b94dbca160
Host: Kill off GetRenderWindowSize
2014-11-17 13:44:49 -05:00
comex
c5a25d56e0
Remove Android <ucontext.h> hack.
...
There was a longstanding hack that defined ucontext_t manually to work
around the lack of this header on the Android NDK. However, it looks
like newer NDK versions now have it like good little POSIX boys, and my
recent header reshuffle broke the build on those versions, presumably
because the real and fake definitions of ucontext_t end up included in
the same file where they weren't under the old organization.
Rather than try to revert the conflict, this commit just removes the
hack. The buildbot's NDK will need to be upgraded.
2014-11-17 13:29:04 -05:00
Ryan Houdek
f9208dcc13
Fixes ARMv7 FP loadstores using fastmem when not enabled.
2014-11-16 21:12:11 -06:00
Rachel Bryk
ea11c446c2
Make freelook hotkeys configurable.
2014-11-16 22:00:56 -05:00
JosJuice
091db36162
DVDInterface: Add a delay for commands other than regular reads
...
Behavior inspired by WII_IPC_HLE_Device_DI.
2014-11-16 21:29:40 +01:00
JosJuice
c6e695b245
DVDInterface: CAV disc drive
...
Changes the read speed of GC discs from 3 MiB/s to 2-3.3 MiB/s,
depending on the location of the data. I also attempted to change the
speeds for Wii discs, but it has very little effect right now because
Wii games use IPC_HLE instead of DVDInterface. It does affect Wii
homebrew that reads Wii discs, though.
2014-11-16 20:57:26 +01:00
comex
aa2fc1f66b
Merge pull request #1449 from comex/memtools-merge
...
Reorganize faulting stuff. Differentiate between arch- and OS-specific defines.
2014-11-16 13:46:33 -05:00
Ryan Houdek
30e1749d00
Implements block time profiling on ARMv7.
...
This was interesting implementing.
Our generic QueryPerformanceCounter function on ARMv7 was so slow that profiling a block was impossible.
I waited about five minutes and I couldn't even get a single frame to output.
This instead uses ARMv7's PMU to get cycle counts, which are a relatively minor performance drop in my testing.
One disadvantage of this method is that the kernel can lock us out of using these co-processor registers, but it seems to work on my Jetson board.
Another disadvantage is that we aren't having block times in "real" time but cycles instead, not too big of a deal.
This also removes instruction run counts from profiling because that's just annoying and we don't expose an interface for even getting those results
from our UI.
2014-11-16 09:29:27 +00:00
Ryan Houdek
6683b194ff
ARMv7 register cache optimizations.
...
Enable support for not loading a destination register on FPR cache.
Dump registers if they won't be used later in the block. Stolen from Fiora.
2014-11-16 09:29:22 +00:00
Lioncash
3eab75bc9c
Core: Join some variable declarations and assignments
2014-11-15 20:21:35 -05:00
Ryan Houdek
181f16c5f0
Reimplements fastmem for ARMv7 floating point loadstores.
...
This implements a new system for fastmem backpatching on ARMv7 that is less of a mindfsck to deal with.
This also implements stfs under the default loadstore path as well, not sure why it was by itself in the first place.
I'll be moving the rest of the loadstore methods over to this new way in a few days.
2014-11-15 21:17:50 +00:00
skidau
99141a2698
Added Australia to the list of valid PAL regions
2014-11-15 16:16:37 +11:00
comex
0cf8ab175b
Fix UCodes.cpp to use UTF-8 encoding.
2014-11-14 11:53:56 -05:00
Ryan Houdek
b0becf7af8
Enables the ARMv7 FPR cache.
...
The problem instructions with the FPR are disabled in the previous commit. This can now be reenabled for fairly large performance gains.
2014-11-14 15:14:10 +00:00
Ryan Houdek
69c3e6516c
Disables NEON optimized instructions.
...
These are causing issues in games. In particular you get pink on the screen in Animal Crossing.
Disable until fully investigated.
This also disables fastmem on floating point loadstore instructions which are horribly broken and won't actually backpatch when an invalid read/write
is encountered.
2014-11-14 15:13:13 +00:00
Stevoisiak
b25e1a2eb4
Various formatting and consistency fixes
2014-11-13 22:42:18 -05:00
skidau
b1f8974db8
Merge pull request #1527 from FioraAeterna/mftbfix
...
JIT: revert accuracy improvement to mftb
2014-11-13 12:11:13 +11:00
skidau
1095d3fc33
Merge pull request #1523 from FioraAeterna/fifo64
...
JIT: add 64-bit write support to FIFO functions and fix immediates
2014-11-12 12:12:16 +11:00
skidau
0cb9dcb5fc
Merge pull request #1520 from JosJuice/dvdinterface-init
...
DVDInterface: Initialize variables
2014-11-12 12:11:03 +11:00
Fiora
4b105ed0e4
JIT: revert accuracy improvement to mftb
...
Fixes a few games (e.g. Karaoke Revolution Party) for reasons explained in the
comments.
2014-11-10 20:31:07 -08:00
Fiora
6603f98d04
JIT: add 64-bit write support to FIFO functions
...
Also fix 64-bit values passed to CallAC and otherwise correct immediate
handling in FIFO writes.
Fixes 007 Nightfire.
2014-11-09 21:24:30 -08:00
JosJuice
519d851bf8
DVDInterface: Initialize variables
2014-11-09 11:54:04 +01:00
skidau
c34c231df1
Merge pull request #1508 from skidau/emu-wiimote-speaker-sample-rate-zero
...
Ignore the emulated wiimotes speaker data if the sample rate is set at 0hz
2014-11-09 17:58:34 +11:00
skidau
0f615c754a
Packed the emu wiimote structs, removed swap16 and removed the speaker amp as the amp was distorting the audio.
2014-11-08 11:33:20 +11:00
Lioncash
f9fe2d6487
Movie: Get rid of unnecessary explicit memcpys
2014-11-06 22:17:44 -05:00
Lioncash
f6b4b4dbba
Merge pull request #1497 from lioncash/host
...
Host: Kill off Host_SysMessage
2014-11-06 20:41:53 -05:00
skidau
c36e7b9c23
Merge pull request #1494 from lioncash/statics
...
PPCCache: Make PLRU lookup tables static
2014-11-07 12:33:19 +11:00
Lioncash
a5d304eb16
Merge pull request #1495 from lioncash/unused
...
Interpreter: Remove dead patches() function
2014-11-06 20:31:01 -05:00
comex
ba48541c47
Merge pull request #1504 from comex/gpu-determinism-uninit-fix
...
Fix uninitialized GPU determinism mode for NAND titles or whatever.
2014-11-06 19:49:31 -05:00
skidau
021cdac24c
Ignore the emulated wiimotes speaker data if the sample rate is set at 0hz.
...
Fixes issue 7806.
2014-11-06 22:51:59 +11:00
Fiora
b8d88a41e0
JIT: remove accidentally left-in debug code
2014-11-05 17:44:13 -08:00
comex
9d23a366c8
Fix uninitialized GPU determinism mode for NAND titles or whatever.
...
m_strGPUDeterminismMode can be set by either the global or game
settings. Either way, it's then supposed to be parsed into an enum,
m_GPUDeterminismMode. However, the code to do this was placed right
after checking for game settings, which doesn't happen at all if there
isn't a valid title ID. Move it outside the if block.
2014-11-05 19:36:12 -05:00
Lioncash
606efbce10
PPCCache: Make PLRU lookup tables static
2014-11-05 19:35:30 -05:00
Rohit Nirmal
1beb047959
PowerPC: Remove unused variable.
2014-11-05 11:47:44 -05:00
Lioncash
884ec2ed13
Host: Kill off Host_SysMessage
...
Equivalent facilities already exist.
2014-11-05 02:30:48 -05:00
skidau
baaccfd2f0
Take into account the want_determinism option and do not create a DSP thread if determinism is needed.
2014-11-05 17:42:42 +11:00
skidau
5c862adfa7
Disabled the DSP thread if netplay or a movie has been started
2014-11-05 17:42:42 +11:00
skidau
2140ac15e4
Removed the DSP LLE on separate thread option.
...
The DSP thread will be enabled if the game is an AX ucode game and if the host has more than two cores (not including hyperthreading).
2014-11-05 17:42:42 +11:00
Lioncash
a105a9a557
Interpreter: Remove dead patches() function
2014-11-04 20:44:57 -05:00
skidau
0515ab852e
Merge pull request #1230 from FioraAeterna/constaddr
...
JIT: improve handling of stores with a known address
2014-11-05 12:40:38 +11:00
Fiora
b81686b582
JIT: fix register preloading
...
Partially broken by typoes in the bitset patch.
2014-11-04 04:50:05 -08:00
Fiora
f8880c0284
JIT: fix typo in optimization patch
...
Whoops... made us flush everything on every branch.
2014-11-04 02:04:30 -08:00
comex
9cba787871
Merge pull request #1408 from randomstuff/perf
...
Profiling: measure time on non-Windows/POSIX using clock_gettime
2014-11-03 22:36:32 -05:00
Lioncash
30f97723db
Core: Fix potentially uninitialized variable warnings
2014-11-03 22:21:10 -05:00
comex
42d41a456e
Merge pull request #1489 from FioraAeterna/revertopt
...
JIT: revert cmpXX optimization
2014-11-03 21:07:11 -05:00
Fiora
768273f59b
JIT: revert cmpXX optimization
...
It seems like this wasn't correct in 100% of cases.
2014-11-03 17:50:20 -08:00
skidau
027791685a
Merge pull request #1483 from comex/on-demand-exi-interrupts
...
Make EXI use CoreTiming events like everything else instead of having its own special check.
2014-11-04 12:31:12 +11:00
skidau
dc63f8f461
Merge pull request #1471 from RachelBryk/reset-record
...
Allow hard resets to be recorded in movies.
2014-11-04 12:30:48 +11:00
Fiora
ce71c3cd4e
JIT: fix valid_block marking
...
This caused invalidations that only affected the last portion of a JIT block
to fail, breaking Wii64's block linking. It might affect a bunch of other
games too; I haven't tested.
2014-11-03 16:23:44 -08:00
Fiora
fc63c7ecae
JIT: genericize immediate address handling, support in float stores too
2014-11-03 01:31:39 -08:00
Rachel Bryk
f9495a484c
Allow hard resets to be recorded in movies.
2014-11-03 00:30:29 -05:00
comex
9f683f353b
Make EXI use CoreTiming events like everything else instead of having its own slow special check.
...
Microphone is probably wrong/mistimed because it doesn't take into
account cycles late, but that's not a new issue here.
2014-11-03 00:28:46 -05:00
Fiora
e729fc4a28
JIT: fix dumb mistake in crclr optimization patch
2014-11-02 21:03:11 -08:00
Ryan Houdek
204598a082
Merge pull request #1350 from FioraAeterna/integeropts
...
Various smallish JIT optimizations
2014-11-02 20:13:20 -06:00
Rachel Bryk
2eac08aa30
Add nunchuk support to tas input.
2014-11-02 20:52:13 -05:00
Jasper St. Pierre
1e93b0db19
MemArena: Rename GrabLowMemSpace to GrabSHMSegment
...
This code originally tried to map the "low space" for the Gamecube's
memory layout, but since has expanded to mapping all of the easily
mappable memory on the system. Change the name to "GrabSHMSegment" to
indicate that we're looking for a shared memory segment we can map into
our process space.
2014-11-02 16:51:27 -08:00
Jasper St. Pierre
6813473367
MemArena: Remove the low mappings for our pointers
...
These are effectively unused, since the memmap already maps them in one
place. For 32-bit, they might have some slight advantage, but we already
special-case the regular "high-mem" pointer for 32-bit, so just use the
one we already have...
2014-11-02 16:50:36 -08:00
Jasper St. Pierre
8858dc7764
Memmap: Remove vestigals of the memory-mapped EFB
...
It hasn't been memory-mapped for a long time.
2014-11-02 16:34:17 -08:00
Jasper St. Pierre
dd0aadac97
MemoryWindow: Use p_pFakeVMEM, not the virtual mirror
...
They point to the same contents, so there's no reason to use the
mirror. This lets us make all the mirrors static.
2014-11-02 16:34:17 -08:00
Jasper St. Pierre
5a2340fead
Memmap: Make the constants aligned to 8 nibble characters
...
Otherwise, the constants can be a bit confusing to read.
2014-11-02 16:34:17 -08:00
Jasper St. Pierre
6317721c95
MemmapFunctions: Remove unused effective_address argument
2014-11-02 16:34:17 -08:00
Jasper St. Pierre
81939e808f
Memmap: Clean up indentation and whitespace a bit
2014-11-02 16:34:17 -08:00
Gabriel Corona
641e820257
Profiling: measure time on POSIX systems using clock_gettime
2014-11-03 00:07:12 +01:00
Ryan Houdek
1c41acaddd
Merge pull request #1264 from Stevoisiak/GCM-to-ISO
...
Gcm to iso
2014-11-02 11:29:41 -06:00
Ryan Houdek
6e43562496
Merge pull request #1468 from Tilka/cleanup
...
Small cleanup
2014-11-02 11:02:35 -06:00
Ryan Houdek
cd64253cb4
Merge pull request #1459 from Buddybenj/nunchuk
...
Nunchuck -> Nunchuk Fixes
2014-11-02 09:44:43 -06:00
Ryan Houdek
2b69d76e88
Merge pull request #1448 from skidau/mmio-read32
...
Fixed the endianess of the 32bit MMIO reads.
2014-11-02 09:36:43 -06:00
Ryan Houdek
0d70880d89
Merge pull request #1466 from Sonicadvance1/ARMv7-and-optimization
...
Optimizes ARMv7 andi{s,}_rc implementations.
2014-11-02 09:33:37 -06:00
Ryan Houdek
824bad458c
Merge pull request #1454 from lioncash/interp
...
Interpreter: Remove a redundant macro
2014-11-02 09:33:19 -06:00
Ryan Houdek
83fcf710e8
Merge pull request #1462 from FioraAeterna/fixmftb
...
JIT: more mftb fixes
2014-11-02 09:31:25 -06:00
Scott Mansell
52d42bf330
Clean up debug string functions in OS_HLE.
...
* Use GetString instead of GetPointer.
* Use C++ strings instead of char* pointer math.
2014-11-02 21:39:37 +13:00
skidau
b241b6eadd
Merge pull request #1452 from lioncash/morestatic
...
GCPadEmu/WiimoteEmu: Make some arrays static
2014-11-02 14:15:13 +11:00
comex
5d18c66c99
Merge pull request #1464 from phire/usb_keyboard
...
Remove GetPointer from Wii USB Keyboard.
2014-11-01 22:35:37 -04:00
Tillmann Karras
f4fed0dea0
JitAsm: remove unused code pointers
2014-11-02 02:00:47 +01:00
Buddybenj
a4e48ab1a1
Nunchuck -> Nunchuk
...
Change another can not to cannot
Nunchuck -> Nunchuk
Nunchuck -> Nunchuk
Nunchuck -> Nunchuk
Nunchuck -> Nunchuk
Nunchuck -> Nunchuk
Nunchuck -> Nunchuk
Nunchuck -> Nunchuk
2014-11-01 17:42:13 -05:00
Lioncash
c83dc2a3e7
Merge pull request #1458 from phire/fix1450Tabs
...
Fix Indentation in PR 1450.
2014-11-01 14:39:31 -04:00
Ryan Houdek
86ca63658b
Optimizes ARMv7 andi{s,}_rc implementations.
...
Cuts down from a 3 instruction max implementation down to 1 instruction if the immediate can fit in to the instruction encoding.
2014-11-01 13:06:52 +00:00
Scott Mansell
4ba794d4c9
Remove GetPointer from Wii USB Keyboard.
2014-11-01 23:59:19 +13:00
Fiora
7deaf00c44
JIT: more mftb fixes
...
A very subtle difference in how I calculated the timebase value seems
to have broken Karaoke Revolution; this seems to fix it. Also be a bit more
paranoid in conditions for mftb merging.
2014-11-01 03:15:25 -07:00
Scott Mansell
47d8fc3aed
Wii Net SSL: Use std::string for hostname.
...
Previous code used a fixed length char buffer, which had
a few ugly edge cases.
2014-11-01 16:39:37 +13:00
Scott Mansell
7b6adf8b04
Fix Indentation in PR 1450.
...
Would have been nice if this was caught a few min earlier.
2014-11-01 15:45:44 +13:00
skidau
dffbcf275b
Merge pull request #1441 from lioncash/fwd
...
BootManager: Get rid of unnecessary forward declaration
2014-11-01 12:25:55 +11:00
skidau
8f9904f703
Merge pull request #1450 from phire/fix-smg2
...
Fix DSPLLE for games which DMA data from MEM2 to the DSP.
2014-11-01 12:25:38 +11:00
skidau
439a8605fa
Merge pull request #1417 from fkane/threadsafe-interrupts
...
Defer processing of expansion interface interrupts (fixes audio in Super Mario Sunshine on lower-end systems)
2014-11-01 12:24:46 +11:00
comex
af1a08fbf3
Merge pull request #1453 from lioncash/str
...
GCMemcardDirectory: Pass std::strings by reference.
2014-10-31 16:07:46 -04:00
Lioncash
475bb40364
Interpreter: Remove a redundant macro
2014-10-31 10:55:25 -04:00
Lioncash
c23131d046
GCMemcardDirectory: Pass std::strings by reference.
2014-10-31 10:17:24 -04:00
Lioncash
5a321d31dd
GCPadEmu/WiimoteEmu: Make some arrays static
2014-10-31 09:51:51 -04:00
Lioncash
72c958810c
SI_Device: Make GetDeviceNumber and GetDeviceType const.
2014-10-31 09:30:56 -04:00
Scott Mansell
9cb80875e6
Fix DSPLLE for games which DMA data from MEM2 to the DSP.
...
Fixes issue 7812.
2014-10-31 23:17:58 +13:00
comex
2ecd849eab
Reorganize faulting stuff. Differentiate between arch- and OS-specific defines.
...
- Get rid of ArmMemTools.cpp and rename x64MemTools.cpp to MemTools.cpp.
ArmMemTools was almost identical to the POSIX part of x64MemTools, and
the two differences, (a) lack of sigaltstack, which I added to the
latter recently, and (b) use of r10 to determine the fault address
instead of info->si_addr (meaning it only works for specifically
formatted JIT code), I don't think are necessary. (Plus Android, see
below.)
- Rename Core/PowerPC/JitCommon/JitBackpatch.h to Core/MachineContext.h.
It doesn't contain anything JIT-specific anymore, and e.g. locking
will want to use faulting support regardless of whether any JIT is in
use.
- Get rid of different definitions of SContext for different
architectures under __linux__, since this is POSIX. The exception is
of course Android being shitty; I moved the workaround definition from
ArmMemTools.cpp to here.
- Get rid of #ifdefs around EMM::InstallExceptionHandler and just
provide an empty implementation for unsupported systems (i.e.
_M_GENERIC really). Added const bool g_exception_handlers_supported
for future use; currently exception handlers are only used by the JIT,
whose use implies non-M_GENERIC, but locking will change that.
- Remove an unnecessary typedef.
2014-10-31 00:14:06 -04:00
skidau
7d5c509c07
Fixed the endianess of the 32bit MMIO reads.
2014-10-31 13:19:52 +11:00
skidau
e0c347527b
Merge pull request #1446 from RachelBryk/accel2
...
Fix wiimote accel.
2014-10-31 13:04:37 +11:00
Rachel Bryk
b08d993b55
Fix wiimote accel.
2014-10-30 21:28:02 -04:00
comex
de6dd847e7
Merge pull request #1445 from lioncash/array
...
DSPAnalyzer: Use a std::array for the code flags
2014-10-30 17:43:00 -04:00
Lioncash
b09ce72605
DSPAnalyzer: Use a std::array for the code flags
2014-10-30 12:45:27 -04:00
Lioncash
319f97bb56
BootManager: Get rid of unnecessary forward declaration
2014-10-29 22:25:16 -04:00
Scott Mansell
b4e0328508
And clean up this GetPointer() while I'm here.
...
It will probally be replaced later.
2014-10-29 23:59:32 +13:00
Scott Mansell
3e47480470
Remove dumb getPointers that actually want the whole memory block.
...
The whole memory block is accessable globally anyway. Much
cleaner!
2014-10-29 23:51:27 +13:00
Fiora
fb0960f0ee
JIT: flush unused registers during branch merges
...
Also correct some flags in interpreter tables.
2014-10-29 00:32:59 -07:00
Fiora
1ec1a9c33a
JIT: optimize crclr special case of crxor
2014-10-29 00:30:27 -07:00
Fiora
97fba41860
JIT: merge fcmpx and cror
...
Almost all uses of boolean condition-register ops in real code seem to be
the combination fcmpx + cror (e.g. for <= or >=). This merges the two.
2014-10-29 00:30:27 -07:00
Fiora
a666bb6bf6
JIT: optimize mulhwu
2014-10-29 00:30:26 -07:00
Fiora
5b5e462200
JIT: reorder blr comparisons
...
This should allow macro-op fusion in blr instructions.
2014-10-29 00:30:26 -07:00
Fiora
7388c62439
JIT: use BLR optimization to avoid anding LR with 0xFFFFFFFC
...
Should save roughly one instruction per blr.
2014-10-29 00:30:26 -07:00
Fiora
cec2cb9d38
JIT: micro-optimize cmpXX a bit more for lower latency/code size
2014-10-29 00:30:25 -07:00
comex
089e32ba7d
Merge pull request #1307 from comex/bitset
...
Higher level bitset wrapper
2014-10-28 23:39:35 -04:00
skidau
049afc4315
Merge pull request #1428 from phire/fixPaletteCpy
...
Fix Invalid Palette Pointer error.
2014-10-29 12:25:57 +11:00
comex
6698bfe58e
Merge pull request #1424 from phire/memmapPtrCleanup
...
Memmap pointer cleanup.
2014-10-28 17:31:23 -04:00
comex
1c32a3f77c
Merge pull request #1426 from lioncash/osx
...
Make some OSX-only functions static
2014-10-28 16:16:03 -04:00
Scott Mansell
d77f361c01
Add range checking to CopyTo/FromEmu so it won't segfault.
2014-10-29 08:53:53 +13:00
Lioncash
fd39454ad3
Make some OSX-only functions static
...
Gets rid of function prototype warnings.
2014-10-28 08:41:50 -04:00
Scott Mansell
1fbf4ae58a
Round up 7 nibble constants to 8 nibbles, for readablity.
2014-10-29 00:01:02 +13:00
Scott Mansell
a6671645d6
Remove commented out EFB arena code.
2014-10-28 23:58:54 +13:00
Scott Mansell
125cd92c3c
Update pointer types in memmap.cpp to match dolphin style guide.
2014-10-28 23:54:37 +13:00
Lioncash
88ec3b7725
EXI_Channel: Use an enum for read/write modes
2014-10-27 21:57:48 -04:00
skidau
1630b0c684
Merge pull request #1291 from skidau/debugger-step-out
...
Dolphin debugger enhancements
2014-10-28 12:53:22 +11:00
skidau
dd3cd30ee8
Merge pull request #1393 from RachelBryk/accel
...
Fix acceleration emulation for wiimote and nunchuk.
2014-10-28 12:46:37 +11:00
fkane
c37aca70a7
Make expansion interface interrupt updates thread-safe (fixes loss of audio in Super Mario Sunshine on lower-end systems.)
2014-10-27 09:37:17 -04:00
skidau
daf977e84e
Disabled optimizations, block merging and instruction skipping code while the debugger is stepping.
2014-10-27 23:38:45 +11:00
Ryan Houdek
81dda593cd
Merge pull request #1404 from Sonicadvance1/fix-ARMv7
...
Fixes some ARMv7 regressions.
2014-10-27 05:15:17 -06:00
Lioncash
edea9dfca3
EXI_DeviceIPL: Fix vertical alignment of IPL arrays
2014-10-26 11:45:56 -04:00
skidau
4570dd7eeb
Fixed a crash that would occur if a new watch were added by entering a watch name.
...
Code style updates.
2014-10-26 23:23:45 +11:00
skidau
2a3a8520a2
Removed the EXRAM_MASK from the safe address check as it was causing invalid accesses on Wii games in DEBUGFAST builds
2014-10-26 14:56:03 +11:00
skidau
290e1bed37
Disable block linking while debugger stepping or if there are breakpoints
2014-10-26 14:56:02 +11:00
skidau
613cae613a
Added a RAM Watch window to the debugger
...
Conflicts:
Source/Core/Core/HW/Memmap.cpp
Source/Core/Core/HW/Memmap.h
Source/Core/DolphinWX/Debugger/CodeWindow.h
2014-10-26 14:56:02 +11:00
skidau
df37649b9f
Changed the step over routine to a single stepping version that steps until a blr is encountered.
...
Cleared out all temporary breakpoints on each step to prevent phantom breakpoints from stopping the debugger.
2014-10-26 14:56:02 +11:00
skidau
b331ec96a3
Made the "continue", "stepover" and "stepout" functions work when the PC is at a breakpoint
2014-10-26 14:56:02 +11:00
Ryan Houdek
0fbd5248ca
Fixes a potential crash on the ARMv7 JIT if someone disables the entire JIT in the debugger.
...
We can't disable branches in the JITs. Make sure they don't become disabled if someone tries to disable the full JIT.
2014-10-25 20:38:44 -05:00
Ryan Houdek
17f352e2aa
Fixes some overzealous optimizations from ARMv7 BindToRegister.
...
We can't do it in rlw and friends.
subfx had an inccorect check.
Minor whitespace and reordering.
2014-10-25 20:36:29 -05:00
Ryan Houdek
484fc392d6
Fixes minor bug in the ARMv7 register cache.
...
Makes sure our register we are binding doesn't get unloaded immediately.
2014-10-25 20:34:11 -05:00
Rachel Bryk
f07d3be502
Fix acceleration emulation for wiimote and nunchuk.
...
The 1-2 least significant bits were missing.
2014-10-25 19:49:42 -04:00
comex
eb7f4dac50
Convert registersInUse to BitSet.
2014-10-25 16:57:25 -04:00
comex
b6a7438053
Add BitSet and, as a test, convert some JitRegCache stuff to it.
...
This is a higher level, more concise wrapper for bitsets which supports
efficiently counting and iterating over set bits. It's similar to
std::bitset, but the latter does not support efficient iteration (and at
least in libc++, the count algorithm is subpar, not that it really
matters). The converted uses include both bitsets and, notably,
considerably less efficient regular arrays (for in/out registers in
PPCAnalyst).
Unfortunately, this may slightly pessimize unoptimized builds.
2014-10-25 16:56:51 -04:00
comex
275755aaaf
Merge pull request #1381 from skidau/Remove-false-ext-exception-error
...
Added a check for external exceptions that have been set
2014-10-25 16:48:44 -04:00
comex
b7cb5b69c4
Merge pull request #1387 from RachelBryk/radius
...
Change default gcpad radius to 100.
2014-10-25 16:46:06 -04:00
Ryan Houdek
e780a49a06
Merge pull request #1375 from Sonicadvance1/ARMv7-optimizations
...
Minor ARMv7 JIT recompiler optimizations.
2014-10-25 08:28:10 -05:00
Rachel Bryk
c5fc3dd80f
Change default gcpad radius to 100.
...
Official gc controllers need it to be 100 to work properly, and it is
better to have it set too high than too low.
See issue 7762.
2014-10-24 15:35:44 -04:00
skidau
2c8e77dcc0
Added a check for external exceptions that have been set. Prevents a false positive log message.
2014-10-24 13:23:21 +11:00
skidau
3ab921d5b0
Merge pull request #1363 from lioncash/init-order
...
CoreParameter: Fix initializer list order
2014-10-24 13:03:38 +11:00
comex
1f5b1001ce
Merge pull request #1342 from phire/lessGetPointer
...
Eliminate getPointers which are memcpyed or memset.
2014-10-23 14:42:37 -04:00
Ryan Houdek
5bb19426b3
Optimizes instructions in ARMv7's JIT inside of the arith function.
...
For instructions where the second immediate value fits within an instruction encoding, just encode it directly in to the instruction.
2014-10-23 15:42:57 +00:00
Ryan Houdek
6743d6ef1f
Adds support back for non-immediate cmp/cmpi to ARMv7 JIT.
2014-10-23 15:39:09 +00:00
Ryan Houdek
0253c35d3a
Adds support to ARMv7's register cache for not loading a destination register prior to overwriting.
...
This extends the register cache's BindToRegister function with a doLoad argument just like x86's.
The speedup is minor for these implemented integer instructions.
2014-10-23 15:38:56 +00:00
Lioncash
a9f0bd72d2
Merge pull request #1369 from Sonicadvance1/enable-profiling
...
Enables block profiling in the UI on non x86 targets.
2014-10-23 08:09:39 -04:00
Ryan Houdek
2a1d4a7245
Removes some terrible printf debugging that was left over in the ARMv7 JIT.
2014-10-23 06:08:49 -05:00
Ryan Houdek
50135a988e
Enables block profiling in the UI on non x86 targets.
...
ARMv7 supports block profiling as well. So let's stop artificially limiting here.
2014-10-23 05:59:14 -05:00
Lioncash
5bb6f515d8
CoreParameter: Fix initializer list order
2014-10-22 23:38:13 -04:00
comex
00c6ec97a6
Merge pull request #1347 from comex/header-hygiene
...
Add missing includes where headers depend on other headers having been included first.
2014-10-22 23:23:58 -04:00
skidau
684cb658e2
Merge pull request #1354 from Sonicadvance1/ARMv7-stepping
...
Adds support for stepping in the ARMv7 JIT.
2014-10-23 13:31:17 +11:00
skidau
9836ce23e6
Merge pull request #1353 from Sonicadvance1/block-debugging
...
Don't enable stepping on ARMv7 JIT core if just in the debugger.
2014-10-23 13:30:04 +11:00
comex
6e774f1b64
Add missing includes where headers depend on other headers having been included first.
...
This is good hygiene, and also happens to be required to build Dolphin
using Clang modules.
(Under this setup, each header file becomes a module, and each #include
is automatically translated to a module import. Recursive includes
still leak through (by default), but modules are compiled independently,
and can't depend on defines or types having previously been set up. The
main reason to retrofit it onto Dolphin is compilation performance - no
more textual includes whatsoever, rather than putting a few blessed
common headers into a PCH. Unfortunately, I found multiple Clang bugs
while trying to build Dolphin this way, so it's not ready yet, but I can
start with this prerequisite.)
2014-10-21 21:22:16 -04:00
comex
9adf608f38
Merge pull request #1355 from FioraAeterna/fixmmuoff
...
MMU: allow page-table loads/stores if MMU is off
2014-10-21 14:55:18 -04:00
Ryan Houdek
a22fcf152d
Disable the fake vmem hack on 32bit targets.
...
This hack is incompatible with these targets due to how much memory space we allocate.
2014-10-21 12:56:28 +00:00
Fiora
f4fa8d0b83
MMU: allow page-table loads/stores if MMU is off
...
Fixes regressions in some games that apparently required this to work, but
don't really require full MMU emulation (e.g. with exceptions and all).
2014-10-21 05:55:56 -07:00
Ryan Houdek
77da164fe2
Adds support for stepping in the ARMv7 JIT.
2014-10-21 12:53:59 +00:00
Ryan Houdek
85605389d7
Don't enable stepping on ARMv7 JIT core if just in the debugger.
...
Also makes sure we aren't profiling CPU run times unless we are actually profiling.
2014-10-21 07:51:25 -05:00
Fiora
d7ff482618
Fix FPRF flag setting
...
Looks like I didn't quite change every place it needed to be renamed.
2014-10-21 04:56:35 -07:00
comex
c048691a57
Merge pull request #1292 from FioraAeterna/enablebats
...
Make EnableBATs an option instead of disabling it entirely
2014-10-21 02:26:49 -04:00
comex
24e72cd064
Merge pull request #991 from phire/dsi_should_crash
...
Panic if game does an invalid memory access.
2014-10-21 01:53:08 -04:00
skidau
305d2e1863
Merge pull request #1337 from skidau/AX-volume-clamp
...
Clamp the AX Volume to prevent clipping. Patch by hk.konpie. Fixes issue 7519.
2014-10-21 13:43:56 +11:00
skidau
3022da5d9f
Merge pull request #1318 from RachelBryk/disable-bios
...
Disable skip bios option if no bios files exists.
2014-10-21 13:23:23 +11:00
Scott Mansell
4fb6ab40a1
Eliminated getPointers which are memcpyed or memset.
...
Removes 12 getPointers.
2014-10-21 12:18:54 +13:00
Scott Mansell
d77e01e6c4
IPC_HLE: Replace (const char *)GetPointer(x) with GetString(x)
...
Removes 20 instances of GetPointer.
2014-10-21 11:10:34 +13:00
Stevoisiak
7f66344b64
Updated GCM references to ISO
2014-10-20 17:49:33 -04:00
Rachel Bryk
a67b9a4f52
Disable skip bios option if no bios files exists.
2014-10-20 14:17:19 -04:00
skidau
a4be65094f
Merge pull request #1314 from FioraAeterna/fixprofiler
...
JIT: fix profiler on non-Windows OSs
2014-10-20 14:37:32 +11:00
skidau
81efd0e87f
Merge pull request #1315 from RisingFog/movie-menu-input-display
...
Moved Input Display to Movie Menu
2014-10-20 14:34:02 +11:00
comex
4af98d63bc
Merge pull request #1344 from comex/mem-tools-testing
...
MemTools testing
2014-10-19 22:20:30 -04:00
comex
6a7cff02b8
Merge pull request #1343 from comex/yet-another-stupid-branch
...
Rename the poorly named {Read,Write}BigEData to Copy{From,To}Emu -
2014-10-19 22:18:57 -04:00
comex
c5c4dd49e6
Add a define to use sigaction on OS X instead of OS-specific page fault handling.
...
The latter was introduced last year in order to allow debugging without
turning off Fastmem; I wanted to see if the old way was faster. In
fact, it is not, but may as well keep the define around in case future
testing is necessary.
2014-10-19 20:41:54 -04:00
comex
f8dfb2ec90
Rename the poorly named {Read,Write}BigEData to Copy{From,To}Emu -
...
and change argument order to match memcpy.
Oh, and fix a lulzy buffer overflow in IOS emulation while I'm at it.
2014-10-19 19:34:38 -04:00
skidau
f9d9257c57
Fixed typo in the MEM2 handling.
2014-10-19 21:25:43 +11:00
skidau
990697bcbb
Clamp the AX Volume to prevent clipping. Patch by hk.konpie. Fixes issue 7519.
2014-10-19 21:20:33 +11:00
skidau
033a349444
Merge pull request #1299 from comex/blr-opt-infinite-loop
...
If the stack overflow trap region has already been tripped, don't continue to ignore faults there.
2014-10-19 15:22:42 +11:00
skidau
615ebe7b67
Merge pull request #1298 from RachelBryk/netplay
...
Get rid of netpad and just send the GCPadStatus in netplay.
2014-10-19 15:20:38 +11:00
Fiora
719326df65
Make EnableBATs an option instead of disabling it entirely
2014-10-17 19:05:01 -07:00
Fog
467ab1a629
Moved Input Display to Movie Menu
2014-10-17 21:08:34 -04:00
Fiora
99169eb620
JIT: fix profiler on non-Windows OSs
...
Still doesn't support timing code (since that's Windows-only), but run counts
will at least work without crashing.
2014-10-17 16:48:09 -07:00
skidau
73590b1323
Merge pull request #1266 from skidau/mmu-exram
...
Corrected the physical memory access to MEM2 via the MMU. Fixes Toy Story 3.
2014-10-17 17:10:51 +11:00
comex
4c2a542f1e
Revert "FastMem: don't let the backpatcher hit the same location twice"
2014-10-16 21:39:15 -04:00
comex
67088a1834
Fix signed/unsigned comparison and unused variable warnings.
2014-10-16 17:03:49 -04:00
Rachel Bryk
0f3194abc3
Get rid of netpad and just send the GCPadStatus in netplay.
2014-10-16 13:20:00 -04:00
comex
c5247673cd
If the stack overflow trap region has already been tripped, don't continue to ignore faults there.
...
In the unlikely case that it tripped and then, due to a bug, some other
fault occurred (e.g. stack misalignment), Dolphin would go into an
infinite loop rather than crashing.
2014-10-16 02:14:02 -04:00
skidau
f27aabd411
Merge pull request #1278 from lioncash/controller
...
ControllerInterface: Get rid of SetHwnd(), introduce Reinitialize()
2014-10-16 14:02:56 +11:00
skidau
002b9f7acd
Merge pull request #1222 from FioraAeterna/backpatchchanges
...
FastMem: don't let the backpatcher hit the same location twice
2014-10-16 14:00:29 +11:00
Lioncash
b7b2074cc2
ControllerInterface: Get rid of SetHwnd(), introduce Reinitialize()
...
Initialize now just takes the handle directly. Reinitialize is added because it is much more straightforward in comparison to doing the Shutdown-Initialize manually.
2014-10-15 09:29:25 -04:00
skidau
8ef21bc5e2
Merge pull request #1272 from RisingFog/sconfig-dump-frames
...
Move bDumpFrames to SConfig (and it's references)
2014-10-15 13:42:37 +11:00
comex
8f61c6f239
Merge pull request #1243 from comex/warning-fixes
...
Misc / warning fixes
2014-10-14 01:14:26 -04:00
comex
6650f8922d
Merge pull request #1283 from FioraAeterna/removebats
...
MMU: disable BAT resolution
2014-10-14 01:14:14 -04:00
comex
d4e8e3a6a3
Properly handle the Wiimote speaker data format being unknown.
2014-10-14 01:10:35 -04:00
comex
47faf7c4fd
Merge branch 'Remove-MMU-Speed-Hack-option' of https://github.com/skidau/dolphin into skidau-Remove-MMU-Speed-Hack-option
...
Conflicts:
Source/Core/Core/PowerPC/Jit64/JitAsm.cpp
2014-10-14 01:08:20 -04:00
Fiora
6ac2fcca61
MMU: disable BAT resolution
...
No known games, not even Wii MMU games like Cars 2 and Toy Story 3, use custom
BATs. This makes BAT resolution a waste of time. BAT handling could be
optimized significantly, but as long as nothing uses it, it's easier to just
disable it.
Should significantly improve performance in MMU-heavy games.
2014-10-13 22:04:03 -07:00
skidau
e50dad67ce
Merge pull request #1252 from FioraAeterna/regallocator
...
JIT: add basic register allocation heuristics
2014-10-14 12:45:48 +11:00
skidau
b4e82a5b9b
Merge pull request #1192 from skidau/dsp-acc-loop-adpcm
...
Fixed the step_size_bytes in the ADPCM Accelerator loop
2014-10-14 12:38:54 +11:00
skidau
ce35cd301b
Merge pull request #1169 from lioncash/cpu-core
...
Core: Use an enum for indicating CPU cores
2014-10-14 12:36:02 +11:00
skidau
96a2b74c02
Merge pull request #846 from lioncash/fpscr-enum
...
Core: Move FPSCR exception flags to a typed enum
2014-10-14 12:33:57 +11:00
Lioncash
9f2b48ab07
Core: Use an enum for indicating CPU cores
2014-10-13 10:35:31 -04:00
skidau
32dbdbe92f
Corrected the step size bytes for the start of the DSP accelerator chunk. Patch by hk.konpie
2014-10-13 22:10:37 +11:00
skidau
711a8aa6ad
Fixed the step_size_bytes in the ADPCM Accelerator loop taking into account the varying number of bytes that ADPCM steps by.
2014-10-13 22:10:37 +11:00
skidau
7b44e79356
Changed the FAST_TLB_CACHE to update its state only if the TLB cache is accessed by the game (not by Dolphin). The FAST_TLB_CACHE (written by booto) is faster and accurate to the hardware. Enabled the FAST_TLB_CACHE by default.
2014-10-13 18:00:45 +11:00
skidau
69a2d0cb96
Corrected the physical memory access to MEM2 via the MMU. Fixes Toy Story 3.
2014-10-13 16:01:02 +11:00
skidau
9551650c42
Merge pull request #1095 from crudelios/sw-bbox
...
Reimplement Bounding Box calculation using the software renderer.
2014-10-13 15:57:11 +11:00
Fog
8d424b114a
Move bDumpFrames to SConfig (and it's references)
2014-10-12 23:56:16 -04:00
skidau
a00ad6871c
Merge pull request #1220 from RisingFog/avsync
...
Proper Audio/Video Dumping
2014-10-12 14:04:45 +11:00
skidau
7443a07f6e
Merge pull request #1253 from lioncash/jitcache
...
JitCache: Use std::array to back the arrays within it.
2014-10-12 13:59:37 +11:00
skidau
9ddbdeb39f
Merge pull request #995 from FioraAeterna/fma
...
Add FMA support to emitter and use it in the JIT
2014-10-12 13:56:18 +11:00
skidau
8738b1879c
Removed the MMU Speed Hack option. The TLBHack is now enabled if the MMU option is disabled. This will help catch cases where a game requires the TLBHack but the option has not been set in the game ini. It also removes the possibility to mistakenly enable both the MMU and TLBHack.
2014-10-11 11:31:16 +11:00
crudelios
47c67f014f
Fix linux build and various warnings.
...
Increase savestate version.
2014-10-10 12:28:13 +01:00
Lioncash
8b831c9483
JitCache: Use std::array to back the arrays within it.
...
Cleans up some of the allocation process.
2014-10-10 00:22:09 -04:00
Fiora
7ba9a8537b
JIT: add basic register allocation heuristics
...
Should be at least a bit better than the previous LRU approach. Currently
has two basic components: whether a register is dirty (dirty registers need
to be stored, so clobbering them hurts more) and how many other registers will
be used between now and the next time a register gets used.
Also don't pre-load values that don't need to be in registers.
2014-10-09 20:09:14 -07:00
skidau
b7aed97508
Merge pull request #1239 from FioraAeterna/updatetables
...
CPU: improve instruction table flags for RC bits
2014-10-10 13:04:57 +11:00
Lioncash
560f180ea4
Merge pull request #1251 from lioncash/cast
...
PPCAnalyst: Remove unnecessary casts
2014-10-09 20:26:32 -04:00
Lioncash
bb377d0fc3
PPCAnalyst: Remove unnecessary casts
2014-10-09 20:19:01 -04:00
Fiora
9d45f51459
JIT: fix accidental disabling of block linking by default
...
Oops.
2014-10-09 12:00:40 -07:00
Fog
fc4125cdd1
Proper Audio/Video Dumping
2014-10-09 00:06:04 -04:00
skidau
86b81c55bf
Merge pull request #1226 from skidau/emu-wiimote-speaker-sample-rate
...
Hooked up the emulated wiimote speaker's sample rate and volume set by the game
2014-10-09 14:11:21 +11:00
Fiora
8bf2cf0641
Debug: fix disable block linking option
...
Previously it did the opposite of what it was supposed to; when checked, it'd
turn block linking on, and when unchecked, it'd turn it off.
Also update JITIL's block linking disabling in debug mode to match the behavior
of the regular JIT.
2014-10-08 19:03:25 -07:00
Fiora
75a1310ba9
CPU: improve instruction table flags for RC bits
2014-10-08 11:44:37 -07:00
Fiora
9734f0c834
JIT64: use FMA instructions
2014-10-07 21:41:01 -07:00
Ryan Houdek
5f0011d065
Fix ARMv7 JIT from XER optimization.
...
This was a subtle bug I introduced since I removed a LDR in one of the ComputeCarry functions.
Basically since I wasn't loading the XER value prior to operations when I did a BIC tmp, tmp, 1 it would clear the first bit in our temp register but
retain the rest of the "random" data from that temp register. This would then save in to xer_ca, which the Interpreter will use later without any
masking to generate the XER value. Our XER generation helper functions don't do any masking since they were only expecting a single bit worth of data
in xer_ca with the rest being zero.
So now we only have one bit of data being stored in xer_ca from the ARMv7 JIT recompiler, and also a slight optimization in the ComputeCarry function
that is used on the immediate path. There wasn't any reason to load xer_ca since it only contains one bit of data now.
2014-10-07 21:43:15 -05:00
skidau
38b64fd077
Merge pull request #1213 from RachelBryk/wii-tas-input
...
Add wiimote tas input.
2014-10-08 13:15:43 +11:00
skidau
f5b23834b5
Hooked up the emulated wiimote speaker's sample rate and volume set by the game.
2014-10-07 21:43:32 +11:00
comex
85086e1e6c
Merge pull request #1224 from FioraAeterna/profile
...
JIT: re-add profiling support on x86_64
2014-10-07 02:31:04 -04:00
Fiora
5919d0962f
JIT: re-add profiling support on x86_64
...
Still gives rather inaccurate results with conditional continue and/or
branch merging on, so those should probably be turned off when using it.
2014-10-06 20:26:58 -07:00
comex
9d059d1d2f
Merge pull request #1221 from LPFaint99/memcard
...
Fix endian error. allows loading of current games save even if the memca...
2014-10-06 23:21:36 -04:00
skidau
b3b34d16e6
Merge pull request #1218 from hthh/trampolinecaching
...
JIT: reuse trampolines when possible
2014-10-07 13:26:23 +11:00
skidau
8fdf43109f
Merge pull request #1216 from FioraAeterna/movoptimizations
...
Add more AVX support, refactor emitter, reduce redundant XMM moves
2014-10-07 13:25:28 +11:00
LPFaint99
5dec943762
Fix endian error. allows loading of current games save even if the memcard is mostly full
2014-10-06 18:43:59 -07:00
skidau
a0a64369fc
Merge pull request #1211 from skidau/remaining-block-count-zero
...
Re-added the change to make the dsp remaining block count zero-based.
2014-10-06 13:35:46 +11:00
Fiora
9b29fe8aed
WIP: don't let the backpatcher hit the same location twice
...
If a location is hit by the backpatcher, don't fastmem it when recompiling the
block unless the block has actually been invalidated.
2014-10-04 21:28:21 -07:00
hthh
c7208318fb
JIT: Reuse trampolines when possible
2014-10-05 15:03:11 +11:00
comex
47bf698b70
Merge pull request #1217 from lioncash/tcast
...
TrampolineCache: Remove unnecessary cast
2014-10-04 00:19:08 -04:00
comex
7bce3fcdf9
Merge pull request #1174 from FioraAeterna/fifowriteaddrfix
...
JIT: properly remove FIFO write addresses when code is invalidated
2014-10-04 00:18:58 -04:00
comex
1af4043f14
Merge pull request #1219 from FioraAeterna/fixclearcache
...
JIT: set clear_cache_asap to false when clearing the cache
2014-10-04 00:14:30 -04:00
skidau
0c4739eead
Merge pull request #1202 from FioraAeterna/fixstartupbats
...
Fix BAT register initial values in bootcode
2014-10-04 13:10:47 +10:00
skidau
d0ea2ad6dc
Merge pull request #1198 from lioncash/crypt
...
WiiSaveCrypted: Move some function params over to std::string
2014-10-04 13:10:28 +10:00
Fiora
17c56b58ab
JIT: set clear_cache_asap to false when clearing the cache
...
Would probably result in continual cache-clearing if the stack overflow code
in the BLR optimizations triggers.
2014-10-03 20:08:27 -07:00
Lioncash
eb1ddb886e
TrampolineCache: Remove unnecessary cast
2014-10-03 20:46:44 -04:00
Fiora
bf014636c8
JIT: add more AVX support, reduce redundant XMM moves
...
10-20% reduction in typical compiled block size for float-heavy JIT blocks.
2014-10-03 16:17:08 -07:00
Fiora
8fe730194b
JIT: load registers if they're going to be used later in the block
2014-10-03 11:58:04 -07:00
Fiora
6bff99fa75
JitAsmCommon: remove a few redundant moves
2014-10-03 10:05:42 -07:00
Rachel Bryk
c41b31d3ff
Add wiimote tas input.
2014-10-03 12:02:52 -04:00
skidau
30c8de495e
Re-added the change to make the dsp remaining block count zero-based. Fixes Dream Mix TV World Fighters.
2014-10-03 21:30:09 +10:00
skidau
16d3604211
Merge pull request #1196 from RachelBryk/framecount
...
Add on screen frame counter.
2014-10-03 13:31:52 +10:00
Rohit Nirmal
3b25c88736
Change another NULL to nullptr.
2014-10-01 23:38:42 -05:00
Lioncash
54c454fc82
Jit64: Change a NULL to nullptr
2014-10-02 00:05:27 -04:00
skidau
68edddf10e
Merge pull request #1193 from RachelBryk/ir-input-display
...
Fix IR input display.
2014-10-02 13:48:17 +10:00
skidau
50bf30111c
Merge pull request #1189 from RachelBryk/nunchuck-input-display
...
Add support for cc and nunchuck in input display.
2014-10-02 13:47:35 +10:00
skidau
11126f0bfc
Merge pull request #1155 from booto/dsp-int-fix
...
dsp int timing tweak
2014-10-02 13:46:03 +10:00
Fiora
1bce0a847b
Fix BAT register initial values in bootcode
...
Probably won't affect any real things for now, since these BATs are already
hardcoded into the memory handling functions.
2014-10-01 12:54:06 -07:00
Rachel Bryk
4280d9777a
Add support for cc and nunchuck in input display.
2014-10-01 03:51:49 -04:00
skidau
ffe160ad81
Merge pull request #1187 from lioncash/global
...
AudioCommon: Prefix soundStream global with g_
2014-10-01 13:23:11 +10:00
skidau
19fbefd9bd
Merge pull request #1176 from FioraAeterna/pagecrossings
...
MMU: support loads/stores that cross page boundaries
2014-10-01 13:22:52 +10:00
Lioncash
0d8b34612e
WiiSaveCrypted: Move some function params over to std::string
2014-09-30 20:31:59 -04:00
Rachel Bryk
f6c6f03cce
Add on screen frame counter.
2014-09-30 18:49:44 -04:00
Rachel Bryk
f7a993a853
Fix IR input display.
2014-09-30 08:24:18 -04:00
Fiora
85547d94be
JIT: properly remove FIFO write addresses when code is invalidated
...
Fixes a bug caused by interaction with carry optimizations; might fix other
issues too.
2014-09-30 01:00:23 -07:00
Lioncash
7f7fb5e70c
AudioCommon: Prefix soundStream global with g_
2014-09-30 03:06:16 -04:00
comex
a9b4016cd3
Merge pull request #1166 from FioraAeterna/flaglocking
...
JIT+Emitter: support locking flags
2014-09-30 02:57:53 -04:00
comex
58a29ec0cd
Merge pull request #1177 from lioncash/array
...
DSPJitRegCache: Use std::array to represent the register arrays
2014-09-30 02:50:53 -04:00
comex
4edc7fbf85
Merge pull request #1190 from comex/stackalign
...
Remove useless STACKALIGN macro.
2014-09-30 01:54:38 -04:00
comex
ac1f9f950f
Merge pull request #1186 from lioncash/macro
...
NetPlayClient: Remove unused macro
2014-09-30 01:52:01 -04:00
comex
2eebdff01b
Remove useless STACKALIGN macro.
...
It only ever did anything on 32-bit OS X.
Anyway, it wasn't even on the right functions, and these days
ABI_PushRegistersAndAdjustStack should handle maintaining the ABI
correctly.
2014-09-30 01:42:47 -04:00
Fiora
22f087275c
MMU: support loads/stores that cross page boundaries
...
Fixes some strange issues with Rogue Squadron 3 in JIT mode.
2014-09-29 21:19:21 -07:00
skidau
63cee3328f
Merge pull request #1167 from FioraAeterna/fixdebugwindow
...
Debug: fix display of instructions in virtual memory in MMU games
2014-09-30 13:28:41 +10:00
skidau
f675b33640
Merge pull request #1164 from FioraAeterna/bpcarry
...
JIT: fix carry merging across breakpoints
2014-09-30 13:25:24 +10:00
skidau
9d9984e96f
Merge pull request #1159 from FioraAeterna/blocklinkdebug
...
JIT: enable block linking and idle skipping in debug mode
2014-09-30 13:24:16 +10:00
skidau
7828ddd542
Merge pull request #1150 from FioraAeterna/extsmerge
...
JIT: merge lbz + extsb
2014-09-30 13:19:45 +10:00
skidau
da221e3d9c
Merge pull request #1018 from zhuowei/elf_map_basename_only
...
When loading the map file for a DOL/ELF file, extract only the filename from the DOL/ELF's path
2014-09-30 13:17:29 +10:00
Lioncash
05a8d9d54a
NetPlayClient: Remove unused macro
2014-09-29 08:42:18 -04:00
Lioncash
843a3f6c15
Core: Move FPSCR exception flags to a typed enum
2014-09-29 00:46:15 -04:00
comex
4c031bed4b
Merge pull request #1179 from lioncash/casts
...
Jit_Integer: Get rid of some cast noise in boolX
2014-09-28 23:58:09 -04:00
skidau
8ae2152093
Merge pull request #1168 from lioncash/unique
...
CoreParameter: Use unique_ptrs over raw pointers.
2014-09-29 13:55:00 +10:00
skidau
c7f3858379
Merge pull request #1138 from FioraAeterna/arithetweak
...
JIT: a small optimization for subfex and friends
2014-09-29 13:51:44 +10:00
comex
6c0a68d507
Add the override config option.
...
I hate the config code, but now is not the time to fix it...
2014-09-28 21:34:31 -04:00
comex
3a2048ea57
Add a central variable g_want_determinism which controls whether to try to make things deterministic.
...
It now affects the GPU determinism mode as well as some miscellaneous
things that were calling IsNetPlayRunning. Probably incomplete.
Notably, this can change while paused, if the user starts recording a
movie. The movie code appears to have been missing locking between
setting g_playMode and doing other things, which probably had a small
chance of causing crashes or even desynced movies; fix that with
PauseAndLock.
The next commit will add a hidden config variable to override GPU
determinism mode.
2014-09-28 21:34:31 -04:00
Lioncash
7e825fdca5
Jit_Integer: Get rid of some cast noise in boolX
2014-09-28 13:28:16 -04:00
Lioncash
ab639b41ab
DSPJitRegCache: Use std::array to represent the register arrays
2014-09-28 03:02:29 -04:00
Lioncash
ee076453ce
Merge pull request #1171 from lioncash/loop
...
DSPJitRegCache: Merge two loops in popRegs.
2014-09-28 02:07:44 -04:00
skidau
6bea53ab11
Clean-up the leftover dspARAMAddresses code that was no longer needed.
2014-09-28 15:38:35 +10:00
skidau
baeca3e03b
Merge pull request #1170 from lioncash/bounds
...
SI: Fix bounds check in GetDeviceType
2014-09-28 14:57:38 +10:00
skidau
afccf2276d
Merge pull request #1012 from skidau/aram-dma-exceptions
...
Compile the ARAM DMA exception checks into the JIT block
2014-09-28 14:48:38 +10:00
Fiora
3878187721
Interpreter: remove debug printf in psq_l
2014-09-27 20:44:45 -07:00
skidau
7184019090
Increased the savestate internal version.
...
Added a small note for instant dma.
2014-09-28 11:51:14 +10:00
Lioncash
8b578c7ba3
DSPJitRegCache: Merge two loops in popRegs.
2014-09-27 18:33:48 -04:00
Lioncash
1c42fd9928
SI: Fix bounds check in GetDeviceType
2014-09-27 16:44:21 -04:00
Lioncash
a8d8c9230b
CoreParameter: Kill off an snprintf usage
2014-09-27 14:45:03 -04:00
Lioncash
2f4d3961b3
CoreParameter: Use unique_ptr in place of raw pointers
2014-09-27 14:42:59 -04:00
skidau
86b6dfe4b3
Added a instant ARAM DMA mode which is enabled automatically when required.
...
Detects a situation where the game is writing to the dcache at the address being DMA'd. As we do not have dcache emulation, invalid data is being DMA'd causing audio glitches. The following code detects this and enables the DMA to complete instantly before the invalid data is written.
Added accurate ARAM DMA transfer timing.
Removed the addition of DSP exception checking.
2014-09-27 20:47:29 +10:00
skidau
4b37fdfa45
Added a CompileExceptionCheck function to the JitInterface and re-routed the existing code to utilise the interface.
2014-09-27 20:16:26 +10:00
skidau
945d431171
Added OPTYPE_LOADPS and OPTYPE_STOREPS instruction types to the PPC table.
...
Updated ARAM DMA and FIFO write exception checking to uses these types.
Conflicts:
Source/Core/Core/PowerPC/Interpreter/Interpreter_Tables.cpp
Source/Core/Core/PowerPC/PPCTables.h
2014-09-27 20:16:26 +10:00
skidau
0f256715e0
Re-added the ARAM DMA exception check. This fixes the audio cutting in and out of Resident Evil 2 and 3. Removed the special case for short transfers as it is no longer required.
2014-09-27 20:16:26 +10:00
skidau
d09e2abb0d
Compile the ARAM DMA exception checks into the JIT block in a similar style to FIFO writes. This ensures that the ARAM DMA is handled soon after the DMA completes. Fixes issue 7122 and issue 7342.
2014-09-27 20:16:25 +10:00
Fiora
fbbe9605a9
Debug: fix display of instructions in virtual memory in MMU games
2014-09-27 01:07:37 -07:00
Fiora
ac1fc9ad03
JIT+Emitter: support locking flags
...
This helps us avoid accidentally clobbering flags between two instructions
when the flags are expected to be maintained. Dolphin will of course crash
immediately, but at least it will crash loudly and alert us of the mistake,
instead of forcing hours of bisecting to find the subtle way in which the JIT
has managed to sneak a flag-modifying instruction where there shouldn't be one.
2014-09-26 20:47:06 -07:00
skidau
f5bbfa139d
Merge pull request #1146 from RachelBryk/netplay-input-display
...
Make input display work properly with netplay.
2014-09-27 13:25:01 +10:00
Fiora
39d4306a2e
JIT: fix carry merging across breakpoints
...
More precisely, don't do it.
2014-09-26 13:21:01 -07:00
Fiora
ba39c35f24
JIT: fix branch merging, take 2
...
NOT doesn't set flags.
2014-09-25 22:33:40 -07:00
skidau
30d77b38c5
Merge pull request #1127 from Sonicadvance1/QGR-BitField
...
Change the QGR union over to a BitField union.
2014-09-26 14:53:24 +10:00
skidau
9d746b89a2
Merge pull request #1162 from FioraAeterna/fixmerges
...
JIT: fix bugs with ComputeRC in branch merging patch
2014-09-26 14:46:53 +10:00
Fiora
f9ab25152c
JIT: fix bugs with ComputeRC in branch merging patch
...
We really, really need to be sure the input to ComputeRC is a register.
2014-09-25 21:45:25 -07:00
skidau
146725f64a
Merge pull request #1125 from Sintendo/fresjumps
...
Change fres/frsqrte jumps
2014-09-26 14:45:19 +10:00
comex
9cdd842080
Add a fake SContext definition for _M_GENERIC.
2014-09-25 18:47:34 -04:00
Fiora
23fbcecf13
JIT: enable block linking and idle skipping in debug mode
...
They can still be turned off, just don't force them off.
Also remove some dated comments.
2014-09-25 07:12:10 -07:00
comex
8dccb0c743
Fix fastmem in JitIL after 755bd2c4
.
...
That commit reorganized fastmem a bit; I wrote it before the patch to
support fastmem in JitIL landed, and forgot to edit it to account for
the fact. Since JitILBase now derives from Jitx86Base, the HandleFault
override can just be removed.
2014-09-25 01:15:58 -04:00
Sintendo
29cca5c84f
Change fres/frsqrte jumps
2014-09-24 21:58:01 +02:00
Fiora
bfab5f1e91
JIT: generic branch merging
...
Why merge just cmps and rlwinm when we can merge ALL the branches?
2014-09-24 12:34:18 -07:00
Ryan Houdek
76697922b4
Implement XER optimization on ARMv7 JIT core
...
Not completely optimized; there's room for improvement here.
2014-09-24 12:27:54 -07:00
Fiora
5fce109ce1
Reorganize carry to store flags separately instead of part of XER
...
Also correct behavior with regards to which bits in XER are treated as zero
based on a hwtest (probably doesn't affect any real games, but might as well
be correct).
2014-09-24 12:27:47 -07:00
skidau
788a719718
Merge pull request #1153 from skidau/twx-bindtoreg
...
Replaced KillImmediate with BindToRegister in the tw instruction.
2014-09-24 13:31:44 +10:00
skidau
a83792e914
Merge pull request #1074 from FioraAeterna/earlyflush
...
JIT: flush a register if it won't be used for the rest of the block
2014-09-24 13:30:02 +10:00
booto
7f76ad3edb
dsp int timing tweak
...
this fixes a bug in GE9E5D that caused hangs on boot
2014-09-24 00:50:46 +08:00
skidau
65eb0ff2fe
Replaced KillImmediate with BindToRegister in the tw instruction. Fixes the error "WriteNormalOp - a1 and a2 cannot both be memory" which appeared on starting Monopoly Streets.
2014-09-23 18:00:41 +10:00
skidau
cbf102794e
Merge pull request #1130 from Sonicadvance1/AArch64-jit-extXx
...
[AArch64] Implement instructions.
2014-09-23 13:52:30 +10:00
skidau
fb18d5376f
Merge pull request #1142 from lioncash/linucks
...
Fix some warnings on Linux
2014-09-23 13:43:18 +10:00
Fiora
88f2fbe1a4
JIT: fix merged bclr with comex's BLR optimizations
2014-09-22 18:22:31 -07:00
Fiora
f103234e2b
JIT: flush a register if it won't be used for the rest of the block
...
This should dramatically reduce code size in the case of blocks with
lots of branches, and certainly doesn't hurt elsewhere either.
This can probably be improved a good bit through smarter tracking of register
usage, e.g. discarding registers that are going to be overwritten, but this
is a good start and should help reduce code size and register pressure.
Unlike that sort of change, this is a "safe" patch; it only flushes registers,
which can't affect correctness, unlike actually discarding data.
As part of this, refactor PPCAnalyst to support distinguishing between
float and integer registers (to properly handle instructions that access
both, like floating-point loads and stores).
Also update every instruction in the interpreter flags table I could find
that didn't have all the correct flags.
2014-09-22 16:00:25 -07:00
Fiora
de86d2003a
JIT: merge lbz + extsb
...
PPC has no 8-bit sign-extended load, so this instruction pair is very common.
x86 can do it in one op (movsx), so merge them when possible.
2014-09-22 15:41:54 -07:00
Ryan Houdek
7f1185b941
Merge pull request #1140 from lioncash/android
...
Android: Silence a few warnings
2014-09-22 16:20:53 -05:00
Rachel Bryk
e4d71f36b1
Make input display work properly with netplay.
2014-09-22 12:56:35 -04:00
shuffle2
c617f324b2
Merge pull request #1143 from lioncash/exi
...
Core: Fix SIGABRT possibility in EXI_DeviceGecko
2014-09-22 00:16:34 -07:00
Lioncash
858d18a67e
Core: Fix SIGABRT possibility in EXI_DeviceGecko
...
Fixes issue 7586
2014-09-21 21:50:30 -04:00
Lioncash
836ff6d506
Fix some warnings on Linux
2014-09-21 20:13:22 -04:00
Lioncash
ea40fdf21c
Merge pull request #1132 from lioncash/osx
...
Fix building Dolphin on OSX without precompiled headers
2014-09-21 20:02:59 -04:00
Lioncash
dc79755303
Android: Silence a few warnings
2014-09-21 19:51:27 -04:00
Rachel Bryk
d933247c50
Remove an unused variable.
2014-09-21 19:40:18 -04:00
Ryan Houdek
1cb07ffc14
[AArch64] Implement twi and tw.
2014-09-21 14:17:04 -05:00
Fiora
505b1bd562
JIT: a small optimization for subfex and friends
2014-09-21 12:16:26 -07:00
Ryan Houdek
078147d424
[AArch64] Implement mfmsr
2014-09-21 07:38:21 -05:00
Ryan Houdek
9530800fd0
[AArch64] Implement mtsprin and mfsprin
2014-09-21 07:38:16 -05:00
Ryan Houdek
2bcea19492
[AArch64] Implement mtsr and mfsr
2014-09-21 07:36:14 -05:00
Tony Wasserka
1d23c2ca8b
GPU: Only load the relevant color components upon writes to the tev color registers.
...
The other two components need not be valid upon write, hence loading them results in glitches.
Fixes issue 6783.
2014-09-21 10:38:22 +02:00
Lioncash
a04a99251f
Fix building Dolphin on OSX without precompiled headers
2014-09-21 00:37:47 -04:00
Ryan Houdek
0f8c5bda40
[AArch64] Implement mcrf.
2014-09-20 21:19:25 -05:00
Ryan Houdek
e708e8d5a0
[AArch64] Implement negx.
2014-09-20 16:17:16 -05:00
Ryan Houdek
75590a99cb
[AArch64] Implement cntlzwx.
2014-09-20 14:52:56 -05:00
Ryan Houdek
76d2f331f0
[AArch64] Implement extshx and extsbx.
2014-09-20 14:46:53 -05:00
Ryan Houdek
9d7598266f
Change the QGR union over to a BitField union.
...
Makes it easier to generate a QGR in my unit test, cleaner overall of course.
2014-09-20 13:15:44 -05:00
Ryan Houdek
a829e596c7
Merge pull request #1121 from FioraAeterna/fixfsel
...
JIT: fix fsel/ps_sel implementations for NaN input
2014-09-20 12:40:55 -05:00
Fiora
6043c790b6
JIT: fix indexed paired singles
...
I didn't realize the I and W fields were in a different place for these
variants.
This should fix Paper Mario and probably lots of other things I accidentally
broke.
2014-09-20 00:20:49 -07:00
skidau
ae17d91992
Merge pull request #1096 from RachelBryk/save-slots
...
Add hotkeys to select save state slots
2014-09-20 15:45:02 +10:00
Ryan Houdek
eb23882398
Merge pull request #1120 from rohit-n/muh-precompiled-headers
...
Fix build failing when disabling precompiled headers.
2014-09-19 17:43:42 -05:00
Rohit Nirmal
46057db37d
Fix build failing when disabling precompiled headers.
2014-09-19 18:17:51 -04:00
Ryan Houdek
d7b40fa94c
Merge pull request #1119 from FioraAeterna/bytereverse
...
JIT: support byte-reversed stores/loads
2014-09-19 15:54:27 -05:00
Ryan Houdek
bdca720e33
Fix some indention on AArch64 JIT.
2014-09-19 15:23:21 -05:00
Ryan Houdek
47e47891d4
[AArch64] Implement a bunch of integer instructions
...
16 new instructions for AArch64.
2014-09-19 15:23:21 -05:00
Ryan Houdek
5671530026
Merge pull request #1101 from FioraAeterna/fixfallbacks
...
JIT: simpler fallback conditions for load/store float
2014-09-19 15:23:01 -05:00
Ryan Houdek
5b4aa1d6d4
Merge pull request #1123 from FioraAeterna/eieio
...
JIT: change eieio and tlbsync to DoNothing
2014-09-19 15:19:41 -05:00
Ryan Houdek
7cc586d615
Merge pull request #1100 from FioraAeterna/psq_insts
...
JIT: implement remaining psq_l/st instruction variants
2014-09-19 15:16:44 -05:00
Fiora
0f53bba45a
JIT: change eieio and tlbsync to DoNothing
...
The interpreter functions for these are no-ops anyways.
Also add some missing DoNothings to the ARM64 JIT.
2014-09-19 13:14:49 -07:00
Ryan Houdek
522d7eb275
Merge pull request #1109 from FioraAeterna/ps_cmp
...
JIT: add ps_cmp0/ps_cmp1/ps_res/ps_rsqrte
2014-09-19 14:41:05 -05:00
Ryan Houdek
526e92464b
Merge pull request #1103 from FioraAeterna/floatconstnaming
...
JIT: rename a few constants to be more accurate
2014-09-19 13:21:06 -05:00
magumagu
32e5043b29
WIP XFB scaling.
...
Still an ugly mess.
2014-09-19 12:33:15 -05:00
Ryan Houdek
ec310811a8
Merge pull request #1114 from Sonicadvance1/AArch64-fix-build
...
Fix AArch64 JIT compiling.
2014-09-19 09:19:25 -05:00
Fiora
c130a496f2
JIT: fix fsel/ps_sel implementations for NaN input
...
fselx was the main problem, but ps_sel was wrong too (even if there were no
known reported bugs with it).
This fixes Beyond Good and Evil (at the least).
2014-09-19 01:58:13 -07:00
Fiora
d96016ed21
JIT: support byte-reversed stores/loads
...
4 more instructions down.
Store ones should be pretty well-tested; load ones seem to almost never be
used. I found them in Turok Evolution, so I was able to check code generation,
but the relevant code didn't seem to be called.
2014-09-18 20:38:44 -07:00
skidau
bd740ae9c7
Merge pull request #1111 from Tilka/fix_gcpad_setmotor
...
Fix GCPad::SetMotor()
2014-09-19 13:26:05 +10:00
Fiora
af8772700a
JIT: add ps_res and ps_rsqrte using scalar implementations
2014-09-18 18:36:15 -07:00
Fiora
1b425dedd1
JIT: add ps_cmp0/ps_cmp1 implementations using current fcmp code
2014-09-18 17:57:28 -07:00
Ryan Houdek
a8abbdae85
Merge pull request #1106 from FioraAeterna/fixdebug2
...
JIT: fix debug mode
2014-09-18 19:52:35 -05:00
comex
3df935b98e
Reset RSP after calling Jit in case it cleared the code cache.
2014-09-18 18:23:36 -04:00
Ryan Houdek
f709dda6aa
Fix AArch64 JIT compiling.
2014-09-18 16:50:49 -05:00
Tillmann Karras
e35db54454
Fix and simplify GCPad::SetMotor()
...
abs() takes an int argument. Casting -0.5..0.5 to int always resulted in
zero.
2014-09-18 21:34:07 +02:00
Ryan Houdek
d54c8eb6bf
Merge pull request #1098 from FioraAeterna/cvtsi2ss
...
JIT: use cvtsi2ss in paired singles
2014-09-18 06:51:37 -05:00
Ryan Houdek
0294b344e2
Merge pull request #1086 from FioraAeterna/fixsrawint
...
Interpreter: fix carry calculation in srawx
2014-09-18 06:41:37 -05:00
Fiora
cd7853bd50
JIT: fix debug mode
2014-09-18 03:14:04 -07:00
Fiora
9ab816e6e9
JIT: fix regression in ps_sel
...
My code didn't maintain correct semantics with floating-point NaNs (a < b is
not the same as "not a >= b" in float), which seems to have broken FIFA 12.
2014-09-17 21:43:44 -07:00
comex
217758b607
Correct inaccurate comment.
2014-09-17 22:30:33 -04:00
comex
6695b5acce
Fix backwards #ifdef.
2014-09-17 22:30:20 -04:00
comex
97c9cb5882
Add missing push wrapper around UpdatePerformanceMonitor
2014-09-17 21:10:43 -04:00
Fiora
29fc151cc7
JIT: implement remaining psq_l/st instruction variants
...
These are used in at least a few popular games, including Super Smash Bros.
Brawl.
2014-09-17 17:10:27 -07:00