SeongGino / ir-light-gun-plus

Arduino powered IR light gun - with force-feedback additions, MAMEHOOKER support, quality of life changes, and (possibly) dubious code quality!
GNU Lesser General Public License v2.1
27 stars 3 forks source link

Expanded Save Support #18

Closed SeongGino closed 7 months ago

SeongGino commented 7 months ago

Not an ongoing issue as much as it is notifying of progress in plus-save branch.

There's still a loose end here or there (mostly in TinyUSB ID modification), and the method of initializing values for save/loading looks quite ugly at the moment, but this allows for changing assigned pin numbers at runtime over the existing serial interface - which is intended for a future cross-platform GUI application for PCs, but can be interacted with using a shell/serial monitor much like with Mamehooker commands.

Completing this effectively readies GUN4ALL for binary distribution, meaning no more IDE or build environment at all, nor reflashing the board with modified local builds needed to configure aspects of the gun after installation.

(If people could test this branch, that would be wonderful - just navigate to the plus-save branch and download the ZIP from the green code button on the branch's page. Unfortunately, documentation is light atm as that is something I'm working on next to prep for binary distribution soon, but the information in SerialProcessing from line 2506-down should be enough to give a general idea of what's supported and what each thing does.

Safe to say, you might want to use the Xc command first to clear the saveram, which after replugging the device will bring up the first-time onboarding sequence - just shoot the screen to start initial calibration, wherein finishing will autocommit all the settings to the newly extended EEPROM space.)

SeongGino commented 7 months ago

The initial version was kinda sorta broken--it should be all good now. :)

There might be some lingering garbage data left in the EEPROM when transferring from previous main builds to this branch, but we do our best to clear things out when initializing.