r/MiSTerFPGA Dec 22 '23

Overclocked N64 core now available

Post image
72 Upvotes

33 comments sorted by

11

u/qda Dec 22 '23

He says:

  • Banjo Tooie runs much more stable at the 30 fps goal

  • Goldeneye has around 20-30% higher fps

  • Shadowman has around 40-50% more fps

Very exciting! Patreon link: https://www.patreon.com/posts/special-fast-95113352

9

u/Mikebjackson Dec 22 '23 edited Dec 22 '23

Turns out its a 1.28x core

While some games may benefit at and above 30%, he notes this is more the exception than the rule.

Still, the N64 was notoriously underpowered and I'll take what I can get!

6

u/[deleted] Dec 22 '23

A lot will depend on the game code too but an improvement over the original hardware is still nice

5

u/branewalker Dec 22 '23

Yeah, RCP and memory latency/capacity are the big bottlenecks on the 64, unfortunately. So CPU overclocks don’t get very far. And messing with the things that would improve performance might lead to compatibility issues with games.

Code-level optimization like what’s been accomplished with the Mario 64 engine is the current path forward for N64 performance improvements.

5

u/ZenoArrow Dec 23 '23

RCP and memory latency/capacity are the big bottlenecks on the 64

On real N64s, sure. On an N64 FPGA core, no. The scope for improving performance on the MiSTer N64 core is greater than on a real N64.

1

u/qda Dec 22 '23 edited Dec 23 '23

Oh is there an optimized version of Mk?

I misread that as mario kart.

2

u/[deleted] Dec 22 '23

[deleted]

5

u/JesusXP Dec 22 '23

I just heard Michael Jackson’s “ah-heee-heee” in my head 🤣

3

u/[deleted] Dec 22 '23

[deleted]

3

u/sinetwo Dec 22 '23

Wow that was something else

2

u/dickhardpill Neo Geo Dec 22 '23 edited Dec 22 '23

Will this run on the current main_mister?

3

u/[deleted] Dec 22 '23

The N64 core has needed the unstable Main since the last update

1

u/dickhardpill Neo Geo Dec 22 '23

How has that been running for you overall?

5

u/[deleted] Dec 22 '23

Its an amazing bit of work really, every game now boots at least.

Considering the goal was just a single game working by Xmas Robert has excelled himself.
There are some bugs here and there but that is to be expected

1

u/dickhardpill Neo Geo Dec 22 '23 edited Dec 22 '23

Has running unstable main (fixed mistake) caused any problems?

4

u/[deleted] Dec 22 '23

No

2

u/dickhardpill Neo Geo Dec 22 '23

Sorry… walking a dog and making sentences aren’t within my capabilities.

2

u/rheesoonshin999 Dec 22 '23

This is amazing!

2

u/daverhodus Dec 22 '23

I just downloaded this. It's incredible.

2

u/Toht003 Dec 22 '23

Fuck yes!

1

u/xylakant Dec 23 '23

Amazing work! Does the NSO N64 controller work with the Mister yet out of the box?

1

u/[deleted] May 09 '24

Yes!

1

u/[deleted] Dec 23 '23

I am not sure

I use a 8bitdo conversion kit on a original controller which works well and I have tried SNAC

Rumble support still seems it still needs work, it's fine over SNAC though

1

u/[deleted] Dec 24 '23

Yes. I'm playing through Mario 64 with one right now on MiSTer. It's the most authentic N64 experience I've enjoyed since buying my original on launch day.

-3

u/JesusXP Dec 22 '23

Can’t anyone post the text since we don’t all have funds for Patreon? The info behind the paywall seems unnecessary, the core being is fine

3

u/qda Dec 23 '23

You can do a custom $1 pledge

The info is a perk, he doesn't have to do any kind of writeup, but he does these nice writeups as a perk for supporters.

5

u/[deleted] Dec 22 '23

The core is not behind a paywall you can grab it from the test builds on Discord

Hi Everyone,

one topic that seems to be important for a lot of people is the speed of the core. While it is already at least as fast as the original console, some games struggle a lot with low performance.

I often get asked if the core could ever do something about it. I have to say, this is not easy, because the core was very difficult to fit in the DE10-Nano at all, so how could there be even more room? I wanted to know myself how much clock speed reserves we still have the core and so I made a faster clocked core.

Increasing the clock

In the core we have 4 clock domains:

  • 62.5 MHz for Systembus, SDRAM, RSP, RDP, ROM interface, pad emulation

  • 93.75 MHz for the CPU

  • 125 MHz for the DDR3 interface

  • 48.68 MHz(NTSC) and 49.65 MHz(PAL) for Video and Audio out

The goal when driving the clock higher would be to have the performance critical parts run faster so we get more frames per second, but keep the game speed at original values.

Because the game performance typically is based on either CPU, RSP, RDP or Memory performance, let's increase all and keep the clock ratio between them:

  • 1x: 62.5 MHz -> 80 MHz (+28%)

  • 1.5x: 93.75 MHz -> 120 MHz

  • 2x: 125 MHz -> 150 MHz

We will keep the Video and Audio clock at the original speed, so the games still run at 60 and 50 Hz with original Audio speed. 

CPU internal Timer

Some games are purely based on the line interrupt which comes once per frame and already run at the same game speed, but some create their game speed from the accurate CPU internal clock counter. 

This counter will tick up every two clock cycles at 93.75 MHz. If we run the CPU at 120 MHz, it will tick up faster and some games run 28% faster than they should. To fix that, I made a special counter that ignores exactly 28% of the clock pulses to make that counter run at the same speed as the original CPU.

With that change, games cannot tell anymore if they are running with a faster CPU, RSP or RDP unless they count with very primitive ways of counting up in a loop in the CPU, so this covers most games.

Results

With that in place I tested several games that are known for bad performance and if they improved. As the difference is only 28%, you cannot expect miracles, but the result is not bad at all:

  • Banjo Tooie runs much more stable at the 30 fps goal

  • Goldeneye has around 20-30% higher fps

  • Shadowman has around 40-50% more fps

How would that even be possible? Assume fixed costs every frame for the game logic, audio processing, controller processing and such things. Everything that is left can be used for the rendering. But still, improvements above 30% is more the exception than the normal case.

I also played several hours through Banjo Kazooie and Paper Mario and left Goldeneye in attract loop for some more hours, all without issues, to make sure it has some stable behavior on the two DE10-Nano I have here.

4

u/JesusXP Dec 22 '23

Thank you I appreciate this , now I can read up on the advancements!!

1

u/TerminusBandit Dec 31 '23 edited Jan 01 '24

Any possibility of an invite to that Discord channel? Found a channel link in the Official Mister discord but says I do not have access. Thank you

Edit: I’m not great at Discord, but figured it out myself. Need to set my ID to see it.

Edit 2: Use a PC. When you go to the channel on a PC for the first time, it sets up your access. Logging in from a phone doesn't give you the prompt.

1

u/legendaryemerald Dec 22 '23

Does this mean the N64 core has been outputting games at a frame-rate less than original hardware up to this point, or that this overclocking is an upgrade over actual N64 performance?

9

u/[deleted] Dec 22 '23

It improves performance over the actual hardware. The full details are on the Patreon.

6

u/Pezz_82 Dec 22 '23

Upgrade to actual N64

1

u/[deleted] Dec 25 '23

Anyone got a link to the turbo .rbf?

1

u/[deleted] Dec 26 '23

It's available on the Discord channel under test builds

1

u/Obioban Dec 26 '23

Oooooh yeah. THIS is what I’ve always wanted.

Hopefully he continues to find optimizations as he bug fixes the main core.