Dolphin, the GameCube and Wii emulator - Forums

Full Version: TASing in Dolphin
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello.

I'm MUGG from TASvideos. This is the first time I'm posting here and I want to say, like many other people, that you are doing a great job with Dolphin and I'm looking forward to future development. Smile

This is the first time the implementation of TASing features was suggested. For those unaware, TASing is short for "creating tool-assisted videos" which is basicly the process of slowing the game down and undo the gameplay mistakes you do while recording an input file (in this case, .dtm).

I was always very excited about Gamecube TASing, especially since people like Jpleal10, sockdude1, SW-1988 and Zampa began releasing tool-assisted videos of SSBM on a regular basis, as if Gamecube TASing was just around the corner.
Due to the recent breakthrough where rerecording support apparently became much more reliable since r6154, I wanted to take a closer look at Dolphin now.

I'm playing Super Smash Bros. Melee (PAL) on r6201 on my Windows7,32bit. The game runs at full FPS on my AMD Phenom™ II X4 925 Processor, 2.80 GHz. I wanted to make my first movie files (.dtm), however, I haven't been able to make use of the rerecording feature yet due to this problem which is preventing me from loading savestates and is currently being investigated by skid_au. The reason I'm posting here is because I wanted to review the TASing capability of Dolphin in general in comparison to existing emulators with rerecording support in the hope that various features are going to be improved in a good way for us TASers and possibly others.


Frame Stepping

If Frame Stepping is unchecked in the menu, "pause" will pause/unpause the game. If Frame Stepping is checked, "pause" will advance a frame each time it is pressed. This is known as "frame advance" in the existing TAS emulators.

Possible improvements:
Remove Frame Stepping from the menu and create a seperate "frame advance" hotkey. "Pause" will pause/unpause the game whereas "frame advance" will always only go to the next frame.


Movie file (low priority)

Currently, you can start recording a .dtm if no game is currently loaded. When you stop recording, you are being asked where to save the .dtm.

Other emulators show a window when you select "Start recording" in the menu where you can check or uncheck various options that the movie will be recorded with, that affect movie sync. In that window, you can also select whether the movie starts from
- Now (from a savestate that is integrated in the movie file)
- Reset (clear SRAM)
- Reset (+SRAM. The savegame/SRAM should be included in the movie file so that you only need the movie file and the game in order to play back the recording). ((low priority))

Possible improvements:
Basicly, one should be asked where to save the .dtm _before_ starting recording.
Implementing the ability to start recording from "now" (while game is loaded), from power-on (no SRAM) ((and from power-on (with SRAM))).

Read-Only toggle (low priority)

During movie recording, when loading a savestate there are 2 possibilities:
- Load it and resume recording from there (this mode is called Read+Write)
- Load it, but play back the movie from there (this mode is called Read-Only. This is only possible if the loaded state is from the current movie, else the emulator throws an error message and reverts the action.)

Possible improvements:
Implement Read-only toggle in Dolphin.

Savestates

This is from what I've seen when testing with Dolphin: You can only save 1 state during each frame and the corresponding message only shows after you go to the next frame. In other emulators, you can save states as you please while the emulation is paused and the emulator shows immediately the corresponding message about each saved state.

The messages about what directory the state got saved in and the fact it's being compressed isn't important.


Hotkeys

Basicly, it would be nice if the user was given the freedom to change savestate-related hotkeys (saving states, loading states). For example:
Right now you can save states with Shift+F1 ~ F8 and load them by pressing F1 ~ F8. I prefer to save my states with 1 ~ 8 however, without the need to use a button combination.

I think this should be easy to implement.

Also, I experienced an error where the emulator is completely locked if you press "down", "left" or "right". I'm not sure if anyone else had this problem...


Frame Count

On the screen or in the section below it, it would be cool to see a number of all the frames that have passed by so far (beginning at 0 when a game is loaded).



Maybe most of what I've just mentioned has already been discussed somewhere, maybe not.
This is just a personal wishlist, a bug list, and a comparison with existing TAS emulators. In any case, I would be very pleased if Team Dolphin would improve the mentioned features in the way described.

Maybe I missed something... so I may add more in the future.
I'm going to visit this forum regularly to check this topic.
So, to topic creator or anyone that has tried TASing in Dolphin:

It seems some of these suggestions are now included in the latest revisions (r7184 at the moment). Are they working as intended? I can't get them to work quite right.

Frame Advance - Menu name changed, but still functions as before
Movie File - Not yet implemented
Read-Only Toggle - Implemented, but I can't get it to work properly
Configurable Hotkeys - Not yet implemented
Savestate Fix - Not yet implemented
Frame Count - Implemented and works as suggested


The biggest problem I'm having is recording after loading a save state. I'm playing Mega Man 10 for the Wii, and everything from the beginning of the movie up to the save state is perfect. But after the loaded state the inputs are advanced or delayed or something because the end result is my character running, jumping, and shooting haphazardly because my recorded inputs do not match his current location.

Is this a known issue with a fix in the works? Or am I just doing it wrong? The read-only toggle doesn't seem to have any effect after testing it a little bit. Same results whether or not its checked.
Frame advance works as before. It's not bad though.

Movie file is implemented, but works differently compared to other emulators.
When starting to record a movie in other emulators such as snes9x or VBA, you will be asked beforehand where to save the movie file and if it starts from SRAM/now (from a savestate that is implemented in the movie file)/no SRAM.
For now, if you want to use SRAM you have to make a copy of your memory card file before making a TAS or else the movie might not sync (because the memory card file will be changed during TASing).

Read-only doesn't seem to work.

Many hotkeys (most importantly: savestate-related hotkey configuration) have been added. I'm fine with it.

Savestates now work for the most part. Sometimes I'm getting a crash (DSI exceptions, unknown pointers) but I can still safely TAS. What I like most is you can just re-open Dolphin and load the savestate where you left off, without the need to re-open the movie file first.

Frame count is implemented and works for the most part. Sometimes it doesn't update upon advancing a frame (for example, the count is 345, I advance a frame and it is still 345, I advance another frame and it is 347).

Also, apparently skidau implemented input display at one point, but I didn't see it in r7251.

I'm not sure about your MM10 problem. I heard Wii recording still has some problems...
Input Display is under the Advanced Graphics settings (unfortunately) and is labelled "Show Input Display".
Input Display doesn't work for the Wii yet.

Also, I made some progress on Wii TAS'ing.

http://forums.dolphin-emu.org/showthread...249&page=2