5 ms·
ESP32 Game Boy Printer (2018)
- favorited 3y agoI was looking at this similar project yesterday: https://github.com/mofosyne/arduino-gameboy-printer-emulator https://github.com/mofosyne/arduino-gameboy-printer-emulator
- _def 3y agoYes! This works great, I used it recently. Also notable: there's this custom ROM project for the gameboy camera (requires a custom PCB) https://github.com/HerrZatacke/2bit-pxlr-studio https://github.com/HerrZatacke/2bit-pxlr-studio I also finally finished Pokemon Gen 1 recently, by using one Gameboy and the two original cartridges, in combination with an arduino to trade between them: https://github.com/pepijndevos/arduino-boy https://github.com/pepijndevos/arduino-boy
- SillyUsername 3y ago"Since the whole protocol is bit-banged, it is susceptible to delays caused by other higher priority task" Ermmm no. Not utilising both cores properly on the ESP32 is a common mistake which causes this (described) behaviour https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/ https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/ Ref. me, I wrote a Java Gameboy 2BPP encoder/decoder library and have done multicore ESP32 dev. https://github.com/KodeMunkie/gameboycameralib https://github.com/KodeMunkie/gameboycameralib
- monocasa 3y agoAdding to that, it probably shouldn't need to be bit banged. I've found that SPI peripherals can generally be put into a mode that can speak gameboy link cable. When I wrote a gameboy printer emulator in an arduino that simply spoke over serial instead of over wifi, running the emulation state machine as the highest priority task directly in the SPI interrupt worked great.
- adamjc 3y ago> Ermmm no. Removing the snide 'Well, akshually...' remark from your comment makes you come across like a much better person. > Not utilising both cores properly on the ESP32 is a common mistake which causes this (described) behaviour https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/ https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/ Doesn't it? :)
- wkjagt 3y agoI’m glad I’m no the only one put off by this. I’ve been thinking of making a simple browser extension to hide all the “eeeermmm no”’s from HN.
- adql 3y agoNo it does not. If people took so much care about writing technically correct things (instead of random observation with no substance) as they did whining about irrelevant details the snark wouldn't be needed in the first place
- deleted 3y ago[deleted]
- adql 3y agoOther way to do bitbanging without being (as much) dependant on task timing is using DMA engine to just dump the state of pins and parse it after. Same thing with outputting when you need precise timings, no need to burn a core to bitbang if DMA engine is featureful enough.
- ajsnigrutin 3y agoWhere's the printer part? You could connect this to a cheap chinese termal ESC/POS printer and print out the image too... there are probably libraries availble that do most of the esp32->print work.
- jwrallie 3y agoMy immediate thought also, I have seen some very cheap thermal printers on Aliexpress and the like that could be used for this purpose.
- unwind 3y agoIt's a software implementation (on the ESP32 microcontroller) of something that the Gameboy will think is a printer. You print to it, and images are made accessible on the ESP's web server instead of on paper.
- iamjackg 3y agoI actually did exactly what you suggest a couple years ago. https://github.com/iamjackg/esp32-phomemo-gameboy-printer https://github.com/iamjackg/esp32-phomemo-gameboy-printer
- deleted 3y ago[deleted]