[HN Gopher] Show HN: Game Bub - open-source FPGA retro emulation...
       ___________________________________________________________________
        
       Show HN: Game Bub - open-source FPGA retro emulation handheld
        
       Hey HN,  Over the past ~1.5 years, I built an open-source FPGA
       retro emulation handheld that can play Game Boy, Game Boy Color,
       and Game Boy Advance cartridges. To my knowledge, there isn't an
       existing open-source FPGA emulator that can play physical
       cartridges like this.  One of my main goals was to do all of the
       pieces myself, and be able to understand every component of it, so
       I designed my own PCB, wrote the firmware, wrote a Game Boy and
       Game Boy Advance emulator for the FPGA (using the Chisel HDL), and
       designed a 3D-printed case.  I detailed the design and development
       process in the linked post. It's quite long, but there are a lot of
       pictures and videos.  Code and design files available on GitHub:
       https://github.com/elipsitz/gamebub, and an overview of the
       architecture:
       https://github.com/elipsitz/gamebub/blob/handheld/docs/archi...
        
       Author : elipsitz
       Score  : 144 points
       Date   : 2025-02-12 17:11 UTC (5 hours ago)
        
 (HTM) web link (eli.lipsitz.net)
 (TXT) w3m dump (eli.lipsitz.net)
        
       | giancarlostoro wrote:
       | If Nintendo wouldn't sue you for selling these, I'd say shut up
       | and take my money. I do wonder if they'll definitely try to sue?
       | Its really a shame, I never thought I'd see a project like this
       | in my lifetime in all honesty. I would love to have something
       | that lets me just keep playing my physical gameboy games
       | indefinitely, so even if a truck crushes my gameboy, its nice
       | knowing I can always print a new one.
       | 
       | I would love to see this done with the Super Nintendo.
        
         | evanwalsh wrote:
         | You're literally describing a product and a company that
         | already exists (Analogue Super Nt:
         | https://en.wikipedia.org/wiki/Super_Nt)
        
           | bsimpson wrote:
           | I've never paid that much attention to retro hardware - I
           | still have a lot of the originals in my parents' garage.
           | 
           | I just moved, which gave me an opportunity to give all the
           | old Rock Band instruments that were too loud for my last
           | apartment a fresh try. It's disappointing how bad RCA-era
           | systems like the Wii looks on a 4K OLED. The upscaling is
           | blurry as shit.
           | 
           | I've been trying to get all my songs imported into YARG (an
           | open source Rock Band clone), but if I can't get that
           | working, maybe I should get a scanline generator. (It applies
           | a filter to the video to replicate the look of a CRT.)
        
             | skyyler wrote:
             | You can get better video output from the Wii than RCA. It
             | won't be 4K but it will be much sharper:
             | 
             | https://electron-shepherd.com/products/electronwarp
             | 
             | There was also an official component cable which would look
             | much nicer than the composite that the Wii comes with. But
             | your 4K tv almost definitely don't have component input.
        
               | bsimpson wrote:
               | Thanks for the tip!
        
         | Shared404 wrote:
         | This is an open source analogue pocket.
        
       | wwwtyro wrote:
       | I love the idea of open source hardware, but one issue I struggle
       | with is - what happens when one or more components go out of
       | production?
       | 
       | I suppose one solution is that the maintainers could update their
       | component list (which might involve more than one component
       | because of compatibility issues?). But what if I'm in the middle
       | of purchasing the components only to discover I can't get them
       | all? Maybe the maintainers could sell component kits? That might
       | be a nice way to fund their work. Not sure if that would run into
       | issues with IP laws, though.
        
         | elipsitz wrote:
         | Yep, that's definitely a concern with hardware projects. I
         | guess mass produced hardware doesn't run into the problem as
         | much because there's funding for upfront bulk component
         | purchases.
         | 
         | At least with open source hardware you could theoretically
         | modify the hardware to use an alternative component, even if
         | it's no longer commercially viable.
         | 
         | For a lot of open source projects you can pretty much just
         | source everything from DigiKey or Mouser, so you can buy them
         | all atomically.
        
           | Joel_Mckay wrote:
           | "mass produced hardware doesn't run into the problem"
           | 
           | Happens all the time, as a production model may take a long
           | time to make it through development and lab certification.
           | 
           | In general, large firms will try to warehouse spools for some
           | bespoke design, but the 3 year contact-oxidation garbage-
           | clock starts the second the component spool/tray leaves the
           | manufacturer.
           | 
           | Thus, one may try to mitigate supply chain instability, but
           | in the end you are still just better off avoiding unicorn
           | parts in your work to begin with... Longer chip lot runs with
           | multiple suppliers having identical packages is usually
           | safer. YMMV =3
        
       | agg23 wrote:
       | Very nice. I'm always happy to see new FPGA implementations of
       | retro computing hardware. I've wanted to try Chisel, but have
       | never gotten around to it.
        
       | ConanRus wrote:
       | Why only GB/GBA? Mister FPGA support lot's of cores which can use
       | the same Screen and controls: NES, SNES, various Sega consoles,
       | C64, MSX etc.
       | 
       | And any cheap Chinese retro-console of the same sort support even
       | more of them. So from a practical standpoint I don't see any
       | advantage of this (no doubt cool) project.
        
         | elipsitz wrote:
         | This main distinguishing feature of this project is that it
         | supports physical cartridges, whereas MiSTer and almost every
         | other emulation handheld doesn't.
         | 
         | The FPGA cores here are written from scratch by me with
         | hardware support in mind, and it's quite a bit of work! Plus,
         | SNES cartridges don't exactly fit in a handheld :)
        
           | skyyler wrote:
           | >SNES cartridges don't exactly fit in a handheld :)
           | 
           | Surely, you've heard of the Supaboy.
           | 
           | I jest, this project looks great! After looking over the
           | build instructions, it seems like this might be a good reason
           | to finally make an account with JLCPCB.
        
           | ConanRus wrote:
           | this is very impressive. all i say is you might port some of
           | the Mister cores as well, if only for Roms support.
           | 
           | Portable FPGA retro console would be great.
        
       | bsimpson wrote:
       | Designing your own boards and writing the emulator is super
       | impressive! I like the clear case too! :)
       | 
       | It's a good week for homebrew handhelds. Someone posted a cool
       | one on reddit yesterday built with a Raspberry Pi:
       | 
       | https://old.reddit.com/r/Handhelds/comments/1in0svx/my_pi_5_...
        
       | ecshafer wrote:
       | I don't really know if this is a stupid idea or not, I don't
       | really have hardware experience. But the older systems, say NES,
       | SNES, Genesis etc are pretty simple systems. Patents also have a
       | lifetime. Why aren't we getting recreations of the hardware via a
       | SOC sold that near-perfectly emulates the system? The FPGA
       | projects are as close as I see this happening, but FPGAs are
       | pretty expensive I imagine compared to some 40 year old cpu
       | design and 1kb of ram.
        
         | nemomarx wrote:
         | I believe NES patents might be finally all expired and off this
         | year, but the SNES is probably covered for a little longer.
         | Reverse engineering emulators and fpgas has been safer legally
         | speaking for most of the last few decades.
        
           | philipkglass wrote:
           | Patents last 20 years:
           | 
           | https://en.wikipedia.org/wiki/Term_of_patent
           | 
           | The SNES came out in 1990:
           | 
           | https://en.wikipedia.org/wiki/Super_Nintendo_Entertainment_S.
           | ..
           | 
           | Every patent on the original SNES should have expired by
           | 2010.
        
         | elipsitz wrote:
         | I imagine there's a huge difference, legally, with black-box
         | reverse engineering and then creating a very similar design on
         | an FPGA (what I did here), and actually fully decapping the
         | chip and cloning the gates.
         | 
         | Plus FPGAs add a lot of flexibility (e.g. multiple systems,
         | enhancements), and they're really not _that_ expensive.
         | Especially in relatively low volumes compared to an ASIC.
        
         | anfractuosity wrote:
         | There's a Gameboy clone made by kongfeng that seems kind of
         | like this, with its own chip. I'd love to know more about how
         | they created it.
        
         | opencl wrote:
         | It's been done before. Lots of 90s bootleg consoles used clones
         | of the Famicom/NES chips, though they weren't particularly
         | accurate clones. The Commodore 64 Direct-To-TV of all things
         | had a custom ASIC made for it in 2004.
         | 
         | I think these days FPGAs have just gotten cheap enough that the
         | economics of making custom chips doesn't make much sense for
         | the volumes these kinds of products tend to sell.
        
         | goosedragons wrote:
         | We do, sort of. There are ASIC based clones of the NES, SNES,
         | Genesis, GBA and GBC. Hyperkin for example sells a few, the
         | SupaRetron HD is an ASIC based SNES clone, the MegaRetron HD is
         | an ASIC based Genesis clone. Some Chinese companies have Game
         | Boy Clones (e.g., GB Boy Colour). They aren't _perfect_ because
         | they aren 't perfect 1:1 reverse engineered chips and nobody
         | seems willing to spend the money to fix all the bugs, but they
         | can be pretty close. The main benefit of the FPGA systems is
         | that bugs can be fixed and they can do more than the real
         | systems if need be like scan line emulation.
        
       | ogoffart wrote:
       | Awesome project! Really cool to see that the UI is built with
       | Rust and Slint, the GUI framework I'm working on.
       | https://github.com/slint-ui/slint
        
         | elipsitz wrote:
         | Thanks! Slint has been great to work with :)
        
       | sitkack wrote:
       | What is the total cost for a pcb populated with components?
       | Probably around 60-70 qty 100?
       | 
       | I appreciate the blog post and the writeup, it might be nice to
       | include it in the repo.
       | 
       | I have been toying with a similar design, with many of the same
       | choices. Although for the system controller pair, I'd go with
       | RP2350B and ESP32-C61 (I think). It would be nice if there was an
       | optional chip and pad layout to support legacy or classic BT.
       | 
       | Another option would be to have a USB port and support something
       | like https://www.8bitdo.com/usb-wireless-adapter-2/ to enable
       | legacy controllers.
       | 
       | It looks like supporting legacy BT while noble, could be a
       | project killing sidequest (if you didn't already have it done!)
       | Another out, would be exposing an SPI connection internally so
       | someone could hack in a controller of their choice.
        
         | elipsitz wrote:
         | Populated PCB in quantity 100 would probably be 60-70 USD,
         | yeah. Maybe a bit less, it really depends on how much you can
         | buy the FPGAs for.
         | 
         | I really did want to switch to the RP2350B, but it's (still)
         | not available to buy. There's also the (unreleased) Raspberry
         | Pi RM2 module which would help with Bluetooth Classic and LE
         | support.
         | 
         | On Game Bub, I do expose a Pmod interface (4 data wires)
         | connected to the FPGA, so that actually is an option here too.
        
       | cibyr wrote:
       | Very cool project, and a fantastic write-up! The timelapse videos
       | of the PCB layouts are particularly brilliant.
        
       | LeoPanthera wrote:
       | I have an Analogue Pocket, which works really well, but the fact
       | that it uses an FPGA is essentially meaningless to me. Is there
       | really any significant difference compared to software emulation?
       | 
       | I know _how_ they 're different, I understand the mechanics of
       | it, I just don't understand why it's not possible to make a
       | software emulation that is as good as FPGA emulation. Or maybe it
       | is possible. I always felt like doing it in software would be a
       | lot more flexible.
        
         | elipsitz wrote:
         | I agree, and wrote a rant about this as part of the post:
         | https://eli.lipsitz.net/posts/introducing-gamebub/#a-brief-r...
         | 
         | IMO: the only real advantage is that it allows you to meet the
         | precise timing needed to interface with physical hardware, like
         | cartridges and other consoles (with link cables).
         | 
         | I think they're also really fun to write, because you think
         | more like a hardware designer than a software engineer.
        
           | pipes wrote:
           | Am I correct in thinking that FPGAs have an advantage over
           | software emulators when it comes to latency? In particular
           | the latency from the host operating system before input has
           | even been received by the software emulator? I.e. FPGAs don't
           | have a host OS and will have the same latency as original
           | hardware?
           | 
           | This is very much a genuine question, I just want to know if
           | my intuition about this is right or wrong.
           | 
           | Your project looks amazing btw!
        
             | elipsitz wrote:
             | Yeah, that's another advantage. Theoretically you can get
             | down to <1 frame of input latency with an FPGA. I haven't
             | found the latency on a software GBA emulator running on a
             | computer to be noticeable, but some people might find this
             | to be another advantage.
             | 
             | I think with a dedicated emulation handheld (non-FPGA), you
             | could probably pull some tricks to bring down the latency
             | though.
        
         | Y_Y wrote:
         | Consider that you can emulate an FPGA on a CPU, just much
         | slower.
        
       | ge96 wrote:
       | Damn what a great post, I hope to have similar skills one day
       | (specifically about designing my own PCB and working with FPGAs)
       | 
       | Anyway feedback for the site, I think it could help if the active
       | tab on the index is colored vs. bold
        
         | elipsitz wrote:
         | Thanks for the feedback! Do you mean have it be an entirely
         | different color (e.g. blue), or dim the other inactive headers
         | to make the active one stand out more?
        
           | ge96 wrote:
           | Yeah a different color so it immediately sticks out it could
           | even be grey/dark.
        
       | nubinetwork wrote:
       | Can you do one for Game Gear?
        
       | noxa wrote:
       | Fantastic project and great writeup! The screen tradeoff with
       | needing triple buffering but getting integer scaling was
       | interesting to hear about - any feeling as to whether it adds
       | human-noticeable latency vs. original hardware?
        
         | elipsitz wrote:
         | Great question!
         | 
         | In the absolute worst case (drawing an object at the very top
         | of the screen, and the LCD output for the next frame started
         | right before the current one finished), buffering adds a 2
         | frame delay (33 milliseconds). Probably noticeable for some
         | people, but this worst case is uncommon.
         | 
         | Average case I would expect ~0.5 to 1 frame delay, so 8 to 16
         | milliseconds. Probably not really noticeable.
        
       | dinkumthinkum wrote:
       | This is a very nice project and write-up. I think it's a perfect
       | case for Show HN.
        
       | ThrowawayTestr wrote:
       | How many retro emulation handheld do we really need? Are there
       | people out there seriously playing retro games for many hours at
       | a time?
        
       ___________________________________________________________________
       (page generated 2025-02-12 23:00 UTC)