Commit Graph

15355 Commits

Author SHA1 Message Date
Tillmann Karras eb057d49a0 x64Emitter: drop duplicate enum & unused wrappers
Keep the more explicit version of the two SSECompare enums.

And the unused CMP* wrappers wouldn't exactly make the code more
readable anyway.
2015-05-31 08:32:31 +02:00
flacs 43ed19a663 Merge pull request #2481 from lioncash/reference
x64Emitter: Pass some OpArg parameters by const reference.
2015-05-31 08:22:55 +02:00
flacs a806feb10e Merge pull request #2474 from Tilka/zfreeze
zfreeze: fix 2-component positions
2015-05-31 06:35:21 +02:00
Tillmann Karras a6004f8274 Jit64: drop more x86_32 left-overs 2015-05-31 05:28:40 +02:00
Markus Wick c12f04eefa Merge pull request #2472 from degasus/master
AudioCommon: Remove lock on Pause state
2015-05-30 23:40:46 +02:00
degasus 9c730b0a1f Unittests: Add BlockingLoopTest 2015-05-30 13:40:36 +02:00
degasus bfa61105d5 Common: Update BlockingLoop to only use one atomic.
This merges two atomic<bool> into one atomic<int>.
We did move the bit from one bool to another, now we can use operator--.
2015-05-30 12:58:09 +02:00
degasus 02a3a063c3 Fifo: Extract syncing loop
It's now a new helper function within common.
2015-05-30 12:58:09 +02:00
JosJuice 301218a103 Volume: Use more appropriate types for some returned values
Disc number is changed from bool to u8, and revision is changed from
int to u16 (WADs can use all 16 bits, but discs can only use 8 bits).
2015-05-29 21:14:02 +02:00
JosJuice 9a000f4085 Volume: Mark ReadWiiNames parameter as const
I forgot it when I added the method.
2015-05-29 20:19:11 +02:00
Scott Mansell 7df6982973 Add a dirty flag for arraybases.
Only loop through and call getPointers when something has actually
changed.
Worth about 2-4% speedup un SMG over the previous commit.
2015-05-30 04:39:48 +12:00
Scott Mansell f57517f1a0 Clean up cached_arraybases. Update VideoSW to new scheme.
Move ownership of cached_arraybases from CPMemory to VertexLoaderManager
to better match it usage.
2015-05-30 04:09:27 +12:00
degasus c4fc141ced OGL: Always use sampler objects.
We are used to use the texture parameter for all util draw calls,
but AMD seems to have a bug where they use the sampler parameter
of stage 0 if no sampler is bound to the used stage.
So as workaround (and a bit as nicer code), we now use sampler
objects everywhere.
2015-05-29 14:03:03 +02:00
Tillmann Karras 4943b36259 zfreeze: fix 2-component positions 2015-05-29 13:43:12 +02:00
Scott Mansell 6d916762fb Fix invalid pointer errors in Burnout 2.
Yet another story of games loading weird shit into registers.

For some reason, Burnout 2 would (in rare situations) load invalid
addresses into cp_state.array_bases. What would the real hardware
do in this situation? Who knows, Burnout 2 doesn't actually enable
the vertex array with the invalid address so nothing kinky happens.

But dolphin tries to optimise things and starts using the address
as soon as it is loaded into memory. This causes GetPointer (which is
now much more vocal) to throw an error.

The Fix:  We don't call GetPointer until we are sure the vertex array
has been enabled.
2015-05-29 18:51:17 +12:00
Markus Wick 61c53babf4 Merge pull request #2467 from RisingFog/disc2fix
Fix adding additional Disc 2 to certain multi-disc games
2015-05-29 07:47:56 +02:00
Ryan Houdek cdbdff436b Merge pull request #2478 from degasus/fix_prefetching
HiresTexture: Fix prefetching with broken textures
2015-05-29 01:42:48 -04:00
degasus c69cc91f00 HiresTexture: Fix prefetching with broken textures 2015-05-29 07:31:11 +02:00
Lioncash 0b8372e566 Jit_Util: Make some OpArg parameters const references 2015-05-29 01:13:45 -04:00
Lioncash e3a6191f02 x64Emitter: Pass some OpArg parameters by const reference
Considering OpArg is a struct, passing by value creates unnecessary copies.
2015-05-29 01:13:29 -04:00
Lioncash 810a04db58 x64Emitter: Remove 'Gen::' namespace prefix from some parameters
The emitter is already within the Gen namespace, so this isn't necessary.
2015-05-29 01:05:09 -04:00
Lioncash 84ed196c14 x64Emitter: Adjust position of reference and pointer indicators
Matches the coding style.
2015-05-29 01:04:45 -04:00
Lioncash ac26f8e79f Pass strings by const reference where possible 2015-05-28 20:54:55 -04:00
comex 45b07cbdcd Fix determinism issues with Wiimote netplay.
- Change the Wiimote emulation SYSCONF R/W to use the temporary NAND if in use.
- Fix up SysConf API so this actually works.

Kind of a hack.  Like I said, this can be cleaned up when configuration
is synced...
2015-05-28 19:19:00 -04:00
comex 0d257b9e88 Don't randomly generate a serial number in deterministic mode. 2015-05-28 19:14:43 -04:00
comex 138d72313e Add a quick check to ScheduleEvent_Threadsafe to ensure it doesn't happen in deterministic mode. 2015-05-28 19:14:43 -04:00
comex dc91e8b607 Add a mode to use a dummy Wii NAND.
Eventually, netplay will be able to use the host's NAND, but this could
still be useful in some cases; for TAS it definitely makes sense to have
a way to avoid using any preexisting NAND.

In terms of implementation: remove D_WIIUSER_IDX, which was just WIIROOT
+ "/", as well as some other indices which are pointless to have as
separate variables rather than just using the actual path (fixed, since
they're actual Wii NAND paths) at the call site.  Then split off
D_SESSION_WIIROOT_IDX, which can point to the dummy NAND directory, from
D_WIIROOT_IDX, which always points to the "real" one the user
configured.
2015-05-28 19:14:42 -04:00
comex f6c6822f71 The old g_want_determinism check in WiiSockMan missed a few cases. Move to net.cpp.
Specifically, things like GETHOSTBYNAME, GETHOSTID, etc. could be done
without creating a socket, which is what the old check blocked.  Now we
check at the ioctl and ioctlv handlers.  Might be possible to get a bit
more realistic behavior in future by filtering individual ioctls, but it
probably doesn't matter.
2015-05-28 19:14:42 -04:00
comex 3173d4dcbf Disable /dev/usb/hid too. 2015-05-28 19:14:42 -04:00
comex aae104ccb4 Disable some stuff in IPC_HLE when determinism is required.
This includes net, which is nonsensical to "sync" in netplay/replays
(could have the host do the Wii networking in future though...), and USB
keyboard, which just needs some love to do the same.
2015-05-28 19:14:42 -04:00
comex a0a80c9a9c Fix CopyDir to not require source and dest paths to end with "/". 2015-05-28 19:14:42 -04:00
comex a225426510 Rewrite FileSearch and improve ScanDirectoryTree.
- FileSearch is now just one function, and it converts the original glob
  into a regex on all platforms rather than relying on native Windows
  pattern matching on there and a complete hack elsewhere.  It now
  supports recursion out of the box rather than manually expanding
  into a full list of directories in multiple call sites.

  - This adds a GCC >= 4.9 dependency due to older versions having
  outright broken <regex>.  MSVC is fine with it.

- ScanDirectoryTree returns the parent entry rather than filling parts
  of it in via reference.  The count is now stored in the entry like it
  was for subdirectories.

- .glsl file search is now done with DoFileSearch.

- IOCTLV_READ_DIR now uses ScanDirectoryTree directly and sorts the
  results after replacements for better determinism.
2015-05-28 19:14:42 -04:00
degasus 9a96e3c416 AudioCommon: Remove lock on Pause state
We had to lock audiocommon with the old asynchron HLE audio emulation,
now our Mixer is just a plain FIFO which may underrun.
Of course, this will stutter, but underruning the audio backend is likely worse.
2015-05-28 19:58:18 +02:00
JosJuice 6fb8ce58d6 Honor logging settings at startup
https://code.google.com/p/dolphin-emu/issues/detail?id=7959
2015-05-28 09:28:23 +02:00
Fog c767813c0c Fix adding additional Disc 2 to certain multi-disc games 2015-05-27 11:08:57 -04:00
Tillmann Karras 285ac34bf3 OGL: use GL_TEXTURE* constants 2015-05-27 15:05:49 +02:00
JosJuice f1580a4c91 Fix game list name encoding error caused by 4.0-6419 (d7900b4)
The UTF-8 std::strings were being interpreted as the default encoding.
2015-05-27 12:28:23 +02:00
Markus Wick 255a8dfdd2 Merge pull request #2465 from lioncash/commandproc
CommandProcessor: Replace volatile usages with atomics
2015-05-27 11:07:36 +02:00
Lioncash 1ba3b4e7ac CommandProcessor: Replace volatile usages with atomics
Also remove said variables from being globals.
2015-05-27 03:53:29 -04:00
Markus Wick 3318120632 Merge pull request #2422 from lioncash/core
DSPCore: Make the mailbox registers atomic.
2015-05-27 09:14:41 +02:00
Lioncash ec03196267 PixelEngine: Replace volatile usages with atomics
Also removes two unused volatile variables.
2015-05-27 02:39:55 -04:00
Markus Wick a6b327751a Merge pull request #2463 from lioncash/fifo
Fifo: Replace usages of volatile with atomics
2015-05-27 08:03:39 +02:00
Lioncash 5db7d4d1d5 DSPCore: Make the mailbox registers atomic. 2015-05-27 00:58:52 -04:00
Lioncash 4cb55cc427 Fifo: Replace usages of volatile with atomics 2015-05-27 00:42:56 -04:00
Rohit Nirmal c59bfd2b7f Fix building with PCH disabled. 2015-05-26 22:44:51 -05:00
Matthew Parlane 3135b4f3e4 Merge pull request #2461 from lioncash/barrier
Thread: Remove unused Barrier class
2015-05-27 13:21:14 +10:00
Lioncash 23c11b3f27 Thread: Remove unused Barrier class 2015-05-26 19:25:59 -04:00
Markus Wick 85e706b4ec Merge pull request #2459 from degasus/master
Common: Fix IsTriviallyCopyable macro for GCC 5
2015-05-26 20:13:14 +02:00
degasus ebad10f2a1 Common: Fix IsTriviallyCopyable macro for GCC 5
Based on quarthex's patch in PR #2440
2015-05-26 19:50:14 +02:00
Tillmann Karras 6ea49da5b9 Jit64: fix ps_sum
It's /always/ the register cache.
2015-05-26 19:00:42 +02:00
skidau 8944e07f84 Merge pull request #2457 from degasus/master
DolphinWX: Drop dead hotkey button.
2015-05-26 23:53:46 +10:00
degasus b64301d65c DolphinWX: Drop dead hotkey button. 2015-05-26 15:50:15 +02:00
Jules Blok 0b61a0dfc5 Merge pull request #2448 from Armada651/depth-inversion
D3D: Depth range inversion.
2015-05-26 15:39:50 +02:00
Markus Wick d7900b4423 Merge pull request #2006 from RisingFog/disc2
Append Disc 2 to Titles for Multi-Disc Games
2015-05-26 15:39:42 +02:00
Jules Blok ca7801da44 D3D: Invert initial depth buffer clear. 2015-05-26 15:31:36 +02:00
galop1n 2975e53091 D3D: Depth range inversion.
Credits go to Galop1n for designing this technique and to BhaaLseN for cleaning up the commit.
2015-05-26 15:31:31 +02:00
Markus Wick a6412fb41e Merge pull request #2162 from degasus/prefetch_tex
CustomTexture: prefetch all available textures
2015-05-26 13:30:26 +02:00
Markus Wick 5d3a248811 Merge pull request #2455 from lioncash/fifo
FifoQueue: Use atomics instead of volatile members
2015-05-26 12:26:36 +02:00
Lioncash de5038849e FifoQueue: Use atomics instead of volatile members 2015-05-26 05:34:47 -04:00
Ryan Houdek b038b61a29 [ARMv7] Extend the life of the JIT Recompiler.
Until loadstores are fully investigated, let's artificially extend the life of it by disabling all of them.
These instructions break in a very terrible way and eventually all loadstores end up attempting to access memory region (u32)-1.
Disable until someone has enough time to investigate further.
2015-05-25 23:36:28 -05:00
Ryan Houdek a4a8162fb5 Merge pull request #2188 from JosJuice/dol-cleanup
DOL loader cleanup with std::vector and safety checks
2015-05-25 23:51:40 -04:00
Ryan Houdek f4625e6383 Merge pull request #2398 from JosJuice/revert-854f6b8
Attempt at fixing issue 8544 (input recording desyncs)
2015-05-25 23:49:56 -04:00
Ryan Houdek 061848457a Merge pull request #2382 from RisingFog/vfwfix
Fix video dumping incorrect lengths for some games in Windows
2015-05-25 23:46:22 -04:00
Ryan Houdek f706518dc0 Merge pull request #2390 from darkengine-io/new-qt
More miscellaneous Qt fixes
2015-05-25 23:45:21 -04:00
Ryan Houdek 96ef0fce38 Merge pull request #2450 from lioncash/alloc
NetPlayClient: Remove unnecessary array allocation
2015-05-25 23:42:49 -04:00
Ryan Houdek b0b5f4d10d Merge pull request #2326 from JosJuice/isoproperties-config-block
ISOProperties: Don't block when opening default INI in text editor
2015-05-25 23:42:26 -04:00
Ryan Houdek 5911dd528a Merge pull request #2361 from JosJuice/filesystem-read32
Remove CFileSystemGCWii::Read32
2015-05-25 23:40:28 -04:00
Ryan Houdek c88d6c804a Merge pull request #2430 from Sonicadvance1/android_panic_handler
[Android] Add support for panic alerts to the JNI.
2015-05-25 23:37:48 -04:00
Ryan Houdek 4ba430951a Merge pull request #2439 from JosJuice/company-from-id
Use an ID-to-name map when volume has no company string
2015-05-25 23:32:55 -04:00
Ryan Houdek 0c31013622 Merge pull request #2453 from rohit-n/call-me-bob
Fix building with PCH disabled.
2015-05-25 23:28:18 -04:00
Ryan Houdek 1d6375b71f Merge pull request #2339 from JosJuice/fix-wii-fst-size
Fix reading Wii FST size
2015-05-25 23:27:25 -04:00
Rohit Nirmal dbe54e63ed Fix building with PCH disabled. 2015-05-25 22:26:43 -05:00
Ryan Houdek dad5d8e13d Merge pull request #2357 from degasus/ogl_efb_poke_merge
ogl: efb poke merge
2015-05-25 23:26:39 -04:00
Ryan Houdek 3817dd0f91 Merge pull request #2272 from phire/jitil-floatbug
JitIL: Fix a bug in floatpoint load/store instructions.
2015-05-25 23:17:56 -04:00
Ryan Houdek d789d8d75f [Android] Add support for panic alerts to the JNI. 2015-05-25 22:13:00 -05:00
Ryan Houdek 7c04c76a26 Merge pull request #2421 from Tilka/jit_stuff
Jit64: fixes + less code
2015-05-25 23:08:24 -04:00
Ryan Houdek 0c5f5c4519 Merge pull request #2394 from Sonicadvance1/android_block_profiling_api
[Android] Block profiling JNI interface
2015-05-25 23:06:37 -04:00
Ryan Houdek 95f9096068 Merge pull request #2396 from Sonicadvance1/fix_racing_cpu_core
Fix a race condition when pausing the CPU core.
2015-05-25 23:06:18 -04:00
Ryan Houdek 99d9161e49 Merge pull request #2429 from Sonicadvance1/aarch64_block_profile
[AArch64] Implement block profiling.
2015-05-25 23:05:54 -04:00
Markus Wick 1fc3c8aa02 Merge pull request #2451 from degasus/master
DSP: Inline DSPControl into DSPState
2015-05-25 15:19:31 +02:00
Ryan Houdek 69963dc4b0 Merge pull request #2274 from degasus/disable_bbox
Disable bbox
2015-05-25 08:46:12 -04:00
Tillmann Karras 30ebb2459e Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
Tillmann Karras cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
Tillmann Karras 268f52e054 Add missing license headers 2015-05-25 13:11:47 +02:00
Tillmann Karras 6d9986846c Simplify some more license headers 2015-05-25 13:11:41 +02:00
degasus dd35f5df94 DSP: Inline DSPControl into DSPState
This was a struct with exactly one element, and
an overloaded constructor which matches the construtor
of this element. So there is no need for this stacked
structur.
2015-05-25 10:56:14 +02:00
degasus 7e127da791 VideoCommon: Warn if bbox is disabled but used 2015-05-25 09:33:34 +02:00
degasus 029912681e VideoCommon: return 0 if bbox is disabled
Through just returning the last written value sounds better, this crashes Paper Mario.
In my opinion, gfx issues are fine on older GPUs, but crashes should not happen.
2015-05-25 09:33:34 +02:00
degasus 6b2a1e57e2 BBox: remove now unreachable SW bbox implementation 2015-05-25 09:33:34 +02:00
degasus acd074e291 VideoCommon: Make BBox emulation optional 2015-05-25 09:33:34 +02:00
degasus ac0e304159 Jitregister: fix common-core dependency 2015-05-25 09:33:34 +02:00
Markus Wick 732802ebd0 Merge pull request #2419 from Armada651/clip-control
OGL: Add glClipControl support.
2015-05-25 09:29:43 +02:00
Lioncash b0075966af NetPlayClient: Remove unnecessary array allocation 2015-05-24 22:53:25 -04:00
Matthew Parlane 34cd2b0299 Merge pull request #2435 from sigmabeta/android-native-autodetect
Android: Have build.gradle figure out what ABI and Toolchain to use.
2015-05-25 10:11:52 +10:00
JosJuice d2e6adb045 Use an ID-to-name map when volume has no company string
This is written so that the result of GetCompanyFromID never is cached
(except on Android?). Caching is unnecessary because the string can be
obtained quickly at runtime, and not caching it means that the cache
doesn't have to be invalidated when GetCompanyFromID is edited.
2015-05-24 17:41:53 +02:00
Lioncash 6b30c9710c SoundStream: Devirtualize StartLogAudio and StopLogAudio
These don't rely on anything that might need to be implemented in other SoundStream classes.
2015-05-24 06:10:11 -04:00
Lioncash 07d4dbe657 AudioCommon: Add missing override specifiers
Also removes unnecessary virtual keywords.
2015-05-24 06:10:03 -04:00
Lioncash 4695233c98 SoundStream: Devirtualize GetMixer
Since it's handled by the base class, there's no need to allow overriding.
2015-05-24 05:49:51 -04:00
Lioncash 35ee8a1362 SoundStream: Internally construct the mixer
Instead of creating the mixer externally and then passing it in, it can just be made within the class.
2015-05-24 05:49:41 -04:00
Lioncash 88e1850231 GekkoDisassembler: Fix typecast for the second printf param for mtfsf 2015-05-24 01:54:04 -04:00