shex icon indicating copy to clipboard operation
shex copied to clipboard

Opcodes that Disassemble Incorrectly

Open Yoshifanatic1 opened this issue 4 years ago • 0 comments

When disassembling SNES code:

ORA $00,S	-> ORA $00
AND $00,S	-> AND $00
BIT $0000,X	-> BIT $00,X
AND $0000,X	-> AND $00,X
ROL $0000,X	-> ROL $00,X
EOR $00,S	-> EOR $00
MVP $00,$01	-> MVN $0100
MVN $00,$01	-> MVN $0100
ADC $00,S	-> ADC $00
CMP $00,S	-> CMP $00
SBC $00,S	-> SBC $00

When disassembling SPC700 code:

OR $01, $00	-> or $00, $01
OR1 C, $0000	-> or1 c, $0000:$00 : clrp
OR A, $0000+X	-> or a, $0000
OR A, $0000+Y	-> or a, $0000
OR $01, #$00	-> or $00
AND $01, $00	-> and $00, $01
OR1 C, !$0000	-> or1 c, !$0000:$00 : clrp
AND A, $0000+X	-> and a, $0000
AND A, $0000+Y	-> and a, $0000
AND $01, #$00	-> and $00
EOR $01, $00	-> eor $00, $01
AND1 C, $0000	-> and1 c, $0000:$00 : clrp
PCALL $FF00	-> pcall $ff#$00
EOR A, $0000+X	-> eor a, $0000
EOR A, $0000+Y	-> eor a, $0000
EOR $01, #$00	-> eor $00
CMP $01, $00	-> cmp $00, $01
AND1 C, !$0000	-> and1 c, !$0000:$00 : clrp
CMP A, $0000+X	-> cmp a, $0000
CMP A, $0000+Y	-> cmp a, $0000
CMP $01, #$00	-> cmp $00
ADC $01, $00	-> adc $00, $01
EOR1 C, $0000	-> eor1 c, $0000:$00 : clrp
MOV $01, #$00	-> mov $00
ADC A, $0000+X	-> adc a, $0000
ADC A, $0000+Y	-> adc a, $0000
ADC $01, #$00	-> adc $00
SBC $01, $00	-> sbc $00, $01
MOV1 C, $0000	-> mov1 c, $0000:$00 : clrp
MOV (X+), A	-> mov (x)+, a
SBC A, $0000+X	-> sbc a, $0000
SBC A, $0000+Y	-> sbc a, $0000
SBC $01, #$00	-> sbc $00
MOV A, (X+)	-> mov a, (x)+
MOV1 $0000, C	-> mov1 $0000:$00, c : clrp
NOT1 C, $0000	-> not1 c, $0000:$00 : clrp
MOV A, $0000+X	-> mov a, $0000
MOV A, $0000+Y	-> mov a, $0000
MOV A, ($00)+X	-> mov a, $00+x
MOV $01, $00	-> mov $00, $01

When disassembling GSU code:

ALT1		-> 
ALT2		-> 
ALT3		-> 
BGE $00		-> blt $00
BLT		-> bge $00
LEA R0,$0000	-> iwt r0,#$0000
LM R0,($0000)	-> lm r0 : stop : stop
LM R1,($0000)	-> lm r1 : stop : stop
LM R2,($0000)	-> lm r2 : stop : stop
LM R3,($0000)	-> lm r3 : stop : stop
LM R4,($0000)	-> lm r4 : stop : stop
LM R5,($0000)	-> lm r5 : stop : stop
LM R6,($0000)	-> lm r6 : stop : stop
LM R7,($0000)	-> lm r7 : stop : stop
LM R8,($0000)	-> lm r8 : stop : stop
LM R9,($0000)	-> lm r9 : stop : stop
LM R10,($0000)	-> lm r10 : stop : stop
LM R11,($0000)	-> lm r11 : stop : stop
LM R12,($0000)	-> lm r12 : stop : stop
LM R13,($0000)	-> lm r13 : stop : stop
LM R14,($0000)	-> lm r14 : stop : stop
LM R15,($0000)	-> lm r15 : stop : stop
LMS R0,($00)	-> lms r0,(#$7A00)
LMS R1,($00)	-> lms r1,(#$7A00)
LMS R2,($00)	-> lms r2,(#$7A00)
LMS R3,($00)	-> lms r3,(#$7A00)
LMS R4,($00)	-> lms r4,(#$7A00)
LMS R5,($00)	-> lms r5,(#$7A00)
LMS R6,($00)	-> lms r6,(#$7A00)
LMS R7,($00)	-> lms r7,(#$7A00)
LMS R8,($00)	-> lms r8,(#$7A00)
LMS R9,($00)	-> lms r9,(#$7A00)
LMS R10,($00)	-> lms r10,(#$7A00)
LMS R11,($00)	-> lms r11,(#$7A00)
LMS R12,($00)	-> lms r12,(#$7A00)
LMS R13,($00)	-> lms r13,(#$7A00)
LMS R14,($00)	-> lms r14,(#$7A00)
LMS R15,($00)	-> lms r15,(#$7A00)
MOVE ($00),R0	-> ???
MOVE R0,#$00	-> ???
MOVE R0,($00)	-> ???
MOVE R0,R0	-> ???
MOVEB (R0),R0	-> ???
MOVEB R0,(R0)	-> ???
MOVES R0,R0	-> ???
MOVEW (R0),R0	-> ???
MOVEW R0,(R0)	-> ???
SM ($0000),R0	-> sm r0 : stop : stop
SM ($0000),R1	-> sm r1 : stop : stop
SM ($0000),R2	-> sm r2 : stop : stop
SM ($0000),R3	-> sm r3 : stop : stop
SM ($0000),R4	-> sm r4 : stop : stop
SM ($0000),R5	-> sm r5 : stop : stop
SM ($0000),R6	-> sm r6 : stop : stop
SM ($0000),R7	-> sm r7 : stop : stop
SM ($0000),R8	-> sm r8 : stop : stop
SM ($0000),R9	-> sm r9 : stop : stop
SM ($0000),R10	-> sm r10 : stop : stop
SM ($0000),R11	-> sm r11 : stop : stop
SM ($0000),R12	-> sm r12 : stop : stop
SM ($0000),R13	-> sm r13 : stop : stop
SM ($0000),R14	-> sm r14 : stop : stop
SM ($0000),R15	-> sm r15 : stop : stop
SMS ($00),R0	-> ???
SMS ($00),R1	-> ???
SMS ($00),R2	-> ???
SMS ($00),R3	-> ???
SMS ($00),R4	-> ???
SMS ($00),R5	-> ???
SMS ($00),R6	-> ???
SMS ($00),R7	-> ???
SMS ($00),R8	-> ???
SMS ($00),R9	-> ???
SMS ($00),R10	-> ???
SMS ($00),R11	-> ???
SMS ($00),R12	-> ???
SMS ($00),R13	-> ???
SMS ($00),R14	-> ???
SMS ($00),R15	-> ???

I'm not very experienced with SuperFX coding, so it was a bit hard to tell where some of the opcodes started when disassembling them, but I do know that SHex's disassembly output did not match what I inserted into my test ROM.

Yoshifanatic1 avatar Aug 24 '20 17:08 Yoshifanatic1