Can't wait to play this when you're happy to release this, you've put a lot of effort into everything from style to gameplay to programming. I've been trying not to spoil myself with your videos but the stuff i've seen has been amazing.
Same here. I even just got a Summercart64 so I can play this on real hardware, which is something I never really considered for other ROM hacks before. I've never anticipated a fan project so much before like this in my life but just from all the videos from Kaze, this feels like something genuinely special. You can feel the amount of love that's gone into this. As a massive SM64 fan, I couldn't be more excited for this.
I really struggled to not read this comment like the Baseline test from Bladerunner 2049. "do your dreams run on optimised code? INTERLINKED. do you wake up in the middle of the night? INTERLINKED."
Next optimisation - Kaze will invent a time machine within Mario 64 and teleport back to 1994 to teach Nintendo how to program correctly on the hardware.
Fun fact: The following are set up incorrectly, and have problems with NPRIM in vanilla - All particles - The stars in the face demo - Dialogue box arrows (these actually crash the game because of a specific order it sets draw modes) - Coins - Mr. I's - Stars - File select cursor - Course select number
It was the precursor to the game becoming locked up. Game physics is a house of cards, and you usually see some non-standard physics right before everything falls apart.
6 ชั่วโมงที่ผ่านมา
@@ostiariusalpha I thought it had to be due to the frame rate being unlocked and above 60fps
1:45 You have to keep in mind just how insanely tight game development is, you do not have time for 90% of what you think you have. If you want something optimised, that’s great, but you do not have the time nor budget to waste on it if it is not essential. Get it running, fix the major problems, do something new
Agree, kaze is always like "this could've been done day 1" but most N64 devs didn't have the luxury to spend 6 years constantly optimizing the same project like kaze has. These optimizations wouldn't be possible without an insane knowledge of hardware quirks (Which came from people researching the same system for literally 30 years!) Reminds me of the quote about "we stand on the shoulders of giants"
@@orangy57 Fundamentally this is also why most devs favored the PS1, sure it had a way lower ceiling than the N64, but at least you could reach it with less headaches because it was tightly engineered and the power you could squeeze by going full metal isn't that huge as it is on N64.
Consoles also had very different architecture from each other between each generation too. So once you mastered the quirks of the N64, the Gamecube would have already been released. The good thing about the modern game systems is that they are kind of more similar to each other now. It also helps that the time between console generations are much longer now, so it's now more practical now to find ways to optimize based on their quirks.
i think theres some nuance here. missing pipesyncs causing crashes is "just a bug" at the end. the manual is very clear about where to put them and they put them in 99% of places. it's frustrating to be told that some of the stuff i'm doing was impossible back then, when it's something i implemented when i was in my early twentys in a hex editor
@@KazeClips I have to be totally honest, to me it's frustrating when I see you do all this cool stuff and I get excited about the future of n64 gamedev, but then every once in a while you say something like "Mario 64 is a poorly made game" and it just kinda sours everything.
I'm really curious about how Return to Yoshi's Island is going to run on homebrew emulators. If the source code release means that people can directly port the rom hack to different systems, then that'd be cool to see too
@@fruitsnackia2012 Technically, any 240p 60fps game should be able to run in 480i if the horizontal resolution remains the same. Because 240p and 480i have the exact same amount of lines per second. It would have to maintain 60fps though, else any dropped frames will become half-resolution frames as well. F-Zero X should be able to do this.
Hey Kaze. I think I've never seen somebody propose this before but have you thought about implementing an Entity Component System? The CPU part of your code is already really optimized but you said you wanted every last drop. An ECS is useful when you have a lot of actors to update every frame, like the coins for example. It massively increases cache friendliness on the CPU (well, in comparison to typical "modern" code styles). Idk if you already implemented something similar
The N64 heard what you said about mario 64 and conspired to crash at the peferfect moment
Kaze: "I've optimised it!"
"Explosion imminent. Evacuate the facility immediately"
It is getting unstable 😅
Can't wait to play this when you're happy to release this, you've put a lot of effort into everything from style to gameplay to programming. I've been trying not to spoil myself with your videos but the stuff i've seen has been amazing.
Same here. I even just got a Summercart64 so I can play this on real hardware, which is something I never really considered for other ROM hacks before. I've never anticipated a fan project so much before like this in my life but just from all the videos from Kaze, this feels like something genuinely special. You can feel the amount of love that's gone into this. As a massive SM64 fan, I couldn't be more excited for this.
do your dreams run on optimized code too? do you wake up on the middle of the night on a cold sweat and think "theres a pipesync missing somewhere..."
I really struggled to not read this comment like the Baseline test from Bladerunner 2049. "do your dreams run on optimised code? INTERLINKED. do you wake up in the middle of the night? INTERLINKED."
Getting almost 60fps without drawing distance cap is crazy
The N64 is essencially solved at this stage, lol.
Next optimisation - Kaze will invent a time machine within Mario 64 and teleport back to 1994 to teach Nintendo how to program correctly on the hardware.
@@overwatch761 Use the time machine to precompute each frame ahead of time for the ultimate 60 FPS experience
Love how he can just talk shit about mario 64 and actually back it up
Fun fact: The following are set up incorrectly, and have problems with NPRIM in vanilla
- All particles
- The stars in the face demo
- Dialogue box arrows (these actually crash the game because of a specific order it sets draw modes)
- Coins
- Mr. I's
- Stars
- File select cursor
- Course select number
*understands basically nothing but still finds it interesting*
Nice shadow
shirt
Mario exploded at the sight of a framerate above 60
1:53 Why Mario jump looks so jittery when he lands there? 😮
It was the precursor to the game becoming locked up. Game physics is a house of cards, and you usually see some non-standard physics right before everything falls apart.
@@ostiariusalpha I thought it had to be due to the frame rate being unlocked and above 60fps
Getting 60fps is going to be so sweet. Well done man.
i'm desiring a full release of this hard work at some point
Huh? 74 fps right at the end?
Yeah I’m curious about that too lol
apparently it can be a bit crazy if you ever hit above 60 lol
Great work Kaze!
it just keep getting better and better.
1:45 You have to keep in mind just how insanely tight game development is, you do not have time for 90% of what you think you have. If you want something optimised, that’s great, but you do not have the time nor budget to waste on it if it is not essential. Get it running, fix the major problems, do something new
Agree, kaze is always like "this could've been done day 1" but most N64 devs didn't have the luxury to spend 6 years constantly optimizing the same project like kaze has. These optimizations wouldn't be possible without an insane knowledge of hardware quirks (Which came from people researching the same system for literally 30 years!)
Reminds me of the quote about "we stand on the shoulders of giants"
@@orangy57 Fundamentally this is also why most devs favored the PS1, sure it had a way lower ceiling than the N64, but at least you could reach it with less headaches because it was tightly engineered and the power you could squeeze by going full metal isn't that huge as it is on N64.
Consoles also had very different architecture from each other between each generation too. So once you mastered the quirks of the N64, the Gamecube would have already been released.
The good thing about the modern game systems is that they are kind of more similar to each other now. It also helps that the time between console generations are much longer now, so it's now more practical now to find ways to optimize based on their quirks.
i think theres some nuance here. missing pipesyncs causing crashes is "just a bug" at the end. the manual is very clear about where to put them and they put them in 99% of places.
it's frustrating to be told that some of the stuff i'm doing was impossible back then, when it's something i implemented when i was in my early twentys in a hex editor
@@KazeClips I have to be totally honest, to me it's frustrating when I see you do all this cool stuff and I get excited about the future of n64 gamedev, but then every once in a while you say something like "Mario 64 is a poorly made game" and it just kinda sours everything.
So switching to G_PM_NPRIMITIVE on the N64 is like removing a mutex lock on a multithreaded program
Removing the GIL in Python
@fisch37Is the GIL more complicated than just mutexing everything?
This is why I hate and love game development
Please repost this whenever you fix that hang, so we can watch those 53 frames per second, thank you so much.
btw i like your child like wave at the end of every video lol
74 fps?? I thought the n64 made use of vsync???
the profiler goes a bit crazy if you hit above 60fps
@@KazeClips oh ok that makes more sense lol
I'm convinced the push for all technology improvements were spawned from poor coding and time constraints.
I'm really curious about how Return to Yoshi's Island is going to run on homebrew emulators. If the source code release means that people can directly port the rom hack to different systems, then that'd be cool to see too
awesome
Kaze: Mario 64 crashes because it's a poorly made game.
Kaze's game: **Crashes**
Cool that you don't mind showing obviously broken stuff. 😅
Nice haircut. :D
Optimization leading to random crashes 😂
holy! 3%?????
More to discover, but surely it went 70fps more right when it crashed
Runs at stable 74 fps
Now this is what I wished Nintendo did with the 3DS instead of stoically copy and pasting the same shit over and over again with it's updates.
Crashing while showing 74fps is still dang impressive. Lol
cool
I wanna see the original SM64 game run in 60fps on real hardware. Not these custom made levels. Will we ever be able to see that?
idk maybe
once he releases this hack, I'm pretty much 100% confident someone is going to snip ideas and code from Kaze to make that a thing.
he said he'll release an optimized version of the original game when this hack is finished
tbh at this rate when it come time vanilla sm64 will be able to run 60fps in 480i mode lol.
@@fruitsnackia2012 Technically, any 240p 60fps game should be able to run in 480i if the horizontal resolution remains the same. Because 240p and 480i have the exact same amount of lines per second.
It would have to maintain 60fps though, else any dropped frames will become half-resolution frames as well. F-Zero X should be able to do this.
🎉
yOoooOoooO 😮😮😮
Hey Kaze. I think I've never seen somebody propose this before but have you thought about implementing an Entity Component System? The CPU part of your code is already really optimized but you said you wanted every last drop. An ECS is useful when you have a lot of actors to update every frame, like the coins for example. It massively increases cache friendliness on the CPU (well, in comparison to typical "modern" code styles). Idk if you already implemented something similar
components are just an inferior version of code shared between actors imo, i don't see the point. my way of handling it is very cache friendly.
Is it really optimization if it crashes all the time?😂
If your game isn't crashing when you're testing an optimization, are you actually developing a game at that point?
well it's supposed to not crash
its just missing an important pipesync somewhere
@@DaltonisntabotThey don't have a game. 😔
"A fast executing language that crashes all the time is like a supercar, that crashes all the time"
-No Boilerplate
@@MattIsTheCat Engine and a game in one. It's much more than just a rom hack.
nice weird crash
:)