Kodewerx

Our culture has advanced beyond all that you could possibly comprehend with one hundred percent of your brain.
It is currently Sat Apr 27, 2024 7:24 am

All times are UTC - 8 hours [ DST ]


Forum rules


Discussion of illegal hacking/cracking is prohibited. (No virus/trojans/cracks/warez/etc allowed.)



Post new topic Reply to topic  [ 3 posts ] 
Author Message
 Post subject: N64 RSP Disassembler
PostPosted: Wed May 09, 2007 10:01 pm 
Offline
Komrade
Komrade
User avatar

Joined: Tue Mar 27, 2007 6:23 pm
Posts: 1354
Location: Mario Raceway, 1509.831, 217.198, -564.429
Title: Mario Kart 64 Hacker
I'm not sure if I understand the RSP correctly. Games load R4000 machine code into it at startup, and microcode (essentially an interpreted bytecode) in as necessary while they run, is that correct? If so I need a program that will disassemble a given file as either R4000 ASM or microcode, since I'm not sure which I'm dealing with. Does this exist?

It might help if I explain the situation: I zeroed out a block of data in Mario Kart 64, and it makes Mupen64 complain that it can't recognize the RSP code which has a checksum of zero (and then crash). So I've completely wiped out some RSP code, but I don't know if it's machine code or microcode. It starts out with D6 B4 01 19 00 06 FE 3D 00 00 00 00 00 00 2D FB. If my sources are accurate (not really likely), as microcode this would be an invalid instruction and a NOP, but it's entirely possible only part of the block is RSP code.

_________________
Image 143
HyperNova Software is now live (but may take a few tries to load) currently down; check out my PSP/DS/Game Boy/Windows/Linux homebrew, ROM hacks, and Gameshark codes!


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu May 10, 2007 1:53 pm 
Offline
Komrade
Komrade

Joined: Tue Mar 27, 2007 10:18 am
Posts: 1328
How does the processor know to execute RISC or Microcode, anyhow? While you're waiting for such a program, you could help yourself by figuring out which sections of the code are what, if you're able to. I looked up Microcode and it looked pretty ridiculous.

I think x86 is pretty ridiculous too, since the instructions have varying lengths (as if it wasn't bad enough that it was in grotesque little endian format). Microcode can have varying length too, yes? That's what I gathered...

_________________
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu May 10, 2007 8:14 pm 
Offline
Krew (Admin)
Krew (Admin)
User avatar

Joined: Sun Oct 01, 2006 9:26 pm
Posts: 3768
Title: All in a day's work.
All N64 emulators that I am aware of do not interpret or emulate RSP uCode at all. They use High Level Emulation which will instead identify which uCode kernel is being used, and simulates its functionality. This is why games with modified uCode (the Star Wars games, Indiana Jones, NBA ShowTime, etc) do not run in any emulator.

Nemu64 has an RSP disassembler, but I do not know how accurate it is, or if it even does anything at all.

The separation of MIPS and RSP code is simple, because they are separate chips with their own run-facilities (PC, stack, GPRs, etc.) and I believe RSP has its own region of memory specifically for its uCode.

_________________
I have to return some video tapes.

Feed me a stray cat.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 12 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group