[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)