Commit Graph

17774 Commits

Author SHA1 Message Date
Stenzek 3372bfa6ab D3D12: Remove feature level checks
We don't create a device below feature level 11_0 anyway, so no point
checking, we can just assume support.
2016-05-08 12:08:25 +10:00
Stenzek 063761fbd2 D3D12: Don't add padding when allocating within empty StreamBuffer
Resources are already aligned to an address larger than any of our
requirements, anyway.
2016-05-08 12:08:25 +10:00
Stenzek 0c27aae7d3 D3D12: Improve output of shader compiler errors
These were completely broken due to lack of c_str(). We also output
warnings now as well (these can be useful).
2016-05-08 12:08:25 +10:00
Stenzek acfa93372e D3D12: Refactoring and cleanups
Moves render target restoring to RestoreAPIState, this also means no need
to manually restore after allocating in a buffer that caused execution,
because the manager restores it for us.

Remove a method that wasn't used from D3DUtil.cpp, and fixes a few errors
in EFB poke drawing.
2016-05-08 12:08:25 +10:00
Stenzek 7ec1fce741 D3D12: Fix error with >1xIR/MSAA EFB depth access 2016-05-08 12:08:25 +10:00
Stenzek ac1cd8279b D3D12: Implement GPU-based bounding box 2016-05-08 12:08:25 +10:00
Stenzek 32599559db D3D12: Use helper method for binding EFB render targets 2016-05-08 12:08:25 +10:00
Stenzek 984da2d624 D3D12: Use signed ints for viewport origin
Fixes black screen when crop is enabled.
2016-05-08 12:08:25 +10:00
Stenzek a8c4d6c242 D3D12: Allow large texture uploads (>64MiB) by using temporary buffer
This is not optimal, but for those texture packs with extremely large
images, it won't crash. Releasing after the frame completes is an option
too, however, there is the risk of running out of memory by doing this.
2016-05-08 12:08:25 +10:00
magumagu cfce7a2aab Fix IPCHLE to make NeoGamma work.
NeoGamma is explicitly sending a nonsense command to the Bluetooth module;
make sure to respond with something sane.

Fixes issue 9470, a regression from PR #1856.
2016-05-07 11:37:21 -07:00
Matthew Parlane 1e1fce1a03 Merge pull request #3815 from degasus/scm
SCM: Use std::string.
2016-05-07 20:24:59 +12:00
Matthew Parlane 461a48f8e3 Merge pull request #3820 from Lionel07/netplay-elf-title-regression
Fix regression for .elf files in Netplay Game Selector
2016-05-07 19:47:13 +12:00
Corwin Mcknight 453d7777e5 Fix regression for .elf files in Netplay Game Selector
Rearranged code to look nicer, as well
2016-05-06 19:41:40 -07:00
Matthew Parlane 48237b38e8 Merge pull request #3817 from Lionel07/qt-mac
[UI] Enable Qt on Mac
2016-05-06 13:28:11 +12:00
Corwin McKnight 0368fc3837 [Qt]: Enable Qt on Mac OSX.
* Enables Qt on OSX
* Makes it look pretty
2016-05-05 17:03:53 -07:00
Matthew Parlane 1cfeacd5b6 Merge pull request #3793 from mathieui/netplay-disc-num
Add information about disc number in the netplay setup
2016-05-06 09:19:54 +12:00
mathieui f36cd77da4 Add information about disc number in the netplay setup
Previously, two-disc games would appear exactly the same, and not
necessarily in disc order, which made it a pain.
2016-05-05 23:15:00 +02:00
degasus 2030ad4577 SCM: Use std::string.
Those macros may be defined, or not. We should support both cases, so use std::string as it also defines the length of the string.
2016-05-05 00:22:49 +02:00
Matthew Parlane dbd67c6b06 Merge pull request #3809 from Lionel07/netplay-gui-updates
[UI] Make NetPlay UI bigger and neater
2016-05-04 08:45:48 +12:00
Matthew Parlane ea82fcc24f Merge pull request #3658 from Tilka/helpers
Interpreter: simplify some helpers
2016-05-03 22:44:27 +12:00
Matthew Parlane 1634948b6e Merge pull request #3742 from phire/dither
Implement Dithering for video software
2016-05-03 22:41:39 +12:00
Matthew Parlane c32ba0fc06 Merge pull request #3744 from degasus/videosw
VideoSW: Fix special case.
2016-05-03 22:34:00 +12:00
Matthew Parlane e0a5f1bb75 Merge pull request #3791 from spxtr/mw-timer
Use CoreTiming for MemoryWatcher.
2016-05-03 22:30:51 +12:00
magumagu 36f01e141d Fix timing regression affecting ES_LAUNCH.
Scheduling an event for zero cycles in the future actually means zero
cycles with new timing changes, but the code for IPC ACKs was depending on
it meaning "soon".

Fixes #9511.

I'm not at all confident this is actually right... but it seems to work.
2016-05-02 21:56:49 -07:00
Corwin Mcknight 3a76aeb23d [UI] Make NetPlay UI bigger and neater
This commit does 4 things:
* It increases the default small size of the NetPlay window to a larger
and more appealing size.
* It cleans up and reorganizes a bit of the NetPlay Setup UI code.
* It moves the Direct or Transversal Selector to be more appealing and
nice looking.
* The Direct or Transversal also gets a label and nicer text, and a
spacer.
2016-05-02 08:15:44 -07:00
Matthew Parlane a78787ba75 Merge pull request #3730 from lioncash/noncopy
NonCopyable: Minor changes
2016-05-01 11:46:08 +12:00
Matthew Parlane 05e1406e89 Merge pull request #3795 from EmptyChaos/fix-diskreader
DriveReader: Fix View > Show Drives
2016-05-01 11:43:30 +12:00
Matthew Parlane 3d375592a2 Merge pull request #3798 from phire/goto_dino
Fix handling of Wii NAND's /tmp directory during savestate loads.
2016-05-01 11:37:33 +12:00
Anthony Serna 79b902e7e5 [UI] Remove browse toolbar button and tweak empty gamelist message
Removed some related functions
2016-04-30 10:25:46 -05:00
degasus 6f2d8483b7 VideoSW: Fix special case.
I have no clue what this special case shall be, but accessing g_main_cp_state within Flush() is not allowed.
We likely still have a bad behavior, but now it only depends on the current state, not on the next one after flushing.
2016-04-30 13:14:09 +02:00
mathieui 542e7ba158 Make a generic rumble function
Call the appropriate rumble function for each SI Device, Should fix #9331.
Ideally we wouldn’t have to do this, but since the way things are wired,
fixing the root cause it out of the picture for now.
2016-04-30 12:54:31 +02:00
degasus 170a7f1a06 CoreTiming: Trim max slicelength to the given value.
Previously it was underclocking by 50% when there were
no events to schedule.
2016-04-30 19:28:14 +12:00
Matthew Parlane 3df4b09a94 Merge pull request #3797 from phire/casually_delete_some_code
Fix netplay desync when using wii-u adapter.
2016-04-30 17:55:06 +12:00
Mathew Maidment 45e0cb70df Merge pull request #3770 from EmptyChaos/dsp-int-fail
DSP: Fix array out of bounds
2016-04-29 20:07:07 -04:00
Mathew Maidment 2d7dfa060e Merge pull request #3796 from endrift/indtev-simplify
VideoCommon: Workaround Intel OS X bug again
2016-04-29 19:59:45 -04:00
Mathew Maidment 9776b8db43 Merge pull request #3799 from mimimi085181/fix-auto-ir
Make integral auto IR(multiple of 640x528) work as expected
2016-04-29 19:50:21 -04:00
Mathew Maidment b99b685f22 Merge pull request #3800 from phire/unexceptional-exceptions
Make exceptions consistent across all JITs/Interpreters (Fixes Pokemon Box)
2016-04-29 19:48:55 -04:00
Mathew Maidment b420abc908 Merge pull request #3769 from RisingFog/remove_framestep
Remove Unused Framestop Functions
2016-04-29 19:41:25 -04:00
spxtr b9e9a5ee3d Use CoreTiming for MemoryWatcher. 2016-04-28 21:28:15 -07:00
Scott Mansell eb5819f88a Make exceptions consistant across all JITs/Interpeters.
They all handled it diffrently, so I've just moved it into Advance()

This fixes Pokemon Box booting in JIT/JITIL which shared a bug where
exceptions set in a scheduled event would be ignored untill the next
slice (upto 20,000 cycles).
2016-04-28 17:22:52 +12:00
mimimi085181 8c34463f14 Make integral auto IR(multiple of 640x528) work as expected
Right now, it's possible that x and y are scaled differently, if efb and xfb size are not the same.
2016-04-26 23:25:38 +02:00
EmptyChaos 97d570f0c9 DriveReader: Fix View > Show Drives
DriveReader::m_size was never initialized which was indirectly
causing CGameListCtrl to crash Dolphin when it tried to insert a
character at a negative index in a string.

Reading one sector at a time is very inefficient and appears to
be causing timing issues during boot so SectorReader has been
enhanced to support batching.

SectorReader has been given a working cache system.
2016-04-26 21:24:08 +10:00
Scott Mansell 8f4ac5bbad Close all files so /tmp can be deleted on save state load.
Because the file handles were open, the recursive delete was
failing. The previous commit stopped the crash but this should
make the restore actually happen has expected.
2016-04-25 18:29:49 +12:00
Scott Mansell b2f133d2ac make DeleteDirRecursively clean up correctly after failure.
Fixes Metroid prime crashing the second boot after loading
a save state (issue 9496)
2016-04-25 18:28:38 +12:00
Scott Mansell 429ae8fb01 Fix netplay desync when using wii-u adapter.
If the game sent a command to a disconnected controller, the
wii u adapter code would return a diffrent response.

This simply deletes the speclized version of RunBuffer for the
wii-u adapter as the only diffrence was the code which detected
disconnected controllers and returned a error.
2016-04-25 15:26:31 +12:00
Pierre Bourdon 3033096223 Merge pull request #3767 from degasus/android
Android: Also copy sys/Wii directory.
2016-04-24 15:12:57 +02:00
degasus 3a4ff30745 Android: Also create directorys for the Wii files. 2016-04-24 14:44:30 +02:00
degasus 18db9498d7 Android: Check asset overwrite per file.
So new files will be added, eg the missed Wii directory.
2016-04-24 14:44:30 +02:00
degasus 3f704dca75 Android: Also copy sys/Wii directory.
Seems like this one was just missed, some games just did not start without it.
2016-04-24 14:44:30 +02:00
Jules Blok 8a21b082d6 Merge pull request #3745 from stenzek/d3d11-texcache
D3D11: Fix EFB MSAA depth buffer copies, StateManager desyncs in some cases
2016-04-24 11:47:32 +02:00
Jeffrey Pfau d6517a761c VideoCommon: Simplify indirect texture lookup code slightly 2016-04-23 22:55:52 -07:00
Jeffrey Pfau aa736bf258 Revert "VideoBackend: Remove extraneous shifts from indirect texture lookups"
This reverts commit 1f1b127b69.
2016-04-23 22:55:42 -07:00
mimimi085181 fcd5170cff XInput: Apply Rumble/Motor output only on changes (again)
Disclaimer: I can't test if this works on xbox one controllers, i don't have one. But i have conformed that this UpdateMotors() is related to rumble for emulated wiimotes.

This partially reverts commit "XInput: Apply immediately as well" (1958a10b6f) from pr # https://github.com/dolphin-emu/dolphin/pull/1560

Hopefully this fixes the xbox one controller rumble issue:
https://bugs.dolphin-emu.org/issues/9071

And in theory it might reduce the used usb bandwidth, as it was originally intended before pr 1560.

@JMC47: Please do a good amount of testing, to see if this breaks rumble for wiimotes or gamecube controllers emulated with xinput devices.
2016-04-23 13:45:10 +02:00
Mathew Maidment bdb9da2104 Merge pull request #3687 from rukai/fixMakerColumn
DolphinWX: Disable 'maker' column hiding
2016-04-21 09:15:10 -04:00
EmptyChaos 49babfb60b CFrame: Fix Confirm Close
Closing Dolphin's main frame and clicking "no" does not clear
m_bClosing which means that pressing the "stop" button triggers
OnClosed which suddenly and unexpectedly closes the main frame.
2016-04-19 15:47:51 +10:00
Rukai 4cd918caf1 DolphinWX: Disable 'maker' column hiding
This was done because showing a column was broken:
Showing a column repopulates the column with no regard for the sorted
order. This results in a seemingly random order.
(actually the order of m_ISO_FILES)
2016-04-17 10:19:25 +10:00
EmptyChaos 32239f500c VideoInterface: Fix registers not being initialized
VideoInterface::Preset was not initializing all registers, this is a problem
because it leaks register settings across games. Xenoblade Chronicles does
not like m_DisplayControlRegister having random bit patterns in it.
2016-04-17 09:35:22 +10:00
Lioncash 4ae4b241ec ChunkFile: Handle bool in a stable way across platforms
bool is not always guaranteed to be the same size on every platform.
On some platforms it may be one byte, on others it can be 8 bytes if the
platform dictates it. It's implementation-defined.

This can be problematic when it comes to storing this
data to disk (it can also be space-inefficient, but that's not really an
issue). Also say for some reason you moved your savestates to another
platform, it's possible they won't load correctly due to differences in size.

This change stores all bools to savestates as if they were a byte in size
and handles the loading of them accordingly.
2016-04-14 22:55:03 -04:00
Pierre Bourdon 4d864ece27 Merge pull request #3759 from JosJuice/dvd-callback-savestates
DVDInterface/DVDThread: Don't store CoreTiming event IDs in savestates
2016-04-14 17:55:52 +02:00
Chris Burgener 02bfc62d1c Fix Windows build not copying certain files 2016-04-12 19:05:17 -04:00
Chris Burgener ab4c3314e7 Only copy relevant files for Windows builds
Fixes issue 9455: https://bugs.dolphin-emu.org/issues/9455
2016-04-12 12:20:23 -04:00
JosJuice be191c0473 DVDInterface/DVDThread: Don't store CoreTiming event IDs in savestates
CoreTiming event types aren't guaranteed to be stable across
runs of Dolphin, so they shouldn't be in savestates.
2016-04-11 22:14:25 +02:00
Pierre Bourdon 2063fc671a Merge pull request #3748 from mimimi085181/partial-updates-paletted-textures
Partial updates for paletted textures
2016-04-11 21:47:24 +02:00
Pierre Bourdon 58d8c734b8 Merge pull request #3773 from phire/if_you_want_100_cycles_ask_for_100_cycles
"Instant" ARAM DMA shouldn't schedule and event too soon.
2016-04-11 21:46:43 +02:00
Pierre Bourdon 61ea5328f7 Merge pull request #3774 from phire/Fix_Metroid_Other_M
Fix Metroid: Other M
2016-04-11 21:43:20 +02:00
degasus ef01f234df PixelShaderGen: Fixes implicit type conversion or PR #3772.
This regression did only happen on OpenGL ES.
2016-04-10 12:49:32 +02:00
Pierre Bourdon c4af588945 Merge pull request #3772 from degasus/shader_opt
PixelShaderGen: Move constant multiplication to constant generation.
2016-04-10 01:20:34 +02:00
mimimi085181 9f625417c0 Partial updates for paletted textures
This pr fixes another regression that happened after pr #3165 was merged. The shadows in mario baseball should now work again.
2016-04-09 18:22:36 +02:00
Pierre Bourdon e98fb0af84 Merge pull request #3752 from mimimi085181/remove-use-only-once-restriction-partial-updates
Remove the restriction to use efb copies only once as partial update
2016-04-09 18:10:20 +02:00
Scott Mansell 5e50c37c13 Alternative fix: promote cycleslate to an s64 everywhere.
Also changed a few functions to be static.
2016-04-10 02:13:06 +12:00
Scott Mansell 28e0607522 Fix Metroid: Other M
During boot of Other M, there is momentarily a period when VICallback's
cycles late is larger than GetTicksPerHalfLine(). Because
GetTicksPerHalfLine() returns a u32 and c++'s weird type promotion rules,
cycleslate gets promoted from a s32 to a u32 and the result of the
substraction is a really large u32.

Before ScheduleEvent accuracy improvements, ScheduleEvent took a s32, so
the result got cast back to the small negitave we expect. But it now takes
a s64 and the u32 to s64 conversion gives us a really large number (around
two seconds) and Other M times out while waiting for something.
2016-04-10 00:10:56 +12:00
Scott Mansell 662ed217d7 "Instant" ARAM DMA shouldn't schedule and event too soon.
Now that the accuracy of ScheduleEvent has changed, 0 cycles will
schedule an event as soon as possible. But this breaks ATV 2.

So we schedule it 100 cycles out (unless it's a really short copy)
2016-04-09 22:34:53 +12:00
degasus 10e4f7e7bf PixelShaderGen: Move constant multiplication to constant generation.
No need to do this within the shader per pixel if it can be done once.
2016-04-09 12:25:00 +02:00
EmptyChaos 80ff82b81a DSP: Fix integer promotion spill 2016-04-08 12:08:17 +10:00
Scott Mansell 365baeccb4 Only force progressive if we are currently in an interlaced video mode
The NES games on the Zelda Collecters Edition disk use a XFB which is
only 256 pixels wide, but has a stide of 640 pixels.

This fits our definition of a interlaced xfb, as a second line of data
could fit in the extra space. The solution is to check that we are
actually in a interlaced video mode before activating the force
progressive hack.
2016-04-06 05:12:53 +12:00
Chris Burgener 3140f9b226 Change GetStatePtr() Return to const 2016-04-05 12:45:48 -04:00
Chris Burgener 54eb8c09f9 Remove Unused Framestop Functions 2016-04-05 12:19:12 -04:00
Pierre Bourdon 3f079fb2c1 Merge pull request #3762 from mimimi085181/partial-updates-efb-copy-before-texutre
Partial texture updates: Allow the efb copy to start before the texture
2016-04-04 14:53:06 +02:00
shuffle2 c63ef18fcc Merge pull request #3760 from lioncash/vs
pch: Update Visual Studio version check
2016-04-03 17:14:45 -07:00
Lioncash 8d9221a71e MathUtilTest: Fix tests on MSVC - Document compiler bug
MSVC's implementation of numeric_limits currently generates incorrect
signaling NaNs. The resulting values are actually quiet NaNs instead.

This commit is based off of a solution by shuffle2. The only
difference is a template specialization for floats is also added
to cover all bases
2016-04-03 19:16:47 -04:00
Mathew Maidment 23f6c64525 Merge pull request #3733 from EmptyChaos/wx-playbtn-fix
WXGUI: Fix disabled play button not fading
2016-04-03 11:26:14 -04:00
mimimi085181 befb2e4809 Partial texture updates: Allow the efb copy to start before the texture
This is an oversight from pr https://github.com/dolphin-emu/dolphin/pull/3266 . Thanks to degasus for pointing this out.

It's possible that MAX_TEXTURE_BINARY_SIZE can be optimised, but i wanted to play it safe considering the 5.0 stable release.
2016-04-02 20:34:49 +02:00
sigmabeta 57eea4f330 Fix android builds permanently. 2016-04-02 10:14:40 -04:00
degasus 6cd7740f4b Android: Update gradle version 2016-04-02 13:56:30 +02:00
Pierre Bourdon 418b8c03d5 Merge pull request #3763 from JosJuice/boot-clear-memory
Always clear memory when booting
2016-04-02 12:59:24 +02:00
JosJuice 2db2672810 Always clear memory when booting
Reading uninitalized memory is non-deterministic. We used to only
clear the memory when using EmulatedBS2_GC or FifoPlayer, but we
now do it during Memory::Init instead so it always gets done.
2016-04-01 21:35:26 +02:00
Pierre Bourdon 77c05737e9 Merge pull request #3757 from stenzek/amd-glsl-storage-qualifier
ShaderGen: Handle AMD bug with storage qualifiers in interface blocks
2016-04-01 10:05:50 +02:00
Lioncash b3c77fd96a VertexLoaderTest: Amend code to fix new warnings in Visual Studio
Fixes warning C4334
2016-03-30 21:00:08 -04:00
Lioncash 33c22ffab7 D3D: Amend code to fix a new VS warning
Fixes warning C4334
2016-03-30 20:59:57 -04:00
Lioncash d2c4ce8696 pch: Update Visual Studio version check 2016-03-30 20:31:59 -04:00
Pierre Bourdon 486d3a7114 Merge pull request #3656 from phire/windows-10-sdk-update
Updated D3D12 to build on the newer windows 10 sdk.
2016-03-30 18:37:53 +02:00
Stenzek e6b2212ec0 ShaderGen: Only specify storage qualifier in interface block when needed
Drivers that don't support GL_ARB_shading_language_420pack require that
the storage qualifier be specified even when inside an interface block.

AMD's driver throws a compile error when "centroid in/out" is used within
an interface block.

Our previous behavior was to include the storage qualifier regardless, but
this wasn't working on AMD, therefore we should check for the presence of
the extension and include based on this, instead.
2016-03-30 00:42:50 +10:00
Pierre Bourdon 2d1c0e4092 Merge pull request #3722 from Sonicadvance1/upgrade_to_new_MaJoR1
Update to MaJoR1's latest on screen buttons
2016-03-27 22:43:22 +02:00
mimimi085181 2dd9e6bfe2 Remove the restriction to apply efb copies only once as partial update
I'm not entirely sure what is happening, but this optimisation is causing an issue in Sonic Riders: Zero Gravity. Apparently the issue would also be fixed by PR#3747, but this PR should also fix similar issues.

Games that use partial updates might get slower with this, so some performance regression testing would be nice. Games like New Super Mario Bros, RS2, Zelda TP and Silent Hill. Testing with high graphics settings makes sense, since this would mostly end up in more work for the GPU.
2016-03-27 04:13:20 +02:00
Scott Mansell fbcac2598a Use a sane default for the controller update rate.
Previously the default queryed the controller 4500 times a second,
Wasn't really a problem for most games as they set it to a sane
value. But fifoplayer didn't, and so in my profile dolphin spends
12% of the cpu time reading the controllers.

This new default value (I just took what the gamecube bios set)
drops that to 1.2% of cpu time and increase the framerate of the
silent hill fifo by 10-12%
2016-03-27 09:02:52 +13:00
Scott Mansell c036cf7a5f Updated D3D12 to build on the newer windows 10 sdk. 2016-03-26 18:11:49 +13:00
Pierre Bourdon bd200bd195 Merge pull request #3736 from BhaaLseN/issue-9135
Rewrite NAND Content handling in ES to fix Issue 9135
2016-03-26 05:00:08 +01:00
Pierre Bourdon 2fd0884347 Merge pull request #3672 from EmptyChaos/d3d-anisotropy
Fix D3D Forced Anisotropy
2016-03-26 03:25:01 +01:00
Pierre Bourdon ae4cb12033 Merge pull request #3719 from Sonicadvance1/workaround_osx_video_drivers
Workaround OS X video driver bug #24983074
2016-03-26 01:43:32 +01:00
Pierre Bourdon 21eb1cd158 Merge pull request #3635 from phire/lazy_comex
Implement BLR Overflow handling for Windows.
2016-03-26 01:42:54 +01:00
Pierre Bourdon 8f74f1f4e9 Merge pull request #3601 from phire/AccurateEventScheduling
Adjust cycle counts so they are accurate to the JIT block level (Fixes OoT virtual console and other games)
2016-03-25 17:02:30 +01:00
Scott Mansell 066b6b0bcb OpenGL: Cache query to max texture size.
This showed up really high when I was profiling things.
2016-03-26 03:14:39 +13:00
Stenzek 53cf42fb06 D3D11: Fix some cases where render target switches desynced StateManager
This was occuring in certain EFB copy patterns, leaving the textures
unbound for the next draw call.
2016-03-26 00:01:26 +10:00
Stenzek 63e4e07683 D3D11: Simplify MSAA depth texture resolving
This also fixes EFB depth buffer copies when MSAA is enabled.
2016-03-26 00:00:39 +10:00
EmptyChaos 0b9a72a62d VideoCommon: Refactor TexMode0 mipmaps disabled test into a helper function 2016-03-24 13:43:29 +11:00
EmptyChaos 902e5cddf7 VideoBackends: Do not use Anisotropy on Point filtered textures.
The D3D backend was always forcing Anisotropic filtering when that is enabled regardless of how the game chose to configure the texture filtering registers; this causes the same issues as "Force Filtering" without Anisotropy, such as causing game UI elements to no longer line up adjacent correctly. Historically, OpenGL's Anisotropy support has always worked "better" than D3D's due to seeming to not have this problem; unfortunately, OpenGL's Anisotropy specification only gives GL_LINEAR based filtering modes defined behavior, with only the mipmap setting being required to be considered. Some OpenGL implementations were implicitly disabling Anisotropy when the min/mag filters were set to GL_NEAREST, but this behavior is not required by the spec so cannot be relied on.
2016-03-24 13:43:29 +11:00
Scott Mansell d61baef2f6 Disable JitArm64's inline timebase implemenation, as it's incorrect.
The interpeted version is correct.
2016-03-24 05:17:10 +13:00
Scott Mansell 27beef1ff4 Store an inverted copy of lastOCfactor.
The inverse operation is more common, especially when games check the
timer rapidly. So we do the division once and store the inverted copy.
2016-03-24 05:17:10 +13:00
Scott Mansell 407f86e01a Mark global variables with g_ prefix 2016-03-24 04:32:12 +13:00
Scott Mansell 67dc26cf1d CoreTiming: Fix 31bit overflow for events scheduling.
Events scheduled more than 4.12 seconds in the future (2.96 seconds for
Wii games) would overflow the sign bit and get scheduled in the past
instead, causing them to fire instantly.
2016-03-24 04:27:14 +13:00
Scott Mansell 2ebbfd6f85 Adjust cycle counts so they are accurate to the jit block level
Previously GlobalTimer was only updated at the end of each slice
when CoreTiming::Advance() was called, so it could be upto 20,000
cycles off.

This was causing huge problems with games which made heavy use of
the time base register, such as OoT (virtual console) and Pokemon
puzzle.

I've also made it so event scheduling will be accurate to the jit
block level, instead of accurate to the slice.
2016-03-24 04:24:53 +13:00
Scott Mansell 51dc779b7c Implement Dithering for video software 2016-03-23 12:29:35 +13:00
BhaaL 0aeac66222 clear the NAND data cache on ES_LAUNCH to avoid leaving files open
also, clear it on Device_ES::Close, just to make sure nothing remains open.
2016-03-20 13:50:19 +01:00
BhaaL a449ef4e11 properly open/close the file to avoid rapid open/close cycles
ES_OPENCONTENT and ES_CLOSECONTENT now call Open and Close respectively,
as the old code did.
2016-03-20 13:10:51 +01:00
BhaaL 8a6d9e1e0b hide the distinction between WAD and File from ES
instead, leave all the management with the NANDContentLoader.

for file data (directly on the NAND), this opens the file on-demand and
returns the requested chunk when asked for it.
for on-the-fly decrypted WAD data, we just keep the decoded buffer in
memory, like we've done before - except that we don't give away any objects
we don't want to.
2016-03-20 13:10:50 +01:00
BhaaL 8fd2f05741 remove all accesses to m_pContent
this fixes the crashes, but leaves the "else" part of ES_READCONTENT
temporarily broken until the next commit.

WAD access that are performed on the encrypted WAD will most likely fail
with this commit.
2016-03-20 13:10:49 +01:00
BhaaL 598c3dbe2f get rid of the cached pointer inside ES
only fixes half the issues, since we still cache a pointer from
SContentAccess.m_pContent to SNANDContent.m_data (which is free'd along
with the rest of the NAND data cached inside the CNANDContentManager when
ClearCache is called)
2016-03-20 13:10:48 +01:00
BhaaL 1e28d06f26 fix some style inconsistencies that drove me nuts 2016-03-20 13:10:47 +01:00
Rukai cc6a7826c0 Implements Emulation MenuBar
Save states, fullscreen, frame advance, screenshot and emulation
controls are available through the MenuBar
2016-03-20 11:44:35 +11:00
Scott Mansell c5b3a2efac Implement BLR Overflow handling for Windows. 2016-03-20 00:41:28 +13:00
Pierre Bourdon 647fec92a0 Merge pull request #3266 from mimimi085181/partial-updates-with-parts-of-efb-copies
Partial texture updates with parts of efb copies
2016-03-18 01:11:59 +01:00
Pierre Bourdon 421a67d7cc Merge pull request #3684 from Sonicadvance1/fix_vertexshadergen_asserts
Fix a few asserts in the VertexShaderGen.
2016-03-17 23:33:53 +01:00
mimimi085181 e4f984d5dd Minor fixes to the partial updates code
- remove an outdated comment about the efb to ram and scaled efb restriction
- when upscaling efb copies, mark the new texture as efb copy
- dx12 fixes for the src box, especially the number of layers for 3D
2016-03-16 22:24:11 +01:00
mimimi085181 80250f47e9 Partial texture updates with parts of efb copies new version 2016-03-16 22:24:10 +01:00
Ryan Houdek a53c0f6995 Merge pull request #3717 from degasus/videosw
VideoSW: Drop stupid state setters.
2016-03-14 09:36:12 -04:00
Ryan Houdek 95e7c247df Merge pull request #3700 from degasus/custom_textures
CustomTextures: Fix loading of the last mipmaps.
2016-03-14 09:35:40 -04:00
EmptyChaos 564341ab3d WXGUI: Fix disabled play button not being faded.
Followed from PR #3333.
2016-03-14 13:42:52 +11:00
Pierre Bourdon f0e25b8477 Merge pull request #3668 from RisingFog/wii_movie_sysconf
Apply Wii Settings on Movie Recording/Playback
2016-03-14 01:42:37 +01:00
Ryan Houdek 03071c0c5c Merge pull request #3711 from degasus/arm
JitArm64: Implement dcbx
2016-03-12 17:38:00 -05:00
Lioncash 2ce6b449d1 NonCopyable: Remove private access specifier
This isn't necessary, as the member functions are deleted.
If someone tries to perform a copy, the compiler will now
indicate that the member functions/constructors are deleted,
rather than inaccessible.
2016-03-12 16:59:45 -05:00
Lioncash 5d74e02286 NonCopyable: Specify const in copy constructor/assignment signatures 2016-03-12 16:59:45 -05:00
Ryan Houdek 38a5183eb4 Fix Android buildbot 2016-03-12 15:44:13 -06:00
Ryan Houdek 4c4eaaa1d6 Merge pull request #3570 from endrift/indtev-reduce-shifting
VideoBackend: Remove extraneous shifts from indirect texture lookups
2016-03-10 13:12:47 -05:00
Ryan Houdek 3ab7806e24 Workaround OS X video driver bug #24983074
OS X's shader compiler has a bug with interface blocks where interface block members don't properly inherit the layout qualifier from the interface
block.
Work around this limitation by explicitly stating the layout qualifier on both the interface block and every single member inside of that block.
2016-03-09 09:11:00 -06:00
Pierre Bourdon a06eaabcdc Merge pull request #3721 from lioncash/net
NetPlayServer: Get rid of some explicit deallocations
2016-03-09 15:29:44 +01:00
Mathew Maidment 1c7f5b139d Merge pull request #3623 from rukai/dolphinQtAbout
DQt2: About Dialog
2016-03-09 03:16:40 -05:00
Ryan Houdek baee7f0d15 Update to MaJoR1's latest on screen buttons 2016-03-08 20:27:03 -06:00
Lioncash 84b0a930da NetPlayServer: Get rid of some explicit deallocations 2016-03-08 19:31:36 -05:00
Pierre Bourdon 370e91d4c0 Merge pull request #3708 from ismail/miniupnpc-api-16
Fix build with MINIUPNPC_API_VERSION >= 16
2016-03-07 13:49:26 +01:00
degasus ab44d2ec5c VideoSW: Drop SetTevReg for colors. 2016-03-06 11:05:49 +01:00
degasus 7a154181b4 VideoSW: Drop SetScissor().
Just access the global state directly.
2016-03-06 10:24:28 +01:00
degasus 8b0fd623e5 VideoSW: Drop SetViewOffset.
Just use the global state.
2016-03-06 10:22:44 +01:00
Ryan Houdek 40931f5030 Merge pull request #3690 from aserna3/bikeshedding_bait
[Config UI] add "normal speed" to speed limit 100%
2016-03-05 11:55:06 -05:00
degasus 54a4d68c9a JitArm64: implement dcbx 2016-03-05 00:29:38 +01:00
Ryan Houdek 8f75594de7 Merge pull request #3694 from degasus/arm
JitArm64: Small improvements.
2016-03-04 18:01:25 -05:00
Pierre Bourdon 3b6af8c7a5 Merge pull request #3691 from rukai/netplayWiiRemoval
Netplay Wii Remote Removal
2016-03-04 23:45:07 +01:00
degasus 9bf50fb93d JitArm64: Fix mulli.
mulli has no inst.OE
2016-03-04 22:51:47 +01:00
degasus 9ed465f4ac JitArm64: Implement mulhwx 2016-03-04 22:51:46 +01:00
degasus 889a0d396d JitArm64: Align farcode entry points to 16 bytes 2016-03-04 22:49:02 +01:00
degasus eaa0e275db JitArm64: Use immediate WriteExceptionExit more often. 2016-03-04 22:49:01 +01:00
degasus 689205f0a4 JitArm64: small cleanup, no changes 2016-03-04 22:49:01 +01:00
Ryan Houdek 5b040ec67b Merge pull request #3704 from Tsunamical/arm
[Android] Remove CPUHelper Class
2016-03-04 16:47:37 -05:00
Tyler Dunn 309b0c53bf [Android] Remove CPUHelper class 2016-03-04 16:17:41 -05:00
degasus 7b017c6a65 JitArm64: Use a register as PC argument for the dispatcher. 2016-03-04 19:50:12 +01:00
degasus 050932ed23 JitArm64: Rename global registers. 2016-03-04 19:50:12 +01:00
degasus 57d76cefb0 JitArm64: Merge WriteExceptionExit. 2016-03-04 19:50:12 +01:00
degasus 55b9ce9b5b JitArm64: Store memory pointer once, not per block. 2016-03-04 19:50:12 +01:00
degasus 56c8f65bc2 JitArm64: Precheck for exceptions before calling PowerPC::CheckExceptions. 2016-03-04 19:50:12 +01:00
degasus aea48c4591 JitArm64: Drop unused WriteExceptionExit. 2016-03-04 19:50:11 +01:00
degasus c5b0dc98c2 JitArm64: Fix LWZ idle skipping. 2016-03-04 19:50:11 +01:00
Pierre Bourdon c24c278ce9 Merge pull request #3709 from Sonicadvance1/mesa_intel_geometry_shaders
Mark Mesa Intel Sandy Bridge geometry shaders not broken in Mesa 11.2
2016-03-04 18:02:26 +01:00
Ryan Houdek ff0aac82b5 Mark Mesa Intel Sandy Bridge geometry shaders not broken in Mesa 11.2 2016-03-04 10:45:13 -06:00
İsmail Dönmez 20f8b471a8 Fix build with MINIUPNPC_API_VERSION >= 16
miniupnp commit c4991916e5c12a7754e935e71a5313e75af6aeb9 introduced a
4th statusCode parameter to miniwget function. This parameter is set
to a value returned by the UPnP device. We have to check if it's set
to 200 to make sure the result is a success. Also, we now have to check
if descXML is set in the error case and free it.
2016-03-04 10:59:57 +02:00
Ryan Houdek e60f0b3cf0 Merge pull request #3551 from RisingFog/videodump_proper_delay
Properly Handle Video Dumping from Power On
2016-03-03 10:38:36 -05:00
Ryan Houdek b57cb30c41 [Android] Make sure the file extension check isn't case sensitive 2016-03-03 08:29:51 -06:00
Anthony Serna 8ba9839161 [Config UI] add "normal speed" to speed limit 100% 2016-03-02 19:51:05 -06:00
Pierre Bourdon 265c6408d6 Merge pull request #3686 from Armada651/revert-3578
Revert "Merge pull request #3578 from Armada651/forced-slow-depth"
2016-03-03 02:03:03 +01:00
Pierre Bourdon f752c6e704 Merge pull request #3589 from mathieui/gcadapter-recording
Fix recording a movie with the GC Adapter
2016-03-03 02:02:29 +01:00
degasus 1544e4049d CustomTextures: Fix loading of the last mipmaps.
Non-square textures still have mipmaps down to 1x1.
2016-03-02 23:25:04 +01:00
Mathew Maidment a64dd3659a Merge pull request #3634 from spxtr/DQt22
Stop parenting RenderWidget.
2016-03-02 16:51:37 -05:00
Mathew Maidment c2802f96a6 Merge pull request #3655 from jcowgill/spelling-fixes
Fix some very minor spelling mistakes
2016-03-02 14:04:05 -05:00
Pierre Bourdon 643cf4553f Merge pull request #3692 from EmptyChaos/d3d12-static
D3D12: Fix uninitialized variable in SetSamplerState
2016-03-02 15:52:44 +01:00
Rukai 1b65adcd56 Fully remove wii remote netplay UI code and remove reference to WiimoteReal in NetPlayClient.cpp 2016-03-02 21:02:15 +11:00
Mathew Maidment 3a47845226 Merge pull request #3675 from rohit-n/build-pch
Fix building with PCH disabled.
2016-03-01 18:22:53 -05:00
Dolphin Bot ab50dd1926 Merge pull request #3667 from RisingFog/fix_savestates
Fix savestates if a device is changed after a savestate is made
2016-03-01 15:35:09 +01:00
Ryan Houdek 36b476ed76 Merge pull request #3683 from Sonicadvance1/aarch64_fix_fcmp
[AArch64] Fix fcmp.
2016-03-01 09:29:56 -05:00
Ryan Houdek 344a4ddc9b Merge pull request #3685 from degasus/arm
JitArm64: Optimize addi
2016-03-01 09:29:42 -05:00
Chris Burgener 7991605ad9 Fix savestates if a device is changed after a savestate is made 2016-03-01 09:28:04 -05:00
EmptyChaos cc36dec9b5 D3D12: Cleanup DX12::Renderer::SetSamplerState
Remove uninitialized non-static variable. Replace test to avoid unnecessary state changes with a simpler one.
2016-03-01 23:55:19 +11:00
degasus 64f9941595 EGL: Also check for higher GL versions.
Seems like NVidia just ignores the forward compatible flag.
Additionally, they neither enable any extension which was designed later...
So either compatible profile, or a huge list of core profiles....
2016-03-01 07:55:57 +01:00
Ryan Houdek a8c37e5d6b Remove two more asserts in VertexShaderGen.
As confirmed by a hardware test if we are using the texgen type of COLOR_STRGBC0/STRGBC1 then it sets the texture coordinates to those values
regardless of what the input form or source row is.

Thanks to Ornox for testing again
2016-02-29 16:45:51 -06:00
Ryan Houdek 92e9382e61 Confirm with hardware test that the high bit of the input form is ignored.
Thanks to Ornox for testing
2016-02-29 16:45:51 -06:00
Ryan Houdek e1d36f91fc Fix a few asserts in the VertexShaderGen.
Removes a couple asserts in the vertex shader gen when dealing with the input form.
Typically input form ABC1 is used, so it'll pull in the first three elements and always set the fourth to 1.0
The other input form available is AB11, which sets the last two components to 1.0 (Theoretically).
No titles actually use this input form that we know of except for Project M, but it can have some fairly drastic visual differences.

Confirmed correct by hardware test
2016-02-29 16:43:44 -06:00
Pierre Bourdon 8e1aff34df Merge pull request #3682 from Alcaro/master
Run pngout and zopflipng on every single PNG in this repo.
2016-02-29 17:27:29 +01:00
Alcaro da68dfc2f4 Use optipng too. 2016-02-29 17:08:18 +01:00
Pierre Bourdon 392051bd69 Merge pull request #3679 from JosJuice/seek-log-sign
DVDInterface: Log seek offsets with a more intuitive sign
2016-02-29 16:49:39 +01:00
Pierre Bourdon 07ff8379ba Merge pull request #3647 from stenzek/d3d12-fences
D3D12: Multiple fixes (texture cache, fences, MSAA, CPU EFB access)
2016-02-29 16:49:03 +01:00
Ryan Houdek c82feb6c08 Merge pull request #3626 from Sonicadvance1/more_robust_gcadapter
Improve stability of the Wii U Gamecube Controller adapter under Android.
2016-02-29 09:54:01 -05:00
degasus e2725792d4 JitArm64: Optimize addi 2016-02-29 08:39:24 +01:00
degasus 4478146c80 JitArm64: Split addi from arith_imm.
They ARM assembly has different immediate versions for logic and additions, so there is no use in merging those instructions.
2016-02-29 08:39:14 +01:00
Chris Burgener b1c8198cec Move SetData logic to within SysConf.cpp 2016-02-28 19:42:15 -05:00
Jules Blok 6d1628eda4 Revert "Merge pull request #3578 from Armada651/forced-slow-depth"
This reverts commit e2a1a085b6, reversing
changes made to 2aea549eef.
2016-02-29 00:55:51 +01:00
Pierre Bourdon 961901daae Merge pull request #3355 from mimimi085181/partial-texture-updates-check-dimensions
Partial texture updates: Check the dimensions of the efb copy
2016-02-29 00:49:48 +01:00
Ryan Houdek abaa8fc24d [AArch64] Fix fcmp.
Fixes Luigi's head vanishing. Was due to a mishandling of nans.
Confirmed fixed by hardware test.
2016-02-28 13:15:47 -06:00
Stenzek 0a96e2f531 D3D11: Fix texture dumping, for both single and multi-mip textures 2016-02-28 17:24:47 +10:00
Stenzek c793459b88 D3D12: Fixed issue where EFB copies could end up corrupted after reset
Also prevents previously-released textures from ending up in a descriptor
table.
2016-02-28 17:24:46 +10:00
Stenzek 74275bdfe3 D3D12: Don't keep screenshot/encoder buffers mapped
Readback heaps do not support persistent mapping. See D3D12 docs.
2016-02-28 17:24:09 +10:00
Stenzek c4d79d6db3 D3D12: Add helper method for setting both viewport and scissor rect
Simplfies making changes, as well as keeping the two in sync.
2016-02-28 17:18:46 +10:00
Stenzek 13e143de38 D3D12: Optionally prevent StreamBuffer from executing command list
This applies to callers that do not have full knowledge of the command
list state, and thus, cannot restore it should allocations cause command
list execution. Instead we reallocate a new buffer. Should not happen
often enough for this to be a concern, as it's mainly for the utility
classes.
2016-02-28 17:18:46 +10:00
Stenzek 04257029e0 D3D12: Don't enumerate outputs, it's not used anywhere
The D3D12 backend does not support exclusive fullscreen.
2016-02-28 17:18:45 +10:00