Commit graph

113 commits

Author SHA1 Message Date
Rodolfo Osvaldo Bogado
e98a273b54 fixes for my last commit:
chage the global format of the screenshots to bmp, is correctly supported by both plugins and is faster.
reverted the changes in safe texture cache, will try to make them more stable then commit them, this should fix compilation in linux and macand error introduced in MP games
corrected all the issues commented by ector, thanks for the comments alway is good that the code is revised by others to find missed spots.
please report any remaining issue to solve them.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5001 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-03 14:13:03 +00:00
Rodolfo Osvaldo Bogado
9e2bbec47f a lot of modifications here :)
first fixed scaling when updating backbuffer to make it friendly with encoders, now frame dumping must work without errors in any codec.
clean screenshot and frame dumping code now is more correct, faster and stable.
improve safe texture cache, improving the distribution of the hash algorithm, including tlut hash in the final hash of the texture, and making use of a 64 bit hash to make it more accurate.
clean a lot of code and corrected some missused vertex formats when drawing full screen quads.
and biggest change last:
implemented pseudo antialiasing: a image post-process algorithm that mimics antialiazing and is fare more easier to implement in this scenario.
you can change the intensity of the effect changing the values of the antialiasing combo. the right value depends on the game.
for example mkwii looks awesome with 8x.
please try all the changes and let me know the results.
if something is broken, please let me know and will fix it asap.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5000 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-03 03:52:50 +00:00
Glenn Rice
feba09f7a3 Linux global build. At least the basic footwork is done here.
Basic usage:  "sudo scons install=global install"
Hopefully this doesn't break builds on Macs.  I have tested this on linux and windows.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4994 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-02 21:56:29 +00:00
ayuanx
8b129fca0c Fies Issue 1584
OSD and Hotkey to do quick config toggling

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4984 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-29 07:44:21 +00:00
ayuanx
4d0b87fdde Revert r4978.
Until anti-alias is implemented, turning it on will only slow things down.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4979 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-28 13:38:09 +00:00
ayuanx
b12ed5d171 This should make anti-alias effective again in DX9, though it seems it was turned off deliberately.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4978 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-28 13:25:40 +00:00
Rodolfo Osvaldo Bogado
2b5cadfeb4 small fix for my last commit, resizing is working again but screenshot do not work when rendering to main window, will fix in my next commit
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4977 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-28 04:30:07 +00:00
Rodolfo Osvaldo Bogado
e856d0b3ed EXPERIMENTAL:
rewrite frame dumping and screen shots to make them more stable and correct
enable viewport resizing for all cards, the emulation is more correct in this way
test this a lot please.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4971 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-27 22:07:59 +00:00
Rodolfo Osvaldo Bogado
438bf20771 quick fix for issue 2086
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4965 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-26 15:19:57 +00:00
Rodolfo Osvaldo Bogado
dbfdcc263b this should solve issue 2128 please test because i don't have the games mentioned in that issue
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4954 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-25 01:10:46 +00:00
Rodolfo Osvaldo Bogado
8c2bae9802 some minor bug fixes to my last commit and uncommented one line that was commented by error
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4922 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-21 22:32:24 +00:00
hrydgard
a43428253b Kill the last timeGetTime calls.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4921 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-21 21:27:52 +00:00
hrydgard
b88a70aa50 Hm, when did we lose linear filtering of backbuffer scaling, when necessary? Fixes Issue 2093 .
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4918 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-21 20:26:07 +00:00
ayuanx
82ccf1d34c Fixes Issue 2070
Fixes Issue 1886
Fixes Issue 1519
Fixes wxWindow Destroy Issue
Quits DX9 full screen when a message box pops up 

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4898 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-20 07:47:41 +00:00
Rodolfo Osvaldo Bogado
c4c809f6b1 Small fixes:
in opengl correct an error introduced by mi in efb to ram alignment, it's seems to fix SMS but it missalign a lot of other games, so revert to the default. must solve truncated coins in NSMB.
revert alpha testing values to the values in rev 4812 as they fix some games.
in d3d dynamized the Render target size so it will change at runtime when viewport exceed it size, in the worse case it will cause a missing frame when resizing but in the games I tested is not noticeable at all
This must solve all the remaining viewports problems in nvidia cards, in ati this is not needed.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4888 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-19 15:00:45 +00:00
hrydgard
3e01152793 Shader Disk Cache implementation for D3D. Saves generated shaders on disk. Eliminates "freeze jerks" in D3D plugin the _second_ and later times you play something.... not much to do about the first time. The D3D shader compiler is just slow.
Also assorted cleanup around the shader code.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4869 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-17 17:44:09 +00:00
Rodolfo Osvaldo Bogado
c62fb1d7d2 quick fix for MP games, only tested mp1 but my solve mp2 issues to
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4846 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-15 22:07:53 +00:00
Rodolfo Osvaldo Bogado
8de76f8fe8 ok big changes here:
in videocommon little fix for the alpha test values, return to the original values as they are more accurate.
in D3D:
huge change in state management, now all the state management is centralized and redundant state changes are eliminated.
Fixed the overlapped viewport error in non ati cards:
the error was caused by this: when a viewport is defined larger than the current rendertarget, an error is thrown and the last valid viewport is used, this is the reference behavior, in ati cards if a larger viewport is defined, no eror is returned, the rendering is valid and is rendered using the projection defined by the viewport but limited to the rendertarget are, exactly like opengl or the GC hardware.
to solve this in reference drivers defined a large rendertarget (2x the size of the original) and proceed to render in a centered quad insithe the larger rendertarget, in this way larger viewports always falls inside a valid rendertarget size, the drawback of this is the waste of resources. it can be dynamized, depending or games or changed at runtime when a oversized viewport is detected, but i live that to future commits.
please test this and let me know the results.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4841 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-15 15:52:08 +00:00
hrydgard
a81efdb597 D3D: Fix some texture wrapping issues by setting the texture state for every texture used at draw time. Hopefully there will not be a noticable slowdown, thanks to the state caching. Also some minor cleanup. Should fix issues like repeated shadows. TODO: In theory it should have worked without this, so I should investigate why this change was needed.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4815 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-12 23:40:30 +00:00
ayuanx
9cbd508181 1. This should fix Issue 1625 (Bizarre Auto Frame Limit)
Now the frame limiter yields on CPU thread, not as before on GPU thread mistakenly

2. Fixed clear of VI interrupts
   I guess VI interrupts are not used at all, because they were never cleared before

3. Made GPU thread 0% processor usage when paused whatever your active config is.
   I tried the event approach but somehow the thread resume latency is excessively long (Who can tell me why?)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4790 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-07 20:01:41 +00:00
sl1nk3.s
bf6ed51b87 Fix an issue with BPMEM_LOADTLUT, thanks to revned @ issue 1831, also fix a speed issue int the FIFO loop introduced recently (ZWW was ~20% slower)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4739 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-28 19:13:06 +00:00
Rodolfo Osvaldo Bogado
8cc2cc11fd this is a little commit:
changed the blending functions for the logic ops emulation, now the accuracy is the best possible with the functions available in D3D.
if someone is interested i'll post how i get this values :) please test and let me know the results.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4673 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-10 17:34:19 +00:00
Rodolfo Osvaldo Bogado
0bc7fa7bf5 Small fix for the last commit, and a little fix for disable fog to really disable it :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4662 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-09 13:51:28 +00:00
Rodolfo Osvaldo Bogado
d02426a8e9 mixed commit:
in D3D and Opengl:
fixed one nasty bug in texture loading where if a dynamic texture keeps his format but the tlut format is changed, the try or reloading the texture in the same texture could cause a hang if the size of the resulting texture is different than the original (size in bytes)
Applied a ugly temporal hack to the texture conversor to solve efb to ram misalignments and effect distortions.
in D3D:
Pseudo implementation of logic ops using basic blending: the first 8 operations are "good approximations", the remaining 8 are bullshit :) if someone have a better approximation to emulate this logic please let me know.
please test if i don't break anything in the process and test Mario kart wee you will get a nice surprise.:)
 

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4656 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-07 18:48:31 +00:00
Rodolfo Osvaldo Bogado
714618f4ad small commit to fix a error introduced in 4618, thanks to LordMark for show me the games where the error is visible
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4638 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-03 22:28:03 +00:00
Rodolfo Osvaldo Bogado
a99a1451f9 d3d: a little speedup in efb to ram please test and let me know the result
opengl: a little code cleanup and possible speedup in texture recreation.
d3d and opengl :plugins corrected the efb alignment when efb to ram is used.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4637 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-03 20:09:15 +00:00
luisr142004
60352d92eb Wiimote: reapply the Upright wiimote option
D3D: add the EFB Copy option to complete Rodolfo's commit plus add the Overlay FPS and the Disable Fog options
also change the config dialog's behaviour a bit

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4622 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-28 05:59:46 +00:00
Rodolfo Osvaldo Bogado
5e31f22e50 small code reorganization.
Now efb to ram display correctly but still is misaligned by one pixel
please test and give me feedback

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4618 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-27 19:42:27 +00:00
Rodolfo Osvaldo Bogado
55dc7efaa4 corrected viewport and scissor test behavior in both plugins.
some code cleanup in d3d.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4605 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-23 14:08:08 +00:00
Rodolfo Osvaldo Bogado
19d7bb2c84 big commit, implemented depth textures with hardware support in D3D, so now they will be correct as in opengl. please test a lot because i only tested the ati path, nvidia path is "Theoretical" :).
Also reimplemented screen clearing as a color quad to support alpha blending when clearing as in the original hardware.
the funny thing is how is implemented peeking, as locking depth textures is not supported, implemented peeking copying the values form the depth texture to a r32f render target and then reading back the data.
please a lot of testing to this commit.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4599 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-22 02:37:00 +00:00
Rodolfo Osvaldo Bogado
802c112ad9 Well this commit has 2 parts:
first part if fixing, fixed, i thing, the flickering that everyone has reported, at least in my case i only have flickering in the one texture in one game and now is fixed. The other fix is not for an reported issue, is more a correctness fix, running dolphin with pix to review debug errors, result in a ton of warnings and error, now with this commit, at least for ati, there no more error or warnings, this means, correct management and state change, no accurate emulation, for this still a lot of work to do.
for this part of the commit please give me feedback and let me know of remaining issues

Te second part is the partial implementation of efb to ram copy in d3d, this won't brake anything because is commented but i commit this to ask for help from ector and donko in some errors remaining in the implementation related to differences between opengl an d3d.
if you want to test this you have to uncomment line 150 to 155 of bpstruct.cpp

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4594 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-20 18:46:30 +00:00
Rodolfo Osvaldo Bogado
c2a4e33313 Implemented secondary path for hardware with no multiples render target support, so please a lot of testing from people with problems in the last release.
corrected a little depth textures still broken but now at least i discover the reason, the ultra bad news for d3d lover is, the only correct way to implement depth textures will be do a firs depth only pass disabling blending. 
This is because blending is affecting the values stored in the depth texture, so to store the true values, blending mus be deactivated.
this will degrade performance but is the only "Correct" way in d3d 9. the other possibility is dx10 but that's a complete different story ;)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4526 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-10 12:45:03 +00:00
Rodolfo Osvaldo Bogado
0ac07e8aa8 Big Commit this will break a lot, fix a lot, but i thing is a good step:
Implemented all the correct format conversions in efb to texture copy.
replaced all the stretcrect calls with quad draws this must improve speed a bit.
A BIGGGGGGGGGG cleanup in the code and reorganization.
reimplemented zpeek using a secondary render target ( this still is buggy so many issues left)
please a lot off feedback.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4520 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-08 20:35:11 +00:00
Shawn Hoffman
1b7303ea0a apply warning fixes from r1447
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4514 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-08 02:28:06 +00:00
Rodolfo Osvaldo Bogado
8e204c659e This is a "Try to fix" commit, reverted all the changes made by my first commit that could affect texturing, so please everyone with texture problems please test this, also in opengl let the viewport calculations the way they where, opengl can handle any values in the viewport.
in direct3d this is different, the only valid values are between 0.0 an 1.0 so fix this and let the shader handle the rest.
please test all this and let me know the results.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4494 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-02 21:09:48 +00:00
Rodolfo Osvaldo Bogado
22a0864337 Discover that various games that have black screen problem in nvidia is just caused by having negative zfar or znear values, in ati is not a problem, the drivers can handle it.
This is a test, clamp the values to see if this fix the problem, please test a lot don't know if this breaks something else 

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4491 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-01 01:15:06 +00:00
Rodolfo Osvaldo Bogado
dd7f6f991f small code cleanup, and little fixing of errors introduced by mi in my first commit :(
fixed scissor test in direct 3d


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4480 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-30 04:14:43 +00:00
luisr142004
f3681c0e1b D3D: change window startup a bit (pretty minor but it's just to get me started :P)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4473 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-28 22:40:18 +00:00
Rodolfo Osvaldo Bogado
a31eb24955 small commit,but should fix 2 big issues:
* clear and flicker problem in d3d, backbuffer clearing was commented out, (if this was on right let me know and I'll revert).
* alpha problem introduced by my modifications to the tev, must been sleeping when i wrote that code, should be fixed now.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4471 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-28 02:00:13 +00:00
Rodolfo Osvaldo Bogado
08b2686d90 as sl1nk3.s say make the updates directly to the viewport and let the scale fixed in 2^24.
please test specially in paper mario and Killer 7 that where games where supposedly this was used.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4470 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-26 02:38:23 +00:00
Rodolfo Osvaldo Bogado
0511d6e185 some work on zscale and zoffset, don't know if this is correct but at least it seem to fix one or two games.
thanks a lot to chaoscode he make possible to test this on nvidia. please test this a lot and give me feedback :)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4468 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-25 23:10:30 +00:00
Rodolfo Osvaldo Bogado
227d363881 small code clean up:
d3d: remove the depth texture path it will not work so for now only lockable textures were available. i thing the only way will be a use a secondary render target and do a depth pass to mimic depth textures.
opengl: minor cleanup here and there and a possible fix to issue 1509, but not tested because in my system the errors remarked in the issue don't show.
commond: code reorganization an optimization in the pixel shader  generator, trying to understand the tev stages, make some changes to make the generator faster (not much only started for the alpha test and fog).
this changes try start solving the diferences bethen the hardware plugins and the soft plugin.
i hope with i don't brake nothing but please test this a lot.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4465 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-25 02:35:21 +00:00
death2droid
091a454c50 D3D: Change it so the windows mode resolution displays all usable resolutions like full screen does.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4435 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-19 12:13:35 +00:00
Rodolfo Osvaldo Bogado
56224bd966 this is EXPERIMENTAL. Implemented 3 different paths to use depth textures and allow peeking.
they are extremely hard/driver Dependant so your test is needed.
there plugin will automatically select the path thats work for your hard, need that everyone post the messages that the video init throw (yes all will hate me for the messages) but is the only way to see what is the optimal path. in the next commit will clean the unused paths.
i'm afraid thath the second path is Vista dependant (you need to include vista sdk to make it work).
the third path use lockable depth buffer so there is no change in that. 
now peek color is fully working and is fast because the you never lock the the real color texture only the offscreen surface.
please if someone knows a game that use peek color please test it.
also fixed blending so SMS underwater must be fixed.
this work with d3d teach me that i love opengl :)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4393 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-10 23:36:18 +00:00
Rodolfo Osvaldo Bogado
41cc224ca1 added a more "correct" Color peeking, you can't lock the drawing surface so the correct way is to use and offscreen surface and use StretchRect to copy the data, then lock the offscreen surface and read the data. this is experimental so please test it a lot. the bad news is you can do this only for the color surface, the z-fuffer remain slow to read and only from lockable formats. the good news are the same code should work for mltisampled surfaced.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4384 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-08 00:35:47 +00:00
hrydgard
9c45ac7e35 EFB Reads are so slow in D3D that I think we need an option for it. Here it is.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4378 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-07 19:54:56 +00:00
Rodolfo Osvaldo Bogado
19b8e6bc08 Sps fixed in all the games tested, code cleanup and reordering
implemented buffer format fall back to allow hardware that don't support lockable formats to run the games with Z peeking disabled, applied as well the patch suggested in issue 1494 please give heavy test to this commit

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4365 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-06 14:24:10 +00:00
XTra.KrazzY
98e1dd6dc4 D3D: Major AccessEFB code cleanup. PEEK_COLOR now implemented (please test extensively)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4356 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-03 02:12:24 +00:00
Rodolfo Osvaldo Bogado
0170e61bfc more work on peek_Z this fix sms and zww sun flare
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4355 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-02 21:23:56 +00:00
Rodolfo Osvaldo Bogado
025d68ba11 Sorry for the last one , forget to update z clearing to support the format change.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4354 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-02 15:33:07 +00:00