Files
2026-03-24 18:11:39 -06:00

103 lines
2.4 KiB
JSON

{
"_comment": "SWF Converter Configuration File. Keys with _ prefix are comments/metadata.",
"_schema_reference": "See config_manager.py for full schema documentation.",
"_defaults": {
"_comment": "These apply to ALL SWF files unless overridden per-file.",
"emulator": "ruffle",
"loop_detection": "hash",
"loop_grace": 5.0,
"max_duration": 600.0,
"fps": 30,
"crf": 18,
"window_size": "800x600",
"startup_delay": 3.0,
"audio": true
},
"simple_animation.swf": {
"_comment": "A basic non-interactive animation with a known loop point.",
"end_seconds": 45.0,
"interactions": []
},
"looping_intro.swf": {
"_comment": "An animation that loops endlessly. Use hash detection + grace period.",
"loop_detection": "hash",
"loop_grace": 5.0,
"interactions": []
},
"interactive_lesson.swf": {
"_comment": "An interactive lesson with two choice buttons appearing at t=12.5s.",
"loop_detection": "hash",
"loop_grace": 5.0,
"interactions": [
{
"t": 12.5,
"x": 320,
"y": 240,
"label": "button_yes",
"_comment": "Clicking 'Yes' at the choice screen"
},
{
"t": 12.5,
"x": 320,
"y": 340,
"label": "button_no",
"_comment": "Clicking 'No' at the choice screen"
}
]
},
"quiz.swf": {
"_comment": "A quiz with multiple questions. Each question has clickable answer areas.",
"loop_detection": "hash",
"loop_grace": 3.0,
"interactions": [
{
"t": 8.0,
"x": 200,
"y": 300,
"label": "q1_answer_a"
},
{
"t": 8.0,
"x": 200,
"y": 380,
"label": "q1_answer_b"
},
{
"t": 8.0,
"x": 200,
"y": 460,
"label": "q1_answer_c"
}
]
},
"menu.swf": {
"_comment": "A menu SWF with known end time. No loop detection needed.",
"loop_detection": "none",
"end_seconds": 30.0,
"interactions": []
},
"problematic.swf": {
"_comment": "A SWF that Ruffle struggles with — use Lightspark as fallback.",
"emulator": "lightspark",
"loop_detection": "freeze",
"loop_grace": 5.0,
"interactions": []
},
"high_quality_export.swf": {
"_comment": "Export at higher quality for archival purposes.",
"crf": 12,
"fps": 60,
"window_size": "1280x720",
"loop_detection": "hash",
"interactions": []
}
}