go-studybox/cmd
Zorchenhimer 1515b4113f
[sbx2wav] Start adding a tool to generate tape audio
This tool will take a .studybox ROM and encode the data in an MFM audio
wave.  Currently, this just handles the data channel and not the
recorded audio.  Output is a mono .wav file.

Also, some timing and settings are probably wrong. (Generated audio
doesn't decode with Sour's decoder)
2025-11-23 18:24:25 -05:00
..
README.md Add some READMEs and a LICENSE 2025-11-09 12:34:13 -05:00
extract-imgs.go [docs] Add images.md, move instructions.md, add some comments 2025-11-13 21:03:26 -05:00
just-stats.go [script] Add CDL; Add "smart" parsing 2025-09-14 16:52:06 -04:00
sbutil.go [sbutil] Remove commented out main_old() 2025-11-22 19:46:51 -05:00
sbx2wav.go [sbx2wav] Start adding a tool to generate tape audio 2025-11-23 18:24:25 -05:00
script-decode.go [script] Rework CDL & Label stuff 2025-09-21 22:26:59 -04:00

README.md

extract-imgs

Extract images from an unpacked .studybox ROM file. Requires the tile packets as well as the CHR packets to build an image. Handles both nametable and sprite data.

just-stats

Decodes scripts similar to script-decode, but does not save the output. Instead, scripts are decoded in bulk and instruction usage is recorded to an output file.

sbutil

Pack and unpack .studybox ROM files. Unpacking extracts all of the data from the ROM into a subdirectory and writes a .json file with metadata. Packing does the reverse using the .json metadata file.

script-decode

Decode script segments from an unpacked .studybox ROM file. Labels and a CDL file are supported. Two modes are available: dumb and --smart decoding.

Dumb decoding is the default and will attempt to decode every byte in the file as script data. This will try and decode variable data as script data which is usually undesired.

--smart decoding starts at given entry points and decodes scripts by following the logic of the script and recording branches as new entry points. By default the only entry point is the top of the script (third byte in the file), but additional entry points can be given in the CDL file.