What's new

Announcement: Cycle-accurate N64 development underway.

F

Fanatic 64

Guest
Yeah. You dump the PIFROM from the Nintendo 64, and the Cart from, well, a cartridge.

(I don't know how the hell you dump the BIOS from the N64. I didn't even though it had one. You can't pirate that file either)
 

ShadowFX

Guardian
Looking good there! Though a bit dark at times.

starfox1.png
starfox2.png


Got it to work on Windows (thanks Durza007) with virtually no effort :)
 
OP
MarathonMan

MarathonMan

Emulator Developer
I do have some questions regarding overall graphics since I can't see for myself right now (youtube isn't accessible at my work). First: Texture alignment, this has always been at best a tolerable thing for me to ignore, but does annoy me every once in a while. Is that part more accurate than other emulators?

MooglyGuy's (+MAME team) software render is pretty much pixel for pixel with the actual console, so yes.

Looking good there! Though a bit dark at times.

It is certainly dark, and are some things (health bars) that don't render in game. There is definitely a buggered instruction somewhere.

"pifrom" is the BIOS dump. Cart is the game ROM. I believe you have to point to both of those in the command line. Obviously, you'll have to get both of those yourself.

Still, even after trying this, it would not load for me.

You need to pass the location to both the PIF ROM image and a ROM (cart) image. There is no help menu, no UI, etc. or anything. The ROM must be in native, big endian byteorder (z64); it won't byteswap for you. MAME/MESS also requires this image in order to boot their emulator.

To be clear, launch like so:
cen64.exe pifrom.bin starfox.z64

assuming those files are in the same directory as cen64.exe

What is the error that you get?
 
Last edited:

ShadowFX

Guardian
Seeing as you booted Mario Kart 64 (U) successfully, I was wondering why I'm getting a "Failed to load the ROM." on mine.
 
F

Fanatic 64

Guest
Yeah but, how do I dump the PIFROM from my N64? I hope I don't need a Doctor V64...
 

ShadowFX

Guardian
Compatibility 2013.8.21 - Test 1

I was curious as to its compatibility in its current state.
So far I've been able to boot the following commercial games (using the GoodN64 names):

Batman Beyond - Return of the Joker (U) [!]
Cruis'n Exotica (U) [!]
Cruis'n World (U) [!]
Destruction Derby 64 (U) [!]
Goemon's Great Adventure (U) [!]
Harvest Moon 64 (U) [!]
Legend of Zelda, The - Majora's Mask (U) [!]
Legend of Zelda, The - Ocarina of Time (U) (V1.2) [!]
Mega Man 64 (U) [!]
Mortal Kombat Trilogy (U) (V1.2) [!]
Shadowgate 64 - Trials Of The Four Towers (U) (M2) [!]
Star Fox 64 (U) (V1.1) [!]
Superman (U) (M3) [!]
Wave Race 64 (U) (V1.1) [!]

Impressive!
 
Last edited:
OP
MarathonMan

MarathonMan

Emulator Developer
Yeah but, how do I dump the PIFROM from my N64? I hope I don't need a Doctor V64...

Look at how MAME/MESS team recommends getting it.

Seeing as you booted Mario Kart 64 (U) successfully, I was wondering why I'm getting a "Failed to load the ROM." on mine.

Means the operating system gave bad an error when I told it to read ROM data into memory. It is likely my fault as I try to read the entire ROM at once since it always works on Linux (but isn't defined to by the standard and won't on operating systems like Windows). I am curious to see why it loaded all other ROMs and not this one though.

I was curious as to its compatibility in its current state.
So far I've been able to boot the following commercial games (using the GoodN64 names):

Batman Beyond - Return of the Joker (U) [!]
Cruis'n Exotica (U) [!]
Cruis'n World (U) [!]
Destruction Derby 64 (U) [!]
Goemon's Great Adventure (U) [!]
Harvest Moon 64 (U) [!]
Legend of Zelda, The - Majora's Mask (U) [!]
Legend of Zelda, The - Ocarina of Time (U) (V1.2) [!]
Mega Man 64 (U) [!]
Mortal Kombat Trilogy (U) (V1.2) [!]
Shadowgate 64 - Trials Of The Four Towers (U) (M2) [!]
Star Fox 64 (U) (V1.1) [!]
Superman (U) (M3) [!]
Wave Race 64 (U) (V1.1) [!]

Impressive!

Thanks for collecting this. It's nice to know that it boots a wide variety of CICs. It'll actually be capable of booting several more ROMs once I figure out what this deadlocking/stall bug is that causes the infinite black screen for most ROMs.
 
Last edited:

Durza007

New member
Means the operating system gave bad an error when I told it to read ROM data into memory. It is likely my fault as I try to read the entire ROM at once since it always works on Linux (but isn't defined to by the standard and won't on operating systems like Windows). I am curious to see why it loaded all other ROMs and not this one though.
I compiled without the "MMAP_ROM_IMAGE" flag because it would not compile otherwise.
 
OP
MarathonMan

MarathonMan

Emulator Developer
I compiled without the "MMAP_ROM_IMAGE" flag because it would not compile otherwise.

Even more interesting, and I'll definitely look into fixing this because Windows should use fread to reduce binary size. This is probably one of the reasons binary is so big.

Did you just use mingw64 to compile? I really need to test Windows issues sometime... there sound like there are quite a few.
 
F

Fanatic 64

Guest
I doubt it, that file is nowhere to be found on the internet. What I want to know is, what kind of hardware or procedure do I need to dump it from my N64?
 

Durza007

New member
Even more interesting, and I'll definitely look into fixing this because Windows should use fread to reduce binary size. This is probably one of the reasons binary is so big.

Did you just use mingw64 to compile? I really need to test Windows issues sometime... there sound like there are quite a few.
Yes, mingw64.

I got the "Failed to load ROM" on one or two roms myself so I tested with a debug build and they seem to stop at: "[ROM]: "Unknown CIC/CRC [0xb9c47dc8]"".
I think it is more likely that there is something wrong with the rom than the emulator though.
 
OP
MarathonMan

MarathonMan

Emulator Developer
I talk to people who have decap equipment. There are ways to acquire these things in a legal fashion, much like carts.

Yes, mingw64.

I got the "Failed to load ROM" on one or two roms myself so I tested with a debug build and they seem to stop at: "[ROM]: "Unknown CIC/CRC [0xb9c47dc8]"".
I think it is more likely that there is something wrong with the rom than the emulator though.

Hmm... he had CIC6102 ROMs booting, though? That came out of right field. Thanks for that tip, that helps a lot.
 

Grachev

New member
Tested a bit with the Windows build earlier in this thread.

Boots fine, plays introduction cinematic.
Mario Party (U) [!]

Hangs on boot with a white screen.
Doom 64 (U) (V1.0) [!]
Quake 64 (U) [!]

Boots fine, stuck waiting on input to ignore missing controller pack.
Rayman 2 - The Great Escape (U) (M5) [!]
Disney's Donald Duck - Goin' Quackers (U) [!]

Hangs on black screen.
Banjo-Kazooie (U) (V1.0) [!]

Runs a few cycles (black screen) and crashes the emulator (exception code c0000005, "access violation").
Banjo-Tooie (U) [!]
Blast Corps (U) (V1.0) [!]

According to the console output Banjo-Tooie runs at ~125VI/s before crashing. Blast Corps runs at ~25VI/s before crashing.
Tested on Intel C2D E8500.
 
F

Fanatic 64

Guest
So, you got the PIFROM from some guys who spend their life hacking equipment but haven't made the method of dumping that PIFROM publicly available. How, then, is anybody supposed to be able to obtain it short of reverse engineering the console themselves?
 

Nintendo Maniac

New member
So, you got the PIFROM from some guys who spend their life hacking equipment but haven't made the method of dumping that PIFROM publicly available. How, then, is anybody supposed to be able to obtain it short of reverse engineering the console themselves?

Chill man, nobody said that the PIFROM requirement is permanent. Think of Dolphin and its included homebrew-made DSP LLE - previously you had to dump the DSP from an actual Wii console in order to use LLE audio emulation.

Of course, nobody also said that dumping your PIFROM file WON'T be required...but I'd rather give the man the benefit of the doubt considering that commercial games have just started running.
 
Last edited:
OP
MarathonMan

MarathonMan

Emulator Developer
Tested a bit with the Windows build earlier in this thread.

Boots fine, plays introduction cinematic.
Mario Party (U) [!]

Hangs on boot with a white screen.
Doom 64 (U) (V1.0) [!]
Quake 64 (U) [!]

Boots fine, stuck waiting on input to ignore missing controller pack.
Rayman 2 - The Great Escape (U) (M5) [!]
Disney's Donald Duck - Goin' Quackers (U) [!]

Hangs on black screen.
Banjo-Kazooie (U) (V1.0) [!]

Runs a few cycles (black screen) and crashes the emulator (exception code c0000005, "access violation").
Banjo-Tooie (U) [!]
Blast Corps (U) (V1.0) [!]

Yeah, I this is the bug that is preventing most ROMs from taking off.

The reason you see 125VI/s is because I currently rely on the host's VSYNC to limit output to 60FPS. I still need to control it myself in order to prevent this from happening and is a known issue, but thanks.
 

zoinkity

New member
To nab a PIF legally you need either some uncommon hardware or a method of slowing down the console and stepping through instructions. Decapping is lethal to the chip but would work too. This is well beyond the scope of this thread.
If you're interested, you might want to create a thread at assemblergames.

As an aside, I'm simultaneously surprised and unsurprised that an mpal pif hasn't been confirmed dumped.
 

Top