To summarize the following post, we will be implementing the following rules:
3. No vibecoded projects (projects where the majority of the code was written by AI) or links to articles produced by AI.
4. If AI is used in a project, the post MUST contain a clear disclosure at the TOP of the post explaining to what extent AI was used, and where
5. No low-effort posts. If you are linking to a project, you should include a description of what the project is and some details about it.
6. No posts written by AI. All content in a post MUST be written by a human. If you are not comfortable writing in English, you MAY use an AI translation tool, but you MUST disclose that fact and/or provide the original language text in addition.
The current rules will also be slightly expanded and clarified, especially Rule 2 (Keep it on topic) to make it more clear what content is considered related to emulator development.
Survey Results
So now a little discussion of the results of our AI policy survey. The results for the first question can be seen below:
As you can see, there is a clear opposition to vibecoded projects, with over 60% of respondents voting to ban vibecoded projects in some way. The highest voted option was to "Ban all AI content entirely", receiving 25% of the total votes. However, at least 40% of respondents voted to allow some AI content, provided it was tagged or disclosed in some way, or to allow AI content provided the project wasn't deemed "low-effort".
As such, we've decided that the best option for now would be to ban all vibecoded projects, but allow projects that make some use of AI, provided that they are shown not to be "low-effort", and that the use of AI is clearly disclosed in the post.
As for the content of the posts themselves, the results here are somewhat simpler to analyze:
The results show that 69% of people would prefer that posts are written entirely by humans. However, of that 69%, around half would be fine if AI was used to simply translate the post, assuming the original content was written by a human.
As such, we are banning all posts written by AI, with an exception made to those who are using it to translate from their native language, provided that they disclose this fact and/or provide the original language text in the post to ensure it was written by a human.
We hope these changes will alleviate the issues people have been having with the content in this sub recently, but we are open to feedback, and you should feel free to leave your thoughts in the comments, or send feedback as mod mail. We will try our best to monitor the effects of the changes, and make further changes if it is necessary.
We've transitioned from Slack to Discord, for several reasons, the main one being that it needs a laughably expensive premium package to even keep all your past messages. With the free plan we only had access to like the last 5%, the others were lost.
I hadn't made this post before because I wanted to hold off until we transitioned all the archived messages from Slack, but I'm not sure when that will happen anymore. Unless someone wants to take up the job of making a transition Discord bot, that is (there is a way to get all the message data from Slack - if we have the bot I can figure it out). PM me for details if you're interested in making the bot.
AI disclaimer: AI was used only for debugging and disassembly, no AI generated code was used ever, and no agentic code as well
Hello everyone, today I wanted to showcase my GBC emulator that I derived from my earlier GB implementation: https://github.com/atifcodesalot/hazelnut-gb-emu. It was a fun (and buggy) experience. The pypy runtime gracefully shouldered the double speed mode! It is also backwards compatible with the GameBoy. Did you know that the DMG compatibility mode introduces actual three new palettes for the original DMG games? Anyways it currently supports MBC 1, 2, 3 and 5. I have no idea how to implement MBC7 for the Kirby Tilt 'n' Tumble đ not because of the EEPROM but also the accelerometer emulation. Also, still working on the sound! I also plan on implementing serial functions for LAN play (hopefully). What do you think? Would love to discuss technical stuff and implementation details! Enjoy. Oh, and don't forget to clone the repo and play some stuff yourself I recommend Pokemon Yellow
Hello, I have been working on a Game Boy emulator in C for about 3 months now. This was my first largescale project in C, as before I did all my projects in C++ and really enjoy C++, specifically for graphics which is my other interest. However, having just graduated college and being more practical, my other passion is low level systems/computer architecture/embedded systems (I kind of lump them all together). Thinking that an emulator would be a good project, and deciding C would be a good language to do it in as I have a bit of exp (not near as much as C++) and is more useful in embedded which is a more practical career field than graphics and another one of my interests, i hit the ground running.
for about a month or 2 i did nothing but code on this emulator. Getting the instructions to execute correctly was my main thing at first, then setting up the bus, connecting the CPU and the Bus, and once I passed all of Blargg's test roms for almost all CPU instructions, I switched gears to the timers and interrupts so that I could pass test 02-interrupts, the only one that wasnt passing (because its timers and interrupts).
However, having feeling very accomplished already, I decided to take 2 weeks off before Halloween to play resident evil and chill and watch horror movies. The day after halloween I went to work and on my lunch break opened up my laptop to do some coding. But I just couldn't get anywhere! I was trying to remember what all my code was, and I guess I am just so used to programming in C++ where its easier to structure code with classes that I was just lost, even though my code honestly isn't that bad ( i dont think). Same thing the next day, and the next. 4 weeks later and I just cannot get anything done now and I have completely lost my momentum. I dont know if I am just really bad at structuring code in C or if this is normal in C, or if maybe im just at a very difficult part in the emulator (failing on HALT), but I have lost any and all momentum.
If anyone has any tips on how to prevent burnout or just how to do better with my structure in general, please let me know because I feel like im losing my mind.
Earlier this year, I developed an instruction-level accurate MOS 6502 CPU emulator in C# called Velutia as a learning project. A few months ago, I decided to use it as the basis for Elppa, an Apple I emulator.
Using Blazor WebAssembly for the front-end, Elppa is hosted on Azure Static Web Apps and supports both desktop and mobile. It comes pre-loaded with some games, and you can also write your own programs in either Integer BASIC or machine code.
Hi! This is DevilutionX (the open-source Diablo engine) ported to the N64 with kestrel64-sdk, a bare-metal SDK I'm writing from scratch (own RSP microcode, no libultra/libdragon).
Filmed off the TV on a stock N64 + Expansion Pak, booting from a flashcart. Tristram, the cathedral and the first fights, with music and sound.
It's work in progress. No ROMs or game data are distributed: you need your own copy of Diablo.
Really starting to make progress, this is an emulated 68000 with virtual keyboard, block device, and video renderer. It boots into a bios using picoLibC and littleFS support, the bios has a very crude cli which can execute re-locatable binaries loaded into the heap
I need to tidy a few loose ends before it goes on codeberg...
I've been building an emulator for Casio's graphing calculator add-ins (fx-CG50/CG10/CG20 colour models and the monochrome fx-9860G family). It doesn't boot the calculator's OS. It runs the add-in's SH4AL-DSP code on an interpreter and handles two kinds of add-ins:
OS-based add-ins (PrizmSDK / libfxcg). These call the OS by jumping to 0x80020070 with a syscall number in r0. The emulator catches that jump and runs the syscall on the host instead. 193 of the 273 syscalls known to libfxcg are implemented so far.
gint add-ins. gint is the unikernel most modern add-ins are built on, and it takes over the hardware, so HLE doesn't help there. For those, the emulator models the parts of the SH7305 that gint drives: interrupt controller, timers, RTC, DMA, key scan interface, clock registers, exceptions and the R61524 display controller. The monochrome models use the same SH7305 with a 128Ă64 T6K11 display, and gint's grey engine shows its four shades.
Some parts I enjoyed:
Fonts without shipping Casio's code. You can load a dump of your own calculator's OS. The OS's glyph lookup syscalls (0x01E8-0x01EB) then run on a private CPU against that dump to find each character's bitmap, so text looks exactly as it does on the calculator, whatever the OS version.
Sound. Add-ins make sound by toggling the serial port's TX pin on the 2.5 mm link jack. The emulator plays that pin on your speakers or writes it to a .wav.
Live screen from real hardware. Over USB, it shows a real calculator's screen (Screen Receiver mode, using the protocol Cahute documented).
Tooling. Hot reload on rebuild, headless key scripts, GIF recording. The demo GIFs in the README were recorded headless from scripts.
I've spent almost a year to build this CHIP-8 Handheld Game Console.
As for the emulator itself, I made it on my own. It's written in C. I've integrated it into the firmware.
I made everything else on my own, including the electronics, enclosure, firmware, website, etc.
AFAIK, this is the most well-polished, production-ready CHIP-8 Handheld Game Console ever published as of the time of writing. And it's fully open source!
Feature:
Fully Compatibility with VIP and SuperCHIP instructions
Partial support for XO-CHIP (4K memory, monochrome only)
Up to 90 instructions/frame
Game storage on TF card (Supports FAT16/FAT32, 8.3 filename)
White labeling support (enclosure label, boot screen, user manual graphic, etc.)
Optimized for small scale production (10~50 units per batch)
This is a hobbyist project. I mainly intend to sell in small scale to fellow Toki Pona speakers and other friends I've got. I'm not sure if there's even a demand for the mass public. If you're interested tho, please fill in the Ordering Form here: https://ilomusi8.sadale.net/en/order . The estimated price is US$30~60 plus shipping.
Alternatively you can build a unit on your own. The design is fully open source. Please visit the Github page for more info.
Nell Arco di due mesi oltre al emulatore del gameboy o finito oggi 2 emulatori piu importanti quello del nes âPyNES-Winâ E Intel 8088 âWinInt8088â. Per il nes mi sono ispirato a NesEmupy gli o copiato la parte dell inserimento della rom e i dati che stanno venendo mandati. Nel Intel 8088 invece mi sono ispirato a PyPc il codice o fstto tutto io la logica invefe lho presa da lui e o copiato 2 dei file piu importanti telnet e vnc li o copiato adattai al mio codice e mi servivano per far vedere quello che succedeva nel emulatore senza andare a casaccio
I have come close to completing my CHIP-8 interpreter. I set out with the goal of completing a project, since I have been plagued with the inability to do so for years. I was hoping to garner some feedback about design, C language use, or anything else you would like to see implemented.
During this project, I finally made the decision to be done with AI for personal use. In the beginning I used it lightly to ask questions when I got stuck, but I felt it was taking away from the experience of building something all by myself. All of the code is hand-written by me.
*AI tools are used only inside of Xcode for automated testing. All code is written by humans, reviewed by those same humans, and presented for final approval to a very picky chihuahua named Pepper.
Consoles is an App Store approved (JIT-less) multi-emulator for macOS, iOS, tvOS, and visionOS. It syncs over iCloud across your Apple devices and allows you to play your favorite classic games on Mac and immediately pick them up on your iPhone.
In Consoles 2.0 (Beta), GameCube is very playable on the 7-year old A12 Apple TV and near-perfect on A15 & A19 Apple TVs. Likewise Wii is very playable on A15 Apple TV and will be near-perfect on A19 TV.
Supported Systems:Â
Nintendo: NES, Famicom Disk System, Super NES, Nintendo 64, GameCube, Wii, Virtual Boy, Game Boy, Game Boy Color, Game Boy Advance, Nintendo DS, Nintendo 3DS, PokĂŠmon mini
Sega: SG-1000, Master System, Genesis, Sega CD, 32X, Saturn, Game Gear