Commit Graph

9745 Commits

Author SHA1 Message Date
degasus
4a929f85b6 GLSL: fix transparency issues on dual source blend. fix issue 6104 2013-03-17 00:36:13 +01:00
Pierre Bourdon
9a404ca6d4 Ship by default a free DSP ROM that can handle most games with LLE
At the end of July 2011, LM published a free DSP ROM that works with games
using the Zelda UCode. His ROM only has the code to handle UCode loading and a
few utility functions, the rest is missing. This includes the four large sound
mixing functions used by the AX UCode and the DROM containing coefficients used
for polyphase resampling in AX.

This is an improved, updated version of this ROM, which changes the following:

- We now have a free DROM that works for polyphase resampling by "emulating"
  linear interpolation. The coefficients contained in the DROM are normally a
  list of { c1, c2, c3, c4 } which are used to interpolate a sample value from
  four previous samples:
    out_sample = prev1 * c1 + prev2 * c2 + prev3 * c3 + prev4 * c4

  The coefficients are chosen depending on the fractional part of the current
  position (basically, our position between the previous and the next sample).
  We can use this fact to generate (c1, c2, c3, c4) for each possible
  fractional part so that:
    out_sample = prev3 * curr_pos + prev4 * (1 - curr_pos)

  Which is the formula for linear interpolation between prev3 and prev4. Linear
  interpolation is not as good as polyphase resampling but it still works very
  well and I couldn't really hear any difference between the two. If someone
  wants to generate real polyphase filter coefficients, they are welcome to
  submit a patch.

- The IROM now contains the 4 mixing functions used by the AX UCode: mix_add,
  mix_add_two, mix_add_ramp, mix_add_ramp_two. They are large, inlined
  functions (probably for performance reasons) in the official DSP IROM, our
  version prefers to use a loop. This *should* be more performant with our DSP
  JIT implementation, but I did not benchmark that.

Because the new DSP ROM is working just as well as the official ROM in 95% of
cases, it is now shipped by default with Dolphin and will be used with DSPLLE
if you don't have an official DSP ROM in User/GC. It will still display a panic
alert at every boot to notice you that you are using a non official DSP ROM
made by us, which is not perfect.

Games using the CARD, IPL or GBA UCodes are still broken. I don't know what
games this actually impacts, but this is a very small proportion compared to
what works.
2013-03-16 23:54:55 +01:00
degasus
c7d75ee437 GLSL: explicitly check for gl errors for pinned memory 2013-03-16 10:08:46 +01:00
Jordan Woyak
059e100425 Check for HID wiimote name on Windows instead of assuming everything is a wiimote.
Fixed issue 6031.
2013-03-15 21:27:46 -05:00
James Dunne
f1ef51abc8 Removing Core::IsGPUThread() and Core::IsCPUThread() calls in favor of simple bool isCPUThread parameter value. 2013-03-15 19:42:42 -05:00
James Dunne
4137fc0023 Removed calls to YieldCPU from RunGpuLoop. 2013-03-15 19:42:38 -05:00
degasus
6962929356 GLSL: fix nfs-hp2 2013-03-15 23:32:01 +01:00
degasus
e1a081ad2d Merge branch 'GLSL-master'
Merge an endless story. The branch name is a lie, it was started as glsl, but now it is a complete reworked opengl3 backend.

It just began with simple changes which aren't supported on osx.
They either support ogl2 OR ogl3 core, but mixing isn't allowed.
As the branch name says, the vicious circle starts with GLSL, but just implementing one wasn't possible either:
- OSX supports only GLSL100 which doesn't support our shaders.
- Vertex Array Objects are needed for ogl3, but not supported on ogl2
- immediate mode isn't supported any more, so we must implement vertex buffers
- uniform buffers are recommended as else we would need tons glUniform
- postprocessing shaders have to be converted to glsl
- lots of smaller outdated issues and bug fixes :-)

Thanks at all for testing and at Sonic for converting all of our shaders to glsl130

And sorry for all upcoming bugs...
2013-03-15 22:49:26 +01:00
Rachel Bryk
8767b30f75 My OCD will not stand for this. 2013-03-15 15:42:59 -04:00
Ryan Houdek
363d0be9f9 Derp. No Windows to test compile on. 2013-03-15 11:29:12 -05:00
Ryan Houdek
8c1091a21f Merge branch 'master' into GLSL-master
Conflicts:
	Source/Core/VideoCommon/Src/PixelShaderGen.cpp
	Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp
	Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp
2013-03-15 11:19:52 -05:00
Rachel Bryk
d63d7fde9e So much more readable now! 2013-03-15 11:45:43 -04:00
NeoBrainX
e877b5019b PixelShaderManager: Reload fog range adjustment shader constants upon viewport change.
Fixes issue 5618.
2013-03-15 15:08:51 +01:00
Rachel Bryk
def578fea6 Fix checks for preventing the main and render windows from spawning off screen. 2013-03-15 09:19:39 -04:00
skidau
afb6f9127a Corrected a typo. 2013-03-15 19:32:47 +11:00
degasus
84119a966b Revert "remove wx from agl"
This reverts commit e63a5d8529.
window_handle is also used at many other places, so just move it here isn't allowed
2013-03-15 02:40:08 +01:00
NeoBrainX
203b1748a3 PixelShaderGen: Force depth textures to be emulated when the result is needed for fog calculation. 2013-03-15 01:01:00 +01:00
NeoBrainX
1f73651a7a VideoSoftware: Do not clear the depth buffer on EFB copy clears when depth writing is disabled. 2013-03-14 23:59:52 +01:00
Ryan Houdek
d6c7e7d652 Let's do this version check again. 2013-03-14 15:46:27 -05:00
Ryan Houdek
db1fc9019b Add a OSX version check to GLSL so if anyone running < OSX 10.7 gets a message instead of crashing when running the game. Turn off DEBUG_GLSL. 2013-03-14 15:25:41 -05:00
Ryan Houdek
e6c6053fcc Beginning of VFP cleanup. Will finish when I have the hardware in front of me. 2013-03-14 10:45:26 -05:00
Ryan Houdek
b4830be9bc Actually set the bIDIVa value in the ARM CPUDetect. 2013-03-14 08:48:01 -05:00
skidau
808eaf7c49 Fixed the Windows 32bit debug build. 2013-03-14 22:18:13 +11:00
Rachel Bryk
eaebebc33d Prevent the render window from spawning off screen.
Fixes issue 6063.
2013-03-14 05:28:02 -04:00
degasus
e63a5d8529 remove wx from agl 2013-03-14 09:52:13 +01:00
Braden
a0fdcaced8 Removes the redundant window on OSX 2013-03-13 21:34:52 -05:00
Ryan Houdek
c93f7760ce Really clean up all the emitter loadstores on ARM. If a ARM device supports VFPv4, then it supports IDIVA, so handle that in CPUDetect. 2013-03-14 01:50:38 +00:00
Ryan Houdek
202e2fa5c8 Add a new WriteNewStoreOp emitter function for beginning of rewrite of the Arm Emitter LoadStores. Will finish when I have the hardware in front of me to test on. 2013-03-13 14:08:54 -05:00
Ryan Houdek
c23a6505ad Fix dup Option and move one to the top where it belongs in the CMake file. 2013-03-13 11:56:23 -05:00
skidau
85eab1d262 Used the scheduler to generate the interrupt for IPC. Fixes the ES_LAUNCH games. 2013-03-13 22:23:59 +11:00
Rachel Bryk
0b34457a8e All the cool kids hard code string lengths.
Fixes issue 6090.
2013-03-13 07:04:53 -04:00
Rachel Bryk
e73cc858bc Allow playing movies from command line. Also remove some unneeded code. 2013-03-13 01:37:35 -04:00
kostamarino@hotmail.com
78d0ff1ab7 Update gameini database according to changes after the FIFO - BP Merge. Remove Fastdiskspeed from various games that no longer need it. Enable dual core and gpu thread synch option for F-Zero GX and Rayman Raving Rabbids. They are both a bit faster now compared to single core (about 20%) and without stability issues when dual core was enabled. 2013-03-12 20:33:01 +02:00
degasus
2c84c32ddc decrease d3d vertex buffer size 2013-03-12 17:48:20 +01:00
degasus
382be2aabd Merge branch 'master' into GLSL-master
Conflicts:
	.gitignore
2013-03-12 11:28:56 +01:00
skidau
83fc5f4747 Merge branch 'FIFO-BP'
# By skidau (30) and Pierre Bourdon (1)
* FIFO-BP: (31 commits)
  Set g_bSignalTokenInterrupt on the main thread.  Fixes the random hang in Harry Potter: Prisoner of Azkaban.
  Used a scheduled event to generate the ARAM DMA interrupt if the DMA is greater than a certain size.  Fixes NFS:HP2 GC.
  Bumped up the disc transfer speed enough to prevent audio stuttering in Gauntlet: Dark Legacy.
  Enabled Synchronise GPU on "SPEED CHALLENGE - Jacques Villeneuve's Racing Vision".  Required to go in-game.
  Added direct GameCube controller commands to the Serial Interface emulation.  Fixes the controls in MaxPlay Classic Games Volume 1 and the Action Replay disc.
  Increased the FIFO buffer size to 2MB from 1MB.  Fixes Killer 7's Angel boss.
  Used an immediate GenerateDSPInterrupt when transferring data from ARAM to MRAM and a scheduled DSP interrupt when transferring data from MRAM to ARAM.
  Fixes the audio cutting in and out in the Resident Evil GC games using DSP HLE. Triggered the ARAM interrupt by the scheduler instead of directly in function.
  Implemented proper timing for the sample counter in the AudioInterface, removing the previous hack. Cleaned up some of the audio streaming code.
  Skipped the EE check if there is a CP interrupt pending.
  Disabled "Speed up disc transfer" from the ZTP GC game ini.
  Removed the disc seek times for GC games and removed the disc speed option on Wii games. Checked for external exceptions only in mtmsr.
  Delayed the interrupts in the EXI Channel.
  Merge aram-dma-fixes (r76a13604ef49b522281af75675f044d59a74e871)
  Added a patch that bypasses the FIFO reset code in Wallace and Gromit: Project Zoo, allowing it to go in-game.
  Made vertex loading take constant time.
  Increased the cycle time of the vertex command.  Fixes "Speed Challenge: Jacques Villeneuve's Racing Vision".
  Moved the setting of the Finish interrupt signal back to the main thread as it was causing Wii games like Resident Evil 4 (Wii) to hang.
  Profile stores, fp stores and ps stores only to the fifo write addresses list.  This should make the JIT a little faster as it will not be checking for external exceptions unnecessarily.
  ...

Conflicts:
	Source/Core/VideoCommon/Src/PixelEngine.cpp
2013-03-12 19:47:59 +11:00
Ryan Houdek
8406d9972d Fix JIT from rebasing on PPSSPP ArmEmitter. 2013-03-12 02:35:29 +00:00
Ryan Houdek
b94b4a9e8f Rebase ArmEmitter on PPSSPP's base. The loadstores are making my heart cry at this point. 2013-03-11 13:57:55 -05:00
degasus
e1ca002937 osx: only use accelerated backends 2013-03-11 16:36:07 +01:00
degasus
b43c2e4d13 use correct color in ascii ari shader
still slow as hell, but it looks much nicer

sorry neobrain :-P
2013-03-11 00:47:43 +01:00
Glenn Rice
e160218394 Update pot file for recent string changes in the code. 2013-03-10 08:57:16 -05:00
Glenn Rice
91a4c9d899 Update translations from transifex.
Also add the transifix client configuration directory to gitignore.
2013-03-10 08:55:52 -05:00
Rachel Bryk
9a3633924d Dolphin needs to be restarted before playing back a wiimote movie, so let's suggest that instead of giving an unhelpful error message. 2013-03-09 02:44:24 -05:00
Rachel Bryk
13a64e992d Fix a typo. 2013-03-08 22:47:56 -05:00
Rachel Bryk
723371e022 Wow, I'm dumb. Fix mismatched set/get. 2013-03-08 20:06:04 -05:00
Ryan Houdek
f6d45ea461 Fix a potential issue when someone has a CPU core that isn't available on that host set in the INI file, it would just fail out. Now it defaults to interpreter. 2013-03-08 10:52:04 -06:00
degasus
2c9c4d0f01 remove syncing on hacked buffer
nvidia does wait for their gpu on syncing, so removing it.
But now, we have to recheck it on every plattform
2013-03-08 10:23:27 +01:00
degasus
708b7d57cd fix wrapping in postprocessing 2013-03-08 09:36:28 +01:00
Ryan Houdek
be217bf096 Add a comment about Qualcomm in load stores. 2013-03-07 20:28:18 -05:00
degasus
607ddc5b3f experimental postprocessing 2013-03-08 02:09:59 +01:00