There oughta be a WiFi Game Boy cartridge
there.oughta.be
there.oughta.be
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.
A gemini client would be a cool next step for this:
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 :)
Still works fine for me on Mosaic 3.0...
https://archive.org/download/mosaic-ncsa-evolt_browsers/wind...
"Malicious Activity Detected You appear to be using software associated with or exhibiting bot-like activity. This is banned for security reasons. If this is a legitimate access, please E-mail gopher@floodgap.com with an explanation. httpi/1.7.2 (nano_inetd_turbo/AIX) by Cameron Kaiser"
Well, never mind.
I feel like possibly a better way to deal with the communication though might be to put a dual-port RAM [e.g. 1] in-between the gameboy and the microcontroller, and load in a program to it so the Gameboy is just waiting for certain areas of memory to be updated (with flags that one side sets as 'new data' and then the gameboy flips). Basically some kind of circular buffer of commands, and as long as there's enough space in there and you only fill it from the microcontroller slower than the Gameboy can process them, you wouldn't need to have careful synchronisation. The microcontroller just has to check that the next slot in the circular buffer has had its status bit flipped to 'processed' (or hasn't been used yet) before putting the next command/data in.
1. https://www.renesas.com/us/en/products/memory-logic/multi-po...
All that said, this project is still pretty sweet and I enjoyed the writeup.
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:
> 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_...
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.
> 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...
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.
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.
Good pedantism btw :)
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.
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.
Source: I owned GB games since I was a child.
Anyone remember Mode 7 style of rendering?
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.
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.
Not to detract from the project, it is very cool. But the excitement kinda feels dwindled when you realize that you now have limitless power and ability. It becomes just regular programming rather than a puzzle.
I see the 'complaint' is that there's a creative/artistic appeal to seeing what can be squeezed out with limited/constrained resources.
Or, at worst, does it make sense to use an old console like the Game Boy if you're going to use such a fancy cartridge?
I'm reminded of the MythBusters episode where they tried to make a cannon from a wooden log. They resorted to using modern power tools. "I'm not doing anything they wouldn't have done if they had access to these tools!".
I think the project is pretty cool, anyway.
"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)
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.
https://hxc2001-free-fr.translate.goog/gbdk/?_x_tr_sch=http&...
http://hackedgadgets.com/2006/03/19/gameboy-atapi-cd-player/
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.
This was certainly difficult for him to do, and the engineering aspects of it are "cool", but this doesn't solve an actual problem. With the same amount of effort he could have written new/better drivers for a raspberry-pi peripheral, or contributed to one of the open source OS projects in a meaningful way. Hell, if this he did this just for fun, then this is definitely the kind of guy who burns out well before they turn 40.
Efforts like this shouldn't be applauded or critically reviewed with advice to make it better, they should be discouraged. This kind of project is not merely a waste of time, if it were I would have no valid complaint to make. It is a waste of time that burns out a highly capable person, and too many people in the tech community are ready to applaud the effort.
All The Woulda-Coulda-Shouldas
Layin' In The Sun,
Talkin' 'Bout The Things
They Woulda-Coulda-Shoulda Done...
But All Those Woulda-Coulda-Shouldas
All Ran Away And Hid
From One Little Did.
-Shel SilversteinThat being said, the way I would have done it is...
Thanks for sharing!
https://there.oughta.be/a/wifi-game-boy-cartridge
It would be neat (and terrible) if suggestions could be submitted through error handling.
Domain hack innovation seems to be stifled, perhaps a victim to the specificity of the ICANN expansion