WonderSwan flashcart launcher/utility. Work in progress.
- WS Flash Masta (currently in first slot only) - target
flash_masta - Generic (no flashcart-specific features) - target
generic
- Q: I am experiencing issues with the save backup/restore functionality.
- A: As of CartFriend 0.2.0, you can use the "Settings -> Save data management -> Erase+Test all save data" option to test the save functionality of your cartridge's NOR flash chip. Note that this will erase all existing save data!
- Y4/Y2 - change visible tab
- X1/X3 - navigate menu
- X2/X4 - change option values
- A - select
- B - go back (inside options), menu (outside of options)
The "Browse" tab allows:
- Launching installed software (A),
- Verifying basic software information (B -> Info),
- Renaming software slots (B -> Rename).
One can use the (B -> Install WW) option to create a WW environment on the cartridge. For this, the following is required:
- an RS-232 serial cable,
- a way to transfer files via XMODEM (like Tera Term on Windows, or lrzsz on Linux),
- a legal copy of the FreyaOS .bin update file (included on the CD in the
WWitch/fbindirectory).
A bundled copy of an open-source clean room BIOS reimplementation called AthenaBIOS is used. As the project is still in development, 100% compatibility with WW software is not guaranteed - please report bugs here.
The "Tools" tab provides small tools useful for development:
- WSMonitor - use the EXT port as a serial port to access a rudimentary monitor.
The "Settings" tab allows configuring CartFriend.
- Hide slot IDs in menu - by default, CartFriend will label unnamed slots using their ID (publisher ID, game ID, game version, checksum). If this option is enabled, nothing will be shown for unnamed slots.
- Hide empty slots - if this option is enabled, slots without valid software flashed to them will not be displayed.
- Slot type config - change the type of a slot.
Launcher- the slot CartFriend was launched from; cannot be changed.1x64Mb/ 4Mb SRAM- one program, which takes up the entire slot.8x 6Mb/.5Mb SRAM- eight programs, which takes up the slot in 1MB increments. Each program gets 64KB of SRAM.2x 6Mb/ 2Mb SRAM- two programs, which take up the slot in 4MB increments. Each program gets 256KB of SRAM.Unused- the slot is not used.
- Save block mapping - map available save blocks to Soft slots. This allows mapping mutliple blocks to one slot, allowing multiple distinct saves for one piece of software.
- Save data management - allows unloading save data from SRAM to Flash, as well as clearing save data for a given block.
- Advanced - advanced settings:
- Buffered flash writes - enable faster flash writing.
- Serial I/O rate - toggle the EXT serial port speed between 9600 and 38400 bps.
- Force SRAM on next run - for the next software launched, ignore data in Flash - assume data in SRAM is this software's save data.
- Unlock IEEP next boot - enable to unlock the internal EEPROM on the next boot. This is useful for installing BootFriend and/or custom splashes.
Requirements:
- The Wonderful toolchain,
- Recent version of Python 3 and the Pillow library.
- Install the WSwan target tools:
wf-pacman -S target-wswan. - Build the assets:
./build_assets.sh. - Build the ROM:
make TARGET=target- see "Supported cartridges" for valid target names.
The source code as a whole is available under GPLv3 or later; however, some files (in particular, flashcart platform drivers and XMODEM transfer logic) are available under the zlib license to faciliate reuse in other homebrew projects - check the source file header to make sure!
Warning: The primary purpose of this tool is to aid homebrew development with Wonderful and other toolchains, as well as allow smooth execution of WonderSwan homebrew by end users. While the utility is provided "as-is" and without warranty, the development team reserves the right to deny support to users where doing so would unavoidably aid in copyright infringement.