Error Code Lookup: (Don't enter the leading E!)


MiSTer N64 Core by FPGAZumSpass

This document will be updated frequently with updates and changes




Screenshots might be from older cores before fixes

Compatibility

Currently FPGAZumSpass is working on the chips that run N64 Software - compatibility is high and growing.


Graph by GPink

Test Versions

You can download the test versions from The MiSterFPGA Discord channel named #test-builds

See below for the join link

Supported
Not (Yet) Supported Not Planned For Now

Error Codes

Please use the error decoder in the top bar to find the Description of an Error code. Here is a breakdown on the meaning per bit:

Something Went Wrong

The BIOS file

The N64 BIOS file (also called PIF ROM) should be renamed to boot.rom (US Version) and boot1.rom (EU Version), both file should be placed into the /games/N64 folder.

Here are some verified BIOS versions:
Bios File NameRegionVersionSHA1
boot.romUS/JPNTSC 60hzB7A0070CBE4B9BCAA08EC0B76B8C4955B2AE535A
boot1.romEUPAL 50hz 15C23C3B671A8828302603F30C81D464B24A7FB1
boot.romBRPAL-M 60hzA749C815E858A2487F4105022D23E7001EE6F0EC

The N64 Database \ Custom Database

The creation and maintenace is a joint effort by these contributors: The purpose of the database is to recognize and set up the core for the ROM that is inserted.

To make this process smooth, just drop the file into the /games/N64 directory and it will be picked up and used automatically.

You can download the file DataBase_20240119032810.txt. Download with right-click and select "Save As" N64-database.txt (CAUTION - Case Senstive).

The list contains MD5 hash values over the first 4096 bytes in a ROM file. If you add a non existing entry you can use the full MD5 hash value

To get the md5 value over the first 4096 bytes you can use this command in Linux
head -c 4096 '/media/fat/games/N64/romname.z64' | md5sum 
The core also supports a customer user database, in case the main database gets updated the user can preserve their custom settings in the file N64-database_user.txt

Getting Your Games to Run Smoothly

Since the core is still in its ongoing development stage, it's important to keep in mind that not all games will work flawlessly. To see if your games are running as expected, you can check out The Compatibility Tracker (Moondandy is the owner) for user experiences with the same titles.

The following formats are supported: The core supports ROMs up to 64MB (might change in the future)
No patches are needed anymore, all games should boot without patches!
If you're having trouble with certain games, you might need to apply a patch for a temporary fix until the core becomes more stable. This can help improve the compatibility of those games.

justZ00t's patches (Not needed anymore)
Patch
Super Mario 64 - No Face - US Version IPS
Super Mario 64 - Chinese/iQue - no face IPS
Super Mario 64 - European Version no face IPS
Super Mario 64 - Japanese Version (Rev 3) Shindou Edition - no face IPS
Super Mario 64 - Japanese Version - no face IPS
Super Mario 64 - US Version (LodgeNet) - no face IPS
Rampage World Tour - Level Select IPS
Doom 64 - Level Select IPS
Earthworm Jim 3D - Debug IPS
Mortal Kombat Mythologies - Sub-Zero level select
yxkalle's patches
Patch
Donkey Kong 64 - No Extention Pak check IPS (set CIC to 6105)
Super Mario 64 - No Face - US Version BPS
Super Mario 64 - All Doors Unlocked - No Face - iQue Version BPS
Super Mario 64 - All Doors Unlocked - No Face - European Version BPS
Super Mario 64 - All Doors Unlocked - No Face - Japanese Version BPS
Super Mario 64 - All Doors Unlocked - No Face - Shindou with Rumble support Version BPS (right click save as)
Super Mario 64 - All Doors Unlocked - No Face - US Version BPS
Super Mario 64 - Widescreen - No Face - US Version BPS
Zelda OOT - Level Select Patch (use CIC 6105) xdelta
You can find an online patcher here here.

Known issues (by Meauxdal)

Due to technical limitations of the de10 nano combined with the N64 hardware it might not be possible to get all games running flawlessly. Meauxdal (Elle) created an overview of which games crash randomly. You might want to look at the same games in other regions that might work as expected

Conker's Bad Fur Day (Europe/USA)
Gauntlet Legends (Europe/USA/Japan)Play the PSX version [Differences]
Iggy's Reckin' Balls (USA/JP)Play the European version or use the Turbo Core (bypass 9-2 crash)
Jet Force Gemini/Star Twins (Europe/USA/Japan)Find a patch here
Nintama Rantarou 64 Game Gallery (Japan)
Polaris SnoCross (USA)Play the PSX version
Pro Mahjong Kiwame 64 (Japan)Runs fine on the turbo core
Resident Evil 2/Biohazard 2 (USA/Japan)Play the PSX version
Rugrats in Paris - The Movie (Europe/USA)Play the PSX version
Star Wars Episode I - Battle for Naboo (USA)
Tonic Trouble (Europe)Play the US Version
Wonder Project J2 - Koruro no Mori no Jozet (Japan)Runs fine on the turbo core

Here is a very detailed list of the issues: Google Docs Issue List by Meauxdal (Elle)

Cheats

Cheats have been implemented as of February 16, 2024, by Yxkalle. You can download the cheat archive here (updated 2024-03-07). This archive is dated February 18, 2024, and may receive updates in the future.

After downloading the cheats, please ensure to place the included individual zip files on your MiSTer at the following location: /media/fat/cheats/N64

Cheats will be automatically loaded and the cheat option will become available in the MiSTer Menu. Once installed, cheats will be automatically loaded, and the cheat option will become available in the MiSTer Menu. Remember to enable cheats in the same menu..

The Controller Layout

Here you see the layout of the controller for the N64 core - I have A and B linked to my Left and Right Analogue stick push. The N64 Analogue Stick Always gets mapped to Analogue Stick 1 and does not need to be configured. Up to 4 controllers are supported.

Left ShoulderZ TriggerRight Shoulder
UpC-UP
LeftD-PadRightStartBC-LeftC-PadC-Right
DownAC-Down
Analogue Stick

External Links

FPGAZumSpass Pages
Test and Demo roms
Handy Links

Timeline

DateMilestonelink
2023-01-06N64 Core Exploration starts
2023-01-16Work on Emulator Starts
2023-02-02Core Announcedlink
2023-03-28First Game Booting in Emulatorlink
2023-04-13Discord N64 sub channel started - Testers Galore!
2023-05-26First Public Releaselink
2023-06-11NICCC Demo Runninglink
2023-07-04FPU implementation complete and passes all tests link
2023-07-09Controller and PIF (BIOS) handling implemented link
2023-07-09First game playable - Namco Museumlink
2023-07-10Sound Addedlink
2023-08-02RSP Implementation now fulfills all n64-systemtests. Work on RDP startslink
2023-08-13First 3D games show signs of life. Game like Mario64 / Mario Kart 64 / StartFox 64 are working with limited functionalitylink
2023-08-16@Markun Implemented the N64 ROM Database for auto configuration
2023-08-19Perspective correction / 32bit RGBA texturing and other RDP updatesLink
2023-08-204 Controller Support ImplementedLink
2023-08-21Z-Buffer implementedLink
2023-08-26Massive RDP Update over the last few days which make several games run almost perfectlyLink
2023-08-30Initial Data-cache implemented - Disabled by defaultLink
2023-09-01Save/Load for EEPROM savesLink
2023-09-02Texture FilteringLink
2023-09-04As of today's release 52% of the US entries are playable with some approaching almost perfect
2023-09-07In game Mario now has a face!
2023-09-09PAL (50Hz) timing support
2023-09-19Controller Pak/Rumble Support - Assign Rumble or CPAK in the MiSTer Core Menu
2023-09-25Dithering implemented / Regular OOT boots now
2023-09-30VI: Implement bilinear filtering/scaling
2023-10-11VI: The Processing part is done
2023-10-22OSD controller settings redesigned (on/off,snac,paktype for each controller)
(includes SNAC implementation from blue1 added yesterday, supporting gamepads and cpak, rpak, tpak)
2023-11-19Initial TLB has been implemented - Mario now has a face!
2023-12-06The last non bootable game is now playable. This only leaves 4 game not playable of the US ROM library
2023-12-07TLB Functionality 100% complete
2023-12-15Fast Loading Implemented
2024-01-15Level of Detail (LOD) Implemented
2024-01-30YUV Textures Implemented - this completes the major RDP functionality
2024-02-16yxkalle put in the groundwork for N64 cheats
2024-03-13Core Development has ended

FAQ:

Help game XXXXXXXXX doesn't look right
Check the tracker and let us know on discord (see above)
While loading a ROM I see 'auto detect failed', what does it mean?
It means the ROM you are loading has not been found in the N64-database.txt file
I get this error on the core 'Controller pak damaged, can't save this game. Please turn power off' what do I do?
if you see something like that, just reboot the core, it's the easiest way to fix (should only happen if you have an old savefile for e.g. only eeprom or you play a second game without rebooting the core)
When will we get YC (YC TV Adapter) Support?
From MikeS (who created the YC cores):I talked to Robert about it, and it really doesn't make sense to add in a bunch of hacks right now, it will all get ironed out when he makes the async module and just sets one resolution and scales all the games to it like original hardware
Will the DE10Nano be powerful enough for this
This is a reply from FPGSAZumSpass: As some of you worry about the overall speed/memory bandwidth or so not being enough on the de10-nano: this is not really the case here. First: when we speak about memory, it's always DDR3. The sdram only stores the rom, which is very slowly accessed and should be no issue at all. In terms of DDR3: We run the memory/cpu on the same clock for plenty of builds now without any issue. And it's used a lot, as nearly every component accesses it. Even more suspicious is that the instruction cache, that always works fine and stable for many builds, uses the same memory access as the new datacache. It's the same ports of the cpu module. So the issue must be somewhere else. It stinks like a timing issue as it changes between different boards and builds, but then it seems 100% stable over temperature and the build i made had timing closure, so quartus would lie. But a mistake i made is much more likely. So i will continue to research it. I might post builds here in the channel that some people could test to find out if the randomness is gone
I bought a Brawler64 from RetroFighter - I can pair but it doesn't do anything
It seems the instructions are written by misinformed hamsters. Hold the Pairing Button+A to switch to Xinput pairing mode (the 2 middle blue LEDs are lit up). Pair as per usual instructions with the MiSTer and it will work.
We were told there would never be an N64 Core
We got told the same with a PSX core. FPGAZumSpass is a FPGA god - don't argue.
Does the core have sound?
Yes, but your experience may vary
So I added some random letters and stuff like the other entries into N64-database.txt, now [insert homebrew program] won't load. Why is this core so bad?
As with anything - you should know what you're doing!
Does Robby Love N64?
I had no idea anyone read this page!
I heard the maintainer of this page is a @#@#@!
Correct - I can't deny that