Commit Graph

903 Commits

Author SHA1 Message Date
Marcos Vitali c7ae0eb0d1 Big Fifo Commit Part2: Now the fifo is more stable than my first commit, so is time...
- ReImplementing Single Core Mode like Dual Core Mode Style.

- Stage 1: My goal is, we have the Fifo, CommandProccessor code the more clear, maintenible and documented possible. When I quit dolphin I want any developer can continue with the work only reading the code.
	
* Big Refactoring: A lot of functions was changed the names, and modularized.
Now the FifoLoop and CatchUpGPU does not exist, was replaced by RunGpu() and RunGpuLoop().
The general idea is modeling the code like the real HW. The fifo is only a buffer where the Write Gather Pipe write the commands and from the Graphic Processor read these.
* Big Clean UP a lot of obsolete code and comments was deleted, like DcFakeWachDog, "Fifo very soon hack", etc.

In the stage 2, I will refactoring more code doing emphasis in the division of CommandProcessor, Fifo, Gpu Emulation. Beside I will comment all functions and variables in the code (Don't worry I will ask for English help for this part ;) )

Please test a lot SC mode and DC mode :)
Thank you so much for testing always and the patience. I don't like broke your favorite game but... you must believe me this part is very sensible, I only try to contribute for have a better and stable dolphin emulator.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7185 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-17 04:25:21 +00:00
Soren Jorvang d19c97dbe1 The pkg-config name of libpng is "libpng", not just "png".
Things break if both a shared and static libpng are linked
in, presumably because it has some global state. Several of
the gtk-ish libraries often, but not always, link in libpng
transitively, so it is important that we find it ourselves
first, even if it is not in the linker's search path.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7178 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-15 21:27:15 +00:00
Glenn Rice 0ae8d33149 Some work on changing comments, log messages, and variable and function names to reflect that the plugins are not plugins anymore.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7170 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-14 02:18:03 +00:00
NeoBrainX b776ac3d6f Add per-game "configuration profiles" for video backend configuration:
This allows ALL settings in the gfx configuration dialog to be adjusted _per game_ in a more user-friendly way than before.
Obsoletes the gfx related options in the ISO properties, but I kept those since the configuration profiles use different ini file keys (i.e. convert the game inis to the new naming, please!).


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7167 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-13 22:36:12 +00:00
Marcos Vitali be193088ca - FIX RE0 GFX fifo errors :D
- This game read the CPRead pointer when the GP is processing data and after detach the fifo  and attach again an use this pointer for continue, so implement fifo.SafeCPReadPointer pointer.
- fifo.SafeCPReadPointer is updated when (FAKE_GetFifoEndPtr() - g_pVideoData) == 0) to have a pointer without GFX Commands Cut in the beginning of 32 block.
- Reset video buffer when the CPReadWriteDistance is written by the software.
- This commit is experimental please test a lot your games.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7165 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-13 15:08:37 +00:00
Marcos Vitali 05feabdb49 - Reimplemented FifoReset in other way, only call to GPFifo::ResetGatherPipe() ResetVideoBuffer() in FIFO_RW_DISTANCE_LO when this is equal to "0"
- In the Command Processor Control Register when GPReadEnable is OFF, wait until the fifo lopp finish with thi actual 32 bytes block. This is necessary to have Safe Disabble GP Read in this way AbortFrame is performed by the software, beside this can help to have accurate GPReadEnable OFF.
Please test Metroid Prime 1/2, Guilty Gear XX, X men gc, SMG, and shuffle you can test Harry Potter Prince for WII. :)

PD: The fifo code need a clean very soon.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7158 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-13 02:21:11 +00:00
pierre e81ccd7f33 Common: Change cpuid code again
Looks like compilers tend to use EBX for parameters if not told otherwise and
don't bother to update SP in leaf functions, so PUSH/POP kill local variables.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7151 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-12 18:40:02 +00:00
smelenchuk b0fa0a83f8 * Dump AVI output on every VI (fixes issue #4064).
* Add audio dumping (fixes issue #1638).


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7131 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-11 18:59:42 +00:00
skidau af139f4661 Used usleep(1) instead of _mm_pause on Linux and Mac OSX. This reduces the CPU usage in the video thread's idle loop. Added YieldCPU to the DSP LLE loop.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7125 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-10 12:56:21 +00:00
Marcos Vitali 86278642dc Experimental commit and one fix for my last commit.
I think that isFifoBusy bring better sync with VI (video interface) because the CPU emulated threads are waiting for DrawDone in BP Register. So, I do some modifications.
1) Rename "IsFifoBusy" by "isPossibleWaitingSetDrawDone"
2) Only activate isPossibleWaitingSetDrawDone when bFF_GPLinkEnable is true in fifo loop "Inmediate mode" that is because in theory this drawsync function is using in this mode.
3) Deactivate isPossibleWaitingSetDrawDone also in SetFinish in PixelEngine, beside when 32 block is finish.

Please regression in yours games thats can bring some FPS more above all with VPS frame limiter ON (Auto, 60, 50, etc).

- Fix waiting in AbortFrame(), please test mp1/mp2 is fixed again.

Good look! 

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7123 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-10 04:47:02 +00:00
Rodolfo Osvaldo Bogado 1f1c9132a6 revert some some of the soren changes to make dolphin compile in vs2008 again until sw plugin is completely fixed.
some correction to dlist caching

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7117 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-08 14:51:53 +00:00
Soren Jorvang 8c41d31651 Fix Plugin_VideoSoftware build.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7113 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-08 11:02:34 +00:00
skidau 855f97841d Paused the video thread while a save state was being created or loaded. Performed the save state operation after the fifo became idle. Saved the interrupt status of the video thread into the save state. This helps stabilise the save states in dual core mode in games like Super Mario Galaxy.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7112 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-08 10:37:47 +00:00
Shawn Hoffman a34b81cc01 vs2010:
buildfix
move much of the build settings to .props files
-please use them as much as possible in the future, instead of changing individual projects
NOTE: to avoid left over blobs, clean your builds *before* applying these changes.
TODO: add DebugFast target for projects that are lacking it. Lack of DebugFast targets cause the linker to use LTCG when we don't want it.
please test for regressions which could be caused by being too happy with compiler flags :)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7109 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-08 04:03:48 +00:00
gnick79 f48c283294 - CPUID
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7103 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-07 21:03:10 +00:00
gnick79 795cf08bbf CPU... (yes)..ID -.-'
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7102 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-07 20:31:28 +00:00
gnick79 05ef2c1337 - again CPUID :°D
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7101 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-07 20:19:21 +00:00
gnick79 d373258517 - CPUID asm changes for x64 systems.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7100 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-07 20:14:22 +00:00
gnick79 a4754956cb - CPUID
restored inline assembly code

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7099 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-07 19:08:19 +00:00
gnick79 b1a63e3e8e - CPUID 2nd Attempt
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7098 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-07 18:35:01 +00:00
gnick79 bba19bb36b * CPUID changes:
- Added full ability to recognize true Intel HTT CPU capability (support to discriminate Intel Core 2 Duo...)
  - Attempt to fix a register trashing (issue 4022 generally, linux and mac systems)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7097 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-07 18:25:55 +00:00
baby.lueshi 145559424c Fixed the new texture hashing functions to take samples into consideration. Fixes issue 4058
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7091 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-06 08:05:18 +00:00
hrydgard 1f42061163 fix silly string in CPUDetect
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7085 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-05 20:28:23 +00:00
Soren Jorvang 98e24f5873 The compiler need not obey the static keyword, so to avoid linker
problems, whole functions in .h files need to also be static in
case they are included in several .cpp files.

Also a few other minor LTO fixes.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7082 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-05 16:06:05 +00:00
baby.lueshi 888cd78724 Changes to hi-res textures. Textures now load correctly when loading/saving a savestate, and can be toggled on and off in game.
Changed non-hi-res textures to use MurmurHash3, which has better performance that the previous hash.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7080 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-05 10:08:06 +00:00
baby.lueshi 40ac272691 32-bit fix.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7068 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-05 00:31:35 +00:00
gnick79 d29b3e612a * Italian translation update
+ some little GUI adjustements

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7066 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-04 23:44:11 +00:00
baby.lueshi cd9e6a8d23 Change the recent speedup to the hashing function to fall back to the old version for custom textures.
Re-fixed custom textures higher than 1024x1024. (It must have accidentally got reverted somewhere during the video plugin merge)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7064 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-04 22:51:17 +00:00
skidau d698e022f5 Changed the hash algorithm to CRC32 utilising the SSE4.2 instruction. The algorithm will automatically be used for the Accurate Texture Cache, EFB to RAM and texture id's when a SSE4.2 capable CPU is detected. It will fallback to the old algorithm if SSE4.2 is not detected. Using CRC32 speeds up the hash algorithm by around 2X.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7060 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-04 08:37:58 +00:00
Soren Jorvang cc289a05bb Turn back on unit tests in SCons.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7057 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-04 01:02:06 +00:00
Soren Jorvang 6d70c14d12 In the SCons build, skip the generation of static libraries
and just operate on lists of object files instead.

This helps with LTO since LLVM/clang LTO is completely broken
by static libraries. It also helps identify symbol clashes
between components like the former plugins.

Many linkers also expect static libraries to form a strict DAG
which turns out be a difficult rule to uphold in practice,
especially since some of our platforms aren't picky about this.

LTO builds currently appears to crash at runtime because of
the static wx libs.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7056 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-04 00:46:56 +00:00
Shawn Hoffman ac3f2d9c19 Remove OpenAL for windows.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7053 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-03 21:35:26 +00:00
Soren Jorvang 1619e176ff Use brute force to link the software plugin.
Not yet functional.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7050 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-03 19:55:30 +00:00
Soren Jorvang a3ba93d9ce Thread affinity on OS X and *BSD.
Keep building the software plugin to prevent rot.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7045 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-02 21:52:43 +00:00
Soren Jorvang 9c21d003af Remove the global namespace a bit and remove some dead code.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7043 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-02 18:21:20 +00:00
Glenn Rice 8b309e26dc Remove PluginSpecs.h. Merge the few needed enums from that file into Common.h for now. I am up for suggestions on a better place for those.
Fix frame dumping on linux.
Make sure that on screen messages get cleared between games.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7039 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-02 04:40:27 +00:00
gnick79 ebc8f02885 * Better fix for CPUID (and this time is the right time)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7038 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-02 04:08:52 +00:00
gnick79 0f0adb4aee * Quick CPUID fix
- this should fix a detecting problem related to some AMD CPU


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7037 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-02 02:05:57 +00:00
Jordan Woyak 53ae9e9e8f Fixed vs2010 SVNRevGen project. (Also changed "make_svnrev.h.vbs" to jscript and gave it some comments :p) Removed some old plugin stuff.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7030 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-01 04:20:51 +00:00
Soren Jorvang e0e4a3ae02 Allow changing the fullscreen resolution on OS X.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7011 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-31 07:38:36 +00:00
Shawn Hoffman 0e91e5b238 fix windows (vs2010) build
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7010 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-31 06:08:46 +00:00
Soren Jorvang 8822674653 Fix *BSD build.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7002 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-31 03:02:23 +00:00
Soren Jorvang 18bb65b300 Fix OS X build.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6997 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-31 01:53:57 +00:00
Jordan Woyak fbaf965995 Eliminated the plugin interface. Merged DX9/DX11/OGL video plugins into Dolphin. It could still use a lot of cleanup. Lots of things are still named "plugin". Software renderer is temporarily disabled until it gets some namespaces. I only updated vs08/10, Linux/OSX builds are broken.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6996 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-31 01:28:32 +00:00
Glenn Rice cde1c5bd60 Remove the PIC linker flag for DSP on linux.
Fix some debugger issues.  Still need to get sound window working, but the invalid id panic alert is fixed.
Also, a ";" as a comment in an ini file is now only allowed at the beginning of a line.  The debugger has settings strings with semicolons in them.  That completely broke the debugger.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6989 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-30 17:04:12 +00:00
Soren Jorvang 2de8742368 Equip any new threads with an NSAutoreleasePool.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6978 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-29 23:46:26 +00:00
Soren Jorvang 043e324789 A few compiler warnings.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6975 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-29 22:48:33 +00:00
gnick79 3078db08c7 * Changed the Projection Hack option in game properties to "Custom Projection Hack"
- dislocating all sensible stuff related to "values per game/pattern" outside the sourcecode.
  - giving more control to end-users across the user-friendly interface.
  - deleting/cleaning some dead variables.
  - updating all gameconfig.ini data to reflect new PHack concept (pending upload).

* Updated Italian translation
  - Includes corrections, a better strings translating and suggestions directly by Google Code's people.

+ Minor old pending changes...

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6973 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-29 21:13:56 +00:00
Soren Jorvang 1287a9bb9f Be a little more careful about the use of SSE.
We really need to adopt the GCC model of one instruction set
per compilation unit.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6965 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-29 11:40:20 +00:00
donkopunchstania d5e5730fef If perspective divide is enabled and texture coordinate Z is 0 then leave texture coordinates alone. Fixes issue 3676.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6964 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-29 08:34:57 +00:00