Games that use unofficial opcodes
Moderator: Moderators
Games that use unofficial opcodes
I've noticed a few other games seem to use unofficial opcodes other than the ones mentioned here:
http://wiki.nesdev.com/w/index.php/Tric ... late_games
http://wiki.nesdev.com/w/index.php/CPU_ ... al_opcodes
Dynowarz uses $DA and $FA (one byte NOPs) - you can see this happen on the first level when your dino throws his fist.
F-117A Stealth Fighter uses $89 (two byte NOP) - you can see this happen when your stealth fighter first takes off and gets to the top of the screen before switching to the interior cockpit view
Infiltrator also uses $89 (two byte NOP) - on the title screen
We should probably update the wiki page(s) to mention these other usages of unofficial opcodes.
Are there more that anyone is aware of? I suspect Rollergames uses $03...but I'm still investigating that one...
http://wiki.nesdev.com/w/index.php/Tric ... late_games
http://wiki.nesdev.com/w/index.php/CPU_ ... al_opcodes
Dynowarz uses $DA and $FA (one byte NOPs) - you can see this happen on the first level when your dino throws his fist.
F-117A Stealth Fighter uses $89 (two byte NOP) - you can see this happen when your stealth fighter first takes off and gets to the top of the screen before switching to the interior cockpit view
Infiltrator also uses $89 (two byte NOP) - on the title screen
We should probably update the wiki page(s) to mention these other usages of unofficial opcodes.
Are there more that anyone is aware of? I suspect Rollergames uses $03...but I'm still investigating that one...
Re: Games that use unofficial opcodes
Confirmed on Nintendulator:isosceles wrote:Dynowarz uses $DA and $FA (one byte NOPs) - you can see this happen on the first level when your dino throws his fist.
Code: Select all
Invalid opcode $DA (NOP) encountered at $E56D
Invalid opcode $FA (NOP) encountered at $E57D
Also confirmed:isosceles wrote:F-117A Stealth Fighter uses $89 (two byte NOP) - you can see this happen when your stealth fighter first takes off and gets to the top of the screen before switching to the interior cockpit view
Code: Select all
Invalid opcode $89 (NOP) encountered at $B702
Invalid opcode $89 (NOP) encountered at $B753
Invalid opcode $89 (NOP) encountered at $B9AA
And this one also:isosceles wrote:Infiltrator also uses $89 (two byte NOP) - on the title screen
Code: Select all
Invalid opcode $89 (NOP) encountered at $8939
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi
Re: Games that use unofficial opcodes
So what's stopping you? Did you make an account on the wiki? If so, do you need us to grant you edit access? (Tepples or I can do this no problem, just drop one of us a PM with your Wiki username and we'll make it happen).isosceles wrote:We should probably update the wiki page(s) to mention these other usages of unofficial opcodes.
The wiki is a collaborate effort -- in other words, this post here on the forum is totally cool and appreciated, but you effectively could have done the same thing by editing the wiki in the first place. "We should probably update it" implies that for some reason you can't or won't, so let's work together to make sure you can and will!
Re: Games that use unofficial opcodes
It'd be also interesting to see if the usage of those unofficial opcodes is the result of a program flow bug that miraculously didn't make the game crash (so the developers never fixed it), or if it is really the result of using them on purpose.
I really see no advantage in using unofficial multi-bytes nop as opposed to real nops.
I really see no advantage in using unofficial multi-bytes nop as opposed to real nops.
Re: Games that use unofficial opcodes
...or a bad dump.
Re: Games that use unofficial opcodes
$89 can be the result of a mistaken BIT in code originally intended for a TurboGrafx, Lynx, or Super NES. The 65C02 interprets $89 as BIT #ii, which sets the Z flag based on A & ii. The 6502 interprets it as a 2-byte NOP, which is exactly the same except flags aren't affected.
Do any of these games use the 2-byte NOP as a clockslide? Besides, now that flash memory has replaced mask ROM, 2-byte NOPs are useful for making each copy identifiably unique.Bregalad wrote:I really see no advantage in using unofficial multi-bytes nop as opposed to real nops.
Re: Games that use unofficial opcodes
Heh, interesting way to play with the opcodes.tepples wrote:clockslide
Re: Games that use unofficial opcodes
It appears Rollergames uses $03 (SLO), at $C7EE - this happens almost immediately upon the start of the first level, and periodically thereafter.
Re: Games that use unofficial opcodes
...and The Simpsons: Bart vs The World uses $0B (ANC) at $F126. You can see this happen on the China boat level, when Bart throws his ball.
Re: Games that use unofficial opcodes
Couldn't reproduce either one of those.
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi
Re: Games that use unofficial opcodes
Noting here: now that you (isosceles) have wiki edit access, please be careful in adding entries for these games. If folks can reproduce + verify the behaviour, then thumbs up, but don't be hasty with your additions. We don't want to send emulator authors on wild goose chases if we can avoid it.
Re: Games that use unofficial opcodes
This was my first thought, either that or for doing cycle-exact timing of hardware accesses without needlessly messing with the CPU state (I know I have used otherwise inefficient opcodes in the past because they happen to give me the perfect timing for the hardware).tepples wrote:Do any of these games use the 2-byte NOP as a clockslide?
Re: Games that use unofficial opcodes
Oops - my apologies - Turns out I had bad dumps of both Rollergames and Bart Vs. The World. There is no unofficial opcode use in either.thefox wrote:Couldn't reproduce either one of those.
Re: Games that use unofficial opcodes
That's what I had warned... and ignored.isosceles wrote:Oops - my apologies - Turns out I had bad dumps of both Rollergames and Bart Vs. The World. There is no unofficial opcode use in either.thefox wrote:Couldn't reproduce either one of those.
Re: Games that use unofficial opcodes
The first three games mentioned in the thread are unlikely to be bad dumps. When I made my first post I verified their CRC32 against those from bootgod's NES cart database. At least one of the games had been dumped twice by different people. I'm not sure what's the likelihood that some of the dumps I have originate from bootgod. In any case, I believe bootgod has been fairly careful about getting the dumps right on his site.
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi