Commit Graph

42 Commits

Author SHA1 Message Date
skidau
88c8b891f7 Changed the frame display to the number of polls. Changed frame counter to VI counter. Changed g_FrameCounter to u32. Patch by bzb95.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7367 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-17 10:41:56 +00:00
Jordan Woyak
78d9f927e1 Eliminated memory leaks of the save state code and put it in a namespace. It is prettier than before, but it could be better (less global usage). Other minor stuff.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7366 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-17 10:17:45 +00:00
Jordan Woyak
41c98f982e A bit of cleanup to Core Init/Stop, Frame, and Main. Cleanup XAudio2 to attempt to fix the crash on stop(didn't help :p). For some reason CFrame::DoStop is called twice.(might be the issue)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7353 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-15 23:09:12 +00:00
Jordan Woyak
59fd1008ca Wrapped fopen/close/read/write functions inside a simple "IOFile" class. Reading, writing, and error checking became simpler in most cases. It should be near impossible to forget to close a file now that the destructor takes care of it. (I hope this fixes Issue 3635) I have tested the functionality of most things, but it is possible I broke something. :p
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7328 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-11 10:21:46 +00:00
Jordan Woyak
423018f811 Replaced Common::CriticalSection with a std::mutex implementation. 64bit Windows builds now use SRWLocks and ConditionVariables(requires Vista/7, x64 builds will no longer work on Windows XP x64). Tell me if you hate that. Removed Common::EventEx. Common::Event now uses a std::condition_variable impl.(using ConditionVariables on Windows x64, Events on x86, or posix condition variables elsewhere). I experience slight speed improvements with these changes.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7294 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-05 06:11:26 +00:00
Glenn Rice
a5b471f490 More conversion from char * to std::string.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7266 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-01 03:06:14 +00:00
skidau
855bcfa40c Added an option for input display. This option shows the controls read by the emulator at each frame. GameCube controls in all four ports have been implemented. Wii controls are todo. The option can be found in the graphics settings. This option is usually used for tool-assisted speed-runs (TAS).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7186 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-17 09:12:36 +00:00
smelenchuk
0cc0618e6d GC input recording: Record the on/off state and the analogue state of the L/R triggers separately (gets rid of an arbitrary numeric constant of 230 which isn't elsewhere in the code and should solve some issues with Metroid Prime recordings).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7179 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-15 23:38:44 +00:00
smelenchuk
d7bda211fd Have playback of input files stop upon reaching the frame count designated in the header, preventing that number from being tampered with and assisting in recording verifiability. Adjusted the "resume recording from end of playback" code to account for playback stopping in the middle of a movie as above.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7176 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-15 17:03:20 +00:00
skidau
fb4c82fb48 Added the feature to allow creating a TAS movie from a save state. To activate this function, start the game and use the "Start recording" command. A save state will be created at that point in time and the emulator will start recording. This results in two files, a .dtm containing the movie and a .dtm.sav which is the save state.
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
2011-02-15 09:07:55 +00:00
Glenn Rice
0ae8d33149 Some work on changing comments, log messages, and variable and function names to reflect that the plugins are not plugins anymore.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7170 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-14 02:18:03 +00:00
smelenchuk
94d02a23de Tweaks to Wii rerecording for general stability and reliability.
* 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
2011-02-12 08:25:09 +00:00
smelenchuk
4b69ef3690 add includes to OnFrame.cpp, also have it use the right file (ref previous two commits)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7144 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-12 03:01:54 +00:00
smelenchuk
00daea0ec9 build fix for Win32 for previous commit (sorry guys)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7143 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-12 02:40:31 +00:00
smelenchuk
0d110c41d9 Updates to rerecording behaviour:
* 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
2011-02-12 02:14:20 +00:00
baby.lueshi
6912f0a18c Fix crash on loading savestate with an input movie attatched to it in Gamecube games.
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
2011-02-12 00:06:58 +00:00
smelenchuk
caad098b69 Recordings store information about which Wiimotes are actually in use. (Slight modification to a patch by Toad King.)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7132 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-11 19:09:46 +00:00
smelenchuk
ca78d3639b Implement Wii input recording.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7130 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-11 18:53:51 +00:00
skidau
22553bd625 Added a frame counter while recording or playing back a TAS movie. Forced the GC/Wii to poll from the inputs at regular intervals. Disabled frame skip in record/playback mode. This helps the emulator to be determinate.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7128 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-11 12:26:15 +00:00
Soren Jorvang
9c21d003af Remove the global namespace a bit and remove some dead code.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7043 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-02 18:21:20 +00:00
Jordan Woyak
fbaf965995 Eliminated the plugin interface. Merged DX9/DX11/OGL video plugins into Dolphin. It could still use a lot of cleanup. Lots of things are still named "plugin". Software renderer is temporarily disabled until it gets some namespaces. I only updated vs08/10, Linux/OSX builds are broken.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6996 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-31 01:28:32 +00:00
hrydgard
419d6a244b DSP plugin merge - the two DSP plugins are now gone and all the code has been merged into Dolphin.
This WILL temporarily break the Linux and MacOSX builds but should be easy to fix.

Things left to do:
  * The UI on the new Audio tab for the LLE/HLE choice is ugly
  * At times the code still look "plugin-y" and needs cleanup
  * The two plugins should be merged further. DSPHLE should use the emulated memory etc of DSPLLE as much as possible, so that simply saving the DSPLLE state is enough. This would also bring the possibility of savestate compatibility between the two plugins.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6947 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-28 18:39:30 +00:00
Soren Jorvang
df3aecafef Remove some dead code.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6868 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-17 01:47:27 +00:00
Glenn Rice
c6e0ea59b9 Removed my previous PanicAlert translation hack. Fixed with a better method suggested by BhaaL. The translation is done by a callback in the MsgHandler routine that is set at program start. Added macros PanicAlertT, SuccessAlertT, PanicYesNoT, and AskYesNoT that are identical to the non T versions except those strings will be added by gettext to the po files to be translated. These can and should be used anywhere in the code for strings that should be translated.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6838 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-13 02:05:58 +00:00
Shawn Hoffman
e70e623624 Second attempt at issue 3458. Fixes issue 3458.
Replaces all occurrences of ftell and fseek with ftello and fseeko, respectively. This matters on non-win32 where only these names are altered by the _FILE_OFFSET_BITS define. Win32 still just maps the funcs to ftelli64/fseeki64.
Also add some File::GetSize I had skipped in my last commit.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6515 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-04 03:50:55 +00:00
baby.lueshi
dee24e5695 Added support for recording multiple GameCube controllers at once.
Fixed recording playback to automatically enable/disable the correct controllers.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6188 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-06 21:41:01 +00:00
baby.lueshi
c1cac331a0 Major overhaul to input recording, including fixing major desyncs during playback and a small bug in the .DTM file format. Like netplay, some emulator options (specifically dual core and idle skipping) can cause desyncs, and the more your plugin options are similar to the ones used during recording, the more likely playback will sync.
Also, input movies are now linked to savestates instead of just selecting a file to save to and running a game and are exported at a later time. This allows you to easily continue a recording across sessions and makes rerecording possible.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6154 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-30 07:05:47 +00:00
hrydgard
8cae2fee56 Merge the pad plugin into Dolphin. Since there's only one plugin left under active development, and it's awesome, we no longer have a need for a pad plugin mechanism.
In the future if we merge wiimote too, this will bring the advantage that the two will be able to cooperate, to no longer fight over control of input devices which can sometimes cause problems.

Thanks shuffle2 for the patience.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5670 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-13 09:14:40 +00:00
Shawn Hoffman
4a0c8fc0c9 Hg:
enable newline normalization
get revision number via `hg svn info` for svnrev.h
ignore incremental/generated binary files (windows/VS at least)
leave a comment if some files need native eol set in svnprops

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5637 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-09 01:37:08 +00:00
luisr142004
2e783d9769 space changes, merge #defines, language fix, and code reorder/cleanup :P
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5614 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-05 01:38:22 +00:00
nitsuja-
b31042cb10 fixed a bug where events scheduled for the same time run in backwards order
simplified CoreTiming::AddEventToQueue
fixed emu.frameadvance and implemented emu.wait
fixed Lua script termination
brought over some luaconf customizations to fix issue 2245 in a better way and deal with certain other scripting problems

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5383 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-18 08:28:52 +00:00
ayuanx
9cbd508181 1. This should fix Issue 1625 (Bizarre Auto Frame Limit)
Now the frame limiter yields on CPU thread, not as before on GPU thread mistakenly

2. Fixed clear of VI interrupts
   I guess VI interrupts are not used at all, because they were never cleared before

3. Made GPU thread 0% processor usage when paused whatever your active config is.
   I tried the event approach but somehow the thread resume latency is excessively long (Who can tell me why?)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4790 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-07 20:01:41 +00:00
XTra.KrazzY
a0129e51a3 LUAInterface should have all its functionality now (excluding input/controller management). Now we need a GUI to see how it works. Added new DSP function: ClearAudioBuffer, which clears the audio buffer for pausing. Currently it doesn't work with DSound.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4507 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-07 20:01:39 +00:00
hrydgard
0a576c7508 Linux: Tons of warning cleanup plus workaround a nasty crash problem in StatusBarMessage.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4234 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-08 21:16:05 +00:00
sl1nk3.s
5a21d72693 Fix screen flickering with frameskip on D3D plugin, also fix occasional hang when turning frameskip off
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4194 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-04 06:09:21 +00:00
XTra.KrazzY
4d4d37c32c Changed TAS to reflect wiki, added Frame Stepping/Advance to the GUI
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4032 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-22 02:05:02 +00:00
XTra.KrazzY
f8e410e0e6 Fixed a few TAS bugs. TASing should now work, provided that you DON'T change your frameskipping value...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4030 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-21 20:15:33 +00:00
XTra.KrazzY
1612c6a2b8 TAS GC Recording/Playing with GUI! Yay! (Bonus: Lag Counter)
Works with frameskipping/throttling and so forth. 
Only one bug: Every subsequent play plays the same, regardless of framerate, frameskipping and throttling. The only problem is that the recording and the plays act differently, with analog sticks ONLY.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4028 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-21 19:55:03 +00:00
XTra.KrazzY
7ed4b06e48 Implemented frame counter and TAS GC recording. What's left: A lot of GUI, actually playing the TASes, and begin recording from savestate.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4025 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-20 23:31:48 +00:00
daco65
ea561430ff auto frameskip by Iulius. the automatic should make it so that dolphin doesn't skip more then needed (example: you have frameskip 9 but only need 4.2, auto will make it skip on 4.2)
framelimit should be on

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3972 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-12 16:42:51 +00:00
sl1nk3.s
69f32a76c6 Just a few fixes for the fps counter, also unbreak direct XFB homebrews.
And a couple of fixes for the frameskip : disabled by default, can be set before launching a game, also safer to avoid lockup. 

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3950 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-08 05:47:08 +00:00
XTra.KrazzY
51ddedf512 Frameskipping! Complete with GUI! Even my most naive approach resulted in great speeds, even with graphic-intensive games such as Pikmin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3949 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-08-08 01:39:56 +00:00