[HN Gopher] There oughta be a WiFi Game Boy cartridge
       ___________________________________________________________________
        
       There oughta be a WiFi Game Boy cartridge
        
       Author : CyberRabbi
       Score  : 374 points
       Date   : 2021-12-16 17:18 UTC (5 hours ago)
        
 (HTM) web link (there.oughta.be)
 (TXT) w3m dump (there.oughta.be)
        
       | bredren wrote:
       | The explainer video quality is so high, I'm impressed. For
       | example, at 3:49-is that a custom 3d animation simply for that
       | point in the narration?
        
       | VikingCoder wrote:
       | I'm very much reminded of "Reverse emulating the NES to give it
       | SUPER POWERS!" [1]
       | 
       | [1]: https://www.youtube.com/watch?v=ar9WRwCiSr0
        
       | aphroz wrote:
       | It reminds me the wifi modem I use for the Commodore 64
        
       | prytania wrote:
       | I've never felt more self-conscious of my skill set
        
       | aphroz wrote:
       | I am looking forward to see cloud gaming for the Game Boy!
        
       | acehw wrote:
       | What are the theoretical and effective max wifi speeds?
        
       | pineconewarrior wrote:
       | Amazing project and cool blog! What a great domain name, too.
       | 
       | Thanks for sharing!
        
         | cheschire wrote:
         | Indeed the entire URL is quite well done.
         | 
         | https://there.oughta.be/a/wifi-game-boy-cartridge
         | 
         | It would be neat (and terrible) if suggestions could be
         | submitted through error handling.
         | 
         | https://there.oughta.be/a/submission-page-for-ideas
        
       | tyingq wrote:
       | There are some similar efforts to add WiFi to old 8-bit
       | computers.
       | 
       | The TRS-IO is pretty neat. It bridges the wifi to an IO bus, and
       | provides both a "retro app store" program and a way to make samba
       | shares look like local drives.
       | 
       | https://github.com/apuder/TRS-IO
        
       | umvi wrote:
       | It seems a little like cheating to put modern microcontrollers
       | inside the cartridge that do all the heavy lifting. At what point
       | are you basically just using the game boy's screen connected to a
       | much more powerful external computer? It would be like me
       | creating a new "SNES game" with a raspberry pi stuffed inside the
       | cartridge with GPIOs mapped to the SNES cartridge interface and
       | saying "there oughta be a full 3d SNES game" but at that point
       | the SNES is doing very little processing compared to the pi's SoC
       | which is doing 100% of the 3d rendering.
       | 
       | All that said, this project is still pretty sweet and I enjoyed
       | the writeup.
        
         | agumonkey wrote:
         | True but as you hint, it's been done many times in the past.
         | Even the NES had audio bypass somehow, Castlevania has its own
         | DSP on the cartridge.
        
           | toast0 wrote:
           | To be pedantic, the Famicom had audio bypass, but the NES
           | really didn't (unless you hack around with the expansion
           | connector, which wasn't used for anything Nintendo approved
           | in the US)
        
             | agumonkey wrote:
             | Oh they removed it for the NES ? I thought it was
             | unaltered.
             | 
             | Good pedantism btw :)
        
               | toast0 wrote:
               | Yeah, the cartridge pinout is slightly different. The
               | famicom has a 60 pin connector and the NES has a 72 pin
               | connector, but ten pins go to the expansion port and four
               | pins are used for the license chip, so two pins were
               | lost, and those two pins were the audio out/in.
               | Castlevania (and some other games) has significantly
               | different audio for Japan vs the rest of the world.
               | 
               | There's a few different ways that people modify their NES
               | if they want to use cartridges with audio hardware, using
               | the (otherwise unused) expansion port pins.
        
               | agumonkey wrote:
               | Yeah I've seen some youtube vid about famicon audio chips
               | and it was insanely high fidelity for a tiny video game
               | console. Must be weird to play such games as a kid back
               | in the days.
        
         | [deleted]
        
         | lostgame wrote:
         | Many people here are mentioning the SNES, but actually, outside
         | of classic SNES games like Star Fox, Stunt Race FX, and Yoshi's
         | Island using co-processor chips, SEGA also produced what they
         | called the SVP chip for Virtua Racing on the Genesis.
         | 
         | Then we got the SEGA 32x - which was _literally_ dumping a
         | giant chain of extra chips onto the Genesis in order to do
         | things like primitive 3D and scaling.
         | 
         | Beyond the SNES as well, the NES also had a habit of packing in
         | small bits of extra hardware on their carts.
        
         | tenebrisalietum wrote:
         | You have protocol offload engines on modern NICs, what's wrong
         | with basically a "Wifi Offload Engine"?
         | 
         | > It would be like me creating a new "SNES game" with a
         | raspberry pi stuffed inside the cartridge with GPIOs mapped to
         | the SNES cartridge interface and saying "there oughta be a full
         | 3d SNES game" but at that point the SNES is doing very little
         | processing compared to the pi's SoC which is doing 100% of the
         | 3d rendering.
         | 
         | Oh you're gonna really hate this:
         | 
         | https://www.theverge.com/2020/12/16/22178922/snes-mod-ray-tr...
        
           | monocasa wrote:
           | And that's the point of these esp modules in the first place.
           | They were originally intended as sdio wifi modules to give
           | plug and play wifi support to various embedded systems.
        
             | GhettoComputers wrote:
             | From what I know, they were not for embedded systems, they
             | were the embedded systems. They are just powerful arduino
             | with wifi.
        
               | bityard wrote:
               | The first esp modules were originally marketed and sold
               | as simple serial ttl-to-wifi bridges, but it didn't take
               | hardware hackers long to discover they were hiding a lot
               | functionality underneath. It took some doing but
               | eventually espressif opened up their toolchain and
               | _that's_ when they became "powerful adruino with wifi."
        
               | GhettoComputers wrote:
               | They still are simple ttl-to-wifi bridges aren't they?
               | They just had more processing power, it needed to be
               | stronger than an arduino to run a web server and control
               | with wifi. I don't think it was hidden as much as
               | underutilized, like the linksys routers.
        
               | monocasa wrote:
               | The programmablity wasn't the initial selling point. They
               | were very much designed originally to be a shrink wrap
               | addon to another embedded system.
               | 
               | Most little single purpose ucontroller based products not
               | made by Broadcom have an SDK for writing code for the
               | device too, it just normally doesn't go anywhere.
               | Espressif just sort of won the lottery and an ecosystem
               | formed around them, but that wasn't their initial market
               | as it would be foolish to bet the company on that.
        
               | GhettoComputers wrote:
               | I didn't say they were sold as programmable/hackable.
               | They were used in many simple smart devices like bulbs
               | and power controllers already without any other
               | microcontrollers. It was pretty obvious that it was doing
               | all the work.
        
               | monocasa wrote:
               | Use cases where they are the only processor (and thus
               | necessitate use case specific programmablity like you're
               | saying) came later. That wasn't the intially planned
               | market.
        
               | GhettoComputers wrote:
               | It came before they were hackable. I have been following
               | it for years. It was fun seeing cheap Chinese smart
               | devices being exposed and each WiFi enabled one would
               | have an ESP8266 and only it aside from some SMD
               | capacitors and resistors. I'm not saying they were sold
               | as hackable. I'm saying they were deciphered easily as
               | the only microcontroller required for the smart devices.
        
               | monocasa wrote:
               | I'm including Chinese system integrators here, they just
               | figured out that these devices were hackable prior to the
               | western maker community. I have it under good authority
               | that those weren't espressif's original target market
               | either.
        
               | GhettoComputers wrote:
               | Not surprised, there's some very capable chips that
               | aren't fully utilized, I think a lot of smart watches
               | have a certain Nordic chip too. Know of any more ESP like
               | chips?
        
               | monocasa wrote:
               | Depends on what you mean by ESP like chips.
               | 
               | A ucontroller with way more compute and peripherals than
               | it need for it's task, with either no or shoddy
               | encryption on it's flash allowing you to write your own
               | code or binary patch the existing code with a little
               | elbow grease? That's most microcontrollers out there with
               | the exception of chips by Broadcom (no flash and the
               | patch RAM is already basically full fixing bugs in their
               | crappy code ROM) or Nordic (because of the ubiquitous use
               | of per device encrypted flash). Specific devices I've
               | worked on in that capacity though are all tied up in NDAs
               | with my employers though.
               | 
               | But what makes ESPs special is the community. Because of
               | all of the public work put into them, it's an order of
               | magnitude easier to manipulate them than pouring over a
               | disassembly. You'd know about tchips like that if they
               | existed. Bunnie tried to get that kind of community
               | around the MT6260 chips, but it didn't really go
               | anywhere.
        
               | GhettoComputers wrote:
               | Thank you. I think these hacks will be seen as a
               | historical curiosity with an influx of RISC-V chips that
               | will be more open, ExpressIf is moving to it and hackable
               | IoT chips are utilizing them more too.
        
         | retrac wrote:
         | > It seems a little like cheating to put modern
         | microcontrollers inside the cartridge that do all the heavy
         | lifting.
         | 
         | As a sometimes hobbyist homebrewer, instinctively I am inclined
         | to agree. But I'll argue the counter-case.
         | 
         | The Game Boy (and consoles like the NES and SNES) were
         | _intended_ to be expanded with additional hardware in the
         | cartridge, from the beginning in anticipation of new
         | technology. There were commercial GB games in Japan that
         | included an infrared transceiver, for example. Same with
         | vibrators and battery-backed save RAM and so on. While extra
         | cartridge hardware was never more than marginal on the Game
         | Boy, it was fairly prominent on the NES /Famicom and especially
         | the SNES.
         | 
         | And it was used to make full 3D games for the SNES. Much of
         | Star Fox is drawn with 3D polygons, and would have been
         | impossible without a co-processor to do the 3D rendering. So it
         | includes the Super FX chip on-board, which is a fast
         | coprocessor with vector facilities. In some Super FX games, the
         | console's baseline hardware was basically relegated to being a
         | glorified framebuffer displaying the coprocessor's rendered
         | output.
         | 
         | And in some cases, no amount of extra hardware will circumvent
         | the limitations of the hardware, which makes it a legitimate
         | programming and game design challenge, IMO. You just _can 't_
         | display a full-screen bitmap on a Game Boy without tricks.
         | There simply isn't enough onboard video RAM to hold a distinct
         | 8x8 tile for every tile on screen. No coprocessor will work
         | around that. It might give you an infinite source of tiles
         | rendering a 3D scene for example, but you still have to shuffle
         | them in and out of VRAM, which is a major bottleneck for
         | complex Game Boy designs aiming for full screen and full
         | framerate effects.
        
           | ant6n wrote:
           | Actually you can display one full screen bitmap. Vram can
           | hold 384 tiles, and the screen needs 360 tiles. It's gonna be
           | difficult to update that, since there's no more vram for
           | double buffering, you can only access vram during vblank and
           | hblank, and there's no dma into vram (on the gbc it's
           | possible, since it has a dma and double the vram).
        
         | GhettoComputers wrote:
         | I agree with you, but understand the critique others used. The
         | problem is standardization, if you need special hardware to do
         | things you get fragmentation. For the people who rely on the
         | other cartridges, those games are all standardized. The SNES
         | had optional networking
         | https://en.wikipedia.org/wiki/Satellaview, and the PS2 also had
         | an optional expansion bay
         | https://en.wikipedia.org/wiki/PlayStation_2_Expansion_Bay that
         | would limit all games from utilizing it, and also as a
         | requirement it would prevent much adaption.
         | 
         | Whats the point of developing on a device that needs lots of
         | other parts that most people won't have? Its like selling a
         | game system with no controllers and each controller can be used
         | for only a few games (like eyefi).
         | 
         | This is why I don't bother with seeing m.2 SSDs enhancing
         | online gameplay for faster loading. You always wait for the
         | weakest and slowest loading game and network to start.
        
         | bgro wrote:
         | It seems like everyone in tech does this. Someone has a mind
         | blowing feat of engineering, but leave out the part where they
         | cheated and arguably lied about it because "it's just some
         | minor detail that doesn't really matter"... For some reason
         | they think these are bragging points that put them above all
         | other engineers.
         | 
         | "I built a calculator completely from scratch by myself with no
         | help" (by importing calculator.*)
         | 
         | "I invented my own cloud microservice in a language I wrote
         | completely myself" (It's hello world split in 2 files on google
         | drive and the language is just JavaScript but it you added a
         | "framework" (it's single method) that already exists in the
         | wild but your version is slower and worse)
         | 
         | "I built my own computer" (by buying a prebuilt computer but
         | swapping out the ram, or buying an essentially prebuilt
         | computer but it comes disassembled)
        
           | GhettoComputers wrote:
           | Everyone lies and overstates achievements online.
           | 
           | I'm a billionaire with 22in, my dinner with Bezos went well,
           | I had to ignore 22 messages from hot models wanting to fuck
           | to post this, I could have been working for 12k an hour but I
           | decided your post was worth replying to even though satellite
           | Internet costs on my huge yacht costs a lot more than you
           | make in a day.
           | 
           | I'm going to fly on my private jet now, feel free to contact
           | me about how you can invest and fall for my crypto margin
           | trading that ends badly for you.
        
         | vmception wrote:
         | Not to beat a dead horse here, but everything cartridge based
         | games did was "cheating" by your standard
         | 
         | Anyone remember Mode 7 style of rendering?
        
           | bityard wrote:
           | Mode 7 wasn't a cartridge feature, it was a background layer
           | that could be rotated and scaled in the SNES hardware. You
           | may be thinking of the FX chip (mentioned by others in this
           | thread).
        
           | fredoralive wrote:
           | Mode 7 is a feature of the SNES's basic video hardware, not a
           | cartridge add on.
           | 
           | Most cartridges are just ROM, perhaps some battery backed
           | RAM, and if needed some bank switching / address decoding
           | logic to glue things together. Nothing particularly smart.
           | Certainly no extra processors running the show. All the
           | smarts was in the console.
           | 
           | There are exceptions, like the SNES games with coprocessors,
           | but not all of them are full CPUs, and even then there are
           | 1500+ SNES titles in total, and less than 100 with extra
           | chips in them[1]. The mapper chips in NES games often did a
           | bit more than just bank switching, but they weren't in
           | control either.
           | 
           | Cue someone mentioning the MB Microvision...
           | 
           | [1] Based on Wikipedia, and I hope I roughly counted the
           | number of entries in the coprocessor game table correctly.
        
         | phreack wrote:
         | If you want to take that cheating to the logical extreme, check
         | out this project made by a friend. It's explicit in the title
         | that it's just streaming, but pretty fun nonetheless!
         | 
         | https://github.com/rodri042/gba-remote-play
        
         | jhatemyjob wrote:
         | Gonna pile on the bandwagon here and add, it shouldn't be a
         | "central computer" that has all the cool shit and you attach
         | peripherals to it. We should be merging equally powerful
         | computers together, it should be a symbiotic relationship
         | between different parts that get better over time. Two
         | computers are better than one
        
         | Salgat wrote:
         | That's pretty common for cartridge based games. Want your
         | gameboy to support RTC? Add an RTC chip on the cartridge. Need
         | more RAM or persistent memory? Slap more in the cartridge. This
         | is no different.
        
         | roywiggins wrote:
         | Well, that's been done also:
         | 
         | https://www.youtube.com/watch?v=ar9WRwCiSr0
         | 
         | Also, _commercial_ 3D SNES games sometimes had to bring their
         | own coprocessors, so it 's fully in line with tradition:
         | 
         | https://en.wikipedia.org/wiki/Super_FX
        
           | sdenton4 wrote:
           | Just to super-upvote: the reverse emulation video is my
           | second favorite tech demo of all time. It is fantastic.
        
             | EvanAnderson wrote:
             | That video is gold. Then again, anything Tom7 does is
             | great.
        
             | jgwil2 wrote:
             | What's your favorite?
        
               | sdenton4 wrote:
               | Monty Montgomery on analog-digital conversion:
               | 
               | https://www.youtube.com/watch?v=cIQ9IXSUzuM
        
             | datameta wrote:
             | High quality without a doubt. His chess AI tournament is
             | also a thorough nerd snipe.
        
         | hammock wrote:
         | Isn't that basically what modern computers do anyway? There is
         | so much processing done outside the CPU. Graphics, network,
         | security, etc
        
         | prurigro wrote:
         | Isn't that how the SNES enhancement chips that allowed for 3D
         | games like Star Fox worked?
        
         | DizzyDoo wrote:
         | I get what you're saying, but it's worth also mentioning that
         | your full 3d SNES game example is pretty much exactly what
         | games like Star Fox[0] did, back in the early 90's. The Super
         | FX chip is inside the SNES cartridge. From the wikipedia page:
         | 
         | > The Super FX was so much more powerful than the SNES's
         | standard processor that the development team joked that the
         | SNES was just a box to hold the chip.
         | 
         | Really interesting to read about, but there was a whole
         | selection of other chips that various SNES games took advantage
         | of: [1]
         | 
         | [0] https://en.wikipedia.org/wiki/Star_Fox_(1993_video_game)
         | 
         | [1]
         | https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_...
        
           | nsxwolf wrote:
           | And really, from its very launch the base SNES couldn't
           | handle most of its library - even Pilotwings, a day 1 launch
           | title, needed an extra chip to handle its enhanced mode 7
           | background effects.
        
         | wtallis wrote:
         | The SNES example may be working against you here, since there
         | were lots of commercially-released SNES games that included
         | coprocessors in the cartridge to do heavy lifting the console
         | wasn't otherwise capable of. At least one of those games
         | actually used an ARM processor in the cartridge.
        
       | phendrenad2 wrote:
       | This has been done before:
       | https://hackaday.io/project/20769-wifi-game-boy-cartridge
        
         | GuestHNUser wrote:
         | They talk about that project in the video.
        
       | mediocregopher wrote:
       | Wonderful, pure creativity and determination at work here. It's
       | so cool to see what wild ideas people will follow through with.
       | 
       | A gemini client would be a cool next step for this:
       | 
       | https://gemini.circumlunar.space/
        
         | spicybright wrote:
         | I think gopher would be better, just by how much content is
         | available on it and how stupid simple it is. But either option
         | would be really flipping cool to see!
        
           | makeworld wrote:
           | Gemini actually has more domains than Gopher these days, from
           | the statistics I've seen. Maybe not more content, due to
           | Gopher's history, it's hard to say.
        
           | jedimastert wrote:
           | How would I go about finding/discovering gopher content? That
           | sounds like fun!
        
             | spicybright wrote:
             | Oh man, you're in for a treat today :)
             | 
             | So, while gopher works like any website (you can host your
             | own server for people to visit), the main hub of the
             | "gophersphere" is floodgap.
             | 
             | It's run by someone who runs spiders to index sites, and
             | maintains an html gopher proxy, so you can browse gopher
             | sites from your browser.
             | 
             | https://gopher.floodgap.com/gopher/gw.lite
             | 
             | So starting there will let you branch off to whatever you
             | find interesting!
             | 
             | If you dig enough, there's content you won't find anywhere
             | on the modern web too, especially from really old sites
             | that are still being hosted from back in the heyday. The
             | further you go, the more old stuff you'll find.
             | 
             | It feels like exploring ancient ruins that have been long
             | abandoned.
             | 
             | What's unique about Gopher (at least to me,) is it goes a
             | bit beyond just hosting content like how we see the modern
             | web. There's a lot of history and culture around it.
             | 
             | The protocol itself is extremely interesting to dig into.
             | It's simple enough you can use telnet or curl to browse
             | (clunkily of course), but there were many attempts to
             | extend it in crazy ways. For example:
             | 
             | https://en.wikipedia.org/wiki/GopherVR
             | 
             | How it started and became popular is very cool to look into
             | as well.
             | 
             | Currently, the main content creators on gopher share a deep
             | "counter-culture" attitude towards the modern web. You'll
             | almost never find an ad, or junky blog posts that are
             | nothing but fluff. No popups, no politics (like the EU
             | banner thing), or even seeing a webpage being rendered as
             | it loads.
             | 
             | It's all so simple the only thing you can host is pure
             | content and links. And users/content creators take a lot of
             | pride in that fact.
             | 
             | Anyways, apologies for the ramble. It's just a big passion
             | of mine. Good luck on your first dive :)
        
           | classichasclass wrote:
           | I think Gopher would be ideal here, based on screensize and
           | the CPU capability.
        
         | ChuckMcM wrote:
         | Agreed. And a simple NFS V2 client so that you could load
         | cartridge images from a NAS device would be fun as well.
        
       | monocasa wrote:
       | I probably would have hooked it up to the link cable, which is
       | just a SPI port. Then different carts can use it as they see fit.
        
         | EvanAnderson wrote:
         | This would be great. Playing unmodified multiplayer games w/
         | others locally wirelessly and, if latency allowed, over a
         | network, would be a ton of fun. It would also allow for some
         | players to be on physical hardware vs. emulators.
        
           | monocasa wrote:
           | Oh, I didn't think about that. It'd probably take some
           | interpretation of the individual game protocols to get over
           | the hump of the latency, but probably doable.
        
             | EvanAnderson wrote:
             | This isn't a rabbit home I can go down right now, but
             | there's some background here:
             | https://blog.gbplay.io/2021/05/10/An-8-Bit-Idea_The-
             | Internet...
        
       | CyberRabbi wrote:
       | Cool project. Only issue I see is the use of an old eeprom. These
       | types of projects tend to use flash roms these days.
        
       | theamk wrote:
       | That design is badly missing some registers (D-type flip-flops)
       | -- the whole "let's read/write multiple bytes and discard the
       | first one because the ESP is not ready yet" seems like a super
       | hacky solution.
       | 
       | A pair of something like 74574's would make this so much easier.
       | When sending to ESP, register latches the last byte written and
       | then ESP can read it at its leisure. When reading from ESP, ESP
       | pre-loads the data into register, and then gameboy reads data
       | from the register. This generates interrupt which ESP uses to
       | load next byte into register.
       | 
       | Moreover, there might be a right logical series which will be
       | compatible with both 3.3 and 5V busses. Then one could replace
       | the level converters with register, keeping the overall
       | complexity about the same.
        
         | monocasa wrote:
         | That's the first thing that popped out to me reading this too,
         | bit then ended up on 'there's a perfectly good SPI bus on the
         | link cable". With it hooked up there, you can power the esp
         | with its own battery, and switch out carts (or more likely roms
         | on a flash cart) for the application you want to run. IRC and
         | Gopher ROMs can just share a wifi module.
        
       | phendrenad2 wrote:
       | Reminds me of the Gameboy Floppy Disk Drive or the Gameboy CD-ROM
       | Drive:
       | 
       | https://hxc2001-free-fr.translate.goog/gbdk/?_x_tr_sch=http&...
       | 
       | http://hackedgadgets.com/2006/03/19/gameboy-atapi-cd-player/
        
       | iszomer wrote:
       | Reminds me of the WiFi232 by Paul Rickards, presented by LGR a
       | few years back.
       | 
       | https://www.youtube.com/watch?v=fsS0E4G310Y
        
       ___________________________________________________________________
       (page generated 2021-12-16 23:00 UTC)