If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler
NEW : We have got a new blog where we post some interesting SWF internals info.

#2407 -replace command no longer working as of 21.0.0
Author:
Faen90

Date created:
Type: bug
Visibility: Everybody
Assigned to:
Labels: AS1/2Commandline
State: upgraded 

> What steps will reproduce the problem?
simply run ./ffdec-cli.exe - replace <in> <out> <script name> <script file>
in my test setup it is
./ffdec.bat -replace "C:\Users\Faen90\Desktop\constructibleobjectmenu.swf"
"C:\Users\Faen90\Desktop\constructibleobjectmenuNew.swf" "\__Packages\CraftingListEntry"
"C:\Users\Faen90\Desktop\CraftingListEntry.as"
> What is the expected output? What do you see instead?
in ffdec 20.1.0 nightly buid 2789 this command replaces the content with the output:
Replace AS1/2
Warning: This feature is EXPERIMENTAL
in all newer builds i see:
\__Packages\CraftingListEntry is not recognized as a CharacterId or a script name.
> What version of the product are you using? Is it "nightly build"? Which operating system
do you have?
Windows 11 - versioning explained above.
> Please provide any additional information below. If the problem is related to a SWF
file, attach it here, otherwise we can't help you.
The file is not mine to include however the error is easily reproduced as no matter what
formatting i try of <scriptname> nothing works.
Cheers!
Just to add to this, I use this as part of a tool I built to auto patch swf’s for
Skyrim, the extract commands and reconciliation works in all versions I’ve tested, the
problem is specifically the -replace command.
I also get the same error when I try to use the -replace command with an argsFile
Cheers.
Anybody any ideas on this one?
in ffdec 20.1.0 nightly buid 2789
"\__Packages\CraftingListEntry" is valid and works for param <scriptName1>
in later versions so far i have tried:
"\__Packages\CraftingListEntry"
"__Packages\CraftingListEntry"
"\scripts\__Packages\CraftingListEntry"
"scripts\__Packages\CraftingListEntry"
"\CraftingListEntry"
"CraftingListEntry"
"\__Packages\CraftingListEntry.as"
"__Packages\CraftingListEntry.as"
"\scripts\__Packages\CraftingListEntry.as"
"scripts\__Packages\CraftingListEntry.as"
"\CraftingListEntry.as"
"CraftingListEntry.as"
I have no idea what the format has changed to, or if it is just broken.
Comapring the last version of CommandLineArgumentParser.java which works to the latest
the only change in parseReplace() is this line
} else if (swf.getCharacters().containsKey(characterId)) {
has been changed to
} else if (swf.getCharacters(false).containsKey(characterId)) {
i have no idea what it does but hopefully narrows down the problem
Please try nightly 3026, this should be fixed.
State: new→upgraded
Can confirm this is now fixed and working.
Thank you for a speedy fix!