Ruffle overlay for the sby 5.45 loader pack
Adobe Flash Player is a pain to install and is dead on phones / current
browsers. This zip drops Ruffle (open-source Flash emulator) onto an
existing sby loader pack so the same Loader.swf + Mods folder can run on:
- Windows desktop (ruffle.exe, no browser)
- Browser, no server (play.html — pick your Loader5.45 folder or a zip)
- Phone (same play.html, pick a zip of Loader5.45)
- HTML hosting (local Python server, or your own static host)
It is an overlay. You still need a normal sby loader pack (the folder
that already contains Loader5.45). Unzip this next to Loader5.45 so you
get play_ruffle.bat, play.html, ruffle_runtime\, and one new init mod.
Install
1. Unzip onto your existing pack. play_ruffle.bat must sit next to
Loader5.45, not inside it.
2. Copy the folder
Loader5.45\Mods\$INIT$\rufflecompatV1\
from the zip if the unzip did not already land it there.
3. Edit Loader5.45\Mods\$INIT$\Mods.txt and add this line right after
TemplateExtension:
rufflecompatV1/rufflecompatV1.swf
Do not replace your Mods.txt with mine unless you want to. There is
no extra Settings file for this. Settings.txt does not need a change.
4. Windows: double-click play_ruffle.bat
Browser: open play.html and pick your Loader5.45 folder
Phone: zip Loader5.45 (must contain Loader.swf + SDT.swf), copy the
zip to the phone, open play.html, pick the zip
HTML hosting on this PC: host_browser.bat (needs Python)
HTML hosting on a website: upload overlay + Loader5.45, open
/play_hosted.html — and make sure Mods/$INIT$/Mods.txt is actually
fetchable (some hosts eat the $ in $INIT$).
Mods.txt: two lists in the zip (examples\ only, they will not overwrite you)
examples\baseMods.txt
This is the list that runs well. Start here, especially on
Ruffle / browser / phone. Add your own mods at the bottom, then
copy it over Mods\$INIT$\Mods.txt if you want it live.
examples\Mods.txt
This is my full init list. It runs, but it is slow. Fine on a PC
if you wait out the 120s script budget. Too heavy for phones.
moreclothing is already commented.
Wait until init finishes before loading characters or extra mods. Last
status line is your "it actually loaded" signal.
What rufflecompatV1 is (modders)
One $INIT$ SWF. Source is in the folder (rufflecompatV1.as, compile.bat).
Ruffle's AVM2 drops method closures when they are stored in arrays and
called later (Error #1006). Flash does not. That shows up as:
- moreclothing / TemplateExtension armupdates
- charcode collectors / save string
- ExtraMod.doUnload on Reset
- armwear fillFunction
The shim wraps those callbacks with Function.apply, unhooks Ruffle-broken
masks on him (penis / legs), and bakes a lid bitmap mask so her eyes
have a hole. It unloads itself after install and leaves an enterFrame
persist so later mods get the same wrappers.
If you write AS3 for this loader and it only fails under Ruffle:
- Do not stash `someObj.method` in an Array/proxy and call it later
without going through apply/call on a bound function.
- Do not lProxy a native Loader method that restoreProxy assigns back
(resetChar hit Error #1037 that way).
- AIR FileStream writeback does not exist. FileReference does.
- cacheAsBitmap + mask on animated clips is where Ruffle and Flash
diverge visually.
No Settings\ file. Keep the SWF near the top of Mods.txt, after
TemplateExtension.
What this zip does not include
The game. Your characters. moreclothing. Audio libraries. Adobe
standalone Flash. Logs / saves from my machine.
Windows ships ruffle.exe. Other OS: play.html, or download Ruffle
desktop from ruffle.rs and use the same flags as ruffle_runtime\play.ps1
(--filesystem-access-mode allow, --player-version 11, --base the
Loader5.45 folder, --max-execution-duration 120).
The native Ruffle Android app cannot see Mods\. Do not bother with it
for this pack.
Known limits
Emulator, not Flash. Some mods will still break. Full init is slow, not
frozen. Expected 404s in the log are loader probes (Settings.txt next
to the SWF, Hair.png on $INIT$, comment lines). SharedObjects go to
ruffle_runtime\saves.
Tutorial, file labels, hosting notes, and the Mac/Linux flags are in
INSTALL_RUFFLE.txt inside the zip. MANIFEST.txt lists every file.
Adobe Flash Player is a pain to install and is dead on phones / current
browsers. This zip drops Ruffle (open-source Flash emulator) onto an
existing sby loader pack so the same Loader.swf + Mods folder can run on:
- Windows desktop (ruffle.exe, no browser)
- Browser, no server (play.html — pick your Loader5.45 folder or a zip)
- Phone (same play.html, pick a zip of Loader5.45)
- HTML hosting (local Python server, or your own static host)
It is an overlay. You still need a normal sby loader pack (the folder
that already contains Loader5.45). Unzip this next to Loader5.45 so you
get play_ruffle.bat, play.html, ruffle_runtime\, and one new init mod.
Install
1. Unzip onto your existing pack. play_ruffle.bat must sit next to
Loader5.45, not inside it.
2. Copy the folder
Loader5.45\Mods\$INIT$\rufflecompatV1\
from the zip if the unzip did not already land it there.
3. Edit Loader5.45\Mods\$INIT$\Mods.txt and add this line right after
TemplateExtension:
rufflecompatV1/rufflecompatV1.swf
Do not replace your Mods.txt with mine unless you want to. There is
no extra Settings file for this. Settings.txt does not need a change.
4. Windows: double-click play_ruffle.bat
Browser: open play.html and pick your Loader5.45 folder
Phone: zip Loader5.45 (must contain Loader.swf + SDT.swf), copy the
zip to the phone, open play.html, pick the zip
HTML hosting on this PC: host_browser.bat (needs Python)
HTML hosting on a website: upload overlay + Loader5.45, open
/play_hosted.html — and make sure Mods/$INIT$/Mods.txt is actually
fetchable (some hosts eat the $ in $INIT$).
Mods.txt: two lists in the zip (examples\ only, they will not overwrite you)
examples\baseMods.txt
This is the list that runs well. Start here, especially on
Ruffle / browser / phone. Add your own mods at the bottom, then
copy it over Mods\$INIT$\Mods.txt if you want it live.
examples\Mods.txt
This is my full init list. It runs, but it is slow. Fine on a PC
if you wait out the 120s script budget. Too heavy for phones.
moreclothing is already commented.
Wait until init finishes before loading characters or extra mods. Last
status line is your "it actually loaded" signal.
What rufflecompatV1 is (modders)
One $INIT$ SWF. Source is in the folder (rufflecompatV1.as, compile.bat).
Ruffle's AVM2 drops method closures when they are stored in arrays and
called later (Error #1006). Flash does not. That shows up as:
- moreclothing / TemplateExtension armupdates
- charcode collectors / save string
- ExtraMod.doUnload on Reset
- armwear fillFunction
The shim wraps those callbacks with Function.apply, unhooks Ruffle-broken
masks on him (penis / legs), and bakes a lid bitmap mask so her eyes
have a hole. It unloads itself after install and leaves an enterFrame
persist so later mods get the same wrappers.
If you write AS3 for this loader and it only fails under Ruffle:
- Do not stash `someObj.method` in an Array/proxy and call it later
without going through apply/call on a bound function.
- Do not lProxy a native Loader method that restoreProxy assigns back
(resetChar hit Error #1037 that way).
- AIR FileStream writeback does not exist. FileReference does.
- cacheAsBitmap + mask on animated clips is where Ruffle and Flash
diverge visually.
No Settings\ file. Keep the SWF near the top of Mods.txt, after
TemplateExtension.
What this zip does not include
The game. Your characters. moreclothing. Audio libraries. Adobe
standalone Flash. Logs / saves from my machine.
Windows ships ruffle.exe. Other OS: play.html, or download Ruffle
desktop from ruffle.rs and use the same flags as ruffle_runtime\play.ps1
(--filesystem-access-mode allow, --player-version 11, --base the
Loader5.45 folder, --max-execution-duration 120).
The native Ruffle Android app cannot see Mods\. Do not bother with it
for this pack.
Known limits
Emulator, not Flash. Some mods will still break. Full init is slow, not
frozen. Expected 404s in the log are loader probes (Settings.txt next
to the SWF, Hair.png on $INIT$, comment lines). SharedObjects go to
ruffle_runtime\saves.
Tutorial, file labels, hosting notes, and the Mac/Linux flags are in
INSTALL_RUFFLE.txt inside the zip. MANIFEST.txt lists every file.