Tools & Scripts: Difference between revisions

From Foenix F256 / Wildbits/K2 Wiki
Jump to navigationJump to search
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
== 000F256 Machines Game Development Tools ==
== 000F256 Machines Game Development Tools ==


=== Sprite Creation Tools & Scripts ===
=== Graphic Creation and Conversion Tools & Scripts ===


{| class="wikitable"
{| class="wikitable"
Line 38: Line 38:
|https://github.com/cmassat/EffenX/tree/dev/util
|https://github.com/cmassat/EffenX/tree/dev/util
|python script by SprySloth, converts a grid png of sprite frames into individual bin (raw bitmap) and pal (palette) files, ready to be consumed by your project. A good source of these grid pngs can be from Aseprite above.
|python script by SprySloth, converts a grid png of sprite frames into individual bin (raw bitmap) and pal (palette) files, ready to be consumed by your project. A good source of these grid pngs can be from Aseprite above.
|-
|Wildbits Graphics Converter
|https://github.com/Mu0n/F256MiscGoodies/tree/main/tools
|Wildbits Graphics Converter v1.1
python gui application with 4 modes with drag and drop functionality and image preview for your png images:
1) convert a bitmap (320x240 or 320x200) png to raw .bin bitmap and .pal file
2) convert a png sprite sheet (8x8, 16x16, 24x24, 32x32) into a raw .bin file and .pal file
3) convert a png tilesheet (8x8 or 16x16) into a raw .bin file and .pal file
4) convert a png 240x320 into a R5G6B5 .bin file meant for the K2 LCD screen
(this supersedes f256_sprite_cutter and png2raw and then some!)
|}
|}


=== Memory related Tools and Scripts ===
{| class="wikitable"
! Tool !! Link !! Notes
|-
|FoenixMgr
|https://github.com/pweingar/FoenixMgr
|Foenix Manager, set of python script that lets you interact with the machine through the USB debug port. Inspect RAM, run an executable, upload to SD card, reprogram the flash memory, etc. This whole toolset is usually provided in the easy-to-update packages that can be found in the [[Firmware Releases]] page - this is its dedicated github project page.
|-
| style="white-space:nowrap;" | Wildbits Memory Planner
| style="white-space:nowrap;" | https://github.com/Mu0n/F256MiscGoodies/tree/main/tools
| style="white-space:nowrap;" | Wildbits Memory Planner v1.1
A small windowed tool for Wildbits retro-computer developers that lets you place data objects on a memory map, compact them, resize them, move them.
Once you're done, export the list of everything with start address and size.
Export a llvm-mos or oscar64 list of #embed or #pragma directives for easy integration in your C project or otherwise.
|-
|Wildbits Uploader
|https://github.com/Mu0n/F256MiscGoodies/tree/main/tools/Wildbits%20Uploader
|Wildbits Uploader v0.6
A small GUI front-end for your existing FoenixMgr install. It drives your own <code>fnxmgr.py</code> via subprocess -- same protocol handling, same <code>foenixmgr.ini</code>, same everything you already have working -- this just gives it buttons and drag-and-drop.
|}


=== Music Tools and Scripts ===
=== Music Tools and Scripts ===

Latest revision as of 14:29, 18 August 2026

000F256 Machines Game Development Tools

Graphic Creation and Conversion Tools & Scripts

Tool Link Notes
Aseprite https://www.aseprite.org/ Aseprite can be used to create sprites animation or Tiles Sets.
Scripts relevant to Aseprite usage If you use Aseprite, you can convert your tile drawings to tilesets and tilemaps using these scripts. The export to sprites will convert sprites to a 64tass compatible text file.
f256_sprite_cutter https://gist.github.com/digarok/57b096236a7fb1c76efef6cbb9f73a83 Sprite cutter that cuts a PNG according to line-by-line instructions in a text file. Requires python and the PIL library, install with:
python -m pip install --upgrade pip 
python -m pip install --upgrade Pillow

Run with:

python f256_sprite_cutter.py myimage.png mylist.txt sprites.s

where mylist.txt contains a series of lines containing x, y offset, width, name, where it's assumed the width is the same as the height since it's for square sprites supported for the F256xx, such as 8,16, or 32.

The output (named sprites.s in this above example) is a series of hex instructions with a list of hex values of a color picked from the CLUT.

In order to make it compatible with 64tass, I search replaced hex-> .byte and replaced every value I could find by swapping in a $ in front (ie 00 -> $00 and 01 -> $01, etc.)

Foenix Graphics Toolkit https://github.com/econtrerasd/F256-GraphicToolkit The Sprite Editor module in the Graphics Toolkit can help you draw sprites of different sizes in the F256 platform and save them as Spr files. The file format is documented in the manual
png2raw.py https://github.com/cmassat/EffenX/tree/dev/util python script by SprySloth, converts a grid png of sprite frames into individual bin (raw bitmap) and pal (palette) files, ready to be consumed by your project. A good source of these grid pngs can be from Aseprite above.
Wildbits Graphics Converter https://github.com/Mu0n/F256MiscGoodies/tree/main/tools Wildbits Graphics Converter v1.1

python gui application with 4 modes with drag and drop functionality and image preview for your png images:

1) convert a bitmap (320x240 or 320x200) png to raw .bin bitmap and .pal file

2) convert a png sprite sheet (8x8, 16x16, 24x24, 32x32) into a raw .bin file and .pal file

3) convert a png tilesheet (8x8 or 16x16) into a raw .bin file and .pal file

4) convert a png 240x320 into a R5G6B5 .bin file meant for the K2 LCD screen

(this supersedes f256_sprite_cutter and png2raw and then some!)

Memory related Tools and Scripts

Tool Link Notes
FoenixMgr https://github.com/pweingar/FoenixMgr Foenix Manager, set of python script that lets you interact with the machine through the USB debug port. Inspect RAM, run an executable, upload to SD card, reprogram the flash memory, etc. This whole toolset is usually provided in the easy-to-update packages that can be found in the Firmware Releases page - this is its dedicated github project page.
Wildbits Memory Planner https://github.com/Mu0n/F256MiscGoodies/tree/main/tools Wildbits Memory Planner v1.1

A small windowed tool for Wildbits retro-computer developers that lets you place data objects on a memory map, compact them, resize them, move them.

Once you're done, export the list of everything with start address and size.

Export a llvm-mos or oscar64 list of #embed or #pragma directives for easy integration in your C project or otherwise.

Wildbits Uploader https://github.com/Mu0n/F256MiscGoodies/tree/main/tools/Wildbits%20Uploader Wildbits Uploader v0.6

A small GUI front-end for your existing FoenixMgr install. It drives your own fnxmgr.py via subprocess -- same protocol handling, same foenixmgr.ini, same everything you already have working -- this just gives it buttons and drag-and-drop.

Music Tools and Scripts

Tool Link Notes
DOSBox VGM music extraction mini-guide Software#Music for playvgm.pgx DOSBox uses a YM3812 chip that outputs OPL2, this is a great, immense source of music that can leverage the OPL functionality of the F256K

1) run dosbox 0.74+, from the command line and mount your game as dosbox -c "MOUNT C C:\YOURGAMEISHERE" avoid spaces in folder names

2) before you get to the point where the music you want to extract plays, hit CTRL-ALT-F7 and you should see in the dosbox 'log' window that a music capture has started. I think it dumps your captures in /username/appdata/local/dosbox/capture but it will say where in the log window

3) reach the point where it plays and let it loop or run its course, hit CTRL-ALT-F7 to stop the capture.

4) this gives you a .DRO that you can analyze with https://www.jestarjokin.net/apps/drotrimmer/ . the analysis tool is supposed to find loops, but it didn't work well with the first tune I tried.

5) try to find the location of your first tune's note in the main window of drotrimmer and try to start the playback from there. delete superfluous notes that might surround your tune.

6) use dro2vgm command line tool: https://www.vgmpf.com/Wiki/index.php/DRO_to_VGM

7) open in a hex editor and chop off the bytes from 0x00 to 0xFF (it's the header)

8) transfer to your F256K (jr has no opl support!)

9) bload "yourtrimmed.vgm",$010000

10) run playvgm.pgx

Convert MIDI files into VGM files. https://github.com/SudoMaker/midi2vgm This is a Linux app, but does compile using Linux on windows under WSL.

Link to WSL install: https://learn.microsoft.com/en-us/windows/wsl/install

Link to binaries

https://github.com/cmassat/midi2vgm/releases/tag/V1.0.0

libADLMIDI.a <- Required Library

midi2vgm_opl3 <- Executable

convert.py https://github.com/natebarney/playvgm-f256k/tree/master/util from NateBarney

convert.py : python script to read a VGM or VGZ, decompress it if needed, and strip off the VGM header and GD3 tag

Sekaiju https://openmidiproject.opal.ne.jp/Sekaiju_en.html Easily compose and sequence MIDI music. Supports score notation, piano roll and MIDI in if you have a MIDI interface.
GoatTracker Guide to use GoatTracker for the F256. A SID tracker for DOS/MAC/LINUX that can create packed binary files for playback on the F256 computers.