Commit Graph
100 Commits
Author SHA1 Message Date
Pierre Bourdon 002c8f45ed Merge pull request #58 from lioncash/reppin-pragma-city
Replace all include guard ifdefs with "#pragma once"
2014-02-11 01:38:07 +01:00
Pierre Bourdon a0a65a2906 Merge pull request #44 from degasus/throttling
CPU Throttling by CoreTiming
2014-02-10 16:30:05 +01:00
Pierre Bourdon fa038af0c1 Merge pull request #57 from lioncash/net-clarify
Clarify an if statement in NetPlayClient.cpp.
2014-02-10 15:44:36 +01:00
Pierre Bourdon 28b5c8be47 Merge pull request #53 from lioncash/remove-another-xchg
Remove function Xchg from SWStatistics.cpp.
2014-02-10 02:01:21 +01:00
Pierre Bourdon e59f770ccb Revert "Merge pull request #49 from Parlane/sprintf_tidy"
Change broke the build on Debian stable.

This reverts commit 28755439b3, reversing
changes made to 64e01ec763.
2014-02-09 16:14:13 +01:00
Pierre Bourdon 9da6900595 Merge pull request #12 from Armada651/osx_rumble
OS X Rumble Support
2014-02-09 16:10:07 +01:00
Pierre Bourdon 323b139e37 Merge pull request #51 from Linktothepast/master
Gameini update for FINAL FANTASY FABLES: Chocobo's Dungeon.
2014-02-08 12:50:42 +01:00
Pierre Bourdon 4f97666bfd Merge pull request #20 from degasus/pulseaudioRewrite
Pulseaudio: rewrite the pa backend with the async api
2014-02-07 11:51:25 +01:00
Pierre Bourdon 70e2ed320d Revert "Merge pull request #47 from lioncash/remove-stringfromint"
Breaks Android build.

This reverts commit 12d026c544, reversing
changes made to 6d678490f5.
2014-02-07 00:26:33 +01:00
Pierre Bourdon 12d026c544 Merge pull request #47 from lioncash/remove-stringfromint
Remove function StringFromInt from StringUtil.cpp/.h. C++11 has std::to_string for this now.
2014-02-07 00:19:15 +01:00
Pierre Bourdon 6d678490f5 Merge pull request #46 from Sonicadvance1/Android-removeDLCache
Remove Cache DL option from Android UI
2014-02-07 00:18:40 +01:00
Pierre Bourdon 4c6d4cc270 Merge pull request #41 from Parlane/printf_warnings
Give StringFromFormat a printf format attribute.
2014-02-07 00:18:12 +01:00
Pierre Bourdon 8ad6f154a4 Merge pull request #45 from Sonicadvance1/GLInterface-typo
Fix a typo in EGL.h for setting mode.
2014-02-06 23:40:06 +01:00
Pierre Bourdon 9a24ba343b Merge pull request #34 from lioncash/geckocode-foreach
Change some for+iterator loops in GeckoCode.cpp and GeckoCodeConfig.cpp into foreach loops.
2014-02-05 17:07:40 +01:00
Pierre Bourdon 59e2179172 Merge pull request #35 from lioncash/videocommons-kill-xchg-in-statistics
[VideoCommon] Eliminate the function Xchg in Statistics.cpp. std::swap does the same thing.
2014-02-04 16:40:25 -08:00
Pierre Bourdon 158de304a8 Merge pull request #30 from Tilka/nits
Jit64IL: nits
2014-02-04 01:44:40 -08:00
Pierre Bourdon 36f6ec8b89 Merge pull request #27 from delroth/swcp-struct-fix
SWCommandProcessor: fix the CPReg structure fields
2014-02-03 16:42:05 -08:00
Pierre Bourdon eb457c88a7 Merge pull request #28 from Tilka/warnings
Silence warning
2014-02-03 16:39:50 -08:00
Pierre Bourdon 8ab6ed4b49 SWCommandProcessor: fix the CPReg structure fields
This structure fields should match byte-to-byte the layout of MMIO registers:
it is addressed using the MMIO reg address when doing a CP MMIO read. This was
unfortunately not the case, causing CP reads to be mostly broken with the
software renderer.
2014-02-04 01:16:14 +01:00
Pierre Bourdon 3363b396af Merge pull request #23 from lioncash/sorta-large-input-cleanup
Larger cleanup to input-related source files (this time using unique_ptr).
2014-02-02 15:11:15 -08:00
Pierre Bourdon 97119d0e89 Merge pull request #18 from lioncash/small-jit-macro-cleanup
Move two macros (JITDISABLE and INSTRUCTION_START) into JitBase.h.
2014-02-01 09:29:00 -08:00
Pierre Bourdon 5a95b9ec2e Merge pull request #21 from degasus/master
VertexShaderGen: fix D3D posmtx attribute regression by VertexLoaderCleanup merge
2014-02-01 02:40:17 -08:00
Pierre Bourdon 91fc1d7438 Merge pull request #19 from degasus/buildbot_try_branches
buildbot: reset to upstream known revision
2014-01-31 01:04:26 -08:00
Pierre Bourdon b5b02de663 Merge pull request #16 from lioncash/core-timing-string-fix
Fix an unused variable within function GetScheduledEventsSummary() in CoreTiming.cpp
2014-01-30 13:28:58 -08:00
Pierre Bourdon 72cc6431e5 Merge pull request #9 from Sonicadvance1/Fix-AndroidRender
[Android] Fix Android not calling eglSwapBuffers
2014-01-29 15:08:32 -08:00
Pierre Bourdon 23e64001dd Merge pull request #10 from Sonicadvance1/Fix-AdrenoBlitRotate
[Android] Fix Adreno v53 development drivers rotating framebuffer
2014-01-29 14:43:29 -08:00
Pierre Bourdon e358cb92fd Merge pull request #7 from lioncash/readme-markdown
Use monospace at points in the Readme.md, also use https in dolphin-emu.org links.
2014-01-29 08:20:43 -08:00
Pierre Bourdon a561c436fc Change the default GFX backend from D3D11 to OGL.
Rationale and discussion:
    https://ml.dolphin-emu.org/archives/dolphin-dev/2014-January/000003.html
2014-01-14 21:57:32 +01:00
Pierre Bourdon 45f74840d6 Do not fastmem addresses that were constant propagated 2014-01-09 08:28:45 +01:00
Pierre Bourdon ed67d1ae2f Fix the Zelda: The Wind Waker heat effect glitch.
Let's talk a bit about this bug. 12nd oldest bug not fixed in Dolphin, it was a
lot of fun to debug and it kept me busy for a while :)

Shoutout to Nintendo for framework.map, without which this could have taken a
lot longer.

Basic debugging using apitrace shows that the heat effect is rendered in an
interesting way:
* An EFB copy texture is created, using the hardware scaler to divide the
  texture resolution by two and that way create the blur effect.
* This texture is then warped using indirect texturing: a deformation map is
  used to "move" the texture coordinates used to sample the framebuffer copy.

Pixel shader: http://pastie.org/private/25oe1pqn6s0h5yieks1jfw

Interestingly, when looking at apitrace, the deformation texture was only 4x4
pixels... weird. It also does not have any feature that you would expect from a
deformation map. Seeing how the heat effect glitches, this deformation texture
being wrong looks like a good candidate for the problem. Let's see how it's
loaded!

By NOPing random calls to GXSetTevIndirect, we find a call that when removed
breaks the effect completely. The parameters used for this call come from the
results of methods of JPAExTexShapeArc objects. 3 different objects go through
this code path, by breaking each one we can notice that the one "controlling"
the heat effect is the one at 0x81575b98.

Following the path of this object a bit more, we can see that it has a method
called "getIndTexId". When this is called, the returned texture ID is used to
index a map and get a JPATextureArc object stored at 0x81577bec.

Nice feature of JPATextureArc: they have a getName method. For this object, it
returns "AK_kagerouInd01". We can probably use that to see how this texture
should look like, by loading it "manually" from the Wind Waker DVD.
Unfortunately I don't know how to do that. Fortunately @Abahbob got me the
texture I wanted in less than 10min after I asked him on Twitter.
AK_kagerouInd01 is a 32x32 texture that really looks like a deformation map:
http://i.imgur.com/0TfZEVj.png . Fun fact: "kagerou" means "heat haze" in JP.

So apparently we're not using the right texture object when rendering! The
GXTexObj that maps to the JPATextureArc is at offset 0x81577bf0 and points to
data at 0x80ed0460, but we're loading texture data from 0x0039d860 instead.

I started to suspect the BP write that loads the texture parameters "did not
work" somehow. Logged that and yes: nothing gets loaded to texture stage 1! ...
but it turns out this is normal, the deformation map is loaded to texture stage
5 (hardcoded in the DOL). Wait, why is the TextureCache trying to load from
texture stage 1 then?!

Because someone sucked at hex.

Fixes issue 2338.
2014-01-05 11:33:15 +01:00
Pierre Bourdon ea6fd58b97 Use an unordered_set to track FIFO write adresses
Reduces CheckGatherPipe CPU consumption by 40%.
2013-11-07 03:22:32 +01:00
Pierre Bourdon 954be9e2d9 Handle BP mask register better to avoid useless BP writes (causing flushes)
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2013-11-07 03:06:53 +01:00
Pierre Bourdon 184390d8d7 Fix the icon used for Dolphin on windows 2013-09-23 01:41:44 +00:00
Pierre Bourdon 2395725200 We're not stable anymore :( 2013-09-22 16:28:09 +02:00
Pierre Bourdon c25be031fc Dolphin 4.0 release 2013-09-22 16:00:57 +02:00
Pierre Bourdon 0c3cb5066e New installer for 4.0 2013-09-22 16:00:57 +02:00
Pierre Bourdon 323ecdb772 Ship vcomp100.dll with Dolphin 2013-09-22 16:00:56 +02:00
Pierre Bourdon 1f95a294cd Add the new 'Clean' themes from MaJoR and default to Clean by changing the name of the config key (yes, hack) 2013-09-22 16:00:56 +02:00
Pierre Bourdon 196953c50a Use the new Dolphin icon 2013-09-22 16:00:39 +02:00
Pierre Bourdon 91c0e02609 Don't require running Dolphin in the directory that contain Languages/ on Windows 2013-09-21 21:17:47 +02:00
Pierre Bourdon 86f6e8cc1e Better fix for issue 6614: ISOProperties should store integer settings for PHack booleans. INIFile is stupid, please kill it with fire. 2013-09-18 12:33:57 +02:00
Pierre Bourdon 7aa98a3830 Fix loading of the 'projection hack enabled' gameini setting
Fixes issue 6614.
2013-09-18 12:23:46 +02:00
Pierre Bourdon ec9c395f4f Add WBFS to the file extensions supported by Dolphin on OSX 2013-09-17 16:50:44 +02:00
Pierre Bourdon e34d8aee1d Add * to the characters leading a verbatim line (used in Gecko codes comments) 2013-09-17 16:50:44 +02:00
Pierre Bourdon f0fc611f15 Add a hacky check for text file size in ReadFileToString. Fixes issue 6455. 2013-09-16 06:57:44 +02:00
Pierre Bourdon 037199c326 Look for portable.txt in the exe directory and activate portable mode if it exists 2013-09-16 05:46:07 +02:00
Pierre Bourdon 2c350a5e6b Fix INIFile ignoring the last line of files 2013-09-16 05:28:14 +02:00
Pierre Bourdon 24e9aedc14 Merge branch 'global-user-directory'
Please read https://wiki.dolphin-emu.org/index.php?title=Controlling_the_Global_User_Directory
for documentation about this feature.

Thanks to neobrain and RachelB for their work on this change, and thanks to
everyone who helped test it.
2013-09-14 19:24:27 +02:00
Pierre Bourdon 4ef5624f1f Change the name of INI options for memcard paths and NAND path to make migrating User directory from non-global to global easier 2013-09-14 17:46:41 +02:00
Pierre Bourdon 501eafb407 Overlay local gameinis over global gameinis instead of copying.
Huge megacommit because a lot of things needed to be modified to make this
possible.
2013-09-14 17:46:41 +02:00
Pierre Bourdon cf4c39d2be IniFile: Support extending the list of loaded keys and sections with data from other ini files.
Changes a lot of parsing code which previously was not aware of the notion of
key/value, and operated only with raw lines. Now key/value is the default and
lines are handled as raw only if they do not contain =, or they start with $ or
+ (for Gecko/AR compatibility).
2013-09-14 06:08:31 +02:00
Pierre Bourdon aa202c2e21 Move global gameinis from User to Sys. Get rid of SHARED_USER. 2013-09-14 06:08:30 +02:00
Pierre Bourdon 86e765f3eb Move Themes/ from User to Sys. Only Gameinis remain. 2013-09-14 06:08:30 +02:00
Pierre Bourdon 91a758b342 Move TextureDecoder.cl from User to Sys 2013-09-14 06:08:30 +02:00
Pierre Bourdon c3eec379df Move global User/Wii to Sys/Wii 2013-09-14 06:08:30 +02:00
Pierre Bourdon e7213ca4b1 Overlay the user Shaders/ over the shared one to avoid copying files 2013-09-14 06:08:30 +02:00
Pierre Bourdon 6bdb6585d6 Overlay the user Maps/ over the shared one to avoid copying files 2013-09-14 06:08:29 +02:00
Pierre Bourdon b587af3ea3 Change the initial user directory creation to stop special casing Windows 2013-09-14 06:08:29 +02:00
Pierre Bourdon 44066326ff Hack the gettext detection a bit to fix translations not working on OSX buildbot builds 2013-09-12 18:22:31 +02:00
Pierre Bourdon e29de302a6 Move the CFrame::ClosePages call from ~CFrame to CFrame::OnClose 2013-09-09 18:49:10 +02:00
Pierre Bourdon 380b780dd1 Leak an object when quitting Dolphin to try and fix issue 6546 2013-09-09 18:44:21 +02:00
Pierre Bourdon 40f848d279 Update Gameini ratings from the Wiki 2013-09-08 01:33:34 +02:00
Pierre Bourdon 7acee71c0c Move swapModeTable to a local variable, avoids shader uid generation writing to it 2013-09-04 23:23:29 +02:00
Pierre Bourdon 175707739e Move LightingUidData to the LightingShaderGen header 2013-09-04 23:23:29 +02:00
Pierre Bourdon 751c2e69f6 Add a link to our documentations guides in Dolphin 2013-08-31 10:31:43 +02:00
Pierre Bourdon 6428137ca4 Set XAudio2 as the default audio backend 2013-08-30 19:12:46 +02:00
Pierre Bourdon 2ab7fc10da Rollback "DSP on Thread" to only affect LLE.
Keep the threading code in AX HLE in case we want/need to enable it again at
some point. Not too confident about refactoring it right now.
2013-08-30 09:14:30 +02:00
Pierre Bourdon 3968a5d169 Merge branch 'wii-network'
210 commits, more than 2 years of work, one of the most awaited features for
Dolphin.

Thanks a lot to Matthew Parlane and Shawn Hoffman for their work on
wii-network.

There are still a few rough edges, expect some bugs, maybe some regressions.
Please do as much testing as you can.
2013-08-27 23:52:43 +02:00
Pierre Bourdon 0e8f9d8abc Fix a crash in the Wiimote registration code
The code was hitting undefined behavior, causing crashes when starting a Wii
game with Dolphin compiled with gcc >= 4.8.

Might introduce some slight change in the Wiimote activation logic.

Fixes issue 6526.
2013-08-25 21:30:43 +02:00
Pierre Bourdon 0dd98d62fc Remove 'pragma optimize' in fakepoll.h - if optimizations cause breakage the breakage should be fixed instead of disabling opts 2013-08-25 03:04:43 +02:00
Pierre Bourdon 73be79f4e0 Fix trailing whitespaces in all files where some were added 2013-08-25 02:49:58 +02:00
Pierre Bourdon 987f4945b5 Fix indentation issues 2013-08-25 02:41:02 +02:00
Pierre Bourdon 9303b57db1 Refactor VideoCommon/OnScreenDisplay.
Use strings internally, use a multimap and std::function for callbacks (instead
of a flat vector + loop over the vector to find the right callback type), fix
coding style issues. Simplify MainAndroid code a bit.
2013-08-24 02:13:54 +02:00
Pierre Bourdon 9deb63a312 Simplify a few OSD::AddMessage calls now that this function accepts std::string objects 2013-08-24 01:44:16 +02:00
Pierre Bourdon 367d6dfd65 Add an OSD message when taking screenshots in D3D9/D3D11
Fixes issue 6486.
2013-08-24 01:41:17 +02:00
Pierre Bourdon 20e82ec08c Fix the fix to AVX support detection
Should be xgetbv(0) & 6 == 6, not just & 6. Thanks to tueidj for pointing this
out.
2013-08-22 01:08:14 +02:00
Pierre Bourdon 5f0c892ed0 Remove outdated documentation files 2013-08-22 01:05:29 +02:00
Pierre Bourdon a3a4f21284 Remove some spurious endlines at the end of log messages 2013-08-21 00:19:50 +02:00
Pierre Bourdon 377202b9f6 Correctly check for AVX support in x64CPUDetect
It's not enough to check for the CPUID bit to know if AVX is supported since
AVX requires OS support (new set of registers == more registers to be saved
when context switching). If the OS does not support, the cpuid bit will still
be set but using YMM registers will cause an illegal exception fault.
2013-08-20 01:25:10 +02:00
Pierre Bourdon 5c3dcc50bc Add an INI option to not loop FIFO playback and stop emulation when it's done 2013-08-19 01:39:00 +02:00
Pierre Bourdon d6fe9c639b Add an OSD message to remind the user if Shader Debugging is enabled
Fixes issue 6497.
2013-08-17 23:48:06 +02:00
Pierre Bourdon c3065ecb66 Fix compatibility with the SDL2.0 release.
SDL2.0 removed SDL_HAPTIC_SQUARE because of ABI issues (see comment #7 on issue
6491 by Ryan C. Gordon from the SDL project). It will be reintroduced again in
2.1, so keep the code and #ifdef it away.
2013-08-15 22:18:40 +02:00
Pierre Bourdon c6d8d52041 Fix a warning introduced by the recent netplay UI changes 2013-08-15 15:05:20 +02:00
Pierre Bourdon 7622d5b354 Only call SetGenerationMode from BPWritten if the cull mode changed.
Should decrease CPU usage on the GPU thread by a bit in the OGL backend.
2013-08-15 00:26:03 +02:00
Pierre Bourdon e60e50a198 Respect ShouldEmulate() in PerfQuery implementations for DX11 and OGL (ugly implem, but the current state of VideoCommon does not allow much better) 2013-08-14 23:18:00 +02:00
Pierre Bourdon c322bedf0e Enable performance queries for Super Mario Sunshine 2013-08-14 23:18:00 +02:00
Pierre Bourdon 26f58e1ba5 Add an option to enable performance queries in gameini files, disable it by default 2013-08-14 23:16:46 +02:00
Pierre Bourdon ffdd79df36 Move VideoBackendBase from Common to VideoCommon 2013-08-14 23:16:46 +02:00
Pierre Bourdon 0ecc498585 Sync gameini ratings from the wiki. Fixes issue 6477. 2013-08-11 18:42:18 +02:00
Pierre Bourdon 0aa9308006 Revert "Fix a memory leak in ExpressionParser.cpp"
This reverts commit cce809ac90.

The code was actually correct: "expr" is never allocated when an error is
returned. This means when the expression parser fails, deleting "expr" means
deleting an uninitialized pointer.
2013-08-09 10:46:11 +02:00
Pierre Bourdon 9ea01aa7a8 Use a multibyte-neutral codepage when calling *printf on Windows.
More explanation in code comments.

Fixes issue 4046.
2013-08-09 00:17:48 +02:00
Pierre Bourdon 28e12a4198 Change the OSX CFBundleIndentifier to use the proper domain name 2013-08-03 18:37:57 +02:00
Pierre Bourdon 8529addcc6 Removing the 'Clearing code cache' OSD message in Release builds 2013-07-29 09:56:50 +02:00
Pierre Bourdon 22c80e1dc2 Fix ICC profiles in some of our PNGs (ic_drawer, Dolphin icon).
Also keep a PNG version of bin2c'd resources in order to make these kind of
changes easier in the future.

Fixes recent versions of libpng complaining loudly about our images.
2013-07-07 02:40:59 +02:00
Pierre Bourdon 9b128e9347 Disable LPF filtering in new-ax-hle
The current implementation is broken and this is a non critical feature.

Fixes new-ax-hle regression in Super Monkey Ball.
2013-07-06 14:35:19 +02:00
Pierre Bourdon 7b40874309 Implement AX command 0x11 (SET_OPPOSITE_LR) 2013-07-06 14:35:19 +02:00
Pierre Bourdon 0ca7ea6c3f D3D11: Fix glitched polygon edges when MSAA is enabled (this time without breaking OpenGL) 2013-04-07 20:58:48 +02:00
Pierre Bourdon 27e08f66b5 Fix build on OS X 2013-04-02 21:15:04 +02:00
Pierre Bourdon eb06c62a6e Merge branch 'new-ax-hle'
GC and Wii games using the AX UCode should now work almost perfectly with DSP
HLE. If you get any issue, make sure the "DSP on dedicated thread" option is
disabled, and try setting framelimit to "Audio".

As a side effect, DSP HLE should not desync anymore (making it usable in
netplay and TAS) with AX games.

Conflicts:
	Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.h
	Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp
2013-04-02 21:00:44 +02:00
Pierre Bourdon 9860137291 Initialize the audiocommon mixer on the first write to DSPCR, even if DSP is not enabled. Fixes issue 6192. 2013-04-02 20:42:07 +02:00