retroenv / nesgodisasm

Nintendo Entertainment System ROM disassembler written in Golang
Apache License 2.0
14 stars 2 forks source link

ASM6 Output is Broken #74

Open htmlcoder2023 opened 8 months ago

htmlcoder2023 commented 8 months ago

The bug is that if the asm6 assembler config is chosen, the output asm file is not assemble-able with asm6.

To reproduce the behavior: Get an unmodified Super Mario Bros (NTSC) ROM and write nesgodisasm -a asm6 -o smb.asm smb.nes. Then, write asm6 smb.asm. It should show the output above.

I expected the output of the diasssembler to assemble back into a ROM, but instead, tons of errors popped up as seen in the error.txt file.

error.txt

cornelk commented 8 months ago

@htmlcoder2023 thanks for the bug report. Only asm6f is supported (linked in the readme) as the standard asm6 does not support some unofficial opcodes that you can find in some ROMs

htmlcoder2023 commented 8 months ago

It does not seem to work even with asm6f. It still shows the same errors. I tried typing nesgodisasm -a asm6f -o smb1.asm smb.nes but the disassembler does not support "asm6f."

cornelk commented 8 months ago

I was not able to replicate the bug using asm6f 1.6 (+ f003):

nesgodisasm -a asm6 -o smb1.asm Super\ Mario\ Bros.\ \(World\).nes

asm6f smb1.asm
pass 1..
pass 2..
smb1.bin written (40976 bytes).
htmlcoder2023 commented 8 months ago

@cornelk I was using asm6f version 1.6, which can be found here: https://github.com/freem/asm6f/releases/tag/v1.6_freem02. It doesn't work with either the 32-bit or 64-bit asm6f versions. I'm not sure what (+ f003) means.