Project

General

Profile

Actions

Emulator Issues #10571

closed

Kirby's Return to Dreamland - Invalid Instruction?

Added by nwplayer123 about 7 years ago. Updated about 2 years ago.

Status:
Working as intended
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

Kirby's Return to Dreamland

Game ID? (right click the game in the game list, properties, info tab)

SUKE01

MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)

DADE208216BD03A370E8217439BEDBD8 (verified with Redump)

What's the problem? Describe what went wrong.

There's an invalid/illegal instruction (supposedly) at 8017C510, bytecode is 2CD408A9, it doesn't disassemble in IDA or Dolphin, but https://www.onlinedisassembler.com/odaweb/BDqA00Df/0 disassembles it to cmpwi cr1, r20, 2217

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.

Dolphin 5.0-5627, probably.

Actions #1

Updated by gamemasterplc about 7 years ago

its a checksum for the game's anti piracy embedded in the middle of code. it always skips those instructions

Actions #2

Updated by JMC4789 over 6 years ago

  • Status changed from New to Invalid

The issue report was not filled out well enough with ways to reproduce the issue, as such, I tried booting the game and had no problems starting it up.

I recommend turning off cheatcodes and whatnot, as they're known to set off metafortress.

Actions #3

Updated by nwplayer123 over 6 years ago

not an operational thing @JMC4789, was trying to reverse engineer the game and a good chunk of the instructions seemed to be invalid opcodes, gamemasterpic's probably right, they compiled it somehow to mess with anyone trying to disassemble it (like me). Was hoping someone could check that opcode to see if it's actually valid and just not disassembling right.

Actions #4

Updated by JMC4789 over 6 years ago

  • Status changed from Invalid to New

Ah, okay.

I'll let someone more knowledgeable handle this issue.

Actions #5

Updated by flacs about 2 years ago

  • Status changed from New to Fix pending
Actions #6

Updated by pokechu22 about 2 years ago

  • Status changed from Fix pending to Working as intended

After further investigation it seems like this is data (embedded in the middle of a function, but jumped past), not code, so disassembling it as (ill) is more useful than treating it specially. (There also are a lot more different illegal instructions than just the one at 8017C510, and they take a wide variety of values (not just cmp-like things).)

Actions

Also available in: Atom PDF