diff --git a/Dockerfile b/Dockerfile index f94cf38..36d4607 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,9 +5,13 @@ RUN npm install -d --no-package-lock COPY . . RUN npm run build -FROM erseco/alpine-php-webserver:latest AS release -RUN rm -rf /var/www/html/* && \ - echo 'short_open_tag = On' >> /etc/php83/conf.d/custom.ini && \ - sed -i 's|$uri/|$uri/ $uri.html|; s|fastcgi_index.*|expires 7d;|; s/ico|xml/ico|xml|txt/' /etc/nginx/nginx.conf - +FROM erseco/alpine-php-webserver:3.20.4 AS release +USER root +RUN apk add --no-cache bash && \ + rm -rf /var/www/html/* +COPY ./docker/docker_setup.sh /setup.sh +COPY ./docker/populate_cache.sh /usr/bin/populate +RUN bash /setup.sh && \ + chmod +x /usr/bin/populate COPY --chown=nobody:nobody --from=build /app/public/. /var/www/html +USER nobody \ No newline at end of file diff --git a/client/images/notes/blaz.png b/client/images/notes/blaz.png new file mode 100644 index 0000000..b129582 Binary files /dev/null and b/client/images/notes/blaz.png differ diff --git a/client/index.html b/client/index.html index aaa220c..7f5bc25 100644 --- a/client/index.html +++ b/client/index.html @@ -43,7 +43,7 @@
- Glyphs + Glyphs
diff --git a/client/index.js b/client/index.js index e11bc33..08259ae 100644 --- a/client/index.js +++ b/client/index.js @@ -32,22 +32,25 @@ const esbuildOpts = { bundle: true, treeShaking: true, write: true, + legalComments: 'none', assetNames: '[name]', chunkNames: 'assets/[name]-[hash]', }; const minifyOptions = { - collapseBooleanAttributes: true, - collapseWhitespace: true, - decodeEntities: true, - html5: false, - minifyURLs: true, - removeComments: true, - removeAttributeQuotes: true, + normalizeAttributeValues: true, removeEmptyAttributes: true, - removeRedundantAttributes: true, - sortClassName: true, + collapseAttributeWhitespace: true, + removeRedundantAttributes: false, + deduplicateAttributeValues: true, + minifyUrls: true, sortAttributes: true, + sortAttributesWithLists: 'alphabetical', + collapseWhitespace: 'conservative', + removeComments: 'safe', + minifyConditionalComments: true, + removeOptionalTags: true, + removeAttributeQuotes: true, }; diff --git a/client/scripts/fonts.js b/client/scripts/fonts.js index 92e06eb..e04e75a 100644 --- a/client/scripts/fonts.js +++ b/client/scripts/fonts.js @@ -1,4 +1,5 @@ import aura from '../images/notes/aura.png'; +import blaz from '../images/notes/blaz.png'; import ddp from '../images/notes/ddp.png'; import mgs from '../images/notes/mgs.png'; import outf0 from '../images/notes/outf-0.png'; @@ -18,1220 +19,1046 @@ import wfang from '../images/notes/wfang.png'; const fonts = { '1943': { - index: 1, name: '1943', - company: 'Capcom', + dev: 'Capcom', styles: 10, notes: '' }, acro: { - index: 2, name: 'Acrobat Mission', - company: 'UPL', + dev: 'UPL', styles: 1, notes: '' }, aerof: { - index: 3, name: 'Aero Fighters', - company: 'Kaneko', + dev: 'Kaneko', styles: 8, notes: 'This good looking fat font is nearly identical to one used by Sammy years later in their Pachinko Sexy Reaction 2 game.

The original was monochrome, I have added my own gradients to some of these.' }, aftb: { - index: 4, name: 'Afterburner', - company: 'Sega', + dev: 'Sega', styles: 9, notes: "Sega threw out the rulebook with this one. Every character is as thick as possible without making it totally unreadable. Wherever convenient they'd make one that would be next to unreadable out of context - a triangle for an A, a strange spiral for a Q." }, aof2: { - index: 5, name: 'Art of Fighting 2', - company: 'SNK', + dev: 'SNK', styles: 5, notes: '' }, arab: { - index: 6, name: 'Arabian Magic', - company: 'Capcom', + dev: 'Capcom', styles: 4, notes: "This semi-cursive serif font is a very impressive work. Most companies won't dare try to pack this much style into 8x8 pixels, but Capcom, a font favourite of mine, knows no limits." }, arcade: { - index: 7, name: 'Arcade Classic', - company: '', + dev: '', styles: 8, notes: "This is the classic arcade font. First used in Atari's Quiz Show, you can find it in the same or slightly modified form in games from just about every game manufacturer, from the early eighties until well into the nineties. Taito and Namco were especially enamoured with it." }, arka: { - index: 8, - name: 'ArkArea', - company: 'UPL', + name: 'Ark Area', + dev: 'UPL', styles: 5, notes: "I love UPL games, but most of their arcade releases don't really impress font-wise. This one's a very lovely exception. Unusually for an 8x8 font Ark Area offers a pseudo-3D look which works really well for what is, under the shine, a fat font. It even has drop-shadow!" }, armo: { - index: 9, - name: 'ArmoredWarriors', - company: 'Capcom', + name: 'Armored Warriors', + dev: 'Capcom', styles: 5, notes: 'Capcom really likes their thin fonts, and one very much like this was used in most of their CPS2 releases. This one is a more modern release, and impressively they managed anti-alias the letters. A very impressive feat in an 8x8 space!' }, ass: { - index: 10, name: 'Assault', - company: 'Namco', + dev: 'Namco', styles: 8, notes: "This is an unusual font for Namco. Normally they stick to the Classic font, but for this twin-stick tank shooter they used a fairly typical fat-font with a futuristic cut on the top-right. It's very similar to other fat fonts, but has a curious kinship with the Aero Fighters font, which has a cut on the top left.

Once again the gradients are my own addition, they're not from the game." }, astx: { - index: 11, name: 'Asterix', - company: 'Konami', + dev: 'Konami', styles: 9, notes: '' }, atascii: { - index: 12, name: 'ATASCII', - company: '', + dev: '', styles: 4, notes: '' }, aura: { - index: 13, name: 'Aurail', - company: 'Sega', + dev: 'Sega', styles: 20, notes: `Aurail's one of my favourite games, and it's got a great font. It also has a little bit of extra-large font for the copyright notice:


It still fits within the 8x8 boundary, but has no outline and takes up an extra pixel or two compared to the regular font.` }, avng: { - index: 14, name: 'Avengers', - company: 'Capcom', + dev: 'Capcom', styles: 10, notes: 'This one is kind of unusual. It has three colours, and depending on the palette used, can appear to be either pseudo-3D, or with a secondary drop shadow, or with some fairly effective but rudimentary anti-aliasing.' }, bakr: { - index: 15, name: 'Battle Bakraid', - company: 'Eighting', + dev: 'Eighting', styles: 7, notes: '' }, baku: { - index: 16, name: 'Bakuretsu Breaker', - company: 'Kaneko', + dev: 'Kaneko', styles: 4, notes: "I almost didn't include this one because, while it looks decent enough in-game, it looks fairly rough up close.

I'd wager that the font was created from a higher res source, downsized via algorithm. What appears to be a small font with a two-colour shadow is actually an automatically-aliased downsampling, resulting in misshapen characters and odd pixel placements." }, bats: { - index: 17, name: 'Batsugun', - company: 'Toaplan', + dev: 'Toaplan', styles: 10, notes: 'This font is kind of a failure, IMO. With only eight pixels to work with, clarity is vital, and a stencil font already pushes hard against the limits. Adding a complicated 5-colour diagonal gradient and a matching two-colour drop-shadow makes this font very hard to read. Some combinations work, but most are really just cluttered. Much like the game itself, in fact, Toaplan seems to have tried too hard to pack too much into a container that could not carry it all.' }, bayr: { - index: 18, name: 'Bay Route', - company: 'Sega', + dev: 'Sega', styles: 3, notes: '' }, bcir: { - index: 19, - name: 'BattleCircuit', - company: 'Capcom', + name: 'Battle Circuit', + dev: 'Capcom', styles: 18, notes: 'This is a very pretty font, with thick verticals and all other lines thin. It also features some pretty shading, with some very nice palette choices.' }, bdash: { - index: 20, name: 'Boulder Dash', - company: 'Data East', + dev: 'Data East', styles: 8, notes: "I'm not entirely sure what's up with this font. It's not completely ugly, but it's not really polished either. What's with the chunky S, and the H with one side serif and one side sans? Why is there a stroke through the upper-case D?? It's just bizarre, overall." }, bios: { - index: 21, - name: 'BioShipPaladin', - company: 'UPL', + name: 'Bio-ship Paladin', + dev: 'UPL', styles: 6, notes: "This one's hard to love. It seems like a prototype version of UPL's other great 3D fat-font from Ark Area, but it has some unique features of its own. It uses its three colours very well, to present a thin font with a deep 3D appearance, and looks great at large sizes. Sadly though it looks quite pathetic when rendered at 1x or 2x size." }, blaz: { - index: 22, name: 'Blazing Star', - company: 'Yumekobo', + dev: 'Yumekobo', styles: 8, - notes: `This is a nicely updated version of futuristic font. Many letters were updated to look more consistently spacey, instead of like the standard Namco font with a few futuristic bits n bobs.` + notes: `This is a nicely updated version of futuristic font. Many letters were updated to look more consistently spacey, instead of like the standard Namco font with a few futuristic bits n bobs.` }, blkt: { - index: 23, name: 'Black Tiger', - company: 'Capcom', + dev: 'Capcom', styles: 8, notes: 'This Capcom font is used in many of their games, including Street Fighter 2 which used a basically identical font with a colourful gradient.' }, blwa: { - index: 24, name: 'Blood Warrior', - company: 'Kaneko', + dev: 'Kaneko', styles: 8, notes: "This gorgeously colourful font almost looks like a computer font (Dangerous Seed, the bottom of a cheque) but it's more like a thick-font, with a skinny left vertical... Mostly I just like the colours, it's so Atari-8-bit." }, bonz: { - index: 25, name: 'Bonanza Bros', - company: 'Sega', + dev: 'Sega', styles: 7, notes: "It's not really a radical font, but it's nice and clear and has a certain character of its own." }, boog: { - index: 26, name: 'Boogie Wings', - company: 'Data East', + dev: 'Data East', styles: 5, notes: "This shades-of-orange thin font looks an awful lot like Capcom's CPS2 fonts, minus the anti-aliasing. It's not otherwise particularly noteworthy." }, bubma: { - index: 27, name: 'Bubble Memories Alien', - company: 'Taito', + dev: 'Taito', styles: 4, notes: "This crazy little font comes from Taito's Bubble Memories game. Interestingly it's almost readable, as each letter has a basis in the original Roman alphabet." }, bubs: { - index: 28, name: 'Bubble Symphony', - company: 'Taito', + dev: 'Taito', styles: 9, notes: 'This is a cute little bubble font. Strangely Taito made it smaller than the 8 pixels would have allowed, leading to some legibility problems.' }, caml: { - index: 29, name: 'Cameltry', - company: 'Taito', + dev: 'Taito', styles: 9, notes: "This is a gorgeous font. Taito didn't stray far from the standard often - like Namco, they stuck with the Classic font more often than not. When they deviated though... Well, the results are in front of you. Cameltry's square fat font is gorgeous to look at, in part because of the colours, but also the shading. No gradient here, just an outline and a simple second colour, which makes some letters look 3D." }, chiki: { - index: 30, name: 'Chiki Chiki Boys', - company: 'Capcom', + dev: 'Capcom', styles: 5, notes: 'I really like what Capcom did with this font. It has very readable quality, and the lower case is exceptionally clear while fitting with the upper-case style. Not many fonts pull that off, but Capcom are masters of the 8x8 font.

Not entirely sold on the lower-case Z tho, it looks a little too much like a three.' }, cliff: { - index: 31, name: 'Edward Randy', - company: 'DataEast', + dev: 'DataEast', styles: 5, notes: 'A solid if unremarkable italic font from Data East. Sadly all the colours are quite dark.' }, cmnds: { - index: 32, - name: 'Special', - company: 'Capcom', + name: 'Commando-Special', + dev: 'Capcom', styles: 10, notes: "This one's not really a font designed for regular use. When entering your initials on the high-score screen, the upper and lower case letters of this font would appar to spin, flickered in quick succession with the regular font." }, cotn: { - index: 33, name: 'Cotton', - company: 'Sega + Success', + dev: 'Sega/Success', styles: 16, notes: 'I love this balloon-like, asymmetrical, rounded fat font. I love the colours too. Sega/Success really made something unique here.' }, cshk: { - index: 34, name: 'Captain Sky Hawk', - company: 'RARE', + dev: 'RARE', styles: 4, notes: '' }, cyba: { - index: 35, name: 'Cybattler', - company: 'Jaleco', + dev: 'Jaleco', styles: 6, notes: 'Just a bog-standard computer-style font with a beautiful, colourful gradient and a hint of anti-aliasing.' }, ddcrew: { - index: 36, name: 'D D Crew', - company: 'Sega', + dev: 'Sega', styles: 4, notes: '' }, dddon: { - index: 37, name: 'Don Doko Don', - company: 'Taito', + dev: 'Taito', styles: 7, notes: "Taito, like Namco, rarely strayed from the Classic font, but they did for Don Doko Don. What's really strange is that the font seems futuristic, but the game is a forest & elves platformer. It's definitely out of place, but it's a cool font.

Seems to be the same as Liquid Kids." }, ddp: { - index: 38, name: 'DoDonPachi', - company: 'Cave', + dev: 'Cave', styles: 12, notes: `This font is fairly interesting: if you look closely, the same gradient pattern is used in every letter, a diagonal dark-to-light with most of the top-left corner being the lightest colour. In the sprite data I found an 8x8 tile that is the fill pattern for this font. It could have been used as a fill, or guide, or even an overlay, filling any space with the gradient pattern used for these fonts.


This sort of fill is not as common as you might think. Many fonts use a pattern that's customized, to some extent, to each letter. Seibu's Raiden Fighters, for example, with its highlight always at the brightest point for every letter, no matter where it is.` }, ddr: { - index: 39, name: 'Dance Dance Revolution', - company: 'Konami', + dev: 'Konami', styles: 10, notes: '' }, ddux: { - index: 40, name: 'Dynamite Dux', - company: 'Sega', + dev: 'Sega', styles: 9, notes: "This one's a nice variation on the standard fat-font, with some interesting colour choices for a beat-em-up. It's very similar to a font used in several of Sega's other games, like Afterburner." }, deta: { - index: 41, name: 'Detana Twinbee', - company: 'Konami', + dev: 'Konami', styles: 8, notes: '' }, dima: { - index: 42, name: 'Dimahoo', - company: 'Raizing', + dev: 'Raizing', styles: 9, notes: "I'm not entirely convinced that this font is unique, but it looks good and has a few nice gradients, so here you go." }, drbr: { - index: 43, name: 'Dragon Breed', - company: 'Irem', + dev: 'Irem', styles: 3, notes: "I'm not sure if I like this font. It seems lumpy, but it has beautiful gradients." }, dsab: { - index: 44, name: 'Dragon Saber', - company: 'Namco', + dev: 'Namco', styles: 8, notes: 'Another rare instance where Namco strays from their standard font path. This one has a certain medieval charm, which I guess is appropriate for a game about dragons. The gradients are not from the game.' }, dspir: { - index: 45, name: 'Dragon Spirit', - company: 'Namco', + dev: 'Namco', styles: 10, notes: "This is a nicely refined descendant of Namco's standard font, with just enough tweaks to make it different without being hard to read. The gradients in these were included in the game sprites, but were not actually used in the game itself - not for fonts, anyway. So they're sort of but not quite authentic." }, f1dr: { - index: 46, name: 'F1 Dream', - company: 'Capcom', + dev: 'Capcom', styles: 6, notes: '' }, flak: { - index: 47, name: 'Flak Attack', - company: 'Konami', + dev: 'Konami', styles: 7, notes: 'An unusual, segmented font, mimicking those 8-segment LED displays with surprising effectiveness for an 8x8 space.' }, flys: { - index: 48, name: 'Flying Shark', - company: 'Taito', + dev: 'Taito', styles: 16, notes: 'Toaplan really liked to mess about with their fonts. Using only four colours this very readable font conjures up immediate happiness when you see it in the game.' }, fstarf: { - index: 49, name: 'Final Star Force', - company: 'Tecmo', + dev: 'Tecmo', styles: 7, notes: "Tecmo's Final Star Force is one of a very few games that manages to squeeze a serif font into the 8x8 pixel cage, and it manages to do a decent job of it too. Of course, it's easier when you don't have to worry about lower-case. =)" }, fz: { - index: 50, name: 'Fantasy Zone', - company: 'Sega', + dev: 'Sega', styles: 5, notes: 'This little font is a very reusable thing. With its black outline it rarely clashes with any background, and remains very readable at all sizes.' }, gaia: { - index: 51, name: 'Gaiapolis', - company: 'Konami', + dev: 'Konami', styles: 11, notes: "This one's a good looking font, but the drop shadow on most letters is missing from the left-most side. This makes the letters look really strange when they're not adjacent to each other." }, gain: { - index: 52, name: 'Gain Ground', - company: 'Sega', + dev: 'Sega', styles: 7, notes: 'Gain Ground is a strange game. It involved time travelling warriors, and the font seems to capture that spirit well, being neither futuristic or medieval, but rather a unique fusion of both.' }, garou: { - index: 53, name: 'Garou Densetsu', - company: 'SNK', + dev: 'SNK', styles: 4, notes: '' }, gng1: { - index: 54, - name: 'Ghosts n Goblins', - company: 'Capcom', + name: "Ghosts 'n Goblins", + dev: 'Capcom', styles: 11, notes: 'A classy font for a classic game. Easy to read, with a charmingly medieval feel.' }, gng2: { - index: 55, - name: 'Ghouls n Ghosts', - company: 'Capcom', + name: "Ghouls 'n Ghosts", + dev: 'Capcom', styles: 10, notes: "Like Sega's Shadow Dancer, Capcom's new hardware allowed them to take a good looking font and drive it to the brink of disaster with the greater palette allowed by more powerful hardware. Capcom managed to make it work some of the time, but there are certain colour combinations that take a beautiful character set and muck it all up. Any of these colour variations with a drop-shadow lighter than the font itself tends to look awful. To their credit, it seems that these were never actually used in-game... But still." }, gond: { - index: 56, name: 'Gondomania', - company: 'Data East', + dev: 'Data East', styles: 6, notes: "Italic fonts are not common in the arcade, as it can be quite hard to get them to look good. Sometimes you can pull it off with a single colour (See Konami's Time Pilot) but - with the luxury of two colours you can make them look very good indeed." }, + gradius: { + name: 'Gradius', + dev: '', + styles: 8, + notes: "This gorgeous font lacks almost all punctuation, if you really want it, you can try Xexex or Gradius II or Gradius III, all of which have additional characters. This one's basically here for the sake of completing the Gradius series." + }, gradius2: { - index: 57, name: 'Gradius 2', - company: 'Konami', + dev: 'Konami', styles: 3, notes: '' }, gradius3: { - index: 58, name: 'Gradius 3', - company: 'Konami', + dev: 'Konami', styles: 7, notes: 'This is a lovely remake of the Gradius font, with rounded corners and, overall, a cleaner look.' }, gradius4: { - index: 59, name: 'Gradius 4', - company: 'Konami', + dev: 'Konami', styles: 3, notes: "Interestingly Konami abandoned the rounded Gradius 3 font in favour of this Gradius 1 lookalike. A couple of rounded corners carried over from Gradius 3 and an all-new gradient, but it's otherwise Gradius 1 again." }, - gradius: { - index: 60, - name: 'Gradius', - company: '', - styles: 8, - notes: "This gorgeous font lacks almost all punctuation, if you really want it, you can try Xexex or Gradius II or Gradius III, all of which have additional characters. This one's basically here for the sake of completing the Gradius series." - }, guar: { - index: 61, name: 'Guardians', - company: 'Banpresto', + dev: 'Banpresto', styles: 9, notes: "This schizophrenic little beauty can't decide if it's serif or sans-serif." }, gunb: { - index: 62, - name: 'GunBuster', - company: 'Taito', + name: 'Gun Buster', + dev: 'Taito', styles: 11, notes: 'This is a brilliant font. Totally readable at any size, great colours, and a subtle but appealing gradient. Also, in the actual game, a fading laser effect makes it look 200x more awesome than it does here.

Trivia: the dropshadow on this also has a great looking gradient, but it was a lot of extra work to rip, as it matched the background perfectly.' }, gunn: { - index: 63, name: 'GunNail', - company: 'NMK', + dev: 'NMK', styles: 11, notes: "This is basically the Classic font with a sexy gradient. There are a few unique characters, but otherwise there's nothing to see here but purty colours." }, guns: { - index: 64, name: 'Gun.Smoke', - company: 'Capcom', + dev: 'Capcom', styles: 4, notes: "Thie one's the same as Side Arms, and it strikes me as odd that a military-looking stencil font was used for both an olde west and sci-fi shooter." }, gyrs: { - index: 65, name: 'Gyruss', - company: 'Konami', + dev: 'Konami', styles: 7, notes: "This is one of my favourites. Individually they might not look like much, but when they're on the screen as you pop a quarter into the machine and the music starts to play, they're made of magic. Interesting gradient on this one too, hand-pixeled, with an almost metallic look." }, hach: { - index: 66, name: 'Hacha Mecha Fighter', - company: 'NMK', + dev: 'NMK', styles: 5, notes: "NMK's Hacha Mecha Fighter is batshit insane, but it's visually amazing, right down to the font. 8 x 8 pixels, full upper and lower case, all the punctuation, in italics! and for good measure there's some Japanese katakana in there as well. Except for the lack of colour options, it's one of the best fonts I've ever seen." }, hatt: { - index: 67, - name: 'Hat Trick Hero 95', - company: 'Taito', + name: "Hat Trick Hero '95", + dev: 'Taito', styles: 13, notes: "This is a surprisingly nice computer font that's totally inappropriate for use in a soccer game (Taito's Hat Trick Hero '95). Unusually, it has a full lower-case set. The smaller letters aren't always awesome (What's with the R?) and the M and N have strange tails on the top-left, but in all other respects this is one of my favourites." }, imgf: { - index: 68, name: 'Image Fight', - company: 'IREM', + dev: 'IREM', styles: 6, notes: "This font is very, very similar to a handful of other fonts, with its futuristic top-right cut across many letters. It's different from the others, as it also has a stencil appearance, and thinner lines than many others (For example, Aero Fighters).

The lower-case letters are pretty ugly..." }, kais: { - index: 69, name: 'Kaiser Knuckle', - company: 'Taito', + dev: 'Taito', styles: 8, notes: "I like this font. It's blunt, forceful and attractive at the same time. No effort wasted on ill-fitting, unnecessary diagonal lines, just in-your-face clarity. And hey, check out those colours!" }, ketsui: { - index: 70, name: 'Ketsui', - company: 'Cave', + dev: 'Cave', styles: 10, notes: "Cave really lost the plot with their last releases. Ketsui was a great game saddled with ugly pre-rendered graphics and a font that is a testament to style before coherence.

Lower case letters with descenders, like p, q and g are very tall, which isn't uncommon, but why are the lower case a and s so tall?

The upper case set is much better overall, and the colours are excellent." }, kiki: { - index: 71, name: 'Kiki Kaikai', - company: 'Taito', + dev: 'Taito', styles: 4, notes: "This is a very unusual font, with a distinct brush-stroke style. The closest match might be Sega's Shinobi, but they don't really look alike." }, kira: { - index: 72, name: 'Kirameki Star Road', - company: 'Taito', + dev: 'Taito', styles: 5, notes: 'A very beautiful font that makes solid use of its 8x8 confines.' }, - klaxa: { - index: 73, - name: 'Klax Alternate', - company: 'Atari', + klax: { + name: 'Klax', + dev: 'Atari', styles: 3, notes: "Atari rarely strayed from the tried-and-true Classic font, but for Klax they went all out with 3-colour anti-aliased characters. It's perhaps unique in its inclusion of bold and italic fonts in addition to the upper and lower case characters. All three faces are included here (Klax and Klax Alternate) though the italic and bold faces are not available in lower case.

Despite its variety, the font is not a total success: The italics are shoddy and uneven, with some characters leaning 2 pixels horizontally, and some leaning three (compare the H and I characters, for example). The italic D is really quite unattractive, though this is less likely a fault of the designer than the 8-pixel limitations." }, - klax: { - index: 74, - name: 'Klax', - company: 'Atari', + klaxa: { + name: 'Klax Alternate', + dev: 'Atari', styles: 3, notes: "Atari rarely strayed from the tried-and-true Classic font, but for Klax they went all out with 3-colour anti-aliased characters. It's perhaps unique in its inclusion of bold and italic fonts in addition to the upper and lower case characters. All three faces are included here (Klax and Klax Alternate) though the italic and bold faces are not available in lower case.

Despite its variety, the font is not a total success: The italics are shoddy and uneven, with some characters leaning 2 pixels horizontally, and some leaning three (compare the H and I characters, for example). The italic D is really quite unattractive, though this is less likely a fault of the designer than the 8-pixel limitations." }, + kof97: { + name: "King of Fighters '97", + dev: 'SNK', + styles: 12, + notes: "This great looking font shows off SNK at the peak of their game. It looks great, and has a unique fill pattern, with a slightly different colour on the vertical edges.

There's also an Italic version." + }, + kof97i: { + name: "King of Fighters '97 Italic", + dev: 'SNK', + styles: 12, + notes: '' + }, + kof2k: { + name: 'King of Fighters 2000', + dev: 'SNK', + styles: 9, + notes: 'Except for some unusual colours, the only thing distinguishing the KoF 2000 font from the rest of the series is a smaller character set where the lower case letters would usually be.

I think the lower case letters actually look better than the standard characters.' + }, kof2k1: { - index: 75, name: 'King of Fighters 2001', - company: 'SNK', + dev: 'SNK', styles: 7, notes: 'This is an excellent font, and quite unusual in its excellent use of a very small space. It is, in effect, a 6x5 font. It uses all eight pixels horizontally, two for the surrounding outline, but only seven pixels vertically, preserving an empty pixel for a gap between lines of text.

Small fonts are rare, and even more rarely done this well.' }, kof2k2: { - index: 76, name: 'King of Fighters 2002', - company: 'SNK', + dev: 'SNK', styles: 4, notes: "The King of Fighters series always went for a thick slab font, until 2002. This thin little number is quite appealing for its clarity, but doesn't really do anything special." }, kof2k3: { - index: 77, name: 'King of Fighters 2003', - company: 'SNK', + dev: 'SNK', styles: 7, notes: 'This is a competent but unambitious little font, with a clear square-cut appearance. Somewhat unusually it has a futuristic secondary style where the lower case letters would normally be.' }, - kof2k: { - index: 78, - name: 'King of Fighters 2000', - company: 'SNK', - styles: 9, - notes: 'Except for some unusual colours, the only thing distinguishing the KoF 2000 font from the rest of the series is a smaller character set where the lower case letters would usually be.

I think the lower case letters actually look better than the standard characters.' - }, - kof97i: { - index: 79, - name: 'King of Fighters 97 Italic', - company: 'SNK', - styles: 12, - notes: '' - }, - kof97: { - index: 80, - name: 'King of Fighters 97', - company: 'SNK', - styles: 12, - notes: "This great looking font shows off SNK at the peak of their game. It looks great, and has a unique fill pattern, with a slightly different colour on the vertical edges.

There's also an Italic version." - }, ladu: { - index: 81, name: 'Last Duel', - company: 'Capcom', + dev: 'Capcom', styles: 5, notes: "It's very unusual for any arcade font to have a break in it, moreso when it impacts legibility as it does here. The cut, and the dark line, make this font very hard to read on most backgrounds. Still, Last Duel is a great game, and this font looks just fine while playing. And, as a futuristic fat font and a rare failure (sorta) from Capcom, it's worth checking out here.

Would probably be cooler with some better colours..." }, lastb: { - index: 82, name: 'Last Blade 2', - company: 'SNK', + dev: 'SNK', styles: 7, notes: "This font is quite restrained, with each letter being much narrower than it needs to be. Very few characters take the full eight horizontal pixesl they're allowed." }, last: { - index: 83, name: 'Last Resort', - company: 'SNK', + dev: 'SNK', styles: 6, notes: "Last Resort was an RType-alike from SNK, with much of the design by the guys at IREM. Including, it seems, the font. This pretty thing features a rare horizontal gradient, (designed to cycle through the colours) that is nigh identical to Irem's RType LEO and Gallop." }, lghost: { - index: 84, name: 'Laser Ghost', - company: 'Sega', + dev: 'Sega', styles: 4, notes: '' }, libr: { - index: 85, name: 'Light Bringer', - company: 'Capcom', + dev: 'Capcom', styles: 4, notes: '' }, lwing: { - index: 86, name: 'Legendary Wings', - company: 'Capcom', + dev: 'Capcom', styles: 5, notes: "This is a lovely little font that does its job well, and doesn't make too much of a mess of things." }, mars: { - index: 87, name: 'Mars Matrix', - company: 'Capcom', + dev: 'Capcom', styles: 12, notes: "Computer-looking fonts like this one are quite common, but it's very unusual for them to have lower case. In fact, I haven't seen another that does.

This is also fairly unusual with its brighter-than-the-font drop-shadow. Looks great though." }, mgs: { - index: 88, name: 'Metal Gear Solid', - company: 'Konami', + dev: 'Konami', styles: 4, notes: `This isn't an arcade font, obviously, but it's a really good looking 8x6 font that looks great in-game.

The game treats the font as a proportionate one, adding a space between letters and reducing the spacing where appropriate (for example, the capital I).

In addition, in many places, the game creates a shadow which looks excellent, probably by simply slamming down two layers of text with a 1 pixel offset.

` }, mjack: { - index: 89, - name: 'Michael Jackson Moonwalker', - company: '', + name: "Michael Jackson's Moonwalker", + dev: '', styles: 6, notes: 'As is normal for Sega, the whole set of capital letters look great, a bit stylish with a missing pixel on the top left corner.

As is normal for 8x8 fonts, the lower case letters are a mixed bag.' }, moma: { - index: 90, name: 'Monster Mauler', - company: 'Konami', + dev: 'Konami', styles: 8, notes: "This font appears to be like many others at first, but then you notice that it's got a really unusual horizontal gradiant." }, mt: { - index: 91, name: 'Major Title', - company: 'IREM', + dev: 'IREM', styles: 13, notes: "This one isn't really any different from the Classic, but I like the choice of colours in some of the gradients. Plus, I like Irem. =)" }, muni: { - index: 92, name: 'Mutant Night', - company: 'UPL', + dev: 'UPL', styles: 8, notes: "This simple but clear font probably wouldn't merit inclusion if it wasn't from a game I really love, UPL's 1997 Mutant Night.

The same font, or one exactly like it, was used in most of UPL's games." }, mwar: { - index: 93, name: 'Metal Warriors', - company: 'Konami', + dev: 'Konami', styles: 2, notes: "This is a strange font that shows signs of being a careless or rushed addition to the spectacular SNES game Metal Warriors. It's 8x7 in an 8x8 grid, and while most characters were drawn to fit, the question mark was simply cut off at the top. Some letters seem out of place, like the letter O which is oddly thick compared to the similarly shaped Q. The shadows are inconsistent, sometimes diagonal, sometimes horizontal or vertical, and sometimes missing or doubled up. Every letter with a TL:BR diagonal has a double shadow which is, frankly, bizarre.

Still, it's one of the best SNES games, and so here it is." }, namco2: { - index: 94, name: 'Namco Classic Gradient', - company: '', + dev: '', styles: 6, notes: "This is just the Classic font with some gorgeous gradients from Namco's Burning Force." }, nds: { - index: 95, name: 'Dangerous Seed', - company: 'Namco', + dev: 'Namco', styles: 11, notes: 'Another unusual Namco variation, this time a computer-looking font. The complete lack of diagonal lines make this one exceptionally easy to read, on any background.' }, nebu: { - index: 96, name: 'Nebulas Ray', - company: 'Namco', + dev: 'Namco', styles: 8, notes: 'This font us unusually clean and legible despite using only six vertical pixels, including the shadow.

It is also quite unusual with the shadow - there are three colours, lending a very pleasing bit of transparent-seeming sophistication, to the single-colour characters.' }, niga: { - index: 97, name: 'Ninja Gaiden', - company: 'Tecmo', + dev: 'Tecmo', styles: 5, notes: 'This is just the classic font with some great colours and drop-shadow.' }, ninjak: { - index: 98, name: 'Ninja Kids', - company: 'Taito', + dev: 'Taito', styles: 5, notes: "This is a terrible font. It seems to have been created by someone who was uninterested in the whole process. The whole game is a sort of slap-dash effort, so in that respect the font is perfectly suited.

The more I look at it, the more I don't understand it. The shadow is terribly inconsistent. The capitals K, M and N have missing shadows for, I guess, reasons?

The lower case letters have a higher base than the upper case, and some letters like g and j use this for their descenders, but the lower case p does not. It seems as if the creator gave up halfway. It's not the worst font, but it's close." }, ninjas: { - index: 99, name: 'Ninja Spirit', - company: 'IREM', + dev: 'IREM', styles: 4, notes: 'This is a very clean and simple font, I just love it. Not really fond of any of the colour variants tho - only the first one has any appeal.' }, ninj: { - index: 100, name: 'Ninja Masters', - company: 'ADK', + dev: 'ADK', styles: 10, notes: "I don't know how I missed this one for so long. It's a really great italic brush-type font from the otherwise incapable pixel artists at ADK. At first I thought they must have ripped it off some other game... It reminds me a bit of Samurai Showdown 3, but it's actually unique." }, nstrike: { - index: 101, name: 'Night Striker', - company: 'Taito', + dev: 'Taito', styles: 7, notes: 'This is a very competent thin font that adheres to its style effectively. It is unusual with its all-sides outline, which it shares with a very similar font in Top Ranking Stars, also from Taito, released four years after this game.' }, ord: { - index: 102, name: 'Ordyne', - company: 'Namco.png', + dev: 'Namco', styles: 5, notes: '' }, outf: { - index: 103, name: 'Outfoxies', - company: 'Namco', + dev: 'Namco', styles: 7, notes: `At some point you have to wonder if a developer is just showing off. Outfoxies by Namco is one such point. There are no fewer than seven distinct 8x8 fonts here, including:









I didn't bother adding colour variations, I leave that as an exercise for you, dear user.` }, pabom: { - index: 104, name: 'Panic Bomber', - company: 'Hudson', + dev: 'Hudson', styles: 9, notes: "Hudson's Panic Bomber was a decidedly average game with astonishing levels of polish. The music, the graphics, and even the font: this 8x8 font is brilliant. It's clear, a bit quirky and a whole lotta colourful." }, paro: { - index: 105, name: 'Parodius DA!', - company: 'Konami', + dev: 'Konami', styles: 4, notes: '' }, pckf: { - index: 106, name: 'Pickford Brothers', - company: '', + dev: '', styles: 6, notes: 'The Pickford Bros have been making games since before the NES days. These fonts are from some of their games. In order:

- Equinox
- Feud
- Plok
- Maximum Carnage
- Solar Jetman' }, psr2: { - index: 107, name: 'Pachinko Sexy Reaction 2', - company: 'Sammy', + dev: 'Sammy', styles: 8, notes: '' }, pubu: { - index: 108, name: 'Puzzle Bobble', - company: 'Taito', + dev: 'Taito', styles: 7, notes: 'This fantastic thin font is simplicity itself. Each letter is a textbook example of a Roman character in 64 pixels, with just a hint of anti-aliasing to polish it all off.' }, puls: { - index: 109, name: 'Pulstar', - company: 'Aicom', + dev: 'Aicom', styles: 7, notes: "This is a great looking font, but it's even better in Blazing Star, a lesser sequel with a better font." }, qtet: { - index: 110, name: 'Quartet 2', - company: 'Sega', + dev: 'Sega', styles: 4, notes: "This cute li'l font is a puffy single colour bit of Sega excellence, with an outline.

Not much to say really. It's competent and I like it.

Quartet and Quartet 2 use the same font." }, quake: { - index: 111, name: 'Quake', - company: 'id', + dev: 'id', styles: 2, notes: '' }, raph: { - index: 112, name: 'Rapid Hero', - company: 'MTC', + dev: 'MTC', styles: 4, notes: "This curious font reminds me of the inter... a series of tubes. Just about every segment (at least in the upper case letters) has a shadow, giving it a 3D tubular look. Sadly it doesn't carry through to every character, and some - especially the lower case - just look unfinished.

In a very strange move, they raised the lower case letters up one line to allow letters with a descender (g, j, q etc) to actually drop lower than other letters. Unfortunately, while this works well for lower-case words and phrases, it makes the letters look completely broken when mixed with capital letters." }, rayf: { - index: 113, name: 'RayForce', - company: 'Taito', + dev: 'Taito', styles: 9, notes: `This is a gorgeous font, absolutely one of the very best. It's made even more impressive by its size - a full outline and only seven vertical pixels used. And I looove the colours! Still, the ones above cannot compare to the actual game where, using rapid palette switching, the fonts appear to shimmer with a faux-interlace effect. Like so:



This one's vibrating at 1/50th of a second per frame, which isn't far off what the actual game does (1/60). It looks way, way better on a CRT at native speed. I love the effect.` }, - rcop2: { - index: 114, - name: 'Robocop 2', - company: 'Data East', - styles: 3, - notes: "This is the same font as the first Robocop, with a nice new gradient and reduced emphasis on the anti-aliasing. Instead, letters are cut and appear more rounded, especially the lower case characters. The upper case letters aren't as uniformaly square-shaped as in the first game.

But what is with the extra pixel on the upper case J?" - }, rcop: { - index: 115, - name: 'Robocop', - company: 'Data East', + name: 'RoboCop', + dev: 'Data East', styles: 5, notes: "This is a clean little font with a single darker colour for rudimentary anti-aliasing. The lower case letters are a mixed bag overall, but the upper case set is really great in their own context.

Nearly every letter fills the entire 8x8 grid, and where they don't some steps are taken to ensure they do: the upper case J has a shadow that's two pixels thick, and the lower case k is, frankly, weird." }, + rcop2: { + name: 'RoboCop 2', + dev: 'Data East', + styles: 3, + notes: "This is the same font as the first Robocop, with a nice new gradient and reduced emphasis on the anti-aliasing. Instead, letters are cut and appear more rounded, especially the lower case characters. The upper case letters aren't as uniformaly square-shaped as in the first game.

But what is with the extra pixel on the upper case J?" + }, rezon: { - index: 116, name: 'Rezon', - company: 'Allumer', + dev: 'Allumer', styles: 1, notes: "Rezon uses an 8x8 font stored in a 16x16 grid, which made its extraction fairly tedious.

There's only one colour variation, but it's a good looking thin font that makes every attempt to fill the space to every edge." }, rf: { - index: 117, name: 'Raiden Fighters', - company: 'Seibu', + dev: 'Seibu', styles: 10, notes: "I have a soft spot for Raiden. Seibu's shooter raised the bar in the genre, setting new standards and conventions for other games to try and follow. Perhaps it's no coincidence that I love this font then. It's strong, with a unique diagonal gradient: every letter is hand-shaded, so that there's a highlight in the right place and all five gradient colours are used, no matter the size, shape or orientation. Many other fonts, with a flat horizontal gradient or plain fill (like Cave's DoDonPachi) just don't look as nice." }, ridef: { - index: 118, name: 'Riding Fight', - company: 'Taito', + dev: 'Taito', styles: 8, notes: "Riding Fight is a game that would look at home on the Super NES, and be criticized for a total lack of depth. In keeping with that damning assesment, the font is awful too.

Italic letters are always tricky in an 8x8 grid, and the designer of this font seemed to give up every time it got messy. Messy is, in fact, how I'd describe it. The lower case i isn't italic at all.

Really just bad, overall." }, roadr: { - index: 119, name: 'Road Riot', - company: 'Atari', + dev: 'Atari', styles: 3, notes: "I have a soft spot for Atari, but I have to admit their game art is average much of the time. This font confounds me, I just don't know what they were trying to achieve.

The weird horizontal gradient almost suggests an attempt to create depth, but it's dark on the left and right sides and the result is more of a horizontal shimmer.

It makes my eyes hurt when I look at it for too long." }, robot: { - index: 120, name: 'Robotron', - company: 'Williams', + dev: 'Williams', styles: 4, notes: `There are two fonts in Williams' Robotron, and this is unusual for a bunch of reasons. It's very odd for such an early game - this one released in 1982 - to include more than one font, and it might be the first to include proportional fonts, where thinner characters take less space on the screen. (For the purposes of this font engine however the proportional feature is ignored. Sorry.)

This font includes the computer-style upper case characters, and the smaller high-score characters in the lower-case set.

The lower case set may be the smallest possible legible font, occupying a miniscule 3x5 grid.

Also, Robotron is the best game ever made.

Sprites and Robotron board repair, tech info and etc.` }, - rtl: { - index: 121, - name: 'R Type LEO', - company: 'Irem', - styles: 8, - notes: 'This is a lovely, colourful and very readable font.' - }, rtype: { - index: 122, - name: 'R Type', - company: 'Irem', + name: 'R-Type', + dev: 'Irem', styles: 8, notes: `The problem with the R-Type font is that, outside of the game, the colours don't pulse. Without that sexy liquid colour action it's just an awkward thin font. In action, though, it makes the classic game even classic-er.

` }, + rtl: { + name: 'R-Type LEO', + dev: 'Irem', + styles: 8, + notes: 'This is a lovely, colourful and very readable font.' + }, rumba: { - index: 123, name: 'Rumba Lumber', - company: 'Taito', + dev: 'Taito', styles: 2, notes: '' }, sabo: { - index: 124, name: 'Saboten Bombers', - company: 'NMK', + dev: 'NMK', styles: 1, notes: '' }, sala2: { - index: 125, name: 'Salamander 2', - company: 'Konami', + dev: 'Konami', styles: 7, notes: "Konami does love their italicized fonts, and this font's proof that their love pays off. It's a fantastic looking font that stands above most arcade fonts as a clear and uncompromising typeface." }, samsho2: { - index: 126, name: 'Samurai Shodown 2', - company: 'SNK', + dev: 'SNK', styles: 9, notes: "This isn't really an appropriate font for a samurai fighting game, but it looks good and is easy to read." }, samsho3: { - index: 127, name: 'Samurai Shodown 3', - company: 'SNK', + dev: 'SNK', styles: 10, notes: 'SNK worked wonders on this font. A mere 8x8 pixels is all it takes to evoke real samurai style!' }, sar: { - index: 128, name: 'Search and Rescue', - company: 'SNK', + dev: 'SNK', styles: 1, notes: '' }, sboom: { - index: 129, name: 'Sonic Boom', - company: 'Sega', + dev: 'Sega', styles: 5, notes: '' }, sdi: { - index: 130, name: 'SDI', - company: 'Sega', + dev: 'Sega', styles: 7, notes: "This one's just weird. What does a western-looking font have to do with SDI's space battles? How the hell does that make sense, Sega? HOW?" }, sexy: { - index: 131, name: 'Parodius', - company: 'Konami', + dev: 'Konami', styles: 8, notes: '' }, + sfz3: { + name: 'Street Fighter Zero 3', + dev: 'Capcom', + styles: 8, + notes: "Capcom didn't deviate much from the tried and true Namco font, but with this one they modernized it and made it like 42% awesomer." + }, sf2: { - index: 132, name: 'Street Fighter II', - company: 'Capcom', + dev: 'Capcom', styles: 9, notes: "Just looking at this font gives me a solid Capcom vibe. There's something about the colours and the way they've drawn the letters that just screams Capcom was here!" }, sf3: { - index: 133, name: 'Street Fighter III', - company: 'Capcom', + dev: 'Capcom', styles: 2, notes: "Capcom didn't bother to do nice pixels for the first two Street Fighter III games. The fonts are unattractive, poorly down-scaled from some larger source.

They fixed this for 3rd Strike." }, sf33: { - index: 134, name: 'Street Fighter III 3rd Strike', - company: 'Capcom', + dev: 'Capcom', styles: 1, notes: 'It seems like Capcom had some extra time, money or staff, when they were making 3rd Strike. This font is a lovely, hand crafted return to form, a real improvement over the first two SF III games.' }, - sfz3: { - index: 135, - name: 'Street Fighter Zero 3', - company: 'Capcom', - styles: 8, - notes: "Capcom didn't deviate much from the tried and true Namco font, but with this one they modernized it and made it like 42% awesomer." - }, shda: { - index: 136, - name: 'ShadowDancer', - company: 'Sega', + name: 'Shadow Dancer', + dev: 'Sega', styles: 8, - notes: `This is a sequel to Sega's earlier Shinobi. Interestingly the new hardware didn't result in a better font: Shadow Dancer's letters are thicker, have a gradient and a 3D look, but the details are compressed and the result, especially at small sizes, seems smudged. Shinobi's font seems to be a little less attractive, but is much more readable for it. When enlarged however the reverse is true: plain pixels are harsh to the eyes.` + notes: `This is a sequel to Sega's earlier Shinobi. Interestingly the new hardware didn't result in a better font: Shadow Dancer's letters are thicker, have a gradient and a 3D look, but the details are compressed and the result, especially at small sizes, seems smudged. Shinobi's font seems to be a little less attractive, but is much more readable for it. When enlarged however the reverse is true: plain pixels are harsh to the eyes.` }, shinobi: { - index: 137, name: 'Shinobi', - company: 'Sega', + dev: 'Sega', styles: 4, - notes: `This font is almost too fancy for a single colour, the curves seem to demand some anti-aliasing, or at least a drop-shadow. Sega did upgrade the font when they released , but for some applications this plain-coloured font is more readable, especially at smaller resolutions.` + notes: `This font is almost too fancy for a single colour, the curves seem to demand some anti-aliasing, or at least a drop-shadow. Sega did upgrade the font when they released , but for some applications this plain-coloured font is more readable, especially at smaller resolutions.` }, simp: { - index: 138, name: 'The Simpsons', - company: 'Konami', + dev: 'Konami', styles: 5, notes: 'A very solid cartoon-like font. You can download a very excellent (and more complete) OpenType font from Gebsite.' }, skyfox: { - index: 139, name: 'Sky Fox', - company: 'Nichibutsu', + dev: 'Nichibutsu', styles: 2, notes: "I can't quite get my head around this incredibly ambitious and totally unsuitable font. What does a weird pseudo-3D shooting bikini-babes on snakes in space game need with a scripted font this ornate!? It's utterly bizarre, but totally fascinating for its uncaring audaciousness.

Insanity!

The lower case font is a secondary serif face but no one cares." }, skys: { - index: 140, name: 'Sky Soldier', - company: 'SNK', + dev: 'SNK', styles: 6, notes: "I really like this old shooter - not because it's particularly good, but 'cause I played it a lot when I was a kid. The font, though, is cool. It's thin, and only six pixels tall, including the dropshadow (so the font itself is only 5). And the zero has a dot inside - how awesome is that?

This same font is used in Sky Adventure, released a year later." }, smar: { - index: 141, - name: 'Super Mario Bros 3', - company: 'Nintendo', + name: 'Super Mario Bros. 3', + dev: 'Nintendo', styles: 4, notes: '' }, snow: { - index: 142, - name: 'Snow Bros', - company: 'Toaplan', + name: 'Snow Bros.', + dev: 'Toaplan', styles: 7, notes: '' }, sold: { - index: 143, name: 'Soldam', - company: 'Jaleco', + dev: 'Jaleco', styles: 8, notes: 'Two things warrant the inclusion of this font:
1. It has an interesting gradient
2. It is just too cute for words

Too bad the game it came from is rubbish.' }, solo: { - index: 144, name: 'Solomons Key', - company: 'Tecmo', + dev: 'Tecmo', styles: 6, notes: 'This is a beautiful font that gives no reason to criticize. The capitals are uniform in appearance, and their reduced height means lower case letters with descenders (p, q, g etc) look awesome as well, lacking the compromises many fonts face.

This is one of the best looking 8x8 fonts.' }, spdr: { - index: 145, name: 'Speed Rumbler', - company: 'Capcom', + dev: 'Capcom', styles: 9, notes: "This is a fairly unusual combination: an italic thick font. One or the other isn't too uncommon, but in only 8 pixels you've gotta be confident to do both. To Capcom's credit, it totally works for me." }, spin95: { - index: 146, - name: 'Space Invaders 95', - company: 'Taito', + name: "Space Invaders '95", + dev: 'Taito', styles: 7, notes: "This is a pretty font. I can't place it, but it's very similar to something else, with a lovely gradient." }, ssf2: { - index: 147, name: 'Super Street Fighter 2', - company: 'Capcom', + dev: 'Capcom', styles: 9, notes: 'As an early CPS2 game, Super Street Fighter 2 had a font that was very much a precursor to later games like Alien vs Predator and Varth. Note the lack of anti-aliasing in the zig-zag letters like V and W, and also the simpler vertical gradient, compared to the combination gradient used in later games.' }, + xain: { + name: 'Solar Warrior', + dev: 'Technos', + styles: 4, + notes: "It's an unremarkable game with a very strange name - Xain'd Sleena - sensibly renamed Solar Warrior in the West. The font is just about as memorable - it looks pretty good in-game but is basically forgettable." + }, strider: { - index: 148, name: 'Strider Hiryu', - company: 'Capcom', + dev: 'Capcom', styles: 11, notes: "This is a super clean font without any lower case to compromise the aesthetic. It has a sneaky bit of anti-aliasing on some letters with curves, like C, G and Q, but also V. Overall it's gorgeous and clean.

It seems like this was an ancestor to the 'standard' Capcom font used in many games, like Armoured Warriors." }, supgt: { - index: 149, name: 'Super GT 24', - company: 'Jaleco', + dev: 'Jaleco', styles: 4, notes: "This isn't a really remarkable font design, but I like the shadow shading which gives it a very cool embossed effect. It looks better when the letters are on a background of a similar colour: blue on blue, red on red etc." }, takeda: { - index: 150, name: 'Takeda Shingen', - company: 'Jaleco', + dev: 'Jaleco', styles: 2, notes: "This is a very interesting font, not for the letter forms themselves, but the really excellent shadow. It features a horizontal gradient which is very unusual, but is also two lines deep at the top of the letters, and one line at the bottom.

It seems to be a reasonably successful attempt to make the letters appear 3D, but why they'd do this for a historic fighting game like this I cannot imagine.

It also features a set of italic numbers which is very weird. Since there's no lower case set I put the numbers there for the second colour variant, along with some of the other data in the game. Enjoy. =)" }, tataka: { - index: 151, name: 'Tatakae Big Fighter', - company: 'Nichibutsu', + dev: 'Nichibutsu', styles: 7, notes: 'This is a simple and competent little font, with a weird, coarse gradient that always uses white for the brightest parts, no matter the rest of the colours used.' }, terra: { - index: 152, name: 'Terra Force', - company: 'Nichibutsu', + dev: 'Nichibutsu', styles: 8, notes: "Now this is a fantastic font. Excellent choice of colours, and a totally unique style. This is fairly unusual for Nichibutsu, a company that was sadly never more than an also-ran, despite some games that - with the hindsight of history - weren't that bad." }, tetris: { - index: 153, name: 'Tetris', - company: 'Sega', + dev: 'Sega', styles: 6, notes: "This fat round font is not really different from a lot of similar ones, but it's Tetris, right? Sega Tetris, that is - the Atari version had the same ol' Classic font we've come to know and love. Only the first two gradients here are legit - the rest I added myself." }, thdr: { - index: 154, name: 'Thunder Dragon', - company: 'NMK', + dev: 'NMK', styles: 4, notes: "This is a rare instance where I figured I knew better than the original designers. The numbers in this font used to be out of place and ugly, with a two-colour fill that didn't match the alphabet. So I 'fixed' it. Forgive me, I like it purty more than I like it authentic." }, times: { - index: 155, name: 'Time Soldiers', - company: 'ADK', + dev: 'ADK', styles: 10, notes: 'This clean, simple font is a fine member of the ADK/SNK family. Its offspring, the Sky Soldiers font, shows many of the same attributes, but is smaller, tighter, and more modern.' }, tmek: { - index: 156, - name: 'Mek', - company: 'Atari', + name: 'T-Mek', + dev: 'Atari', styles: 2, notes: "This is Atari's T-Mek. It's an interesting thin font that fills the grid with most characters, and has no decoration.

Bizarrely, the lower case letters have a higher base than the upper case, making the result very difficult to read.

That lower case x tho." }, tp84: { - index: 157, - name: 'Time Pilot 84', - company: 'Konami', + name: "Time Pilot '84", + dev: 'Konami', styles: 10, notes: `This is one of the few italic fonts used in arcades. It was a fairly daring decision by Konami, considering the single colour used... Single colour fonts don't generally allow for eye-pleasing diagonal lines, but this font really works for me.

is also a bloody great game, BTW.` }, trs: { - index: 158, name: 'Top Ranking Stars', - company: 'Taito', + dev: 'Taito', styles: 8, notes: "This is a very unusual font for several reasons. It has a complete outline, which is an unusual extravagance in an 8-pixel space. It's a thin font, which is uncommon, and - perhaps most curiously - it's from a boxing game. It doesn't really seem to suit the genre, does it?

It's very clearly an evolution based in Taito's other game, Night Striker, released four years earlier and a much more suitable game for this sort of style." }, trx: { - index: 159, name: 'Truxton', - company: 'Toaplan', + dev: 'Toaplan', styles: 22, notes: "There are some great colours in here, and on-screen these Toaplan fonts look just awesome, but looking at them here, they're not especially remarkable.

Still, I love Toaplan fonts. =)" }, twin2: { - index: 160, name: 'Twin Cobra II', - company: 'Taito', + dev: 'Taito', styles: 6, notes: '' }, twinB: { - index: 161, name: 'Twinbee', - company: 'Konami', + dev: 'Konami', styles: 9, notes: '' }, twin: { - index: 162, name: 'Twin Cobra', - company: 'Toaplan', + dev: 'Toaplan', styles: 9, notes: "Never mind that it's a Toaplan font (which automatically makes it great), the Twin Cobra font is very unusual with its two-tone shadow. Sometimes this results in a very convincing 3D effect, but most of the time it's just kind of cool." }, twq: { - index: 163, name: 'Twin Qix', - company: 'Taito', + dev: 'Taito', styles: 6, notes: "This is a huge departure for Taito. Most of the time they stick to the Classic font, but for this prototype version of Qix, they really kind of let their hair down. It's not really a lovely font, but you have admire its audacity, eh?" }, typh: { - index: 164, name: 'Typhoon', - company: 'Konami', + dev: 'Konami', styles: 7, notes: "There's nothing really remarkable about this font, it's a lot like several others, but it has very nice colours, don't you think?" }, unsq: { - index: 165, name: 'UN Squadron', - company: 'Capcom', + dev: 'Capcom', styles: 7, notes: "What a great looking stencil font, with its colourful gradient and drop-shadow. Capcom didn't get it wrong very often, and this is no exception. Very readable and in very good taste." }, vict: { - index: 166, name: 'Victory Road', - company: 'SNK', + dev: 'SNK', styles: 1, notes: 'This is a fabulous looking font which is a bit strange: it has lots of colours, but a very limited character set with many missing symbols (though a complete alphabet and numbers) and it seems somehow out of place in a space-based Ikari Warriors game.

Also, sadly, it has only one colour.' }, waku: { - index: 167, name: 'Waku Waku 7', - company: 'Sunsoft', + dev: 'Sunsoft', styles: 8, notes: "I can't shake the feeling I've seen this one before. A sort of vaguely stylish futuristic font that tries to be different and succeeds only at being unremarkable. Sort of like Sunsoft, the publisher that made it.

What's with the digit 9?" }, wboy: { - index: 168, name: 'Wonder Boy', - company: 'Sega', + dev: 'Sega', styles: 9, notes: "Wonder Boy's capital letters are vertically condensed on top, and comfortably chunky on the bottom.

The lower case letters have a uniform height and look equally good - mostly. Maintaining the same bottom-heavy style compromises some of the letters, like p, q and g, but also the letter f which looks shrivelled on top." }, wfang: { - index: 169, name: 'Wolf Fang', - company: 'Taito', + dev: 'Taito', styles: 3, notes: `This is an unremarkable version of the standard Arcade font, but for two things that merit its inclusion:

1. The gradients are really well chosen. All three variants work very well.
2. There was a pallete error in the red variant that made it look like it had a sassy missing pixel. Sadly it made most of the characters look broken or incomplete, so I fixed it. But it was briefly cool.

` }, wildp: { - index: 170, name: 'Wild Pilot', - company: 'Jaleco', + dev: 'Jaleco', styles: 4, notes: "This is a really good looking thin font, with good colours.

What I don't understand is why D is so special, with a notch that no other letter has.

Interestingly, the < and > symbols have been replaced with ON and OFF. That's unusual." }, will: { - index: 171, name: 'Willow', - company: 'Capcom', + dev: 'Capcom', styles: 12, notes: '' }, - xain: { - index: 172, - name: 'Solar Warrior', - company: 'Technos', - styles: 4, - notes: "It's an unremarkable game with a very strange name - Xain'd Sleena - sensibly renamed Solar Warrior in the West. The font is just about as memorable - it looks pretty good in-game but is basically forgettable." - }, xexex: { - index: 173, name: 'Xexex', - company: 'Konami', + dev: 'Konami', styles: 11, notes: "This font should bring a smile to every Konami fan's face. It's nearly the same as Gradius, a thin font with only three colours that manages to be completely clear and look awesome at the same time. Except the yellow one, which seems to be really thick and awkward." }, zwing: { - index: 174, name: 'Zero Wing', - company: 'Toaplan', + dev: 'Toaplan', styles: 16, notes: "Thanks to Dhillon for ripping and sending in this font from Toaplan's Zero Wing!" }, diff --git a/client/scripts/index.js b/client/scripts/index.js index 26c12d2..4ab296c 100644 --- a/client/scripts/index.js +++ b/client/scripts/index.js @@ -3,8 +3,9 @@ require('jquery-ui-dist/jquery-ui') import fonts from './fonts.js' import title from '../images/title.png' -const endpoint = '/api.php' +const endpoint = '/api' +const indexes = Object.values(fonts) const preset = { size: 3, @@ -38,7 +39,7 @@ const shake = () => { const compileUrl = (options) => { let url = endpoint; - const input = options?.input || $('#input').val() || 'I AM ERROR'; + const input = options?.input || $('#input').val() || 'SAMPLE TEXT'; const size = options?.size || $('#size').slider('value'); const style = options?.style || $('#style').val(); const font = options?.font || $('#fonts').val(); @@ -76,7 +77,7 @@ const updateTitle = () => { const keys = Object.keys(fonts); const font = keys[Math.floor(Math.random() * keys.length)]; const style = Math.floor(Math.random() * fonts[font].styles); - const url = `/api.php/y-${font}/z-${style}/dbl-5/x-ARCADE FONT ENGINE`; + const url = `${endpoint}/y-${font}/z-${style}/dbl-5/x-ARCADE FONT ENGINE`; $('#title').attr('src', url) }; @@ -84,7 +85,7 @@ const updateTitle = () => { const fontSelected = (ui) => { const font = ui ? ui.item.value : preset.font const total = Object.keys(fonts).length - const index = fonts[font].index + const index = indexes.indexOf(fonts[font]) + 1 const style = 0 $('#style').val(style) const styles = fonts[font].styles @@ -92,7 +93,7 @@ const fontSelected = (ui) => { $('#styles-legend').html(style + 1) $('#styles-legend-total').html(styles) $('#styles').empty() - $('#company-legend').html(fonts[font].company ? `by ${fonts[font].company}` : '') + $('#dev-legend').html(fonts[font].dev ? `by ${fonts[font].dev}` : '') $('#notes-legend').html(fonts[font].notes ? `by NFG` : '') $('#notes').html(fonts[font].notes || 'No notes for this font.') diff --git a/client/static/api.php b/client/static/api.php index c5f330d..e4c3bf1 100644 --- a/client/static/api.php +++ b/client/static/api.php @@ -360,16 +360,14 @@ while (false !== ($currentfile = readdir($imgdir))) { // Do this loop for every file found. // So long as it's not a directory... if (!is_dir($currentfile)) { - $temp = explode("-",$currentfile,2); - if(count($temp) > 1) { // means it was split up as expected - $fontnames[$numfonts] = $currentfile; // An array of filenames, for later abuse. - $maxfontlength = max($maxfontlength, strlen(substr($temp[1],0,-4))); // Generate a max image width based on the number of chars in a font name (x 8) - if ($listfonts) { $fontfiles[$numfonts] = $dir.$currentfile; } - if($fontchoice == $temp[0]) { - $fontfile = $dir.$currentfile; // If the current file prefix matches the $fontchoice, specify the SOURCE image - } - } - $numfonts++; // increment the font count. Also used for incrementing $fontnames array. + $temp = explode(".",$currentfile,2); + $fontnames[$numfonts] = $currentfile; // An array of filenames, for later abuse. + + if ($listfonts) { $fontfiles[$numfonts] = $dir.$currentfile; } + if($fontchoice == $temp[0]) { + $fontfile = $dir.$currentfile; // If the current file prefix matches the $fontchoice, specify the SOURCE image + } + $numfonts++; // increment the font count. Also used for incrementing $fontnames array. } } diff --git a/client/static/images/fonts/1943-1943 (Capcom).png b/client/static/images/fonts/1943.png similarity index 100% rename from client/static/images/fonts/1943-1943 (Capcom).png rename to client/static/images/fonts/1943.png diff --git a/client/static/images/fonts/acro-Acrobat Mission (UPL).png b/client/static/images/fonts/acro.png similarity index 100% rename from client/static/images/fonts/acro-Acrobat Mission (UPL).png rename to client/static/images/fonts/acro.png diff --git a/client/static/images/fonts/aerof-Aero Fighters (Kaneko).png b/client/static/images/fonts/aerof.png similarity index 100% rename from client/static/images/fonts/aerof-Aero Fighters (Kaneko).png rename to client/static/images/fonts/aerof.png diff --git a/client/static/images/fonts/aftb-Afterburner (Sega).png b/client/static/images/fonts/aftb.png similarity index 100% rename from client/static/images/fonts/aftb-Afterburner (Sega).png rename to client/static/images/fonts/aftb.png diff --git a/client/static/images/fonts/aof2-Art of Fighting 2 (SNK).png b/client/static/images/fonts/aof2.png similarity index 100% rename from client/static/images/fonts/aof2-Art of Fighting 2 (SNK).png rename to client/static/images/fonts/aof2.png diff --git a/client/static/images/fonts/arab-Arabian Magic (Capcom).png b/client/static/images/fonts/arab.png similarity index 100% rename from client/static/images/fonts/arab-Arabian Magic (Capcom).png rename to client/static/images/fonts/arab.png diff --git a/client/static/images/fonts/arcade-Arcade Classic.png b/client/static/images/fonts/arcade.png similarity index 100% rename from client/static/images/fonts/arcade-Arcade Classic.png rename to client/static/images/fonts/arcade.png diff --git a/client/static/images/fonts/arka-ArkArea (UPL).png b/client/static/images/fonts/arka.png similarity index 100% rename from client/static/images/fonts/arka-ArkArea (UPL).png rename to client/static/images/fonts/arka.png diff --git a/client/static/images/fonts/armo-ArmoredWarriors (Capcom).png b/client/static/images/fonts/armo.png similarity index 100% rename from client/static/images/fonts/armo-ArmoredWarriors (Capcom).png rename to client/static/images/fonts/armo.png diff --git a/client/static/images/fonts/ass-Assault (Namco).png b/client/static/images/fonts/ass.png similarity index 100% rename from client/static/images/fonts/ass-Assault (Namco).png rename to client/static/images/fonts/ass.png diff --git a/client/static/images/fonts/astx-Asterix (Konami).png b/client/static/images/fonts/astx.png similarity index 100% rename from client/static/images/fonts/astx-Asterix (Konami).png rename to client/static/images/fonts/astx.png diff --git a/client/static/images/fonts/atascii-ATASCII.png b/client/static/images/fonts/atascii.png similarity index 100% rename from client/static/images/fonts/atascii-ATASCII.png rename to client/static/images/fonts/atascii.png diff --git a/client/static/images/fonts/aura-Aurail (Sega).png b/client/static/images/fonts/aura.png similarity index 100% rename from client/static/images/fonts/aura-Aurail (Sega).png rename to client/static/images/fonts/aura.png diff --git a/client/static/images/fonts/avng-Avengers (Capcom).png b/client/static/images/fonts/avng.png similarity index 100% rename from client/static/images/fonts/avng-Avengers (Capcom).png rename to client/static/images/fonts/avng.png diff --git a/client/static/images/fonts/bakr-Battle Bakraid (Eighting).png b/client/static/images/fonts/bakr.png similarity index 100% rename from client/static/images/fonts/bakr-Battle Bakraid (Eighting).png rename to client/static/images/fonts/bakr.png diff --git a/client/static/images/fonts/baku-Bakuretsu Breaker (Kaneko).png b/client/static/images/fonts/baku.png similarity index 100% rename from client/static/images/fonts/baku-Bakuretsu Breaker (Kaneko).png rename to client/static/images/fonts/baku.png diff --git a/client/static/images/fonts/bats-Batsugun (Toaplan).png b/client/static/images/fonts/bats.png similarity index 100% rename from client/static/images/fonts/bats-Batsugun (Toaplan).png rename to client/static/images/fonts/bats.png diff --git a/client/static/images/fonts/bayr-Bay Route (Sega).png b/client/static/images/fonts/bayr.png similarity index 100% rename from client/static/images/fonts/bayr-Bay Route (Sega).png rename to client/static/images/fonts/bayr.png diff --git a/client/static/images/fonts/bcir-BattleCircuit (Capcom).png b/client/static/images/fonts/bcir.png similarity index 100% rename from client/static/images/fonts/bcir-BattleCircuit (Capcom).png rename to client/static/images/fonts/bcir.png diff --git a/client/static/images/fonts/bdash-Boulder Dash (Data East).png b/client/static/images/fonts/bdash.png similarity index 100% rename from client/static/images/fonts/bdash-Boulder Dash (Data East).png rename to client/static/images/fonts/bdash.png diff --git a/client/static/images/fonts/bios-BioShipPaladin (UPL).png b/client/static/images/fonts/bios.png similarity index 100% rename from client/static/images/fonts/bios-BioShipPaladin (UPL).png rename to client/static/images/fonts/bios.png diff --git a/client/static/images/fonts/blaz-Blazing Star (Yumekobo).png b/client/static/images/fonts/blaz.png similarity index 100% rename from client/static/images/fonts/blaz-Blazing Star (Yumekobo).png rename to client/static/images/fonts/blaz.png diff --git a/client/static/images/fonts/blkt-Black Tiger (Capcom).png b/client/static/images/fonts/blkt.png similarity index 100% rename from client/static/images/fonts/blkt-Black Tiger (Capcom).png rename to client/static/images/fonts/blkt.png diff --git a/client/static/images/fonts/blwa-Blood Warrior (Kaneko).png b/client/static/images/fonts/blwa.png similarity index 100% rename from client/static/images/fonts/blwa-Blood Warrior (Kaneko).png rename to client/static/images/fonts/blwa.png diff --git a/client/static/images/fonts/bonz-Bonanza Bros (Sega).png b/client/static/images/fonts/bonz.png similarity index 100% rename from client/static/images/fonts/bonz-Bonanza Bros (Sega).png rename to client/static/images/fonts/bonz.png diff --git a/client/static/images/fonts/boog-Boogie Wings (Data East).png b/client/static/images/fonts/boog.png similarity index 100% rename from client/static/images/fonts/boog-Boogie Wings (Data East).png rename to client/static/images/fonts/boog.png diff --git a/client/static/images/fonts/bubma-Bubble Memories Alien (Taito).png b/client/static/images/fonts/bubma.png similarity index 100% rename from client/static/images/fonts/bubma-Bubble Memories Alien (Taito).png rename to client/static/images/fonts/bubma.png diff --git a/client/static/images/fonts/bubs-Bubble Symphony (Taito).png b/client/static/images/fonts/bubs.png similarity index 100% rename from client/static/images/fonts/bubs-Bubble Symphony (Taito).png rename to client/static/images/fonts/bubs.png diff --git a/client/static/images/fonts/caml-Cameltry (Taito).png b/client/static/images/fonts/caml.png similarity index 100% rename from client/static/images/fonts/caml-Cameltry (Taito).png rename to client/static/images/fonts/caml.png diff --git a/client/static/images/fonts/chiki-Chiki Chiki Boys (Capcom).png b/client/static/images/fonts/chiki.png similarity index 100% rename from client/static/images/fonts/chiki-Chiki Chiki Boys (Capcom).png rename to client/static/images/fonts/chiki.png diff --git a/client/static/images/fonts/cliff-Cliffhanger - Edward Randy (DataEast).png b/client/static/images/fonts/cliff.png similarity index 100% rename from client/static/images/fonts/cliff-Cliffhanger - Edward Randy (DataEast).png rename to client/static/images/fonts/cliff.png diff --git a/client/static/images/fonts/cmnds-Commando-Special (Capcom).png b/client/static/images/fonts/cmnds.png similarity index 100% rename from client/static/images/fonts/cmnds-Commando-Special (Capcom).png rename to client/static/images/fonts/cmnds.png diff --git a/client/static/images/fonts/cotn-Cotton (Sega + Success).png b/client/static/images/fonts/cotn.png similarity index 100% rename from client/static/images/fonts/cotn-Cotton (Sega + Success).png rename to client/static/images/fonts/cotn.png diff --git a/client/static/images/fonts/cshk-Captain Sky Hawk (RARE).png b/client/static/images/fonts/cshk.png similarity index 100% rename from client/static/images/fonts/cshk-Captain Sky Hawk (RARE).png rename to client/static/images/fonts/cshk.png diff --git a/client/static/images/fonts/cyba-Cybattler (Jaleco).png b/client/static/images/fonts/cyba.png similarity index 100% rename from client/static/images/fonts/cyba-Cybattler (Jaleco).png rename to client/static/images/fonts/cyba.png diff --git a/client/static/images/fonts/ddcrew-D D Crew (Sega).png b/client/static/images/fonts/ddcrew.png similarity index 100% rename from client/static/images/fonts/ddcrew-D D Crew (Sega).png rename to client/static/images/fonts/ddcrew.png diff --git a/client/static/images/fonts/dddon-Don Doko Don (Taito).png b/client/static/images/fonts/dddon.png similarity index 100% rename from client/static/images/fonts/dddon-Don Doko Don (Taito).png rename to client/static/images/fonts/dddon.png diff --git a/client/static/images/fonts/ddp-DoDonPachi (Cave).png b/client/static/images/fonts/ddp.png similarity index 100% rename from client/static/images/fonts/ddp-DoDonPachi (Cave).png rename to client/static/images/fonts/ddp.png diff --git a/client/static/images/fonts/ddr-Dance Dance Revolution (Konami).png b/client/static/images/fonts/ddr.png similarity index 100% rename from client/static/images/fonts/ddr-Dance Dance Revolution (Konami).png rename to client/static/images/fonts/ddr.png diff --git a/client/static/images/fonts/ddux-Dynamite Dux (Sega).png b/client/static/images/fonts/ddux.png similarity index 100% rename from client/static/images/fonts/ddux-Dynamite Dux (Sega).png rename to client/static/images/fonts/ddux.png diff --git a/client/static/images/fonts/deta-Detana Twinbee (Konami).png b/client/static/images/fonts/deta.png similarity index 100% rename from client/static/images/fonts/deta-Detana Twinbee (Konami).png rename to client/static/images/fonts/deta.png diff --git a/client/static/images/fonts/dima-Dimahoo (Raizing).png b/client/static/images/fonts/dima.png similarity index 100% rename from client/static/images/fonts/dima-Dimahoo (Raizing).png rename to client/static/images/fonts/dima.png diff --git a/client/static/images/fonts/drbr-Dragon Breed (Irem).png b/client/static/images/fonts/drbr.png similarity index 100% rename from client/static/images/fonts/drbr-Dragon Breed (Irem).png rename to client/static/images/fonts/drbr.png diff --git a/client/static/images/fonts/dsab-Dragon Saber (Namco).png b/client/static/images/fonts/dsab.png similarity index 100% rename from client/static/images/fonts/dsab-Dragon Saber (Namco).png rename to client/static/images/fonts/dsab.png diff --git a/client/static/images/fonts/dspir-Dragon Spirit (Namco).png b/client/static/images/fonts/dspir.png similarity index 100% rename from client/static/images/fonts/dspir-Dragon Spirit (Namco).png rename to client/static/images/fonts/dspir.png diff --git a/client/static/images/fonts/f1dr-F1 Dream (Capcom).png b/client/static/images/fonts/f1dr.png similarity index 100% rename from client/static/images/fonts/f1dr-F1 Dream (Capcom).png rename to client/static/images/fonts/f1dr.png diff --git a/client/static/images/fonts/flak-Flak Attack (Konami).png b/client/static/images/fonts/flak.png similarity index 100% rename from client/static/images/fonts/flak-Flak Attack (Konami).png rename to client/static/images/fonts/flak.png diff --git a/client/static/images/fonts/flys-Flying Shark (Taito).png b/client/static/images/fonts/flys.png similarity index 100% rename from client/static/images/fonts/flys-Flying Shark (Taito).png rename to client/static/images/fonts/flys.png diff --git a/client/static/images/fonts/fstarf-Final Star Force (Tecmo).png b/client/static/images/fonts/fstarf.png similarity index 100% rename from client/static/images/fonts/fstarf-Final Star Force (Tecmo).png rename to client/static/images/fonts/fstarf.png diff --git a/client/static/images/fonts/fz-Fantasy Zone (Sega).png b/client/static/images/fonts/fz.png similarity index 100% rename from client/static/images/fonts/fz-Fantasy Zone (Sega).png rename to client/static/images/fonts/fz.png diff --git a/client/static/images/fonts/gaia-Gaiapolis (Konami).png b/client/static/images/fonts/gaia.png similarity index 100% rename from client/static/images/fonts/gaia-Gaiapolis (Konami).png rename to client/static/images/fonts/gaia.png diff --git a/client/static/images/fonts/gain-Gain Ground (Sega).png b/client/static/images/fonts/gain.png similarity index 100% rename from client/static/images/fonts/gain-Gain Ground (Sega).png rename to client/static/images/fonts/gain.png diff --git a/client/static/images/fonts/garou-Garou Densetsu (SNK).png b/client/static/images/fonts/garou.png similarity index 100% rename from client/static/images/fonts/garou-Garou Densetsu (SNK).png rename to client/static/images/fonts/garou.png diff --git a/client/static/images/fonts/gng1-Ghosts n Goblins (Capcom).png b/client/static/images/fonts/gng1.png similarity index 100% rename from client/static/images/fonts/gng1-Ghosts n Goblins (Capcom).png rename to client/static/images/fonts/gng1.png diff --git a/client/static/images/fonts/gng2-Ghouls n Ghosts (Capcom).png b/client/static/images/fonts/gng2.png similarity index 100% rename from client/static/images/fonts/gng2-Ghouls n Ghosts (Capcom).png rename to client/static/images/fonts/gng2.png diff --git a/client/static/images/fonts/gond-Gondomania (Data East).png b/client/static/images/fonts/gond.png similarity index 100% rename from client/static/images/fonts/gond-Gondomania (Data East).png rename to client/static/images/fonts/gond.png diff --git a/client/static/images/fonts/gradius-Gradius.png b/client/static/images/fonts/gradius.png similarity index 100% rename from client/static/images/fonts/gradius-Gradius.png rename to client/static/images/fonts/gradius.png diff --git a/client/static/images/fonts/gradius2-Gradius 2 (Konami).png b/client/static/images/fonts/gradius2.png similarity index 100% rename from client/static/images/fonts/gradius2-Gradius 2 (Konami).png rename to client/static/images/fonts/gradius2.png diff --git a/client/static/images/fonts/gradius3-Gradius 3 (Konami).png b/client/static/images/fonts/gradius3.png similarity index 100% rename from client/static/images/fonts/gradius3-Gradius 3 (Konami).png rename to client/static/images/fonts/gradius3.png diff --git a/client/static/images/fonts/gradius4-Gradius 4 (Konami).png b/client/static/images/fonts/gradius4.png similarity index 100% rename from client/static/images/fonts/gradius4-Gradius 4 (Konami).png rename to client/static/images/fonts/gradius4.png diff --git a/client/static/images/fonts/guar-Guardians (Banpresto).png b/client/static/images/fonts/guar.png similarity index 100% rename from client/static/images/fonts/guar-Guardians (Banpresto).png rename to client/static/images/fonts/guar.png diff --git a/client/static/images/fonts/gunb-GunBuster (Taito).png b/client/static/images/fonts/gunb.png similarity index 100% rename from client/static/images/fonts/gunb-GunBuster (Taito).png rename to client/static/images/fonts/gunb.png diff --git a/client/static/images/fonts/gunn-GunNail (NMK).png b/client/static/images/fonts/gunn.png similarity index 100% rename from client/static/images/fonts/gunn-GunNail (NMK).png rename to client/static/images/fonts/gunn.png diff --git a/client/static/images/fonts/guns-Gun.Smoke (Capcom).png b/client/static/images/fonts/guns.png similarity index 100% rename from client/static/images/fonts/guns-Gun.Smoke (Capcom).png rename to client/static/images/fonts/guns.png diff --git a/client/static/images/fonts/gyrs-Gyruss (Konami).png b/client/static/images/fonts/gyrs.png similarity index 100% rename from client/static/images/fonts/gyrs-Gyruss (Konami).png rename to client/static/images/fonts/gyrs.png diff --git a/client/static/images/fonts/hach-Hacha Mecha Fighter (NMK).png b/client/static/images/fonts/hach.png similarity index 100% rename from client/static/images/fonts/hach-Hacha Mecha Fighter (NMK).png rename to client/static/images/fonts/hach.png diff --git a/client/static/images/fonts/hatt-Hat Trick Hero 95 (Taito).png b/client/static/images/fonts/hatt.png similarity index 100% rename from client/static/images/fonts/hatt-Hat Trick Hero 95 (Taito).png rename to client/static/images/fonts/hatt.png diff --git a/client/static/images/fonts/imgf-Image Fight (IREM).png b/client/static/images/fonts/imgf.png similarity index 100% rename from client/static/images/fonts/imgf-Image Fight (IREM).png rename to client/static/images/fonts/imgf.png diff --git a/client/static/images/fonts/kais-Kaiser Knuckle (Taito).png b/client/static/images/fonts/kais.png similarity index 100% rename from client/static/images/fonts/kais-Kaiser Knuckle (Taito).png rename to client/static/images/fonts/kais.png diff --git a/client/static/images/fonts/ketsui-Ketsui (Cave).png b/client/static/images/fonts/ketsui.png similarity index 100% rename from client/static/images/fonts/ketsui-Ketsui (Cave).png rename to client/static/images/fonts/ketsui.png diff --git a/client/static/images/fonts/kiki-Kiki Kaikai (Taito).png b/client/static/images/fonts/kiki.png similarity index 100% rename from client/static/images/fonts/kiki-Kiki Kaikai (Taito).png rename to client/static/images/fonts/kiki.png diff --git a/client/static/images/fonts/kira-Kirameki Star Road (Taito).png b/client/static/images/fonts/kira.png similarity index 100% rename from client/static/images/fonts/kira-Kirameki Star Road (Taito).png rename to client/static/images/fonts/kira.png diff --git a/client/static/images/fonts/klax-Klax (Atari).png b/client/static/images/fonts/klax.png similarity index 100% rename from client/static/images/fonts/klax-Klax (Atari).png rename to client/static/images/fonts/klax.png diff --git a/client/static/images/fonts/klaxa-Klax Alternate (Atari).png b/client/static/images/fonts/klaxa.png similarity index 100% rename from client/static/images/fonts/klaxa-Klax Alternate (Atari).png rename to client/static/images/fonts/klaxa.png diff --git a/client/static/images/fonts/kof2k-King of Fighters 2000 (SNK).png b/client/static/images/fonts/kof2k.png similarity index 100% rename from client/static/images/fonts/kof2k-King of Fighters 2000 (SNK).png rename to client/static/images/fonts/kof2k.png diff --git a/client/static/images/fonts/kof2k1-King of Fighters 2001 (SNK).png b/client/static/images/fonts/kof2k1.png similarity index 100% rename from client/static/images/fonts/kof2k1-King of Fighters 2001 (SNK).png rename to client/static/images/fonts/kof2k1.png diff --git a/client/static/images/fonts/kof2k2-King of Fighters 2002 (SNK).png b/client/static/images/fonts/kof2k2.png similarity index 100% rename from client/static/images/fonts/kof2k2-King of Fighters 2002 (SNK).png rename to client/static/images/fonts/kof2k2.png diff --git a/client/static/images/fonts/kof2k3-King of Fighters 2003 (SNK).png b/client/static/images/fonts/kof2k3.png similarity index 100% rename from client/static/images/fonts/kof2k3-King of Fighters 2003 (SNK).png rename to client/static/images/fonts/kof2k3.png diff --git a/client/static/images/fonts/kof97-King of Fighters 97 (SNK).png b/client/static/images/fonts/kof97.png similarity index 100% rename from client/static/images/fonts/kof97-King of Fighters 97 (SNK).png rename to client/static/images/fonts/kof97.png diff --git a/client/static/images/fonts/kof97i-King of Fighters 97 Italic (SNK).png b/client/static/images/fonts/kof97i.png similarity index 100% rename from client/static/images/fonts/kof97i-King of Fighters 97 Italic (SNK).png rename to client/static/images/fonts/kof97i.png diff --git a/client/static/images/fonts/ladu-Last Duel (Capcom).png b/client/static/images/fonts/ladu.png similarity index 100% rename from client/static/images/fonts/ladu-Last Duel (Capcom).png rename to client/static/images/fonts/ladu.png diff --git a/client/static/images/fonts/last-Last Resort (SNK).png b/client/static/images/fonts/last.png similarity index 100% rename from client/static/images/fonts/last-Last Resort (SNK).png rename to client/static/images/fonts/last.png diff --git a/client/static/images/fonts/lastb-Last Blade 2 (SNK).png b/client/static/images/fonts/lastb.png similarity index 100% rename from client/static/images/fonts/lastb-Last Blade 2 (SNK).png rename to client/static/images/fonts/lastb.png diff --git a/client/static/images/fonts/lghost-Laser Ghost (Sega).png b/client/static/images/fonts/lghost.png similarity index 100% rename from client/static/images/fonts/lghost-Laser Ghost (Sega).png rename to client/static/images/fonts/lghost.png diff --git a/client/static/images/fonts/libr-Light Bringer (Capcom).png b/client/static/images/fonts/libr.png similarity index 100% rename from client/static/images/fonts/libr-Light Bringer (Capcom).png rename to client/static/images/fonts/libr.png diff --git a/client/static/images/fonts/lwing-Legendary Wings (Capcom).png b/client/static/images/fonts/lwing.png similarity index 100% rename from client/static/images/fonts/lwing-Legendary Wings (Capcom).png rename to client/static/images/fonts/lwing.png diff --git a/client/static/images/fonts/mars-Mars Matrix (Capcom).png b/client/static/images/fonts/mars.png similarity index 100% rename from client/static/images/fonts/mars-Mars Matrix (Capcom).png rename to client/static/images/fonts/mars.png diff --git a/client/static/images/fonts/mgs-Metal Gear Solid (Konami).png b/client/static/images/fonts/mgs.png similarity index 100% rename from client/static/images/fonts/mgs-Metal Gear Solid (Konami).png rename to client/static/images/fonts/mgs.png diff --git a/client/static/images/fonts/mjack-Michael Jackson Moonwalker.png b/client/static/images/fonts/mjack.png similarity index 100% rename from client/static/images/fonts/mjack-Michael Jackson Moonwalker.png rename to client/static/images/fonts/mjack.png diff --git a/client/static/images/fonts/moma-Monster Mauler (Konami).png b/client/static/images/fonts/moma.png similarity index 100% rename from client/static/images/fonts/moma-Monster Mauler (Konami).png rename to client/static/images/fonts/moma.png diff --git a/client/static/images/fonts/mt-Major Title (IREM).png b/client/static/images/fonts/mt.png similarity index 100% rename from client/static/images/fonts/mt-Major Title (IREM).png rename to client/static/images/fonts/mt.png diff --git a/client/static/images/fonts/muni-Mutant Night (UPL).png b/client/static/images/fonts/muni.png similarity index 100% rename from client/static/images/fonts/muni-Mutant Night (UPL).png rename to client/static/images/fonts/muni.png diff --git a/client/static/images/fonts/mwar-Metal Warriors (Konami).png b/client/static/images/fonts/mwar.png similarity index 100% rename from client/static/images/fonts/mwar-Metal Warriors (Konami).png rename to client/static/images/fonts/mwar.png diff --git a/client/static/images/fonts/namco2-Namco Classic Gradient.png b/client/static/images/fonts/namco2.png similarity index 100% rename from client/static/images/fonts/namco2-Namco Classic Gradient.png rename to client/static/images/fonts/namco2.png diff --git a/client/static/images/fonts/nds-Dangerous Seed (Namco).png b/client/static/images/fonts/nds.png similarity index 100% rename from client/static/images/fonts/nds-Dangerous Seed (Namco).png rename to client/static/images/fonts/nds.png diff --git a/client/static/images/fonts/nebu-Nebulas Ray (Namco).png b/client/static/images/fonts/nebu.png similarity index 100% rename from client/static/images/fonts/nebu-Nebulas Ray (Namco).png rename to client/static/images/fonts/nebu.png diff --git a/client/static/images/fonts/niga-Ninja Gaiden (Tecmo).png b/client/static/images/fonts/niga.png similarity index 100% rename from client/static/images/fonts/niga-Ninja Gaiden (Tecmo).png rename to client/static/images/fonts/niga.png diff --git a/client/static/images/fonts/ninj-Ninja Masters (ADK).png b/client/static/images/fonts/ninj.png similarity index 100% rename from client/static/images/fonts/ninj-Ninja Masters (ADK).png rename to client/static/images/fonts/ninj.png diff --git a/client/static/images/fonts/ninjak-Ninja Kids (Taito).png b/client/static/images/fonts/ninjak.png similarity index 100% rename from client/static/images/fonts/ninjak-Ninja Kids (Taito).png rename to client/static/images/fonts/ninjak.png diff --git a/client/static/images/fonts/ninjas-Ninja Spirit (IREM).png b/client/static/images/fonts/ninjas.png similarity index 100% rename from client/static/images/fonts/ninjas-Ninja Spirit (IREM).png rename to client/static/images/fonts/ninjas.png diff --git a/client/static/images/fonts/nstrike-Night Striker (Taito).png b/client/static/images/fonts/nstrike.png similarity index 100% rename from client/static/images/fonts/nstrike-Night Striker (Taito).png rename to client/static/images/fonts/nstrike.png diff --git a/client/static/images/fonts/ord-Ordyne.png (Namco).png b/client/static/images/fonts/ord.png similarity index 100% rename from client/static/images/fonts/ord-Ordyne.png (Namco).png rename to client/static/images/fonts/ord.png diff --git a/client/static/images/fonts/outf-Outfoxies (Namco).png b/client/static/images/fonts/outf.png similarity index 100% rename from client/static/images/fonts/outf-Outfoxies (Namco).png rename to client/static/images/fonts/outf.png diff --git a/client/static/images/fonts/pabom-Panic Bomber (Hudson).png b/client/static/images/fonts/pabom.png similarity index 100% rename from client/static/images/fonts/pabom-Panic Bomber (Hudson).png rename to client/static/images/fonts/pabom.png diff --git a/client/static/images/fonts/paro-Parodius DA! (Konami).png b/client/static/images/fonts/paro.png similarity index 100% rename from client/static/images/fonts/paro-Parodius DA! (Konami).png rename to client/static/images/fonts/paro.png diff --git a/client/static/images/fonts/pckf-Pickford Brothers.png b/client/static/images/fonts/pckf.png similarity index 100% rename from client/static/images/fonts/pckf-Pickford Brothers.png rename to client/static/images/fonts/pckf.png diff --git a/client/static/images/fonts/psr2-Pachinko Sexy Reaction 2 (Sammy).png b/client/static/images/fonts/psr2.png similarity index 100% rename from client/static/images/fonts/psr2-Pachinko Sexy Reaction 2 (Sammy).png rename to client/static/images/fonts/psr2.png diff --git a/client/static/images/fonts/pubu-Puzzle Bobble (Taito).png b/client/static/images/fonts/pubu.png similarity index 100% rename from client/static/images/fonts/pubu-Puzzle Bobble (Taito).png rename to client/static/images/fonts/pubu.png diff --git a/client/static/images/fonts/puls-Pulstar (Aicom).png b/client/static/images/fonts/puls.png similarity index 100% rename from client/static/images/fonts/puls-Pulstar (Aicom).png rename to client/static/images/fonts/puls.png diff --git a/client/static/images/fonts/qtet-Quartet 2 (Sega).png b/client/static/images/fonts/qtet.png similarity index 100% rename from client/static/images/fonts/qtet-Quartet 2 (Sega).png rename to client/static/images/fonts/qtet.png diff --git a/client/static/images/fonts/quake-Quake (id).png b/client/static/images/fonts/quake.png similarity index 100% rename from client/static/images/fonts/quake-Quake (id).png rename to client/static/images/fonts/quake.png diff --git a/client/static/images/fonts/raph-Rapid Hero (MTC).png b/client/static/images/fonts/raph.png similarity index 100% rename from client/static/images/fonts/raph-Rapid Hero (MTC).png rename to client/static/images/fonts/raph.png diff --git a/client/static/images/fonts/rayf-RayForce (Taito).png b/client/static/images/fonts/rayf.png similarity index 100% rename from client/static/images/fonts/rayf-RayForce (Taito).png rename to client/static/images/fonts/rayf.png diff --git a/client/static/images/fonts/rcop-Robocop (Data East).png b/client/static/images/fonts/rcop.png similarity index 100% rename from client/static/images/fonts/rcop-Robocop (Data East).png rename to client/static/images/fonts/rcop.png diff --git a/client/static/images/fonts/rcop2-Robocop 2 (Data East).png b/client/static/images/fonts/rcop2.png similarity index 100% rename from client/static/images/fonts/rcop2-Robocop 2 (Data East).png rename to client/static/images/fonts/rcop2.png diff --git a/client/static/images/fonts/rezon-Rezon (Allumer).png b/client/static/images/fonts/rezon.png similarity index 100% rename from client/static/images/fonts/rezon-Rezon (Allumer).png rename to client/static/images/fonts/rezon.png diff --git a/client/static/images/fonts/rf-Raiden Fighters (Seibu).png b/client/static/images/fonts/rf.png similarity index 100% rename from client/static/images/fonts/rf-Raiden Fighters (Seibu).png rename to client/static/images/fonts/rf.png diff --git a/client/static/images/fonts/ridef-Riding Fight (Taito).png b/client/static/images/fonts/ridef.png similarity index 100% rename from client/static/images/fonts/ridef-Riding Fight (Taito).png rename to client/static/images/fonts/ridef.png diff --git a/client/static/images/fonts/roadr-Road Riot (Atari).png b/client/static/images/fonts/roadr.png similarity index 100% rename from client/static/images/fonts/roadr-Road Riot (Atari).png rename to client/static/images/fonts/roadr.png diff --git a/client/static/images/fonts/robot-Robotron (Williams).png b/client/static/images/fonts/robot.png similarity index 100% rename from client/static/images/fonts/robot-Robotron (Williams).png rename to client/static/images/fonts/robot.png diff --git a/client/static/images/fonts/rtl-R Type LEO (Irem).png b/client/static/images/fonts/rtl.png similarity index 100% rename from client/static/images/fonts/rtl-R Type LEO (Irem).png rename to client/static/images/fonts/rtl.png diff --git a/client/static/images/fonts/rtype-R Type (Irem).png b/client/static/images/fonts/rtype.png similarity index 100% rename from client/static/images/fonts/rtype-R Type (Irem).png rename to client/static/images/fonts/rtype.png diff --git a/client/static/images/fonts/rumba-Rumba Lumber (Taito).png b/client/static/images/fonts/rumba.png similarity index 100% rename from client/static/images/fonts/rumba-Rumba Lumber (Taito).png rename to client/static/images/fonts/rumba.png diff --git a/client/static/images/fonts/sabo-Saboten Bombers (NMK).png b/client/static/images/fonts/sabo.png similarity index 100% rename from client/static/images/fonts/sabo-Saboten Bombers (NMK).png rename to client/static/images/fonts/sabo.png diff --git a/client/static/images/fonts/sala2-Salamander 2 (Konami).png b/client/static/images/fonts/sala2.png similarity index 100% rename from client/static/images/fonts/sala2-Salamander 2 (Konami).png rename to client/static/images/fonts/sala2.png diff --git a/client/static/images/fonts/samsho2-Samurai Shodown 2 (SNK).png b/client/static/images/fonts/samsho2.png similarity index 100% rename from client/static/images/fonts/samsho2-Samurai Shodown 2 (SNK).png rename to client/static/images/fonts/samsho2.png diff --git a/client/static/images/fonts/samsho3-Samurai Shodown 3 (SNK).png b/client/static/images/fonts/samsho3.png similarity index 100% rename from client/static/images/fonts/samsho3-Samurai Shodown 3 (SNK).png rename to client/static/images/fonts/samsho3.png diff --git a/client/static/images/fonts/sar-Search and Rescue (SNK).png b/client/static/images/fonts/sar.png similarity index 100% rename from client/static/images/fonts/sar-Search and Rescue (SNK).png rename to client/static/images/fonts/sar.png diff --git a/client/static/images/fonts/sboom-Sonic Boom (Sega).png b/client/static/images/fonts/sboom.png similarity index 100% rename from client/static/images/fonts/sboom-Sonic Boom (Sega).png rename to client/static/images/fonts/sboom.png diff --git a/client/static/images/fonts/sdi-SDI (Sega).png b/client/static/images/fonts/sdi.png similarity index 100% rename from client/static/images/fonts/sdi-SDI (Sega).png rename to client/static/images/fonts/sdi.png diff --git a/client/static/images/fonts/sexy-Parodius (Konami).png b/client/static/images/fonts/sexy.png similarity index 100% rename from client/static/images/fonts/sexy-Parodius (Konami).png rename to client/static/images/fonts/sexy.png diff --git a/client/static/images/fonts/sf2-Street Fighter II (Capcom).png b/client/static/images/fonts/sf2.png similarity index 100% rename from client/static/images/fonts/sf2-Street Fighter II (Capcom).png rename to client/static/images/fonts/sf2.png diff --git a/client/static/images/fonts/sf3-Street Fighter III (Capcom).png b/client/static/images/fonts/sf3.png similarity index 100% rename from client/static/images/fonts/sf3-Street Fighter III (Capcom).png rename to client/static/images/fonts/sf3.png diff --git a/client/static/images/fonts/sf33-Street Fighter III 3rd Strike (Capcom).png b/client/static/images/fonts/sf33.png similarity index 100% rename from client/static/images/fonts/sf33-Street Fighter III 3rd Strike (Capcom).png rename to client/static/images/fonts/sf33.png diff --git a/client/static/images/fonts/sfz3-Street Fighter Zero 3 (Capcom).png b/client/static/images/fonts/sfz3.png similarity index 100% rename from client/static/images/fonts/sfz3-Street Fighter Zero 3 (Capcom).png rename to client/static/images/fonts/sfz3.png diff --git a/client/static/images/fonts/shda-ShadowDancer (Sega).png b/client/static/images/fonts/shda.png similarity index 100% rename from client/static/images/fonts/shda-ShadowDancer (Sega).png rename to client/static/images/fonts/shda.png diff --git a/client/static/images/fonts/shinobi-Shinobi (Sega).png b/client/static/images/fonts/shinobi.png similarity index 100% rename from client/static/images/fonts/shinobi-Shinobi (Sega).png rename to client/static/images/fonts/shinobi.png diff --git a/client/static/images/fonts/simp-The Simpsons (Konami).png b/client/static/images/fonts/simp.png similarity index 100% rename from client/static/images/fonts/simp-The Simpsons (Konami).png rename to client/static/images/fonts/simp.png diff --git a/client/static/images/fonts/skyfox-Sky Fox (Nichibutsu).png b/client/static/images/fonts/skyfox.png similarity index 100% rename from client/static/images/fonts/skyfox-Sky Fox (Nichibutsu).png rename to client/static/images/fonts/skyfox.png diff --git a/client/static/images/fonts/skys-Sky Soldier (SNK).png b/client/static/images/fonts/skys.png similarity index 100% rename from client/static/images/fonts/skys-Sky Soldier (SNK).png rename to client/static/images/fonts/skys.png diff --git a/client/static/images/fonts/smar-Super Mario Bros 3 (Nintendo).png b/client/static/images/fonts/smar.png similarity index 100% rename from client/static/images/fonts/smar-Super Mario Bros 3 (Nintendo).png rename to client/static/images/fonts/smar.png diff --git a/client/static/images/fonts/snow-Snow Bros (Toaplan).png b/client/static/images/fonts/snow.png similarity index 100% rename from client/static/images/fonts/snow-Snow Bros (Toaplan).png rename to client/static/images/fonts/snow.png diff --git a/client/static/images/fonts/sold-Soldam (Jaleco).png b/client/static/images/fonts/sold.png similarity index 100% rename from client/static/images/fonts/sold-Soldam (Jaleco).png rename to client/static/images/fonts/sold.png diff --git a/client/static/images/fonts/solo-Solomons Key (Tecmo).png b/client/static/images/fonts/solo.png similarity index 100% rename from client/static/images/fonts/solo-Solomons Key (Tecmo).png rename to client/static/images/fonts/solo.png diff --git a/client/static/images/fonts/spdr-Speed Rumbler (Capcom).png b/client/static/images/fonts/spdr.png similarity index 100% rename from client/static/images/fonts/spdr-Speed Rumbler (Capcom).png rename to client/static/images/fonts/spdr.png diff --git a/client/static/images/fonts/spin95-Space Invaders 95 (Taito).png b/client/static/images/fonts/spin95.png similarity index 100% rename from client/static/images/fonts/spin95-Space Invaders 95 (Taito).png rename to client/static/images/fonts/spin95.png diff --git a/client/static/images/fonts/ssf2-Super Street Fighter 2 (Capcom).png b/client/static/images/fonts/ssf2.png similarity index 100% rename from client/static/images/fonts/ssf2-Super Street Fighter 2 (Capcom).png rename to client/static/images/fonts/ssf2.png diff --git a/client/static/images/fonts/strider-Strider Hiryu (Capcom).png b/client/static/images/fonts/strider.png similarity index 100% rename from client/static/images/fonts/strider-Strider Hiryu (Capcom).png rename to client/static/images/fonts/strider.png diff --git a/client/static/images/fonts/supgt-Super GT 24 (Jaleco).png b/client/static/images/fonts/supgt.png similarity index 100% rename from client/static/images/fonts/supgt-Super GT 24 (Jaleco).png rename to client/static/images/fonts/supgt.png diff --git a/client/static/images/fonts/takeda-Takeda Shingen (Jaleco).png b/client/static/images/fonts/takeda.png similarity index 100% rename from client/static/images/fonts/takeda-Takeda Shingen (Jaleco).png rename to client/static/images/fonts/takeda.png diff --git a/client/static/images/fonts/tataka-Tatakae Big Fighter (Nichibutsu).png b/client/static/images/fonts/tataka.png similarity index 100% rename from client/static/images/fonts/tataka-Tatakae Big Fighter (Nichibutsu).png rename to client/static/images/fonts/tataka.png diff --git a/client/static/images/fonts/terra-Terra Force (Nichibutsu).png b/client/static/images/fonts/terra.png similarity index 100% rename from client/static/images/fonts/terra-Terra Force (Nichibutsu).png rename to client/static/images/fonts/terra.png diff --git a/client/static/images/fonts/tetris-Tetris (Sega).png b/client/static/images/fonts/tetris.png similarity index 100% rename from client/static/images/fonts/tetris-Tetris (Sega).png rename to client/static/images/fonts/tetris.png diff --git a/client/static/images/fonts/thdr-Thunder Dragon (NMK).png b/client/static/images/fonts/thdr.png similarity index 100% rename from client/static/images/fonts/thdr-Thunder Dragon (NMK).png rename to client/static/images/fonts/thdr.png diff --git a/client/static/images/fonts/times-Time Soldiers (ADK).png b/client/static/images/fonts/times.png similarity index 100% rename from client/static/images/fonts/times-Time Soldiers (ADK).png rename to client/static/images/fonts/times.png diff --git a/client/static/images/fonts/tmek-T-Mek (Atari).png b/client/static/images/fonts/tmek.png similarity index 100% rename from client/static/images/fonts/tmek-T-Mek (Atari).png rename to client/static/images/fonts/tmek.png diff --git a/client/static/images/fonts/tp84-Time Pilot 84 (Konami).png b/client/static/images/fonts/tp84.png similarity index 100% rename from client/static/images/fonts/tp84-Time Pilot 84 (Konami).png rename to client/static/images/fonts/tp84.png diff --git a/client/static/images/fonts/trs-Top Ranking Stars (Taito).png b/client/static/images/fonts/trs.png similarity index 100% rename from client/static/images/fonts/trs-Top Ranking Stars (Taito).png rename to client/static/images/fonts/trs.png diff --git a/client/static/images/fonts/trx-Truxton (Toaplan).png b/client/static/images/fonts/trx.png similarity index 100% rename from client/static/images/fonts/trx-Truxton (Toaplan).png rename to client/static/images/fonts/trx.png diff --git a/client/static/images/fonts/twin-Twin Cobra (Toaplan).png b/client/static/images/fonts/twin.png similarity index 100% rename from client/static/images/fonts/twin-Twin Cobra (Toaplan).png rename to client/static/images/fonts/twin.png diff --git a/client/static/images/fonts/twin2-Twin Cobra II (Taito).png b/client/static/images/fonts/twin2.png similarity index 100% rename from client/static/images/fonts/twin2-Twin Cobra II (Taito).png rename to client/static/images/fonts/twin2.png diff --git a/client/static/images/fonts/twinB-Twinbee (Konami).png b/client/static/images/fonts/twinB.png similarity index 100% rename from client/static/images/fonts/twinB-Twinbee (Konami).png rename to client/static/images/fonts/twinB.png diff --git a/client/static/images/fonts/twq-Twin Qix (Taito).png b/client/static/images/fonts/twq.png similarity index 100% rename from client/static/images/fonts/twq-Twin Qix (Taito).png rename to client/static/images/fonts/twq.png diff --git a/client/static/images/fonts/typh-Typhoon (Konami).png b/client/static/images/fonts/typh.png similarity index 100% rename from client/static/images/fonts/typh-Typhoon (Konami).png rename to client/static/images/fonts/typh.png diff --git a/client/static/images/fonts/unsq-UN Squadron (Capcom).png b/client/static/images/fonts/unsq.png similarity index 100% rename from client/static/images/fonts/unsq-UN Squadron (Capcom).png rename to client/static/images/fonts/unsq.png diff --git a/client/static/images/fonts/vict-Victory Road (SNK).png b/client/static/images/fonts/vict.png similarity index 100% rename from client/static/images/fonts/vict-Victory Road (SNK).png rename to client/static/images/fonts/vict.png diff --git a/client/static/images/fonts/waku-Waku Waku 7 (Sunsoft).png b/client/static/images/fonts/waku.png similarity index 100% rename from client/static/images/fonts/waku-Waku Waku 7 (Sunsoft).png rename to client/static/images/fonts/waku.png diff --git a/client/static/images/fonts/wboy-Wonder Boy (Sega).png b/client/static/images/fonts/wboy.png similarity index 100% rename from client/static/images/fonts/wboy-Wonder Boy (Sega).png rename to client/static/images/fonts/wboy.png diff --git a/client/static/images/fonts/wfang-Wolf Fang (Taito).png b/client/static/images/fonts/wfang.png similarity index 100% rename from client/static/images/fonts/wfang-Wolf Fang (Taito).png rename to client/static/images/fonts/wfang.png diff --git a/client/static/images/fonts/wildp-Wild Pilot (Jaleco).png b/client/static/images/fonts/wildp.png similarity index 100% rename from client/static/images/fonts/wildp-Wild Pilot (Jaleco).png rename to client/static/images/fonts/wildp.png diff --git a/client/static/images/fonts/will-Willow (Capcom).png b/client/static/images/fonts/will.png similarity index 100% rename from client/static/images/fonts/will-Willow (Capcom).png rename to client/static/images/fonts/will.png diff --git a/client/static/images/fonts/xain-Solar Warrior (Technos).png b/client/static/images/fonts/xain.png similarity index 100% rename from client/static/images/fonts/xain-Solar Warrior (Technos).png rename to client/static/images/fonts/xain.png diff --git a/client/static/images/fonts/xexex-Xexex (Konami).png b/client/static/images/fonts/xexex.png similarity index 100% rename from client/static/images/fonts/xexex-Xexex (Konami).png rename to client/static/images/fonts/xexex.png diff --git a/client/static/images/fonts/zwing-Zero Wing (Toaplan).png b/client/static/images/fonts/zwing.png similarity index 100% rename from client/static/images/fonts/zwing-Zero Wing (Toaplan).png rename to client/static/images/fonts/zwing.png diff --git a/client/styles/index.css b/client/styles/index.css index 31e480d..4ba49d4 100644 --- a/client/styles/index.css +++ b/client/styles/index.css @@ -61,7 +61,12 @@ a { color: #ffff00; } +br { + padding-bottom: 8px; +} + legend { + text-align: left; line-height: 0; color: #666; padding-right: 1ch; @@ -156,7 +161,7 @@ input { .ui-menu .ui-menu-item-wrapper { border: 0; - padding: 0.25ch 0 0.25ch 1ch; + line-height: 1; margin: 0; } @@ -183,7 +188,7 @@ input { } .ui-selectmenu-menu .ui-menu { - max-height: 400px; + max-height: 330px; } .ui-selectmenu-button.ui-button { diff --git a/client/utils/fonts.json b/client/utils/fonts.json deleted file mode 100644 index 0192079..0000000 --- a/client/utils/fonts.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "1943": 10, - "acro": 1, - "aerof": 8, - "aftb": 9, - "aof2": 5, - "arab": 4, - "arcade": 8, - "arka": 5, - "armo": 5, - "ass": 8, - "astx": 9, - "atascii": 4, - "aura": 20, - "avng": 10, - "bakr": 7, - "baku": 4, - "bats": 10, - "bayr": 3, - "bcir": 18, - "bdash": 8, - "bios": 6, - "blaz": 8, - "blkt": 8, - "blwa": 8, - "bonz": 7, - "boog": 5, - "bubma": 4, - "bubs": 9, - "caml": 9, - "chiki": 5, - "cliff": 5, - "cmnds": 10, - "cotn": 16, - "cshk": 4, - "cyba": 6, - "ddcrew": 4, - "dddon": 7, - "ddp": 12, - "ddr": 10, - "ddux": 9, - "deta": 8, - "dima": 9, - "drbr": 3, - "dsab": 8, - "dspir": 10, - "f1dr": 6, - "flak": 7, - "flys": 16, - "fstarf": 7, - "fz": 5, - "gaia": 11, - "gain": 7, - "garou": 4, - "gng1": 11, - "gng2": 10, - "gond": 6, - "gradius2": 3, - "gradius3": 7, - "gradius4": 3, - "gradius": 8, - "guar": 9, - "gunb": 11, - "gunn": 11, - "guns": 4, - "gyrs": 7, - "hach": 5, - "hatt": 13, - "imgf": 6, - "kais": 8, - "ketsui": 10, - "kiki": 4, - "kira": 5, - "klaxa": 3, - "klax": 3, - "kof2k1": 7, - "kof2k2": 4, - "kof2k3": 7, - "kof2k": 9, - "kof97i": 12, - "kof97": 12, - "ladu": 5, - "lastb": 7, - "last": 6, - "lghost": 4, - "libr": 4, - "lwing": 5, - "mars": 12, - "mgs": 4, - "mjack": 6, - "moma": 8, - "mt": 13, - "muni": 8, - "mwar": 2, - "namco2": 6, - "nds": 11, - "nebu": 8, - "niga": 5, - "ninjak": 5, - "ninjas": 4, - "ninj": 10, - "nstrike": 7, - "ord": 5, - "outf": 7, - "pabom": 9, - "paro": 4, - "pckf": 6, - "psr2": 8, - "pubu": 7, - "puls": 7, - "qtet": 4, - "quake": 2, - "raph": 4, - "rayf": 9, - "rcop2": 3, - "rcop": 5, - "rezon": 1, - "rf": 10, - "ridef": 8, - "roadr": 3, - "robot": 4, - "rtl": 8, - "rtype": 8, - "rumba": 2, - "sabo": 1, - "sala2": 7, - "samsho2": 9, - "samsho3": 10, - "sar": 1, - "sboom": 5, - "sdi": 7, - "sexy": 8, - "sf2": 9, - "sf3": 2, - "sf33": 1, - "sfz3": 8, - "shda": 8, - "shinobi": 4, - "simp": 5, - "skyfox": 2, - "skys": 6, - "smar": 4, - "snow": 7, - "sold": 8, - "solo": 6, - "spdr": 9, - "spin95": 7, - "ssf2": 9, - "strider": 11, - "supgt": 4, - "takeda": 2, - "tataka": 7, - "terra": 8, - "tetris": 6, - "thdr": 4, - "times": 10, - "tmek": 2, - "tp84": 10, - "trs": 8, - "trx": 22, - "twin2": 6, - "twinB": 9, - "twin": 9, - "twq": 6, - "typh": 7, - "unsq": 7, - "vict": 1, - "waku": 8, - "wboy": 9, - "wfang": 3, - "wildp": 4, - "will": 12, - "xain": 4, - "xexex": 11, - "zwing": 16 -} \ No newline at end of file diff --git a/client/utils/populate.sh b/client/utils/populate.sh deleted file mode 100644 index 713b8e6..0000000 --- a/client/utils/populate.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -endpoint="https://fonts.hexed.pw/api.php" -alphabet=({A..Z}) -fonts=($(cat fonts.json | jq -r '. | keys[]')) -strings=( - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz" - "0123456789!?@$%^'&*~+=-_.," - "I%20AM%20ERROR" -) - -urls=() - -for font in "${fonts[@]}"; do - value=$(($(cat fonts.json | jq -r ".[\"$font\"]") - 1)) - for style in $(seq 0 $value); do - for string in "${strings[@]}"; do - url="$endpoint/dbl-3/y-$font/z-$style/x-$string" - urls+=($url) - done - urls+=("$endpoint/dbl-2/y-$font/z-$style/x-${alphabet[$style]}") - urls+=("$endpoint/dbl-5/y-$font/z-$style/x-ARCADE%20FONT%20ENGINE") - done -done - -echo -n > urls.txt - -for url in "${urls[@]}"; do - echo "url = \"$url\"" >> urls.txt -done - -curl -s --parallel --parallel-immediate --parallel-max 10 --config urls.txt - -rm urls.txt diff --git a/docker/docker_setup.sh b/docker/docker_setup.sh new file mode 100644 index 0000000..f6c81a7 --- /dev/null +++ b/docker/docker_setup.sh @@ -0,0 +1,114 @@ +#!/bin/bash + +set -e + +echo 'short_open_tag = On' >> /etc/php83/conf.d/custom.ini + +cat << 'EOF' > /etc/nginx/nginx.conf +worker_processes 1; +error_log stderr warn; +pid /run/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include mime.types; + default_type application/octet-stream; + + log_format main_timed '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for" ' + '$request_time $upstream_response_time $pipe $upstream_cache_status'; + + access_log /dev/stdout main_timed; + error_log /dev/stderr notice; + + keepalive_timeout 65; + + client_body_temp_path /tmp/client_temp; + proxy_temp_path /tmp/proxy_temp_path; + fastcgi_temp_path /tmp/fastcgi_temp; + uwsgi_temp_path /tmp/uwsgi_temp; + scgi_temp_path /tmp/scgi_temp; + + server { + listen 8080 default_server; + server_name _; + + sendfile off; + + set $forwarded_scheme "http"; + if ($http_x_forwarded_proto = "https") { + set $forwarded_scheme "https"; + } + + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + + client_max_body_size ${client_max_body_size}; + client_body_buffer_size 128k; + + root ${nginx_root_directory}; + index index.php index.html; + + location / { + try_files $uri $uri/ $uri.html; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /var/lib/nginx/html; + } + + location /api/ { + try_files $uri $uri/ /api.php?$args; + } + + location ~ [^/]\.php(/|$) { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass unix:/run/php-fpm.sock; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + expires 7d; + include fastcgi_params; + + fastcgi_param HTTP_X_FORWARDED_PROTO $forwarded_scheme; + fastcgi_param HTTPS $https if_not_empty; + + } + + location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { + expires 5d; + } + + location ~ /\. { + log_not_found off; + deny all; + } + + location ~ ^/(fpm-status|fpm-ping)$ { + access_log off; + allow 127.0.0.1; + deny all; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + fastcgi_pass unix:/run/php-fpm.sock; + } + } + + include /etc/nginx/conf.d/*.conf; + + gzip on; + gzip_proxied any; + gzip_types text/richtext text/plain text/css text/x-script text/x-component text/x-java-source text/x-markdown application/javascript application/x-javascript text/javascript text/js image/x-icon image/vnd.microsoft.icon application/x-perl application/x-httpd-cgi text/xml application/xml application/rss+xml application/vnd.api+json application/x-protobuf application/json multipart/bag multipart/mixed application/xhtml+xml font/ttf font/otf font/x-woff image/svg+xml application/vnd.ms-fontobject application/ttf application/x-ttf application/otf application/x-otf application/truetype application/opentype application/x-opentype application/font-woff application/eot application/font application/font-sfnt application/wasm application/javascript-binast application/manifest+json application/ld+json application/graphql+json application/geo+json; + gzip_vary on; + gzip_disable "msie6"; + +} +EOF + +rm -- "$0" diff --git a/docker/populate_cache.sh b/docker/populate_cache.sh new file mode 100644 index 0000000..381794a --- /dev/null +++ b/docker/populate_cache.sh @@ -0,0 +1,36 @@ +#!/bin/bash + + +output=$(mktemp) +endpoint="http://localhost:8080/api" +alphabet=({A..Z}) +pairs=(1943:10 acro:1 aerof:8 aftb:9 aof2:5 arab:4 arcade:8 arka:5 armo:5 ass:8 astx:9 atascii:4 aura:20 avng:10 bakr:7 baku:4 bats:10 bayr:3 bcir:18 bdash:8 bios:6 blaz:8 blkt:8 blwa:8 bonz:7 boog:5 bubma:4 bubs:9 caml:9 chiki:5 cliff:5 cmnds:10 cotn:16 cshk:4 cyba:6 ddcrew:4 dddon:7 ddp:12 ddr:10 ddux:9 deta:8 dima:9 drbr:3 dsab:8 dspir:10 f1dr:6 flak:7 flys:16 fstarf:7 fz:5 gaia:11 gain:7 garou:4 gng1:11 gng2:10 gond:6 gradius2:3 gradius3:7 gradius4:3 gradius:8 guar:9 gunb:11 gunn:11 guns:4 gyrs:7 hach:5 hatt:13 imgf:6 kais:8 ketsui:10 kiki:4 kira:5 klaxa:3 klax:3 kof2k1:7 kof2k2:4 kof2k3:7 kof2k:9 kof97i:12 kof97:12 ladu:5 lastb:7 last:6 lghost:4 libr:4 lwing:5 mars:12 mgs:4 mjack:6 moma:8 mt:13 muni:8 mwar:2 namco2:6 nds:11 nebu:8 niga:5 ninjak:5 ninjas:4 ninj:10 nstrike:7 ord:5 outf:7 pabom:9 paro:4 pckf:6 psr2:8 pubu:7 puls:7 qtet:4 quake:2 raph:4 rayf:9 rcop2:3 rcop:5 rezon:1 rf:10 ridef:8 roadr:3 robot:4 rtl:8 rtype:8 rumba:2 sabo:1 sala2:7 samsho2:9 samsho3:10 sar:1 sboom:5 sdi:7 sexy:8 sf2:9 sf3:2 sf33:1 sfz3:8 shda:8 shinobi:4 simp:5 skyfox:2 skys:6 smar:4 snow:7 sold:8 solo:6 spdr:9 spin95:7 ssf2:9 strider:11 supgt:4 takeda:2 tataka:7 terra:8 tetris:6 thdr:4 times:10 tmek:2 tp84:10 trs:8 trx:22 twin2:6 twinB:9 twin:9 twq:6 typh:7 unsq:7 vict:1 waku:8 wboy:9 wfang:3 wildp:4 will:12 xain:4 xexex:11 zwing:16) +strings=( + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789!?@$%^'&*~+=-_.," + "SAMPLE%20TEXT" +) + +urls=() + +for pair in "${pairs[@]}"; do + font=$(echo $pair | cut -d ':' -f 1) + styles=$(echo $pair | cut -d ':' -f 2) + for style in $(seq 0 $styles); do + for string in "${strings[@]}"; do + url="$endpoint/dbl-3/y-$font/z-$style/x-$string" + urls+=($url) + done + urls+=("$endpoint/dbl-2/y-$font/z-$style/x-${alphabet[$style]}") + urls+=("$endpoint/dbl-5/y-$font/z-$style/x-ARCADE%20FONT%20ENGINE") + done +done + +for url in "${urls[@]}"; do + echo "url = \"$url\"" >> $output +done + +curl -s --parallel --parallel-immediate --parallel-max 10 --config $output + +rm $output diff --git a/package.json b/package.json index 8ffbf13..88cb646 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "jquery-ui-dist": "^1.13.3", "nodemon": "^3.1.3", "rcpy": "^1.0.2", - "reflex-grid": "^2.0.8" + "reflex-grid": "^2.0.8", + "svgo": "^3.3.2" } }