Install
openclaw skills install @stanestane/swf-game-port-decompilerDecompile SWF games for engine ports using FFDec/JPEXS.
openclaw skills install @stanestane/swf-game-port-decompilerUse this skill to decompile old Flash/SWF games into a porting workspace: code, assets, frame/sprite renders, tag structure, XML timeline data, and a short audit that helps rebuild the game in a modern engine.
ffdec-cli.exe on Windows or ffdec/ffdec.sh elsewhere.ffdec.jar..swf. Write all output to a separate decompile folder.C:\Program Files (x86)\FFDec\ffdec-cli.exe.ffdec-cli, ffdec, or ffdec.sh.python scripts/ffdec_game_decompile.py full game.swf out/game-decompilecode/actionscript for AS1/AS2/AS3 source.code/pcodehex for lower-level P-code when source is missing, wrong, or obfuscated.assets/images, assets/shapes_svg, assets/shapes_png, assets/sounds, assets/fonts, assets/text, assets/binary.timelines/frames for rendered main timeline frames.timelines/sprites for rendered movie clips/sprites.structure/tags.txt, structure/movie.xml, structure/symbolClass.csv.PORTING_AUDIT.md for a generated first-pass map.movie.xml and tags.txt to identify DefineSprite, PlaceObject, ShowFrame, DoAction, DoABC, labels, exports, and symbol classes.frame and sprite exports to understand visual state changes that are hard to infer from code alone.The helper script wraps these, but know the underlying calls:
ffdec-cli -format script:as -export script out/code/actionscript game.swfffdec-cli -format script:pcodehex -export script out/code/pcodehex game.swfffdec-cli -format image:png_gif_jpeg_alpha,shape:svg,sound:mp3_wav,text:plain -export image,shape,sound,text out/assets game.swfffdec-cli -format frame:png,sprite:png,button:png -export frame,sprite,button out/timelines game.swfffdec-cli -dumpSWF game.swf > out/structure/tags.txtffdec-cli -swf2xml -external all game.swf out/structure/movie.xmlonEnterFrame, addEventListener, ENTER_FRAME, gotoAndStop, gotoAndPlay, attachMovie, duplicateMovieClip, hitTest, _root, _global, stage, and exported class names.DoABC, and event listeners.symbolClass.csv to connect class names to character IDs.When finishing a decompile-for-porting pass, report: