On this page
01 / The Mission
Rendering Pay to Play Obsolete
Arcade games are some of the most technically impressive and culturally significant games ever made. They were designed for specific hardware, operated for profit, and most of them have never been officially released in any form that players can own. When the cabinets age out and the operators move on, those games are simply gone.
That is also part of the problem we are trying to solve. Not just "run these games on PC for free," but also to preserve them permanently, in a form that does not require an operating arcade cabinet to experience, or a pay to play subscription gatekept by selfish devs. Yeah, I said it.
The current model of authentic arcade gaming, where access to a certain game either requires an exorbitant amount of money for a working physical cabinet, or to take a trip around the country or even the world in order to find an establishment that hosts the game, is nothing more than a preservation failure waiting to happen. In my personal opinion, arcade games should be treated as cultural artifacts, and released to the public just as normal video games are, where the user can pay for the game in the same way, perhaps at the end of the arcade game's duty or performance cycle, as set by the game developer. This would net more funds for the game developer, as people would happily purchase them. Getting it to run on normal hardware can then be the community's business, or perhaps the developers work with the community. But this is but a fanciful dream.
As it stands right now, every game that only exists on real hardware in arcades is at risk, especially the much more older copies that remain. There are still so many more games that could be preserved, many of which we fear are almost lost to time, which is in fact, a horrible shame. This is why Ultra Loader's goal, long term, is to make that model unnecessary by providing a free, accurate, and permanent alternative, free of charge to the community.
Also, keep in mind that we are not the only ones looking to do this. The guys over at Linux Loader also share the same vision, and they are doing incredible work with their Loader. It is the hope that perhaps over time, we could combine forces to make these games available to all. We also have awesome community projects, such as my friends over at Team Pixel Nostalgia, (shoutout to the team!) who do amazing work with game preservation for the community. So as for now, the goal is clear and the message is clear. The community has been asking for a change, and that change has finally come.
However, keep in mind that we are not there yet. We are just at the beginning. But the architecture is right, and the approach is right, and with enough time and community involvement, I believe we can build something that makes every arcade game, from every era, fully playable forever. All for free.
TeknoParrot had the opportunity to pave the road. They failed. Now Ultra Loader wants to build the highway. No more gatekeeping. No more profiteering.
It's Time For a Change.
02 / The Core Idea
One Runtime. Every Arcade System.
Arcade games span a staggering variety of hardware: purpose built silicon boards from the 1990s, Linux workstations repurposed as racing game cabinets in the 2000s, and modern Windows PCs running fighting games in arcades today. The traditional approach to running these games at home has always been a collection of separate tools, one per system, each with its own configuration, its own quirks, and its own lightgun setup. This is the world that existed before Ultra Loader. One tool for Type X games. Another for NAOMI. Another for Lindbergh. Each one configured differently, each one fighting your controllers differently, each one needing its own lightgun setup. Every time you wanted to play a different game, you were essentially switching to a different program with different rules.
Ultra Loader starts from a different premise. What if there were a single execution environment that understood all of these systems? One application. One configuration format. One enhancement layer that applies 4K upscaling, frame generation, and lightgun support across every supported game simultaneously, regardless of what hardware it originally ran on.
That is what Ultra Loader is: not a launcher that opens other programs, but a runtime that hosts game execution directly. The distinction matters enormously. A launcher is a front end. It finds a game, picks the right external tool, and hands off. What happens after that is someone else's problem. A runtime owns the whole process. The game runs inside Ultra Loader, not alongside it. That is the detail that makes everything else possible.
Because the game runs inside the runtime, the enhancement layer is part of the execution environment, not a plugin bolted on afterwards. 4K upscaling works on a Taito Type X game and a NAOMI game and a Lindbergh game through the same code path, because they all share the same host process. The same is true for save states, frame generation, and lightgun support. You configure your guns once, and they work everywhere. You set your upscaling preference once, and it applies everywhere. There is no per game setup because there is no per game tool.
The loader achieves this across three fundamentally different types of arcade hardware:
- PC based arcade boards (Taito Type X, Sega RingEdge, Namco ES series, and 60+ others) run their original Windows game binary without modification. Ultra Loader injects a clean room hook that stands in for the JVS I/O board, the card reader, and the display hardware the game expects to find. The game never knows it is not in a real cabinet.
- Linux arcade boards (Sega Lindbergh and others) run their original Linux ELF binaries directly on Windows through a POSIX compatibility layer. No emulation. No virtual machine. The original code runs at full native speed, with only the system call and display layers intercepted.
- Hardware based systems (NAOMI, NAOMI 2, Sega Model 3, Chihiro, Triforce, and more) run through established emulation cores loaded as in process modules. Not as child processes. Not as separate applications. The core runs inside the same process as the game, the loader, and the enhancement layer, which is the architectural detail that makes universal features possible across the retro library.
Regardless of which of these three paths a game takes, the user facing experience is always the same. One window. One settings file. One place to configure your controllers, your display, your guns. That is the core idea in full.
For a complete breakdown of how the runtime, the firmware modules, and the hook system work together at a technical level, see the Ultra Loader Technical Manual. Chapters 2 through 5 cover the three execution mechanisms, the Omni input services, installation, and the quick start in full detail.
03 / Comparison
Ultra Loader vs. Other Loaders
To be fair, tools like teknoparrot have done some good for the community, and many people have enjoyed years of play using their software. But sadly, they have long since gone astray, and these so called "false gods" have allowed greed and exclusivity to hold sway. This has drawn the ire and ill will of the community now for years.
On the other hand, the devs over at JConfig, along with the many awesome contributors at Emuline and other amazing sites have done tremendous work for the arcade community, and have worked hard to allow many of the old arcade dumps we now have to play on common PC setups. Their previous work has helped many people who would otherwise refuse to pay to use TeknoParrot, to play these games.
In truth, many of the games that run on Ultra Loader today would not have been possible to get working without their research efforts, if not for nothing else but their ideals regarding building tools to launch these games with minimal setup. The community appreciates the hard work done in this regard. But now, it's time for a modern and more open, community based approach.
The software will always be available and open to the community. NO ONE will be allowed to gatekeep or profit off of it.
Ultra Loader is a full Native Runtime: it hosts execution itself, configures all devices itself, and speaks each arcade board's language directly. This means that the enhancement layer is part of the core, not bolted on afterwards using tricks and compatibility layers...
| Capability | TeknoGreedy UI 😂 | Ultra Loader |
|---|---|---|
| Runs arcade games on PC | Yes | Yes |
| PC board games (Taito Type X, RingEdge, etc.) | Yes | Yes |
| Hardware based systems (NAOMI, Chihiro, Model 3) | Via separate emulators | Custom built, in process cores |
| Lightgun support | Using per game plugins | Universal, 8 players, mixed brand |
| 4K upscaling, FSR, frame generation | No | Universal, all systems |
| Save states | No | All platforms |
| Retro arcade support | No | Full library via libretro cores |
| PS3 support | No | World's first PS3 libretro core |
| Clean room codebase | No | Throughout |
| Always free | Patreon paywall for games | Always, no exceptions |
| Source-available modules | Closed source | Source available on the site |
The key column is "Hardware based systems." A typical loader spawns an external emulator (say, Flycast for NAOMI games), which runs in a separate process. Ultra Loader loads the same emulation core as an in process module. The game, the emulator core, and the enhancement layer all run inside the same process. That is what enables universal features: they apply at the process level, not per game.
04 / Technical Detail
How It Actually Works
Ultra Loader uses three different execution strategies depending on the target system. The right strategy for a game is determined automatically:
- DLL Injection for PC based boards. For systems like the Taito Type X, Sega RingEdge, Namco System ES series, Konami PC based boards, and 60+ others, the original Windows game binary runs unmodified. Ultra Loader injects a clean room DLL that replaces the JVS I/O, card reader, and display driver interfaces. The game itself never knows it is not on real arcade hardware.
- Native translation for Linux arcade boards. Sega Lindbergh games run as Linux ELF binaries on original hardware. Ultra Loader includes a POSIX compatibility layer that runs these binaries directly on Windows with no emulation. Full native CPU performance, zero overhead.
- In process emulation cores for hardware based systems. For NAOMI, NAOMI 2, Dreamcast, Atomiswave, Sega Chihiro, Triforce, GameCube, PS2, and Model 3, established emulation cores (Flycast, Dolphin, Supermodel, and others) are loaded as in process shared libraries via a standard ABI. No child process. No IPC. The core runs inside Ultra Loader alongside the enhancement layer.
- Clean room custom cores for preservation targets. Some systems have no suitable open source core, or the existing cores are not suitable for long term preservation. Ultra Viper (Konami Viper), Ultra Hikaru (Sega Hikaru), and Ultra Model 2 (Sega Model 2) are being built from the ground up using only public documentation, GPL MAME behavior analysis, and hardware captures. No closed source code was ever read.
On top of all of these execution paths, the same enhancement layer runs: AMD FSR upscaling, frame interpolation, universal lightgun tracking via the Omni Track service, save states with full audio and clock rollback, and the themed launcher with artwork and playtime tracking.
One install. One config format. One enhancement layer. Regardless of which execution strategy a game uses under the hood, the experience from the user's side is always the same.
05 / Retro Arcade and Beyond
Not Just Modern Arcade. Every Arcade Game Ever Made.
Ultra Loader does not stop at modern arcade hardware. It is also built to run the full history of retro arcade gaming through clean room libretro cores, custom built emulation modules, and first of their kind technical achievements that no other loader has attempted.
Through its integrated libretro core system, Ultra Loader supports classic arcade systems alongside modern ones, all from a single interface, all with the same universal enhancement layer. CPS1, CPS2, CPS3, Neo Geo, PGM, System 16, Atomiswave, and hundreds more retro systems run side by side with modern arcade boards, upscaled, with lightgun support, and with save states.
Ultra Loader contains the world's first PS3 libretro core, built on a forked version of RPCS3. This is a first that no other software has ever achieved.
What this means in practice is significant. Frontends like RetroArch and other libretro compatible launchers can now load PS3 games without any RPCS3 installation, without firmware setup, and without the hours of configuration that PS3 emulation has historically required. Ultra Loader handles all of that automatically. Load your PS3 ROM, press play.
Previously, playing a PS3 game on PC meant installing RPCS3, downloading firmware separately, configuring the emulator, troubleshooting per game settings, and hoping it worked. With Ultra Loader's PS3 core, that entire barrier disappears. The runtime configures itself. The user just plays.
- World's first PS3 libretro core. Built on a forked RPCS3. Compatible with RetroArch and any libretro frontend. No install, no setup, no firmware hunting.
- Full PS3 library compatibility goal. We are actively working toward supporting the complete PS3 catalog. This is ongoing work, and compatibility will improve with every update.
- Clean room custom cores. Ultra Viper (Konami Viper), Ultra Hikaru (Sega Hikaru), and Ultra Model 2 (Sega Model 2) are original clean room implementations built from public documentation and hardware captures only, with no closed source code ever referenced.
- The same enhancement layer, everywhere. 4K upscaling, frame generation, and lightgun support apply to retro cores the same way they apply to modern arcade boards. No exceptions, no per game setup.
The combination of modern arcade support, retro arcade support, clean room custom cores, and a first of its kind PS3 libretro core puts Ultra Loader in a category that no other tool occupies. This has never been done before, and we are just getting started.
06 / Honesty
Where We Are: Early Days
Early Stage ProjectWe want to be completely honest with you. Ultra Loader is still in its early stages.
TeknoParrot has been in development for over ten years. It has a large team, a large user base, and years of game specific patches, workarounds, and tons of community knowledge built up to itself. We do not have that yet. As it stands now, this project is one guy. One person who chose to stand up and do something about it. And look what has been achieved. Now think about what we could all achieve if the community gets involved and throws its support behind this free and open project? We could achieve wonders far beyond what the false gods have ever dreamed of. The number of games that work today in Ultra Loader is but a small fraction of what will eventually be supported, but as of right now, some games that work in TeknoParrot may not yet work in Ultra Loader.
That is the honest reality of where we are. We are not hiding it. Please see the Supported Games list for a full breakdown of all currently running games, and where we are in running them.
If you try a game and it does not work, that is expected at this stage. Please report it in the comments section of the Compatibility page, or send us a report by enabling advanced features and hitting “Generate Report”. Those are the official places where all reports and comments will be read. The form will allow anyone on the internet to enter comments about the games that may not be able to go inside a report, or if just not comfortable sending stuff directly to us through your PC. Please include the system name and game, along with what occurred in your comment to help us troubleshoot. Every bug report, every incompatibility, every crash log helps. That is how Ultra Loader gets better.
What we have built is the foundation: the runtime architecture, the in process core system, the universal enhancement layer, the near universal omni services. These things are working. Now we need time and community help to cover the full breadth of the library. We ask you to come join us.
And as Vegeta once said:
"People of the Earth, Lend us your power!"
But seriously, we need you, and we can't do it without you. This project is honest and open, and if we come together, we can change the narrative. This is the goal. This project was started by just one guy, but we plan to grow as we go along.
We are also building this the right way, which takes longer. Every core is clean room. Every patch is documented. Every feature is designed to last. We are not taking shortcuts that will cause problems five years from now. That means slower progress in the short term, but a much more solid and free open base for the long term. Please see the Why Use Ultra Loader? page to read more about how we feel about this.
07 / Call to Action
A Call to the Community
Ultra Loader is a community project. Not in the vague sense that it is open source and people can submit pull requests if they feel like it. We mean it in the literal sense: this project cannot reach its goals without the community.
Here is what we need, and what you can contribute at every skill level:
- Test games and report results. The single most useful thing any person can do is boot a game, note what happens, and file a report. You do not need to know how to code. You just need to run the game and tell us what you see.
- Share hardware knowledge. If you know how a specific arcade board works, what its JVS protocol looks like, what its dongle does, or how its network service is structured, that knowledge is invaluable. It may be the missing piece for supporting a whole family of games.
- Contribute board modules. Board modules are the per system plugins that handle I/O hooks and patches for a specific arcade platform. They are written in C and are source available on the site. If you know a board well, contributing or improving a module is the highest impact thing a developer can do.
- Spread The Word! Ultra Loader Works! The more people using Ultra Loader, the more testers, the more bug reports, and the more contributors. Telling a friend, posting in a community, or linking to this page all help.
- Stay Engaged and Be Patient! This is a long project. TeknoParrot took a decade to become what it is. Ultra Loader will take time too. Patience is itself a form of support.
Help With the Game Bring Up Work
Nearly 600 firmware modules are packaged and ready to be tested. One person cannot get through them all. This is one of the most valuable things you can do for the project right now, and it requires zero programming knowledge.
Enable Advanced Features in the loader, select a game, and press Hypothesis Engine. The engine will run the game repeatedly, try known fixes one at a time, and measure whether each attempt got further than the last. When it finishes, press Generate Report and then Send It. That is the whole process. A session that finds nothing is still worth sending: every dead end ruled out on real hardware narrows the problem and saves the next person from repeating the same six attempts. The engine also saves a copy of the report to your Desktop if you prefer to share it privately over Discord instead.
See the Technical Manual, Chapters 18 and 19, for a full walkthrough of the engine and the report format.
Support the Project Financially
Even if you don't know how to code, and tinkering or bring up work is not your thing, you can still financially support the project. Much of this work is done by way of acquiring hardware for systems that are not easily reverse engineered, and dumping hours upon hours of free time into coding and testing. Remember, we do not take code or source from any other project, and Ultra Loader will remain fully clean room and spotless for the community as much as possible. We chose to do things the hard way, and that, in the long run, is the right way. So any financial support you can render is a big help. While it is not required or mandatory to give anything financially, it is always appreciated. Ultra Loader is free and will stay free, forever, no matter what. No one will be asked to give what they cannot afford, and you really don't have to give anything at all to use Ultra Loader. But if you enjoy what we are building and want to show some appreciation or help, a small contribution via Patreon or Buy Me a Coffee helps more than you might think. The site, server, and domain all cost money to upkeep and maintain, and even a small donation helps with those ongoing costs.
But there is a harder category of cost that, despite being talked about, gets glossed over a lot: acquiring hardware. Certain arcade boards cannot be cracked, reverse engineered, or brought up without physically owning one. A Sega Lindbergh board, a RingEdge, a working NAOMI 2 setup, or a dongled Type X cabinet, all of these are not cheap. Some of them run into hundreds of dollars on a good day, and significantly more when the supply is thin. That hardware is not bought for the fun of it, and we are not collectors. That hardware was bought to sit on a bench, get probed, get reflashed, and sometimes even get destroyed in the process of understanding it well enough to write a module that works for everyone. The person doing that work is funding it personally, and every game that gets supported as a result is available to the entire community for free, forever. This is a nice gift to the community, but if that seems like an uneven arrangement for the sole person carrying it, it kinda is. Therefore, the hope is that the community helps carry some of that weight over time. Not every person can donate, we know, but collectively, if enough people contribute something small, it becomes possible to acquire even expensive hardware that would otherwise be out of reach, and bring up games that would otherwise stay broken or inaccessible indefinitely. Currently, there are two major boards the project has its eye on that would be a major benefit to the community, and we hope that with your help, we can acquire the proper hardware to get this done.
Now in terms of financial support, there is no cap or least amount you can give. If you wanna give $1, that's lovely and wonderful, and we deeply appreciate it. Truly. But if you wanna donate more, that's also great too! Donations will be used transparently and exclusively to cover ongoing costs, and also to secure real arcade hardware for testing, or to purchase tools to help us build new cores and improve existing modules. There will be no salaries for anyone. We will never exploit the community. All research goes back to the community for free. There will be no paywalled features. This is a PROMISE to the community, and we will keep it, no matter what, even if we go broke, lol. We will NEVER do what others have done to the home arcade gaming community. So honestly, even just your love and support and encouragement in pushing us on will be enough to fuel us. But we will be clear: whether no one donates, or we get 50, 100, or even 1000 donations or more, we will still work on Ultra Loader. We will not stop until all games are unlocked and fully playable for free by the community.
This is the goal and purpose of Ultra Loader. All arcade games playable for free. Patreon →Buy Me a Coffee →
Join the build
Whether you are a developer, a collector, a cabinet owner, or just someone who loves arcade games, there is a place for you in this project. Come find us.