Commit Graph

6299 Commits

Author SHA1 Message Date
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
NeoBrainX ccb4645f24 Fix a bug introduced by r6240.
Fixes issue 3320.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6265 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-09 13:47:56 +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
Rodolfo Osvaldo Bogado c203cd5dae little commit for developers:
patch/hack to make dolphin work under virtual box using Linux guest
tested under gentoo and virtualbox 3.2.8 with 3d acceleration on

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6262 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-06 18:03:31 +00:00
Jordan Woyak 31c7fb7a33 Fix wiimotes.(fixes issue 3195)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6261 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-06 02:28:52 +00:00
Jordan Woyak bfd04e380e WiimoteNew: Added button mappings for tables and crossfade slider on emulated turntable extension.(completely untested in game)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6260 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-05 21:43:51 +00:00
Soren Jorvang 0830e74d55 Only need one copy of Turntable.o.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6259 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-05 18:15:10 +00:00
NeoBrainX 4153e6eee1 Fix building with --as-needed.
Fixes issue 3301.
Patch by Christian.Morales.Vega, thanks ;)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6258 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-05 18:10:06 +00:00
Marko Pusljar 6c8fc66698 small HandleLoop() optimization for dsplle-int
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6257 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-04 12:50:16 +00:00
NeoBrainX 9ffc071e34 Some stuff which was still lying around on my hard disk:
- Add a sanity check in CRenderFrame::MSWWindowProc. Possibly reduces the risk of a crash when starting a game and immediately closing the emulation window when using the DX9 plugin.
- DX11: Add the resource usage as a parameter to CreateQuadVertexBuffer, possibly to be used in the future.
- reduce the size of the EFB access buffers from 4x4 to 1x1 since they needn't be bigger anymore
- some fixes to the recent hires commit.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6256 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-04 11:09:32 +00:00
NeoBrainX 4907e6b6d2 DX11: Add texture dumping and hires texture loading support.
Not sure if hires textures are working perfectly, yet, so test this, please.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6255 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-04 11:02:35 +00:00
baby.lueshi d57b0a14d0 Fixed hires textures not scaling. Also increased max size of custom textures to 2048x2048.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6254 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-04 01:54:51 +00:00
sl1nk3.s ec648ed221 Fixes issue 3295.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6253 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-03 22:50:57 +00:00
Soren Jorvang 4b5b9ad05c Add Turntable.cpp to SCons build.
Set native eol-style on recently added files.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6252 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-03 08:20:24 +00:00
skidau c6fa5804de Added support for PAL-R (Russia) ISO detection. Fixes issue 2575.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6251 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-03 06:10:14 +00:00
Jordan Woyak aae0fa7909 InputCommon(GCPad/WiimoteNew): Fixed issue when inifile didn't exist, defaults were loaded, and input didn't work. Fixed prob in DirectInput(hopefully doesn't break any other gamepads): buffered data wasn't ever being used. WiimoteNew: Hopefully made emulated swinging better(please comment). Added (completely untested) incomplete emulated turntable(DJ Hero) extension support :p. Deleted some files that I meant to delete in my last commit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6250 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-03 04:29:34 +00:00
Jordan Woyak 841583b8f3 Merged identical VertexManager code from DX9/DX11/OGL plugins into VideoCommon. Still need to merge VertexManager::Flush (will be easier after TextureCache is merged). Purposely using a class/virtualfuncs rather than a namespace so multiple VertexManager can be in one plugin (VideoMergeNew? :p).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6249 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-03 00:41:06 +00:00
pierre aaeb21fe3b Core/Common: Automatically emit a MOV in ABI_CallFunction* when the function
pointer cannot be reached by 32bit displacement.

RAX is caller save and non-parameter in all 64 bit ABIs, so it should be safe
to clobber it on function call.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6248 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-02 20:04:03 +00:00
NeoBrainX c0e90d4b39 DX11: Clean up AccessEFB and fix a crash. Thanks to pico554 for hinting at the wrong part ;)
Should fix SMG for NVIDIA users. Slightly changes behavior of the AccessEFB function, so test this for regressions, please (esp. in HD resolutions).

I tried to apply the same changes to Video_DX9, but for some reason EFB access didn't work anymore then. Might look into that later.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6247 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-02 11:50:50 +00:00
skidau 26c7a5303d Fixed a bug in JIT/JITIL. The size_of_merged_addresses variable was being used before it was initialised in certain cases (Rogue Leader).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6246 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-02 02:04:44 +00:00
pierre b80e207a8a Core/DSPCore: Make JIT work on 64 bit hosts
This is the safe variant that does not assume other
functions use R11 for &g_dsp.r, which they actually do.
So there is a lot unnecessary reloading of the register
getting emitted.

There are a few small changes exploiting pointers known
at emission time and making use of MComplex math.

Also renames m_LLEplaying to m_AIplaying in Core/AudioCommon.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6245 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-01 23:23:13 +00:00
Soren Jorvang c8c805f720 Remove unnecessary shadow variables and signed/unsigned comparisons.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6244 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-01 12:38:31 +00:00
skidau 23f8da4bf7 Fixed the glitches when an internal resolution other than Native was used in the OpenGL plug-in.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6243 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-01 11:03:37 +00:00
j4ck.fr0st 2a64643fdc Apply u-ra's patch to speed up CriticalSection on systems that use POSIX-threads (that is, not windows).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6242 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-30 17:17:13 +00:00
skidau 1450385a53 Undid the merges made to the OpenGL plug-in's Init and Shutdown functions as these changes broke non-Windows builds.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6241 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-30 16:11:31 +00:00
skidau 719521eeeb Added EFB Scale option to the OpenGL plug-in.
Renamed EFB Scale to Internal Resolution.
Removed Auto Scale option (it is now always on).
Added on-the-fly changing of the Internal Resolution in the OpenGL and Direct3D9 plug-ins.
Further consolidated the code in the video plug-ins.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6240 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-30 15:24:34 +00:00
pierre ce1057f17d Core/AudioCommon: Feed bigger audio chunks to the output devices in case of underrun.
This should eliminate the crackling with alsa and pulseaudio backends and replace it
with much nicer pauses. This is only interesting for audio backends that do not
respect Mixer::GetNumSamples() and should not impact users able to run the DSPLLE at
full speed.

The cost of this is an added LLE audio latency of about 0.06 s in the continuous
playback case. If that is too much, lower the low watermark.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6239 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-28 21:43:38 +00:00
skidau 7eb99b9088 Fixed r6235 for the Mac and Linux builds. Thanks, glennricster.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6238 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-28 21:28:49 +00:00
Shawn Hoffman 543c8926cc would help to have a vcproj for that.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6237 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-28 04:26:45 +00:00
Shawn Hoffman 4f534594cd add "asm" test to testsuite's sln
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6236 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-28 04:25:49 +00:00
skidau 88cd9f3df1 Minor code formatting:
First step to bring a level of consistency between the video plug-ins - variable names, spacing, function names, function order, comments, file names.  This will help us identify common code for VideoMerge.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6235 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-28 02:15:02 +00:00
Shawn Hoffman 73f4bc4598 Some more cleanup which should've been in r6232. Thanks Billiard.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6234 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-27 05:16:11 +00:00
Shawn Hoffman 986939f31a Make the memcheck log INFO level.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6233 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-27 04:30:23 +00:00
Shawn Hoffman 18be8ffa6e Replace all bitfields which were only declared with "(un)signed" with their actual types. Let me know if I missed any. It would also be a good idea to test this commit in both x64 and x86.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6232 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-27 04:29:51 +00:00
Shawn Hoffman 6cf51dbd66 Allow SI AM_Baseboard to be selected correctly in GUI.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6231 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-27 02:22:53 +00:00
nodchip a5333f80d1 Gecko code: Fixed the thread-safe problem reported in r6227.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6230 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-27 01:18:25 +00:00
pierre bc1e0c24e8 Add an PanicAlert in case we try to do an >32 bit displacement
If you see this alert, dolphin will probably crash in a few moments.

Found in the course of fiddling with DSPLLEs JIT, which puts its data
structures and static code somewhere above 0x7fff00000000 on my machine, making
it unreachable via 32bit displacements from the created code at ~ 0x40000000.

Fixed all the offending places in DSPLLEs JIT to emit register indirect accesses,
only to find out that the generated code is slower than the interpreter and does
work just as good(or bad). Oh well, back to DSPHLE it is then.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6229 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-26 19:37:30 +00:00
nodchip 2f44464eef Fixed the build error in r6227.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6228 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-26 06:58:21 +00:00
nodchip 436a927566 Gecko codes: Implemented CT6 CST1 code type (insert asm code in the game). This function may need many tests.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6227 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-26 06:31:45 +00:00
nodchip e011b4a6a6 Jit64/JitIL: Removed a redundant MOV instruction. This commit suppresses alert windows of debug binary in windows.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6226 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-26 04:50:12 +00:00
pierre 91036ae160 Slightly adjust z-values calculated in the vertex shader so OGL does not clip the
final rendering of (at least) Sonic Unleashed.

This should be (nearly) invisible in Z16 depth copies and in games, but there is
some chance that it collides with other such border cases. There probably is some
room to decrease the adjustment but 9999999/10000000 is not enough. A static offset 
may be an option, too. I don't know if the game can/does set something like that.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6225 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-23 19:38:49 +00:00
Rodolfo Osvaldo Bogado e641323de2 i know still a lot to fix and much work to do but sometimes experiments are fun :)
for all the plugins implemented per pixel lighting, this will make games that uses lighting  a lot nice. (just look at mario sunshine and compare :))
for dx9: implemented temporal anaglyph stereo: just grab your red-cyan glasses  and enjoy.
stereo calibration: use stereo separation ( distance of the point from you are looking) and Focal Angle: the angle necessary to focus in one particular object.
this settings are different in every games as they use different depth ranges.
please for any regression and bug introduced by this commit.
if you ask why i did not implement stereo in dx11 and opengl the reason is one: they don't work right when i have more time will try to find a way to make them work.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6224 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-23 02:17:48 +00:00
nodchip 5e806eb7b2 Jit64/JitIL: Implemented simple function inlining for speedup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6223 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-23 02:05:04 +00:00
nodchip 97a9c375f9 JitIL/Jit64: Removed std::vector for speed up.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6222 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-22 02:42:17 +00:00
Jordan Woyak 073899cb26 Forget about something. :p
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6221 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-20 23:24:05 +00:00
Jordan Woyak 32143f9457 Fix "Plugin_VideoMerge" dependencies.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6220 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-20 22:53:32 +00:00
Jordan Woyak 194493cc04 Some work on merging the video plugins: Added a new plugin to the solution(shouldn't build by default) which combines the DX9, DX11, and OGL plugins with their common code merged (and some things temporarily removed). In it's current state the plugin is hardly usable. Perhaps someone with knowledge of the video plugins will be able to fix the things I have broken more easily than me(or point me in the right direction). I will continue to work on it as well.
Main Issues:
DX11 is functional with a ~2MB/s mem leak.
OpenGL/DirectX9 have a black display while game runs. (DirectX 9 flashes good display on emulation stop)
Too many virtual function calls. (once everything is working, I will work on removing them)
Won't build on non-Windows in its current state. (mainly EmuWindow will need changes for Linux/OS X)
Probably other stuff.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6219 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-20 21:45:47 +00:00
pierre 6583a3f1e2 Plugin_VideoOGL: X11: Add another display connection to keep the two threads from
eating each others events.

Manifests itself in GPU thread waiting forever for a reply in GL library code(and thus 
a frozen emulation). Most of the time, this can be resolved by creating more events 
(clicking, changing focus), but sometimes it stays stuck.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6218 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-19 23:40:03 +00:00
pierre 236f75aac3 Make shader for copying from depth buffer to texture more resilent against precision loss.
The theoretical result is slightly different to the original shader because the
final adjustment is to the range [0/255..255/255] instead of 
[0/16777215..16777215/16777215].

The real result is vastly different on some gpus that were giving incorrect results
of bits 23..16 (y-component) wrapping around while bits 31..24 (z-component)
stayed the same, and bits 31..24 changing while in the middle of the value range
for bits 23..16 for large depth values.

This should fix issue #3123.



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6217 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-19 20:01:17 +00:00