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
comex
7747c9efbb
Merge pull request #1429 from lioncash/concat
...
FileSystemGCWii: Shorten some string concatenations
2014-10-28 23:38:58 -04:00
comex
3247f28048
Merge pull request #1430 from lioncash/voldir
...
VolumeDirectory: Pass std::string by reference for SetUniqueID/SetName
2014-10-28 23:38:21 -04:00
comex
6618337ece
Merge pull request #1421 from comex/frames-mkdir
...
Create userdir/Dump/Frames as needed.
2014-10-28 23:37:36 -04:00
skidau
f426276b2e
Merge pull request #1413 from Stevoisiak/moreFlags
...
Added country flags for Russia and Australia
2014-10-29 14:15:45 +11:00
Stevoisiak
00620ea729
Added flags for Russia and Australia
2014-10-28 23:04:24 -04:00
Rohit Nirmal
55f91ecba4
DolphinWX: Fix -Wsign-compare warnings.
2014-10-28 21:07:48 -05:00
Rohit Nirmal
b70a75776e
DolphinWX: Remove unused variable.
2014-10-28 21:02:47 -05: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
073cce959a
Create userdir/Dump/Frames as needed.
...
This is used for framedump.raw in non-Windows builds without libav
support.
2014-10-28 17:24:07 -04:00
Lioncash
5ba5aa10e3
Merge pull request #1431 from magcius/fix-breakpoints
...
BreakPoints: Fix compile warning
2014-10-28 17:08:51 -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
comex
31c679a3dc
Merge pull request #1403 from waddlesplash/dolphin-qt
...
DolphinQt: Fix toolbar image loading on Retina displays
2014-10-28 16:15:04 -04:00
Scott Mansell
ba58cc47a3
Remove old (and now incorrect) error checking code.
...
We will now rely on Memory::CopyFromEmu to do bounds checking.
Some games actually load palettes from 0x00000000, despite the
fact no valid palette data should ever be there.
Fixes Issue 7792.
2014-10-29 08:53:53 +13:00
Scott Mansell
d77f361c01
Add range checking to CopyTo/FromEmu so it won't segfault.
2014-10-29 08:53:53 +13:00
Jasper St. Pierre
d9a1fc1564
BreakPoints: Fix compile warning
2014-10-28 12:22:30 -07:00
Augustin Cavalier
5b4b74de6a
Fix image loading on Retina and other HiDPI displays.
2014-10-28 14:39:20 -04:00
Lioncash
56bc58b9f4
VolumeDirectory: Pass std::string by reference for SetUniqueID/SetName
2014-10-28 14:18:54 -04:00
Lioncash
d1d70c1a7d
FileSystemGCWii: Shorten some string concatenations
...
Just does it all on one line instead.
2014-10-28 13:41:42 -04: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
b13ba0680c
Merge pull request #1345 from sgadrat/fix-avidump-framerate
...
Fix timing of AVI files dumped on Linux
2014-10-28 12:50:01 +11:00
skidau
726a3acc9a
Merge pull request #1409 from lioncash/err
...
OGL: Get rid of error macros
2014-10-28 12:48:39 +11:00
skidau
3f7a6e3eee
Merge pull request #1405 from lioncash/mono
...
CheatSearchTab: Make cheat list display in monospace font
2014-10-28 12:47:21 +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
comex
5f4c22df1a
Merge pull request #1423 from Buddybenj/cannot
...
Fix consistency of cannot throughout the project
2014-10-27 21:28:17 -04:00
Buddybenj
1b9add5cab
Fix consistency of cannot throughout the project
2014-10-27 20:26:18 -05:00
degasus
ce9ef2c438
OGL: fix interpolation of PP shaders
2014-10-27 21:15:32 +01:00
comex
c76b804258
Merge pull request #1406 from lioncash/const
...
DolphinQt: Make GetOS const
2014-10-27 15:04:41 -04:00
Augustin Cavalier
32c6848c79
Some style fixes.
2014-10-27 13:11:39 -04: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
Ryan Houdek
043bd710a0
Merge pull request #1394 from Sonicadvance1/fix-arm-cpudetect
...
Fixes ARM CPU detection routine for the hardware.
2014-10-27 05:07:24 -06:00
skidau
bf97e7f9c1
Merge pull request #1390 from RachelBryk/turbo
...
Alternate inputs once per frame rather than once per input for turbo.
2014-10-27 12:56:21 +11:00
skidau
7cc33a2fcc
Merge pull request #1384 from RachelBryk/hide-mouse
...
Fix description of hide mouse cursor option.
2014-10-27 12:55:17 +11:00
Yuriy O'Donnell
88d11ec5b2
D3D: RestoreState no longer resets PS resources
2014-10-27 00:02:30 +01:00
Yuriy O'Donnell
0c5a572f8d
D3D: Use two buffers for VertexManager
2014-10-26 23:38:15 +01:00
Yuriy O'Donnell
c35847b795
D3D: Using start index and base vertex instead of buffer offsets
2014-10-26 23:38:14 +01:00
Yuriy O'Donnell
48ba55203b
D3D: Vertex and index data in one buffer
2014-10-26 23:38:14 +01: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
7eebbcdca7
Fixed a crash that would occur when old symbol information was reused
2014-10-26 21:19:22 +11:00
Lioncash
49b94e5285
OGL: Get rid of error macros
2014-10-26 04:54:58 -04:00
skidau
73dca1ca33
Added a new option to add memchecks from the Watch window.
...
Fixed watch labels from being truncated at the first whitespace.
2014-10-26 16:14:17 +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
8d2931cf18
Breakpoints and watches are now loaded and saved on start/stop.
...
Saved Breakpoints and watches per game in the game ini.
2014-10-26 14:56:03 +11:00
skidau
b73130af77
Added Load/Save function for the Watch window.
...
Made the floating windows toolbars dockable.
Scaled down the breakpoint toolbar icons to 16x16.
2014-10-26 14:56:03 +11:00
skidau
b34e220086
Added a "Delete watch" context menu to the Watch window.
...
Added a "View memory" command to the context menu.
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
d0a3bb7650
Added "Add to watch" context menu items to the Memory and Register windows.
...
Added "View memory" context menu item to the Register window.
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
skidau
219a5078e8
Added a "Step Out" (aka "Step return") function to the debugger.
...
Conflicts:
Source/Core/DolphinWX/Debugger/CodeWindow.h
2014-10-26 14:56:01 +11:00
skidau
f895648eb9
Merge pull request #1396 from comex/star-star-star
...
Fix 'sizeof' which broke in my reference-to-pointer conversion.
2014-10-26 14:18:02 +11:00
skidau
38acd4d4bf
Merge pull request #1382 from Sonicadvance1/LLVM-disasm
...
Implements LLVM based disassembler for the debugger.
2014-10-26 13:46:01 +11:00
skidau
1078d78a6c
Merge pull request #1374 from lioncash/clearctx
...
AGL: Use NSOpenGLContext's clearCurrentContext in ClearCurrent
2014-10-26 13:44:50 +11:00
skidau
7c58eb344d
Merge pull request #1378 from lioncash/gl
...
GLUtil: Change return type from GLuint to GLenum for OpenGL_ReportGLError.
2014-10-26 13:44:34 +11:00
Lioncash
14c3445ad2
DolphinQt: Make GetOS const
2014-10-25 21:51:58 -04:00
Lioncash
adf6ce076c
CheatSearchTab: Make cheat list display in monospace font
2014-10-25 21:44:56 -04: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
comex
5f21683343
Merge pull request #1388 from waddlesplash/dolphin-qt
...
DolphinQt: About dialog fixes, SystemInfo dialog
2014-10-25 21:20:02 -04:00
Augustin Cavalier
7cd0a13d35
Fixes from @comex to add the app bundle and icon on Mac.
2014-10-25 21:17:32 -04:00
Augustin Cavalier
69cd8229d8
Fixes to the About dialog & add the SystemInfo dialog.
...
Also fix the build on Mac OS X.
2014-10-25 20:59:07 -04: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
b29e5146ec
Convert some VideoCommon stuff to BitSet.
...
Now with a minor performance improvement removed for no reason.
2014-10-25 16:57:25 -04:00
comex
f51c233a08
Add workaround for OS X symbol clash and AllOnes helper method.
2014-10-25 16:57:25 -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
Lioncash
da528008de
CheatsWindow: Remove unnecessary header includes and forward decls
2014-10-25 16:56:16 -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
4b0c6d8e0f
Merge pull request #1385 from lioncash/bitfield
...
BitField: Fix a typo in the sample usage.
2014-10-25 16:48:31 -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
Stevoisiak
d607903567
VideoConfigDiag: Updated video resolution description
...
Changed description to recommend selecting "auto"
2014-10-25 16:39:58 -04:00
Lioncash
51a96297e6
CheatSearchTab: Fix signed/unsigned comparison warning
2014-10-25 16:32:33 -04:00
Ryan Houdek
3ac2d8e1f1
Revert "Removes ARMv7 specific byteswap routines from CommonFuncs.h"
2014-10-25 15:28:04 -05:00
comex
a9f9e81330
Use double braces for std:array initialization to avoid clang warning.
...
std::array does not have an initializer list constructor, instead (for
some reason) being defined to contain one public array member, allowing
it to be directly initialized. Thus the most explicit way to initialize
it is with two braces, one for the struct and one for the array. C++
allows the second pair of braces to be omitted, but clang complains
about it.
2014-10-25 15:39:24 -04:00
comex
5c2a470b97
Fix 'sizeof' which broke in my reference-to-pointer conversion.
2014-10-25 15:02:12 -04:00
Ryan Houdek
c2364a54c1
Fixes packaging OS X binary with spaces in the directory name.
2014-10-25 10:51:54 -05:00
Ryan Houdek
b66a7f83c2
Fixes ARM CPU detection routine for the hardware.
...
We weren't dropping a newline character from the string, we were cutting off the last character of the hardware name.
This fixes my TK1 being called 'lagun' when it's name is 'laguna'
2014-10-25 09:14:14 -05: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
skidau
bc26cb1b19
Merge pull request #1322 from degasus/ogl-pp
...
OGL: force enable postprocessing
2014-10-25 13:48:27 +11:00
skidau
8598d6bc2b
Merge pull request #1364 from RachelBryk/titles
...
Read game title from ini file, or titles.txt if it exists.
2014-10-25 13:33:26 +11:00
skidau
726306fa27
Merge pull request #1367 from lioncash/radiobox
...
CheatSearchTab: Use a wxRadioBox for data sizes
2014-10-25 13:32:24 +11:00
skidau
f1e5765b99
Merge pull request #1372 from Sonicadvance1/fix-egl-blackness
...
Fixes black screen issue on EGL+X11 systems.
2014-10-25 13:31:37 +11:00
Ryan Houdek
cb10bef9a4
Implements LLVM based disassembler for the debugger.
...
This will work for all of our platforms, x86, ARMv7, and AArch64.
Main issue with this is that LLVM's cmake files aren't correctly finding the LLVM install.
Not sure if this is Ubuntu's issue or not, it may just work on other operating systems.
We could potentially improve this, you can pass in a specific CPU in to the LLVM disassembler. This would probably affect latency times that are
reported by LLVM's disassembly? This needs to be further investigated later.
2014-10-24 18:10:21 -05:00
Rachel Bryk
f199acc234
Alternate inputs once per frame rather than once per input for turbo.
...
Fixes turbo for games that do not run at 60 fps.
2014-10-24 17:56:46 -04:00
Ryan Houdek
6483f8d45c
Removes ARMv7 specific byteswap routines from CommonFuncs.h
...
GCC has optimized this using the exact same code since 4.7 or 4.8.
Android building falls back to the __linux__ route.
No need to keep these around anymore since we aren't building on an old GCC version.
2014-10-24 16:21:54 -05:00
Augustin Cavalier
51700a2b68
Fix the brand/cpu_string reversal.
...
Before this commit, the two were reversed ("cpu_string" had the brand, e.g. "AuthenticAMD"; and "brand_string" had the CPU type, e.g. "AMD Phenom II X4 925").
2014-10-24 16:09:21 -04: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
booto
6afdff6023
VideoCommon: loop bug in ShaderGenCommon.h debug
2014-10-25 01:52:31 +08:00
Lioncash
c0c835d0b6
BitField: Fix a typo in the sample usage.
2014-10-24 13:33:02 -04:00
Rachel Bryk
0e92a47bc8
Fix description of hide mouse cursor option.
2014-10-24 12:36:14 -04:00
Lioncash
b1bdce7d77
TextureCache: Get rid of explicit deletes in SaveTexture
2014-10-24 08:47:06 -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
skidau
716fe06289
Merge pull request #1349 from comex/good-job-dereferencing-null-on-purpose
...
Fix some warnings from Clang trunk in an overly aggressive manner
2014-10-24 13:03:09 +11:00
skidau
ace57fb515
Merge pull request #1348 from Sonicadvance1/JitBlockView-cleanup
...
Cleans up the JIT block viewer in the WX UI.
2014-10-24 13:01:53 +11:00
Sylvain Gadrat
3a12c50dc1
Fix timing of AVI files dumped on Linux
...
The timing information is set on s_scaled_frame->pts, giving precise
timing information to the encoder. Frames arriving too early (less than
one tick after the previous frame) are droped. The setting of packet's
timestamps and flags is done after the call to avcodec_encode_video2()
as this function resets these fields according to its documentation.
2014-10-23 23:34:38 +02: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
Lioncash
3509a6d03e
GLUtil: Change return type from GLuint to GLenum for OpenGL_ReportGLError.
2014-10-23 13:04:19 -04:00
Ryan Houdek
5204acd5ee
Fixes OpenSLES's sample rate.
...
I was statically setting the sample rate to 44.1Khz when we default to run at 48Khz.
This was causing audio to sound much too low.
2014-10-23 11:29:49 -05: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
101af72102
AGL: Use NSOpenGLContext's clearCurrentContext in ClearCurrent
2014-10-23 10:56:42 -04:00
Ryan Houdek
ec56c3b8d3
Fixes black screen issue on EGL+X11 systems.
...
We weren't setting the backbuffer dimensions on this platform when the window is created.
This required a resize event to first be fired in order to see anything.
So instead do like GLX + X11 platforms do and query the dimensions and set the backbuffer to them.
Should fix issue 7666.
2014-10-23 08:06:42 -05:00
Ryan Houdek
a2c8783417
Enables EarlyZ support in OpenGL ES 3.1.
2014-10-23 07:34:07 -05: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
Scott Mansell
23832987b5
Revert changes preloading of RGBA8 tiles.
...
This path should probally be optimised, but it's out of the
scope of this PR.
2014-10-23 18:15:29 +13:00
Lioncash
5bb6f515d8
CoreParameter: Fix initializer list order
2014-10-22 23:38:13 -04:00
Lioncash
40b2737458
CheatSearchTab: Use a wxRadioBox for data sizes
2014-10-22 23:37:35 -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
Rachel Bryk
b1e14a65a2
Read game title from ini file, or titles.txt if it exists.
2014-10-22 22:19:40 -04:00
degasus
7292ea6a04
OGL: force enable postprocessing
2014-10-23 00:21:52 +02:00
skidau
5d4b4c793a
Merge pull request #1340 from Sonicadvance1/EGL-fixes
...
Remove hard dependencies of GLX and libGL from Dolphin.
2014-10-22 13:15:46 +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
06433652be
Improve some libcdio CoreFoundation code.
...
I found it via clang complaining about a useless null check on an array,
but I decided to get rid of the array in favor of dynamic allocation, as
there was no reason to assume a maximum length of 0x32 bytes. Plus, add
a CFString type check just in case, and switch to UTF-8 in the
off-chance it matters.
The result has not actually been tested, as I have no CD drive.
2014-10-21 21:20:11 -04:00
comex
8492d04dfa
Use pointers instead of references in GetUidData to avoid the undefined behavior of *(T *)nullptr (ewwww)
2014-10-21 21:20:05 -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
ecf65d6f1f
Cleans up the JIT block viewer in the WX UI.
...
This code was an absolute mess. It had allocated an arbitrarily large string buffer to hold instructions that were disassembled.
Strip out all of the nasty raw C string manipulation and replaces it with ostringstream usage.
Fixes an issue where if you didn't have a JIT recompiler running then Dolphin would instantly crash if you tried comparing PPC to x86 code.
Changed the disassembly of the host side code from being inline to the function to instead being in a class, this will be required when I add support
for ARMv7 and AArch64 to this window.
2014-10-21 12:27:59 -05:00
Lioncash
eef9453abe
Merge pull request #1358 from Sonicadvance1/ARMv7-NOP
...
Changes from ARMv6 NOP to ARMv7 NOP.
2014-10-21 13:05:06 -04:00
Ryan Houdek
2e94814441
Changes from ARMv6 NOP to ARMv7 NOP.
...
Dolphin doesn't support ARMv6. Get this out of here.
2014-10-21 14:17:07 +00: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
78deebd732
Merge pull request #1346 from kayru/d3d_clip_enable
...
D3D: Enabled depth clipping
2014-10-21 01:59:24 -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
Yuriy O'Donnell
72ba13ca8a
D3D: Enabled depth clipping
2014-10-21 06:26:20 +02: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
833ff4a065
Merge pull request #1334 from lioncash/cheats
...
Break Cheat Manager components out into their own source files.
2014-10-21 13:43:06 +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
3aa979d7d7
Remove another 3 getPointers.
...
Thanks neobrain for spotting these.
2014-10-21 12:18:54 +13:00
Scott Mansell
4fb6ab40a1
Eliminated getPointers which are memcpyed or memset.
...
Removes 12 getPointers.
2014-10-21 12:18:54 +13:00
comex
ea16b2d065
Merge pull request #1335 from lioncash/indent
...
Debugger: Fix class indentation
2014-10-20 19:17:24 -04: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
f65bb10c93
Merge pull request #1308 from kayru/shader_generator_write_opt
...
Workaround for MSVC not optimizing away Write() in GeneratePixelShader
2014-10-20 17:15:53 +11:00
skidau
e8da34ef25
Merge pull request #1320 from FioraAeterna/hash64bitcrc
...
Use CRC to output 64 bits instead of 32
2014-10-20 14:50:21 +11: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
skidau
de2bf4c508
Merge pull request #1317 from lioncash/filter
...
Remove unused filter in DolphinWX vcproj file.
2014-10-20 13:32:37 +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
Lioncash
c251cada55
Merge pull request #1326 from waddlesplash/dolphin-qt
...
DolphinQt: link to Core, resource system
2014-10-19 15:40:23 -04:00
Augustin Cavalier
8d4068527b
DolphinQt: Stub Host_* functions & Resource system.
2014-10-19 15:36:37 -04:00
Lioncash
656a2a16a3
TASInputDlg: Pass string by reference for CreateStickLayout
...
Also handles strings passed to it correctly.
2014-10-19 12:36:39 -04:00
Ryan Houdek
b769331f50
Merge pull request #1325 from Sonicadvance1/Android-OpenSLES-race
...
Fix a race condition in our OpenSL ES audio backend.
2014-10-19 08:53:19 -05:00
Ryan Houdek
b3cee80faa
Merge pull request #1321 from Sonicadvance1/Qualcomm-v95
...
Change driver details to reflect Qualcomm's changes with their v95 driver
2014-10-19 08:48:42 -05:00
Ryan Houdek
e236d28585
Remove a hard dependency from libGL from the software renderer.
...
I must have missed this when dropping OpenGL library includes. This is annoying when on a system that doesn't have libGL.
2014-10-19 07:48:14 -05:00
Ryan Houdek
821a41e62f
Remove hard dependency of GLX from Dolphin with X11.
...
This is particularly annoying on a EGL only system that doesn't have GLX.
2014-10-19 07:48:11 -05: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
Lioncash
635408b686
Debugger: Fix class indentation
2014-10-18 22:55:23 -04:00
Lioncash
3782be15a3
Merge pull request #1309 from Stevoisiak/spellingFix
...
Minor spelling fix
2014-10-18 22:40:41 -04:00
Lioncash
650192390c
CheatsWindow: unfriend CreateCodeDialog.
...
This is no longer needed.
2014-10-18 21:38:17 -04:00
Lioncash
e7939a6b44
DolphinWX: Reimplement cheat listbox updating, but without a global
...
Just use event handling.
2014-10-18 21:36:39 -04:00
Lioncash
90eaf9519c
CheatsWindow: Remove unnecessary wxPanel in the wxDialog
...
We can simply size the controls within the dialog directly.
2014-10-18 21:32:42 -04:00
Lioncash
f0769233e6
DolphinWX: Split cheat window components into their own source files
2014-10-18 21:32:33 -04:00
Yuriy O'Donnell
97423d5ed8
D3D: Fixed anisotropic filtering.
...
This got broken when d3d state cache was implemented.
2014-10-18 17:47:47 +02:00
Ryan Houdek
73512ad38f
Fix a race condition in our OpenSL ES audio backend.
...
After calling enqueue the callback would fire before we had assigned g_mixer a value.
This would cause a fun crash to happen.
2014-10-18 08:32:14 -05:00
Ryan Houdek
9108a11af4
Change driver details to reflect Qualcomm's changes with their v95 driver.
...
They fixed their issues with dynamic UBO array member access.
There are many other issues though.
2014-10-18 02:50:57 -05:00
Fiora
d2e004fa9e
Use CRC to output 64 bits instead of 32
...
A bit hacky, but should dramatically reduce the odds of hash collision.
2014-10-18 00:24:35 -07:00
comex
742f9c6b14
Merge pull request #1319 from lioncash/tas_vars
...
TASInputDlg: Apply m_ prefix to class member variables.
2014-10-18 01:04:32 -04:00
Lioncash
9df0fff7cc
TASInputDlg: Apply m_ prefix to class member variables.
2014-10-18 00:37:13 -04:00
Lioncash
48a27458d1
Remove unused filter in DolphinWX vcproj file.
2014-10-17 23:11:38 -04:00
skidau
0d1f8527c7
Merge pull request #1297 from RisingFog/audio-dump-during-emulation
...
Start/Stop Audio Dump During Emulation
2014-10-18 13:16:41 +11:00
skidau
c80ba8704c
Merge pull request #1276 from RisingFog/flipped-audio-dump
...
Flipped Wave File Channels for Audio Dumping
2014-10-18 13:15:23 +11:00
skidau
a5674bbe84
Merge pull request #475 from kayru/d3d_state_cache
...
D3D: Implemented cache for dynamic render states
2014-10-18 13:11:39 +11:00
Fiora
c74b4df13e
Add FPRF interface option, change from EnableFPRF to just FPRF
2014-10-17 19:06:18 -07: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
comex
2684c75c6e
Merge pull request #1304 from FioraAeterna/fasterhash
...
Hash: unroll CRC loop, since CRC32 typically has nontrivial latency
2014-10-17 20:24:47 -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
Fiora
15a4bccb73
Hash: unroll CRC loop, since CRC32 typically has nontrivial latency
...
Seems to be about 20-30% faster texture cache hashing on my machine.
2014-10-17 15:39:08 -07:00
Stevoisiak
e86ff867fe
Fixed minor typo
2014-10-17 17:26:56 -04:00
Yuriy O'Donnell
b78396847f
D3D: Removed SetBlendOp, SetSrcBlend and SetDestBlend as they are now trivial
2014-10-17 22:24:57 +02:00
Stevoisiak
ed5e698511
Minor spelling fix
2014-10-17 15:51:19 -04:00
Yuriy O'Donnell
d23da7dbef
Added __forceinline to AlphaTest::TestResult() to make MSVC inline it
2014-10-17 21:50:41 +02:00
Yuriy O'Donnell
5fdda135d2
Workaround for MSVC not optimizing away Write() in GeneratePixelShader
...
ShaderConstantProfile and ShaderUid now have an empty implementation
of Write() that uses variadic templates instead of varargs. MSVC is now
able to inline and optimize away this when necessary.
2014-10-17 21:37:42 +02: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
i418c
5394967e03
Update freelook description.
2014-10-16 19:58:15 -07:00
i418c
0ac3e8c19f
Fix Freelook on Linux and add speed reset.
...
Should fix issue 7692.
Also fixes issue 7147.
I have no idea if these changes will affect Mac or Windows users, so please test.
2014-10-16 19:57:11 -07:00
comex
4c2a542f1e
Revert "FastMem: don't let the backpatcher hit the same location twice"
2014-10-16 21:39:15 -04:00
comex
4e8cc952bb
Merge pull request #1247 from Stevoisiak/WiimoteSubmenu
...
Moved "Connect Wiimote" options into submenu
2014-10-16 20:12:35 -04:00
comex
67088a1834
Fix signed/unsigned comparison and unused variable warnings.
2014-10-16 17:03:49 -04:00
comex
4134a0ad54
Make some variables static (should probably adjust for coding style too, but I'm not the one who merged code with bad style...)
2014-10-16 17:03:37 -04:00
comex
1ff86a4716
Merge pull request #1295 from crudelios/remove-bbox-settings
...
Remove setting to enable or disable Bounding Box calculation.
2014-10-16 17:00:37 -04:00
degasus
8f403696ea
DriverDetails: mark intel buffer_storage bug as fixed
2014-10-16 22:51:32 +02:00
Rachel Bryk
0f3194abc3
Get rid of netpad and just send the GCPadStatus in netplay.
2014-10-16 13:20:00 -04:00
Yuriy O'Donnell
9bdfd4a833
D3D: State cache now reduces number of blend state permutations by collapsing some states that have blending disabled
2014-10-16 18:27:43 +02: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
Fog
108087bb68
Flipped Wave File Channels
...
This change was done because with the previous method of dumping audio, the mixer would handle switching the RL being emitted by the DSP to LR, and thus would provide the proper channel orientation. Because we're now dumping directly from PushSamples() and PushStreamingSamples(), it was writing the right channel to the left channel of the wave file and vice versa.
2014-10-15 23:16:48 -04:00
skidau
3023abc1b5
Merge pull request #1285 from degasus/master
...
PixelShaderGen: replace multiplication with shift
2014-10-16 14:04:25 +11: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
skidau
fc774f0232
Merge pull request #1062 from zhuowei/master
...
Parse input as hex instead of decimal to match display values in the register view
2014-10-16 13:58:56 +11:00
Fog
f2ed533841
Start/Stop Audio Dump During Emulation
2014-10-15 20:50:38 -04:00
Yuriy O'Donnell
bea68c95a4
D3D: Fixed uninitialized members of gx_state
2014-10-15 20:22:41 +02:00
Yuriy O'Donnell
21655dc61a
D3D: moved render state cache implementation to D3DState.h/cpp
2014-10-15 20:22:41 +02:00
Yuriy O'Donnell
e7f8032d7d
D3D: State cache now uses BitField to define packed render states
2014-10-15 20:22:40 +02:00
Yuriy O'Donnell
2e4667caaa
D3D: Moved render state cache into separate source files.
...
Refactored StateCache::Get() to early out for narrower indentation.
Added comments to clarify ownership of objects returned by StateCache::Get().
2014-10-15 20:22:39 +02:00
Yuriy O'Donnell
f434bd7d3f
D3D: Implemented cache for dynamic render states
2014-10-15 20:22:39 +02:00
crudelios
d281b4d7e1
Remove setting to enable or disable Bounding Box calculation.
2014-10-15 19:02:54 +01: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
8912315596
Merge pull request #1290 from lioncash/xfb
...
Fix XFB scaling in D3D
2014-10-15 14:09:33 +11: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
skidau
9f5ea81ffe
Merge pull request #1274 from lioncash/uninit
...
TASInputDlg: Fix some potential uninitialized variable warnings.
2014-10-15 13:25:52 +11:00
slx7R4GDZM
5a3f19aeaf
Fix XFB scaling in D3D
2014-10-14 22:25:31 -04:00
Markus Wick
1227bd2ba6
PixelShaderGen: replace multiplication with shift
...
iirc both nvidia and i965 doesn't optimize this
2014-10-14 12:34:37 +02: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
b93953250a
TAS warning fixes: unused vars, shadowing, incorrect (unsigned)
2014-10-14 01:11:31 -04:00
comex
5b8722b6f2
Don't pass u64 (which may be long long) to %lu.
...
A type-safe StringFromFormat sure would be nice...
2014-10-14 01:10:35 -04:00
comex
d4e8e3a6a3
Properly handle the Wiimote speaker data format being unknown.
2014-10-14 01:10:35 -04:00
comex
a27f5fe301
Remove another auto .. -> declaration.
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
fd33ecaecd
Merge pull request #1268 from lioncash/append
...
ControllerEmu: Get rid of redundant string appending
2014-10-14 12:50:18 +11:00
skidau
a069183316
Merge pull request #1267 from lioncash/statics
...
VolumeCreator: Make master key arrays static
2014-10-14 12:49:25 +11:00
skidau
01359a481b
Merge pull request #1265 from skidau/debugger-registers-mmu
...
Added some of the MMU registers into the debugger Register window
2014-10-14 12:47:47 +11: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
Lioncash
81e2cf7490
Merge pull request #1271 from Sonicadvance1/AArch64-JIT-UI
...
Add AArch64 JIT recompiler to wxWidgets UI.
2014-10-13 02:01:14 -04: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
Lioncash
01f1768c55
Merge pull request #1273 from lioncash/iamanidiot
...
Software: Remove obsoleted VideoConfigDialog.
2014-10-13 00:46:42 -04:00
Lioncash
6d3487aee9
TASInputDlg: Fix some potential uninitialized variable warnings.
...
Also guard against null (even if it doesn't happen it stops more warnings if someone compiles with -Wall or runs analysis with clang.
2014-10-13 00:40:17 -04:00
Lioncash
b315040c6b
Software: Remove obsoleted VideoConfigDialog.
2014-10-13 00:30:08 -04:00
Fog
8d424b114a
Move bDumpFrames to SConfig (and it's references)
2014-10-12 23:56:16 -04:00
Ryan Houdek
0a0183ee44
Add AArch64 JIT recompiler to wxWidgets UI.
...
This also fixes an issue where it would show the ARMv7 JIT recompiler on AArch64, also the issue of showing the now non-existant ARM JITIL.
Also fixes an issue where it would show the x86 JIT recompilers on a non ARM platform.
2014-10-12 22:49:07 -05:00
Fog
cd0c784d5a
Changed Dump Frames References
2014-10-12 19:51:13 -04:00
Lioncash
a1bee05f5f
ControllerEmu: Get rid of redundant string appending
2014-10-12 17:47:10 -04:00
Lioncash
00b3cc3b09
VolumeCreator: Make master key arrays static
...
Only used within this translation unit.
2014-10-12 15:07:39 -04:00
skidau
6d9990585c
Added some of the MMU registers into the debugger Register window
2014-10-12 20:03:29 +11:00
skidau
18c81dbc33
Merge pull request #1261 from lioncash/mesa-resonance-cascade
...
AVIDump: Add missing CoreTiming header
2014-10-12 14:26:23 +11:00
Lioncash
e283839b68
AVIDump: Add missing CoreTiming header
...
Fixes build on the mesa buildbot
2014-10-11 23:12:19 -04:00
skidau
88f885f5a4
Merge pull request #1257 from RisingFog/moviemenudumping
...
Added Dump Frames/Audio to Movie Menu
2014-10-12 14:06:29 +11: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
Fog
432e89b68d
Added Dump Frames/Audio to Movie Menu
2014-10-11 12:31:02 -04:00
skidau
a373cc0654
Merge pull request #1231 from Armada651/borderless
...
Support the borderless fullscreen option in all backends.
2014-10-11 14:27:49 +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
Ryan Houdek
f6233cd531
Merge pull request #1254 from RachelBryk/unicode
...
Replace wxFileExists() with File::Exists().
2014-10-10 17:35:22 -05:00
Henrik Rydgård
877081c7df
Be consistent with braces.
2014-10-10 22:34:03 +02:00
Henrik Rydgård
9bca1a00d7
x64 emitter: Add some more missing ops (MOVDQA, MOVDQU, PSHUFHW)
...
Also constify some pointers.
2014-10-10 18:30:05 +02:00
Henrik Rydgård
a2c46665c5
x64 emitter: Add a few missing instructions
2014-10-10 18:30:04 +02:00
Rachel Bryk
bf7de71fd0
Replace wxFileExists() with File::Exists().
...
It did not handle unicode properly.
2014-10-10 11:22:47 -04:00
crudelios
1e3b9ecdc1
Fix compile errors after rebase.
2014-10-10 12:44:44 +01:00
crudelios
9786f54414
Fixed a small bug.
2014-10-10 12:28:17 +01:00
crudelios
987bd8bb8f
Several small optimizations.
2014-10-10 12:28:16 +01:00
crudelios
176ea06e82
Get buildbot to compile.
2014-10-10 12:28:15 +01:00
crudelios
47c67f014f
Fix linux build and various warnings.
...
Increase savestate version.
2014-10-10 12:28:13 +01:00
crudelios
2d4b7e3f3f
Reimplement Bounding Box calculation using the software renderer.
2014-10-10 12:27:06 +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
Steven V.
bcf8f8f0b2
Fixed minor capitalization issue
2014-10-09 16:59:58 -04:00
Steven Vascellaro
2ce90f267c
Moved "Connect Wiimote" options into submenu
...
Moved "Connect Wiimote 1-4" and "Connect Wii Balance Board" into their
own submenu.
2014-10-09 15:15:42 -04:00
Fiora
9d45f51459
JIT: fix accidental disabling of block linking by default
...
Oops.
2014-10-09 12:00:40 -07:00
Jules Blok
03e1bd0995
Limit Borderless Fullscreen to Windows systems.
2014-10-09 11:30:26 +02:00
Lioncash
67e44c0e63
Merge pull request #1235 from lioncash/func
...
VolumeGC: Use regular return type declaration for GetStringDecoder
2014-10-09 01:20:57 -04: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
Lioncash
677d74df88
Merge pull request #1240 from FioraAeterna/fixdebugblocklink
...
Debug: fix disable block linking option
2014-10-08 22:13:33 -04: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
Rachel Bryk
2cfc1eac51
Fix another crash in tas input.
2014-10-08 09:46:28 -04:00
Fiora
9734f0c834
JIT64: use FMA instructions
2014-10-07 21:41:01 -07:00
Ryan Houdek
2423b9b2bd
Merge pull request #1237 from Sonicadvance1/fix-ARM32-XER
...
Fix ARMv7 JIT from XER optimization.
2014-10-07 21:56:36 -05: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
Rachel Bryk
e09288aec1
Fix crash in tas input.
2014-10-07 22:35:56 -04:00
skidau
38b64fd077
Merge pull request #1213 from RachelBryk/wii-tas-input
...
Add wiimote tas input.
2014-10-08 13:15:43 +11:00
Fiora
019657cd93
X64Emitter: add FMA3 support
2014-10-07 18:21:07 -07:00
Lioncash
6cfa579870
VolumeGC: Use regular return type declaration for GetStringDecoder
2014-10-07 21:15:14 -04:00
Lioncash
ab49d80e3f
Merge pull request #1234 from Stevoisiak/renameNamesToBannerNames
...
Rename m_names to m_banner_names
2014-10-07 20:01:29 -04:00
Lioncash
fab357552f
Merge pull request #1233 from Stevoisiak/getNameRedundancy
...
Updated Netplay to use GetName()
2014-10-07 19:54:09 -04:00
Steven Vascellaro
ebbbe43b8f
Rename m_names to m_banner_names
2014-10-07 19:14:11 -04:00
Steven Vascellaro
4b9ee5ee39
Updated Netplay to use GetName()
2014-10-07 19:05:38 -04:00
Jules Blok
39f421d45d
Support the borderless fullscreen option in all backends.
2014-10-07 16:48:43 +02:00
Jules Blok
7344f752b7
Replace BorderlessFullscreenEnabled by ExclusiveFullscreenEnabled.
...
Special handling was associated with this function, which only applies to exclusive fullscreen.
2014-10-07 16:43:32 +02: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
comex
39d01774de
Merge pull request #1229 from lioncash/ts
...
Fifo: Fix tab/space mismatches
2014-10-07 02:27:37 -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
1b573c4ca0
Merge pull request #1225 from lioncash/lolwx
...
DolphinWX: Make WXInputBase part of the WxUtils namespace.
2014-10-07 13:28:25 +11: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
Lioncash
16a74a9557
Fifo: Fix tab/space mismatches
2014-10-06 20:04:57 -04:00
Lioncash
700a4154dd
Merge pull request #1228 from Stevoisiak/fixedSaveBannerFilename
...
Fix for banner filename from ID
2014-10-06 17:49:24 -04:00
Steven Vascellaro
63c05c15d5
Fix for banner filename from ID
...
Saving a banner as a .PNG now properly defaults to the gameID.
2014-10-06 17:42:24 -04:00
skidau
215685a6fe
Merge pull request #1214 from rohit-n/format-warning
...
OGL: Silence string format warnings.
2014-10-06 16:12:40 +11: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
Lioncash
7c05d029d3
Merge pull request #1085 from waddlesplash/refactoring
...
Migrate global init stuff into UICommon.
2014-10-05 21:25:44 -04:00
Lioncash
af241c9710
Merge pull request #1215 from lioncash/spacing
...
DolphinWX: Fix double-spacing in some UI strings
2014-10-05 21:22:17 -04:00
Augustin Cavalier
19109e2d01
Migrate global init stuff into UICommon.
...
This avoids code duplication in a bunch of places .
I also moved the NVIDIA Optimus export into VideoCommon.
2014-10-05 20:47:37 -04:00
Lioncash
41ea4a28b2
DolphinWX: Make WXInputBase part of the WxUtils namespace.
...
There's no need for the preprocessor checks for wx, since this is used in wx code. Also, this being a part of the InputCommon namespace is kind of wrong.
2014-10-05 05:31:48 -04: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
skidau
871d308b88
Merge pull request #1206 from comex/amperspocalypse
...
Change a bunch of reference function arguments to pointers.
2014-10-05 12:14:04 +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
skidau
6a3b05a9ea
Merge pull request #1197 from RachelBryk/multicompress
...
Don't allow multi compress to compress wbfs or wad files.
2014-10-04 13:09:43 +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
Lioncash
7610811f79
DolphinWX: Fix double-spacing in some UI strings
2014-10-03 13:54:18 -04:00
Fiora
6bff99fa75
JitAsmCommon: remove a few redundant moves
2014-10-03 10:05:42 -07:00
Fiora
7a2dd3a3c6
x64Emitter: refactor, add some new AVX instructions
2014-10-03 10:05:10 -07:00
Rohit Nirmal
12c6f97d80
OGL: Silence string format warnings.
2014-10-03 12:07:10 -04:00
Rachel Bryk
c41b31d3ff
Add wiimote tas input.
2014-10-03 12:02:52 -04:00
Rachel Bryk
e0b5d4a86c
Fix running dolphin with a single flag.
2014-10-03 07:39:51 -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
skidau
6333f41837
Merge pull request #1194 from RachelBryk/arg
...
If one argument is given, assume it is a game, and run it.
2014-10-03 13:31:37 +10:00
Blackbird88
981a21a12f
Spelling mistake
2014-10-02 09:25:25 +02:00
comex
7f6284c2fc
Change a bunch of reference function arguments to pointers.
...
Per the coding style and sanity.
2014-10-02 03:00:33 -04:00
comex
c98a3f62be
Merge pull request #1195 from rohit-n/maybe-uninitialized
...
VideoCommon: Silence -Wmaybe-uninitialized warnings.
2014-10-02 01:56:06 -04: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
621d5c5cd8
Don't allow multi compress to compress wbfs or wad files.
2014-09-30 19:28:16 -04:00
Rachel Bryk
f6c6f03cce
Add on screen frame counter.
2014-09-30 18:49:44 -04:00
Rohit Nirmal
ce8a4f5cc5
VideoCommon: Silence -Wmaybe-uninitialized warnings.
2014-09-30 16:14:18 -04:00
Tony Wasserka
13fc8e7df1
Merge pull request #578 from RachelBryk/IR
...
Cleanup Renderer::CalculateTargetSize(), and allow IRs higher than 4x to be set via INI.
2014-09-30 19:21:21 +02:00
Rachel Bryk
c0270f63c5
If one argument is given, assume it is a game, and run it.
2014-09-30 09:21:34 -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
acac5325f5
Merge pull request #1134 from RachelBryk/movie-menu
...
Create new Movie menu.
2014-09-30 02:51:21 -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
71b4c2ee9c
Merge pull request #1180 from Stevoisiak/Replace-GCM-With-ISO
...
Replaced GCM functions with ISO functions
2014-09-30 02:47:33 -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
ed2ce8d8d4
Merge pull request #1191 from comex/wxGetActiveWindow
...
Fix focus detection on OS X by replacing wxGetActiveWindow with wxWindow...
2014-09-30 01:49:39 -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
comex
8fed5aa492
Fix focus detection on OS X by replacing wxGetActiveWindow with wxWindow::FindFocus.
...
wxGetActiveWindow is implemented as "return NULL" on OS X, while
wxWindow::FindFocus works. On Windows, the difference is in the use of
GetActiveWindow() vs. GetForegroundWindow(). A MSDN comment says:
> A system has only one active window, which GetForegroundWindow()
> returns. GetActiveWindow() seems to return the same window as
> GetForegroundWindow() if the foreground window belongs to the current
> thread. Otherwise, it always returns null, rather than the topmost
> window of the calling thread.
Since we are on the GUI thread, it shouldn't make any difference.
2014-09-30 01:35:48 -04:00
comex
5d61081f91
Merge pull request #1188 from comex/ReadDataFromFifo
...
ReadDataFromFifo is always called with len = 32. Remove the parameter t...
2014-09-30 01:08:36 -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
Rachel Bryk
f40e8a5cd0
Create new Movie menu.
2014-09-30 00:10:39 -04: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
comex
87a95727cd
ReadDataFromFifo is always called with len = 32. Remove the parameter to enable optimizations.
...
And rename some variables around it to be less confusing.
2014-09-29 22:07:16 -04: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
b8e31c1d3e
Add OpenGL 4.0-4.5 core extensions.
...
This noticeably includes GL_ARB_get_program_binary, which was previously
thought unsupported on OS X. Well, actually, the OS X implementation is
trivial and reports 0 binary formats (as of 10.10; this is hardcoded in
GLEngine, by the way), but at least it'll work if it's fixed someday.
2014-09-29 00:36:45 -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
007ba13cfa
Merge pull request #1144 from skidau/fifo-linked
...
Moved the linking of the FIFO CPWritePointer near where CPWritePointer gets updated
2014-09-29 13:52:33 +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
Lioncash
d13383c4e6
Merge pull request #1181 from FioraAeterna/debuggqr
...
GekkoDisassembler: show W and I in psq_l/psq_st disassembly
2014-09-28 23:45:49 -04: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
comex
65af90669b
Add the 'desynced GPU thread' mode.
...
It's a relatively big commit (less big with -w), but it's hard to test
any of this separately...
The basic problem is that in netplay or movies, the state of the CPU
must be deterministic, including when the game receives notification
that the GPU has processed FIFO data. Dual core mode notifies the game
whenever the GPU thread actually gets around to doing the work, so it
isn't deterministic. Single core mode is because it notifies the game
'instantly' (after processing the data synchronously), but it's too slow
for many systems and games.
My old dc-netplay branch worked as follows: everything worked as normal
except the state of the CP registers was a lie, and the CPU thread only
delivered results when idle detection triggered (waiting for the GPU if
they weren't ready at that point). Usually, a game is idle iff all the
work for the frame has been done, except for a small amount of work
depending on the GPU result, so neither the CPU or the GPU waiting on
the other affected performance much. However, it's possible that the
game could be waiting for some earlier interrupt, and any of several
games which, for whatever reason, never went into a detectable idle
(even when I tried to improve the detection) would never receive results
at all. (The current method should have better compatibility, but it
also has slightly higher overhead and breaks some other things, so I
want to reimplement this, hopefully with less impact on the code, in the
future.)
With this commit, the basic idea is that the CPU thread acts as if the
work has been done instantly, like single core mode, but actually hands
it off asynchronously to the GPU thread (after backing up some data that
the game might change in memory before it's actually done). Since the
work isn't done, any feedback from the GPU to the CPU, such as real
XFB/EFB copies (virtual are OK), EFB pokes, performance queries, etc. is
broken; but most games work with these options disabled, and there is no
need to try to detect what the CPU thread is doing.
Technically: when the flag g_use_deterministic_gpu_thread (currently
stuck on) is on, the CPU thread calls RunGpu like in single core mode.
This function synchronously copies the data from the FIFO to the
internal video buffer and updates the CP registers, interrupts, etc.
However, instead of the regular ReadDataFromFifo followed by running the
opcode decoder, it runs ReadDataFromFifoOnCPU ->
OpcodeDecoder_Preprocess, which relatively quickly scans through the
FIFO data, detects SetFinish calls etc., which are immediately fired,
and saves certain associated data from memory (e.g. display lists) in
AuxBuffers (a parallel stream to the main FIFO, which is a bit slow at
the moment), before handing the data off to the GPU thread to actually
render. That makes up the bulk of this commit.
In various circumstances, including the aforementioned EFB pokes and
performance queries as well as swap requests (i.e. the end of a frame -
we don't want the CPU potentially pumping out frames too quickly and the
GPU falling behind*), SyncGPU is called to wait for actual completion.
The overhead mainly comes from OpcodeDecoder_Preprocess (which is,
again, synchronous), as well as the actual copying.
Currently, display lists and such are escrowed from main memory even
though they usually won't change over the course of a frame, and
textures are not even though they might, resulting in a small chance of
graphical glitches. When the texture locking (i.e. fault on write) code
lands, I can make this all correct and maybe a little faster.
* This suggests an alternate determinism method of just delaying results
until a short time before the end of each frame. For all I know this
might mostly work - I haven't tried it - but if any significant work
hinges on the competion of render to texture etc., the frame will be
missed.
2014-09-28 21:34:29 -04:00
comex
2d4b7c5900
Make ReadDataFromFifo static.
2014-09-28 21:25:12 -04:00
comex
0ae9e398c8
Rejigger some FIFO buffer variables to be more rational.
...
videoBuffer -> s_video_buffer
size -> s_video_buffer_write_ptr
g_pVideoData -> g_video_buffer_read_ptr (impl moved to Fifo.cpp)
This eradicates the wonderful use of 'size' as a global name, and makes
it clear that s_video_buffer_write_ptr and g_video_buffer_read_ptr are
the two ends of the FIFO buffer s_video_buffer.
Oh, and remove a useless namespace {}.
2014-09-28 21:25:12 -04:00
comex
e86ddacb18
Changes to allow LoadCPReg to work in a preprocess mode which affects a separate state.
...
This state will be used to calculate sizes for skipping over commands on
a separate thread. An alternative to having these state variables would
be to have the preprocessor stash "state as we go" somewhere, but I
think that would be much uglier.
GetVertexSize now takes an extra argument to determine which state to
use, as does FifoCommandRunnable, which calls it. While I'm modifying
FifoCommandRunnable, I also change it to take a buffer and size as
parameters rather than using g_pVideoData, which will also be necessary
later. I also get rid of an unused overload.
2014-09-28 21:25:06 -04:00
comex
f0131c2e09
Mechanical changes to move most CP state to a struct rather than separate globals.
...
The next commit will add a separate copy of the struct and the ability
for LoadCPReg to work on it.
2014-09-28 21:23:29 -04:00
comex
90638c6806
Switch to an unordered_map as a micro-optimization.
2014-09-28 21:23:29 -04:00
comex
f8452ff501
Fix threading issue with vertex loader JIT.
...
VertexLoader::VertexLoader was setting loop_counter, a *static*
variable, to 0. This was nonsensical, but harmless until I started to
run it on a separate thread, where it had a chance of interfering with a
running vertex translator.
Switch to just using a register for the loop counter.
2014-09-28 21:23:28 -04:00
comex
63c62b277d
Some changes to VertexLoaderManager:
...
- Lazily create the native vertex format (which involves GL calls) from
RunVertices rather than RefreshLoader itself, freeing the latter to be
run from the CPU thread (hopefully).
- In order to avoid useless allocations while doing so, store the native
format inside the VertexLoader rather than using a cache entry.
- Wrap the s_vertex_loader_map in a lock, for similar reasons.
2014-09-28 21:23:28 -04:00
Fiora
c102fed36a
GekkoDisassembler: show W and I in psq_l/psq_st disassembly
2014-09-28 17:01:35 -07:00
Steven Vascellaro
b956be20e3
Replaced generalized instances of GCM with ISO
...
Renamed various commands to refer to ISO instead of GCM for consistency,
as the commands are used for both Wii and GameCube files.
CompressGCM --> CompressISO
DeleteGCM --> DeleteISO
MultiCompressGCM --> MultiCompressISO
MultiDecompressGCM --> MultiDecompressISO
SetDefaultGCM --> SetDefaultISO
Fixed COMPRESSISO
Fixed missing "COMPRESSISO"
Fixed more COMPRESSISO
Final fix for COMPRESSISO
2014-09-28 19:53:05 -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
275226c2b6
Merge pull request #1147 from RachelBryk/unicode-tex
...
Allow custom textures to load from unicode paths.
2014-09-28 14:54:56 +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
23e2301223
Merge pull request #1154 from skidau/undeclared-uv0-fix
...
Fixed the "Undeclared identifier: uv0" OpenGL shader compile error that appears in NBA2K11.
2014-09-27 13:25:16 +10: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
Rachel Bryk
4fe1119e52
Cleanup Renderer::CalculateTargetSize(), and allow IRs higher than 4x to be set via ini.
2014-09-25 19:50:25 -04:00
comex
fb3d9c9d58
Fix warning in x64CPUDetect.cpp in generic build by not building it.
2014-09-25 18:48:00 -04: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
skidau
c41f76e774
Merge pull request #1148 from lioncash/typo
...
ISOProperties: Fix typo in the tooltip for manual config editing.
2014-09-25 13:49:39 +10:00
skidau
6d064b0406
Merge pull request #1126 from lioncash/delete
...
DolphinWX: Get rid of an explicit delete in OnExportSave
2014-09-25 13:44:21 +10: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