r/EmuDev • • Aug 05 '25

I made a GBA emulator and debugger over a year and it's able to run most games (TM)!

958 Upvotes

Just wanted to share my progress on my GameBoy Advance emulator/debugger (dev branch for latest version)! I started this project about a year ago (I did have some smaller breaks here and there) after doing GameGear and GameBoy (Color). Over time it evolved into a pretty big project and I even made a "screenshot collector" to keep up with progress/compatibility and a fairly sophisticated debugger!

There's still a few things to tackle, but it's able to run all of my childhood games along with most games I've tried - some include Wario Land 4, the Harry Potter games as well as Scooby Doo titles. A current snapshot of all screenshots can be found at https://ayyadvance.layle.dev :) It mirrors the master branch and is therefore not 100% up to date.

The emulator also supports advanced scripting (using Rhai with access to memory and CPU state along with supporting MMIO and CPU breakpoints. This can come in handy to log BIOS calls and create game specific patches!

The emulator is nowhere near perfect and still lacks some crucial features like proper cycle accuracy and better open-bus behavior, but I'm nonetheless very happy with the progress I was able to make! That said, I will revisit the project at a later time - it's time for me to give in to my ADHD and try a 3D console, PSX to be specific; or at least succumb to my urge to do SNES :-)

Big thank you to the whole EmuDev community for all the help they provided along the way! <3


r/EmuDev • • Sep 14 '26 This Thanks Bravo

Nobody cares about your AI slop.

905 Upvotes

Literally nobody. Not a single soul.

This sub is for people making emulators to share their work on them. It's for people making emulators to look at others' work, take notes and see how they went about stuff.

What does your ai slop bring to the table? What's the point? What's the point in using Claude to build something not a single soul will use? "I made an AI-built GB emulator!": everyone uses mGBA. "I built a Playstation emulator with the help of ai!": everyone uses duckstation. "I used AI to decomp X game for Y platform!!": literally no one uses decomps, they just download an emulator and a rom.

So I ask again: what do you bring to this community? Certainly not code I want to read, nor interesting things I want to gush over. This server's only purpose is to show off cool stuff you've done yourself. The big names are already well established. What does it bring to the table if you remove the "you've done yourself" part of the equation? You're just showing stuff. Stuff no one will bother to read about. Stuff no one will ever use. Stuff you will abandon because it wasn't made out of love.

What was it made out of, actually? Did you want validation? money? fame? You aren't getting anything here. Your posts serve absolutely. no. purpose. whatsoever. If you didn't post here, nothing would have changed, except it wouldn't have made me a tiny bit angrier at the posers.

Because that's what you all are. Posers. You aren't "developers", "coders" nor "engineers". You're fucking posers wanting to seem cool to other posers. When will your size contest end?? Go do that in private!! No one fucking cares about your barely working GB emulator you spent 5h prompting to get.

Anyways rant over kind of a meta post I'm just so fucking washed out, every time I come here it's fucking ai slop all day every day, where are the days of actual humans. They don't even give you the dignity of talking to you as humans, they get their statistical word generation machine made up of mountains of stolen content to talk to you instead, to present "their" project that ""they"" """built"""

Half of the time it's also just not that impressive and often doesn't work that well

This will probably be a drop in the ocean and it might be removed by the mod, which I'd honestly very much understand, but if you're a vibecoder reading this, fuck off from my community, if you're an "ai-powered engineer", try using your brain instead, and if you're actually a developer, please continue whatever you're making currently!


r/EmuDev • • Apr 18 '21

CHIP-8 I made a CHIP-8 Emulator in the logic circuit simulator Logisim.

542 Upvotes

r/EmuDev • • Sep 04 '26

Switch suyu v0.04 is out (final version)

532 Upvotes

[NOTE: it seems that the automated builds on github seem to be failing to work for some users, I would suggest trying to manually build, if it still fails after that, check you have built the program correctly, or check that there isn't anything wrong with your device. I can assure, after testing for months on Libretro, Windows, Linux and Android, that it works fine.

Due to the rushed release (I was trying to aim for July but got delayed to September, and ideally if not for the fact it had missed a deadline already, it would have been delayed to October or even later) the emulator will occasionally crash, this happened rarely for me but seems far more prevalent for other users, probably due to what I've said in the above paragraph]

Hello, I was a bit late as usual, but after quite a bit of work, it's been achieved.

suyu has been updated, for the last time.

What's been changed:

  • Pulled most emulation improvements from Eden into the emulator

  • suyu can now run most 2026 Switch software and firmware

  • There is now a build for Libretro, meaning suyu can be ran inside programs like Retroarch

  • User's can sync their Virtual Game Card Library to suyu to load in their Switch game library (you still need to provide roms, however)

  • UI has been completely redesigned to be closer to suyu's concept artwork

  • Miiverse-styled Reddit frontend as a social bar.

  • Multiplayer functionality has been restored.

  • Builds for FreeBSD

  • Separate UI Layouts for Gamers, Modders and Switch Game Developers (semi-stubbed in some areas)

  • Stubs for other features that didnt make the cut (including support for other console platforms via libretro, which now just launches retroarch for you, and some form of steam integration)

and probably the most exciting part of all: game recompilation.

Users can now export the CPU code of their games into recompiled C, which could be used to aid porting or reverse engineering of Switch games. suyu also allows user's to output games as standalone semi-native PC applications (I say semi as much of the GPU side is still using suyu's hle backend). It does also fall back to JIT/Dynramic alot, as it is a very WIP sort of job, but it does work, it does spit out source if you tell it to, and while messy it does compile.

Anyways, I understand I am a bit late since I said this would be done in July, but I can say that suyu (as purely an emulator), was made operational again at that point, but I wanted to leave with a bit extra. I saw it as pointless to try and keep up or compete with Eden, especially if so many improvements were directly imported from them, and more so if this is going to be the last suyu update (under me at least). So I took a different approach, which was to improve everything else.

suyu is now more so designed as a gaming launcher and as a multi-use tool to complement Eden's work, rather than trying to just reskin or convergently develop the same features as Eden.

For Libretro, put your Switch keys here: <RetroArch system dir>\suyu\keys\prod.keys (find your system dir under Settings > Directory > System/BIOS, usually just RetroArch\system)

(note: I originally said that I would be removing the decryption logic to avoid DMCA takedowns, meaning suyu would have to run homebrew or pre-decrypted games, however after evaluating, it seems suyu's use of decryption does not constitute a DMCA takedown and that Nintendo has seemingly been misusing the DMCA. For that reason, suyu will continue to decrypt games as it always has, but due to the short life left in this project and my own privacy, I will not fight any takedowns, at least not any incredibly complicated ones)

So, what now? (and some context)

The long and short of it is, nothing.

This is the last update, afterwards, I will be archiving the organisation, deleting this account, and moving on, I want a break and I no longer want to be associated with suyu for the foreseeable future. This project was started naively by a team of over-ambitious and in some cases underage developers, and led to drama between all the different forks such as Torzu and Sudachi. After the initial suyu fallout, the development team left, and it was just the dude that started it and a few fans in an backup chat, I had been keeping an eye on the project for a while and curiously tracking the development, with no prior or legitimate interest in Nintendo Switch emulation.

I had been asked by the fans in that place to help bring the project back, and I promised them I would, and after some time, I've fulfilled that promise.

[Skip to where it says continue if you dont want to listen to me yap]

I originally brought in some new interested developers, but time and again, the og members still onboard were always falling in and out of communication, many of the new devs did the same as they couldnt really work on a project if the project wasnt actively accepting the help, but I continued to try and help set them up on it, organising the project structure, making sure they could directly communicate with eachother, until the week Ryujinx died.

On that week, the project's og leadership and the original devs (which had mostly vowed to not touch switch emulation and had even alleged that yuzu (and iirc Ryujinx as well) were in-part developed using Nintendo SDK code) both began to start working on Switch emulation again, the og devs working on a now gone fork of ryujinx (many are now eden contributors), and the og leadership planning to revive suyu, but in doing so, decided to cut communication with all of the new devs without even bringing them on yet, and being quite particularly nasty to me.

I didn't care much, I have thick skin, and I was (at that point) glad to be rid of the project, but I was still stuck with suyu stuff nonetheless and eventually, everything fell back to me again, as the leadership decided that it wasn't trendy anymore. So, in order to keep this promise, I moved the project back onto github in an ice'd state until I could pass it on to a dev or a team that had legitimate skills and interest. And when I was getting round to moving on with my life, with a blank slate, I decided to finish the project and leave it in a good state.

So, now it's done.

I also want to make a request to any og developers or suyu people (e.g suyu's sub mods, og leadership etc): leave me in peace, please. I dont want to be mentioned, talked about, harassed, ridiculed or even complemented. I just want to disappear after this, if any of you have mentioned me anywhere in any posts or pages etc, please remove it. I've not asked anything of you before this. I've not harassed you, and I expect you not to do so to me either, after (or if) you read this post. You will not be hearing from me again.

[Continue]

So, I will be making a final permanently standing offer to any devs, if you can prove you can handle it well, this project is yours, the org, the repos, the private repos, everything. You have limited time to contact me directly, after this account is gone you will have to use github discussions, however that is for a limited time before the org is archived, the code will be free to fork, however, and any projects to revive suyu will be reviewed by me and the org will be transferred.

Anyways, the repo will be going live soon (in the next few hours or days), so keep your eyes peeled at https://github.com/suyu-emu

(Edit: it is live now, check the org out and see the repo!)

Thanks for the patience, and I hope this provides some usefulness or some fun to people, and I hope this ends things with suyu on a high note.

Cheers guys, have a good one.


r/EmuDev • • Jun 21 '25

What do you mean the CPU was *the* easiest part?

Post image
509 Upvotes

r/EmuDev • • Jun 22 '25

I just released my PlayStation 2 emulator!

491 Upvotes

Hi everyone, I'm Lycoder (also known as Allkern), after some 7-8 months of hard work, I've decided to release my PS2 emulator, Iris (GitHub), for anyone to try out! Builds are now available here for Windows, Linux and macOS, though macOS builds haven't been thoroughly tested and may not work.

After fixing a pretty massive bug in one of the DMA engines, a lot more games suddenly started booting and even getting in-game, and I had gotten requests to provide builds for people to report compatibility and bugs, so that's exactly what I'm doing right now.

It's been a wild run but I'm nowhere near done with Iris, this is only the first release of (hopefully) many! I still need to implement the IPU properly (which will fix FMV related crashes/hangs), but most other components have been at least preliminarily implemented.

Some of my medium/long-term plans for Iris include:

  • Writing JITs for the two main processors (EE and IOP)

  • Implementing a hardware-accelerated GS renderer

  • Implementing support for DEV9 (HDD, Ethernet, Flash) and MagicGate encryption for PSX DESR emulation

  • Supporting low-level USB emulation (GunCon, EyeToy, microphone input, keyboard and mouse support for Linux emulation, USB dongle support for PS2-based arcade systems, etc.)

  • MMU emulation (required for running Linux)

  • And much, much more!

Warning!

Please keep in mind that Iris is a work-in-progress emulator and there's still a long way to go until games are playable. A lot of games may boot to menus or even in-game, another huge chunk of games may do nothing at all, but even the games that do boot will most probably run at very abysmal framerates. The PlayStation 2 is a very complex and demanding console and until I actually implement a JIT and hardware renderer combo, Iris won't be able to run games at full speed.

Screenshots


r/EmuDev • • Dec 04 '24 Take My Silver

GB-RP2350 A Game Boy emulator for the Pi Pico 2 written in Rust

411 Upvotes

r/EmuDev • • Nov 01 '25

GB After a decade of professional programming... I'm now really learning real programming

Post image
408 Upvotes

r/EmuDev • • Sep 14 '26

I built an open-source NES emulator that turns 2D games into stereoscopic 3D scenes

399 Upvotes

I built PortalNES, an NES emulator in C#/Unity that converts background tiles and sprites into actual 3D geometry.

Tiles and sprites can be given individual depths and rendered as flat planes, boxes, or pixel-extruded shapes, producing real parallax instead of a post-processing depth effect.

On a normal PC, the webcam tracks the player’s head and changes the viewpoint as they move. It also supports red/cyan anaglyph stereoscopic 3D through Portalgraph.

The project includes a 6502 CPU, PPU, APU, save states, runtime 3D profile editing, and support for many common mappers. Standalone 2D and 3D Unity scenes are included and do not require the Portalgraph SDK.

Source (MIT):
https://github.com/vjroba/portal_nes

Demo/download:
https://portalgraph.itch.io/portal-nes


r/EmuDev • • Dec 20 '25

Ported my NES emulator to the 240MHz ESP32

395 Upvotes

This is my first ever ESP32 and embedded project. I bought the parts and learned how to solder for the first time. For three months, I've been building a handheld NES with an ESP32 from scratch.

While having already made my own NES emulator for Windows, I had to do a whole rewrite of the program to port and optimize it for the ESP32. This is written in C++ and is designed to bring classic NES games to the ESP32. This project focuses on performance, being able to run the emulator at native speeds and with full audio emulation implemented. Check out the project!

Here's the GitHub repository if you would like to build it yourself or just take a look!

Github Repository: https://github.com/Shim06/Anemoia-ESP32


r/EmuDev • • Dec 24 '25

Video Finally booted my first game on my ps1 emulator written in Rust!

382 Upvotes

I have been working on and off on this since July, took me a lot of time to get my first game booted because I am not very smart lol.

I have been learning rust alongside this project as well and its been very helpful.

wouldn't have been possible in the slightest without the massive help from the guys over at emudev discord! cheers!

link to repo: https://github.com/kaezrr/starpsx


r/EmuDev • • Nov 18 '19

I wrote a NES emulator in C++

Thumbnail
github.com
362 Upvotes

r/EmuDev • • Oct 02 '24

GB Finally! I made a GameBoyColor emulator

354 Upvotes

I’ve been working on it since May. Finally I can play Tetris now!

The audio part is way harder than I thought(obscure behaviors), but I finally made it through Blargg’s test. It still failed some test rom and only mbc1 is implemented. But the major problem is solved!

GitHub: https://github.com/kstardust/KameBoyColor


r/EmuDev • • Oct 10 '26

SkyEmu's no-AI codegen policy

327 Upvotes

After many months of thought SkyEmu has officially decided to adopt a no AI code policy.

As of right now all code in SkyEmu has been written by a human and we will not accept PRs of AI generated code.

We understand the utility in AI assisted development and still allow AI to be used for debug, code understanding, and other purposes that do not yield generated output into the repo.

We did this for a couple of reasons:

  • AI generated code review is generally substantially more challenging than code review of code authored by humans and has questionable copyright ownership.

  • We really want people to understand code that gets submitted to the emulator as many changes are interconnected. The knowledge of the changes made by AI tends to disappear when the context does. While human knowledge persists, even if an AI was used to teach the human how to make the changes.

  • Code quality standards of many projects have substantially reduced after the incorporation of broad scale AI usage from the two above issues.

  • Developers who wish to add functionality using AI tooling are generally very enthusiastic about the software and emulation development overall. However, they feel lost in the complexity of modern emulators. AI code generation robs them of the ability to learn how to make these changes and robs the community of the next generation of emulator developers. For this reason, we still allow AI to be used as a teaching aid for people who wish to contribute, but don't allow it to do all work for them, but instead encourage its use to help them navigate the complexities of the project so that they can grow their skills and are able to contribute themselves.

  • It has come to our attention that SkyEmu is one of the handful of large emulator projects in active development that does not have any AI generated code, and we would like to keep it as an option for usage by people who prefer non-AI generated SW.

We understand this may be controversial, but believe this is the best pragmatic action, given the needs of our development team and the wider community.


r/EmuDev • • Oct 25 '21

How I feel working on my PSX emulator and only being able to play Crash Bandicoot

Post image
327 Upvotes

r/EmuDev • • Mar 05 '20

GB Began with my second emulator project. Today I hit a milestone :D

326 Upvotes

r/EmuDev • • Sep 09 '25

Video A wild ps1 emulator appeared!

324 Upvotes

Been working on a ps1 emulator for a month or so. finally got it to boot the bios! Its written in Rust BTW :p
https://github.com/kaezrr/starpsx


r/EmuDev • • Mar 10 '22

GBA My Game Boy Advance emulator running Iridion II

318 Upvotes

r/EmuDev • • Mar 06 '25

Released my NES emulator made in Scratch 3.0

Thumbnail
gallery
316 Upvotes

r/EmuDev • • Mar 08 '26

Video nuPSX - a PlayStation 1 emulator in Zig that works in a browser

314 Upvotes

I've been working on a PlayStation 1 emulator, and it has finally reached a state where it can boot a number of popular titles (including Crash Bandicoot, Metal Gear Solid, Spyro the Dragon, Gran Turismo, Silent Hill and Final Fantasy VII).

The emulator supports both native and WASM targets and I managed to achieve a decent speed when running it in a web browser (which even works on my phone with a PS4 controller hooked up), so you can try it yourself without installation.

There is still a long way to go. Basically, none of the components are 100% complete or pass all tests, and there are known graphical and audio issues in some games. However, it is slowly getting there, and I'm and happy that I've gotten this far.

Huge thanks to the EmuDev community (both here and on Discord). I've learned a lot about topics I'd never normally touch, such as SIMD rasterization, cached interpreters, fastmem, and I'm digging into the JIT recompiler rabbit hole.

Links to the project page and the source code:

https://maxpoletaev.github.io/nupsx

https://github.com/maxpoletaev/nupsx


r/EmuDev • • May 11 '25

GB I wrote a Game Boy emulator in Rust

295 Upvotes

Hey everyone! I finished making my first emulator a few months ago and finally got around to posting it. Its a DMG Game Boy emulator written in Rust. It renders the tile map and tile data so you can see how they change as the game plays. It runs most games well, but it's fairly buggy with Pokemon and a few others. I developed it over the course of about 8 weeks.

It’s still not totally complete, it has some bugs and doesn’t support .gbc or audio, but I’m pretty satisfied with how much I got done.

Here are some resources I relied on heavily in case you’re thinking about working on a GB emulator:

Here’s the github repo: https://github.com/mmducasse/rust_gb_emu


r/EmuDev • • Mar 06 '25

My NES emulator written in Odin!

295 Upvotes

r/EmuDev • • Mar 19 '26

Pretty big milestone for my x86 PC emulator today... Windows NT 4.0 works!

Thumbnail
gallery
285 Upvotes

I've been trying to get any 32-bit Windows OS to boot for a year now lol.. finally! It still blue screens trying to boot from an ATA/IDE controller, but does work on SCSI which I'm happy with for now. The big blocker was my virtual 8086 mode handling was pretty messed up which NT relies on quite a bit. Fixed that and it boots!


r/EmuDev • • Jun 28 '21

Article Near, developer of BSNES and champion of EmuDev, has died.

Thumbnail
nintendolife.com
284 Upvotes