Commit Graph

8111 Commits

Author SHA1 Message Date
Pierre Bourdon a18e8249a4 Merge pull request #79 from Tilka/nits
Silence some Windows compiler warnings
2014-02-18 14:19:38 +01:00
Pierre Bourdon 362dec9c7c Dolphin now builds on Linux with only Source/Core as include dir 2014-02-18 12:18:47 +01:00
Pierre Bourdon dc1db82f70 Fix Linux build 2014-02-18 12:09:38 +01:00
Lioncash 2afe215271 Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
Lioncash 3fd87a7636 Second and final pass of clearing out tabs. 2014-02-17 02:19:41 -05:00
Lioncash d9ce4a892b Remove the leftover folder for Wii IO bridge. Was removed in the mmio merge 2014-02-16 21:08:32 -05:00
Lioncash cd8196f5db Turns out Console.cpp and ConsoleListener.cpp were being built into the Linux builds too. Fixes the build. 2014-02-16 20:55:07 -05:00
Lioncash ca7bdf1d5d Remove the embedded Console from the possible logging options.
Note I do not mean the Logging window, but the console window.
It's literally rarely, if at all used, and offers less advantages over the built-in logging window (ie. it breaks on different locales: http://i.imgur.com/Cs92tQE.png)

This commit should remove all of the console logging.
2014-02-16 20:40:33 -05:00
Pierre Bourdon b18a33377d Merge pull request #55 from Sonicadvance1/GLExt-InitArray
Change OpenGL extension initialization in to a big array
2014-02-17 02:16:16 +01:00
Ryan Houdek 6b5f6ddaa1 Merge pull request #82 from lioncash/vertical-alignment
Fix some vertical alignments
2014-02-16 19:12:42 -06:00
Lioncash 6c4ee1753a Fix some vertical alignments
ie. uses spaces for alignment.
2014-02-16 20:12:05 -05:00
Ryan Houdek eae9d47c3c Change OpenGL extension initialization in to a big array
This is a reasonable chunk of changes and moves from multiple initialization functions in to an array initialization.
2014-02-16 17:40:34 -06:00
Tony Wasserka de5bfd0bce Merge pull request #37 from degasus/VideoCommonApiFixes
VideoCommon API cleanups
2014-02-16 22:08:28 +01:00
Pierre Bourdon 96a66ada2e Use a pointer instead of a non-const ref in MMIO::Mapping::Read now that compatibility with the old interface is not required anymore. 2014-02-16 19:22:40 +01:00
Pierre Bourdon 92f8d93e96 Remove the old MMIO access "interface". 2014-02-16 19:22:40 +01:00
Pierre Bourdon f8f14c83a3 MMIO: Port the SW CP/PE MMIOs to the new interface.
Migration is now complete.
2014-02-16 19:22:40 +01:00
Pierre Bourdon 5b5dfb384e MMIO: Port the VideoCommon PE MMIOs to the new interface. 2014-02-16 19:22:40 +01:00
Pierre Bourdon 4129b30494 MMIO: Port the VideoCommon CP MMIOs to the new interface (and provide framework for other video related mappings). 2014-02-16 19:22:40 +01:00
Pierre Bourdon bdedaa24a9 MMIO: Port the EXI MMIOs to the new interface. 2014-02-16 19:22:40 +01:00
Pierre Bourdon 353c145e64 MMIO: Port the IPC MMIOs to the new interface (and move the IOB handling to IPC). 2014-02-16 19:22:40 +01:00
Pierre Bourdon a7c1e0d0d7 MMIO: Port the AI MMIOs to the new interface. 2014-02-16 19:22:40 +01:00
Pierre Bourdon 191b447092 MMIO: Port the SI MMIOs to the new interface. 2014-02-16 19:22:40 +01:00
Pierre Bourdon f34651f48d MMIO: Port the DI MMIOs to the new interface. 2014-02-16 19:22:40 +01:00
Pierre Bourdon 63990787fd MMIO: Port the DSP/ARAM/AI MMIOs to the new interface. 2014-02-16 19:22:40 +01:00
Pierre Bourdon b7a0c34906 MMIO: Port the MI MMIOs to the new interface (and rework that module extensively). 2014-02-16 19:22:40 +01:00
Pierre Bourdon f1dba04be7 MMIO: Port the VI MMIOs to the new interface. 2014-02-16 19:22:39 +01:00
Pierre Bourdon a3f95c1e10 MMIO: Port the PI MMIOs to the new interface. 2014-02-16 19:22:39 +01:00
Pierre Bourdon 9fe58d28ba Starting point for the new MMIO interface
Design doc:
    https://docs.google.com/document/d/11qcGCWLne1wYvmtFaSrOKZt_vHxXrcWcZsdWJ-MJnyo/edit

The code is currently not used. Migration plan:
    1. Implement MMIO access via MMIO::Mapping in parallel to the current
       method.
    2. Implement all existing MMIO handlers via the new interface.
    3. Remove the old hwRead/hwReadWii/hwReadIOBridge code.
    4. Implement JIT optimizations for MMIO accesses.
2014-02-16 19:22:39 +01:00
Tillmann Karras 0d6ab2c658 Silence some Windows compiler warnings
by adding explicit type casts.
2014-02-16 16:59:45 +01:00
degasus e5eff6bc1a Remove slowdown warning
Now it's shown as "debug" which is disabled by default.
2014-02-16 12:57:17 +01:00
Ryan Houdek 9b57292395 Fix ARM build 2014-02-15 22:05:12 -06:00
Ryan Houdek 77851edc1b Fix the arbitrary exits. We have to make sure that the block links are cleared entirely. 2014-02-15 20:41:42 -06:00
Ryan Houdek 0a9fd93eda On block unlinking, wipe the address from the valid links. 2014-02-15 20:23:01 -06:00
Ryan Houdek d2a90e6eab If block linking isn't enabled then make sure there isn't a performance hit from getting a block number. 2014-02-15 20:23:00 -06:00
Ryan Houdek c5b8c65ddc Initialize linkStatus to false in the ARM JIT cores as well. 2014-02-15 20:23:00 -06:00
Ryan Houdek 22b86e64f5 redo 'jit: change our linking module to be able to handle arbitrary exit addresses' 2014-02-15 20:22:59 -06:00
degasus 647aad0a19 inline SetViewport into VertexShaderManager 2014-02-15 21:09:42 +01:00
Pierre Bourdon cbe7656b2f Merge pull request #42 from degasus/latencyFix
audio latency fix
2014-02-15 18:22:57 +01:00
Pierre Bourdon cf736cd5df Merge pull request #73 from lioncash/ArraySize-Cleanup
Kill off some usages of the ArraySize macro.
2014-02-15 18:22:28 +01:00
degasus d5f1f0d4a9 merge some common parts of Swap() into VideoCommon 2014-02-15 11:33:43 +01:00
degasus 3551259c7a use EFBRectangle for scissor rect
This one is backend independed. The backend should recalc such things on their own.
2014-02-15 11:33:43 +01:00
degasus 1f4219b5b4 move perfquery enable checks into videocommon (caller side) 2014-02-15 11:33:43 +01:00
degasus 5a660c27bc rename UpdateViewport to SetViewport like all others setters in RenderBase.h 2014-02-15 11:33:43 +01:00
degasus 3cd6918dec fix ogl video config crash
This will happen when playing on any other backend than ogl which have a non-trival GLInterface::GetMode() method.
2014-02-15 11:33:43 +01:00
degasus e5318d2624 move shared parts from VertexManager::vFlush into VideoCommon 2014-02-15 11:33:43 +01:00
Lioncash 655d22512b Kill off some usages of the ArraySize macro.
This required the use of std::array in some cases.
2014-02-15 02:43:54 -05:00
Matthew Parlane 48798d8d34 Merge pull request #70 from lioncash/fifo-unsigned
Kill off some casting in the FifoPlayer.
2014-02-15 20:42:15 +13:00
Lioncash 867d0f01a2 Remove #if 0 statement in lfd() in Jit64/Jit_LoadStoreFloating.cpp 2014-02-14 23:46:09 -05:00
Lioncash 49d6be26cd Remove dead else branch in StoreFromRegister() in Jit64/JitRegCache.cpp 2014-02-14 23:43:51 -05:00
Lioncash d42e8817a0 Clean out some old left-behind quantizer stuff in Jit64/Jit_LoadStorePaired.cpp and Jit64/Jit_SystemRegisters.cpp. 2014-02-14 23:32:37 -05:00
Lioncash c78faafeae Kill off some silly casting in the FifoPlayer.
Also makes more sense conceptually, since it's not like we'll ever have negative frames.
2014-02-14 22:07:12 -05:00
Jordan Woyak d6f6672522 Kill auto usage in CISOBlob.cpp per request. 2014-02-13 16:09:58 -06:00
Jordan Woyak cec8ac20fc Fixed issue 7020. CISO >4GB failure. Caused by integer overflow. 2014-02-13 15:47:42 -06:00
degasus 9e56b1d343 Disable framerate correction for OpenAL
OpenAL itself stretch the time on slowdowns, so the Mixer isn't allowed also to change the rate.
2014-02-13 13:22:29 +01:00
Tillmann Karras 404624bf0b Turn loops into range-based form
and some things suggested by cppcheck and compiler warnings.
2014-02-13 09:05:50 +01:00
Tillmann Karras 2ff794d299 Fix some warnings 2014-02-13 09:02:43 +01:00
Matthew Parlane 88526be3b5 Merge pull request #50 from Parlane/inifile_tidy
Fix IniFile to use string& instead of char*
2014-02-13 19:04:27 +13:00
Matthew Parlane 3fe05e0a9f Fix IniFile to use string& instead of char*
Also removes .c_str() usages where found.
2014-02-13 17:06:30 +13:00
Scott Mansell 7062cf8657 Interpeter: Fixed ConvertToDouble to match the manual.
Also added some documntation comments.
2014-02-12 23:12:17 +01:00
Scott Mansell cf5938c4df x64Emitter: Fix the PSUBQ instruction's opcode 2014-02-12 23:12:17 +01:00
Scott Mansell 1eb8168488 x64Emitter: Add the xmm, xmm form of PSRLQ instruction. 2014-02-12 23:12:16 +01:00
Tillmann Karras 1f34ed2c25 Re-enable non-IEEE mode support 2014-02-12 23:12:16 +01:00
Tillmann Karras f6897039c7 Interpreter: fix float conversions
Can't use simple casting, otherwise we get the same problems as in Jit64.
2014-02-12 23:12:15 +01:00
Tillmann Karras db196d8c5b Jit64[IL]: fix float conversions
Floating-point is complicated...

Some background: Denormals are floats that are too close to zero to be
stored in a normalized way (their exponent would need more bits). Since
they are stored unnormalized, they are hard to work with, even in
hardware.  That's why both PowerPC and SSE can be configured to operate
in faster but non-standard-conpliant modes in which these numbers are
simply rounded ('flushed') to zero.

Internally, we do the same as the PowerPC CPU and store all floats in
double format. This means that for loading and storing singles we need a
conversion. The PowerPC CPU does this in hardware. We previously did
this using CVTSS2SD/CVTSD2SS. Unfortunately, these instructions are
considered arithmetic and therefore flush denormals to zero if non-IEEE
mode is active. This normally wouldn't be a problem since the next
arithmetic floating-point instruction would do the same anyway but as it
turns out some games actually use floating-point instructions for
copying arbitrary data.

My idea for fixing this problem was to use x87 instructions since the
x87 FPU never supported flush-to-zero and thus doesn't mangle denormals.
However, there is one more problem to deal with: SNaNs are automatically
converted to QNaNs (by setting the most-significant bit of the
fraction). I opted to fix this by manually resetting the QNaN bit of all
values with all-1s exponent.
2014-02-12 23:12:15 +01:00
Tillmann Karras c25c4a6e20 x64: add support for some x87 instructions 2014-02-12 22:45:01 +01:00
ExtremeDude2 5e0b8b3477 Rename "JITIL experimental recompiler"
This changes it to "JITIL Recompiler (experimental)"
2014-02-12 10:21:02 -05:00
degasus bbd58b8f6a change AI sampling rate based on framelimit 2014-02-11 14:53:53 +01:00
degasus ca9fd64df9 controll the interpolation frac by the fifo size 2014-02-11 14:35:19 +01:00
degasus d20dbbc92f audiocommon: sync mixer by fifo instead of estimate values 2014-02-11 07:25:58 +01:00
degasus 2956ffa5be audiocommon: remove 1:1 interpolation
The usual one is 32->48 khz interpolation. So there is no need in a special 1:1 interpolation only for performance.
2014-02-11 07:25:58 +01:00
Tillmann Karras 3218f6cca8 x64: drop instructions that don't exist
These instructions don't exist in hardware although I agree that they
would be useful for our purposes ;)
2014-02-11 05:22:53 +01:00
lioncash d2038049f5 Replace all include guard ifdefs with "#pragma once" 2014-02-10 18:07:16 -05:00
degasus 532cd44003 Use float to calculate the fps/vps
This will round internally, so 59.99 fps will now be shown as 60 fps.
2014-02-10 16:08:03 +01:00
degasus a51b5f7815 Drop framelimit by fps
Framelimit by fps can't be done per coretiming
2014-02-10 16:08:03 +01:00
degasus f7dc918057 Throttle by coretiming event instead of VI
VI isn't called as regular as we want to, so we have to create a new throttling event called regularly by coretiming.

Atm we throttle every 1 ms when we are too fast and skip throttling when we lack 40ms (to avoid fast boosts after slowdowns)
2014-02-10 16:08:03 +01:00
lioncash f5408c3f52 Clarify an if statement in NetPlayClient.cpp. See: https://github.com/LaurentGomila/SFML/issues/26.
This was simply an error in documentation. It actually returns an sf::Socket::Status enum value as a result.
2014-02-10 09:26:29 -05:00
Matthew Parlane 32bfcc034f Some tidy up of sprintf to StringFromFormat
Includes a small fix to SetupWiiMemory
2014-02-10 17:25:18 +13:00
Ryan Houdek 8d25e12085 Merge pull request #54 from lioncash/cleanup
Cleanup mismatching struct/enum indentations.
2014-02-09 19:26:15 -06: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
Lioncash fc30597f7a Remove function Xchg from SWStatistics.cpp. Like the one previous, this can be replaced with std::swap 2014-02-09 19:55:44 -05:00
Lioncash ebb48d019e Clean up some struct indentations
Also cleaned up the indentations of some variable declarations.
2014-02-09 19:40:11 -05:00
Ryan Houdek 0030784cbf Merge pull request #38 from Sonicadvance1/GLExt-lessfail
Cleanup GLExtensions on how it fails.
Fixes Mesa with buffer_storage patches and no direct_state_access.
2014-02-09 17:48:34 -06:00
Lioncash 40182a48a5 Cleanup enum indentations. 2014-02-09 16:16:10 -05: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
Jules Blok 2063eddfa3 ForceFeedback: Fixed scoping bug
Previous code relied on a destroyed variable to still be valid.
2014-02-09 17:04:05 +09:00
Jules Blok 992b91c082 ForceFeedback: Don't depend on the force_type_name index.
Instead use a for-each loop, compare GUIDs and save the name pointers.
2014-02-09 17:01:45 +09:00
Jules Blok c6d650c058 ForceFeedback: Add OSX rumble support 2014-02-09 17:01:45 +09:00
Jules Blok 02a95c139e ControllerInterface: Move DInput ForceFeedback support to a seperate class 2014-02-09 17:01:38 +09:00
Ryan Houdek 6a5cd02629 Cleanup GLExtensions on how it fails.
If there is an issue with a reported extension, disable it instead of failing out entirely.
Fixes an issue with buffer_storage that I had overlooked as well.
2014-02-08 19:50:12 -06:00
Ryan Houdek 9f91769def Improve GLExtensions compile time.
This changes from using logical and to bitwise and, which causes the compile time to drop from an absurd amount of time to around five seconds on my
crappy laptop.
2014-02-08 15:04:17 -06:00
Matthew Parlane ebff7974c3 Some tidy up of sprintf to StringFromFormat 2014-02-08 14:32:48 +13:00
Matthew Parlane 64e01ec763 Merge pull request #48 from Parlane/SetupWiiMemory_tidy
Tidy up SetupWiiMemory
2014-02-08 00:22:24 +13: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
Matthew Parlane 6b980cbf30 Tidy up SetupWiiMemory 2014-02-07 19:00:34 +13: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
degasus ab124b96c4 Atomic Stores / Loads 2014-02-07 00:20:10 +01:00
degasus 5c646d334a Pulseaudio: rewrite the pa backend with the async api
The default async api allow us to set some latency options. The old one (simple API) was the lazy way to go for usual audio where latency doesn't matter.

This also streams audio, so it should be a bit faster then the old one.
2014-02-07 00:20:10 +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 4c6d4cc270 Merge pull request #41 from Parlane/printf_warnings
Give StringFromFormat a printf format attribute.
2014-02-07 00:18:12 +01:00