I Built an Open-World Engine for the N64 [video]
youtube.com
youtube.com
We also were lucky enough to have an incredible physics engine programmer, so we were running a way better motorcylce simulator than made any kind of sense -- led to huge arguments with our CEO because higher level motorcycles were much harder to ride initially because they were modeled after real performance figures. We fixed that eventually -- Don was right!
Completely agree that none of the games from the CRT era look right on modern TVs. There was a group at GaTech that did some really nice visual simulations of scanline artifacts, but they haven't seemed to generally make it into emulators.
What was the bug?
He's since stopped to work on his own IP, I believe that the issue was that Valve couldn't allow it because they'd never get Nintendo to agree to it. Something along those lines, anyway.
Valve are the 200kg gorilla of the gaming industry and can throw their weight around.
However Nintendo are a 250kg gorilla.
It's an interesting question of comparison actually. Valve run the world's biggest videogame ecommerce platform, for PCs only (including handheld PCs like steam deck). Nintendo run a comparably large videogame ecommerce platform, but only for their two hardware platforms: switch and switch 2. Just roughly based on hardware sales, seems to be roundabout the same audience size. Nintendo maybe comes ahead because they're well established in the hardware space (Valve is trying to close the distance), and of course far, far away in terms of 1st party game development - Valve has, what, 8 games? All phenomenal, but nothing compared to Nintendo's library.
They definitely coast, but when they do release something, it's always phenomenal. I do wish they'd make more games, though.
I believe this came up when the creator was talking about libdragon-- Valve has been more forgiving of other games like Hunt Down the Freeman and whatnot because they're native executables with the Steam DRM, which video games based on Valve properties necessarily must have. Portal 64 simply cannot do this, because Steam is not a Nintendo 64 application.
The real way to optimize this stuff really well is for the artist to spend a lot of time making LODS for the distant objects. For the really distant objects, esp for a platform like n64, you can replace the distant objects with billboard imposters which are basically just flat poster textures that swap perspectives at certain angles.
GTA V does this extremely well with many manually made LODs and its very costly
https://www.adriancourreges.com/blog/2015/11/02/gta-v-graphi...
They ripped our Carmacks texture streaming stuff outta the engine years,ago though
> They ripped our Carmacks texture streaming stuff outta the engine years,ago though
I'm pretty sure they are still using texture streaming. There is no alternative to that.
"Andy wrote an incredible paging system that would swap in and out 64K data pages as Crash traversed the level. This was a "full stack" tour de force, in that it ran the gamut from high-level memory management to opcode-level DMA coding. Andy even controlled the physical layout of bytes on the CD-ROM disk so that—even at 300KB/sec—the PS1 could load the data for each piece of a given level by the time Crash ended up there."
https://www.gamedeveloper.com/programming/memory-matters-a-s...
Then again the dinosaurs were physics entities, so maybe you already mentioned it. :)
I emailed him the video from OP and he mentioned they’ve done some collaboration. I’m assuming there’s a retro programming discord that I’m not worthy of.
> "The N64 is very memory bound"
> Aren't we all these days?
Here's a dissection of the title screen of Shadow Of The Beast (1989), for instance: https://codetapper.com/amiga/sprite-tricks/shadow-of-the-bea... - you can find a ton of video of this game very easily, go have a look.
Magicore is generally a bit zippier than most Amiga games, so many of them were kind of chunky and sluggish when I look back at them. Also the dev notes on using modern compression schemes that use what would be apocalyptic amounts of RAM and CPU by 1990 standards to crunch the data are amusing, but it's not like 1990 me wasn't used to chilling out for a few minutes between levels for a disc load, it was still worlds faster than the horrible load times of the C64 that was my first computer.
Traditionally, emulators relied heavily on HLE. Low-level efforts are recent and not mature.
The miSTer core for N64 (and ModRetro's M64 core effort by the same person) and Ares N64 support are the only two serious efforts I am aware of. They tend to share compatibility issues, and advance together when understanding of the platform grows.
Obviously this is just a personal judgment, but I believe N64 is currently understood at quite a good level. Most of the docs are on https://n64brew.dev/. Low level efforts are recent for sure, though I'm not sure I would rate them as "not mature". Ares is able to run most of the library (including 64DD) and all the homebrew library with zero per-game configurations or tweaks.
The one game I am aware of and keep checking is "Wonder Project J2 - Koruro no Mori no Jozet".
Broken in both Ares and the miSTer core. AIUI nobody knows why it does not work yet, which shows gaps in the understanding of the machine. Otherwise not an issue for me, as I can run it on the actual hardware, which I own.
Note that, in no small way, I do appreciate the efforts. The state of the art of N64 emulation is much better now than just a few years ago. But it sure is not there yet.
N64 also happens to be by far the heavier console to emulate in 5th-gen group. The unified memory architecture poses unique challenges for cycle accuracy, given that conflicting accesses by different peripherals are serialized in various ways, causing stalls, and also non deterministic behaviors as the signals cross different clock domains.
So the issue is in part that this level of detail hasn't been fully reverse engineered yet, but that's because there is no rush since the information wouldn't be usable anyway right now in an emulator.
I am hopeful as ModRetro's m64 launches, with a FPGA larger than the one in the miSTer, and there's an associated influx of developers looking at the platform, we'll see renewed energy directed towards understanding the N64.
Use decent emulators that are actually accurate.