Commit Graph

830 Commits

Author SHA1 Message Date
Rodolfo Osvaldo Bogado d511b50612 this commit is divided in 4 parts:
1 - Optimize pixelshadergen to avoid redundant register overflow math, with this if a game don't need this will be not applied.
this must bring some fill rate back and improve speed a little in fill rate limited systems.
2- some corrections to vertexshadergen to avoid uninitialized texture coordinates, dono if is the correct way to fix it but t least it will make house of the dead overkill playable in dx11.
the bad thing: still missing geometri in dx9, in dx11 it works exactly as on opengl.
3 - some optimization made to improve fps a little wih the latests changes made to fifo.
* back to the original code in beginfield as now it will work right.
* check for efb access more often as a lot of time is lost waiting for efb access
4 - apply a little fix for missing textures in nvidia opengl tanks to  Wagnard28 for finding that nvidia does not like invalid shader id :)
please test for any regression

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5812 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-29 14:40:37 +00:00
Orphis 8315aa1432 Fix some projects to include CLRun/include to find the OpenCL headers.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5809 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-29 09:15:29 +00:00
Orphis 685bae34e5 Dynamically load OpenCL on Windows with CLRun. There shouldn't be the need to make a separate build now or download a big SDK to link Dolphin.
If compilation fails, rebuild the whole solution as Visual Studio struggles with the not so complex project dependencies.
ATI users still need to install the Stream SDK as it's the only way to have an OpenCL driver.
NVidia users just have to install a recent driver (version 197 is tested and working).

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5808 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-29 02:23:09 +00:00
Soren Jorvang 8c3ed5dc46 Lint.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5796 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-26 13:12:28 +00:00
Marcos Vitali f94eed887b Uncomment Ayuanx patch, this was commented in my last commit by error, My apologize...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5784 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-25 00:13:06 +00:00
Marcos Vitali 10b5d2371c My first commit :D
Dual Core sync fix.
When the FIFO is processing data we must not advance the cpu cycles in CoreTiming because in this way the VI will be desynchronized. So, We are waiting until the FIFO finish and while we process only the events required by the FIFO.
This should fix Issue 2072 .
This affect to all games in dual core mode.
Please, You can test all games with VPS limiter auto, 60, 50 depending of the game and compare with prev revision.
For example now NSMB in the video Intro has 60 fps (prev 30 fps) :D or SMG does't need anymore FPS Limitter Hack to get 55-60 fps
Beside the slowdowns now are more softly and the fps more stables because the VI sync is almost perfect.
The Core Timing and Fifo modifications are delicated. Please report if this hang any game. Don't forget check with prev revision.
Enjoy it! Thanks to Rodolfo for teach me all about dolphin.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5777 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-24 13:28:54 +00:00
nodchip 5cf491af64 VideoCommon: A minor speed up.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5772 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-23 03:02:15 +00:00
xsacha 21fb4cb96c Add a toggle option for OpenCL in Config (in Advanced Settings). Default is off.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5768 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 13:17:01 +00:00
Orphis 2cc5b98f07 Added OpenCL texture decoding to RGBA usable by DX11 for formats RGB565, RGBA8, RGB5A3 and CMPR
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5765 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 03:10:43 +00:00
Orphis c2e32371f6 Refactor and prepare the OpenCL texture decoder for decoding textures to RGBA format required by DX11.
Fix the decoder codepath when OpenCL is enabled and the DX11 plugin is used.
Added the DX11 plugin to the Dolphin project dependencies.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5764 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 00:52:17 +00:00
hrydgard 6a88241e64 D3D9: Delete some long dead code. Also add one more statistic: number of compiled shaders that actually have unique code (not accurate unless you delete the shader cache before running). This stat clearly shows that in f-zero we create 5x as many pixel shaders as we should, so there's clearly a problem with the shader ID generation.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5754 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-20 22:23:34 +00:00
Rodolfo Osvaldo Bogado 4ab0e4b8a0 fix for rbga8 decoding that causes problems in nsmbw
fix for screen clearing in opengl and d3d

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5749 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 21:12:09 +00:00
hrydgard ccbc1feb0b D3D9: Fix issue where the shader caches were lost whenever the render window was resized. Add some error logging to LinearDiskCache. + some minor cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5747 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 16:22:24 +00:00
Rodolfo Osvaldo Bogado 8c6ae1f6f4 add a path to texture decoder to produce only rgba textures, this will make texture loading in dx11 a lot easier and give a little performance boost to.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5746 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 13:31:40 +00:00
luisr142004 ab1e5f8537 apply a patch done by xsacha :) + some minor stuff :p
what changes do: cmpr decoding is fixed and rgb5a3 is re-enabled

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5744 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 07:59:53 +00:00
ayuanx 221e722284 Linux build fix.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5725 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-16 14:22:17 +00:00
Soren Jorvang ce3eb2a13b Automatically detect and use shared library packages for
LZO/SFML/SOIL as already done for GLEW/SDL/zlib.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5723 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-16 12:42:49 +00:00
luisr142004 4f8a6a1573 apply some speedup to dx11 plugin + some minor stuff
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5721 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-16 10:12:57 +00:00
ayuanx 9b6ccb4d77 Alleviate FIFO overflown situation a bit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5719 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-16 07:22:47 +00:00
ayuanx 4464c11457 Sorry, I forgot to implement LoWatermark code for SC, now both SC & DC are working.
By now I'm pretty sure some games are written in multi-thread, and they depend on Watermark to suspend/resume their threads.
So without Watermark, they will never work.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5709 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-15 14:24:01 +00:00
ayuanx 40d87e0f8f Oops, the HiWatermark interrupt latency is too long for game to react.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5707 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-15 11:20:05 +00:00
ayuanx 105f64359a Games like "Star Fox Adventures" which were enabled in r5681 are now InGame, though the watermark slows the emulator a bit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5706 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-15 10:58:14 +00:00
ayuanx 64299206d1 I was wrong on the CPEnd issue, which reveals CPBreakpoint > CPEnd is possible and that explains why some BPs could never be achieved before.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5705 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-15 09:58:43 +00:00
ayuanx 673b9ac179 Implemented accurate BP and accurate Watermark, this should eventually retire FAKE_Watchdog.
AbortFrame is not implemented yet.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5699 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-14 21:55:40 +00:00
ayuanx 857f1f4d38 Fixed GPFifo out of bounds by 32 bytes
Fixed incorrect FIFO out of bounds check
plus a bit optimization of CheckPipe()

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5692 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-14 16:32:40 +00:00
Rodolfo Osvaldo Bogado fc12291806 some fixes to my last commit and ....
modify shader generator to produce native sm 4.0 code.
eliminate compatibility mode in dx11 so now all shader must work much better.
please test.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5691 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-14 14:36:01 +00:00
NeoBrainX a0f1797e46 Revert even more stuff from r5681.
I have no idea how all this stuff works, but this fixes at least some (if not all) games which worked before r5681.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5689 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-14 09:05:47 +00:00
Rodolfo Osvaldo Bogado 41266b5ed0 fast fix for pixel shader compilation in dx11
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5687 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-14 03:09:44 +00:00
ayuanx 7e27914b45 Revert r5681
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5685 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-13 23:26:22 +00:00
ayuanx f7a91ff3cd Unleash the beast.
Improved dual core mode for "Metroid Prime 2", "Star Fox Adventures", etc. 

I should have committed this long time ago, but I don't have every game to test compatibility... Any way, better late than never.

PS: If any regression observed, feel free to revert this rev.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5681 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-13 20:06:29 +00:00
NeoBrainX 3ea2a1387c Add a DX11 video plugin.
Might or might not work for you, yet.
Anyway, read the soon to be created forum thread on this plugin before asking any questions.

Huge thanks to rodolfoosvaldobogado for helping me out in various areas.
Also, thanks to everyone on IRC who supported me during development ;)


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5680 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-13 19:50:06 +00:00
Rodolfo Osvaldo Bogado 20e3919033 apply James333 patch to make dx9 plugin use wxwidgets.
some other minor warning fixes.
thanks to James333 nice patch :)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5679 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-13 19:41:07 +00:00
NeoBrainX a6ebc8234f Preparing stuff for DX11:
- be more strict with the input signature of generated pixel shaders
- replace the D3D parameter with an API_TYPE one, so that we can further distinguish between DX9 and DX11
- for what it's worth dx11 (using vs_4_0) doesn't support D3DCOLORtoUBYTE4; added a workaround for this
- add a "dx9-" prefix to the shader cache files to avoid conflicts with dx11 shaders

Apart from that we're calling CommandProcessor::Shutdown() in main.cpp,Shutdown() now.
Delete all files in User/ShaderCache if you want to save a few KB disk space :P


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5659 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-12 15:49:21 +00:00
Rodolfo Osvaldo Bogado ce3c2700e7 This commit is separate in two parts:
Fix: fix for lighting equations , that must improve lighting in a lot of games (  test smg :) )
experimental speedup: implemented alpha pass using stencil buffer instead of a duplicate shader. i recommend to test this well as i dono if will work the same way in all the systems. i my system it gives a nice 2-5 fps improvement. if it brings problems in any system or game will revert asap.
enjoy

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5653 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-12 12:36:33 +00:00
Soren Jorvang 404c625622 Simplify the SCons build:
On OS X, build all code as Objective-C(++).

Centralize framework handling.

Cleanup.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5645 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-10 14:18:21 +00:00
Rodolfo Osvaldo Bogado 9d792d4673 added ssaa and efb scale as separate configurations:
efb scale :
auto fractional: the original scaling way, will grant a 1:1 pixel mapping between efb and screen giving the best image quality even in non standard resolutions
at the cost of glitches in some games.
auto integral: automatic but only int values for the scale, no glitches but only the correct pixel scaling when using some resolutions.
the rest are the fixed scales.
enjoy.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5639 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-09 15:33:01 +00:00
Shawn Hoffman 4a0c8fc0c9 Hg:
enable newline normalization
get revision number via `hg svn info` for svnrev.h
ignore incremental/generated binary files (windows/VS at least)
leave a comment if some files need native eol set in svnprops

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5637 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-09 01:37:08 +00:00
luisr142004 2e783d9769 space changes, merge #defines, language fix, and code reorder/cleanup :P
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5614 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-05 01:38:22 +00:00
Rodolfo Osvaldo Bogado c98f8a96d2 HUGE commit :)
in general cleanup and bugfix disable pierre  patch for the moment as it causes problem in some games and hopefully fix the remaining missing textures for nvidia users in opengl.
make the code in pixelshadergen looks nice and readable.
D3D: this is a ultra experimental commit please check for regressions or error.
make the efb Scale / super sampling level customizable to improve the output quality and let the user configure quality according to his hardware.
is everyone likes this change will translate it to opengl
please test


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5612 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-05 00:01:18 +00:00
hrydgard 12a4c25e9f Port InputPluginCommon to use the original IniFile code, get rid of Billiard's.
a few minor warning/compile fixes.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5604 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-04 20:03:03 +00:00
hrydgard a3c96ac42c Warp back to 5578. Sorry for the lost changes, please re-apply. Reason: 5579 is a complete disaster.
Not only does it change tons of files to switch to a new and non-working (it doesn't parse my ini files, at least) ini parser, it also reshuffles a lot of code and removes a plugin. The latter part is fine, but doing these two major switches in one revision, one of which is broken, is completely unacceptable. I said to merge tiny changes, not massive reworkings.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5589 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-03 18:05:08 +00:00
Shawn Hoffman e4085f0f04 Merge GCPadNew into Dolphin. This takes place in three segments: Core, InputCommon, and InputUICommon. From now on it can be referred to just as "GCPad".
Switch to Billiard's IniFile implementation throughout Dolphin (it's faster!!).

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5579 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-03 04:55:39 +00:00
Soren Jorvang 30e437f9e3 Fix some cases of variables being used uninitialized. Also some unused
variables, writeable strings and dangerously shadowed variables.

index(), gamma(), exp() and y0() are POSIX functions and using those
names can cause namespace confusion.

A number of C files were missing the final newline required by ANSI C
and some versions of GCC are pedantic enough to complain about this.

These changes simply the scons build, allowing us to get rid of
filterWarnings which is simply more trouble than it's worth.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5574 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-02 20:35:12 +00:00
Soren Jorvang 664cea45c7 Meta:
Using Unix tools to operate on a tree containing filename with spaces in them
is really annoying, so rename the handful of instances where there were spaces.

Host.cpp has never been used.

Games tend to lookup the following directories that we don't yet have anything
to put in, so prepopulate them in Data/User/Wii:

title/00010001
title/00010002
title/00010003
title/00010004
title/00010005
title/00010006
title/00010007
meta
shared2/title
 
Set eol-style native on a number of text files which didn't already have it.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5572 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-02 18:00:22 +00:00
Jordan Woyak ceabf90bda Improve iterator usage.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5528 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-28 23:14:16 +00:00
Rodolfo Osvaldo Bogado 66914c7ae4 lets apply some mathematical magic:
* optimize may last commit to make it faster
* reorder the code to make it more readable
please test and enjoy


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5520 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-27 21:43:07 +00:00
Rodolfo Osvaldo Bogado 253573ea02 ultra experimental commit. fixed tev functionality, now it must be almost perfect emulating native hardware.
please test as many games as you can this should impact a lot of games.
enjoy

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5511 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-27 03:05:43 +00:00
Soren Jorvang 810e6d53f0 For these assertions to trip, enums in CPMemory.h which seem pretty much set
in stone would have to change.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5496 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-26 21:05:42 +00:00
Soren Jorvang f2609d1af3 #if 0 work-in-progress code.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5488 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-26 20:52:44 +00:00
Soren Jorvang 57a22f670f Remove unused variables.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5480 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-26 20:43:16 +00:00
pierre 2e12bd5e34 Fix a few compiler/valgrind warnings, kill check for 17th texenv registers,
and one problem reading a truncated sram file.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5474 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-24 14:53:27 +00:00
pierre b73b77014f Rework the logic for avoiding lerp() in shader code
This should give the exact same shader code except for the cases of
SELA == SELB and SELC == 1, the latter only for the color combinder.
In these two cases the results of the shader should not change in any way.

It would have been possible to optimize the SELC == HALF case too, if
the actual factor had been 0.5f instead of 0.4980392f.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5472 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-23 22:46:13 +00:00
Rodolfo Osvaldo Bogado 782d9111e5 let's keep experimenting:
almost fixed real xfb in d3d, i say almost because there are some minor scalling problems. hope will fix them soon.
implemented a more intelligent index generator to emulate more accurately the behavior of the gc.
please give me feedback on this changes.
enjoy :)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5465 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-22 21:58:43 +00:00
pierre b1a79b822d Use symbolic names instead of numbers and bump cache version
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5464 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-22 20:40:43 +00:00
pierre 78b7a95d3f Modify r5462 as requested by rodolfoosvaldobogado
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5463 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-22 19:55:07 +00:00
pierre e07a91930d The result of the last texenv stage is used regardless of destination register
The real hardware probably always sends the result of its computations
to the alpha test/fog units, in parallel to its registers, but those
only take the result of the last texenv stage.

This makes grass show up in ZTP, where the last texenv stage oddly writes to
reg #3 instead of #0.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5462 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-22 16:54:34 +00:00
Rodolfo Osvaldo Bogado 2c7a08fc61 after a good commit lets make some experiments:
implemented fixed efb scale to improve alignment and discard some error caused by incorrect scale.
make both plugins work similar. this must improve opengl image quality a lot.
also implemented dynamic resizing in opengl, this way the resolution math the windows resolution on resize.
this is highly experimental so please test a lot.
implemented shader dumping on error thinking  in future experiments with shaders.
enjoy :)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5458 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-19 03:15:36 +00:00
Rodolfo Osvaldo Bogado 7947543d98 a little optimization in shaders constants setting , based on the same idea of nodchip changes.
a MAYORRRRRR change in pixel shader generation, please review all games you can and leave comments this must improve accuracy in graphic emulation a lot.
for example: mario eyes in super mario galaxy, water pod transparency an water transparency on game intro in super mario sunshine, etc.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5457 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-17 22:17:46 +00:00
Rodolfo Osvaldo Bogado 0ea01d8462 fast commit :
make native mips loading an option to prevent performance lost in game that not need this functionality.( thanks to dorian.fevrier for point the performance lost.)
added a patch from  pierre@pirsoft.de to avoid vertex drops when index array is full in opengl implementation that do not support large index arrays

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5432 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-04 14:43:30 +00:00
Glenn Rice 140332c02e Move fullscreen display resolution control to the GUI with the rest of the fullscreen toggling code. This removes redundancy of code that was in several places through the various video plugins. Unfortunately it means the fullscreen resolution setting also had to be moved to the main configuration dialog. I am sure that will meet some resistance.
Also added a window size setting for windowed mode.

Also pulled some X11 specific code out into a separate file.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5395 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-22 04:28:34 +00:00
skidau 7a7d1a7b55 Re-added Skies of Arcadia projection hack. Fixes issue 2514.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5372 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-15 09:23:59 +00:00
nitsuja- 22551a0a8a a few minor code fixes.
also added a user file that should simplify running from VS for newcomers

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5338 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-12 02:00:15 +00:00
Glenn Rice 33a64d5db0 Big restructuring of how the video plugin works. In linux and windows you shouldn't see a change in the functionality; however, there are changes in how render to main or not, and fullscreen modes, and such are handled. Input is largely restructured for the video plugin. It is now handled by the host. Keys for pausing and changing fullscreen are configurable. More will probably be later. This is probably classified as highly experimental.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5336 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-12 01:33:10 +00:00
nodchip 32794fc028 VideoCommon: Fixed the bug that some texture become black in SSSE3.1 codes.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5309 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-10 01:37:51 +00:00
nodchip 956b8eb54d VideoCommon: Added automatic selection routines for SSSE3/SSE4.1 codes. It selects SSSE3/SSE4.1 codes only if a proper preprocessor definition is defined and the target cpu supports SSSE3/SSE4.1. The selection routines in VertexLoader_* use function pointers. TextureDecoder uses a combination of "#if" and "if" statements.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5302 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-09 15:13:42 +00:00
nodchip 6136c94de5 VideoCommon: merged SSSE3/SSE4.1 codes. Added some additional SSSE3/SSE4.1 codes which will be used in "The Legend of Zelda: Twilight Princess".
These codes don't work unless "_M_SSE=0x301", for SSSE3, or "_M_SSE=0x401", for SSE4.1, is defined as a preprocessor definition.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5300 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-09 03:02:12 +00:00
Jordan Woyak 758bcf17cb Tweaked the widescreen hack: It now "hacks" to and from any aspect ratio, not just from 4:3 to 16:9. When "Stretch to Window" is chosen, the aspect ratio will be adjusted to 5:4, 16:10, or anything (whatever the aspect ratio of the window is). Works for 4:3 and 16:9 games.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5280 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-04 22:52:27 +00:00
Rodolfo Osvaldo Bogado a4736f7f6b back to limit vps instead of fps as this fix fps limit and now it works correctly as now the sync between the plug in and the core is almost correct.
fixed fps display in the top bar, now it shows the real fps of the game.
some code clean up and some corrections to make everything work right in the reference renderer.
multiples xfb now is broken even in single core as is was not an error caused by dual core, i really dono where the error is,everything looks correct but if you test a game with multiples xfb or the ipl you will see the error.
ector if you can take a look at he code and throw me some ideas i'll thank you.
please test.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5272 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-03 22:22:55 +00:00
skidau 962fef0626 Fixed bug where the projection hack setting was not being saved in the Game Properties dialog.
Removed the obsolete projection hacks:

* Final Fantasy CC Echo of Time
* Harvest Moon Magical Melody
* Baten Kaitos
* Baten Kaitos Origin
* Skies of Arcadia

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5271 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-02 21:28:56 +00:00
Sonicadvance1 e0b4cbcdae Another one bites the dust
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5263 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-01 10:06:43 +00:00
donkopunchstania 70627c5652 Extend the OGL virtual XFB to handle games that use multiple XFBs to make a frame. This should allow games that require the XFB to work without using a real XFB in RAM which is slow and limited to the original resolution. To use this enhancement you must check Use XFB in the options. The previous option was renamed Use Real XFB. I don't think this works with the aspect settings yet.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5185 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-03-10 06:45:13 +00:00
Glenn Rice c455673f87 Added scons options "shared_libname=true" to link agains the system shared libraries for lzo, sfml, and soil. For example add the scons option "shared_lzo=true" for lzo. This will check for the system libraries and then fall back to building and linking statically against the Externals if not found. You must have liblzo2-dev, libsoil-dev, and libsfml-dev installed. Note that you need version 1.5 or later for sfml. Currently scons doesn't check the version for you.
If you are having trouble with segmentation faults in linux try "shared_soil=true".  That seems to fix the problem.  How do we fix this for the static build?


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5182 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-03-09 22:17:33 +00:00
donkopunchstania cc7c6cd35f Texture coordinates are stored in fixed point format in TEV which allows overflows to be emulated correctly. Added logic to calculated texture LOD and use the correct mip. Dumping textures will now dump all mip levels. Added line rendering. Changed data stored in vertex from float arrays to vectors for cleaner math.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5178 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-03-09 04:38:07 +00:00
Glenn Rice beba3b7f5b Removed more compiler warnings in linux.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5170 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-03-07 22:48:37 +00:00
nodchip 2dabcb881c Fixed the crazy code in r5161.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5163 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-03-06 10:07:37 +00:00
nodchip d69478e539 Reverted the comparison function to r5159 and rewrote map to hash_map. I confirmed that the code can be compiled and run under Visual Studio 2008. And I confirmed the code can be compiled under gcc 4.4.0 (mingw). I could not confirm that the code run under linux.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5161 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-03-06 02:07:48 +00:00
nodchip 1b61742b53 Rewrote a object-comparison code using a standard function. It's a tiny refactoring.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5160 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-03-05 12:04:09 +00:00
nodchip 2941bef44b Fixed a wrong type in r5140.
Commited code that I forgot to commit in r5140.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5141 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-28 12:14:40 +00:00
nodchip 1c34052266 Refactored VertexLoader::CompileVertexTranslator(). Now texture coordinates loaders are also selected from a function table. I will add a hack to increase the speed in the next commit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5140 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-28 11:36:00 +00:00
nodchip d348c33bf2 Refactored VertexLoader::CompileVertexTranslator(). Now the vertex position loader is selected from a function table. I will apply the same kind of refactoring to texture coordinates loader. This is a pre-preparation to optimize texture coordinates loaders.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5139 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-28 08:41:02 +00:00
Rodolfo Osvaldo Bogado 6b1ca64428 experimental commit: simplify even more the params. please test and if theres something wrong will revert asap
thanks for the comments in the prev commit they make my re think the approach.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5136 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-26 22:14:29 +00:00
Rodolfo Osvaldo Bogado 02189ec5e0 Simplify the params for the safe texture cache
after some test the more relevant parameters were the color samples and the tlut max size.
so delete the rest of the parameters and define 3 modes:
Safe : the two values are set to 0 meaning all the texture data and all the tlut data are hashed this is the most correct and slowwwwwwwwwww way
Normal: 37 samples are taken from the color textures an the firs 4096 bytes of the tlut are hashed, is a lot faster than safe mode but in some games i observe small glitches.
Fast: 8 samples are taken from the color textures an the first 1024 bytes are hashed from the tlut, is a little slower than the unsafe cache but at least all the games i tested have correct text output and fast frame rate. the glitches in dinamyc color textures are more noticeable in this mode
this values could be improved, if you find a better combination please post it and the game it fixes and i will update the source.
for the moment, as my time is limited by a lot of work, only implemented the d3d gui, if someone can implement the opengl gui will be a lot of help for me.
please test a lot and let me know the results.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5135 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-26 12:54:08 +00:00
nodchip 609151c6e8 Reverted because of some processor and performance issue. I will develop in a branch about SSSE3/SSE4.1.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5123 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-24 23:58:48 +00:00
nodchip 47fb73b71a Added SSSE3/SSE4.1 code for speed up. The code does not work in this revision because cpu_info is not initialized properly. I will fix the issue in another commit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5119 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-24 09:56:41 +00:00
Glenn Rice 1d40b8a5ae Systematically eliminating compiler warnings.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5117 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-24 03:38:36 +00:00
Rodolfo Osvaldo Bogado 3cc5d8ce6f First a bugfix:
fixed a misbehavior in the clear code that causes depth clear problems in reference hardware (Intel as example).
add 6 parameters to optimize Safe Texture Cache:
SafeTextureCacheColorSamples, SafeTextureCacheIndexedSamples, SafeTextureCacheTlutSamples:

this 3 parameters gives the number of samples taken to calculate the final hash value, less samples = more speed, more samples = more accuracy
if 0 is specified the hash is calculated using all the data in the texture.
SafeTextureCacheColorMaxSize, SafeTextureCacheIndexedMaxSize, SafeTextureCacheTlutMaxSize:
this parameters limits the amount of data used for the hash calculation, it could appear as redundant but in some games is better to make a full hash of the first bytes instead of some samples of all the texture.

color, indexed, tlut : define the texture type, full color data, indexed, and the tlut memory.

the parameters are available in the config , no GUI at this time, if the test are OK will add it to the GUI.
if someone needs it will give more examples on how to configure the values for specific games.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5116 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-23 21:52:12 +00:00
sl1nk3.s ae58a743cb Some tiny fix, fixed a crash when activating "overlay some statistics" on OGL plugin (which actually overlays a whole book + 400 chapters of statistics and, indeed, overflows and crash) + memleak fix on LLE plugin and little fix on GBAlink shutdown code.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5113 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-23 01:57:26 +00:00
Glenn Rice 303769d31c Revert commit 5105 until we sort out how we want this to work in linux.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5110 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-22 16:10:08 +00:00
Glenn Rice 73d575c5c2 On linux don't compile and link against lzo, soil, and sfml "Externals."
Instead use system libraries liblzo2-dev, libsoil-dev, and libsfml-dev


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5105 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-22 00:39:38 +00:00
Glenn Rice 154bc956ad Some code clean up, and take care of some compiler warnings.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5090 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-20 04:18:19 +00:00
Sonicadvance1 c63446827f Fix crash when stopping and starting a game with OpenCL enabled
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5047 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-13 10:09:54 +00:00
Sonicadvance1 0ab6c117c1 Fix a memory leak in OpenCL
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5044 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-12 17:20:01 +00:00
Sonicadvance1 89c276c962 Fix a Memory leak in CoreAudio backend, around 2MB. Stops OpenCL from trying to decode CMPR textures, as it fails horribly. Fixes a memory leak in EXI devices, where the destructor wouldn't be called, causing a 32MB leak with memory cards(if you have two), and maybe a bit more from the other EXI devices
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5042 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-12 16:40:13 +00:00
j4ck.fr0st e4dcdf796f OSX build fix.
Fixes Issue 2260

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5039 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-11 17:54:16 +00:00
Rodolfo Osvaldo Bogado 6200c99dd4 test commit: please test if this improve the performance with the safe texture cache
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5038 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-10 15:55:24 +00:00
Rodolfo Osvaldo Bogado e93e777ffb second try to implement a more correct safe texture cache, implemented full hashing of tlut textures as they are the more problematic, this should solve virtually all the problems with characters in all the games that have them.
sorry to tell but this will bring a speed drop, so let you decide if this change stay or not.( used the fastest open source hash algorithm i know) 
do not apply full hashing to other format because it kills the performance.
for popular request added 9x SSAA believe me will kill your graphic card even if is the best but the image quality is exceptional.
as always please test and let me know the results.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5034 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-08 23:23:04 +00:00
j4ck.fr0st 43051ffe41 some cleanup, housekeeping for error cases and increased a few buffer sizes that are overflown by its content.
Thanks to Fatalis for the initial patch and pointing us to cppcheck.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5004 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-03 20:29:49 +00:00
Rodolfo Osvaldo Bogado a319a77be4 sorry forget one file :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5002 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-03 14:17:03 +00:00
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
skidau 1f37bb2177 Reverted the FIFO thread change
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4937 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-23 21:06:12 +00:00
skidau 35b6e71f03 Experimental FIFO thread. Speeds up the emulator by moving FIFO to its own thread. This will work best with quad cores, though there is a noticeable improvement on my dual core.
Enable the thread by adding this line to the video plugin ini files, "User\Config\gfx_dx9.ini" and "User\Config\gfx_opengl.ini":

UseFIFOThread = True

The line should be added under the UseXFB line.

To disable the FIFO thread, use this line:

UseFIFOThread = False

If the line is not in the ini file, the default is disabled (i.e. False).

The FIFO thread causes an error when the OpenGL plugin is used.  The D3D plugin works.

Only top left quarter of the screen can be seen when rendering to main window.  The entire screen can be viewed when running in a window.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4930 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-23 12:50:56 +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 9893122a58 Attempt at fixing the colors of loaded "hi-res" replacement textures in D3D. Fixes issue 2074. Delete some obsolete commented-out code.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4916 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-21 19:31:48 +00:00
hrydgard 576990c5a3 JitIL is no longer a separate .exe/binary - it's now a simple option, Dolphin.exe now contains both cores.
Advantages:
* Less confusion for users
* No need to build twice to make sure you didn't break something
* Easier to switch between the cores for testing

Disadvantages:
* None, as far as I can tell :) Maybe some extra code complexity, but not much.

Also break some include chains that caused <windows.h> to get included into everything, slowing down the build on Windows. There's more to do here though, there's still a lot of files that get it included that don't need it at all.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4891 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-19 19:28:27 +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
donkopunchstania 896850b176 Disable change made in 4801.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4876 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-18 06:32:16 +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
ayuanx 734b0f5dd4 Fixed a stupid error left by me.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4860 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-16 22:37:38 +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
ayuanx 571a47ef9a This could alleviate the suffering of dual core synchronization a bit.
But I doubt you would notice it in most cases.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4830 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-14 10:52:14 +00:00
hrydgard 2db709aeb6 Add "Auto Aspect Ratio" to both graphics plugins. It's the new default, so you can forget about switching aspect manually from now on. In the Auto mode, aspect ratio is automatically set depending on whether it's a Wii or GC game, and whether the global Wii Widescreen setting has been set. There is still the possibility to override, which can be useful for the very few GC games that do support widescreen.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4828 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-13 21:11:02 +00:00
ayuanx 429691ce96 This should settle the FIFO BP critical games like Metroid Prime 2
G2ME01.ini

[Video]
FIFOBPHack = 1

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4823 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-13 11:42:04 +00:00
ayuanx ecdcffc7cf Fixes Issue 1997
This also makes the CP FIFO hack obsolete.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4821 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-13 09:03:55 +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
Rodolfo Osvaldo Bogado 532ab905c4 this is a dev commit, a cleanup in the pixel shader generator to make the generate code a lot cleaner and readable, and a little fill rate optimization when using alpha test, i don't thing any game is limited by fill rate but the code looks more cleaner and is ordered in the same way is executed in hardware.
please test, if any problem apears let me know

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4812 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-12 03:39:14 +00:00
hrydgard 9012d4f4b8 Fix missing shading in NSMBWii etc in the D3D plugin. Now, I'm not entirely sure why the existing code didn't work properly, but hey, this fixes it :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4810 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-12 00:08:02 +00:00
donkopunchstania a19be73be3 Do special handling of texture coordinate generation if there is only a position and texture coordinate present.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4801 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-11 00:44:40 +00:00
ayuanx 81afdbe4f4 Compilation fix for r4795
Nunchuck gravity fix for r4794 (as sanchez instructed)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4797 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-08 22:56:27 +00:00
ayuanx a3cfafcd12 1. Expanded Framelimit range from 20 to 120 in case someone wants to run a little faster than full speed but still controllable not like wild OFF.
2. Fixed a bug (for Win 32bit) that reports "No possible memory base pointer found!" even when there IS valid memory base found.

3. Made Metroid Prime 2 (maybe also other games) boot
PS: There is definitely some initialization problem with Dolphin (not found exact location yet), which prevents Metroid Prime 2 from first time booting (If you boot some other GC game first, stop it, then MP2 can boot without problem).
So I added an instant BP hack that can make MP2 boot even at first time.
And I've tested all my games to guarantee it won't break any game that already boots before this hack.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4795 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-08 21:57:31 +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
ayuanx e80078dc3c What we should think about:
"VideoFifo_CheckEFBAccess()" & "VideoFifo_CheckSwapRequest()" should be moved to a more suitable place than inside function "Fifo_EnterLoop()", which wastes considerable amount of CPU time (exhausting one core completely even when paused) and also makes VPS inaccurate.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4778 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-03 18:58:50 +00:00
ayuanx a3c258cf9c Fixed Issue 1921
This also fixed Ikaruga, not sure whether it could fix Metriod Prime. If not, how about disabling EFB copy?

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4777 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-03 16:04:40 +00:00
Rodolfo Osvaldo Bogado ded7a2921d I'm back, after two weeks pure work and nothing of dolphin, take a look at the code and discover this very small fix, apply color clamping before alpha test, the way is done in the software plugin, have some nice effects, this will fix some things and brake others but the feedback is needed.
if you want to know where to start testing look at SMS :)
HAPPY 2010 for everyone 

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4775 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-02 21:09:12 +00:00
ayuanx 92ef4f1156 1. Fixed the freeze issue in "Super Mario Galaxy" and other games, which was introduced since r4762
2. Fixed Issue 1909
   Multi-Nunchuck control problem

3. Updated SYSCONF, which should enable games that require MotionPlus, such as "Wii Sports Resort"

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4773 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-02 05:15:36 +00:00
ayuanx 6e87ef943f Sorry, this is the working fix for r4759
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4762 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-31 20:49:04 +00:00
ayuanx 40f4dd30c2 Fixed Issue 1711 (a bug that prevents some games from booting)
Thanks to chuvit's help

Added safety check for CFrame::Update

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4759 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-31 16:25:12 +00:00
ayuanx 151ff28ab7 Fixed mem leak caused by not releasing pad & wiimote plugin when shutdown
Fixed main frame crash after shutdown

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4755 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-30 14:37:12 +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
death2droid a1fefe870c DX9: - Add hires texture loading.
- Add an option to enable the EFB scaled copy *TODO find a better place for it to go.

SOIL - Update stb_image to the latest version (1.16 to 1.18)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4716 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-22 06:47:42 +00:00
fgfemperor acb9e7ca29 NSMB background fix. Fixes 1654.
There was a problem with the fog calculations... Now NSMB shows the background, while the fog still works!

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4714 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-21 20:30:01 +00:00
ayuanx b0ef811786 Disabled thread synchronization check so the speed should be back, and theoretically should be even faster than r4698.
Hope it is safe to do so.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4701 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-17 04:01:34 +00:00
ayuanx 0ae7be2c1c Since we have been employing the FIFO BP hack for so long time, at least let's make it a decent hack.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4699 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-16 17:05:30 +00:00
Rodolfo Osvaldo Bogado 9c930f0825 nice little hack to make efb copies scaled with the efb so everything will look a more HD, for now there is no GUI i'm with a lot of work at home. if everyone likes this change will add it to the GUI. for now just use the config file.
it brakes sms goop so in that game avoid this . test and let me know.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4696 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-15 01:40:54 +00:00
ayuanx 66b1eb1f08 Does anyone know any game that requires the "Clear FIFO BP on Rising Edge"?
Because commenting out this behavior fixes Silent Hill Shattered Memories.

If this commit breaks any game, please report.

PS: There is a EnterCriticalSection in fifo.cpp, which performs the Read Access, but there is no EnterCriticalSection in CommandProcessor.cpp which performs the Write Access, so how can we guarantee the Write Access is atomic?


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4694 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-14 15:50:31 +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
hrydgard 0f0c77c299 minor code cleanup
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4645 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-05 14:01:29 +00:00
hrydgard f0bba97070 Delete the misnamed GlobalControl.cpp/h, move the (ugly) projection hack code that was there into VertexShaderManager where it belongs.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4644 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-05 13:56:23 +00:00
donkopunchstania e6d51e8ff4 Fixed 24 bit depth copies to RAM. 24 and 16 bit depth copies are now more accurate. Added an offset to DX copies to RAM and made half sized copies to a texture linearly filtered.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4635 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-02 04:17:18 +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
donkopunchstania 6e7395cef1 Try to do Z textures better. Z texturing does not work if early z or no z update. Corrected the Z texture bias used on 8 and 16 bit textures.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4596 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-21 02:49:46 +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 fe1a5142a7 a minor cleanup in xf registers, an some small bug fixes. please test and give me feedback
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4589 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-19 02:28:41 +00:00
bztdlinux f796d4d747 STAND BACK - NEWLINE POLICE
gcc spams warnings when newlines are not at the end of files.
reason: http://gcc.gnu.org/ml/gcc/2001-07/msg01120.html


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4582 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-15 22:26:39 +00:00
donkopunchstania f992fc6949 EFB to RAM in OGL and software plugin now work correctly when texture in RAM is a different size than the source. Corrected some block heights in texture decoder to fix copying certain EFB formats.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4580 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-15 20:14:03 +00:00
Rodolfo Osvaldo Bogado f8c2dcaa4e fix for re missing characters in both plugins, thanks to autoran for the testing. also modified depth efb copy behavior to work accordantly to this change.
in opengl  efb copy, set the destination texture format and not use argb always.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4575 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-14 23:15:09 +00:00
Shawn Hoffman 4622bd0c8b reapply changes from 4550-4551,4556-4559 correctly...sigh...some files were ignored by tortoisesvn, and myself :|
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4570 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-14 17:50:51 +00:00
Shawn Hoffman 06aa62504c revert to r4531, but keep the changes from the following revisions: 4533,4550-4551,4556-4559
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4566 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-14 17:08:32 +00:00
Rodolfo Osvaldo Bogado e56ca08b4f some minor changes preparing for future commits, and a correction to texture alignment that must solve the efb misalignments in various games
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4556 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-13 11:55:14 +00:00
donkopunchstania dee90fa7aa The WGP does not loop if the write pointer is set beyond the end of the fifo. Updated the video plugins this time.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4531 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-12 01:51:40 +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
Rodolfo Osvaldo Bogado 78fa929c70 Some errors in the values passed to e pixel shader caused the menu error, no they are fixed, thanks to LordMark for help me with the testing.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4490 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-31 13:40:53 +00:00
Rodolfo Osvaldo Bogado ec77ba3e99 fixed z textures, don't know where this is used but a fix is a fix
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4486 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-31 03:35:36 +00:00
Rodolfo Osvaldo Bogado 9a59619560 Extra small commit but ...
Fix Paper mario and any games that uses SETZSCALE or SETZOFFSET
c# is making me soft i don't see the cast error


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4485 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-30 22:28:59 +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
Shawn Hoffman 31e61da40d fix Jit64::fmrx (well, fixes soul calibur 2 SPS at least) cottonvibes wrote this :)
fmrx can do some different behavior depending on the current mode of the fpr, but we *seem* to not have a problem ignoring this behavior...
add a tiny comment to the PECopy register - some sources call the half_scale bit "mipmap"

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4476 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-29 04:01:31 +00:00
Rodolfo Osvaldo Bogado 7602f7ab3e rewrite the tev stages generator to make it more hardware like, thanks to godisgovernment for he documentation. Also make it faster using lockup tables.
thinking going to get a lot of -1 for this one but is the only for of really test it.
hope this fix something and don't break to much ;)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4475 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-29 03:28:38 +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
Shawn Hoffman ac157105c5 small code cleanup: rename "dual core" stuff to CPUThread, bOnThread, etc.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4455 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-23 15:26:35 +00:00
Shawn Hoffman 520a2a68ac Change some default settings:
Core:
bLockThreads = false
m_EXIDevice[2] = EXIDEVICE_NONE
Video:
bKeepAR43 = true
iMaxAnisotropy = 1
bCopyEFBToRAM = true
Trying to find good high compatibility settings for default setup.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4453 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-23 05:48:54 +00:00
sl1nk3.s 833341696b Fix issue 1549, issue 1400, a crash when pressing reset while no game were running and better fix for issue 1556
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4451 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-22 19:13:22 +00:00
Orphis 7a2bad4efb OpenCL: Fixed and enabled CMPR decompression
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4448 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-22 01:42:21 +00:00
LPFaint99 767818bcb2 update OpenCL.rules to work on paths that include spaces
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4443 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-21 01:00:27 +00:00
sl1nk3.s 4c3e405c47 Revert the the Fifo changes from r3984 (Pokemon XD still somewhat works) this should fix hangs/desyncs in a couple of games (burnout, metroid, spyro, soulcalibur, nightfire...) see issue 1524
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4442 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-21 00:01:07 +00:00
Orphis 094c73a080 OpenCL: Moved the OpenCL code from the compiled source to a separate file TextureDecoder.cl and added a .rules files to copy the updated version to the build directory.
Fixed RGB5A3 decoding with alpha
New CMPR decoding, blocks with no alpha are great, still have to figure the problems with transparent blocks. Disabled for now.
Added a better error reporting to the base OpenCL functions

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4439 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-20 00:55:07 +00:00
XTra.KrazzY 540f59ef07 OpenCL: More formats (thanks, orphis) RGBA8, RGB565, RGB5A3. Optimized the buffer creation. There is a visible performance boost.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4422 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-14 22:28:23 +00:00
nakeee 9f8a2986a2 Videocommon: setlocale for shader compilation, should fix problem with runaway , in certain locales.
Please test issues 1533 and 1496


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4418 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-14 01:58:39 +00:00
XTra.KrazzY fb60b10c7b OpenCL: Implemented I4 and corrected IA8 (huge thanks to Orphis for fixes, implementation and optimization)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4417 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-13 21:51:27 +00:00
XTra.KrazzY 9da9346274 OpenCL: Kernels are now more general...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4402 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-11 22:21:36 +00:00
XTra.KrazzY fc1c77b60d OpenCL: Set up ground for more texture formats. Implemented the IA8 format (still buggy, no transparency)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4401 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-11 21:14:02 +00:00
XTra.KrazzY 449abdb01d OpenCL: Solved the IA4 case (some byteswapping was necessary, hope there's a vectorized function for that). Some \n fixing I guess
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4399 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-11 20:03:55 +00:00
donkopunchstania 56214e9103 Moving pixel engine and command processor from core to video common. This will break previous save states. Adds decoding single pixels to texture decoder.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4391 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-10 21:19:39 +00:00
hrydgard 8af6280af2 Fix saving of the new d3d efb access option.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4385 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-08 21:59:40 +00:00
XTra.KrazzY e6f20f07f5 OpenCL: Vectorized I8 texture decoding and added a (too intense?) IA4 decoding method.
Not sure what's wrong with IA4 there...

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4382 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-07 22:51:32 +00:00
XTra.KrazzY f52851ab9f OpenCL: Texture decoding is now two dimensional
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4381 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-07 21:51:40 +00:00
XTra.KrazzY 98db1a0ca3 OpenCL: More windows support and some unfinished work
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4380 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-07 21:30:36 +00:00
Sonicadvance1 5523f28b51 Better TF_I8 decoding via OCL. Can still get way better though. Seems XFB speed boost was a fluke
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4379 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-07 21:10:39 +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
Sonicadvance1 16c6ec6e7e Woops, that is why getting work group size failed
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4372 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-07 07:44:35 +00:00
Sonicadvance1 059970e971 Fix XFB converting, silly mistake. Disable Texture converting ATM since it fails. And if can't read work group size, fall to 64, which is what my 8600GTS does. Tested XFB in Melee intro, got around 10FPS faster tPS faster then with CPU side
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4371 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-07 04:00:29 +00:00
Sonicadvance1 dde693afb8 Fix a few things I missed
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4370 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-07 03:11:52 +00:00
Sonicadvance1 0146f3f58f More OpenCL work, got XFB converting which needs more optimization. I haven't checked for FPS changes. My desktop isn't the best to test on anyway (Phenom 1, 32 stream processors). The package check doesn't work for me, so I just checked true if you compile with opencl=true. Requires a bit of cleanup still
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4369 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-07 02:48:21 +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
Rodolfo Osvaldo Bogado 9d67518f71 I hope you all like this. Changes:
Opengl:
Reorder the rendering path to make it more generic, and a little bit faster i think.
Reduce the index Buffer size to make it more Friendly to older video hardware.
get rid of the remaining annoying sps (I hope).
D3D:
Implement the same path as opengl to make the plugins more similar and maintainable.
Fixed Peek_Z this means, Pushing stars in SMG Now Works.
Please give heavy testing to this changes and compare the performance with the old path.
Thanks to hrydgard for let me participate :).

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4353 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-02 14:03:07 +00:00
XTra.KrazzY c6f0335b62 OpenCL: More work on centralization (need SCons reflection)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4351 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-30 21:01:34 +00:00
XTra.KrazzY 4499444a86 OpenGL and OpenCL are NOT related! (Committed here are some scons fixes)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4349 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-30 12:58:02 +00:00
nakeee ffe12ec752 OpenCL: added opencl=true option to scons and fixed the case on the way.
Add ifdef for osx ocl include.



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4348 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-30 06:49:08 +00:00
XTra.KrazzY aa1fd81e37 OpenCL: A bit more work.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4347 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-30 00:39:32 +00:00
Sonicadvance1 fb258e3ca5 Base of OpenCL code
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4346 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-30 00:28:27 +00:00
hrydgard e6b30e574e Let's try rodolfo's fix of 4322
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4343 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-29 18:27:41 +00:00
Marko Pusljar d1f0294053 DSPLLE + 2 small fixes, many GC AX games are almost perfect (sound wise, ex. Super Monkey Ball 1/2), if PC is fast enough (3GHz C2D+), Zelda type games too slow to be testable
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4340 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-28 16:39:29 +00:00
hrydgard e102fdaac3 r4322 commented out an important Flush() call - restore that.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4323 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-26 21:00:04 +00:00
hrydgard 29808cdde2 OpenGL: commit rodolfoosvaldobogado's (what a name!) speedup patches.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4322 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-26 12:39:12 +00:00
hrydgard 7a8f6bdd6d D3D various: "Safe texture cache" option, texture replace instead of destroy/create when possible, a commented out "optimization" that didn't speed things up (use DrawPrimitive instead of DrawIndexedPrimitive when possible), reduce code duplication in Flush(), don't periodically clean out the shader caches since it's not really beneficial - shaders are cheap to keep. some code cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4302 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-19 13:14:55 +00:00
hrydgard dae1a68bfc D3D: minor vs constant-setting optimization, remove a stupid memcpy that doesn't do anything, don't see much benefit though :/ At least the PIX logs will be cleaner.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4301 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-19 10:46:25 +00:00
XTra.KrazzY a8270d50ee Tiny shader syntax fix that was here for a while now.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4285 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-16 06:33:05 +00:00
hrydgard 20922cf3f0 D3D: More reset fixes
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4282 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-15 21:49:15 +00:00
LPFaint99 ca7a5b36dc only load gameini settings if they exist
change D3D to use char[] for resolution settings in ini
warning fixes for FrameAui.cpp

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4273 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-15 08:13:45 +00:00
nakeee b7d6259405 Videcommon: removed double settings (how did full/window res work so
far?)


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4272 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-15 06:14:45 +00:00
Shawn Hoffman a08c801256 psyjoe's patch to shader compilation. ector/some "shader person" check this please :) looks reasonable to me though.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4267 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-14 06:25:00 +00:00
hrydgard c7431401be D3D: Fix 8-bit signed normals. Fixes lighting problems in Super Smash Bros Melee. misc tiny things
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4265 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 21:18:04 +00:00
hrydgard a7c70ddb66 D3D: Eliminate black borders, add 4:3 and 16:9 settings, and the widescreen hack. Unfortunately this temporarily breaks MSAA (in d3d only) until I have time to fix it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4263 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 17:46:33 +00:00
hrydgard 73d2b3e968 more uninteresting cleanup, fixed a minor race condition when toggling efb copy mode
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4261 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 10:18:01 +00:00
hrydgard 2d93c654f0 Rename Config.cpp/h to VideoConfig.cpp/h.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4260 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 09:23:30 +00:00
hrydgard 512053fa5e Kill some horribly ugly hackery :( It's just not right to pass entire IniFile objects across DLLs. Only POD (plain-old-data, like int, float, char, char[] etc) are safe to pass across DLL boundaries.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4257 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 08:54:46 +00:00
hrydgard 700f2ff694 Lots of code and warning cleanup. OGL/D3D: Moved to a shared config class in VideoCommon. This lets VideoCommon code read the config without ugly hacks. Fixed various config race conditions by keeping a copy (g_ActiveConfig) of the g_Config struct which is updated once per frame.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4256 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-13 08:21:35 +00:00
hrydgard 52ea8a0fd1 D3D supports setting multiple shader constants at once, so let's add support for that. Very tiny speedup. Also remove the annoying black window in the background when configuring D3D before starting a game. Also make sure to write all values when converting normals - might help the cpu's write gather cache.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4255 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-12 15:00:08 +00:00
rice1964 e1a0f8884a D3D: Projection hack feature. Have also moved related functions and constant definitions from OGL to VideoCommon, will clean up the code better if it works for D3D.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4252 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-11 05:50:02 +00:00
rice1964 c046c27815 D3D: Minor bug fix and some code cleanup for DirectX API call reduction.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4244 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-10 03:36:32 +00:00
hrydgard 0a576c7508 Linux: Tons of warning cleanup plus workaround a nasty crash problem in StatusBarMessage.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4234 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-08 21:16:05 +00:00
Shawn Hoffman 3b76f6dc80 get rid of the '¯' chars in source code...non ascii chars are not really good to have floating around for no reason. http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Non-ASCII_Characters#Non-ASCII_Characters
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4231 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-08 16:07:13 +00:00
John Peterson 1320e21ded OpenGL: OSD menu live resolution change fixes
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4212 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-06 15:11:21 +00:00
rice1964 c30ed92e75 Add some command line options to directly specify plugins. You can use "dolphin /V Plugins/Plugin_Video???.dll" in the command line to start Dolphin with the ??? plugin. This can be done also for other plugins. There are a couple of reasons to do so. For example, Dolphin compiled in DEBUG would often crash if loaded with non-DEBUG plugins. Therefore, you may want use to DEBUG plugins when running the DEBUG dolphin by giving all the command switches.
Also add some code to show the version of the plugin in the plugin configuration window title, so we can see clearly which version of the plugin we are using.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4208 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-06 02:55:14 +00:00
sl1nk3.s 5a21d72693 Fix screen flickering with frameskip on D3D plugin, also fix occasional hang when turning frameskip off
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4194 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-04 06:09:21 +00:00
hrydgard efc74c77a9 D3D: Basic EFB copy-to-texture support. Fixes star domes in SMG (but does not fix the pull star, need EFB reads for that) and some other things.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4188 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-03 21:56:08 +00:00
hrydgard baede3a7f3 Moving more things out of GL into VideoCommon...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4187 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-03 20:37:35 +00:00
hrydgard 2b1022f152 More tidying up - share the stats print between the two plugins, etc
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4184 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-03 19:42:45 +00:00
hrydgard 562a4e25ac Some housecleaning around the D3D plugin, start of preparations to share even more code with the GL plugin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4183 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-03 19:24:16 +00:00
hrydgard 97af2f1126 GL/D3D: slightly more accurate and faster DXT decoding, thanks to Orphis
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4172 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 21:30:54 +00:00
death2droid 2be5d013e0 Add the wide screen hack by <---Does the person even have a user name?
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4171 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 21:30:19 +00:00
hrydgard 1e016dd522 Fix a vertex shader generation bug that crashed Super Monkey Ball. Better shader error handling. Random warning fixes.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4170 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 21:19:35 +00:00
Marcus Wanners 50593397f3 Got rid of all of jp's ////////////////////////////// lines (nearly 500 of them)!
Yes, I used a script :D

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4169 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 21:00:45 +00:00
hrydgard c64b1ca5dc D3D: Fix nonpow2 textures (simply turn off the rect texture stuff since it's not necessary under D3D). some cleanup. Add a TODO (tip from Orphis)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4168 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 19:59:41 +00:00
hrydgard e97bc516e6 Warning fixes/suppressions(aui), assorted code cleanup, d3d vertex shader cache expiration interval increased.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4165 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 18:55:36 +00:00
nakeee b2533a5ef2 Fixed various warning fixes and potencial POD/crash bugs
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4156 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-02 07:59:06 +00:00
hrydgard 2599659022 D3D: Fix bugs in the shader cache, fixes crashes on x64. added some debugging stuff (only active in debug builds). assorted code cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4145 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-01 19:48:45 +00:00
hrydgard 0b5c993076 Misc : build fix for debug x64, assorted cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4127 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-31 22:42:10 +00:00
hrydgard d65fb1a30a D3D: Fix alpha test (I think, not tested much, no pun intended)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4124 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-31 21:47:39 +00:00
hrydgard 4968f6c29a GL/D3D: Attempt to fix problem with bad colors when starting a 2nd game.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4120 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-31 20:58:57 +00:00
rice1964 0dcf03b898 This should fix the per-vertex PositionMatrix, the famous "Posmtx" problem, for DX9. My DX9 plugin still crashes, for some other reasons. Verified with Luigi's Mansion, it almost works.
BTW, this is Rice from emutalk, one of the 1964 emulator authors, and author of Rice video plugin for N64 emulators.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4115 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-31 06:35:43 +00:00
rice1964 718c88ff6a Some optimization on the pixel and vertex shader generators. As tested on Zelda TP, these changes should be able to reduce the number of lines in the compiled pixel shader program by 20% to 30%, for example, from 38 lines to 28 lines after the generated cg/HLSL pixel shader compiled by the cg/HLSL compiler. These could means slightly faster rasterization on slower video cards.
Also fixed shader compilation errors for DX9 plugin by using correct pixel/vertex attribute names that are compatibile with DX9 HLSL shader compiler. Now the generated vertex or pixel shader programs will compile correctly in either OGL or DX9. 

However, DX9 plugin is still not fixed, even though the shader programs can be compiled now.



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4113 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-31 04:23:30 +00:00
hrydgard 8827c22c60 vertex shader generator: don't multiply z by two in d3d mode (thanks drk|razi)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4098 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-29 12:15:59 +00:00
sl1nk3.s 5831c95151 Re-enable CPU swap on XFB mode only, to avoid flickering in a couple of games
Fix for a dumb mistake from r4042 and doing it lazy-right :p

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4063 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-25 18:30:15 +00:00
omegadox 984988c5d3 GFX: revert of r4044
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4051 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-24 23:36:28 +00:00
omegadox 1427024a21 GFX: Possible fix for depth range
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4044 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-24 06:48:00 +00:00
sl1nk3.s 944844bfba Fix Pikmin PAL not booting thanks to LordMark for figuring it out ! :D
Added "AccurateFCMP" ini setting which fixes Nights, Paper Mario games...

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4042 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-24 04:04:10 +00:00
sl1nk3.s 652639d1c4 Fix GXPeekARGB, this fixes Killer 7, and Wind Waker's pictograph quest :D
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4034 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-22 13:22:35 +00:00
omegadox d29088773b and its header...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3986 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-15 07:39:07 +00:00
omegadox 00ee24b451 ...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3985 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-15 07:36:24 +00:00
omegadox b71b0e3da2 GFX:
- FIFO changes - minor cleanup, code organization based on Nolan's changes
- Minor code cleanup
- CommandProcessor changes - Allow BP IRQ clearing for either raising or falling edges.
- Revived old SetFifoIdle code

Gets Pokemon XD to run, but will crash to any CPU-GPU desync. Other games like Metroid Prime, look happy with the new FIFO changes.

Please report any problems.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3984 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-15 07:33:35 +00:00
omegadox 5ac7105b66 GFX: New GlobalControl system - cleaner way to control hacks and for possible control over other parts of the video code (video debugger control).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3982 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-15 07:20:37 +00:00
omegadox 7aede7309f GFX: Cleanup - Move OGL's GetBlockHeightInTexels and GetBlockWidthInTexels code into VideoCommon.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3962 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-11 20:36:13 +00:00
omegadox bcf7b2112b Small fix for TexDecoder_GetBlockHeightInTexels, but see no noticeable changes.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3961 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-11 13:58:35 +00:00
Shawn Hoffman 5be34cd7e5 random small fixes - fix debug builds, dump ucodes on PAD_BUTTON_X, get rid of a never-closed FILE*
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3959 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-11 00:35:07 +00:00
nakeee 9f81006bda make DLCache compile on linux, required some weird casting so tell me
if something broke


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3957 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-10 06:18:10 +00:00
hrydgard 6003c9ecd2 Frameskipping more aggressive (minor speedup, plz report any serious problems). Initial display list cache implementation, disabled for now. Various cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3952 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-09 11:03:58 +00:00
XTra.KrazzY 51ddedf512 Frameskipping! Complete with GUI! Even my most naive approach resulted in great speeds, even with graphic-intensive games such as Pikmin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3949 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-08 01:39:56 +00:00
nakeee 45a71bf3ef DSPLLE: fix some comments, returned andc and orc (according to tests)
but andc'ls still behaves strange and we couldn't merge them together.



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3915 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-31 15:21:35 +00:00
Nolan Check 8ab4814d73 Don't use lookup tables. It's better to use CPU registers and reduce memory accesses.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3909 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-30 20:29:52 +00:00
XTra.KrazzY c86d2e5129 Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3898 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-28 21:32:10 +00:00
death2droid 73a7686044 Fix up all copyright dates.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3886 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-26 11:51:40 +00:00
omegadox 7f00960a32 Log unknown fog types in Warn log, and tiny code cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3885 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-26 11:13:56 +00:00
omegadox e4a9faeba4 GFX: updated Dates, code formatting cleanup, code cleanup / organization, some unknown BPs uncovered, fixed OGL's config dialog bug, added another shader
DSPHLE: Some warning fixes and added some logging for unknown voice cases
Please report if anything has broken.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3884 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-26 09:52:35 +00:00
Nolan Check 2ab09ecf57 Hell, just switch to fifo.cpp from r3854.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3877 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-23 22:32:21 +00:00
Nolan Check 758d5c234d Corrections to r3875.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3876 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-23 22:02:03 +00:00
Nolan Check ce8b679d76 Revert most of r3855.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3875 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-23 21:17:14 +00:00
XTra.KrazzY 3c9b5bbf7b Fixed the load-state memory leak, also fixed various other savestate issues. Found (probably) the cause of load-state crashing Dolphin: BPWrites. Tried to put a CriticalSection around BPWritten but it only causes Dolphin to hang when loading a state. Can someone find why it hangs?
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3873 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-22 22:50:52 +00:00
Nolan Check 5b6b732378 Simplify fifo code
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3855 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-20 01:10:00 +00:00
daco65 d703b01f0c do the rounding in the if, shouldn't cause trouble afaik. (pso kept spamming logs under, cause xfblines was 574.205566)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3851 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-19 11:03:31 +00:00
Nolan Check 6f28539ccc Rename scale_something to scale_invert. Plus, sneak in a tiny Thread.h change.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3845 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-19 08:24:30 +00:00
hrydgard fd70f99f04 Roll back r3833 for render targets but keep it for static textures. Most mirroring issues are OK and we shouldn't see any slowdown.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3844 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-19 08:17:41 +00:00
Nolan Check bddb8c8b97 Seems to fix issue 1131. Please test Real XFB mode.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3838 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-18 20:38:35 +00:00
hrydgard 3ad0db6830 GL: Delete code for GL_TEXTURE_RECTANGLE_ARB in case of non-pow2 textures - all modern GFX cards that can run Dolphin should support non-pow2 textures anyway. This removes some complexity and reduces the numbers of pixel shaders that need to be generated in some situations. Also fixes some texture mirroring problems. Let me know if this breaks things on ATI for some reason.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3833 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-18 11:26:58 +00:00
Nolan Check ccfc004161 CP: Replace a couple spin-waits with event signals.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3828 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-18 06:16:24 +00:00
Nolan Check a5d65b3b22 No more SleepCurrentThreads in Command Processor. Some Fifo cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3822 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-17 22:57:02 +00:00
omegadox a73dd21ee9 Some minor changes to VideoCommon, improved SawWave sound, the denied sound in ZWW sounds better (compared it to real HW to be sure).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3810 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-15 21:26:49 +00:00
sl1nk3.s 3bc8eb7eaf Fixed one of the two remaining crash on Stop (issue 600), and removed some setup defines which are now useless anyway.
There's an attempt to implement Peek_Color too, probably done wrong :P

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3799 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-15 15:09:20 +00:00
Nolan Check f338d5c44c Code cleanup. Juggling rectangles. I'm about to investigate the problems with Real XFB's in PAL games, so I wanted to make sure all our rectangles were cleaned up and organized.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3794 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-15 00:51:24 +00:00
Nolan Check d779554ff3 Atomic operations library.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3775 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-13 05:38:34 +00:00
Nolan Check d85f5a6937 Rearrange LogManager includes. The main purpose is to make it possible to modify Thread.h without recompiling the whole entire project.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3770 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-12 21:58:32 +00:00
Nolan Check ffb1f411d8 Use events and memfences for EFB accesses. Also, Single-Core mode now works again.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3750 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-11 16:52:34 +00:00
Nolan Check dc7d9ab998 Switch to Video_BeginField; hopefully fix or reduce some video stability problems by using Events.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3740 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-11 02:34:16 +00:00
LPFaint99 a41c1b2d0a add *.user, Win32, and x64 build dir to ignore list for DebuggerUICommon and Unit Tests
add *.aps to ignore list for DolphinWX dir
add eol-style native to 120 or so files

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3689 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-06 02:10:26 +00:00
hrydgard 90a2096a24 Assorted cleanup, perf counter logging, and minor fixes that have been accumulating on my hdd :p
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3663 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-03 18:33:28 +00:00
sl1nk3.s 936225eee4 Fix a nasty dualcore hang in EFB read (see r3658 comment...)
Also fix an issue reported by baby.lueshi (issue 1074) in nJoy related to half press button being always pressed when unset.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3661 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-03 15:35:31 +00:00
XTra.KrazzY 3ddbb094ab 1. Savestates should now be super-stable (but you have to save AND load)
2. AccessEFB will probably not hang (tell me if it does)
3. Stopping should be a little bit faster

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3658 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-03 10:00:09 +00:00
hrydgard 50ccffd0a6 OpenGL: Fix flickery crap graphics in Mario Galaxy. Was an uninitialized variable in the shader.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3654 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-02 23:16:30 +00:00
XTra.KrazzY 7a05aafe39 EFB Access now works from both Dual Core and Single Core modes. Thread-safe.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3644 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-02 10:16:06 +00:00
Nolan Check c2e0225aa3 Move to new Virtual XFB system which correctly handles games which store multiple XFB's in memory. More OpenGL cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3591 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-29 07:30:48 +00:00
Nolan Check 5717f1f15b Grok EFB pixel format to determine whether render target has alpha, thus fixing the "Stage Clear" screen in SSBM.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3588 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-29 00:52:54 +00:00
hrydgard 3d9279a73f Graphics: (faked) bounding box support. Helps some Paper Mario effects although they're still a bit glitchy. Might also help other games? Enable with the #define in VideoCommon.h. Since there might be a speed hit it's off by default.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3580 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-28 20:04:07 +00:00
hrydgard dfdfbd4a6a Delete some obsolete junk, in zelda ucode and in gl plugin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3577 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-28 17:58:52 +00:00
Nolan Check ade9479005 Display buffer flips are now triggered by the CPU thread through the Video_UpdateXFB function. This is a fairly significant change of behavior, but it improves performance.
Also, render target code is cleaned up. Post-processing shaders now work with multisampling and Real-XFB mode.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3545 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-26 08:57:53 +00:00
nakeee 6b2855de5e revert last 2 commits
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3533 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-22 09:31:30 +00:00
omegadox 5bcf69cbd6 Forgot to add the source files...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3532 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-22 07:44:20 +00:00
omegadox 6de0cd1e4b They should be called SU Registers (Setup Unit/Rasterization). BP (Bypass) is really the name of the commands that are passed in.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3531 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-22 07:40:28 +00:00
omegadox cfe3f77ccf Some commenting and added some unknown cases to BPStructs, see: http://code.google.com/p/dolphin-emu/issues/detail?id=360#c90
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3530 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-22 01:46:58 +00:00
Nolan Check 91ec07a049 Remove delay in Fifo when CP/GP distance is 0. It's a bad idea to sleep for a whole MILLISECOND when we only have about 17 milliseconds to complete a frame.
This fixes slowdown in Wind Waker's Deku Tree room in dual-core mode.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3513 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-20 13:07:55 +00:00
nakeee 75045807a7 linux compile fix, I'm not sure it was right of me to remove the mmsystem include (was it used?) but if it's
for the timer function please put it in Timer.h and not in each seperate file.
(And yes, I have a script that does that).


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3448 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-15 06:39:26 +00:00
John Peterson 5c04af50a4 Attempt to calculate actual refresh rate (i.e. a CPU-GPU synced Mhz), no real success. Anybody have any ideas?
Is there no indication from the game when the screen refresh should occur? No, not what I could find, we currently calculate the refresh rate and m_VBeamPos from the CPU ticks progress. That works perfectly if the CPU and GPU is perfectly synced as in the single core and no-idle skipping mode. So I guess it's possible that the game doesn't indicate when the screen should be refreshed, but rather that the hardware calculate that from the CPU ticks progress. That leaves us with a problem in the dual core and idle skipping modes to calculate a CPU-GPU synced CPU ticks progress.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3447 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-06-15 04:30:02 +00:00