u/grilledstuffedxxl

M64 Performance and Accuracy Update
▲ 111 r/ModRetro+1 crossposts

M64 Performance and Accuracy Update

It’s been an intense month of work for M64 and we’re excited to share some new performance metrics. Within the last month we’ve made M64 more accurate and added the ability to overclock our M64 core and maximize performance across a couple key areas. There is much more to come, but for those interested in following along here is a peak under the hood.

Accuracy: Scalar Unit Single Instruction

We have been using the ever-popular n64-systembench test to assess this. This is a pretty complicated but exhaustive test bench, and the scalar unit tests are just one part of it. The original test covers 10,000 runs of 10 random RSP instruction blocks and measures the clock cycles each block consumes. We’ve modified this to split out and focus on the Scalar Unit Single Instruction and Vector Instruction tests.

In our prototype v1.0.3 software at the beginning of the month, per our expectation, M64 wasn’t ready to pass these tests. Our core was slower than N64 in random situations and slower for continuous scalar unit instructions. This isn't necessarily game breaking, but it was an inaccurate aspect of the design that would manifest as minor slow downs.

M64 v1.0.3

Meanwhile, the Analogue 3D also doesn’t fully pass this either.

A3D v1.4.0 (Force Original Hardware On)

We’re happy to report that this isn’t going to be an issue for you on launch day. We’ve been able to update our design to match the N64 perfectly on this point. See the image below.

M64 v1.8.0 (Beta)

Overclocking

James Lambert posted a video comparing the two systems earlier this month. Here’s a graph of his results from earlier this month. This graphic describes the relative performance of A3D and M64 to an original N64. 

James has given us a behind the scenes peek at his test methods and even sent us the source code so we could run the same tests here. His tests seek to isolate and measure the various components of N64’s performance profile in isolation. He was kind enough to also share what each one entails:

  • Fill Rate: Renders a full-screen triangle multiple times to measure rasterization and fill-rate performance.
  • Texture Load: Measures the texture load speed.
  • CPU: Runs a particle simulation repeatedly to benchmark floating-point performance and overall CPU processing speed.
  • RAM: Repeatedly accesses main memory while avoiding cache usage to measure raw RAM access performance.
  • RSP: Renders a high-vertex-count model entirely offscreen so that performance is limited by the Reality Signal Processor (RSP), isolating geometry processing throughput.

Source: James Lambert, https://youtu.be/RMROAr8VOxg?si=hbW75jeF0jXXdnFu

We went ahead, with James’ help (thank you again for sharing those tests), and pitted M64’s beta overclock implementation against A3D’s Unleashed implementation. We were pleasantly surprised at the results.

https://preview.redd.it/fa3p26yyvo9h1.png?width=1622&format=png&auto=webp&s=e5f9f9a6e520c1da8090796314a3673cc800531d

Our RAM performance is to be expected – we intentionally slow this down with artificial delays of ~3 cycles for each read and write to fulfill accuracy tests. While we purposefully kept this in, it would be something we could easily disable when overclock mode is active.

Show Me The Goods

Synthetic tests are great, but what really matters to you all is how well M64 performs for your favorite titles. As you may remember from the 90’s, rocket launchers in Goldeneye result in quite a bit of slowdown.

Video of 007: GoldenEye on M64 overclocked

https://reddit.com/link/1ugj6wt/video/xo7st9d2xo9h1/player

Video of 007: GoldenEye on A3D Unleashed

https://reddit.com/link/1ugj6wt/video/09cvd4eowo9h1/player

What’s next?

We aren’t slowing down on making more improvements to the core as we get ready to ship these consoles. Even more updates will come after they are in your hands soon. The M64 is well on the way to being the most performance and the most accurate N64 recreation ever made in every metric, and we can’t wait for you to get your hands on it.

reddit.com
u/grilledstuffedxxl — 10 days ago
▲ 55 r/ModRetro+1 crossposts

I will be posting a deep dive on accuracy/speed work under development internally and timelines here tonight.

Appreciate the comments below. In terms of the why now questions, the development is a continuum of improvements like many other consoles from "this is fun and playable for most casual people on most games (current state)" to "every high poly cut scene is at full frame rate and the console is performing on every metric at the top of the class for every game (future state)". Because this continuum will take from now until some months after we are shipping fully playable consoles, we want to share the improvements as we go so you can make a purchasing decision as you see fit.

  1. RAM Write Throughput for RSP and RDP Bursts - This is the root of most of the areas that seem "broken" in terms of specific slow downs in specific games compared to an N64. We aim to get this done by ship day as an immediately available update, and we will update here when this change is in.
  2. Overclocking the M64 Core - Our PSRAM memory architecture gives M64 the headroom to support higher core frequencies without becoming memory-bound. We believe we can push the limits well-beyond 50% OC. This unlocks faster than N64 frame rates. We aim to get the first phase of this done by ship day to OC at par with A3D, but future work will take it to new heights.
  3. Parallelizing RSP regular and vector instructions - We are currently serialized, and changing this will immensely improve both accuracy and speed. We aim for September.
  4. Floating-point unit (FPU) instruction timing (not yet cycle accurate) - This was a mister workaround that we need to finish re-implementing taking advantage of the more powerful M64 hardware. We aim for October.
  5. Removing Translation Lookaside Buffer (TLB) workarounds for slower FPGA hardware. - Eliminating this workaround improves compatibility and performance in games that rely heavily on virtual memory mappings. We aim for December.
reddit.com
u/grilledstuffedxxl — 1 month ago
▲ 82 r/ModRetro+2 crossposts

Various reviews and info will go live tomorrow, I will answer your questions here.

We have had a bunch of prototype M64 products in the hands of reviewers for a while now, and tomorrow they get to unleash their thoughts, all pricing, and ship date. Due to the consoles being prototypes, there is a high likelihood for some information to be incorrect. I will clarify for you here if there are questions or if people play gotcha games.

After tomorrow, we will be sharing the current state of all M64 stuff continually until ship day for you to follow along. In the coming weeks we will be releasing the manuals, the new support center, game trailers, and the software feature roadmap transparently.

Please cross post to other modretro communities, and let me know what else you want to see!

reddit.com
u/ROFLknife14048 — 1 month ago
▲ 109 r/ModRetro+2 crossposts

M64 controller / console / cartridge AMA, get your popcorn let's GO

CEO of ModRetro here.

I want to start using r/modretro to answer q's, post updates and product giveaways and I won't be monitoring other subreddits anymore. I'll put Chromatic and M64 in the side bar as related communities, but expect to see anything that is official here and if you have a question I will answer it here. This community will have basic rules to try to make it a fun zone for those of us who want to discuss retro electronics. I will ban toxic trolls and bad actors, but I will entertain and answer genuine questions and won't make it sanitized. I would also like to hear ideas for what you want to see us build, what games you want re-released, etc.

I'm answering yesterday's questions as a bunch of separate threads here and I'll tag the op per question.

reddit.com
u/grilledstuffedxxl — 1 month ago
▲ 130 r/M64+1 crossposts

M64 games+controller+console AMA tomorrow at 12PM PT, welcoming all questions.

ModRetro CEO here — tomorrow I’ll be answering your questions about everything M64.

If you drop questions in this thread, I’ll bring them into tomorrow’s live discussion and answer them there.

Looking forward to hearing from you all.

reddit.com
u/Substantial_Quote583 — 1 month ago