This page describes Grrl, ideamagnate's hack of the Gens emulator to provide support for rerecording and RAM search capabilities in Linux without the need for a win32 API emulation layer such as Wine.
As it stands, Grrl is a minimal effort project to make Gens on Linux usable for TASing by providing some basic features. It is lacking in some of the features found in Upthorn's win32 build. The main reason for this is that Jyzero's original TAS additions made the Gens source win32-specific and nobody has taken the time to make the code cross-platform again.
The most striking difference is the absence of a GUI. This results in much faster navigation and simplified source, but makes the program more difficult to use until a user learns the commands he needs.
Source Code and Binaries
Grrl continues to be available under the terms of the GPL. Version 1 is available here. To build it you'll need to install the libreadline, libsdl and x11 header files. In Debian, the packages are libsdl1.2-dev, libreadline5-dev and libx11-dev. Other required packages include nasm.
The Subversion repository has the most recent version of the code and is generally updated whenever a significant change is made. Anonymous checkout can be done by running the following command
svn co svn://email@example.com/repos/gens_grrl/trunk/gens_linux
A binary-only tarball of svn build 61 (the latest as of 11/9/2007) is available here.
Future versions may require libconfig, although it will be statically linked in any distributed binaries. If you wish to compile Grrl once libconfig is a requirement, do the following to install, in addition to the typical
./configure && make && make install. Make sure that the directory where libconfig.so is installed (/usr/local/lib by default) is in /etc/ld.so.conf or a file included by ld.so.conf. Run
ldconfigso the dynamic linker can find libconfig and you should be able to build Grrl.
svn (revision 61)
- can toggle layers (default cs-[0-5])
- can adjust volume from within Gens (default [/] and [*]), thanks to plusminus
- robot support with IPC synchronization (requires programming robot code in C/C++)
- most of the important (re)recording features ported from Nitsuja and Jyzero's code
- can restore/save while playing movies
- bulletproof rerecording
- read-only mode (enabled by default)
- configurable automatic backups when recording over a movie
- frame counter and input display
- up+down and left+right
- slow mode (down to 3%, less isn't meaningful)
- fast-forward with tab (mutes sound so the game actually runs faster instead of just choppier)
- can choose states with next/prev or select/load/save w/ 0-9
- ram search and onscreen display (won't work with 32x or SegaCD for now, see grrl_info for details)
- can record a movie with another gmv as a template
- can record from a state
- can play from a state from the cli
- window automatically raises/lowers when Gens expects command-line input (really handy for ram searches)
- all buttons configurable via human-editable config file (see grrl_info)
- config file not overwritten on exit (can be saved with c-s)
- 32x support continues to work (not a new feature, but I didn't break it)
Having a win32-only TAS-friendly version of Gens is far better than having none at all. Having a cross-platform version would be even better.