Commit Graph

6861 Commits

Author SHA1 Message Date
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
Matt Mastracci
1e08ad0d97 Add MOV optimization and MOV_sum
Replaces incarnations of the A=B+C pattern throughout the
code so we can apply optimizations consistently.
2016-06-27 15:43:52 -06:00
Matt Mastracci
b1296a7825 Refactor fastmem/trampoline code.
Simplication to avoid reading back the generated instructions, allowing
us to handle all possible cases.
2016-06-27 14:58:20 -06:00
Markus Wick
ddc9e414ee Merge pull request #3454 from mmastrac/gqr_fixes
JIT perf improvements for quantized loads/stores
2016-06-27 18:31:50 +02:00
Lioncash
1dee75a68e FifoRecorder: Use lock_guard instead of explicit lock/unlock 2016-06-27 04:15:16 -04:00
Matt Mastracci
4aa5291f54 Refactor the paired load/store code
Simplification/reduction of duplicated code. Detect other constant GQR values and inline loads (5-10% speedup) and do direct dispatch to AOT methods for stores.
2016-06-26 19:49:02 -06:00
degasus
d79aeaa1e9 VideoCommon: Drop GetConfigName.
We're past 5.0 now, so there is no need to look for old inis.
2016-06-26 12:34:59 +02:00
degasus
ca96302a36 PowerPC: Dedoublify CheckExternalExceptions. 2016-06-26 11:29:25 +02:00
degasus
4c5f8f9c91 CoreTiming: Drop ProcessFifoWaitEvents.
globalTimer is only written in Advance, so this function has no function.
2016-06-26 11:29:25 +02:00
Matthew Parlane
2776bcbf55 Merge pull request #3903 from leoetlino/wiimote-disconnect
Disconnect real Wiimotes when disconnected by games (not on all platforms)
2016-06-26 18:33:09 +12:00
Mat M
8d1a70af9a Merge pull request #3945 from comex/warning-fixes-2016
Warning fixes 2016
2016-06-26 02:16:35 -04:00
Mat M
c896645313 Merge pull request #3947 from magumagu/interpreter-cleanup
Misc cleanup in Interpreter.
2016-06-26 02:11:09 -04:00
Mat M
8d2137ba85 Merge pull request #3948 from magumagu/dead-bfakemem
Delete dead variable named bFakeVMEM.
2016-06-26 02:10:13 -04:00
magumagu
1c28a27ee4 Delete dead variable named bFakeVMEM.
(There's another bFakeVMEM in Memmap.h.)
2016-06-25 23:05:55 -07:00
magumagu
b5ed27ffa8 Misc cleanup in Interpreter.
Mostly comment changes; also gets rid of an unnecessary call to
CheckExceptions.
2016-06-25 22:52:17 -07:00
comex
efef07293b Suppress deprecation warning. 2016-06-26 00:49:51 -04:00
magumagu
e01a33f69b Make reset button (Emulation -> Reset) work correctly for Wii games.
Fixes issue 8328.

As far as I know, this works the same way as console. Games will generally
react to the reset button the same way as Home->Reset, so this is
only marginally useful, but possibly nice to have in certain situations.

Note that if you try to use Reset, and you're running a WAD which isn't
installed, it will likely crash because WADs respond to the reset button
by launching themselves with ES_LAUNCH.  It might be a good idea to add some
sort of hack to make this work as expected.

It would be easy to extend this to support the power button, but it's
unclear how exactly that should be exposed in the UI. See also issue 8979.

Needs to be rebased once PR #3811 is merged.
2016-06-25 21:21:44 -07:00
degasus
59e4882af3 nullvideo: initial release of null video backend 2016-06-25 22:40:23 +02:00
Matthew Parlane
afa202738e Merge pull request #3865 from leoetlino/third-party-wiimotes
Change Bluetooth device discovery on Linux to use LIAC (updated #3327)
2016-06-26 00:17:57 +12:00
Bryan Grim
92c572a83d Change Bluetooth device discovery on Linux to use LIAC
This changes Bluetooth device discovery on Linux to use LIAC (Limited
Dedicated Inquiry Access Code) since third-party Wiimotes (such as Rock
Candy Wiimotes) are not discovered without it.

Also added accessor function in IONix class to help with checking if
the discovered Wiimote has already been found.

[leoetlino: code review suggested changes, remove unused variable,
commit message formatting fixes, and build fix]
2016-06-25 12:34:45 +02:00
Rohit Nirmal
84cd57f99b Fix building with PCH disabled. 2016-06-24 11:46:48 -05:00
Lioncash
2904e96f1e Core: Use the thread_local keyword
Android and OSX are still twiddling their thumbs though,
so we have to keep pthreads around for them.
2016-06-24 09:14:10 -04:00
Léo Lam
d575b40c73 Disconnect real Wiimotes when disconnected by games
This commit makes real Wiimotes really disconnect when they are
disconnected by the emulated software, which is more similar to how
it works with a real Wii and allows Wiimotes to be disconnected after
timeout for power saving.

This is currently only enabled on Linux, because of limitations on
the other platforms.
2016-06-24 14:47:39 +02:00
Pierre Bourdon
2fdfacd6d9 Add clang-format markers around fragile header inclusions. 2016-06-24 13:24:10 +02:00
Pierre Bourdon
5fcb4bb3ab Further fixes to the formatting change. WX sucks. 2016-06-24 12:16:10 +02:00
Pierre Bourdon
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Pierre Bourdon
2115e8a4a6 Add annotations for code sections that need to remain manually formatted. 2016-06-24 10:41:46 +02: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
Pierre Bourdon
5982072a44 analytics: More accurate video backend name. 2016-06-19 16:36:18 +02:00
Pierre Bourdon
121f270367 Add an Analytics reporting system.
Fully opt-in, reports to analytics.dolphin-emu.org over SSL. Collects system
information and settings at Dolphin start time and game start time.

UI not implemented yet, so users are required to opt in through config editing.
2016-06-19 02:55:46 +02:00
Pierre Bourdon
c514a48f4d Merge pull request #3776 from EmptyChaos/ar-isoprop-corrupt
ActionReplay: Fix ISOProperties corrupting active code set
2016-06-05 09:29:51 +02:00
Mat M
a3e2436446 Merge pull request #3872 from JosJuice/movie-revision-nonhexadecimal
Movie: Improve handling of non-hexadecimal revision strings
2016-06-02 14:13:08 -04:00
JosJuice
9681fee86a Movie: Improve handling of non-hexadecimal revision strings 2016-06-02 18:55:35 +02:00
Matthew Parlane
7a99312687 Merge pull request #3873 from JosJuice/argh
Undo the addition of a translatable string during the string freeze
2016-05-31 08:46:25 +12:00
JosJuice
e5ffc91265 Undo the addition of a translatable string during the string freeze 2016-05-30 22:41:08 +02:00
EmptyChaos
6ab1b27477 ActionReplay: UI Consistency and Cleanup
Cleanup code style.

Move ActionReplay code->INI saving into ActionReplay namespace.

Threadsafety Cleanup: ActionReplay is accessed from the Host, Emu
and CPU Threads so the internal storage needs to be protected by a
lock to prevent vectors/strings being deleted/moved while in use by
the CPU Thread.

UI Consistency: Make ARCodes behave like Gecko Codes - only apply
changes when Apply is pressed. Save changes to INI from CheatsWindow.

ISOProperties/CheatsWindow now synchronize with each other.
2016-05-29 23:33:24 +10:00
EmptyChaos
25b072ff2b ActionReplay: Fix ISOProperties corrupting active code set
ISOProperties loads codes using ActionReplay::LoadCodes which actually applies
the codes to the global state. If a game is running then that games receives
all the codes (and ACTIVE status) from the second game being shown in
ISOProperties which is not desirable.
2016-05-29 23:33:24 +10: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
mimimi085181
1d90719abe Fix latency regression
On master, when polling the 1st in-game controller, Dolphin would poll all the 1st local controllers. With the 1st commit, each client waits its turn, which would dramatically increase the lag.

Now with this commit, it even polls all local controllers at once, so it should have even less latency than master in a few setups. Like one player with 3 controllers and the 2nd one with just one controller.
2016-05-24 22:13:40 +02:00
mimimi085181
ca9027879b Netplay: Fix gamecube controller mapping
This fixes issues with setups like:
Player 1 uses port 1 and player 2 uses port 3, or
player 1 uses port 2 and player 2 uses port 3, so nobody uses port 1
2016-05-24 21:59:36 +02:00
Mat M
08d45b9fea Merge pull request #3794 from EmptyChaos/frame-advance-race
Core: Add synchronization to state changes (Fix Frame Step and FIFO Player -  Issue 8718)
2016-05-22 15:19:16 -04:00
Markus Wick
ff4bc5f33d Merge pull request #3854 from degasus/arm
JitArm64: Implement MMU handling.
2016-05-21 08:46:22 +02:00
Markus Wick
ca728d792a Merge pull request #3802 from mathieui/netplay-disable-wiimotes-for-real-i-swear
Disable wiimotes on game start if running in netplay
2016-05-20 12:38:21 +02:00
mathieui
ef0f164343 Disable wiimotes on game start if running in netplay
And restore the settings on game quit
2016-05-20 12:05:29 +02:00
Markus Wick
de0f93f636 Merge pull request #3851 from JosJuice/revision-20
Movie: Better safety when writing to s_revision
2016-05-20 10:18:30 +02:00
degasus
c5e8238cc7 JitArm64: Fix dispatcher with MMU. 2016-05-20 08:32:16 +02:00
degasus
8e902abca3 JitArm64: Implement DSI exception.
Ok, this falls back on all memory instructions, but it's a way to start.
2016-05-20 08:32:16 +02:00
degasus
5db61b4bbb JitArm64: Fix broken block handling. 2016-05-19 19:20:44 +02:00
degasus
37e2e92e33 JitArm64: Handle ISI excepction. 2016-05-19 19:20:44 +02:00
degasus
95ebb2991f JitArm64: Check Exceptions on mtmsr. 2016-05-19 19:20:44 +02:00
degasus
782c68cf00 JitArm64: Clean up LWZ idle skipping. 2016-05-19 19:20:44 +02:00
JosJuice
a399966751 Movie: Better safety when writing to s_revision 2016-05-19 12:29:50 +02:00
Markus Wick
da3b03c61d Merge pull request #3829 from phire/timing_madness
Increase Audio DMA Interrupt delay to 200 cycles (Fix assorted Namco games)
2016-05-18 20:14:02 +02:00
Markus Wick
ae5d6003cd Merge pull request #3758 from phire/minor_core_timing_fix
CoreTiming: Trim max slicelength to the given value.
2016-05-18 17:56:02 +02:00
Markus Wick
e2d65778fc Merge pull request #3816 from magumagu/neogamma-hack
Add hack to IPCHLE to make NeoGamma work.
2016-05-18 17:49:58 +02:00
Markus Wick
5a36b7db24 Merge pull request #3811 from magumagu/eslaunch-timing
Fix timing regression affecting ES_LAUNCH.
2016-05-18 17:15:30 +02:00
Markus Wick
60e7c78007 Merge pull request #3840 from degasus/arm
JitArm64: Faster block linking.
2016-05-18 16:49:01 +02:00
Mat M
e5bafeb40a Merge pull request #3821 from mathieui/gcadapter-no-device
Fix a hang with the GC Adapter
2016-05-13 21:36:51 -04:00
degasus
637851fce0 JitArm64: optimize bclrx
the unconditional path is the most common, so no need to switch to far code here.
2016-05-14 00:05:55 +02:00
degasus
b6f16352e4 JitArm64: Check downcount on block linking.
This skips one B() call.
2016-05-14 00:04:58 +02:00
degasus
10e716c623 JitCommon: Pass jit block instead of host pointer on linking.
So the JIT may do more fancy stuff.
2016-05-14 00:04:58 +02:00
degasus
cf3c65fbd0 JitArm64: Use B() instead of BR() to jumo to ASM.
Avoid indirect jumps as good as possible. This is a noticeable speedup.
2016-05-14 00:04:58 +02:00
degasus
b2be9bd7f7 JitArm64: Inline JitAsm in JitArm64.
So they share the same emitter, and so they are in the same 128MB range.
This allows us to use B() to jump to the dispatcher.

However, so we have to regenerate them on every cache clear.
2016-05-14 00:04:58 +02:00
EmptyChaos
c1944f623b Core/Movie: Add ability to run code in Host context
EndPlayInput runs on the CPU thread so it can't directly call
UpdateWantDeterminism. PlayController also tries to ChangeDisc
from the CPU Thread which is also invalid. It now just pauses
execution and posts a request to the Host to fix it instead.

The Core itself also did dodgy things like PauseAndLock-ing
from the CPU Thread and SetState from EmuThread which have been
removed.
2016-05-13 09:23:44 +10:00
EmptyChaos
e8dfc8e654 Movie: Threadsafety Audit
Fix TASInputDlg which was trying to access the GUI without the GUI
lock from the CPU Thread.
2016-05-13 09:23:44 +10:00
EmptyChaos
c1922783f8 Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer)
Fix Frame Advance and FifoPlayer pause/unpause/stop.

CPU::EnableStepping is not atomic but is called from multiple threads
which races and leaves the system in a random state; also instruction
stepping was unstable, m_StepEvent had an almost random value because
of the dual purpose it served which could cause races where CPU::Run
would SingleStep when it was supposed to be sleeping.

FifoPlayer never FinishStateMove()d which was causing it to deadlock.
Rather than partially reimplementing CPU::Run, just use CPUCoreBase
and then call CPU::Run(). More DRY and less likely to have weird bugs
specific to the player (i.e the previous freezing on pause/stop).

Refactor PowerPC::state into CPU since it manages the state of the
CPU Thread which is controlled by CPU, not PowerPC. This simplifies
the architecture somewhat and eliminates races that can be caused by
calling PowerPC state functions directly instead of using CPU's
(because they bypassed the EnableStepping lock).
2016-05-13 09:23:44 +10:00
mathieui
8f0cbefbe5 Disable part of the adapter features for netplay
In order to avoid desyncs
2016-05-12 23:31:51 +02:00
Matthew Parlane
356f709537 Merge pull request #3810 from mathieui/fix-adapter-recording-savestate
Fix loading save states with input recording with the adapter
2016-05-12 20:53:04 +12:00
mathieui
2a0ba5aaa6 Fix loading save states with input recording with the adapter
Intended fix for issue #9508
2016-05-12 10:45:03 +02:00
mathieui
8d23ebaa6b Revert "Fix netplay desync when using wii-u adapter."
This reverts commit 429ae8fb01.

 Conflicts:
	Source/Core/Core/HW/SI_DeviceGCAdapter.cpp
	Source/Core/Core/HW/SI_DeviceGCAdapter.h
2016-05-12 02:01:35 +02: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
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
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
ea82fcc24f Merge pull request #3658 from Tilka/helpers
Interpreter: simplify some helpers
2016-05-03 22:44:27 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
21eb1cd158 Merge pull request #3635 from phire/lazy_comex
Implement BLR Overflow handling for Windows.
2016-03-26 01:42:54 +01: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
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
Scott Mansell
c5b3a2efac Implement BLR Overflow handling for Windows. 2016-03-20 00:41:28 +13: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
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
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
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
İ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
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
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
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
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
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
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
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
degasus
68defb72a3 JitArm64: Don't generate the carry if it's not used any more. 2016-02-27 21:27:29 +01:00
JosJuice
9427d6efb9 DVDInterface: Log seek offsets with a more intuitive sign 2016-02-27 15:20:49 +01:00
Pierre Bourdon
1b37b39d64 Merge pull request #3673 from mmastrac/dvd_nobackwardsbuffer
[DVD] Ignore buffer when seeking backwards
2016-02-26 13:14:47 +01:00
Pierre Bourdon
1d07fee367 Merge pull request #3432 from stenzek/bba-tap-win
EXI: Refactor Windows BBA-TAP interface to a read thread, crash fixes, cleanups
2016-02-26 12:46:20 +01:00
mathieui
4fe2886c2c [netplay] Use the device only if it’s a gc controller or similar
(bad things could happen if we wire up the gba with netplay)
2016-02-25 22:58:21 +01:00
mathieui
7b2c54ad93 [Movie] allow recording with any pad
(bongo/dancemat/adapter…)
2016-02-25 22:58:21 +01:00
mathieui
d61ef9a95a [SI] add a way to check if the current controller is a gcpad
(or gcpad-compatible)
2016-02-25 22:58:17 +01:00
Matt Mastracci
f1a5d6c104 [DVD] Ignore buffer when seeking backwards
Unfortunately this fix re-breaks Arc Rise Fantasia, so we must restore its INI as well.
2016-02-25 12:09:25 -07:00
degasus
3286bbd9bd JitArm64: Track single precision in ps_sel. 2016-02-25 19:47:07 +01:00
degasus
141e299161 JitArm64: Track single precision in fctiwzx. 2016-02-25 19:47:07 +01:00
degasus
e0793a274f JitArm64: Track singles in fselx. 2016-02-25 19:47:07 +01:00
degasus
b4d0307b25 JitArm64: Remove LoadTo* helpers. 2016-02-25 19:47:07 +01:00
degasus
2112d8dfda JitArm64: Replace REG_IS_LOADED with REG_LOWER_PAIR 2016-02-25 19:47:07 +01:00
degasus
c30a66b2d5 JitArm64: Track singles in fabs. 2016-02-25 19:47:07 +01:00
degasus
84395b65f6 JitArm64: Track singles in psq_st. 2016-02-25 19:47:06 +01:00
degasus
fe87462be8 JitArm64: Track singles in stfs. 2016-02-25 19:47:06 +01:00
degasus
5fad3d94a0 JitArm64: Track singles in fcmpX. 2016-02-25 19:47:06 +01:00
degasus
c8948ff8c7 JitArm64: Track single precision in ps_maddXX. 2016-02-25 19:47:06 +01:00
degasus
7fd68c8761 JitArm64: Track singles in ps_sumX. 2016-02-25 19:47:06 +01:00
degasus
ca091b9e92 JitArm64: Track single precision in ps_res. 2016-02-25 19:47:06 +01:00
degasus
d185d2f704 JitArm64: Track singles in ps_mulsX. 2016-02-25 19:47:06 +01:00
degasus
6572790d8b JitArm64: Track singles in ps_mergeXX. 2016-02-25 19:47:06 +01:00
degasus
5506295123 JitArm64: Track singles in frspx. 2016-02-25 19:47:06 +01:00
degasus
0efdd5cacd JitArm64: Track singles in paired fp_logic. 2016-02-25 19:47:06 +01:00
degasus
003288a886 JitArm64: Track singles in fp_arith. 2016-02-25 19:47:05 +01:00
degasus
ae1b5ff9e8 JitArm64: Track single precision in load/store. 2016-02-25 19:47:05 +01:00
degasus
1e59dc1025 JitArm64: Single precision tracking. 2016-02-25 19:47:05 +01:00
Chris Burgener
4aa6f6c812 Apply Wii Settings on Movie Recording/Playback 2016-02-24 21:22:37 -05:00
Ryan Houdek
0e7401f350 Merge pull request #3639 from ASSympt0te/toggle-frame-limit-changes-fixes
Reword "Toggle Frame Limit" to better explain function
2016-02-24 12:15:11 -05:00
Sintendo
00cc59e83a VideoInterface: Fix comment typo 2016-02-21 09:39:01 +01:00
Tillmann Karras
3b2e170f0b Interpreter: simplify subtable handling 2016-02-20 02:20:41 +00:00
Tillmann Karras
b291b0a7c2 Interpreter: simplify mask helper 2016-02-20 01:03:46 +00:00
Tillmann Karras
af5ff9941a Interpreter: deduplicate CR0 helper 2016-02-20 01:03:37 +00:00
James Cowgill
db8dbae131 Fix some very minor spelling mistakes
Found by Lintian https://lintian.debian.org/
2016-02-19 01:48:10 +00:00
Pierre Bourdon
05f5668bcc Merge pull request #3591 from phire/VC_widescreen
Make all Virtual console games 4:3 (and cleanup GameInis)
2016-02-16 00:41:33 +01:00
blendmaster345
c61625cdd3 Relabel hotkey option for toggle frame limit to better reflect function 2016-02-15 04:11:21 -06:00
Pierre Bourdon
14cdf82a69 Merge pull request #3638 from lioncash/mmio
Memmap: Make the MMIO mapping a unique_ptr
2016-02-15 10:29:40 +01:00
Lioncash
b36b10fa78 Memmap: Make the MMIO mapping a unique_ptr 2016-02-15 00:02:00 -05:00
Matt Mastracci
4e6f58d82e [DVD] Signedness fix in realistic timing path 2016-02-14 14:27:08 -07:00
Ryan Houdek
cafc879b7c Merge pull request #3617 from degasus/arm
JitArm64: Merge FP functions.
2016-02-13 18:57:01 -05:00
Tillmann Karras
797431dda4 MMIO: correct error message 2016-02-13 17:42:24 +00:00
degasus
f259a8d6cf JitArm64: Merge more stuff into ps_maddXX. 2016-02-12 23:26:47 +01:00
degasus
8b32cd0738 JitArm64: Merge ps_sumX. 2016-02-12 10:09:57 +01:00
degasus
2d8e1bc34d JitArm64: Merge PS stuff into fp_logic. 2016-02-12 10:09:57 +01:00
degasus
52f9912c46 ArmJit64: Merge FP two operant instructions. 2016-02-12 10:09:57 +01:00
degasus
157404fd1e JitArm64: Merge ps_mulsX. 2016-02-12 10:09:57 +01:00
degasus
09af32c063 JitArm64: Merge ps_mergeXX. 2016-02-12 10:09:57 +01:00
degasus
1b6d9dfc4e JitArm64: Merge ps_maddsX. 2016-02-12 10:09:57 +01:00
degasus
19713f7c14 JitArm64: Merge scalar 4-operant instructions. 2016-02-12 10:09:53 +01:00
degasus
9c048bbc36 JitArm64: Also merge 3 way FP-PS instructions. 2016-02-10 17:41:25 +01:00
degasus
83eb1d8c31 JitArm64: Merge 3 way FP instructions. 2016-02-10 17:41:25 +01:00