Commit Graph

10674 Commits

Author SHA1 Message Date
bfbbddd76f Rewrites ARMv7 fastmem entirely.
This is a fairly lengthy change that can't be separated out to multiple commits well due to the nature of fastmem being a bit of an intertangled mess.
This makes my life easier for maintaining fastmem on ARMv7 because I now don't have to do any terrible instruction counting and NOP padding. Really
makes my brain stop hurting when working with it.

This enables fastmem for a whole bunch of new instructions, which basically means that all instructions now have fastmem working for them. This also
rewrites the floating point loadstores again because the last implementation was pretty crap when it comes to performance, even if they were the
cleanest implementation from my point of view.

This initially started with me rewriting the fastmem routines to work just like the previous/current implementation of floating loadstores. That was
when I noticed that the performance tanked and decided to rewrite all of it.

This also happens to implement gatherpipe optimizations alongside constant address optimization.

Overall this comment brings a fairly large speedboost when using fastmem.
2014-11-21 05:21:57 -06:00
2968cb138c Fixed the fast disc speed option (immediately service the interrupt instead of going through the scheduler). 2014-11-20 18:23:05 +11:00
ba1a8d2ef3 Merge pull request #1517 from JosJuice/cav-disc-drive
DVDInterface: Timing accuracy improvements
2014-11-20 13:30:02 +11:00
fb50cb6d99 Merge pull request #1550 from degasus/bbox
OGL: implement bounding box support with ssbo
2014-11-19 20:25:23 -05:00
dd2c8c49b3 Merge pull request #1515 from RachelBryk/gpudeterminism-isoprops
Add GPUDeterminismMode to isoproperties.
2014-11-19 20:03:52 -05:00
ccebac8bcc Merge pull request #1456 from Stevoisiak/AddCountries
Additional Country Filters
2014-11-19 19:21:59 -05:00
19dabee326 Merge pull request #1568 from rohit-n/android-warnings
Android: Silence a few warnings.
2014-11-19 12:17:13 -05:00
a3f9f21e08 Merge pull request #1571 from degasus/master
OGL: fix buffer destruction
2014-11-19 02:13:36 -06:00
f5aed3d6c6 Merge pull request #1548 from skidau/region-australia
Added Australia to the list of valid PAL regions
2014-11-19 16:59:08 +11:00
ca3e5ce5e1 Added an exception check when the game is close to overflowing. Fixes the fifo overflow that occurs in Battalion Wars 2.
Changed the CPEnd loop check to an exact match.
2014-11-19 12:48:09 +11:00
3d448e49c6 Update CPStatus before processing the FIFO events and force an exception check on interrupts.
Added more information into the FIFO unknown opcode error message.
2014-11-19 12:48:08 +11:00
b2c02e216c Separated out the CPU and GPU thread path to avoid clobbering.
Removed the Eternal Darkness check as it is no longer required.

Fixes issue 7835.
2014-11-19 12:48:08 +11:00
32f2cd8c7f Merge pull request #1566 from Sonicadvance1/fix_gl21
Fixes GLExtensions for GL 2.1 or GLES 2 devices.
2014-11-19 12:47:23 +11:00
695bbac36a Removed SDK flag
SDK is not an official Nintendo country code, and is not actually used
by any official software.
2014-11-18 19:44:17 -05:00
f1a26ff654 Various country flag improvements
* Added country flags for games from Netherlands and Spain
* Added separate category for Region Free games (Uses European flag as placeholder)
* Added missing country filter options in "show regions" menu
* Rearranged country filters for readability
* Incremented CACHE_REVISION

Also fixed various country filters not showing up as options in the "Show regions" menu.
2014-11-18 19:44:16 -05:00
ff942d44b5 OGL: fix buffer destruction
This buffer will be unbound in the StreamBuffer class itself, so no need to unbind them before.
2014-11-18 23:13:06 +01:00
f7d1943615 Merge pull request #1570 from lioncash/scale
WxUtils: Get rid of GetCurrentBitmapLogicalScale
2014-11-17 20:55:14 -05:00
2affe25191 Merge pull request #1559 from Sonicadvance1/armv7-minor-optimizations
ARMv7 block profiling + minor optimization
2014-11-18 12:51:03 +11:00
3c23a9afc9 WxUtils: Get rid of GetCurrentBitmapLogicalScale
wx now provides the means to query this.
2014-11-17 20:16:33 -05:00
c211450b99 OGL: implement bounding box support with ssbo
This implemention tries to be as accurate as the old SW implemention, but it will remove the dependcy of our vertexloader on videosw.
2014-11-17 21:20:32 +01:00
dced84d440 Merge pull request #1564 from RachelBryk/freelook
Make freelook hotkeys configurable.
2014-11-17 20:44:48 +01:00
8ec791c4f3 Android: Silence a few warnings. 2014-11-17 19:21:38 +00:00
f78600ec9e Merge pull request #1562 from lioncash/host
Host: Kill off GetRenderWindowSize
2014-11-17 13:51:40 -05:00
b94dbca160 Host: Kill off GetRenderWindowSize 2014-11-17 13:44:49 -05:00
3bfa15d2e1 Fixes GLExtensions for GL 2.1 or GLES 2 devices.
This wasn't too much of a concern since we normally don't care about this feature set, but it is nice when testing on new devices and they don't
support the higher feature sets but want to run under software renderer.

The Mesa softpipe and PowerVR 5xx drivers don't support higher GL versions, but they shouldn't exit out just because they couldn't get a GL3 function
pointer that isn't even going to be used at that point.
2014-11-16 22:59:29 -06:00
5fce33f918 Merge pull request #1565 from Sonicadvance1/armv7-fix-fastmem
Fixes ARMv7 FP loadstores using fastmem when not enabled.
2014-11-16 22:22:22 -05:00
f9208dcc13 Fixes ARMv7 FP loadstores using fastmem when not enabled. 2014-11-16 21:12:11 -06:00
ea11c446c2 Make freelook hotkeys configurable. 2014-11-16 22:00:56 -05:00
5143adac0e Merge pull request #1306 from i418c/freelook_fixes
Freelook fixes
2014-11-17 13:03:23 +11:00
091db36162 DVDInterface: Add a delay for commands other than regular reads
Behavior inspired by WII_IPC_HLE_Device_DI.
2014-11-16 21:29:40 +01:00
c6e695b245 DVDInterface: CAV disc drive
Changes the read speed of GC discs from 3 MiB/s to 2-3.3 MiB/s,
depending on the location of the data. I also attempted to change the
speeds for Wii discs, but it has very little effect right now because
Wii games use IPC_HLE instead of DVDInterface. It does affect Wii
homebrew that reads Wii discs, though.
2014-11-16 20:57:26 +01:00
aa2fc1f66b Merge pull request #1449 from comex/memtools-merge
Reorganize faulting stuff.  Differentiate between arch- and OS-specific defines.
2014-11-16 13:46:33 -05:00
92d4e38267 Changed the hotkeys to 1 and 2. Message in GUI changed to reflect this. 2014-11-16 10:39:54 -08:00
30e1749d00 Implements block time profiling on ARMv7.
This was interesting implementing.
Our generic QueryPerformanceCounter function on ARMv7 was so slow that profiling a block was impossible.
I waited about five minutes and I couldn't even get a single frame to output.
This instead uses ARMv7's PMU to get cycle counts, which are a relatively minor performance drop in my testing.
One disadvantage of this method is that the kernel can lock us out of using these co-processor registers, but it seems to work on my Jetson board.
Another disadvantage is that we aren't having block times in "real" time but cycles instead, not too big of a deal.

This also removes instruction run counts from profiling because that's just annoying and we don't expose an interface for even getting those results
from our UI.
2014-11-16 09:29:27 +00:00
b24197f913 Adds MCR/MRC to the ARMv7 emitter. 2014-11-16 09:29:27 +00:00
6683b194ff ARMv7 register cache optimizations.
Enable support for not loading a destination register on FPR cache.
Dump registers if they won't be used later in the block. Stolen from Fiora.
2014-11-16 09:29:22 +00:00
c0291d5b88 Merge pull request #1558 from comex/command-thread-mismatch
Fix wxCommandEvent/wxThreadEvent subclass mismatch
2014-11-16 00:03:35 -05:00
37b14bdec9 Fix wxCommandEvent/wxThreadEvent subclass mismatch
Regression by 3fed975bac caused netplay to
crash on OS X.  While I'm at it, fix the long-standing "unsafe i guess"
AddPendingEvent, since we depend on wx 3 now...
2014-11-15 23:52:19 -05:00
4e484faf4c Merge pull request #1557 from lioncash/join
Core: Join some variable declarations and assignments
2014-11-15 20:53:45 -05:00
5d2ca2dfcc Merge pull request #1554 from lioncash/unique
ISOFile: Get rid of a delete call
2014-11-15 20:27:59 -05:00
3eab75bc9c Core: Join some variable declarations and assignments 2014-11-15 20:21:35 -05:00
43b8749c60 Merge pull request #1555 from lioncash/ref
WatchView: Pass string by reference in SetWatchName
2014-11-15 18:02:10 -05:00
4ce1b33e55 Merge pull request #1551 from Sonicadvance1/armv7-float-fastmem
Reimplements fastmem for ARMv7 floating point loadstores.
2014-11-15 15:32:17 -06:00
181f16c5f0 Reimplements fastmem for ARMv7 floating point loadstores.
This implements a new system for fastmem backpatching on ARMv7 that is less of a mindfsck to deal with.
This also implements stfs under the default loadstore path as well, not sure why it was by itself in the first place.

I'll be moving the rest of the loadstore methods over to this new way in a few days.
2014-11-15 21:17:50 +00:00
04ee0245e2 WatchView: Pass string by reference in SetWatchName 2014-11-15 14:06:12 -05:00
798a96bd2a ISOFile: Get rid of a delete call 2014-11-15 13:25:21 -05:00
8dbef4e987 Merge pull request #1553 from degasus/master
OpcodeDecoder: Skip recursiv display lists
2014-11-15 11:05:41 -05:00
90613a1bda OpcodeDecoder: Skip recursiv display lists 2014-11-15 16:24:06 +01:00
cf8035e240 Merge pull request #1521 from RachelBryk/double
Fix some double->float conversions.
2014-11-15 23:31:47 +11:00
fa18518cef Fix reading wii revisions. 2014-11-15 00:39:54 -05:00