Commit Graph
100 Commits
Author SHA1 Message Date
Scott Mansell 2304d76914 Merge pull request #4060 from dolphin-emu/revert-4004-dynamic-bat
Revert "JitCache: Support for VMEM + MSR bits"
2016-07-27 13:07:32 +12:00
Scott Mansell 6834b4cb27 Revert "JitCache: Support for VMEM + MSR bits" 2016-07-27 11:15:25 +12:00
Scott Mansell 66b11c5198 Merge pull request #4044 from CharlesCorrin/CharlesCorrin-WD9.ini
Update WD9.ini
2016-07-22 08:49:57 +12:00
Scott Mansell 7139b6bae6 Merge pull request #4024 from bentley/swap
Undefine OpenBSD's system byteswap macros to pick up generic functions.
2016-07-18 15:51:05 +12:00
Scott Mansell ff3b4a0fd7 Merge pull request #4020 from bentley/fstat64
Use the standard stat()/fstat() interfaces, not nonstandard *64().
2016-07-18 12:22:33 +12:00
Scott Mansell cb63bacd65 Merge pull request #4006 from EmptyChaos/dqt2-warning
DolphinQt2: Startup Warning
2016-07-13 18:27:01 +12:00
Scott Mansell 6b48b62872 Merge pull request #3973 from phire/StripSpaces
Strip whitespace from Evdev and OSX controller names.
2016-07-12 14:44:47 +12:00
Scott Mansell e0839a9478 Strip whitespace from Evdev and OSX controller names. 2016-07-12 14:19:07 +12:00
Scott Mansell 708fb35fdb Merge pull request #3878 from mathieui/enable-cheats-for-jmc-the-cheater
Sync the "enable cheat" setting over netplay
2016-07-05 21:36:02 +12:00
Scott Mansell 69bf05b302 Merge pull request #3976 from JosJuice/shutdown-clear-codes
PatchEngine: Clear active codes on shutdown
2016-07-05 21:13:48 +12:00
Scott Mansell 20449ec91f Don't forget to initalize your variables. 2016-06-30 20:27:19 +12:00
Scott Mansell 35566316ed XFB: Send image to screen at start of field.
This is much more accurate to the hardware, and saves around 16ms
of latency.
2016-06-28 15:12:43 +12:00
Scott Mansell d958388617 VideoCommon: Fix some warnings. 2016-06-26 23:10:31 +12:00
Scott Mansell b16333a25c Merge pull request #3716 from degasus/coretiming
CoreTiming: Drop ProcessFifoWaitEvents.
2016-06-26 22:13:05 +12:00
Scott Mansell ee9e3432cb Merge pull request #3513 from phire/make_hdkr_happy
Get shadergen ready for Multithreadded generation of shaders.
2016-06-26 21:55:22 +12:00
Scott Mansell 2f134c5c36 Remove the rest of ShaderDebugging.
Without UID checking, it's basically a no-op that disables shader cache
and stores the shader source code (without ever reading it back).
2016-06-26 16:25:11 +12:00
Scott Mansell ebe5fd0b36 Multithreadded Shadergen: Minor fixups. 2016-06-26 16:13:22 +12:00
Scott Mansell 95469ec225 Remove UID Checker.
Kind of pointless now that multiple shaders with the same UID are
now fundementally impossible.
2016-06-26 16:13:22 +12:00
Scott Mansell 24e5d21780 Multithreadded Shadergen: Second pass over Pixel Shadergen.
Note: It's not 100% perfect, as some of the GPU capablities leak into the
pixel shader UID.

Currently our UIDs don't get exported, so there is no issue. But someone
might want to fix this in the future.
2016-06-26 16:13:21 +12:00
Scott Mansell 1a831cfc7d Multithreadded Shadergen: Second Pass over vertex/lighting Shadergens
As much as possible, the asserts have been moved out of the GetUID
function. But there are some places where asserts depend on variables
that aren't stored in the shader UID.
2016-06-26 16:13:21 +12:00
Scott Mansell 28c7113e41 Multithreadded Shadergen: Second Pass over geometery Shadergen 2016-06-26 16:13:21 +12:00
Scott Mansell fa02f47729 Multithreadded Shadergen: First pass over geometery Shadergen. 2016-06-26 16:13:20 +12:00
Scott Mansell 4969415f38 Remove global refrences from common code.
Bug Fix: Previously vertex shaders and geometery shaders didn't track
         antialaising state in their UIDs, which could cause AA bugs
	 on directx.
2016-06-26 16:13:20 +12:00
Scott Mansell 0d996f512b Multithreadded Shadergen: First pass over pixel Shadergen
Bug Fix: It was theoretically possible for a shader with depth writes
         disabled to map to the same UID as a shader with late depth
	 writes.
	 No known test cases trigger this.
2016-06-26 16:13:20 +12:00
Scott Mansell e99364c7c9 UID Change: Fix bug with indirect stage UIDs
Bug Fix: The normal stage UIDs were randomly overwriting indirect
         stage texture map UID fields. It was possible for multiple
	 shaders with diffrent indirect texture targets to map to
	 the same UID.
         Once again, it dpesn't look like this bug was ever triggered.
2016-06-26 16:13:19 +12:00
Scott Mansell 03f2c9648d Shader UID change: Only store the two bits of components we need.
This frees up 21 bits and allows us to shorten the UID struct by an entire
32 bits.

It's not strictly needed (as it's encoded into the length) but I added a
bit for per-pixel lighiting to make my life easier in the following
commits.
2016-06-26 16:13:19 +12:00
Scott Mansell 53c402dbc5 Multithreadded Shadergen: First Pass over vertex/lighting Shadergens
The only code which touches xfmem is code which writes directly into
uid_data.

All the rest now read their parameters out of uid_data.

I also simplified the lighting code so it always generated seperate
codepaths for alpha and color channels instead of trying to combine
them on the off-chance that the same equation works for all 4 channels.

As modern (post 2008) GPUs generally don't calcualte all 4 channels
in a single vector, this optimisation is pointless. The shader compiler
will undo it during the GLSL/HLSL to IR step.

Bug Fix: The about optimisation was also broken, applying the color light
         equation to the alpha light channel instead of the alpha light
	 euqation. But doesn't look like anything trigged this bug.
2016-06-26 16:13:19 +12:00
Scott Mansell 131c65c41e NullVideo: Fix up Visual studio solution.
Turns out visual studio really wants tabs in it's solutions.
2016-06-26 14:30:14 +12:00
Scott Mansell 2ec3a24e4e analytics: Collect less data about controllers.
The name field can contain personal information, particularly in the
case of bluetooth devices on OSX which get configured with the user's
full name.
2016-06-22 17:02:30 +12:00
Scott Mansell 3dfea6e996 analytics: Collect controller information.
Collects the existence of a gamecube adapter, and the type of
whatever controller is configured for the first emulated gamepad.
2016-06-21 01:48:28 +12:00
Scott Mansell d197f489b9 analytics: Report OpenGL's adapter name too. 2016-06-20 23:54:44 +12:00
Scott Mansell 96ab76f81d TextureCache: Rename functions and add comments to clear up docs 2016-06-18 04:27:16 +12:00
Scott Mansell 94eaacae30 TextureCache: Track efb copies used in a partially updated texture
Fixes a major preformance regression in Skies of Arcadia during
battle transisions.

I had plans for a more advanced version of this code after 5.0,
but here is a minimal implemenation for now.
2016-06-17 23:46:22 +12:00
Scott Mansell 7d80aaedc7 Cleanup: fix an incorrect variable name.
For consistancy.
2016-05-29 18:14:50 +12:00
Scott Mansell f419faa408 IPC_HLE: Close file handles before savestating. Fixes DKCR crashing.
Donkey Kong Country Returns is writing new data to some files in /tmp
when loading each level. But the savestate code was opening the files
a second time and reading some old and stale data out.

As of #3798, dolphin now correctly restores that stale data to /tmp,
which broke DKCR (and probally countless other games).

This PR closes all file handles before saving and loading savestates,
which flushes the data out and pervents this issue. (old savestates
are corrupted and will still cause crashes if loaded)
2016-05-29 16:48:46 +12:00
Scott Mansell 2c95cf0f5a Increase Audio DMA Interrupt delay to 200 cycles.
We really need hardware tests for this one. But this will do as a
quick fix for issue 9509 for 5.0
2016-05-09 14:16:32 +12: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
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
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
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
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
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
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
Scott Mansell c5b3a2efac Implement BLR Overflow handling for Windows. 2016-03-20 00:41:28 +13:00
Scott Mansell 994c8e5282 GameInis: NES games that don't require EFB2Ram differ per region.
Just because it was the same game, released in diffrent regions
at around the same time doesn't mean they use the same version
of the Virtual Console emulator.

The previous INIs were based of testing of the US release so I've
move them to 6 letter INIs only effecting the US release. I've
also added a few more and added a few Inis for the few PAL games
that I could confirm also didn't require EFB2Ram.
2016-02-05 23:27:45 +13:00
Scott Mansell 764000d42e GameInis: All Sega Master System games need RealXFB
I did some testing and they all do strided XFB copies like Sonic
and Knuckles, which is currently only implemented in RealXFB.
2016-02-05 23:27:44 +13:00
Scott Mansell dfabe1552a GameInis: Make all Virtual Console games 4:3
We only need to update 9 files, It's like magic!
2016-02-05 23:27:34 +13:00
Scott Mansell c47e773297 GameInis: Deduplicate TurobGrafx 16 Virtual Console games 2016-02-05 23:26:21 +13:00
Scott Mansell b698b04b4c GameInis: Deduplicate Sega Mega Drive (Genesis) inis 2016-02-05 17:35:33 +13:00
Scott Mansell 919460a572 GameInis: Deduplicate all Sega Master System games
I don't care that this enables virtual xfb for all of them, I'm dubious
that excatly half have it set and the other half don't.
2016-02-05 17:35:33 +13:00
Scott Mansell 5c00fc3e44 GameInis: Deduplicate SNES Virtual Console games 2016-02-05 17:35:32 +13:00
Scott Mansell 754c4c0ee9 GameInis: Deduplicate NES Virtual Console games 2016-02-05 17:35:28 +13:00
Scott Mansell 0154631da2 GameInis: Deduplicate NeoGeo and "Virtual Console Arcade" games 2016-02-05 17:35:24 +13:00
Scott Mansell 0aa8c021b9 GameInis: Deduplicate all C64 and TurboGrafx CD games 2016-02-05 17:35:20 +13:00
Scott Mansell baad10593e GameInis: Allow one ini to cover all VC games for a console
Since all Virtual console releases use the same emulator (though there
are multiple revisions some emulators) and generally need the same
setting, this commit allows the creation of INI files which cover all
Virtual Console games fow each system.

For example, F.ini can provide settings that all NES games have in common
and C.ini will provide settings for all Commadore 64 games.

If needed, a 3 letter ini can override settings for individual games.
2016-02-05 17:35:13 +13:00
Scott Mansell 74b772c3be Avoid the "Memory stride too small" assert
EFB2Tex still has no idea what to do with these weird textures so we
simply disable EFB2Tex when one is encountered.
2016-01-09 18:30:29 +13:00
Scott Mansell c49a82bf0a Rework aspect ratio calculations.
They are now based on signal timings rather than pixels, as it
didn't make a lot of sense to do things with pixels.

Now handles all 240i/240p/480i/480p modes without any special
casing.

Despite the diffrent equaions, this should result in the exact same aspect
ratio as the previous code.
2016-01-09 14:30:46 +13:00
Scott Mansell 9c0dae47ca Normalize aspect ratio calculations to 4:3
Video Interface simply isn't aware about widescreen.
Instead, the render class can multiply by 1.3333333 to get
the 16:9 aspect ratio.
2016-01-08 13:31:48 +13:00
Scott Mansell 552ea58bf5 Merge pull request #3419 from Sonicadvance1/QC_driverdetails
Add a comment to DriverDetails about Qualcomm failing our alpha tests.
2016-01-01 21:50:22 +13:00
Scott Mansell d2e9688ab0 Merge pull request #3388 from spxtr/DQt2
DQt2: Implement Paths config dialog
2016-01-01 21:48:05 +13:00
Scott Mansell 5cd4619a1d Merge pull request #3413 from spxtr/follow-pointers
Allow MemoryWatcher to follow pointers
2016-01-01 21:45:44 +13:00
Scott Mansell 42d168221d Merge pull request #3421 from rohit-n/build-pch
Fix building with PCH disabled.
2016-01-01 21:42:08 +13:00
Scott Mansell afde6ae72c Merge pull request #3403 from spxtr/reporter
Add support for sending game memory changes to outside processes
2015-12-30 15:17:47 +13:00
Scott Mansell d8e5d8659e TextureCache, fix an incorrect assert. 2015-12-29 14:25:31 +13:00
Scott Mansell 790a836736 FifoAnalyzer: Fix a few warnings that visual studio missed. 2015-12-28 20:20:30 +13:00
Scott Mansell 52d6a7505a Merge pull request #3239 from phire/cleanup-fifo-analyzers
Cleanup fifo analyzers (and fix major bugs with fifo recording)
2015-12-28 11:14:09 +13:00
Scott Mansell 55cb358b4c Merge pull request #3398 from dolphin-emu/revert-3315-test
Revert "ShaderGen: Toggle value of uninitialized color."
2015-12-27 10:29:08 +13:00
Scott Mansell bed102ae89 Revert "ShaderGen: Toggle value of uninitialized color." 2015-12-27 02:28:29 +13:00
Scott Mansell be8410dcad Merge pull request #3383 from Sonicadvance1/compile_fixes
Compile fixes
2015-12-27 02:16:55 +13:00
Scott Mansell a227daac56 Merge pull request #3394 from dolphin-emu/revert-3373-temp-settings-ini-hotfix
Revert "Config Hotfix: Prevent per-game settings (ie. GameINI) being stored to the global user configuration."
2015-12-24 21:33:22 +13:00
Scott Mansell 0216879d3e Revert "Config Hotfix: Prevent per-game settings (ie. GameINI) being stored to the global user configuration." 2015-12-24 18:25:22 +13:00
Scott Mansell 14e976a5f1 Merge pull request #3380 from lioncash/fb
FramebufferManager: Get rid of raw new and delete
2015-12-23 12:16:28 +13:00
Scott Mansell ce6de78854 Merge pull request #3250 from JosJuice/loadgameini-condition
BootManager: Remove unnecessary LoadGameIni condition
2015-12-22 13:24:09 +13:00
Scott Mansell a691e1fb6d Merge pull request #2621 from AdmiralCurtiss/config-cache-methods
BootManager: Slightly clean up the config_cache.
2015-12-22 12:52:16 +13:00
Scott Mansell 1ce9c33f6c Merge pull request #3373 from JosJuice/temp-settings-ini-hotfix
Config Hotfix: Prevent per-game settings (ie. GameINI) being stored to the global user configuration.
2015-12-22 12:37:22 +13:00
Scott Mansell ebe3c49c5f Merge pull request #3332 from degasus/master
MSAA: Store samples in ini files.
2015-12-19 01:37:10 +13:00
Scott Mansell 48760c9037 Merge pull request #3323 from Simek/minor-config-gui-tweaks
minor General Config GUI improvements
2015-12-08 14:37:30 +13:00
Scott Mansell a759883ae5 Merge pull request #3126 from phire/remove-logging-lock
Refactor logging code to get rid of a mutex.
2015-12-03 13:32:07 +13:00
Scott Mansell 03461915a7 Fix lens flares in Mario Kart Wii. 2015-12-01 05:25:38 +13:00
Scott Mansell 97231aa221 Merge pull request #3294 from spxtr/DQt2-GameProxyModel
DolphinQt2: Use a proxy model for the GameList
2015-11-30 07:48:54 +13:00
Scott Mansell 97cd723492 Merge pull request #3286 from jloehr/Wiimote-Rumble-LED-Fix
Fix Prepare (Set LEDs and Rumble) on Connect and Refresh
2015-11-29 00:58:18 +13:00
Scott Mansell 861bd98e3a Merge pull request #3291 from JosJuice/memset-error-check
Memmap: More error checking for Memset
2015-11-28 22:38:24 +13:00
Scott Mansell 4b4b753cc4 Merge pull request #3293 from JosJuice/volumedirectory-plainfilereader
DiscIO: Don't use PlainFileReader in VolumeDirectory
2015-11-28 22:32:12 +13:00
Scott Mansell 5a1729877e Merge pull request #3211 from JosJuice/themes-to-resources
Move nobanner and fileplatform from Themes to Resources
2015-11-27 23:47:44 +13:00
Scott Mansell df4c1d680e Merge pull request #3264 from JosJuice/simplify-iselfordol
ISOFile/GameFile: Simplify IsElfOrDol
2015-11-27 23:10:45 +13:00
Scott Mansell f33a9ed439 Merge pull request #3261 from spxtr/DolphinQt
DolphinQt Rewrite
2015-11-27 22:06:31 +13:00
Scott Mansell e1fe2db7d9 Merge pull request #3289 from waddlesplash/dolphin-qt-fixup
DolphinQt: Get rid of unneeded abbreviation macros.
2015-11-27 09:56:51 +13:00
Scott Mansell 211169e307 Merge pull request #3269 from JosJuice/purge-cache
Rename "Purge Cache" to "Purge Game List Cache"
2015-11-24 14:17:49 +13:00
Scott Mansell 83bda3be46 Merge pull request #1474 from phire/DSPHLE_cleanups
DSPHLE: Remove individual byteswaps and replace with generic function.
2015-11-24 13:33:59 +13:00
Scott Mansell 02f476cd09 FifoRecorder: Fix bug with normal vertex arrays.
Detected by the previous commit. We had forgotten to make sure the
Vertex Loader's table of normal sizes is initilzied, resulting in
the wrong offsets/sizes being used for vertices with normals.
2015-11-23 23:02:42 +13:00