SpiffMAME bootsplash/gensplash configuration

After getting a framebuffer console up and running on my arcade machine, I did various attempts to get some sort of bootsplash running. Bootsplash allows you to have a silent bootup-screen, displaying a progress-bar during system initialization and shutdown, instead of the normal messages on the console.

I did a lot of experiments with the normal Bootsplash (newer patches etc. at http://bootsplash.de/), but at this time bootsplash had really big problems running on any other framebuffer than vesafb. Since I needed to run matroxfb in order to set the low-res mode for my arcade monitor (and also for AdvanceMAME to support vsync), this was very complicated.

I made different initram-images for different bootsplash configurations, trying to run them on both matroxfb and vesafb. Things worked fine with vesafb (but this was not an option as previously mentioned), and I seem to recall getting it to work with matroxfb also, if I used a standard resolution (such as 800x600). However, trying to use bootsplash with my matroxfb configured for 640x248 just did not work. When bootsplash was loading the theme, it crashed, and the JPEG-decompressor in the kernel made this quite bad in terms of debugging.

Meanwhile Gentoo started using their own version of the framebuffer splash, called gensplash. With gensplash a lot of the complicated features are implemented in userspace (such as JPEG decompression etc.), which provides a much cleaner interface. Other than that, gensplash was supporting other framebuffer-drivers than vesafb before bootsplash, and gensplash support 8, 15, 16 and 24 bpp, whereas bootsplash (at least at that time) only supported 16 bpp.

After I finally got arround to switching to gensplash, I got it working with matroxfb running at 640x248@59Hz. Then I needed to make a gensplash-theme that included the splash-screens in this resolution. The images were made from the official MAME-logo, and were designed in 1280x1024 in order to get the correct aspect ratio, and then resized to the needed 640x248, which gives a streched image when viewed in normal aspect ratio, but looks very nice on the arcade monitor. The images I created are horizontal.png and vertical.png, and each of them contains a frame that is used for the progress bar during boot and shutdown.

The different text-strings that are normally printed during bootup were disabled, since it is not possible to rotate the text, so it looked very stupid when the monitor was mounted vertically. For the progress bar, I found the coordinates of the frames drawn in each of the images, and put these coordinates in the theme-file. The colors used are the same shading of blue as used on the MAME-logo. This is a picture of the gensplash during bootup:

Framebuffer splash on vertical monitor using gensplash

To disable the text-output during silent splash, I modified /etc/conf.d/splash. Unfortunately the newer versions of gensplash adds the message "Initializing Kernel...", which is not set in the init-scripts. After a lot of digging arroung in the splashutils-source i found out that this is the default message if none is set with the --mesg option. So I modified /sbin/splash and added this option (on line 123, just after the comment "Start the splash daemon"). I haven't tested this yet, but I will try to get it done soon.

My splash-themes are in /etc/splash/hor and /etc/splash/ver, and /etc/splash/mame is a symlink that points to the appropriate one, depending on the orientation of the monitor (actually the symlink is updated by my wrapper-script that runs AdvanceMenu, if the rotation has been updated). You can find both the horizontal and vertical themes in splashthemes.tar.gz.

Last updated: 2005.11.18