If it sells why fix it? I would be building a larger user base rather than new hardware if it’s still selling. Bells and whistles are an endless pit and it’s easier to lose a user base by deprecating their hardware than it is to encourage further investment.
It’s an 8-bit processor with 16-bit memory addressing using 1 bit graphics.
But actually there’s nothing to stop the processor calculating 16, 32 and 64 bit values,
it just takes more instructions and processing power.
Interestingly, the 32u4’s clock speed is nearly 4 times faster than the chip the Gameboy used (16MHz vs 4.19MHz).
Getting back on this. To resolve the missing hardware USB, an ATMEGA32U4 could be added basically it would be a micro card (the 1st design with multi MCU) but with the ATMEGA328P replaced by that ATMEGA4809
Seems like that is exactly what Arduino themselves are doing - take a closer look at that board and there is a 32u4! (and an RGB LED?)
After reading a little further seems like the 4809 has the complication of needing to be programmed via ‘UPDI’ rather than good ol’ ICSP… So it will be interesting to actually get more details on that new board and how they tackle this…
There is someone already selling their own solution for a 4809 dev board (using an FT2232D Dual USB-UART interface and an ATmega88PA for the UPDI interface):
Yeah, that’s what everyone forgets about. For one, you lose 512 bytes just to buffer writes to the SD card. That’s not counting the other RAM expenses of the SDFat library, etc. You probably could make a slower library that only did reads for actual app usage - but best bet might be the games don’t try and touch the SD - that it’s only used for reflashing new games. Luckily the “app switcher” would be it’s own ROM… so the real question is whether you can fit the code to reflash the “app switcher” in the bootloader.
Of course you could also do magic such as only allowing IO in-between frames and using the “VRAM” as your disk buffer. That helps with the RAM situation, but not the code space situation.
Worse case if it came down to it I think you could require a specially formatted SD card - that had the app switcher binary in hard-coded sectors (allocated properly in FAT)… so that the bootloader could just do straight IO off the SD card to reflash the app switcher (which would have fuller SD/FAT support for reading the filesystem). Then you only have to squeeze the SDCard IO code into the bootloader.