Commit Graph
100 Commits
Author SHA1 Message Date
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
Scott Mansell 3a36bfbcbb FifoAnalyzer: Double check command size while recording.
Since we now return the value, might as well check it's correct.
2015-11-23 23:02:41 +13:00
Scott Mansell 17b7102b35 FifoAnalyzer: Remove layer of indirection. 2015-11-23 23:02:40 +13:00
Scott Mansell 9872f5b518 FifoAnalyzer: Remove old code that was meant to handle EFB copies
It wasn't working, I'm not really sure why.
Since #2997 we rely on video common to mark efb copies 'written'
during recording, and for old dffs we just ignore the bad texture
while playing back in the texture cache.
2015-11-23 23:02:39 +13:00
Scott Mansell 0367c3107d FifoAnalyzer: Unify DecodeOp/DecodeCommand
We actually discovered a bug while combining the two functions with
FifoRecordAnalzyer's vertex array loading code. If per-vertex
postion or texture matrices were enabled and vertex arrays in use
then the wrong data would be used to calculate the minimum/maxmium
indices, which would result in either too much or too little vertex
data being included in the dff.

So this commit also increments the dff version number, so we can
identify old broken dffs later.
2015-11-23 23:02:38 +13:00
Scott Mansell 1656b2788d FifoAnalyzer: Convert FifoPlaybackAnalyzer to namespace 2015-11-23 23:02:38 +13:00
Scott Mansell da7fb568de FifoAnalyzer: Convert FifoRecordAnalyzer to namespace.
And a few minor cleanups.
2015-11-23 23:02:37 +13:00
Scott Mansell 9b60fd2381 FifoAnalyzer: remove un-implemented header 2015-11-23 23:02:35 +13:00
Scott Mansell ffb9722f2d Merge pull request #3032 from waddlesplash/dolphin-qt
Lots more minor DolphinQt stuffs.
2015-11-23 21:45:28 +13:00
Scott Mansell 6082af7790 Merge pull request #3273 from Sonicadvance1/enable_page_fault_test
Enable the page fault test on targets that aren't x86_64
2015-11-20 01:11:48 +13:00
Scott Mansell 2ca07f3485 Merge pull request #3272 from Sonicadvance1/we_love_traps
Use __builtin_trap for our crash define instead of int3/exit
2015-11-20 01:11:29 +13:00
Scott Mansell d2b03e1aad Remove individual byteswaps and replace with generic function. 2015-11-17 19:37:18 +13:00
Scott Mansell eddea7f15f Merge pull request #3181 from JosJuice/scrub-directories
Don't reserve space for directories when scrubbing
2015-11-17 10:37:09 +13:00
Scott Mansell cea8c5bd56 Merge pull request #3262 from JosJuice/return-blobtype
DolphinQt: Fix typo of return m_blob_type;
2015-11-16 08:35:51 +13:00
Scott Mansell 18afbe6490 Merge pull request #3210 from degasus/efbcopy
TextureCache: Efb Copy Separation
2015-11-16 00:13:42 +13:00
Scott Mansell 19e3fba59f Merge pull request #3255 from mickdermack/pr-hidrace
Fix a race condition on shutdown between Memory and CWII_IPC_HLE_Device_hid
2015-11-13 23:54:33 +13:00
Scott Mansell d6b2fcaa71 Merge pull request #3242 from phire/less-warnings
XFMem: Don't warn on writes of zero to unknown registers.
2015-11-10 00:20:02 +13:00
Scott Mansell 8b3c2c1ba7 Merge pull request #3241 from phire/nogui-assert
NoGui: Return no to yes/no panic alerts.
2015-11-08 21:51:21 +13:00
Scott Mansell 636bedb207 XFMem: Don't warn on writes of zero to unknown registers. 2015-11-08 14:59:55 +13:00
Scott Mansell 2d38a59044 NoGui: Return no to yes/no panic alerts.
Also, print to stderr instead of stdio.
2015-11-08 14:10:26 +13:00
Scott Mansell 973118511a Merge pull request #2742 from AdmiralCurtiss/display-savestate-stats
Display Savestate information in Overlay and Menu.
2015-11-08 02:20:56 +13:00
Scott Mansell bdbe8e3691 Merge pull request #3238 from phire/fifo_version_number_fixes
Fifoplayer: Load the Correct version number.
2015-11-08 01:50:26 +13:00
Scott Mansell e6274284b0 Fifoplayer: Load the Correct version number. 2015-11-08 01:24:08 +13:00
Scott Mansell 85144f5f77 Merge pull request #3233 from phire/remove-show-efb-copy-regions
[RFC] Remove the "Show EFB Copy Regions" debug option.
2015-11-05 21:04:34 +13:00
Scott Mansell 290466d57a Merge pull request #3231 from spxtr/Pipes
Fix some bugs in Pipe input parsing
2015-11-05 20:31:03 +13:00
Scott Mansell 51c984dde3 Remove the "Show EFB Copy Regions" debug option.
It was only implemented in OpenGL, though the option was visible in both
backends, leading to memory leaks if you enabled it in DirectX.

And it wasn't particularly useful as a debug feature as it only showed
where in the EFB the copies were taken from, not what format it was, or
what the copy was used for, or what content was in the EFB at that point
in time.

Also, it stretched the copy regions relative to the window, so the
on-screen regions don't even line up with the window unless the game used
the full EFB (some pal games) and you game image stretched to the full
window.
2015-11-05 18:15:46 +13:00
Scott Mansell fc48ff9791 Merge pull request #3225 from phire/moredebug
BPStructs: add debug info for texture setup.
2015-11-05 00:30:10 +13:00
Scott Mansell ba7b7522be BPStructs: add debug info for texture setup. 2015-11-05 00:13:25 +13:00
Scott Mansell 008386fc7f Just a minor cleanup. Totally not the cause of random FifoCi failures.
This 'absolutely not' a read of uninitialized memory is '100% not'
the cause of our non-deterministic behavior on the Intel NUC.

If there was a such an error, it would show up on all FifoCi
backends equally. This is 'probably' unrelated to the fact that
the Intel NUC is the only fifoci runner not running under virtualization.
2015-11-04 23:23:35 +13:00
Scott Mansell 05b06b7a21 Merge pull request #3227 from Tilka/sizeof
OGL: don't hardcode buffer sizes
2015-11-04 14:35:23 +13:00
Scott Mansell e161e714c7 Merge pull request #3226 from Tilka/shadergen
VideoCommon: return code/uid from shader gens
2015-11-04 13:42:49 +13:00
Scott Mansell 55c5ab5a21 Merge pull request #3220 from phire/ubuntu14.04
CMake: Fix FindMiniupnpc for ubuntu 14.04
2015-11-02 18:46:45 +13:00
Scott Mansell 4fa3ddcbf6 CMake: Fix FindMiniupnpc for ubuntu 14.04
Ubuntu 14.04 has miniupnpc 1.6.3
REGEX was failing because the string was empty, causing cmake to
error and not generate a Makefile.

This allows systems with older versions of miniupnpc to fall back
to the statically linked version in externals.
2015-11-02 18:00:06 +13:00
Scott Mansell 0245b1219b Correct capitalization of 'Visual Studio' 2015-11-02 17:12:09 +13:00
Scott Mansell 2ccd5a5928 Bitfield: Add BSD license to match BitField.h
Also, fix typo.
2015-11-01 18:01:51 +13:00
Scott Mansell f0e5232fe0 Bitfield: And then mess things up again by handling signed fields.
This is way more messy than it should be.
2015-10-30 14:05:14 +13:00
Scott Mansell 9125ab8304 BitField: Clean .natvis up slightly by using CDATA. 2015-10-30 14:04:40 +13:00