connection establishment be done in the same thread, which caused
problems when the now persistent device connections could be
initiated by either opening the wiimote config dialog or starting
the emulation.
This same thread doesn't necessarily have to be the main (GUI)
thread, but it fits with the current other init case in the wiimote
config dialog and doing it in the main thread and would be required
if we should want to use the IOBluetoothUI framework in the future
for having the user input a pairing key for permanent syncing.
Also move a few other bits of code from the emu thread function
into Init() and Shutdown() so it only does those things that need
to be in that thread's context. I am not sure about video setup
so I have left that in EmuThread() for now.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7188 8ced0084-cf51-0410-be5f-012b33b47a6e
- ReImplementing Single Core Mode like Dual Core Mode Style.
- Stage 1: My goal is, we have the Fifo, CommandProccessor code the more clear, maintenible and documented possible. When I quit dolphin I want any developer can continue with the work only reading the code.
* Big Refactoring: A lot of functions was changed the names, and modularized.
Now the FifoLoop and CatchUpGPU does not exist, was replaced by RunGpu() and RunGpuLoop().
The general idea is modeling the code like the real HW. The fifo is only a buffer where the Write Gather Pipe write the commands and from the Graphic Processor read these.
* Big Clean UP a lot of obsolete code and comments was deleted, like DcFakeWachDog, "Fifo very soon hack", etc.
In the stage 2, I will refactoring more code doing emphasis in the division of CommandProcessor, Fifo, Gpu Emulation. Beside I will comment all functions and variables in the code (Don't worry I will ask for English help for this part ;) )
Please test a lot SC mode and DC mode :)
Thank you so much for testing always and the patience. I don't like broke your favorite game but... you must believe me this part is very sensible, I only try to contribute for have a better and stable dolphin emulator.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7185 8ced0084-cf51-0410-be5f-012b33b47a6e
Things break if both a shared and static libpng are linked
in, presumably because it has some global state. Several of
the gtk-ish libraries often, but not always, link in libpng
transitively, so it is important that we find it ourselves
first, even if it is not in the linker's search path.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7178 8ced0084-cf51-0410-be5f-012b33b47a6e
Changes:
* Allow events to be scheduled when the emulator is not running. This allows the save state event to be added before the emulator starts.
* Removed the Audio back-end init flag from the save state. This value should not be saved as it is not data relevant to guest machine.
* Allow a recording to be started at any time (apart from when a recording is already being made).
* Updated the status bar and title bar when an on-screen message is shown
* Removed the saving of PEToken from the save state as the FIFO will save this information
* Added a couple Pixel Engine interrupt states to the save state
* Added the copyright notice to the GCPadStatus.h file.
This function is preliminary. Let us know of any bugs you find or any UI quirks.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7175 8ced0084-cf51-0410-be5f-012b33b47a6e
This allows ALL settings in the gfx configuration dialog to be adjusted _per game_ in a more user-friendly way than before.
Obsoletes the gfx related options in the ISO properties, but I kept those since the configuration profiles use different ini file keys (i.e. convert the game inis to the new naming, please!).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7167 8ced0084-cf51-0410-be5f-012b33b47a6e
- This game read the CPRead pointer when the GP is processing data and after detach the fifo and attach again an use this pointer for continue, so implement fifo.SafeCPReadPointer pointer.
- fifo.SafeCPReadPointer is updated when (FAKE_GetFifoEndPtr() - g_pVideoData) == 0) to have a pointer without GFX Commands Cut in the beginning of 32 block.
- Reset video buffer when the CPReadWriteDistance is written by the software.
- This commit is experimental please test a lot your games.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7165 8ced0084-cf51-0410-be5f-012b33b47a6e
Also verify the validity of gfx configuration directly after loading rather than in the GUI code (which was kinda stupid anyway).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7164 8ced0084-cf51-0410-be5f-012b33b47a6e
- In the Command Processor Control Register when GPReadEnable is OFF, wait until the fifo lopp finish with thi actual 32 bytes block. This is necessary to have Safe Disabble GP Read in this way AbortFrame is performed by the software, beside this can help to have accurate GPReadEnable OFF.
Please test Metroid Prime 1/2, Guilty Gear XX, X men gc, SMG, and shuffle you can test Harry Potter Prince for WII. :)
PD: The fifo code need a clean very soon.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7158 8ced0084-cf51-0410-be5f-012b33b47a6e
Looks like compilers tend to use EBX for parameters if not told otherwise and
don't bother to update SP in leaf functions, so PUSH/POP kill local variables.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7151 8ced0084-cf51-0410-be5f-012b33b47a6e
* Better control over which Wiimotes save/load input from input files (general sync improvement).
* Wiimote save stores the ACLQ, allowing maintaining control across save/load (thanks to skid for the idea).
* Wiimote reconnect on save/load now an option - enabled by default to preserve present behaviour. Disabling this allows the above change to be effective.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7147 8ced0084-cf51-0410-be5f-012b33b47a6e
* Frame counter is restored properly post-load.
* "Read-only mode" menu option added. Currently this either causes the movie file to be closed at the end of playback (if enabled) or continues recording past end of playback (if disabled).
* Can now properly resume recording from a state saved during movie playback.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7142 8ced0084-cf51-0410-be5f-012b33b47a6e
Fixed Gamecube controllers being disconnected for a couple ingame seconds when loading a savestate with an input movie attatched.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7141 8ced0084-cf51-0410-be5f-012b33b47a6e
Update several of the other languages.
Fix those pesky DSPIntUtil.h compiler errors.
Clean up some remnants of building the plugins in the primary CMakeLists.txt file.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7127 8ced0084-cf51-0410-be5f-012b33b47a6e
I think that isFifoBusy bring better sync with VI (video interface) because the CPU emulated threads are waiting for DrawDone in BP Register. So, I do some modifications.
1) Rename "IsFifoBusy" by "isPossibleWaitingSetDrawDone"
2) Only activate isPossibleWaitingSetDrawDone when bFF_GPLinkEnable is true in fifo loop "Inmediate mode" that is because in theory this drawsync function is using in this mode.
3) Deactivate isPossibleWaitingSetDrawDone also in SetFinish in PixelEngine, beside when 32 block is finish.
Please regression in yours games thats can bring some FPS more above all with VPS frame limiter ON (Auto, 60, 50, etc).
- Fix waiting in AbortFrame(), please test mp1/mp2 is fixed again.
Good look!
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7123 8ced0084-cf51-0410-be5f-012b33b47a6e
Move NetPlay code from DolphinWX to Core.
Even NetPlay with nowx should be possible now if anyone felt like implementing a CLI for it ;)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7119 8ced0084-cf51-0410-be5f-012b33b47a6e
this is marcos idea so the credits go to him.
please test the broken games in my last commits to see if this solve all the issues.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7114 8ced0084-cf51-0410-be5f-012b33b47a6e
buildfix
move much of the build settings to .props files
-please use them as much as possible in the future, instead of changing individual projects
NOTE: to avoid left over blobs, clean your builds *before* applying these changes.
TODO: add DebugFast target for projects that are lacking it. Lack of DebugFast targets cause the linker to use LTCG when we don't want it.
please test for regressions which could be caused by being too happy with compiler flags :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7109 8ced0084-cf51-0410-be5f-012b33b47a6e
whit this code hashing is completely disabled for the dlists content itself this must bring some fps more but i must know if this causes any glitches.
i suspect that no game modify the content of the dlist so hash is time wasted but the only way to test it is with this commit.
please test as many games s you can and give me feedback for any glitch.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7106 8ced0084-cf51-0410-be5f-012b33b47a6e
- Added full ability to recognize true Intel HTT CPU capability (support to discriminate Intel Core 2 Duo...)
- Attempt to fix a register trashing (issue 4022 generally, linux and mac systems)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7097 8ced0084-cf51-0410-be5f-012b33b47a6e
problems, whole functions in .h files need to also be static in
case they are included in several .cpp files.
Also a few other minor LTO fixes.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7082 8ced0084-cf51-0410-be5f-012b33b47a6e
Changed non-hi-res textures to use MurmurHash3, which has better performance that the previous hash.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7080 8ced0084-cf51-0410-be5f-012b33b47a6e
Re-fixed custom textures higher than 1024x1024. (It must have accidentally got reverted somewhere during the video plugin merge)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7064 8ced0084-cf51-0410-be5f-012b33b47a6e
and just operate on lists of object files instead.
This helps with LTO since LLVM/clang LTO is completely broken
by static libraries. It also helps identify symbol clashes
between components like the former plugins.
Many linkers also expect static libraries to form a strict DAG
which turns out be a difficult rule to uphold in practice,
especially since some of our platforms aren't picky about this.
LTO builds currently appears to crash at runtime because of
the static wx libs.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7056 8ced0084-cf51-0410-be5f-012b33b47a6e
Fix another minor issue with frame dumping.
Add the graphics config dialog button back to the main config.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7041 8ced0084-cf51-0410-be5f-012b33b47a6e
* Tightened the timing between the CPU and the DSP in thread mode so that it works closer to how the non-threaded mode works. The CPU now waits for all of the DSP cycles to be exhausted before adding more cycles.
* DSP Idle skipping has been disabled as it messes up the timing when it is running in a thread.
* Checked for external interrupt requests before entering the dispatcher and inside the dispatcher loop
* Added a critical section around the mailbox read high function
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7040 8ced0084-cf51-0410-be5f-012b33b47a6e
fix all build targets (they've all built here - you may have to manually delete the intermediate directories if you have conflicts after this commit).
set the debug path to $(TargetDir)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7022 8ced0084-cf51-0410-be5f-012b33b47a6e
Added SSE optimizations to JIT LLE, up to 136% speedup observed in Resident Evil games.
Rewrote the GUI to make it more user friendly, added a User friendly Setup.
Also Billiard please: learn to merge.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7000 8ced0084-cf51-0410-be5f-012b33b47a6e
Update pot file to reflect recent changes in strings in the code.
Make the Host_GetKeyState routine thread safe on linux.
Clean up config main, and migrate the plugin selection to the display tab.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6994 8ced0084-cf51-0410-be5f-012b33b47a6e
Properly pause the core when saving/loading savestates, previously we used PowerPC::Pause() and Start() which only update the state but doesn't properly set m_StepEvent and caused random hangs.
Fixed hang when creating a savestate while the game was paused or in Frame Advance mode, now the thing works (just remember to press play duh).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6992 8ced0084-cf51-0410-be5f-012b33b47a6e
Fix some debugger issues. Still need to get sound window working, but the invalid id panic alert is fixed.
Also, a ";" as a comment in an ini file is now only allowed at the beginning of a line. The debugger has settings strings with semicolons in them. That completely broke the debugger.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6989 8ced0084-cf51-0410-be5f-012b33b47a6e
and use wxGetKeyState on platforms other than Windows.
I am not sure if wxGetKeyState is unreliable on Windows or if
the use of GetAsyncKeyState() is simply historical, but for now
I've left the Windows call in there just in case.
This does mean that Host_GetKeyState() is currently only valid
for the small set of keycodes that overlap between wx and Win32,
one of which is VK_TAB/WXK_TAB.
Anyway, please test wxGetKeyState on Windows and remove the
ifdef if it works, so we can extend it to the remaining hotkeys.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6988 8ced0084-cf51-0410-be5f-012b33b47a6e
- dislocating all sensible stuff related to "values per game/pattern" outside the sourcecode.
- giving more control to end-users across the user-friendly interface.
- deleting/cleaning some dead variables.
- updating all gameconfig.ini data to reflect new PHack concept (pending upload).
* Updated Italian translation
- Includes corrections, a better strings translating and suggestions directly by Google Code's people.
+ Minor old pending changes...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6973 8ced0084-cf51-0410-be5f-012b33b47a6e
- Reimplemented AbortFrame. Now the Write Gather Pipe buffer is reseted and Read Write Distances is reseted before the game do it instead the process all GP CPRWDistance for prevent CP wrong pointers.
This fifo reset should be more accurate, efficient and smooth the FPS when happens. Please, test regresion of SMG1 and SMG2 or others games with FIFO RESETS.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6971 8ced0084-cf51-0410-be5f-012b33b47a6e
assumption on the part of many linkers that static libraries make
up a DAG, so merge libdspcore into libcore.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6967 8ced0084-cf51-0410-be5f-012b33b47a6e
Back out r6960 for now. The wxGLCanvas may need to be persistent
and owned by DolphinWX in the rendertomain case.
Disambiguate SWVideoConfig.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6962 8ced0084-cf51-0410-be5f-012b33b47a6e
This makes the OS X build more robust and should help pave the
way for the integration of the video plugins as well as LTO.
There are now no more global class level namespace conflicts left,
as evidenced by the fact that Dolphin can be linked with -all_load,
not that you would want to.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6958 8ced0084-cf51-0410-be5f-012b33b47a6e