Software

Like my last cabinet, I chose FreeDOS 1.1 as my OS.  The choice was really between this and Linux as a way to make best use of the scarce resources, and FreeDOS fit neatly on the 256mb CF card where Linux would have been too large.  DOS comes with its own set of problems, but it's nothing I haven't solved before.

AdvanceMenu is the frontend.  I further enhanced it with .MNG + .MP3 emu movies, or static screenshots for those which didn't have animated previews.  This frontend is intuitive and easy for new users, and the large preview videos are attractive.

The real sticking point was my VGA monitor.  Unlike a good multisync monitor, this one is extremely picky about resolutions: it wants only 640x480, 800x600, and one or two others.  All others fail to sync properly and the output video is wrecked.  AdvanceMAME / AdvanceMenu, on the other hand, throw all sorts of custom resolutions at the screen and expect it to cope happily.

This was leading to disaster until I managed to properly configure Scitech Display Doctor.  Not only did it enable 2d acceleration features on the S3 Virge (nice!), but it allowed me to strip out all non-working modes from the VGA list.  I then had AdvanceMenu set to use only VESA modes (as delivered by SDD), and my problems were solved.

The MAME version is a custom compile of DosMAME 1.06 for Pentium 4.  It seems to run fine and has given me no trouble at all in running what I've thrown at it.  There is the odd issue with a game running at some resolution which fails to scale nicely (APB, Block Block, etc) so it centers a small picture on a black screen instead.  But all the classics run great - full screen - and Galaga even has correct refresh rate at 60.606060 FPS.  So that's something.

It is difficult to setup MAME to run without a coin input.  Some games allow FREE PLAY, which is what I choose when available.  Others I map the START button to trigger both 1P START and COIN at the same time.  Even this causes issues with some games: Dig Dug freezes when both are hit simultaneously, and the best workaround is to put coin on START and 1p Start + Fire on FIRE 1.  Not ideal, but at least playable.

This will probably be my last DOS-based cab.  Whatever I build in the future will likely run Linux SDLMame, mainly for the accuracy fixes in the intervening builds, and because my stack o' PCs is entirely fast enough to handle it.