Implementation

Parent Previous Next

Implementation



At first the TAS Editor was based on the codebase of experimental tool named TASEdit, using FCEUX 2.1.5 as a kick-start.

The premise of TASEdit was to build an input editor (like TAS Movie Editor) into emulator, so that the delay between editing and checking results would greatly shrink. Since there was no research done on typical behaviors in TASing process, the concept was vague and the code wasn't scalable. Thus, soon after formulating the new vision of the editing tool the code of TAS Editor was fully rewritten to make adding new features easier.

The premise of TAS Editor is to create a tool that is more handy than traditional rerecording tools, not just for Input editing/splicing, but also for Input creation and, most importantly, polishing (optimizing).

The following architecture of TAS Editor was designed according to author's notion of a methodical TASing and of features needed for such TASing.




TAS Editor modules (classes)


taseditor.cpp

Main – Main gate between emulator and Taseditor

[single instance]


taseditor_window.cpp

Window – User Interface

[single instance]


bookmarks.cpp

Bookmarks – Manager of Bookmarks

[single instance]


branches.cpp

Branches – Manager of Branches

[single instance]


bookmark.cpp

Bookmark – Single Bookmark data


snapshot.cpp

Snapshot – Snapshot of all edited data


inputlog.cpp

InputLog – Log of Input


laglog.cpp

LagLog – Log of Lag occurrence


markers.cpp

Markers – Snapshot of Markers state


popup_display.cpp

Popup display – Manager of popup windows

[single instance]


history.cpp

History – History of movie modifications

[single instance]


piano_roll.cpp

Piano Roll – Piano Roll interface

[single instance]


selection.cpp

Selection – Manager of selections

[single instance]


editor.cpp

Editor – Tool for editing

[single instance]


splicer.cpp

Splicer – Tool for montage

[single instance]


taseditor_config.cpp

Config – Current settings

[single instance]


playback.cpp

Playback – Player of emulation states

[single instance]


greenzone.cpp

Greenzone – Access zone

[single instance]


recorder.cpp

Recorder – Tool for input recording

[single instance]


markers_manager.cpp

Markers_manager – Manager of Markers

[single instance]


taseditor_lua.cpp

Lua – Manager of Lua features

[single instance]


taseditor_project.cpp

Project – Manager of working project

[single instance]




Emulator modifications



Taseditor needs the following modifications to be applied to an emulator code.


Main/Window:


Movie:


Input:


Output:


SaveStates:


Config:


Lua engine:


Replay:


Other:






Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation