Open Source C++/SDL implementation of the Screen Antics' Johnny Castaway screensaver
This is an attempt to recreate the old 16bit screensaver by Sierra/Screen Antics "Johnny Castaway" using the original resource files. You have to provide RESOURCE.MAP RESOUCRE.001 and SCRANTICS.SCR in the same directory as the executable or set commandline options accordingly (see below).
Most of the file parsing code is ported from Hans Millings C# project: https://github.com/nivs1978/Johnny-Castaway-Open-Source
The program plays a few scenes almost perfect and many scenes okay. Some scenes break, because the timing between individual clips is off and of course because of unimplemented commands. Combining the individual movies into a smooth story has not been started at all, yet.
- Space pauses/unpauses
- Return opens a menu to select a movie using left/right/up/down and return to select
- Escape closes the menu or exists the program
The application is able to unpack all resources to "normal" file types and repack them into a RESOUCRE.MAP/.001 archive. There are some blobs in RESOURCE.MAP which are not understood and just copied over. However, repacked resources seem to work fine with the original executable.
Scrantic BMP and SCR files are unpacked to 32bit RGBA bitmaps, other resources result in plain text files. The text parser for repacking the resources is not very robust, so make sure to only feed it correctly formatted files. Sound samples will be extract to the subdirectory RIFF, but they will not be repacked!
There are a few commandline options:
This has only been tested on Linux so far, but should work on every system with a C++11 compiler and SDL2. The includes might be incorrect for other environments. The C++11 experimental filesystem library is also used and its library is added manually to CMakeLists.txt.
The project depends on SDL2/Mixer/TTF/GFX. The library for the SDL2_gfx is added manually, too.
Compile using:
cmake . && make
