Ripping fonts from arcade games is remarkably easy. MAME has a tile & graphics viewer that simplifies the process of looking through game data, and most games store the fonts similarly so they're easy to find. Once found, all you need to do is make a screenshot, re-arrange the order in your favourite paint program, and hey presto: fonts!
- Open game in MAME
- Open tile viewer, locate font
- Make snapshot
- Re-arrange letters
The last step, re-arranging, is only required if you want to use my font engine, as they need to be in ASCII order. If you want to muck about with them for your own projects, then of course you can do with them whatever you please.
Finding Fonts in MAME
First, play any game in MAME, and press F4 to access the graphics viewer. Note that you should usually wait until the game is started, or at least until the title page is shown, as many games will have all-black palettes until this point and you will never find any fonts when everything's black!
The F4 Graphics Viewer is divided into 3 sections: Palette, Tiles, Tilemap (tilemap shows entire screens). You can press ENTER to cycle between these three modes at any time:
Palette <enter> Tiles <enter> Tilemap <enter> Palette <enter> Tiles (etc)
Tiles and Tilemap may be divided into multiple layers. The Tiles layers indicate different sets of tiles, in different sizes or memory locations. You can tell if there are additional layers by the x/y heading. If it says 0/4 then you've got five layers to cycle through. Press [ and ] to move up or down a layer.
When viewing Tiles, there may be different palettes available. Most games have additional palettes, some as many as 256 different ones, a rare few with even more. You can cycle through the palettes with ← and →.
You can use ↑ and ↓ to move up or down one row, PgUp and PgDn to jump a page, and HOME and END to jump to the beginning and end of the tile list. You can also use + and - to pack more or fewer tiles onto the screen, which can make finding fonts a lot easier.
Some more navigation options are listed on StrategyWiki.
Once you've found the font, you'll need to make a screenshot so you can work with it. MAME's normal screenshot tool (backspace) does not work when you're using the graphics viewer, so you need to find another program that will. I use PaintShop Pro for my editing, and it has a built-in screenshot tool. You can use any program to make the screenshot, including Windows' own built-in screenshot button (Shift-PrtScn).
The tiles will be separated by a grid, clearly defining each character. I have a script that removes the grid and moves each character so it's adjacent to the next, but even if you're editing these by hand it doesn't take too long to assemble a complete font.
Things to Watch For
- MAME's tile viewer isn't always accurate: sometimes it will put an extra-thick frame around some tiles, which means those tiles are missing pixels.
- Not all games have a tile viewing option. 3D games and NeoGeo games rarely do.
- Most semi-modern games have fonts in a convenient ASCII layout, making it very easy to put them in a format I can use for the font engine. Others, especially old titles, put the characters wherever there's space, so they're often chaotic. Older games do not always include a complete alphabet either, to save space.
- Most games have many good-looking palettes, some have many realy ugly palettes. Flip through 'em and see what you like. In some cases (Aurail) there are hundreds, and the good stuff often starts near the end, so it pays to check 'em all.
- Most games put the fonts right at the top. A notable exception is Capcom: All of their CPS-2 games way, way down the line, starting at around hex 20,000.
- Often the first palette entry is all black. Flick through a few palettes to make sure you're not looking at blank tiles.
- The shadow is often black, and so's the background of each tile, which means the shadow is completely lost. You can copy the shadow from a different palette entry, but there may be occasions where MAME's tile viewer simply won't let you get the details you want.
UPL's Atomic Robo Kid (top) and Konami's Gyruss: Two very different methods for storing fonts.
Finally, if you want to use your newly ripped font in the Font Engine, you'll need to put the characters in ASCII order, starting with SPACE (ASCII 32):
You can stack as many as you want on top of each other, allowing for colour variations or even different fonts in every file.