Commit graph

3894 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
ef75d96655 Main change: Implemented EFB pokes in DX9/DX11.
Games affected by this change: Mario Smash Football, Mario Strikers Charged Football, Monster Hunter Tri.
Other games possibly affected: Shaun White Snowboarding, Resident Evil Code: Veronica, Baten Kaitos.
This implementation will decrease performance if the game uses this feature, but the glitches will be gone. I'll add an option for this in a later commit. EFB pokes are somewhat slow in DX11 right now, speed should be okayish in DX9 though.

Other changes:
- SOMEWHAT cleaned up the EFB access code in DX9
- Fixed incompatible parameter list of AccessEFB and TVideo_AccessEFB.
- Fixed a theoretical bug in ReplaceRGBATexture2D, add support for STAGING textures
- Removed unused parameters in various DX9 functions


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6300 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-22 19:40:05 +00:00
nodchip
e9d115a8b1 VideoCommon: Fixed the crash when the code cache of DLCache is full.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6299 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-22 03:50:44 +00:00
skidau
e9734084ee VideoInterface and Progressive Scan fixes
The "Enable Progressive Scan" option in the Wii menu now controls whether the Wii/GC will detect a progressive scan display.  This affects the timing of some games (both GC and Wii).  Usually, the checkbox should be unticked as progressive scan displays require higher bandwidth.

This fixes the slow speed in NBA JAM.  This also fixes the hang in Megaman Network Transmission.  This should fix Deadly Creatures (turn off progressive scan).

Fixes issue 3314.
Fixes issue 3066.
Fixes issue 2571.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6297 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-21 14:50:42 +00:00
Nolan Check
95cfca08e2 Put infrastructure in place so that other plugins may support dual-source blending.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6296 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-21 05:22:18 +00:00
Nolan Check
cb453a0fb3 DX11 plugin: Do destination-alpha in a single pass. No more drawing the same geometry twice! SMG is faster now because it uses destination-alpha extensively. This uses dual-source color blending, a DirectX 10-level feature. The equivalent OpenGL function comes from the GL_ARB_blend_func_extended extension, which was made core in OpenGL 3.3.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6294 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-20 03:11:22 +00:00
Nolan Check
0e534dd033 Clarify texture cache code. Previously, there were THREE sets of texture dimensions, and it was hard to tell which set was for what purpose.
Now, there are two:
Real dimensions: Width and height of the original GameCube texture
Virtual dimensions: Width and height of the texture used by dolphin-emu's renderer

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6291 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-20 00:39:45 +00:00
Soren Jorvang
9a03484d64 Goto'ing past variable initializations is undefined behavior.
Work around different gcc versions giving conflicting warnings
about signed/unsigned comparisons involving bit fields.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6290 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-20 00:12:41 +00:00
Jordan Woyak
7b45ac6e01 Made it easer to use mouse/keyboard and a gamepad together on the same emulated wiimote. Renamed mouse buttons from "Button N" to "Click N" so they do not conflict with gamepad buttons.(hopefully not too ugly, mouse buttons will need to be reconfigured) (Fixes issue 3363)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6289 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-19 23:11:22 +00:00
Jordan Woyak
cf05cca7a6 Merged common texture cache code from video plugins into VideoCommon. (DX11 native mipmaps currently broken, disabled) Hopefully everything else should still be working.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6288 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-19 22:24:27 +00:00
Shawn Hoffman
16ff21b0d5 display fprs in the registerview as hex, and allow editing of the values
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6287 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-19 13:35:25 +00:00
j4ck.fr0st
8b49d5ccca Don't store Render window size when the window is minimized (Fixes Issue 2940)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6286 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-17 12:42:04 +00:00
skidau
f444dd551b Quick FIFO fix to get NBA JAM working.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6285 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-16 10:16:05 +00:00
skidau
c4c56d3146 Added Wii disc speed emulation
Added disc access time emulation
Enabled the disc transfer speed by default
Changed the system timing back to the pre-r6090 default (thanks to tsilibourditsas for testing)
Changed the game property to "Speed up disc transfer rate".  Leave this disabled for the most compatible setting.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6284 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-15 21:46:51 +00:00
nodchip
8e6a866a5b JitIL: Fixed the folding rules. This was the underlying bug of the bad collision checking bug reported in Issue 3097.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6283 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-15 07:48:20 +00:00
nodchip
59381f8343 JitIL: Added an IR instruction. Fixed the NSMBW bug reported in Issue 3097.
In Issue 3097, two bugs are reported (The bad collision checking in NSMBW and MP2 collision issue). In this commit, the bug in NSMBW is fixed.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6282 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-15 00:45:45 +00:00
pierre
6d2c35a332 Core/DSPCore: Jit: only end emitting the current block when hitting an
unconditional branch(or idle skip), emit check g_dsp.pc and return when
hitting a conditional branch.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6281 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-14 13:17:38 +00:00
pierre
47eb5c3416 Core/DSPCore: Only check for internal exceptions in DSPEmitter::checkException, but
call it for every instruction, like in DSPInterpreter::Step. Fix the analysis lookups
for DSP_IDLE_SKIP and DSP_LOOP_END.

After this patch, the block_size and the return value from the block always match,
except when an internal exception is detected. This will change in a later patch,
so we actually get some benefits from checking if we need to call HandleLoop().


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6280 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-14 11:37:59 +00:00
Shawn Hoffman
6e6a0be8c4 allow dumping of mem2 as well as aram. thanks Treeki
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6279 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-14 04:07:04 +00:00
pierre
e9d91fb9f3 Core/DSPCore: Initialise all of the code blocks
It is pure luck that we did get a fresh (thus zeroed) memory area when not putting DSPLLE on thread. ClearIRAM() is supposed to only clear the non-static part.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6278 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-13 21:07:16 +00:00
Soren Jorvang
7c0cae9e8b Get the htonl/htons prototypes on all Unix-likes.
Clean up a few remnants of the --wiimote_plugin command-line option.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6277 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-13 13:18:17 +00:00
Shawn Hoffman
f8d8445805 buildfix for debug/debugfast x64
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6275 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-13 03:07:58 +00:00
Soren Jorvang
f862ed4782 The --wiimote_plugin command-line option is no longer relevant.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6274 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-13 00:19:10 +00:00
Soren Jorvang
739c9eb2df Allow building without bluetooth support.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6273 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-12 23:39:16 +00:00
Soren Jorvang
e81a10fb44 Temporarily re-enable SDL pad input on OS X.
Placeholder SConscript for VideoMerge plugin.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6272 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-12 22:26:30 +00:00
Soren Jorvang
a89b8f4a7d Fix scons build.
OS X real wiimote support not yet tested post-merge.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6271 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-12 20:14:09 +00:00
Jordan Woyak
7e08fc19fc Moved WiimoteNew into Dolphin and eliminated the old wiimote plugin. Removed wiimote plugin support. Moved input dialog related InputUICommon stuff into DolphinWX. Removed now unused InputCommon files. UDPWiimote stuff is temporarily disabled until it is reorganized so Core won't depend on wx. Real wiimotes are now initialized on first need(wiimote diag open or game start) and left initialized until Dolphin exit.(maybe this will work better for Linux/OS X) (scons probably needs some fixes)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6270 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-12 19:42:29 +00:00
Jordan Woyak
de3ad37299 WiimoteNew: Made emulated wiimote return read error when motion plus register area is read.(Fixes "Sonic the Hedgehog 4" input, perhaps others) GCPad/WiimoteNew: Made DirectInput use the Dolphin window hwnd for SetCoopLevel instead of GetForegroundWindow.(attempt to fix issue where gamepads sometimes don't work until "Refresh" is pressed)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6269 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-11 22:19:47 +00:00
skidau
7733b84bc1 Added a game option to emulate the disc transfer rate. This is needed for some games like Mario Golf and Fire Emblem: Path of Radiance.
Fixes issue 1992.
Fixes issue 2519.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6268 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-11 12:38:17 +00:00
Rodolfo Osvaldo Bogado
7797b9d753 a little bugfix and a small optimization.
this should fix issue 3313 but i can't test it


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6267 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-10 14:35:31 +00:00
pierre
34909ecebc Core/DSPCore: Make the JIT blocks return the number of cycles executed.
The block_size seems to be not reliable, even after trying to more closely match
the interpreter by looking at the analysis for (addr+opcode->size-1) for detecting
the end of the block.

Since we need to "calculate" this number shortly before returning to
RunForCycles, it seemed logical to use the (up to now) unused return value
of the blocks.

Improves SMG2 here.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6266 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-09 21:43:57 +00:00
Jordan Woyak
cf5639af54 GCPad/WiimoteNew: Reordered some stuff in DirectInput device enumeration.(makes certain gamepads work now, hopfully doesn't break other pads) (Thanks to YoD for helping debug) Also fixed something ridiculous in the input config dialog. :p
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6264 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-09 07:24:33 +00:00
pierre
f3b144d563 Core/DSPCore: Fix register use in two (currently) unused functions, correct the
IsSameMemArea check in the rest of the file.

Looks like this is simply a copy-paste error, that i dutifully "fixed" for 64 bits.

No idea if this fixes anything, but it brings JIT more in line with the interpreter.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6263 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-07 18:36:08 +00:00