mirror of
https://github.com/JanNeuendorf/SVC16.git
synced 2025-07-29 14:21:50 +00:00
Invalid opcodes in rectavoider.svc16 #13
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @xyloflake on 12/19/2024
Hello, cool repo you've got here :)
I have created a simple disassembler that just reads bytes from the svc16 file as an
Vec<u8>
buffer and then converts them to anVec<u16>
containing the instructions while usingfrom_le_bytes
.I then iterate through the u16 vec taking 4 values at a time. Then map through them and I have an array [String; 0x10] called op_codes that basically has the opcodes listed in the readme file in order. The disassembler then matches the 1st out of the 4 values to the op_codes and replaces them with the string version of the opcode (for example 0 gets replaced with "Set").
The disassembler works fine with
all_colors.svc16
but throws invalid opcode when disassemblingrectavoider.svc16
. Upon further inspection, I found out that the file has invalid opcodes, the first occurence of which occurs at line 4711 after executingThe result is:

The opcode observed is
c8 00
in hex which translates to200
in decimal. From my understanding, there is no opcode beyond 16(?).On further inspection, dozens of such invalid opcodes were observed.
Is there anything I'm missing out on or doing wrong?
I obviously have executed
rectavoider.svc16
with svc16 and the game works as expected.Any help is much appreciated and thanks for creating this amazing repo!