I am pleased to announce that I have created an open source command line FlashBoy Plus programmer :). The programmer is written in Rust, and the source is available here.
The main use case for this programmer is developers who want to add
a “flash” target to their Makefile/build system without having
to open up a GUI. And well it’s open source and more portable too.
My intent is to provide binary releases for Windows,
Mac, and Linux, but at present I have only tested on Windows, and
I’ve not set up binary releases at all yet. Therefore, I have
attached a Windows binary corresponding to commit adf5833.
I would appreciate any testing the community could give; see if you can try to break it. If you do manage to break it, please file an issue so I can take a look.
ROMs must be padded to 2MB to use prog-vb right now! Have fun :)!
EDIT (3/23/2019): The Windows binary I attached to this post is obsolete, so I have removed it. Windows, MacOS, and Linux releases can be found on Github Releases. Padding happens automatically and transparently to the user.
I just tried the flasher on Windows 10 with a FlashBoy Plus. I kept getting error messages:
“Error: hidapi error: Der E/A-Vorgang wurde wegen eines Threadendes oder einer Anwendungsanforderung abgebrochen.”
(Google Translate: “Error: hidapi error: I / O operation was aborted due to thread end or application request.”)
After I switched from USB 2 to USB 3, it worked just fine!
Great work, cr1901, thank you! That thing will be a nice addition to VBDE 2.0. In fact, we plan to release Linux and Mac versions as well, so a cross platform flasher was like a missing link. Being able to flash via the command line, without requiring further input, is a welcome bonus. 🙂
Any idea why Windows Defender SmartScreen complains about the app being unknown, and prevents it from being started on the first run?
(Issues created on GitHub)
Attachments:
For those following along in this thread:
* The USB 2.0 error seemed to resolve itself.
* The first time run prog-vb on Windows 10, you might get that dialog. Click More Information and “Run Anyway”. There is not much I can do about this right now.
I’ll look into getting Mac/Linux builds running today. KR155E, is it possible that once I get Releases up and running (they will be provided by Github Releases), we could make a page under the tools section of the website a la FlashBoy Loader?
The “Homepage” would point to the Github Repo. The “Downloads” would point to the Github Releases page (unless there’s a mechanism- REST API, maybe?- to automatically mirror the most recent versions on PlanetVB after CI runs).
Thumbs up, cr1901!
Set up a page, I will later add your releases: https://www.planetvb.com/modules/tech/?sec=tools&pid=prog-vb
As promised, I have gotten Mac/Linux binaries uploaded to Github. The current v0.9.0 release- and future releases can be found here.
The Windows binary is about half the size of the one I attached here. Hmmm, I guess LTO makes that much of a difference or debug symbols were stripped? I’ll have to check!
Both the Windows and Linux binaries seem to run fine by a simple test (run the program w/o arguments). However, I am unable to personally test the OSX version, and I neither have OS X installed in a VM nor do I have Apple hardware.
Currently, I have uploaded 64-bit x86 binaries for Linux, OS X, and Windows. I have plans to upload Linux ARM binaries at some point so you can flash from ARM SBCs such as Raspberry Pi or Pinebook. If anyone needs any other architectures, such as 32-bit x86 binaries or maybe PowerPC :P, let me know and I’ll make a new patch-level release.
KR155E, if you want to add a screenshot, feel free to add this one :)!
- This reply was modified 5 years, 7 months ago by cr1901.
I have release v0.10.0 of `prog-vb`. The major difference here is that ROMs are now automatically padded if less than 2MB. Padding happens transparently to the user. Other differences can be found in the Changelog.
I would especially appreciate testing on homebrew and commercial ROMs < 1MB, and testing on Mac to flush out issues. If I don't hear of any problems in say, about a week, I'll finalize some last few changes and release v1.0.0. That should take us into mid-summer, when MultiBoy 32 is closer to release :D! Binaries for v0.10.0 can be downloaded here.
I just tried out the Mac version with a few different ROMs, some padded and some unpadded. I didn’t encounter any problems. The games loaded right up, exactly as expected.
This is really excellent, because it makes the Flashboy a ton easier for me to use. Thank you for the effort you put into this app.
Let me know if there’s any further testing you’d like done in MacOS.
litephiter wrote:
I just tried out the Mac version with a few different ROMs, some padded and some unpadded. I didn’t encounter any problems. The games loaded right up, exactly as expected.This is really excellent, because it makes the Flashboy a ton easier for me to use. Thank you for the effort you put into this app.
Let me know if there’s any further testing you’d like done in MacOS.
Excellent, glad to hear it works! I think that’s about it for testing until MultiBoy 32 comes closer to release! I’ll prepare a 1.0.0 release in the next few weeks! 😀
Gonna try to prepare version 1.0.0 this upcoming week. Could anyone explain to me how the “Dev mode” of the original FlashBoy programmer application worked? What does it do differently compared to the standard flashing procedure?
EDIT: In addition, could someone test prog-vb with an _original_ FlashBoy (and not the Plus)? I either expect prog-vb to work without problems, or refuse to program it due to a different VID:PID and Configuration String.
In other news, I plan to add the following binaries to the 1.0.0 release:
* Win32/MacOS/Linux i386 (32-bit) binaries
* ARM32/64 binaries (so you can flash from your Pi, Pi clone, Pinebook, etc)
Anyone want to try testing prog-vb on other archs, such as PowerPC? Anything on this page can in principle be tested/have binaries created: https://github.com/rust-embedded/cross#supported-targets
- This reply was modified 5 years, 6 months ago by cr1901.