Sample video: Kelp Forest IL 100% TAS by me
This fork is focused on altering the ram-watch-cheat-engine tool for use with Spongebob Squarepants: Battle for Bikini Bottom. For the original tool checkout yoshifans repository.
Credit goes to someone for building the initial layout and Hazel (FusionVaria) for bringing this to my attention and providing feedback. I worked off of the initial version to fix a bug with the input viewer, improve/add layout options, build the momentum visualization and add a kind of hacky but useful frame dump feature.
In the following I will give an overview on the layouts and how to use the tool.
Available layouts include
'normal'- the initial layout style used'mono'- a more streamlined version of the normal layout using a monospaced font and horizontally alligning memory values'render'- an upscaled version of the mono layout for better quality when rendering videos'spongeboy'- the render layout using the 'Spongeboy Me Bob' font and greenscreen'd for easier post editing
Layouts are defined in games\bfbb_layouts.lua. Here you can adjust positioning and other parameters of the components.
- clone or download (click Code -> Download ZIP) this repository.
- open the
bfbb.ctcheat table included in theuser_filesdirectory with a text editor - adjust the
RWCEMainDirectorypath such that it points to the root of this repository - start BFBB inside Dolphin
- start CheatEngine and hook to the Dolphin process
- open
bfbb.ctand values/inputs should start being displayed
The frame dump feature is really just taking screenshots on every frame which afterwards can be packed into a video.
In order to work it relies on two external tools:
- NirCmd - for automatically taking screenshots (download at the bottom)
- ffmpeg - for packing screenshots into video (scroll to release and download either full or essentials version)
To set everything up follow these steps:
- create a folder for the screenshots (make sure it has enough available space, one minute of frame images can be ~5GB for me)
- download NirCmd and ffmpeg
- Open
bfbb.ctin a text editor and set the following:layoutName = 'render'dumpFrames = truenirCmdDirectory = [[C:\downloadpath\nircmd.exe]]imgOutDirectory = [[C:\path\to\created\screenshot\folder]]
- open
bfbb.ctin CheatEngine (I recommend arranging the ram viewer and Dolphins render window as shown in the screenshot above to make syncing with the Dolphin framedump easier) - playback the TAS movie and every frame a screenshot will be placed into
imgOutDirectory
Unfortunately the command prompt will always flash on every screenshot. If this overlays the viewer follow these steps to work around that:
- open a new command prompt by typing
cmdinto the start menu - drag it to a position where its not overlaying the viewer (possibly onto a 2nd monitor if you have one)
- right click the title bar ->
Properties->Layout - your current window position is shown, remember the coordinates
- close
Properties, right click title bar again ->Defaults->Layout - uncheck
Let system position windowand put in the coords from earlier - now the command prompt will flash in this position where its not obstructing the framedump
If you reached the end of the movie you will now have to pack the screenshots into a video. To do so follow these steps:
- copy and paste the
pack_frames.batscript included in theuser_filesdirectory into the screenshot folder - copy and paste the
ffmpeg.exefile fromdownloadpath\bininto the screenshot folder - execute
pack_frames.batand follow the instructions
Congratz! you can go ahead and edit your video now (:
- the buttons for the input viewer are hooked to the games
pressedandreleasedevents. That means loading a savestate in Dolphin before a button is released will cause the viewer to keep displaying it as pressed until it's released again. - some inputs will not be displayed, most notable to me B inputs on textboxes are not recognized. But i can pretty much guarantee that all movement relevant inputs will be displayed as they are read the exact same way the games movement code reads them (as researched in the decomp project).
If you experience a problem feel free to open an issue or contact me on Discord (P3bk4c#3450)
