Inside the fan translation of PS1 JRPG Ancient Roman: "Excavation site or crime scene, whichever you fancy"
How the "worst PS1 RPG," a now-legendary kusoge, got its moment in the spotlight.
The prophecy has been fulfilled. And by the prophecy, I mean that in the last issue of ROM I said I wanted to go into more depth about the fan translation of infamously terrible PS1 RPG Ancient Roman: Power of Dark Side, and now it's happened!
We've got a load of details on the making of this delightful fan translation as our main story this issue, as well as a look at the latest version of DREAMM, an emulator not for a particular system, but for a particular developer. You don't see that every day! (Unless you're Aaron Giles, who made DREAMM; then you probably do).
I'm gonna keep the preamble real short this week, on account of a whole lot of words on Ancient Roman waiting for you right below this purple subscribe button:
... and also because I've got pinball to play! If you're reading this hot off the presses on Sunday, you've still got time to hop on a plane, a train, in a car, or, well, not on a boat because that would probably be too slow, but one of those other ones, to make it to the second day of pinball and arcade overload at California Extreme. I won't be there anymore, but if you are, play a round of Fish Tales for me!
The Big Two
1. SnowyAria breaks down "legendary PS1 kusoge" Ancient Roman, where the developers somehow got everything wrong
The first thing you should know about Ancient Roman: Power of Dark Side is that it has nothing to do with Rome. This is a telling detail for the 1998 RPG, which arrived on the PlayStation just a year or so after Final Fantasy VII with ambitions of being the first in a sprawling, multi-part RPG series. The title is aspirational. It refers to romance. A classic, romantic fable for the ages!
Well, they tried. Like the Famicom's "legendary shitty game," Ancient Roman has been called the worst RPG on the PlayStation 1. It may well be one of the worst Japanese RPGs ever made in the context of what it tries to do and how badly it fails. But that's exactly why fan translator SnowyAria has wanted to share Ancient Roman with people for close to a decade now, dating back to when she first published a YouTube video of it in 2015 with English subtitles. It was something, but SnowyAria told me she realized "for a game like Ancient Roman, I wanted people to play and experience this travesty rather than watching me play it."
SnowyAria is the patron saint of kusoge (aka "shitty games"), both playing and translating the kinds of games that would cause many people to wrinkle up their nose and say "why bother?" Which is the exact reason to bother, because Ancient Roman is both fascinating and hilarious, a game that will enrich your life to learn about.
"Maybe it's from a childhood friend of mine having a 3DO we grew up playing, or a family who loves watching B-movies sometimes with Rifftrax on top. But for most games considered bad, if you can look past the parts that prevented the game from succeeding, you can see the passion behind the creator and appreciate what they tried but failed to do," SnowyAria said. "Kusoge also aren't as bound by formulas and structure, so you often find really unique attempts to break the norms in both gameplay and storytelling." She pointed to the game Spectral Tower, which casts you as a sinner trying to climb 1,000 floors out of purgatory... only to then be told you have to climb another 10,000 floor tower to "agonizing music of a singular depressing gong." Like Ancient Roman, it's been called one of the worst RPGs ever made. But the misery of climbing that tower "really puts you in the shoes of a repenting sinner in a way that can only be described as art," she said.
That strain of kusoge's unique, even bold design won't win over many players, but you have to admire the chutzpah. But there's another type that isn't so much daring as it is... well, like Ancient Roman, "where everything just went wrong and gave the gift of a hilarious time," Aria said. "It's almost as impressive as it is baffling at how much they messed up."
That's why this translation exists: to let us all gawk at the kind of car crash that blocks a whole bridge. The music, the one thing you'd expect them to probably do an okay job with, went horribly wrong, with the PlayStation's MIDI playback somehow set to use the wrong instruments for every note. It transforms the soundtrack into what SnowyAria likes to call either "Fire Alarm Suite in D Minor" or "the composer was trapped in a claw machine" depending on the scene. This music is actually largely what drive Ancient Roman to some viral renown in Japan a few years ago, with both remixes and performances like this one of skilled musicians absolutely taking the piss out of it.
So, yeah: Stick Ancient Roman side-by-side with Final Fantasy VII and it's like comparing the MCU's Captain America to the one from 1990. Or as Aria puts it: "Think of the game as either an ancient excavation site or a crime scene, whichever you fancy."
Aria gave me a deep dive into the dark heart of Ancient Roman's fan translation, going into generous detail about some of the trickiest localization choices and most perplexing programming problems she ran into along with hacker EsperKnight while working on this patch. This being ROM, I figured we should start with how emulation came into play:
EsperKnight: "No$psx is great for viewing VRAM and seeing where the VRAM call comes from. I also use PCSX-Redux for trace logging so I can see all the instructions executed. Also has a great memory viewer."
SnowyAria: "VRAM would be the buffer where everything is drawn to during the frame before it's shown to the user. So seeing it and stepping through it a call at a time lets us see how the font is drawn on the screen and what we need to change to make it look like how we want. Trace logging lets you break/pause the game on a certain condition (variable change or graphic write perhaps), then see all the assembly code that lead to that point.
"More recently, Ghidra has been a lifesaver for decompiling the assembly into readable C code, making it a lot easier to see what the game is doing and what to change."
While some fan translations take great pains to fix bugs or improve elements of the original games, that was expressly not the goal with Ancient Roman:
SnowyAria: "Whenever a sound plays, the game will actually hang for close to a second before playing the sound. As part of the effort to subtitle the voice lines (since how could we not let you hear the party call you stingy for not buying them equipment~), I realized that each sound clip is normalized to 10 full seconds, even if it's just a half-second sound. This essentially means that every time a sound plays, the game has to read 10 full seconds of audio off a x1/x2 cd drive (not something you want to do constantly in an action sequence), play that audio, then proceed not to cache it. It's most notable during the level up screen, where the jingle will have to load every time a new character levels up, resulting in several concurrent reads. We refuse to fix it by reducing the length from 10 seconds, but chances are that'd help."
Did the developers make other mistakes? Oh, did they.
EsperKnight: "Biggest thing is that the exes between disc 1 and 2 did not match, so applying modifications to disc 1 required searching and finding the correct spots in disc 2 which was a huge pain in the ass. The reason why? They forgot to include the company splash screen on disc 2!"
The primary challenge in translating Ancient Roman, not-so-shockingly, was just parsing it. Aria had some great details on that front.
SnowyAria: "In terms of localization, Ancient Roman is a bit unique. Most games I work on, the goal is to translate the prose in a clear way while making sure the players get an accurate translation while having an experience comparable to a Japanese player. For example, stories in Kowai Shashin — a rumored 'haunted' horror game on PS1 with long text segments — needed to feel like scary stories told to spook you at a sleepover while the speaker shined a flashlight against their face. Cheesy and cliché words or phrases helped here to build that campy story while keeping players invested to see how it ends. Ancient Roman, on the other hand, is a story where if you try to make it too clear, then you're improving the game too much. Occasional kanji typos aside, the dialogue feels like different people wrote different sections and just glued them together...
"I suppose I should address ... why I localized the disease to 'People Becoming Monsters Disease.' I wrote this in the readme, but this was to preserve the really wordy expression the original Japanese uses. Something like 'Monsterfication Disease' would have fit nicely, but that would be more like 怪物化病気 (Kaibutsuka Byouki), where the 'ka' acts as a suffix to monster implying a change of state to. However, Ancient Roman goes with the mouthful 怪物になる病気 (Kaibutsu ni Naru Byouki), which would be more literally 'disease where (subject) becomes a monster.' I will admit People Becoming Monsters Disease stuck since testers got a laugh whenever it popped up, but they're pretty close in syllable count to preserve the stumbling word salad. One localization note I kept in mind is that no one is playing Ancient Roman in 2024 looking for a good game. The target audience for this patch is people looking for laughs at a failed product. It's a crowd of people watching a burning building with a bag of popcorn. With that in mind, some lines like the above were translated to keep the overall tone unpolished and rather silly at times like the original instead of translating things in a clear way for a tighter plot. We're not trying to make you feel like you're right there with Kai's struggle to save the world; you're watching a pile of idiots accidentally get high on wild mushrooms and run into a hotspring while forgetting the plot."
(And yes, that does happen.)
I'd like to wrap up with a few more translation anecdotes from SnowyAria that express how much care and flavor went into Ancient Roman — as well as how ramshackle the game itself feels. Give her a shout if you appreciate the work, and watch at least some of a let's play of the English patch to fully appreciate this one-of-a-kind kusoge.
SnowyAria: "Maybe like, 70% of the monsters had translatable names. The others were katakana words that sounded cool. I looked up Japanese resources on the game to try and find meaning behind the words, but a very detailed YouTube video showing every enemy model, animation, and technical detail for all the monsters would just say "name's meaning is unknown" for several of them. At least I could see what the monsters looked like and make passable names. 'Gary' was a real name though, ギャリー (gyarii), so yes someone named their pet monster Gary. It may have sounded cooler in Japanese as "GYA!" sounds more like a fearsome howl, I suppose. The shops were even worse, with the majority either being simple things like "General Store" to confusing puns to just words that sounded cool but meant nothing. For the first two, I kept the name or generated an equivalent pun. For the last one, we just had to improvise with more puns. This led to the ocean village having a handful of nautical nightmares like 'She Sells Sea Spells' for the magic seller. Contrary to streamer belief, 'King of Pervs' was a translatable one and was actually that as セラオウ (sera ou), literally King of Sailor Uniforms, who sells you mostly weird female accessories like school uniforms, bloomers, and the like. The game's weird if that wasn't clear by this point.
"... I doubt even the developers could tell you [what the power of Dark Side is]. At the beginning, the party in the digging camp finds a dark gem we localized as the Core of Dark Side. It's raised up to be this big deal, but it never actually comes up again. Unless of course, you happen to bring a temporary party member back to the digging camp, who's the only person who realizes a certain door isn't locked and is just in fact stuck. Inside, you find the gem itself with its own cutscene and everything, only for the party to trigger a cave-in, sealing it back forever. As you may have guessed, this has no bearing on the plot either way if you do this or not. None of it mattered. There's one throwaway line Lucia will say to Romias at the end, mocking him for getting the orb destroyed if you did this, but that's the only difference."
2. DREAMM 3.0 adds support for all LucasArts DOS games, CRT simulation, expansion packs and more
After a healthy few months in beta, DREAMM 3.0 arrives at a full release! I've only written a teeny bit about DREAMM before in the Linda Cube issue, but I've had the pleasure of speaking with developer Aaron Giles about his time working on MAME and Connectix in the past, and it's fair to say he knows his stuff. Who better to create an emulator uniquely focused on playing LucasArts games than someone who worked at LucasArts and specialized in porting those games from DOS to Mac and Windows?
Before getting into the DREAMM update, I thought it'd be helpful to share snippets of the explainer from Aaron's site on what this emulator does and why it exists, because there's nothing else quite like it:
DREAMM gave me a chance to write a new, high-performance i386 emulator from scratch, plus I got to leverage my existing YMFM library and my personal SoundFont synthesizer engine. It was fun to figure out how to implement enough DOS and Windows system calls to fool the games into thinking they were running on the real thing. And I dusted off my classic Win32 programming skills to write a simple GUI frontend.
For DREAMM’s 2.0 release, I wrote fast, hand-crafted assembly language i386 interpreters for both ARM and x86 systems, implemented a full Direct3D software renderer, wrote a new user interface layer, and built it all on top of SDL, meaning it now works on multiple platforms including MacOS.
And for DREAMM 3.0 I got to develop more detailed video emulation, dig into how video BIOSes work, and implement a ton of 16-bit Windows support, plus incorporate animation and add more polish to my frontend, all while digging into the early catalog of LucasArts games (plus a couple of LucasArts-adjacent titles as well).
Why use DREAMM instead of DOSBox or the GOG/Steam versions of LucasArts classics like TIE Fighter or Maniac Mansion?
Both DOSBox and DREAMM emulate an x86 machine and all attached peripherals, and both offer a fake implementation of DOS to service requests from the games.
But DREAMM takes this concept further by optimizing its experience and interface around a specific, curated set of games. This means that mouse cursor control is integrated and idle time is given back to your system. It also means that DREAMM will help you install (and upgrade) your old games into its environment, and it will handle all the configuration of video and sound devices.
Finally, DREAMM has the advantage of including a Windows emulation environment as well that allows it to run a host of early Windows releases, plus a miniature FM Towns layer that allows it to run the original FM Towns versions of the games that were released for that system.
[...] Running many of these older Windows games is far from a smooth experience. Older games tend to force full screen mode and switch resolutions on you, so your desktop is all messed up when you’re finished. Further, reading the forums for these games reveals all sorts of problems with widescreen resolutions, failed downloads, audio issues, and other glitches that don’t exactly provide the greatest experience.
Running these games under DREAMM gives you another option, where you don’t have to fiddle with graphics settings or wrestle with incompatibilities when newer versions of Windows are released and break your games. Games that can run within DREAMM on one system will run the same way on other systems that can run DREAMM.
Further, DREAMM lets you run the games fullscreen or windowed with a simple key toggle, and provides an environment that is much closer to the one the games expect. For example, DREAMM only supports 4:3 aspect resolutions, and only at typical sizes of the era when the games were originally released. Some might call this a limitation, but it is in fact a feature. (Those low-resolution textures don’t look any better at 4k than they do at 1024×768, trust me.)
It's really cool — I'm sure a few of you have had the same experience I have of buying one of these games on Steam or GOG, only to find trying to run it on modern hardware disappointingly finicky. There are some great remasters of course, from Grim Fandango to the recent Dark Forces, but not everything in the LucasArts library has gotten that wonderful treatment. Until the day Sam & Max hit the road again, DREAMM will have a place on my PC.
Anyway! What's the deal with this 3.0 release? Well it now supports expansion packs, which is a vital upgrade for practically every LucasArts game that isn't a point-and-click adventure. Sidenote — how many emulators have UIs this fun?
DREAMM's new CRT simulation is also beeeeeeautiful, combining "scanline simulation, horizontal filtering, and a shadow mask" to mimic a period-correct monitor. The wildest part is that this changes between game generations:
"DREAMM’s CRT simulation is aware of which video card you are currently emulating, and alters its behavior to attempt to best match the characteristics of a typical monitor of that era. Thus, even games that look identical between EGA and VGA modes with Basic Scaling may have quite different effects with CRT simulation. In particular, low resolution modes (320×200) running on VGA hardware are “double scanned”, and this will be reflected with CRT simulation enabled, giving two visible scanlines per pixel."
I decided to showcase this DREAMM feature in this issue's Good Pixels section, so scroll on down for some eye candy.
3.0 added support for the following games that weren't playable before: Star Wars Chess, Star Wars Screen Entertainment, Super Star Wars (unreleased prototype), Indiana Jones and the Temple of Doom, Indiana Jones and the Last Crusade: The Action Game, Indiana Jones and the Fate of Atlantis, PHM Pegasus, Battlehawks 1942, Strike Fleet, Their Finest Hour: Battle of Britain, Secret Weapons of the Luftwaffe, Pipe Dream/Pipe Mania, Night Shift, and MasterBlazer.
And Giles isn't done! He's already working on the next version of DREAMM, moving on to later 3D LucasArts games like Episode One Racer. And you know I gotta roll the clip now.
Patching In
PCSX2 clicky wiki – In the PS2 emulator you can now right-click any game in the UI and find a link that will take you to its page on the PCSX2 wiki, if it has one. Then you can see performance notes, known issues, etc. Very useful!
Have some fear, PS3 – RPCS3 now emulates the Top Shot Elite and Top Shot Fearmaster, a pair of plastic gun controllers seemingly used exclusively by the Cabela's games and... MIB Alien Crisis? GameSpot said in 2012: "Ugly, boring, and brazenly priced, MIB: Alien Crisis is an absolute embarrassment." Perfect!
Delta beta fixes controller bugs – iOS multi-emulator Delta introduced a few controller issues in update 1.6, which have been solved in a new update if you're a Patreon backer. If you're not, well, at least you know the fixes will roll out to you sometime.
PyBoy gets a boost – This Python-based emulator is popular with developers, I believe, due to the potential for doing scripting, building bots, etc. Most of my experience with Python has been trying to figure out why something on my home server doesn't work, but people with actual skill have used PyBoy to build some amazing stuff. The latest release gave it a 20% performance boost when rendering graphics. Seems good!
Core Report
New MiSTer cores dance into view – Michael Jackson's Moonwalker and Fast Lane in beta from Jotego, while a load of Namco System 1 and Neo Geo Pocket games from Jotego are now public. Splatterhouse, Galaga '88, Pac-Mania, and a pile more. They're on the Analogue Pocket, too!
Are you psychic? – 1987 arcade game Psycho 5 now has a MiSTer core in the official repo. HG101 calls out its most notable feature being how high the characters in it can jump. Maybe they were out to show up Mario?
Translation Station
The forgotten Ultima that went from English, to Japanese, is now in English again – Man, this is a weird one. Ultima: The Savage Empire, originally a PC spin-off built in the Ultima VI engine, got a Super Nintendo port that only ever released in Japan. This version of the game, released five years later, is actually based on the engine of SNES Ultima VII, which apparently sucked? There's some wild history here laid out in the fun video below. But most importantly, props to Nytegard (who goes by behindtimes on Reddit) who was apparently bored one night and decided to pick up a decade-old incomplete hack on a whim and carry it over the finish line.
Shining Force III patch goes modular – The Shining Force III fan translation project has been around for many years, translating the scenarios that were never released outside Japan. But this Version 25 update is a significant landmark, letting you patch specific game tweaks and fixes rather than all of them. "It's all modular now. Pick and choose the exact combination of options for your playstyle and interests," wrote modder 'legalize freedom!' Hit the link for the full details.
Good pixels
Talk about a dreammboat.