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