With the board out for manufacture, I now have some time to start thinking about how I'm going to get code written for it. Given the range of potential features available on the board (WiFi, Bluetooth, 2x Usb Hosts, DVI video, "analogue" audio), and the short time span of the competition, I don't want to be stuck-in over my head rushing to get the code working in time. Instead, I would like to create a minimum viable demonstrator for the competition, illustrating the core functionality of the project, then fleshing out all the extra features at a later date.
Features that i consider to be part of the "core" functionality, against nice-to-haves are tabulated below:
Required features | Nice-to-have features |
Support for a single external gamepad | Support for multiple external game pads over a range of interfaces |
Unbuffered video output through DVI in RGB565 | Fully buffered or syncronised video output to prevent tearing with up to 24-bit colours |
Analogue audio output over 3.5mm Jack | Audio output over a range of interfaces |
Playable emulator | Range of playable emulators with launcher(s) |
The core functionality revolves around the minimum requirements to reach the point where *an* emulator is playable on the card, while nice-to-have features expand on capabilities to support emulation of multiple devices, using a range of input devices and flexible audio output selection depending on user preference.
These nice-to-have features result in a more complete device, but adds multiple cases will need to be handled by the software and be debugged, which could considerably increase development time.
As previously mentioned, I would like to port Retro-Go to this card which should handle launching and running various emulators, so I would otherwise mainly need to focus on adding support for the various interfaces: a gamepad driver using Bluetooth OR USB host on the ESP32, DVI video through the RP2040 coprocessor, and audio output using the ESP32's sigma-delta modulator.
Once these features are working well, I can evaluate whether to throw in some of the nice-to-haves, or move straight onto documentation and tidying things up, depending on how much time remains in the competition (if any!)
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.