Commit Graph
100 Commits
Author SHA1 Message Date
Scott Mansell 645e4cbbee PixelShaderGen: Use arrays of texture samplers. 2015-10-12 05:06:39 +13:00
Scott Mansell dd5df05c01 Merge pull request #3148 from phire/logWindow_lockup
DolphinWX: Make UpdateLog() return in a finite time (aka, fix stack overflow messages when logging is enabled)
2015-10-09 12:18:34 +13:00
Scott Mansell 71d7cd6b9d DolphinWX: Make UpdateLog() return in a finite time.
After fixing the deadlock in #3006, it is now possible for log
messages to flood in faster than UpdateLog can render them.

This causes it to never return, locking up the gui thread and
filling the windows message queue (which triggers the stack
overflow bug in older versions of Wx)
2015-10-09 12:14:04 +13:00
Scott Mansell 5d1f78da3b Merge pull request #3140 from RisingFog/patch-1
Fix wxWidgets Error in About Window
2015-10-06 06:55:10 +13:00
Scott Mansell a10a3ecbac ALSA: Don't block on Clear() call.
snd_pcm_writei() is meant to block block until all samples are written,
but apparently in some situations it can block for much longer, prehaps
even a infinite time, in the case of virtual machine FifoCI runs in.

Because it grabed a mutex before blocking, it could also block the
Clear() call for an infinite length of time, blocking dolphin's emu
thread.

snd_pcm_writei() also takes 10-15 seconds if you run dolphin under GDB
and can randomly take 5 or so seconds during normal usage.

By moving all the pause code to the ALSA thread, Clear() no-longer
blocks and everyone keeps their sanity.
2015-10-03 16:31:55 +13:00
Scott Mansell f1a43dc6d4 Merge pull request #3118 from lioncash/junk
WiimoteEmu: Get rid of an unused clamp function
2015-10-03 16:21:00 +13:00
Scott Mansell bcee41b65d Merge pull request #3123 from lioncash/null
Core: Replace 0 literals with nullptr
2015-10-03 16:19:46 +13:00
Scott Mansell ce6f89fe6d Merge pull request #3122 from rohit-n/sign-compare
Alsa: Silence -Wsign-compare warning.
2015-10-03 16:17:11 +13:00
Scott Mansell fb35371e86 Merge pull request #3116 from Pringo/Readme-update
Update Readme.md
2015-10-02 23:29:21 +13:00
Scott Mansell 58d893e56f Merge pull request #3075 from waddlesplash/no-regexp
FileSearch: Don't use RegExes, just do string comparisons.
2015-10-02 04:00:23 +13:00
Scott Mansell ce493b897d Merge pull request #2271 from revel8n/fixes
Fix for alignment of zero-length files within directory based virtual disk
2015-09-28 05:28:38 +13:00
Scott Mansell be3851b72e Merge pull request #3090 from LPFaint99/gcifolder
GCI Folder: Skip 'header-only' writes
2015-09-28 05:26:12 +13:00
Scott Mansell af327aec79 Merge pull request #3036 from mimimi085181/hash-respecting-stride
Respect the stride for efb copies when hashing them
2015-09-28 05:23:55 +13:00
Scott Mansell 4817118028 Merge pull request #3084 from JosJuice/cpu-core-clock
SystemTimers: Don't name non-constant variables as if they are constant
2015-09-28 05:22:54 +13:00
Scott Mansell bf636a8fe5 Merge pull request #3094 from JosJuice/metroid-prime-ini
Don't force EFB Copies to Texture Only off for Metroid Prime
2015-09-28 05:20:18 +13:00
Scott Mansell a91810ba3b Merge pull request #3042 from booto/audio-timing
AI: reduce overhead of sample counter
2015-09-27 05:03:55 +13:00
Scott Mansell 6eb0c2552d Merge pull request #3085 from Tilka/fifoplayer
FifoPlayer: remove leftover code
2015-09-24 15:37:01 +12:00
Scott Mansell a537ca7543 Merge pull request #2997 from phire/FixFifoRecorder
FifoRecorder: Use Texture Cache to record efb copies correctly.
2015-09-23 00:17:37 +12:00
Scott Mansell aa1fec6fc3 FifoPlayer: Fixup style of types. 2015-09-23 00:03:43 +12:00
Scott Mansell a355d9868e FifoRecorder: Use Video Common to record efb2ram correctly.
Texture updates have been moved into TextureCache, while
TMEM updates where moved into bpmem. Code for handling
efb2ram updates was added to TextureCache.

There was a bug for preloaded RGBA8 textures, it only copied
half the texture. The TODO was wrong too.
2015-09-22 23:59:16 +12:00
Scott Mansell c9836ff592 EGL: Don't depend on VideoCommon or Core 2015-09-22 00:36:48 +12:00
Scott Mansell 72249b8085 GLX: Don't depend on Core or VideoCommon 2015-09-22 00:36:47 +12:00
Scott Mansell 01ed925fec AGL: Don't depend on VideoCommon 2015-09-22 00:36:46 +12:00
Scott Mansell 93f6563789 WGL: Don't depend on Core/VideoCommon 2015-09-22 00:36:45 +12:00
Scott Mansell 95f3c956a8 Move GL interface code out of the OpenGL video backend. 2015-09-22 00:36:45 +12:00
Scott Mansell b6cd78a370 VideoBackendBase: Remove check for XP. 2015-09-19 07:10:44 +12:00
Scott Mansell 3f56480903 Merge pull request #3037 from JosJuice/titles-txt-sort
DolphinWX: Fix sorting games by custom titles
2015-09-18 17:41:32 +12:00
Scott Mansell 3ef103d1c9 Merge pull request #3058 from lioncash/override
ControllerInterface: Fix -Winconsistent-missing-override warnings on OSX
2015-09-18 15:24:54 +12:00
Scott Mansell 7681d7b67a Merge pull request #3056 from degasus/master
VideoSW: Remove unused function
2015-09-18 05:53:31 +12:00
Scott Mansell 1c17d3d653 Merge pull request #3050 from lioncash/const
Jit_Util: Mark a class function as const
2015-09-17 17:14:18 +12:00
Scott Mansell deeb1d8370 Remove segfault from DX11 backend.
Instead of blindly using the expected width, clamp it to the stride of the
buffer which dx11 returns. This prevents use from reading invalid memory
at the end of textures.

This doesn't solve the base issue of what to do when a game tries to copy
from outside the efb. On real hardware it returns random noise (biased
to all ones)
2015-09-17 02:22:00 +12:00
Scott Mansell 45c1cfa078 Merge pull request #2242 from Stevoisiak/Titles.txt
GameListCtrl: Improvements for reading custom game titles
2015-09-13 14:03:47 +12:00
Scott Mansell 3e4b62797c Merge pull request #3033 from JosJuice/stick-names
Use official names for GameCube controller sticks
2015-09-13 13:14:10 +12:00
Scott Mansell c0a89c3bf4 Merge pull request #3009 from phire/depth_tested_pokes
Add some logging for depth tested efb color pokes.
2015-09-12 22:20:59 +12:00
Scott Mansell 44456bec0f Add some logging for depth tested efb color pokes. 2015-09-12 22:19:59 +12:00
Scott Mansell 66dd79c569 Merge pull request #3010 from Felk/master
fixed disabling auto reporting for emulated wiimotes not working properly
2015-09-12 21:40:25 +12:00
Scott Mansell 68b415ba87 Merge pull request #3019 from mimimi085181/store-base-hash
Store the base hash for paletted textures in the texture cache entries
2015-09-12 16:24:29 +12:00
Scott Mansell 02842cb34b Merge pull request #3006 from phire/deadlock
Fix deadlock with KHR_debug.
2015-09-12 16:19:58 +12:00
Scott Mansell ee7285a1db Merge pull request #3008 from Lionel07/qt-screensaver
Qt: Disable Display Sleep when game is running (Windows)
2015-09-12 16:13:51 +12:00
Scott Mansell 2c67ad88cd Merge pull request #3023 from JosJuice/qt-pixmaps
DolphinQt: Bring pixmaps up to date with DolphinWX and themes
2015-09-12 16:13:35 +12:00
Scott Mansell 921bab6b4d Merge pull request #3015 from phire/SplitLogtypes
Split OpenGL errors into a separate logtype from video errors.
2015-09-10 18:55:29 +12:00
Scott Mansell ef4974b6a2 Remove unused log type. 2015-09-10 18:39:32 +12:00
Scott Mansell 0ed1e977cc Rearrange the logtypes into something closer to alphabetical order.
Also fix up a few of the long names.
2015-09-10 18:39:08 +12:00
Scott Mansell de9310fe70 Split OpenGL errors into a separate logtype from Video errors.
Allows them to be enabled/disabled separately.
2015-09-10 18:38:45 +12:00
Scott Mansell f2771695a2 Merge pull request #3014 from lioncash/cpath
ExpressionParser: Make all control paths return a value in operator std::string
2015-09-10 14:48:30 +12:00
Scott Mansell 38d05cd70f Merge pull request #3007 from phire/khr_debug_notification
OpenGL: drop log level of some spammy KHR_debug messages.
2015-09-09 17:34:27 +12:00
Scott Mansell a95adba39b Drop DEBUG_SEVERITY_NOTIFICATION messages down to DEBUG_LOG 2015-09-09 12:22:52 +12:00
Scott Mansell b9b80191d5 Fix deadlock with KHR_debug.
An KHR_debug callback could end up waiting for a mutex
on a thread which calls windows system functions.

While this is not expressly forbidden by the standards,
it does forbid directy calling windows system functions
from a KHR_debug callback. Close enough.
2015-09-09 12:05:24 +12:00
Scott Mansell 332e81d2d7 Merge pull request #2984 from JosJuice/dvdinterface-round-down
DVDInterface: Use ROUND_DOWN
2015-09-08 12:43:11 +12:00
Scott Mansell 1f800b80dd Merge pull request #2960 from phire/improve_efb2tex
Make efb2tex behave much more like efb2ram.
2015-09-07 14:12:03 +12:00
Scott Mansell ac467d9fb9 FifoPlayer: Don't check efb copy hashes when plaing back a broken dff 2015-09-07 05:20:25 +12:00
Scott Mansell bda964e0b9 Workaround to allow partial texture updates to keep working in NSMBWii 2015-09-07 02:32:01 +12:00
Scott Mansell ee649c6d9f Make efb2tex behave more like efb2ram.
Instead of having special case code for efb2tex that ignores hashes,
the only diffence between efb2tex and efb2ram now is that efb2tex
writes zeros to the memory instead of actual texture data.

Though keep in mind, all efb2tex copies will have hashes of zero as
their hash.
2015-09-07 02:32:01 +12:00
Scott Mansell c08a83a5aa Merge pull request #2957 from phire/unify_efbcopy
Cleanup and unify efb copy implemtations into VideoCommon
2015-09-07 00:10:42 +12:00
Scott Mansell d797b5d0b5 Use ROUND_UP instead of custom bittwiddling. 2015-09-06 23:00:17 +12:00
Scott Mansell 137856bd00 Fix palette conversions for 4 bit efb copies.
Fixes purple shadow in THPS4 and many other things.
2015-09-06 21:16:52 +12:00
Scott Mansell e745748c3e Improve comments for texture formats enum. 2015-09-06 21:16:51 +12:00
Scott Mansell b9be3245e1 Move common EFB copy code into VideoCommon
Addded a few duplicated depth copy texture formats to the enum
in TextureDecoder.h. These texture formats were already implemented
in TextureCacheBase and the ogl/dx11 texture cache implementations.
2015-09-06 21:16:51 +12:00
Scott Mansell be4caa3dc0 Merge pull request #2961 from lioncash/printf
General: Toss out PRI macro usage
2015-09-06 21:02:22 +12:00
Scott Mansell d52d8bf935 Merge pull request #2982 from lioncash/unique
Common: Remove StdMakeUnique.h
2015-09-06 21:01:48 +12:00
Scott Mansell a26cac87fc Merge pull request #2959 from rohit-n/build-pch
Fix building with PCH disabled.
2015-09-06 19:59:49 +12:00
Scott Mansell 61da83182e Merge pull request #2978 from lioncash/override
Add missing override specifiers
2015-09-06 19:21:59 +12:00
Scott Mansell 728d082bc7 Merge pull request #2983 from lioncash/delete
WII_Socket: Make the copy-assignment operator deleted
2015-09-06 19:20:47 +12:00
Scott Mansell 52948bb3ef Cleanup and unify handling of efb copy stride. 2015-09-05 23:37:24 +12:00
Scott Mansell 9be01a9044 Merge pull request #2968 from t27duck/lost_levels_missing_ini
Add missing INI file for SMB: The Lost Levels
2015-09-05 14:05:48 +12:00
Scott Mansell a1538a30ef Merge pull request #2941 from lioncash/gp
GPFifo: Remove pointer casts
2015-09-03 13:47:26 +12:00
Scott Mansell 532c81266c Merge pull request #2933 from t27duck/mm5_missing_ini
Added missing Mega Man 5 INI file
2015-09-03 12:13:59 +12:00
Scott Mansell 34c7f34198 Merge pull request #2945 from lioncash/alloca
ActionReplay: Remove an alloca call
2015-09-03 12:12:26 +12:00
Scott Mansell ecbb83fa0f Merge pull request #2686 from booto/field-timing
VI: derive field timing from VI registers
2015-09-03 01:09:43 +12:00
Scott Mansell 368867dba0 Merge pull request #2922 from aserna3/SDBlock
Implemented ability to block writes to the SD card
2015-08-31 04:51:50 +12:00
Scott Mansell 13526135f8 Merge pull request #2877 from JosJuice/remove-lle-ini
Remove forced DSP LLE from game INIs
2015-08-20 05:41:51 +12:00
Scott Mansell 5097a22844 Merge pull request #2794 from randomstuff/evdev-stable
Stable device identifier for evdev
2015-08-02 21:40:49 +12:00
Scott Mansell 8dd9d35689 Merge pull request #2653 from AdmiralCurtiss/netplay-video-mode-sync
Netplay: Sync Video Mode settings. (Progressive Scan and PAL60)
2015-08-02 12:42:21 +12:00
Scott Mansell a3eb16c6e1 Merge pull request #2790 from phire/even_smarter_heuristic
Make the GameCube game widescreen heuristic smarter.
2015-08-01 15:59:06 +12:00
Scott Mansell a1df1f5ae4 Widescreen Heuristic: Cleanup code. 2015-08-01 14:39:34 +12:00
Scott Mansell 615e5db0cb Make the GameCube game widescreen heuristic smarter.
The last heuristic wasn't quite smart enough and had a few
false positives in Mario Kart: Double Dash and Metroid prime 2.

Now we only activate if the game is rendering a 16:9
projection to a 4:3 viewport.
2015-08-01 13:21:53 +12:00
Scott Mansell fc4ba3adee Merge pull request #2765 from mirrorbender/master
Aspect Ratio/VI Scaling FIx
2015-08-01 12:45:38 +12:00
Scott Mansell 567d0b20fa Merge pull request #2769 from phire/autodetect_widescreen
Heuristic to detect if a gamecube game is rendering 16:9 widescreen.
2015-07-29 18:23:35 +12:00
Scott Mansell bb60bcc42d Heuristic to detect if a gamecube game is rendering 16:9 widescreen.
Someone suggested on IRC that we should make a database of memory
locations in GameCube games which contain the 'Widescreen' setting
so we can automatically detect if the game is in 4:3 or 16:9 mode.

But that's hardly optimal, when the game actually tells the gpu
what aspect ratio to render in. 10 min and 6 lines of code later,
this is the result. Not only does it detect the correct aspect ratio
it does so on the fly.

I'm a little suprised nobody thought about doing this before.
2015-07-27 10:40:41 +12:00
Scott Mansell db42c7c3ba Merge pull request #2772 from randomstuff/symbolicate-ppc
Tool to transform JIT_PPC_${address} to JIT_PPC_${symbol}
2015-07-26 19:21:10 +12:00
Scott Mansell 9ae8e38a8a Merge pull request #2717 from phire/fix-reordering
PPCAnalyst: Don't swap instruction which might cause interrupts.
2015-07-22 05:16:51 +12:00
Scott Mansell da38e3a8ae Merge pull request #2741 from endrift/fix-freebsd-build-stable
Fix FreeBSD (stable)
2015-07-13 19:51:18 +12:00
Scott Mansell dc25277a2f Merge branch 'stable' into 'master' 2015-07-13 12:40:38 +12:00
Scott Mansell 87e19f1c19 Merge pull request #2705 from phire/fixrumble
evdev: Delete rumble effects on the correct file descriptor.
2015-07-13 12:05:54 +12:00
Scott Mansell a31ebb9bcd PPCAnalyst: Don't swap instruction which might cause interrupts.
fcmpo and fcmpu can be matched by the REORDER_CMP pass, as they set CR0
and they can cause interrupts if the fpu is disabled.
So we add an extra check to make sure op a is an integer op too.
2015-07-07 22:37:48 +12:00
Scott Mansell 4ffeb057cc Interpreter: Fix bug with icache emulation.
The constructor sets up way_from_valid and way_from_plur as fast lookup
tables for implementing the PLRU algrothm. Then the Init function
memsets them to zero, meaning the instruction cache will now always
choose the first way in each set.

This degrades the cache from 128 sets, 8 way to 128 sets, 1 way.

Not only does fixing this bug increase accuracy, but it increases
preformance too, giving a 1% speedup to interpreter.
2015-07-07 22:20:36 +12:00
Scott Mansell c54534ee3b Merge pull request #2649 from phire/FileIO_Sanity
IPC_HLE: Don't open/close files for every single file operation.
2015-07-07 17:16:28 +12:00
Scott Mansell 6e969133f5 evdev: Delete rumble effects on the correct file descriptor.
Was using m_id insted of m_fd.
Also re-arrange the code so rumble effects always get deleted instead of
just on stop commands.
2015-07-07 16:59:10 +12:00
Scott Mansell e14816351e Merge pull request #2706 from phire/revert-PIE
Revert "Merge pull request #2358 from Tilka/pie"
2015-07-07 16:53:50 +12:00
Scott Mansell 0b0f70aad4 Revert "Merge pull request #2358 from Tilka/pie"
This reverts commit 0f7f8f8774, reversing
changes made to 9f15054358.
2015-07-06 09:05:25 +12:00
Scott Mansell 08fcc7bf84 IPC_HLE: Cleanup device definitions with templates.
Less copy/pasted code will make future modifications easier.
2015-07-05 02:05:39 +12:00
Scott Mansell 1d5cda9820 IPC_HLE: Reimplement fix for issues 2917/5232 with more sanity.
Instead of opening... and... closing... files... after... every...
file... operation... (which can be slow, especially if a virus scanner
is running), we catch attempts to open the same file twice and
only open one copy of the file.
2015-07-05 02:01:45 +12:00
Scott Mansell 1af8b62d9f Merge pull request #2698 from Tilka/evdev
evdev: fix -Wunused-private-field warning
2015-07-05 01:14:42 +12:00
Scott Mansell d2578000bb Merge branch 'stable' 2015-07-04 23:43:36 +12:00
Scott Mansell 77183899e0 evdev: Support axis with ranges which extend below zero. 2015-07-01 10:13:05 +12:00
Scott Mansell 0dc8763247 Linux: Don't allow dolphin to be build without evdev support.
Unless explicitly requested.
2015-07-01 10:13:05 +12:00
Scott Mansell ad714993aa CMake: Explicitly pull in threads.
Dolphin uses threads, but never actually pulled them it. Normally
some library we depend on would pull threads in, but there are
potential builds that forget to pull in threads.
2015-07-01 10:13:05 +12:00
Scott Mansell 9065ddf5fa Linux: Disable SDL controller backend by default.
Not deleted, because it's the only option for some other operating
systems such as FreeBSD or any other slightly exotic operating
system someone might try and run dolphin on.
2015-07-01 10:13:05 +12:00
Scott Mansell 2721fdf8a9 Linux: Add an evdev based controller backend, to replace SDL. 2015-07-01 10:13:05 +12:00
Scott Mansell 8b4734133e IPC_HLE: Don't open/close file for every single file operation.
On the first boot of Pokemon Snap it copies a 144KB file to the Wii's
NAND, but it only copies 32 bytes per IPC write call.

This was causing dolphin to open and close the same file over 4000
times. This wouldn't usually be a huge issue, except some operating
systems (namely Windows) allow 3rd party programs (namely antivirus
software) to hook all accesses to the filesystem.

This causes the antivirus software to scan the same file for viruses
4000+ times, which is kind of slow.

This fix reduces the initial boot time of pokemon snap from 3+ min
to just a few seconds. Could also improve other games which write
things to NAND.

Will break a few things, see the next commit for an improved fix.
2015-06-24 19:23:10 +12:00