ndf-zz / disfv1

Disassembler for Spin FV-1
MIT License
12 stars 3 forks source link

Decompiled Output Cannot Be Recompiled - Out of Range Error #2

Closed tdwalden closed 2 years ago

tdwalden commented 3 years ago

When disassembling program 0 of the attached Backup.BIN.zip file, line 55 outputs: wrlx REG7,-1, which gets interpreted by asfv1 as out of range when attempting to recompile. Manually correcting this code to wrlx REG7,-1.0 fixes compilation issue with asfv1.

After manually changing line 55, I assembled the program into a binary using asfv1, then disassembled it again using disfv1, only to have the same issue on line 55.

This occurs often in the Backup.BIN file in programs 0, 3, 4, and 7, as shown by attempting to compile all of them into one binary using asfv1:

Compiling test into Test.BIN... Program 0... parse error: S1_14 arg -0x1 out of range for WRLX on line 55 errors in input, assembly aborted Program 1... Program 2... Program 3... parse error: S_10 arg -0x1 out of range for SOF on line 54 parse error: S1_14 arg -0x1 out of range for WRHX on line 74 errors in input, assembly aborted Program 4... parse error: S1_14 arg -0x1 out of range for WRAX on line 65 parse error: S1_14 arg -0x1 out of range for WRAX on line 73 parse error: S1_14 arg -0x1 out of range for WRAX on line 81 parse error: S1_14 arg -0x1 out of range for WRAX on line 89 parse error: S1_14 arg -0x1 out of range for WRAX on line 97 parse error: S1_14 arg -0x1 out of range for WRAX on line 105 parse error: S1_14 arg -0x2 out of range for SOF on line 108 parse error: S1_14 arg -0x2 out of range for SOF on line 109 parse error: S1_14 arg -0x2 out of range for SOF on line 110 parse error: S1_14 arg -0x2 out of range for SOF on line 111 parse error: S1_14 arg -0x2 out of range for SOF on line 112 too many errors, aborting. Program 5... Program 6... Program 7... parse error: S1_14 arg -0x1 out of range for SOF on line 12 parse error: S1_14 arg -0x1 out of range for RDAX on line 14 parse error: S1_14 arg -0x1 out of range for WRHX on line 25 parse error: S1_14 arg -0x1 out of range for WRHX on line 50 parse error: S1_14 arg -0x1 out of range for WRHX on line 77 parse error: S1_14 arg -0x1 out of range for WRHX on line 92 errors in input, assembly aborted Done. Test.BIN created.

No output is observed in disfv1 to indicate any failure by the disassembler, which leads me to believe this is a bug. This worked approximately 1-2 years ago, but I can't give an exact timeframe.

ndf-zz commented 2 years ago

Thanks, yes that was a bug. Fixed now.