<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.8.0-dev (info@mypapit.net)" -->
<rss version="2.0" >
    <channel>
        <title> - From NFGworld!</title>
        <description></description>
        <link>http://nfgworld.com/mb/thread/623-How-to-rip-arcade-fonts-using-MAME</link>
        <lastBuildDate>Wed, 22 May 2013 04:08:53 GMT</lastBuildDate>
        <generator>FeedCreator 1.8.0-dev (info@mypapit.net)</generator>
        <item>
            <title>How to rip arcade fonts using MAME</title>
            <link>http://nfgworld.com/mb/thread/623-How-to-rip-arcade-fonts-using-MAME</link>
            <description><![CDATA[
The <a href="http://nfggames.com/games/fontmaker/" title="http://nfggames.com/games/fontmaker/">NFG Font Engine</a> now has 70 different video game fonts, which is nearly a quarter of a percent of arcade games in existence.&nbsp; MAME emulates nearly 4,000 games at last count, and I'd estimate that probably 2-400 of them have unique or interesting fonts.&nbsp; By my reckoning, anyway.<br />
<br />
Ripping fonts from arcade games is remarkably easy.&nbsp; MAME has a tile &amp; graphics viewer that simplifies the process of looking through game data, and most games store the fonts similarly so they're easy to find.&nbsp; Once found, all you need to do is make a screenshot, re-arrange the order in your favourite paint program, and hey presto: fonts!<br />
<br />
<b>The Process</b><br />
<ul><li>Open game in MAME</li></ul>
<ul><li>Open tile viewer, locate font</li></ul>
<ul><li>Make snapshot</li></ul>
<ul><li>Re-arrange letters</li></ul>
<br />
The last step, re-arranging, is only required if you want to use my font engine, as they need to be in <a href="http://asciitable.com/" title="http://asciitable.com/">ASCII order</a>.&nbsp; If you want to muck about with them for your own projects, then of course you can do with them whatever you please.<br />
<br />
<b>Finding Fonts in MAME</b><br />
First, play any game in MAME, and press F4 to access the graphics viewer.&nbsp; 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!<br />
<br />
<i>Modes</i><br />
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:<br />
<br />
<div style="text-align: center;"><img src="http://nfggames.com/system/arcade/guide/3-modes.png" title="http://nfggames.com/system/arcade/guide/3-modes.png" alt="[Image: http://nfggames.com/system/arcade/guide/3-modes.png]" /><br />
Palette &lt;enter&gt; Tiles &lt;enter&gt; Tilemap &lt;enter&gt; Palette &lt;enter&gt; Tiles (etc)</div>
<br />
<i>Layers</i><br />
Tiles and Tilemap may be divided into multiple layers.&nbsp; The Tiles layers indicate different sets of tiles, in different sizes or memory locations.&nbsp; You can tell if there are additional layers by the <b>x/y</b> heading.&nbsp; If it says <b>0/4</b> then you've got five layers to cycle through.&nbsp; Press <b>[</b> and <b>]</b> to move up or down a layer.<br />
<br />
<div style="text-align: center;"><img src="http://nfggames.com/system/arcade/guide/layers.png" title="http://nfggames.com/system/arcade/guide/layers.png" alt="[Image: http://nfggames.com/system/arcade/guide/layers.png]" /></div>
<br />
<i>Palettes</i><br />
When viewing Tiles, there may be different palettes available.&nbsp; Most games have additional palettes, some as many as 256 different ones, a rare few with even more.&nbsp; You can cycle through the palettes with <b>←</b> and <b>→</b>.<br />
<br />
<i>Navigation</i><br />
You can use <b>↑</b> and <b>↓</b> 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.&nbsp; You can also use <b>+</b> and <b>-</b> to pack more or fewer tiles onto the screen, which can make finding fonts a lot easier.<br />
<br />
<div style="text-align: center;"><img src="http://nfggames.com/system/arcade/guide/mo-tiles.png" title="http://nfggames.com/system/arcade/guide/mo-tiles.png" alt="[Image: http://nfggames.com/system/arcade/guide/mo-tiles.png]" /></div>
<br />
Some more navigation options are listed <a href="http://strategywiki.org/wiki/MAME/Special_Keys#F4" title="http://strategywiki.org/wiki/MAME/Special_Keys#F4">on StrategyWiki</a>.<br />
<br />
<i>Screenshots</i><br />
Once you've found the font, you'll need to make a screenshot so you can work with it.&nbsp; 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.&nbsp; I use PaintShop Pro for my editing, and it has a built-in screenshot tool.&nbsp; You can use any program to make the screenshot, including Windows' own built-in screenshot button (Shift-PrtScn).<br />
<br />
<div style="text-align: center;"><img src="http://nfggames.com/system/arcade/guide/grid.png" title="http://nfggames.com/system/arcade/guide/grid.png" alt="[Image: http://nfggames.com/system/arcade/guide/grid.png]" /></div>
<br />
The tiles will be separated by a grid, clearly defining each character.&nbsp; 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.<br />
<br />
<b>Things to Watch For</b><br />
<ul><li>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.&nbsp; </li></ul>
<ul><li>Not all games have a tile viewing option.&nbsp; 3D games and NeoGeo games rarely do.</li></ul>
<ul><li>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.&nbsp; Others, especially old titles, put the characters wherever there's space, so they're often chaotic.&nbsp; Older games do not always include a complete alphabet either, to save space.</li></ul>
<ul><li>Most games have many good-looking palettes, some have many realy ugly palettes.&nbsp; Flip through 'em and see what you like.&nbsp; In some cases (Aurail) there are hundreds, and the good stuff often starts near the end, so it pays to check 'em all.&nbsp; </li></ul>
<ul><li>Most games put the fonts right at the top.&nbsp; A notable exception is Capcom: All of their CPS-2 games way, way down the line, starting at around hex 20,000.</li></ul>
<ul><li>Often the first palette entry is all black.&nbsp; Flick through a few palettes to make sure you're not looking at blank tiles.</li></ul>
<ul><li>The shadow is often black, and so's the background of each tile, which means the shadow is completely lost.&nbsp; 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.</li></ul>
<br />
<div style="text-align: center;"><img src="http://nfggames.com/system/arcade/guide/nice-not-so-nice.png" title="http://nfggames.com/system/arcade/guide/nice-not-so-nice.png" alt="[Image: http://nfggames.com/system/arcade/guide/nice-not-so-nice.png]" /><br />
UPL's Atomic Robo Kid (top) and Konami's Gyruss: Two very different methods for storing fonts.</div>
<br />
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):<br />
<br />
<div style="text-align: center;"><img src="http://nfggames.com/system/arcade/Arcade-IREM-MT-blue.png" title="http://nfggames.com/system/arcade/Arcade-IREM-MT-blue.png" alt="[Image: http://nfggames.com/system/arcade/Arcade-IREM-MT-blue.png]" /></div>
<br />
You can stack as many as you want on top of each other, allowing for colour variations or even different fonts in every file.
]]></description>
            <author> no_email@example.com (NFGworld.com - NFG)</author>
            <pubDate>Thu, 26 Feb 2009 02:10:54 GMT</pubDate>
            <guid isPermaLink="false">http://nfgworld.com/mb/623#1601</guid>
        </item>
    </channel>
</rss>
