Commit Graph

7728 Commits

Author SHA1 Message Date
Pierre Bourdon e4d18e3a8b Bound the iteration on the PB list when processing updates.
Fixes freezes introduced in 3.0-807 with DSPHLE on some AX games.

Apparently logic doesn't apply inside the HW/DSPHLE/UCodes directory.
2012-11-13 16:50:42 +01:00
Pierre Bourdon 16060290c2 Fix missing notes in musics with DSPHLE.
Tales of Symphonia and Skies of Arcadia Legends now have working musics with
DSPHLE. Some other games with the same symptoms (missing instruments) should
probably be fixed by that change too.
2012-11-13 09:37:44 +01:00
rog 8fe5aa4ee8 movie cleanup 2012-11-12 20:40:11 -05:00
rog 8eb6f9002e Fixes interpreter when not recording or playing back a movie. 2012-11-12 20:20:34 -05:00
rog a5d210129d Add an on screen lag counter. 2012-11-11 17:57:06 -05:00
rog 35e5a1e592 Add an option to pause on the last frame of a movie. 2012-11-10 21:57:31 -05:00
Rog e8c0fea16e Retain dsp JIT setting when switching to HLE. Fixes issue 5691. 2012-11-09 12:08:56 -05:00
Rog ab48e1154b Stop saving undo buffer (and associated .dtm, and .sav) when starting playing back a movie from save state. This is completely useless, and just wastes time copying save states around. 2012-11-08 23:25:55 -05:00
NeoBrainX 6f21f5eb34 Video_Software: Implement texture preloading 2012-11-03 15:41:41 +01:00
Pierre Bourdon d13163380d Bye mamario, you won't be missed 2012-11-02 02:48:55 +01:00
sulokuTDCmago d032c40a58 - Added a new wilcard for importing savegames, which basically shows all saves (gci, gcs and sav). This is set as default (I really got frustrated of having to change the type every single time when making tests for GCMM, and I think it makes more sense at user level to just show all saves regardless the format)
- In icon retrieving I removed the "format check" as it shouldn't really matter to have mixed icon formats. Also removed the "Time splitters hack" as there's no reason for it since we are only checking the last 3 bits and I'm pretty sure having bits 1 and 2 set is the same as having them unset.
- Icon retrieving uses AnimSpeed as stop signal (every icon must have an speed set, the first speed that is 0 means there are no more icons)
- Also, in icon retrieving I added support for "blank frames"(Luigi's Mansion and Pikmin that I know of). With this the base for icon animation is complete.
- Fixed PSOIII savegame patch which was wrong before.

Signed-off-by: LPFaint99 <lpfaint99@gmail.com>
2012-10-29 21:02:59 -07:00
Sonicadvance1 5dd49edaec Badaboom. Add in Memory include to CDUtils.cpp 2012-10-30 02:45:42 +00:00
skidau 303b0f6b6d Test the audio loop with aligned addresses. Fixes the high pitched squeal in Muramasa. 2012-10-29 14:03:28 +11:00
Ryan Houdek fb92c338af Bit of cleanup and fixing of one issue that was noticeable in SMS with Mario's shadow. 2012-10-27 22:50:06 -05:00
skidau 882d5161f8 Merge branch 'Capcom-Music-Loop'
* Capcom-Music-Loop:
  Removed the fake DMA wait time as it is no longer needed after the aram-dma-fixes branch is merged.  This fixes the Resident Evil 2/3 cutscene audio in DSP LLE mode.  Fixes issue 2723.
  Changed the loop end address detection to an exact match with the current address for ADPCM audio.  Fixes the non-looping music in PN03.
2012-10-28 13:36:34 +11:00
Ryan Houdek dfb3c44d1a Remove glMatrixMode and glLoadIdentity calls in Render.cpp which do absolutely nothing. 2012-10-27 18:27:16 -05:00
Ryan Houdek 8c1d104ca3 Change EFB copy location rectangles over to a Vertex array 2012-10-27 18:10:31 -05:00
Ryan Houdek c1fd640964 Rebase immediate-removal on master 2012-10-27 17:22:48 -05:00
rog 95d55ed1c7 fixes for backing up wii saves when playing a movie 2012-10-26 20:04:06 -04:00
rog 8921fe0d09 move wii saves to a backup if playing a movie that starts with no save 2012-10-26 17:36:18 -04:00
rog 0bc2021284 save if a wii game's save data exists when starting recording. Probably not the best way to do this, and could result in a false negative if banner.bin exists, but the actual save file doesn't, but this should work well enough. 2012-10-25 03:15:54 -04:00
rog 8dfb12da3e stuff 2012-10-24 23:21:34 -04:00
rog 76a6917fdf Check game ID against what is recorded to the .dtm 2012-10-24 19:42:04 -04:00
rog 7ee455ce3b When beginning recording, check settings in Init() instead of just in BeginRecordingInput(), since it's called after bootmanager.cpp reads the game's config. 2012-10-24 18:44:26 -04:00
rog 7006cd1217 i'm still not using a branch to fix the name of a variable 2012-10-24 15:32:02 -04:00
rog 4358f8384f readd memory card detection for movie code. I deleted this before, intending to move it elsewhere, but never did 2012-10-24 15:16:41 -04:00
rog a1186d84df update state version 2012-10-23 02:31:16 -04:00
rog 5133ac551b merge relevant changes from bc61dbdf58a8 in otu0001-desync-fix clone 2012-10-23 02:10:49 -04:00
rodolfoosvaldobogado 72cb1734ee Some code cleaning for my last commit.
the amount and size of the buffer is now changed to "new hardware" frienly values and will fall back to the right values if hardware does not support them.
my next commit will be to a branch, with my ogl work.
2012-10-22 19:37:26 -03:00
skidau 421a75493c Removed the fake DMA wait time as it is no longer needed after the aram-dma-fixes branch is merged. This fixes the Resident Evil 2/3 cutscene audio in DSP LLE mode. Fixes issue 2723.
Removed the ADPCM format detection from the previous commit as it broke the audio looping in Knockout Kings 2003.
2012-10-23 00:30:01 +11:00
skidau b2a01dc348 Changed the loop end address detection to an exact match with the current address for ADPCM audio. Fixes the non-looping music in PN03.
Fixes issue 3998.
2012-10-22 22:59:35 +11:00
NeoBrainX f7edfc0118 FifoPlayer: Copy selected object commands to clipboard when pressing ctrl+c 2012-10-22 12:32:57 +02:00
rog aece5310f3 more movie cleanup. Removes the remaining globals that didn't need to be global, rearranges some code to make more sense, and removes some redundant code. 2012-10-21 23:20:28 -04:00
rog 9070e7ff8c misc movie cleanup and fixes 2012-10-20 22:26:40 -04:00
rog 92d2f5dee2 keeping padding right is so hard 2012-10-20 15:58:29 -04:00
rog a6028b055b Save disc changes to .dtm, and load the full movie header every time it's loaded. 2012-10-20 14:40:16 -04:00
rodolfoosvaldobogado@gmail.com 5230146c73 Hey, long time no commits :).
So to compensate lets bring back some speed to the emulation.
change a little the way the vertex are send to the gpu,
This first implementation changes dx9 a lot and dx11 a little to increase the parallelism between the cpu and gpu.
ogl: is my next step in ogl is a little more trickier so i have to take a little more time.
the original concept is Marcos idea, with my little touch to make it even more faster.
what to look for: SPEEEEEDDD :).
please test it a lot and let me know if you see any problem.
in dx9 the code is prepared to fall back to the previous implementation if your card does not support the amount of buffers needed.
So if you did not experience any speed gains you know where is the problem :).
for the ones with more experience and compression of the code please test changing the amount and size of the buffers to tune this for your specific machine.
The current values are the sweet spot for my machine.
All must Thanks Marcos, I hate him for giving good ideas when I'm full of work.
2012-10-20 10:22:15 -03:00
rog 0384f61af3 re-rearrange movie code so it actually works all of the time 2012-10-19 19:43:03 -04:00
rog b1dee5fc23 small fix for undo load state while not recording 2012-10-18 04:40:56 -04:00
rog 79692a6c78 save settings necessary for syncing a movie to the .dtm, and load them upon playback 2012-10-18 04:18:40 -04:00
rog 783409c765 clear the save state loaded from a previous movie when starting emulation 2012-10-18 04:14:25 -04:00
rog 6b99b746c8 fix undo load state and load last overwritten state while recording 2012-10-18 04:11:14 -04:00
rog 7f624cda10 fix recording from save state 2012-10-18 04:03:12 -04:00
rog a366521d13 Correct the hotkey labels for undo load state, and load last overwritten state buttons 2012-10-18 03:30:44 -04:00
Ryan Houdek 57426ee726 Forced commit 2012-10-13 13:00:04 -05:00
Ryan Houdek 3f0d7312fa A couple missed lines on the rebase. 2012-10-13 12:43:00 -05:00
Shawn Hoffman 1a8005d948 set ProgramShaderCache program format correctly. 2012-10-09 23:56:00 -05:00
Ryan Houdek 10666a9b87 More 'stuff' 2012-10-09 23:56:00 -05:00
Ryan Houdek eb7a0c485a More "stuff" for SS, also a small fix in the program shader cache cache setup." 2012-10-09 23:56:00 -05:00
Ryan Houdek 71f6b1eec6 Change 'stuff' 2012-10-09 23:56:00 -05:00
Shawn Hoffman 210ecad15f let us try normal c++ static init instead... 2012-10-09 23:56:00 -05:00
Ryan Houdek 03b09bed5d Get the program binary type correctly or else ATI makes massive (~400MB) shader caches. Also, don't need the line in the PixelShaderGen. 2012-10-09 23:56:00 -05:00
Ryan Houdek 2e15440896 Add support for Dual source blending to older ATI cards that don't support 420pack but do support GL_ARB_blend_func_extended. This is more proper as well anyways. 2012-10-09 23:56:00 -05:00
Ryan Houdek 5085cebaf3 These checks aren't needed when using CG. 2012-10-09 23:55:59 -05:00
Ryan Houdek e88d35d1c1 Had a few vec4 and float4(0) calls floating around. 2012-10-09 23:55:59 -05:00
Shawn Hoffman 108722bed0 oops, forgot to make sure the gl program is actually free'd. 2012-10-09 23:54:18 -05:00
Ryan Houdek e3854ded73 Woops, better not forget the ing 2012-10-09 23:54:18 -05:00
Ryan Houdek 4cd748bbec Remove some warnings in ProgramShadercache, Was using wrong variable for checking dual source blending. 2012-10-09 23:54:18 -05:00
Shawn Hoffman 4c1fef8f98 refactor ProgramShaderCache::PCacheEntry 2012-10-09 23:54:18 -05:00
Shawn Hoffman aaa405c973 Checking GLEW_VERSION_4_0 is superfluous since we check GL_ARB_get_program_binary, and it's a runtime variable anyways. 2012-10-09 23:54:18 -05:00
Shawn Hoffman 31a8424bcc fix formatting uglies introduced in glsl-master branch 2012-10-09 23:54:17 -05:00
Shawn Hoffman 4a4833e617 default to GLSL instead of Cg 2012-10-09 23:43:22 -05:00
Ryan Houdek c4e7a288e5 Add in the Windows fix. 2012-10-09 23:43:22 -05:00
Ryan Houdek ee529b7125 Only use explicit attribute locations when we are supporting GLSL > 1.2 since we need in/out instead of attribute variable types. This was brought to my attention from MESA. MESA supports GL_ARB_explicit_attrib_location, but yets to support GLSL 1.3, so basically useless extension to MESA right now? 2012-10-09 23:43:22 -05:00
Ryan Houdek 5c486587a6 Write all shaders to disk on emulator stop instead of constantly. Also change pair from u64 to u32. 2012-10-09 23:43:22 -05:00
Ryan Houdek 4eb227bd4c If user doesn't compile with glew 1.6, cut out program binaries so everything still compiles. 2012-10-09 23:43:22 -05:00
Ryan Houdek 189d12b61c If CG isn't available, still compile and fallback on GLSL 2012-10-09 23:43:22 -05:00
Sonicadvance1 7c91476650 Missed a if, don't want people crashing now do we? 2012-10-09 23:42:41 -05:00
Ryan Houdek 9996f27120 Give OSX users more of a chance of supporting Single pass DSB in the future. 2012-10-09 23:42:41 -05:00
Ryan Houdek d012c75005 Implement Program shaders cache. Seems to reduce a small amount of stuttering when F-Zero starts. Did it because I can :| 2012-10-09 23:42:41 -05:00
Ryan Houdek ef1e157786 Go back to using glGetString with GL_EXTENSIONS because glew 1.7 is required to check for newer 4.2 extensions that way. 2012-10-09 23:42:40 -05:00
Ryan Houdek ac77bbd47b Move the GLSL extension checks over here so it is nicer. 2012-10-09 23:42:40 -05:00
Ryan Houdek 7cb3d86e31 Add a define back so we work without GLEW 1.6, Also I missed a line when I was fixing binding sampler locations last night when I was tired. 2012-10-09 23:42:40 -05:00
Ryan Houdek 1aad2e9e56 There we go, actually found the issue. 2012-10-09 23:42:40 -05:00
Ryan Houdek 6759ee701d This thing fails when we don't support binding. Not 100% sure why I need to set this multiple times. 2012-10-09 23:42:40 -05:00
Ryan Houdek c76593f6a2 Looky, OSX found an issue for me. 2012-10-09 23:42:40 -05:00
Ryan Houdek 66a245dd68 Remove this silliness 2012-10-09 23:42:40 -05:00
Ryan Houdek 9c09e1973a Some shader programs don't come with Vertex shaders attached, don't try to bind a Vertex Uniform block then. 2012-10-09 23:42:40 -05:00
Ryan Houdek f8d0c28e53 Set Sampler values at program make time instead of every frame. Fix an issue when The user had UBO support but not Binding support. 2012-10-09 23:42:40 -05:00
Ryan Houdek ddd4360d6d Only delete this buffer if we support it. 2012-10-09 23:42:39 -05:00
Ryan Houdek 7aad45658e Add a GUI option to use GLSL shaders. Also fix a small typo. 2012-10-09 23:42:39 -05:00
Ryan Houdek 076c1a5aa7 Make sure not to try and bind UBO locations when it isn't supported 2012-10-09 23:41:49 -05:00
Ryan Houdek 7f12daa014 Looks like we make use of fmod, make a GLSL function for it! 2012-10-09 23:41:49 -05:00
Ryan Houdek ba12c0b4f5 Instead of querying the vertex attribute location. Let's bind it to where CG expects it to be as well. Was causing problems when we were trying to activate the components below and they weren't available. This fixes cubivore with GLSL shader. Also any other game that uses 3 normal pointers. 2012-10-09 23:41:48 -05:00
Jordan Woyak d70726b035 glMapBuffer was slow, go back to glBufferSubData, single combined ps/vs ubo now 2012-10-09 23:41:48 -05:00
Jordan Woyak d9117ab6a1 try combining vs/ps ubo 2012-10-09 23:41:48 -05:00
Jordan Woyak e641ede232 make use of glMapBuffer to set ubo data 2012-10-09 23:41:48 -05:00
Ryan Houdek 04836705b7 Show a bit of information when using GLSL shaders. 2012-10-09 23:41:48 -05:00
Jordan Woyak 8e80771670 fix stupid indentation 2012-10-09 23:41:48 -05:00
Jordan Woyak 73a29bf6a1 have separate variables/functions for VS/PS ubo stuff, array was confusing. 2012-10-09 23:41:48 -05:00
Ryan Houdek a809feae1a Disable UBO buffer generation if hardware doesn't support it. 2012-10-09 23:41:48 -05:00
Pierre Bourdon 3bcec51334 More coding style fixes because I suck at sed 2012-10-09 23:41:48 -05:00
Pierre Bourdon 3c6d0fc710 8 spaces indentation -> tabs 2012-10-09 23:41:48 -05:00
Ryan Houdek a5257c1a0a Actually have Dual Source blending work for people. Forgot about this change. 2012-10-09 23:41:06 -05:00
Ryan Houdek a304af75fd Make this pretty 2012-10-09 23:41:06 -05:00
Ryan Houdek 67687a7b6d Make sure our UBO buffers are always aligned correctly. 2012-10-09 23:41:06 -05:00
Ryan Houdek 5b06bbf87d Use UBOs in every shader. I had missed a few. Only cache Uniform locations if we aren't using UBOs. 2012-10-09 23:41:06 -05:00
Ryan Houdek 5bcbf92f43 Make sure to support everything even if GPU doesn't. 2012-10-09 23:41:06 -05:00
Ryan Houdek d4a80ca3ec yay, UBOs work 100% now. 2012-10-09 23:41:05 -05:00
Ryan Houdek 1f75ee49bf UBO works for Pixel Shaders if Binding for UBO is zero, otherwise fails. Probably why Vertex shader UBO is failing. Too tired to investigate right now. 2012-10-09 23:41:05 -05:00
Ryan Houdek 904adb9e3d More for Billiard <3 2012-10-09 23:41:05 -05:00
Ryan Houdek ce7a54f32a Firin ma lazer 2012-10-09 23:41:05 -05:00
Ryan Houdek b105d70339 Firin ma lazer 2012-10-09 23:41:05 -05:00
Ryan Houdek c82b92bfc2 Fix one error. 2012-10-09 23:41:05 -05:00
Ryan Houdek 2fbca145cb Remove bSupportsGLSLLocation since it won't work how I expect it. 2012-10-09 23:41:05 -05:00
Ryan Houdek 4a84c6f742 Add in UBOs, doesn't work yet. Still debugging here. 2012-10-09 23:41:05 -05:00
LPFaint99 5f0f26ef35 add ProgramShaderCache.* to visual studio project files 2012-10-09 23:41:05 -05:00
Ryan Houdek 76e5766a1b Put Vertex Uniforms in to the correct places to get ready for UBOs. 2012-10-09 23:41:04 -05:00
Ryan Houdek d897491f94 Few compiler errors that got exposed once I got Dual Source Blending working. Seems it isn't working quite 100% either. Good chance I missed something anyway. 2012-10-09 23:41:04 -05:00
Ryan Houdek d83ead5914 Support Dual Source Blending in OGL plugin with GLSL. 2012-10-09 23:39:16 -05:00
Ryan Houdek eff019442f Playing through SSBM story made me find this. 2012-10-09 23:37:52 -05:00
Ryan Houdek b24990ca28 Bit of cleanup. Clean up my massive hack in the ShaderManagerFiles. Almost feature parity with Nvidia CG now I think. Just need to do Alpha test with Dual source blending now. 2012-10-09 23:37:52 -05:00
Ryan Houdek cf68cc0c61 Add support for GL_ARB_shading_language_420pack so we don't have to binding sampler locations. Also add support for GL_ARB_separate_shader_objects which doesn't currently work for some reason....investigating. 2012-10-09 23:37:52 -05:00
Ryan Houdek 081ad949ce Welp, just fixed that problem. 2012-10-09 23:35:45 -05:00
Ryan Houdek 3c9c5de722 Missed a spot. Most games work now, Still have a problem with viewtiful joe. Destination Alpha pass doesn't work yet, going to use Dual source blending on that. 2012-10-09 23:35:45 -05:00
Ryan Houdek 8058f2f32f Missed one 2012-10-09 23:33:02 -05:00
Ryan Houdek 9064b76deb Shader Compile fixes. Played SMS for two shines. 2012-10-09 23:33:02 -05:00
Ryan Houdek 3160da1289 This lets us see stuff with GLSL shaders. Just need to take care of some compile errors now. 2012-10-09 23:33:02 -05:00
Ryan Houdek 7cec31dbf3 Almost there. 2012-10-09 23:33:02 -05:00
Ryan Houdek 8123b137aa This is the terrible bit that can't be removed until we use UBOs in the GLSL shaders. 2012-10-09 23:31:31 -05:00
Ryan Houdek 0fc755c4df More stuff 2012-10-09 23:31:31 -05:00
Ryan Houdek 66a5334158 moe 2012-10-09 23:30:48 -05:00
Ryan Houdek 7a4c080c70 mah 2012-10-09 23:29:30 -05:00
Ryan Houdek 411357b54a Compile 2012-10-09 23:29:30 -05:00
Ryan Houdek 34c7b3fd73 meh 2012-10-09 23:29:30 -05:00
Ryan Houdek 3943840d5c Now CG plays nice with this new stuff. 2012-10-09 23:27:59 -05:00
Ryan Houdek a357c77257 Add in GLSL setting again.
PS and VS making. Untested and won't work for now.

Add in program shader cache files.

Readd NativeVertexFormat stuffs.

Add in PS and VS cache things.

SetShaders in places.

Fixed EFB cache index computations in OpenGL renderer.

The previous computation was very likely to go out of array bounds,
which could result in crashes on EFB access.

Also, the cache size was rounded down instead of up. This is a problem
since EFB_HEIGHT (528) is not a multiple of EFB_CACHE_RECT_SIZE (64).
2012-10-09 23:23:37 -05:00
Pierre Bourdon 3990002250 Optimize JitCache::InvalidateICache by maintaining a "valid blocks" bitset
Most of the InvalidateICache calls are for a 32 bytes block: this is the
number of bytes invalidated by PowerPC dcb*/icb* instructions. Profiling
shows that a lot of CPU time is spent checking if there are any JIT blocks
covered by these 32 bytes (using std::map::lower_bound).

This patch adds a bitset containing the state of every 32 bytes block in
RAM (JIT cached/not JIT cached). Using that, a 32 bytes InvalidateICache
can check in the bitset if any JIT block might be invalidated. A bitset
check is a lot faster than an std::map::lower_bound operation, improving
performance of JitCache::InvalidateICache by more than 100%.

Some practical numbers:

* Xenoblade Chronicles (PAL)
  56.04FPS -> 59.28FPS (+5.78%)
* The Last Story (PAL)
  30.9FPS -> 32.83FPS (+6.25%)
* Super Mario Galaxy (PAL)
  59.76FPS -> 62.46FPS (+4.52%)

This function still takes more time than it should - more optimization in
this area might be possible (specializing for 32 bytes blocks to avoid
useless memcpy, for example).
2012-10-06 01:49:09 +02:00
Pierre Bourdon 8cefcaa94c Implement a simple benchmarking mode which logs FPS to a file
Very useful to compare performance between two builds, check the impact of
a configuration option, etc. FPS log is stored in User/Logs/fps.txt and is
reset each time you launch a game. Only enabled if you check the "Log FPS
to file" option in your graphics settings.

Could be improved a bit: currently logs only every 1s (so you can't really
see small variations), maybe output more infos to the fps.txt like
average/stddev (but Excel/Libreoffice/Google Docs can compute that easily
too).
2012-10-04 05:41:02 +02:00
NeoBrainX 035840e7b5 Move last XFB size from Render to FramebufferManager. 2012-10-03 13:44:35 +02:00
NeoBrainX 8f5223d0e6 More cleanups. 2012-10-03 13:44:13 +02:00
NeoBrainX 6e4a61a991 Minor cleanups. 2012-10-03 13:44:04 +02:00
NeoBrainX ac2ce8b16e Video_DX11: Remove some redundant code. 2012-09-27 18:15:45 +02:00
NeoBrainX bb8b5936c0 Revert "Partially revert revision d511b506120c."
This reverts commit 08e06b2293.
2012-09-27 18:15:44 +02:00
Sonicadvance1 8fed3b76c8 If setting videobackend back to null strings, Just set it to the front of the list. Fixes loading game specific INI files that don't load back the "default" video backend which is nothing. 2012-09-25 00:47:37 +00:00
Ryan Houdek 41266129ba Should fix issue 5630. 2012-09-24 17:16:34 -05:00
Ryan Houdek 3229bf824c Should actually load the backend when it changes via game INI 2012-09-23 17:54:23 -05:00
Ryan Houdek f8f8aea577 Allow the user to set graphics backend from Game INI. Zero GUI option available for setting. 2012-09-23 16:02:11 -05:00
Ryan Houdek b4ae200d0d This changes a mmap in MemArena so you don't need 786MB of memory free to actually allocate the 1GB memory space in Linux 32bit. I was also running in to this issue in my development. Kudos to plbl4ster to actually taking the time to research this. Closes issue 5625. 2012-09-23 10:08:13 -05:00
sulokuTDCmago 1e174ad31a F-Zero and Phantasy Star Online Memory Card Manager support. Thanks to Ralf from GS Central
Original information:
http://board.gscentral.org/retro-hacking/53093.htm

Signed-off-by: LPFaint99 <lpfaint99@gmail.com>
2012-09-21 21:41:04 -07:00
Pierre Bourdon 208d25c3f5 Revert merges of aram-dma-fixes and memcard-delay
These merges, while in theory improving emulation accuracy, cause issues
in other parts of the emulator based on invalid assumptions. memcard-delay
fixed some of these issues in the EXI memcard code, but several other
problems still exist and I don't have the time to debug that right now.
2012-09-07 01:11:38 +02:00
Scott Moreau 1ffb9ce47e Fix broken build when using SDL from Externals.
The problem here was the logic that detects SDL in the main CMakeLists.txt
is not the same as it is in DolphinWX/CmakeLists.txt to set libraries. When
using SDL from Externals it failed at link time because -lSDL was never set.
This fixes the problem by using the same condition logic to set the libs
as used when detecting SDL in the first place.
2012-09-02 16:53:15 -06:00
Glenn Rice d2e057d137 Update libav code to remove deprecation warnings. 2012-08-28 22:34:24 -05:00
plbl4ster 94e49c5044 Fix frame skipping on non-win32 systems missing libav
Fixes issue 4097.
2012-08-28 12:29:51 +02:00
Scott Moreau 6773261a85 Use correct linker flags for SDL. 2012-08-28 03:35:31 -06:00
Pierre Bourdon 90af798d3d Partially revert be200074e9 for OS X systems
/dev/shm is not a tmpfs mountpoint on that operating system. Use /tmp but keep
the unlinking to avoid useless disk IO.
2012-08-25 03:30:37 +02:00
Pierre Bourdon 60aed4e5b0 Merge branch 'memcard-delay' 2012-08-24 12:45:45 +02:00
Ryan Houdek be200074e9 [Linux] Change from using /tmp to /dev/shm in MemArena so we don't cause any disk IO, also unlink file while it is open to allow multiple instances running. This was discussed months ago, but was never implemented for whatever reason. 2012-08-22 23:39:50 -05:00
NeoBrainX bab9b5d3ce FifoPlayer: Fix fifo log playback in dual-core mode. 2012-08-22 01:04:09 +02:00
Pierre Bourdon 0b00c95b79 Simulate a small delay on GC Memcard operations
This was not needed for most games before because the external exception was
itself delayed. aram-dma-fixes changed that and made the external exception
happen a lot quicker, breaking games that relied on the memcard operations
delay.

Fixes issue 5583.
2012-08-20 13:49:12 +02:00
Pierre Bourdon 54fc4029dd Use do { ... } while (0) for the *_LOG macros
Without this patch, such code would not compile:

if (cond)
    WARN_LOG(FOO, "msg");
else
    WARN_LOG(FOO, "msg2");
2012-08-20 13:12:49 +02:00
LPFaint99 603bd9982d bugfix for memorycard manager. fixes exporting from page > 1 on slot b, thanks to suloku for reporting
Signed-off-by: LPFaint99 <lpfaint99@gmail.com>
2012-08-19 20:45:43 -07:00
skidau 28bc5eca37 Added a check for out of bounds memory accesses. Fixes Avatar: The Last Airbender (GC). 2012-08-17 22:14:35 +10:00
NeoBrainX 08a9c66037 Revert the recent zcomploc changes including the Graphic_Fixes merge.
Reason:
- It's wrong, zcomploc can't be emulated perfectly in HW backends without severely impacting performance.
- It provides virtually no advantages over the previous hack while introducing lots of code.
- There is a better alternative: If people insist on having some sort of valid zcomploc emulation, I suggest rendering each primitive separately while using a _clean_ dual-pass approach to emulate zcomploc.

This reverts commit 0efd4e5c29.
This reverts commit b4ec836aca.
This reverts commit bb4c9e2205.
This reverts commit 146b02615c.
2012-08-10 20:12:02 +02:00
NeoBrainX 6e02ad55bc Maintenance. 2012-08-07 18:57:53 +02:00
NeoBrainX c143e08b9a Recreate screenshot texture whenever the backbuffer resolution changes. Fixes crashes when taking screenshots after changing window size or switching to/from fullscreen mode. 2012-08-07 15:18:10 +02:00
NeoBrainX ec859009b7 Add a sanity check for viewports with zero width/height.
Fixes issue 5466.
2012-08-07 01:37:31 +02:00
Pierre Bourdon a2b71f1ed7 Clean up WX style issues mentionned in previous commits comments 2012-08-06 14:21:49 +02:00
skidau 0efd4e5c29 Skipped the ZCompLoc pass if the result can be determined at compile time. Brings back the speed lost by r146b02615c07. 2012-08-06 09:29:01 +10:00
Pierre Bourdon 86a1899b9e Fix a wrong data type in the WBFS Blob reader causing issues on x86 systems
Fixes issue 5489.
2012-08-05 19:35:49 +02:00
Pierre Bourdon d7d2e5b9bf Link explicitly DolphinWX with GTK2 libraries
Fixes issue 5555.
2012-08-05 20:51:42 +02:00
Pierre Bourdon fe1501db9a Check if WX recognized a key before testing if it's a hotkey
Fixes issue 5537.
2012-08-05 17:28:57 +02:00
Pierre Bourdon b3c9f437db Return early from DoOpen if the user cancelled the file picker box
Fixes issue 5551
2012-08-05 16:53:36 +02:00
Pierre Bourdon 80bf3c2c0b Add VTune profiling support for Dolphin's JIT 2012-08-05 16:39:15 +02:00
Pierre Bourdon 228172d656 Fix a typo in the indexed color vertex loader
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2012-08-05 04:24:16 +02:00
Pierre Bourdon 8597660855 Replace all of the opcode data read functions by their SSSE3 equivalent, not only the first one.
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2012-08-05 04:24:08 +02:00
Pierre Bourdon d44a3471be Fix DSP LLE thread affinity being set to the wrong core
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2012-08-05 04:24:00 +02:00
Pierre Bourdon e42c6214d9 Fix a typo in GenQuantizedLoads causing issues with SSSE3 in x86 builds
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2012-08-05 04:23:46 +02:00
Pierre Bourdon d33e48319f Fix accesses to the 16 lower pixels of the EFB with OpenGL
The GL EFB cache did not clamp correctly the coordinates when computing
the rectangle it needed to cache, leading to negative values being used
as indexes and often crashes.

Fixes issue 5510.
2012-07-23 22:35:51 +02:00
skidau 00df727d2f Optimised the JitCache struct size from 88 bytes to 80 bytes. Thanks to Lioncash for the patch. 2012-07-23 22:15:34 +10:00
Pierre Bourdon 174c1b00f8 Use the right modifier for hotkeys on Mac
Fixes issue 5324.
2012-07-22 19:22:50 +02:00
sktsqrl c0060f9ef8 Merge branch 'bba'
OS X support not impl
2012-07-21 12:53:46 -07:00
sktsqrl 601b9fc03b typo fix 2012-07-21 12:50:40 -07:00
sktsqrl 9442d334d8 bba: stub the os x impl 2012-07-21 12:21:55 -07:00
Scott Moreau 0e1348c839 Re-add hack to use SDL/SDL.h ifndef _WIN32.
The correct convention is to use #include SDL.h in all cases but we have to
do this so Externals/SDL builds, which isn't in the best shape.
2012-07-14 20:50:58 -06:00
Scott Moreau d34418100b Add periodic effects for haptic devices.
This adds support for drivers supporting sine, square and triangle
periodic haptic effects. This allows rumble to work on devices/drivers
supporting these effects, such as an xbox controller using the xpad
driver under Linux.
2012-07-12 19:47:17 -06:00
Scott Moreau 80c15f21b4 Add SDL2 support to build system.
Dolphin code already builds against SDL2 but the build system never
checks for SDL2, which is the what latest SDL is called now. SDL2
replaces SDL 1.3. This allows Dolphin to be build against SDL2, which
activates certain new features such as the haptic interface.
2012-07-12 19:47:17 -06:00
sktsqrl 8dd11bd1c0 fixes issue 5507 2012-07-11 20:54:50 -07:00
sktsqrl 1d44de53b5 reset samples_avail when stopping gc mic sampling. fixes Mario Party 7 2012-07-11 01:03:25 -07:00
sktsqrl a02cbedb0f bba: generate MAC if needed 2012-07-07 13:44:26 -07:00
Pierre Bourdon dd48b246b2 Reduce logging verbosity in the Linux BBA code 2012-07-05 01:30:37 +02:00
Pierre Bourdon 5db70f452b Remove the now unneeded recv sleep hack and fixes game exit by implementing a timeout on read(2) calls in the read thread. 2012-07-05 01:29:42 +02:00
sktsqrl bb84043de0 bba: (windows) fix games which stop and restart recving, such as logging off of PSO and loggin on again without stopping dolphin 2012-07-04 16:17:47 -07:00
sktsqrl 6cccbb91ec bba: implement recv buffer full interrupt
(windows) hopefully fix crashes from closing dolphin while recving
2012-07-04 16:02:05 -07:00
sktsqrl 9cff8316d2 code cleanup for win32/tap/eth 2012-07-04 16:02:04 -07:00
Pierre Bourdon 9a3dd778cb Preliminary BBA support for Linux. Assumes that a TAP interface named 'Dolphin' exists and is preconfigured. Contains some dirty hacks. 2012-07-04 04:34:40 +02:00
skidau c57640dfbd Implemented proper timing in the "No audio output" back-end. 2012-07-01 17:07:58 +10:00
sktsqrl 3cb6e4a864 Redo BBA once again. Now it works on windows, if crappily.
To use, install OpenVPN's TAP device driver. Then create a network bridge between the TAP and your device connected to the internet.
TODO:
proper overlapped read - can look at qemu impl
non-windows impl
2012-06-29 17:33:56 -07:00
skidau b4ec836aca Removed the offset if the ZCompLoc GREATER or LESS function is used. Fixes the invisible player in THPS3. 2012-06-29 18:47:49 +10:00
Pierre Bourdon b27d8ff0d6 Add a missing Invalidate() call in ~TextureCache(). Fixes a regression from 8bed27a3d1 causing textures to load improperly when a game is run two times in the same Dolphin instance 2012-06-27 20:20:28 +02:00
NeoBrainX 29e21026e9 Merge branch 'awesome-texcache-cleanups-and-fixes' 2012-06-21 22:21:34 +02:00
NeoBrainX 1c8cdebc22 Set g_texture_cache to NULL upon shutdown. Fixes a crash introduced in previous commits. 2012-06-21 14:21:16 +02:00
Pierre Bourdon fa2ee1f4a0 Only call CheckExceptions in dcbz in interpreter mode, use FL_ENDBLOCK for Jit64. Now RS3 demo disc does ingame with Jit and block_size = 1 2012-06-20 18:33:23 +02:00
NeoBrainX cc0523e55b TextureCache: Properly assign texture hashes when EFB to RAM is used without caching.
Fixes issue 5472.
2012-06-20 18:18:21 +02:00
NeoBrainX 7dabba5095 Fix a small bug. 2012-06-20 18:18:20 +02:00
NeoBrainX 043a85f8a6 Minor cleanup. 2012-06-20 18:18:19 +02:00
NeoBrainX 8a5abbddc4 Enable texture format overlay on the fly. 2012-06-20 18:18:18 +02:00
NeoBrainX 8bed27a3d1 Enable hires textures even when texture dumping is enabled.
Remove some deprecated code.
2012-06-20 18:18:17 +02:00
NeoBrainX 8d30ac462a Instead of invalidating texcache whenever the graphics configuration dialog gets opened, clean up textures on configuration changes. 2012-06-20 18:18:05 +02:00
Pierre Bourdon 30de244050 Check for DSI exceptions after a dcbz instruction. Fixes Rogue Squadron 3 in interpreter mode. 2012-06-20 12:15:22 +02:00
Pierre Bourdon e550623b11 Added a button to dump the FakeVMEM from the memory debugger if the game uses it 2012-06-19 13:51:29 +02:00
Pierre Bourdon 988bd53b5f Support ANSI color codes in the console logger for Linux/Mac 2012-06-19 12:11:15 +02:00
Pierre Bourdon 34606f34a9 Allow disassembly of FakeVMEM with the dolphin debugger 2012-06-19 11:57:57 +02:00
Pierre Bourdon 76a13604ef Optimize mtmsr by going to an exception exit only if EE are enabled and some
exceptions are pending.
2012-06-19 06:35:30 +02:00
Pierre Bourdon bfc797ede1 Removed an obsolete comment 2012-06-16 14:39:17 +02:00
Pierre Bourdon e1ddbdd214 Use WriteExceptionExit and implement the change for JitIL 2012-06-16 14:38:48 +02:00
Pierre Bourdon da4141aa9f Simulate ARAM DMAState correctly and check for external exceptions after
MTMSR is executed.

This commits fixes issue 617. WWE Day of Reckoning 1 and 2 are now playable
with Dolphin.

The changes are not implemented for JitIL yet.
2012-06-16 14:38:44 +02:00
NeoBrainX 227580d1a5 Remove "Disable Textures". 2012-06-11 23:35:46 +02:00
NeoBrainX 1dd6b978c1 Remove "Disable Lighting". 2012-06-11 23:30:20 +02:00
skidau 1d9ac2f6e1 Removed the check for changed JIT blocks before invalidation. Fixes the slow speed in Zelda: Ocarina of Time Master Quest.
Fixes issue 5454.
2012-06-09 18:48:15 +10:00
NeoBrainX b5ad382b07 Fast mipmaps deserves to die!! 2012-06-08 00:22:57 +02:00
NeoBrainX 0d577d886a Remove some TODOs. 2012-06-02 19:23:20 +02:00
skidau d74c50b942 OSX build fix for BPStructs. Thanks to pauldacheez for the fix. 2012-06-02 11:28:43 +10:00
skidau bb4c9e2205 Fixed "Failed to compile pixel shader" error when Per-Pixel Lighting is enabled. Thanks to slmpika for the fix. 2012-06-02 11:25:44 +10:00
skidau b0d271db3c Changed MOVDDUP to use MOVSD on non-SSE3 CPU's.
Added DMA wait time under DSP HLE mode.

Fixes Knockout Kings 2003.
2012-06-02 10:06:47 +10:00
skidau 99b7c91df5 Checked if dcbst instructions are preceded by dcbt. If it is, the game is prefetching memory into the data cache, and not loading new code. In these cases, the JIT cache will no longer be flushed. Fixes the frequent "Clearing code cache" issue in games like "The Last Story". 2012-05-31 22:09:33 +10:00
NeoBrainX 372e00632d Fix changing internal resolution via hotkeys (settings above 1.5x weren't accessible anymore before). 2012-05-29 13:11:28 +02:00
Pierre Bourdon bfde41895f Update the viewport when the scissor offset is changed
Fixes a bug with Another Code: R that was noticed when gx-optimization was
merged.
2012-05-27 08:03:26 +02:00
Glenn Rice 00f6b7b6ea Fix core dump on start up on linux. Thanks to degasus. 2012-05-26 08:24:18 -05:00
Pierre Bourdon 1efabea9b4 Fix compilation errors with g++4.7 2012-05-26 08:09:50 +02:00
skidau b79d8d9e10 Fixed the Cheat Search. Patch by nagosaki. 2012-05-26 15:45:58 +10:00
skidau 146b02615c Merge rodolfoosvaldobogado's zcomploc code (Graphic_Fixes branch) 2012-05-26 13:47:07 +10:00
Braden 82cb14e49b Actually fixes crashing on start up. 2012-05-26 13:21:30 +10:00
Braden cbc84ecd72 set variables equal to zero or false correctly. Should fix crashes on 32bit version. 2012-05-26 13:21:30 +10:00
Braden defb4c255d Allows analog sticks to be used with the TAS Input Open. 2012-05-26 13:21:30 +10:00
unknown 873437d58a Adds better support for the tas input. 2012-05-26 13:21:29 +10:00
nitsuja 9ea8d54343 remove some code that was made unused by rca287e7957c7 2012-05-26 13:19:57 +10:00
nitsuja 1f9586a8ba compile fix for my merging of rca287e7957c7 2012-05-26 13:19:57 +10:00
nitsuja 99b202fd2e savestate vertexmanager (base) since it affects VertexLoader::RunVertices which affects g_pVideoData 2012-05-26 13:18:08 +10:00
nitsuja ae242e5675 added some missing VideoBackendHardware data to savestates. I think this makes savestates more stable (fewer "GFX FIFO: Unknown Opcode" errors) in dual core mode.
also added some extra verification markers around here, to potentially give better info on future version mismatches
2012-05-26 13:18:08 +10:00
nitsuja 2be579e8ba fixed some graphics problems with loading savestates (for example, wrong colors on title screen of metroid prime 3) 2012-05-26 13:18:07 +10:00
nitsuja 19b0b02ad7 add some missing IPC HLE data to savestates 2012-05-26 13:14:15 +10:00
nitsuja c9059c708e save events in a safer way. the old way assumed that event type indices remain constant (they don't always), which could result in running arbitrary events or crashing upon loading. 2012-05-26 13:09:39 +10:00
nitsuja a81631b58e made savestates synchronous and immediate. this allows saving or loading while the emulator is paused, fixes issues where savestate hotkeys would get ignored if pressed too close together, might speed up savestates in some cases, and hopefully makes savestates more stable too.
the intent is to replace the haphazard scheduling and finger-crossing associated with saving/loading with the correct and minimal necessary wait for each thread to reach a known safe location before commencing the savestate operation, and for any already-paused components to not need to be resumed to do so.
2012-05-26 13:09:38 +10:00
nitsuja 108f69eaa9 to help movie sync, added some more wiimote data to savestates and disabled auto-reconnect. although I think this is basically just removing hacks and should be more correct, I don't know what side effects this could cause for normal players, so for now these changes ONLY take effect when an input movie is playing back or being recorded. 2012-05-26 12:59:08 +10:00
nitsuja d19c389246 clean up some savestate code 2012-05-26 12:59:08 +10:00
nitsuja 8ef75dac67 add missing SI device state to saves 2012-05-26 12:59:07 +10:00
nitsuja 5423bca79c add some more missing dsp ucode data to savestates 2012-05-26 12:59:07 +10:00
nitsuja 152351d96c implement PointerWrap::Do(std::map<unsigned int, T>) 2012-05-26 12:59:07 +10:00
nitsuja aa674a65f1 implement PointerWrap::DoLinkedList and use it to simplify saving CoreTiming events 2012-05-26 12:59:06 +10:00
skidau a54e72640f Merge branch 'misc-speedups'
* misc-speedups:
  fixed and reenabled and slightly optimized the JIT version of fcmpo/fcmpu.
  slightly more precise speed percent display (this is really minor)
  a small thread synchronization speedup for dual core mode. it's most noticeable in games where the CPU is running behind compared to the GPU.

Conflicts:
	Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp

The Fifo.cpp changes from rdaefb3b550e2 was not merged as there was no performance benefit.
2012-05-26 12:35:08 +10:00
Pierre Bourdon cf69e7ca8a Merge branch 'gx-optimization'
This branch reduces the number of useless state flushes in the video
emulation layer by checking whether a BP/XF change will have an effect
or not. Greatly reduces the number of GL calls per frame.

Thanks to degasus for his help!
2012-05-24 21:49:37 +02:00
NeoBrainX 4131ca8d38 Merge branch 'hires-tex-improvements' 2012-05-22 08:14:49 +02:00
Pierre Bourdon fee2d83f68 Fix a data endianness problem introduced by r7cccb4baa724. 2012-05-20 22:16:21 +02:00
Pierre Bourdon c95baf614d Avoid changing video state on useless BP writes
When a game writes the same value that was already configured to a BP
register, Dolphin previously flushed the GPU pipeline and reconfigured
the internal video state (calling SetScissor/SetLineWidth/SetDepthMode).

Some of these useless writes still need to perform actions, for example
writes to the EFB copy trigger or the texture preload registers (which
need to reload the texture from memory).
2012-05-20 20:56:03 +02:00
Pierre Bourdon 7cccb4baa7 Check if data was modified in LoadIndexedXF too 2012-05-19 10:54:40 +02:00
Pierre Bourdon b8d4d013f6 Compute the comparison size properly (transferSize is in u32, not in u8) 2012-05-18 23:27:02 +02:00
Pierre Bourdon 5a77cae2e3 Check if BP and XF changes actually change values before flushing 2012-05-18 23:13:53 +02:00
Matthew Parlane 1bc5f41e40 Fixes issue 5428. Thanks delroth. 2012-05-18 17:57:28 +12:00
skidau 5a8ad92302 Changed a JMP that needed to be a far JMP in JITIL. 2012-05-15 09:32:21 +10:00