Repository navigation
Releases: Synaps33/FroggySM
Release list
FroggySM v1.0.0
StepMania 3.9 on a 200 MHz MIPS32 handheld — written from scratch in C,
because the original PSP port needs a C++/Rage framework, the PSP SDK,
DirectX, OpenGL, Lua and the PSP's hardware MP3 decoder, none of which exist
on this hardware.
Download
| File | Console | Size | SHA-256 |
|---|---|---|---|
froggysm.sf2k |
GB300V2 | 360 392 B | 3d882371331ee8c769452ff3526dd38830488d4691881e28d782735c1c9e09e5 |
This build targets the GB300V2 firmware. The SF2000 firmware uses
different BIOS syscall addresses, so it needs a separate payload built with
FROGGY_TYPE=SF2000; the two are not interchangeable.
Install
1. Core
cp froggysm.sf2k /media/<CARD>/system/Deimos/cores/froggysm.sf2k2. Folders
mkdir -p /media/<CARD>/ROMS/froggysm/Songs3. ROM entry — read this one
The .gba file is a stub. The firmware reads its contents and parses them
as:
<core id>;<ROM folder>;<ROM file>.<extension>
The third field must contain a dot. The firmware strips the extension, so a
bare filename makes the parse fail — the console then treats the stub as an
ordinary GBA ROM, prints STOCK and the core never loads.
printf 'froggysm;froggysm;froggysm.gba' > '/media/<CARD>/ROMS/froggysm;froggysm.gba'
printf 'froggysm;froggysm;froggysm.gba' > /media/<CARD>/ROMS/froggysm/froggysm
syncThis resolves to system/Deimos/cores/froggysm.sf2k for the core and
ROMS/froggysm/froggysm for the ROM. Compare a core that works:
nfs2se;nfs2se;Need For Speed II SE.gba.
4. Launch
Open the file browser and start FroggySM.
If you see STOCK instead of the game, step 3 is wrong — check with
cat '/media/<CARD>/ROMS/froggysm;froggysm.gba', it must print
froggysm;froggysm;froggysm.gba.
Songs
/ROMS/froggysm/Songs/
└── <artist or pack>/
└── <song>/
├── song.sm # chart (required)
├── song.mp3 # referenced by #MUSIC
├── banner.png # optional
└── background.png # optional
#MUSIC: resolves relative to the chart's folder. A chart with no #TITLE:
borrows the folder name, split on the first -, ~, ( or [. Sub-folders
become albums; press SELECT on the select screen to cycle through them.
Audio
Re-encode your library to 128 kbps CBR, 44.1 kHz stereo. The decoder is
software (minimp3) on a soft-float CPU and bitrate costs frame time directly,
so 320 kbps stutters. 44.1 kHz divides evenly into the console's 22050 Hz
output, so the resampler never drifts:
find /ROMS/froggysm/Songs -iname '*.mp3' -print0 |
while IFS= read -r -d '' f; do
ffmpeg -y -i "$f" -vn -ar 44100 -ac 2 -b:a 128k -c:a libmp3lame "$f.tmp.mp3" &&
mv "$f.tmp.mp3" "$f"
doneControls
Nintendo Switch ABXY: X top, B bottom, Y left, A right.
| Where | Action | Input |
|---|---|---|
| Select | Change song | D-Pad Up / Down |
| Select | Change difficulty | D-Pad Left / Right, or L / R |
| Select | Change album | SELECT |
| Select | Play | A or START |
| Play | Lanes | D-Pad or Y/B/X/A |
| Play | Pause | START |
| Play | Quit to wheel | SELECT while paused |
What it does
.sm/ MSD charts, all five difficulties, holds and jumps#BPMS,#STOPS,#OFFSETwith correct beat↔second mapping- ScoreKeeperMAX2 scoring with the original judgment windows and
AAAA…D
grades, shown on a colour-graded badge - Album browsing, song preview, pause/resume
- MP3 streaming with the whole file in RAM — no SD access during gameplay
- The song clock is derived from decoded audio samples, exactly as in the
original, so notes cannot drift from the music however badly the frame rate
fluctuates
Docs: https://github.com/Synaps33/FroggySM#readme
Issues: https://github.com/Synaps33/FroggySM/issues