From: <all...@he...> - 2021-02-22 09:23:29
|
Hi, I'm working on a product that uses a Raspberry Pi Zero W on a custom board running Fuse called the Hermit Retro ZXZero. Development is now pretty much complete and I thought it'd be a good time to contact you all to start a discussion about how the Fuse changes could be incorporated into the main Fuse builds. Info about the product is here: https://hermitretro.com (I also see increased chatter about a new version, so my timing is either great or terrible!) In summary, I've: - Support for buildroot environment - New GPIO-based peripherals for handling keyboard and joystick - Disabled various menus I've tried to keep the changes as minimal as possible and follow the general style. I've uploaded Fuse 1.5.7 as a branch to my github and the current branch is also there and can be directly compared if that's easier. Or, in general, grep for BUILD_HERMITRETRO_ZXZERO. This build uses SDL1. I see from chatter that that might be deprecated... Direct comparison link between Fuse 1.5.7 and current branch: https://github.com/hermitretro/fuse-hermitretro/compare/hermitretro-zxzero-1-0-0 I've attached some commentary of the various changes and why. Thanks in advance, A. Changes ------- libspectrum - Minor changes to configure.ac to support --with-buildroot flag which basically adds -DBUILDROOT and enables building under a buildroot environment. This isn't used within libspectrum itself but leaving it out confuses the Fuse build fuse-1-5-7 configure.ac - Added --with-buildroot which removes the hard link to /usr/include and /usr/lib as buildroot builds are relative (usually $TARGET_DIR/usr/include during cross-compilation). - Added --with-hermitretro-zxzero. Enable specific build for this hardware (also implicitly adds --with-buildroot, --with-gpio-membrane and --with-gpio-joystick) - Added --with-gpio-membrane. Enables build of the new gpio-membrane peripheral) - Added --with-gpio-joystick. Enables build of the new gpio-joystick peripheral peripherals/hermitretro - Added bcm2835.{c,h}. Low-level library for access to Raspberry Pi pins - Added gpio-membrane.c. This adds handling for membrane/matrix-based keyboards in a generic(-ish) way - Added gpio-joystick.c. This adds handling for Atari-based joystick in a generic(-ish) way - Added gpio-common.c. Shared GPIO handler and the parent for the other gpio peripherals fuse.c - Add hermitretro peripheral registration - Disable copyright display infrastructure/startup_manager.h - Add hermitretro peripherals menu_data.dat - #ifdef a whole load of menu options this variant doesn't need. The only change is really to rename File/Open... to Open... menu.c - Add a thunk function for the renamed File/Open to Open spectrum.c - Add polling for the new peripherals ui/sdl/sdl.c - Add polling in ui_event() for the GPIO peripherals. There's a comment in here that I'm unconvinced this should be here but if it's not none of the new peripherals work when widgets are displayed ui/widget/about.c - Added some info about Hermit Retro ui/widget/widget.c - Disabled some F keys |