Skip to content
cowarlydragon edited this page May 7, 2024 · 4 revisions

Of all the open source projects, Linux is the greatest collective undertaking by humanity in the arena of software.

What's the second? It might be emulation.

The world of emulation preserves computing history, and represents a breathtaking swathe of technical knowledge, skill, and cooperation that rivals the best linux kernels. People dumping hardware chips, figuring out board layouts and chipsets, decoding obscure assembly instruction sets, simulating difficult timing issues, reverse engineering peripheral interfaces, writing custom drivers, extreme performance optimization, dynamic recompilation. From the lowest of low level hardware, to the highest levels of pretty UI coding, emulation spans not just the entire spectrum of computers and software, but the history of it as well.

It is so cool. And underlying it all is lunacy and unrelenting passion. For those with any IT background, you will routinely wonder how these people did this, and in their SPARE TIME.

All I have been able to do is get emulation software on my humble home linux box, currently a Mint distro. Mostly around games, although I don't actually play them that often. The strange thrill is just getting them working, for some future theoretical actual playing. Yeah, maybe that doesn't make sense.

Anyway, just getting this wide pageant of emulators, tools, file formats, and the like is its own dark art often. This wiki will hopefully encapsulate some helpful tips to getting things working. So much of this currently piggybacks on various "megaprojects" that have arisen in the last decade or so: eXoDOS, Retroarch, C64 Dreams, TotalReplay, TOSEC, MAME/MESS, Redump, GoodROMS, in addition to all the emulator authors, and probably a couple dozen more. There are websites LemonAmiga, Lemon64, AtariAge, Asimov, VGM, Mobygames, GameFAQs, HOTU, CRPGAddict, GoG, and dozens more that organize, document, and advertise software from years past.

My baseline approach is a simple filesystem directory tree, and games/software launched by clicking on a launcher script. No fancy frontends, although most frontends are just doing what I'm doing: constructing command line magic spells to coax emulators to loading and bringing to life the old software.