Commit Graph

6534 Commits

Author SHA1 Message Date
skidau 6666b400a3 Updated with a less aggressive optimisation to EFB copy to RAM. The destination texture now does not get invalidated if its hash is found in the texture cache. Fixes Metroid Prime 3.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6353 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-07 04:28:33 +00:00
skidau 8775abacc6 Optimised EFB copy to RAM.
The finding was that 99% of the time, textures are static in memory. However, Dolphin would pessimistically continue to decode and copy the same texture every time.  The optimisation is to check if the texture matches what is in the cache, and if it does, Dolphin should early exit.

The result is the speed in New Super Mario Bros Wii increased 35% with spinning coins.  Still not as fast as EFB copy to texture though.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6352 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-06 04:46:44 +00:00
Glenn Rice d0afc20596 Added checks for portaudio and opencl to the cmake build system.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6351 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-06 03:49:18 +00:00
Glenn Rice 7864f3c087 Missed a needed -fPIC.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6350 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-05 23:38:37 +00:00
skidau f2f0f373a6 Fixed GeckoCodes.org retrieval for WiiWare.
Fixes issue 3438.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6348 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-05 20:58:27 +00:00
skidau 5436bef30b Added NVIDIA 3D Vision support. Patch by Uhyve.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6347 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-05 11:24:46 +00:00
Glenn Rice eb167e3ca8 Set "Release" as the default build type. Also cleaned up the CMakeLists.txt file a bit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6346 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-05 04:19:22 +00:00
Glenn Rice 2383e2b0f5 Improve the compiler flags for the cmake build system. -fPIC only needs to be specified for static libraries that are linked into shared libraries. cmake automatically uses -fPIC for shared libraries. Also ported several other needed compiler flags from the scons build. Set up the debug build, enabled with "-D CMAKE_BUILD_TYPE=Release", to work with wxWidgets debugging.
Note that most users will want to use the release build to get a -O3 optimized build.  This can be enabled by adding "-D CMAKE_BUILD_TYPE=Release".


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6344 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-05 02:23:24 +00:00
Soren Jorvang 49a9efb010 config.h is only created on Unix.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6343 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-04 21:27:03 +00:00
Glenn Rice 3aff478b3a Add the c++ definition HAVE_CONFIG_H in the scons build and check it before including config.h so the cmake build system doesn't need to worry about conflicts from that file if it exists.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6342 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-04 20:33:45 +00:00
Glenn Rice 4ac40687ea Okay. Big (possible controversial changes) to the cmake build system.
I am officially killing the local/global build crap.  The "local" build thing should never have existed.  There is now only one build that is essentially what the "global" build was before.  This is the way a proper build system should work.  I will soon write a wiki page to describe how to properly use the cmake build system, and how you can still set things up to get the "local" build from before.  However, that type of build should be considered a developer tool, and not the way that dolphin-emu should be built.
Briefly, to use cmake now do the following from the toplevel of dolphin's source:
mkdir Builddir
cd Builddir
cmake ..
make
make install (you may need superuser privileges)

Note that the scons build is still building dolphin in the old way.



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6341 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-04 13:47:17 +00:00
Shawn Hoffman 45c92d27f2 fix for r6337: don't restore cached settings if a gameconfig was not used.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6340 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-04 12:50:44 +00:00
skidau de62a190f1 Removed one of the extraneous conditions from JIT64 UnsafeLoadToEAX.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6339 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-04 11:43:44 +00:00
Glenn Rice 4b0d4ded98 More cmake work.
Added autodetection of shared libraries.
Added a check for Xrandr.
Fix OpenAL linkage.
Copy User and Sys directories to lower case in the binary directory.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6338 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-04 02:01:07 +00:00
Shawn Hoffman 7b23bf666f hackfix for per-game settings overriding the main settings. This quick and dirty hack goes out to billiard in return for his own generous hacks. fixes issue 3004. it's a hack, so it should be replaced with a more sane method...
also: hacks.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6337 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-03 07:37:13 +00:00
Shawn Hoffman e1549658a2 gray out ntsc-j option during emulation
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6336 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-03 07:16:03 +00:00
Shawn Hoffman 9df772ed89 Make NTSC-J setting an option. This allows games which use Japanese ROM fonts to work correctly. Unfortunately trying to autodetect when to enable this setting is not good enough.
Also move Progressive Scan option to main display settings, since it affects both GC and Wii.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6335 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-03 06:28:47 +00:00
Glenn Rice 381f92b151 Fix some linkage issues with the cmake build system.
Also X11 is required on *nix systems.
GTK2 is required for building the wxWidgets builds on *nix systems.
Added a check for pulseaudio.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6334 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-03 04:13:36 +00:00
Shawn Hoffman 95d9cb3a0f unbreak japanese rom font, broken by r6297
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6333 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-03 01:52:09 +00:00
skidau 785154b89f JIT fix for the lfs instruction in x64 builds. Fixes Ultimate Spider-man.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6332 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-02 10:27:57 +00:00
skidau d5c941a3ba Added NullSound to CMake without typo
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6331 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-02 03:35:44 +00:00
skidau 61c847eecc Added NullSound to CMake
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6330 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-02 00:39:52 +00:00
skidau 0af0929a88 Re-implemented the NullSound back-end. Allows Dolphin to be used on hosts with no sound hardware. Emulates strict DSP timing in the DSP HLE plugin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6329 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-02 00:16:49 +00:00
skidau 13dda74946 Allow the game to set the DSP sample rate. Fixes Bomberman Generation.
Fixes issue 2523.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6328 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-01 23:41:20 +00:00
NeoBrainX 48859da6e3 DX9/DX11: Fix and simplify ClearScreen. At least fixes a small glitch in Super Mario Sunshine with DX11, might fix several other things as well in both plugins though (so test this, please!)
Explanation of this commit: We only have to care about four BP registers in ClearScreen, the remaining API state should be reset. The colorEnable and alphaEnable parameters are obsolete, for some reason directly using them caused the SMS glitch with DX11 (because of that bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24 check in BPFunctions.cpp, is this one actually correct?)

The comment in BPFunctions.cpp was at least misleading (if not even wrong), so I removed it.

For what it's worth, someone needs to port this to the OpenGL and Software plugins (unless they're doing this properly already)


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6327 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-01 19:13:50 +00:00
NeoBrainX b75a805859 Add an experimental CMake build system as a possible replacement for SCons. Only tested on Linux, should work on OS X and Windows in the future as well though.
Some notes about this:
- config.h doesn't get written yet, so you'll have to use one generated by SCons
- dependency checking isn't really implemented, yet. Just some basic checks for OpenGL or ALSA, we need something more sophisticated though.
- the OpenGL plugin fails to load for some reason which I can't debug right now due to the libc debuginfo package version in openSUSE not matching the runtime packages
- there's even some support for generating install packages (rpm/deb/.. packages, NSIS installer, etc). It doesn't work properly right now though, since some paths seem to be hardcoded into Dolphin's source
- probably lots of other stuff I forgot... Just take a look at all the TODOs in the CMakeLists.txt files for more information ;P

Additionally, I added various files to the svn:ignore list.

tl;dr: Unless you are a dev or you're building binary packages, this commit shouldn't bother you :P


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6326 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-01 15:47:02 +00:00
pierre 4b9831cdce Core/DSPCore: Extended opcode handling fixes
* Make writeToBackLog private to DSPIntExtOps.cpp 
  (JIT variants of 'l and 'ln are disabled and broken as is)
* Make zeroing of the backlog conditional on doing an interpreter fallback and
  do it at a few more places
* Fix selection of cleanup for extended opcodes.
* Fix the DSP unit tests to correctly emit the function prolog/epilog
  (else EBX wouldn't be saved)
* Add a few more DSP unit tests


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6325 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-31 23:26:18 +00:00
Jordan Woyak 2f2a76b28a Attempt to fix real wiimote delay issues experienced by some. (Issue 3428)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6324 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-31 19:22:31 +00:00
NeoBrainX 765d1823fb Only enable shader dumping in Debug/DebugFast builds since the required information isn't available in Release builds due to performance reasons.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6323 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-31 15:32:04 +00:00
NeoBrainX 6b0ac026bc DX9, Debugger: Implement pixel/vertex shader and texture dumping.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6322 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-31 11:38:06 +00:00
Soren Jorvang 922bb419f4 Remove vestiges of standalone memcard manager build.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6321 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-30 10:54:41 +00:00
LPFaint99 c015811d4d remove standalone MemcardManager, now has its own repo
(http://code.google.com/p/gcn-memcard-manager/)
add some svn:ignores (windows build dirs)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6320 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-30 07:30:32 +00:00
NeoBrainX f7d1184d87 VideoCommon: Properly upscale the mantissa of some fog params.
Might fix games with minor gfx glitches, try e.g. Super Mario Sunshine or Super Mario Galaxy 2.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6319 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-29 21:37:20 +00:00
Soren Jorvang 6edb5f4847 Gah, need _both_ -search_paths_first and -Z.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6318 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-28 17:10:49 +00:00
Soren Jorvang a1312da859 Re-establish /usr/lib priority over /usr/local/lib using -Z instead
of -search_paths_first which doesn't play well with --sysroot.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6317 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-28 17:00:59 +00:00
Soren Jorvang 0dc50d283d Only link with libdl on Linux.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6316 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-26 13:53:13 +00:00
Soren Jorvang 8ba671f849 The wxProgressDialog delay bug has been fixed since 2.9.1.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6315 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-26 12:08:14 +00:00
Soren Jorvang 78ab1c0f3f More robust way of building on 10.6 for a 10.5+ target.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6314 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-24 20:07:12 +00:00
NeoBrainX ab53c84dcf Properly emulate the alpha read pixel engine register function (used for EFB peeks).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6313 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-24 19:52:52 +00:00
Nolan Check b71cd5f383 A couple minor things I have left over
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6312 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-24 19:41:10 +00:00
Nolan Check 61c6d4fe59 OpenGL plugin: Should fix building with earlier versions of GLEW. You'll still need the latest GLEW if you want to try dual-source blending.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6311 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-24 18:26:28 +00:00
NeoBrainX 5be617c129 Fix an off-by-one error introduced in r6309.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6310 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-24 17:04:20 +00:00
NeoBrainX 5cdda90182 DX11: Fix ClearScreen properly this time. Should fix quite a few games (or break them :P)
Fixes issue 3399.

Also remove unnecessary stateman/gfxstate applies:
- gfxstate->ApplyState/Reset only need to be called by VertexManager
- stateman->Apply only needs to be called before any Draw/DrawIndexed call

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6309 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-24 16:53:33 +00:00
NeoBrainX 52cd3aee95 Fix a major speed regression from r6288:
Upon texture reloading, the cache entry hash wasn't updated and thus we effectively disabled any texture caching in that case.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6308 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-24 15:16:31 +00:00
skidau 56e79aa87d Added a safer OpenCL shutdown procedure.
Fixes issue 3015.
Fixes issue 3089.
Fixes issue 3099.
Fixes issue 3360.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6307 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-24 04:17:36 +00:00
Nolan Check 2ec3db44ed OpenGL plugin: Support for dual-source blending, CURRENTLY DISABLED. It doesn't work yet. To fix it, we may need to convert all our shaders to GLSL so that we can use glBindFragDataLocation.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6306 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-23 19:55:19 +00:00
NeoBrainX 91186d2b8a DX11: If the virtual XFB list overflows, replace the oldest XFB with a new one instead of just failing.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6305 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-23 18:44:01 +00:00
skidau 7410056536 Added the wait/sync back in the video thread on XFB swaps. Fixes issue 3391.
Changed the VI interrupts to occur on writes instead of reads.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6304 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-23 12:26:57 +00:00
NeoBrainX 5ebc9c97db Fix another bug introduced by r6301: Using observer variables now to check for ring buffer wraps.
Small performance improvements by increasing the ring buffer size and using a better offset algorithm.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6303 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-23 09:59:33 +00:00
NeoBrainX ae07f24b98 Fix a small but severe and stupid bug introduced by r6301...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6302 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-22 20:58:42 +00:00