Is there a "super mario 64 optimized" rom hack for the original game planned? Would be beautiful seeing the original game run at a constant 60 on real hardware.
@@KazeN64 What I would love to see from you is a patch that applies all these fixes to an otherwise vanilla rom so other moders just start their work with the freedom theses fixes bring.
@@HEHEHEIAMASUPAHSTARSAGA What was Kaze's involvement, then? Genuinely, I've seen his name next to Skelux in most author listings for the hack, and I've been rather confused by it.
Sm64 is the perfect game to do these kinds of optimizations on because like, they were just still figuring out 3D games, and this is one of the first 3D platformers, so things weren’t close to perfect at all. So it’s fantastic to see its full potential with the work you’ve done on the game’s engine
At the same time, Super Mario 64 was nowhere near as optimized as it could be and optimized enough to be revolutionary upon release. As you said, this game was a leap into 3D. History could consider it the 3D platformer's golden proof of concept that paved the way showing what 3D platformers could look like. It didn't have to be perfect, but good enough to prove that the formula works. I also consider it a wonder how games like Super Mario 64 were often made with teams of about 40-50 people in the span of two years from the ground up. These were people working with brand new hardware and no prior engine to fall back on. Games today look better, for sure, but it still feels like a slap in the face that they can involve 200 people over 5 years built on the engine of a previous game for hardware that most developers are intimately familiar with and still not be nearly as polished as Super Mario 64. Developers now-a-days have all the shortcuts they could ask for and still don't have the level of polish that Super Mario 64 has, and we're now discovering Super Mario 64 wasn't all that polished.
@@KTSpeedruns That's the thing about [current year] game development. The bar has been set so high for developers in regards to graphics and other things that it's become more or less difficult to maintain good optimizations and stellar graphics. With games like SM64, it not only maintained good performance and decent graphics at the time, but also set the bar of what's to be expected of 3D games going forward. Whereas in today's climate, with the bar set high and technology to do almost just about anything, where do developers go from there?
@@KTSpeedruns The game's considered revolutionary by pretty much everyone. Meanwhile you're saying it's not revolutionary simply because the programming wasn't 100% optimized... even though it was the best and most complex programming we had seen in any 3D game at that point.
@@thenonexistinghero This is absolutely not what they were saying. Reread the comment. The wording is a little clunky, but if you read the whole thing its obvious what they meant.
I think the reason they may have been so much bad math in Mario 64 was because coding things for a 3D environment was a relatively new thing at the time and certain concepts or techniques in 3D code just hadn't been invented/discovered yet. John Carmack did pioneer a lot of things for 3D including raycasting, but perhaps his techniques weren't well understood or known? This can possibly be reflected by the following quote: As the Nintendo 64 reached the end of its lifecycle, hardware development chief Genyo Takeda referred to its programming challenges using the word hansei (Japanese: 反省 "reflective regret"). Takeda said, "When we made Nintendo 64, we thought it was logical that if you want to make advanced games, it becomes technically more difficult. We were wrong. We now understand it's the cruising speed that matters, not the momentary flash of peak power."
The same things didn't happen with sonic adventure, and they arguably had more trouble considering the previous attempt at 3d sonic was a 2.5d mess that got canceled from internal corporate hell. The better less messy dreamcast hardware definitely made 3d gaming easier, and not having the space limitations allowed them to mostly faithfully recreate the classic gameplay (to a fault with tails and big was wtf but the rest was good), with graphics that weren't just compressed stock textures. 64 is good but it would've probably been much better if the Nintendo Playstation came to fruition, with the cds eliminating the disadvantages of the 64. Its spiritual successors surpassed it in every way tho. Banjo Kazooie is way better
No shit, which is why I hate videos where they shit on devs making their first 3d game on the cusp of the 3d revolution, they paved the fucking way lol
How to explain that quote, Sony has always focused on better graphics while Nintendo has always focused on making consoles with more simple and cheaper parts. Both are great marketing strategies that work very well for both companies. There was one time though, that Nintendo decided to switch gears and try to outcompete Sony in graphics quality by outcompeting their hardware specs for the time, not only that, but out compete them by a longshot. Nintendo set out to make the most complicated console they could possibly make and load it with every cutting edge feature they could for the time. The N64 was supposed to be like Hollywood CGI you see in theatres and rendered real-time, a cartridge would mean little to no load times, a disk drive would allow game code and memory to be readable and writeable and prove a clock for all games, an internet adapter would allow online play and sharing. This was above and beyond anything ever imagined at the time. Obviosuly the whole dream of it failed, Nintendo simply knew that the more powerful a console is, the more complicated it had to be. They intentionally went out of their way to make it as complicated as they could for really no reason. They gave it 2 different processors that dont work well together, took direct power away from the devs, and loaded the thing up with hollywood grade hardware. The costs were ridiculous. On top of that, surprise surprise, hollywood films cant be rendered realtime. Then they starting cutting costs everywhere, the yhad to rewrite the graphics microcode stuff loads of times so it can run faster. It was pretty botched. On top of that the intenret thing and disk drive failed as a product. The system was horrible to program for, it was stiupidly complicated, all the hardware and system didnt work very well with one another. The graphics quality was reduced to almost nothing and you can't even leverage the thing to full power because of technical oversights. Like, the N64 can technically have a lot of polygons, but you can't use them because it's convoluted as heck to render polygons and you have memory errors in non-relevant locations trying to do so so you can never leverage the device to its fullest. Thats why they gave that quote, the most powerful device is the one that's very powerful but very simple to program for, not one thats intentionally complicated. The N64 could have been way better had they just kept the hardware and design simple but powerful. It's a lesson they learned. Sony had to learn the lesson too with the PS3 by trying to make something ridicously complicated for power.
I created a game dev tool for creating 2D geometry purely out of triangles and later added custom properties so I could make 3D assets with it. Then, tried making a Doom clone out of it and one of the challenges was detecting and solving collisions with geometry that can take any shape. I tried reading up on how it was done for games like SM64 and Doom, but they were full of mathematical formula that made my eyes glaze over (I only ever succeeded in core mathematics at high school). So trying to do it from scratch, it became an absolute nightmare. There are countless bugs and edge cases and corner cases, almost literally, where the collision detection and resolution just fail completely and cause you to fall out of the world, so often that it would be unacceptable in a publicly released game. Point of all this is, I think Kaze and the developers of SM64 and Doom deserve as much respect as they can get for pulling it off in anything resembling reliable, since I have been doing game dev since 2005 or so and still can't pull it off (but it's probably just that I'm not very smart)
im not very tech savy, and there are quite a bit of things that I dont get, but for real, each time you upload a video, I am completely blown by the stuff you manage to do with the game and the fact that not only did you fix the issues, but also saved on processing while doing it, thats just great.
Explains why the few boss fights the og game has are all on wall-less platforms. With the exceptionof Big Boo, but thats probably because hes a ghost and wall collions dont matter. Even irock is only capable of moving towards the void, and not a wall.
Absolutely amazing how you're slowly making SM64 as optimised as possible! I have a couple of questions though: 1) Do these optimisations improve SM64 emulation in any way? 2)Are you considering releasing your fixes publicly so that other modders/ROM creators can utilise your fixes/optimisations and make their ROM hacks as efficient as possible?
While I can't answer the 2nd question, I can answer the 1st. These optimisations help the game run faster on original hardware. An emulator's job is to emulate original hardware. So, these optimisations actually do help this game run faster on emulators!
Yeah sure, it was the first 3D Mario, when 3D was still new, but also, this is one guy, against a team working on one of the biggest IPs for one of the biggest names in gaming lol.
@@calciums175 That one guy also had 8 years of n64 coding experience while Mario 64 had about 5 programmers and two animators who had less than 21 months to learn about the hardware while making a game
Whenever I watch these videos, I'm reminded of those guys who made a brand new game for the NES, called Micro Mages, which is ridiculously optimized and looks great. I know it would be a crazy big and time consuming project for one guy, but it would certainly be badass to see :P I'll let you know if I ever get rich, in which case I will sponsor you lol.
@@KazeN64 Yeah! I'm amazed that the NES can run something so beautiful. I also realized now that I forgot to write that such a project *for N64* would be a crazy big and time consuming project for one guy.
@@soulextracter And it's not even a big NES game. It's 40 KB, the same as the first Super Mario Bros. (By comparison, Super Mario Bros. 3 was 384 KB, and Kirby's Adventure was 768 KB.)
Honestly this idea at 2:36 is a really cool approach. As someone who's been developing a 3D Sonic fangame in Unity, one of the biggest issues to overcome is preventing the player from moving through the wall. This is good in the case that the player still manages to go through the wall, they'll be pulled right back to where the ray following the player hits the wall.
If Sonic's collision is a ball, you could have his entire collision scheme be a pill, the length of his speed vector, so that in essence he can never clip through walls, because (barring certain scenarios) all collisions will be caught (if they are processed) It's a scheme I use (in two dimensions, circular collision which becomes a pill as you speed up) and the player doesn't even go fast in my game. It's just very robust as far as I've tested it.
You literally went through the whole source code? I'm very impressed, fixing all those issues while also making it more optimal, you're incredible at this!
standardizing and releasing a patch that implements all these fixes (including the optimizations from your other vids) into a baserom for people to use would probably revolutionize sm64 hacking overnight
I just want to say "aside from the code fixing " the editing is so well done You didn't just say what you did, you showed us how it works and the code I immediately liked the video ❤❤
It's neat when you make a change that has the game run slower, but then find a fix that makes it run faster again. Even if it did run slower, it's great that you're fixing all these tiny bugs
Honestly one of the biggest hustlers I've ever seen. You put the work in, you optimize and have done so much for the game. I know someday you should move on to bigger and better things, with your talent. But your work with Mario 64 is phenomenal, and I hope you're able to push this game to its absolute potential (Even if that's never truly possible).
Took me a second to realize you are THE kaze. The myth; the legend. You are always the one with the most polished competition hack simpleflips has in his pool. Much love !
Beautiful. Getting back into Mario 64 for the first time in years takes an hour or two, to shake loose the modern gunk off your thumbs, but it's still a top 3 controls / character feel. I have no idea why they used 2D style "pump to go up" swimming controls in Odyssey when the best way has been established by them in the last century.
Its insane how much of the original games code you've changed, and optimized. I cant imagine how good that hack is going to be to play. If i had a better n64 controller than this cheap knock off, id deffinaetly be ready to olay this.
@ It was one of the first 3d games. Period. No need for bullshit semantics.
2 роки тому
@@jonnyj. 3d Games had been around for more than a decade by the time Mario 64 was released. Additionally, the original Sony Playstation had been released in 1994, and Mario 64 came out in 1996. Most PlayStation games were 3d games.
Thanks Kaze, I've been looking forward to your Top 5 Wall Bugs video for many years now. You've just made your most dedicated fan very happy, I will be subscribing twice.
1:01 so THAT'S why I consistently failed to wallkick up the blue coin shaft in rainbow ride! I was slowly getting closer to the back wall until it cucked me out of my wallkick on the right side!
I like how you briefly show off the code on what you did to solve the issue that you are talking about in this video. I think there should be more videos like this one to show brief glimpses of the code you used to solve a particular Mario 64 issue in the original game. Keep up the work!
Actually he kinda fixed the hyper speed walk and made it impossible to access parallel universes. He must be a guardian of parallel universes or something.
Bro stop putting yourself down! Your video editing skills are totally fine. I appreciate you sharing and explaining everything too! You’re doing amazing work!
I suppose you can still BLJ, although it may become useless in clipping, only useful for hyperspeed. Oh, and what about weird ledge grabs that allow you to move through walls?
glitch #2 reminds me a lot of how you get out of bounds in Doom. its basically the same thing, but its just a single step, not four. making it a much buggier solution, although its a lot harder to get enough speed in that game.
Imagine being such a Chad to single handedly optimize a lot of code in a game along with extensively modding it on your own, all while having the balls of the size of the moon to survive Nintendo, and even getting built like a brick irl Like, imagine that one buff dude living near your house being a SM64 coding wizard, you can't be more Chad than that
I always wanted to ask, is all of this wonderful work applicable to the decompilation project? And has that project helped you in any way with your programming. I am excited to see if maybe one day there cam be a crossover, maybe one of you awesome romhacks could be ported natively to pc, that would be awesome.
5:10 SM64 has a collision bug to do with a collision grid used to speed up collision checks, where things with radius only occupy one cell instead of all of the cells they are intersecting... I can't believe the original Doom and SM64 have the exact same bug with the exact same context (speeding up collision checks), probably coded independently too
Iterative physics checks were very common back in the day, especially for 2D games. That's where that came from. It took a bit for everybody to realize the power of raycasting for this purpose. You couldn't just Google this stuff back then. It was all new. This stuff was being invented on the fly.
After struggling through a university intro to coding class, I am in awe of what anyone ever does ever to mod a game. How you people have the brains to understand this I will never know
@@DessertArbiter you don't need a full game decomp just to edit a specific section of the games code this should be super possible in sunshine. Our team has allready improved the collision detection in sunshine We patched out spray nozzle sidestep clips, and improved the way water collision is handled so this shouldn't be hard for our lead coder JoshuaMK to handle :)
Ive never tried a SM64 romhack as I havent really looked too much into getting them to work, but the more and more I watch Kaze's videos, the closer I come to trying some.
Your T-rex looks so great! :D The colors bring me back to the SNES games, gosh I love dinosaurs! Please tell me Mario will OOF and flatten every time it steps on him.
Thank you for your incredible work on this project. Would you ever consider talking about how to get started in modifying the source code, or open sourcing your improvements to the engine so that others can learn from what you have done and possibly improve on it? Or is that too much of a legal risk given that it is copyrighted code?
It really is amazing to see how much jank was in early 3D games under the hood. That's why, when Nintendo went back to that style with the DS, the experience was so much better.
We super Mario 64 rom hack enjoyers are truly blessed to have something like this exist. I feel as though many of us never had such high expectations and yet here you are spending most of if not all your free time working on a project that we never could have seen being possible at all. Thank you for you commitment working on this. Also the textures that Zeina worked on are so much better than the original and still manage to run better than the original ones. Not to change the subject so abruptly, but I have been quite interested in decomp since last year. The way that every line of code is in the palm of your hands make it seem quite easy. The only real issue is to learn how to code and to use modeling tools such as blender. As a young 14 year old inspired by your work, I would like to use decomp and create ideas like never before. I made promises I couldn’t keep to others about how I would start making a hack soon and now here I am a full year later. I hope it isn’t too much to ask of you, but would you be able to point me in the right direction? Would you think that someone as unexperienced as me could learn how to code for decomp and learn to model? I hope that maybe I can turn the mess I got myself into around and maybe even create a hack that rivals yours. I understand if there isn’t much of a reason to help me, especially if I screwed myself over and lied to others. But I want to take a leap of faith and see if I would enjoy something like this.
yeah anyone can learn to code. picking up a skill like that early in live will be immensely helpful later on as well. ive met 16 year olds on discord that could program better than the 6th semester uni students ive met, simply because they've been coding for fun before university.
Nobody's going to bash you for promising a romhack and be slow at it, or giving up. At 14 you should learn programmation because it's fun, not because you feel pressured by misrepresentations of others' expectation on your "work". I repeat : you're 14, you're not working for anyone. Have fun with people online, put efforts into your creation, but don't enslave yourself with non-problems, especially at your age !
It would be cool seeing all these optimizations run on the N64 iQue player. It has a 140mhz processor and 16 megs of DDR RAM built in, both are faster than a regular N64. Might be something to consider in the future
0:18 what's the song playing more quietly in the background behind the mario rpg song?
3 роки тому
I am glad you did this. I think people have to remember in 1996, programming and Computers in general were still primitive. And 3D gaming was never done before. They pretty much had no idea what they were doing, and kinda winged it. SM64 wasn't perfect by any means. But for a first attempt, it was pretty cool for the time and paved the way for better 3D games in the future.
Yoshi's Island 64 is all but guaranteed to be the most epic N64 game ever. I'd call it a romhack but honestly it's way beyond that at this point. You are the Mario 64 magician man, seriously.
This is so satisfying to watch! Wouldn't you have some references to share on how to make the wall clips in a similar way to yours? I'm not sure how to code the ray and get the exact position before the intersection.
Nice solution for wall clips, my naive solution would've been to make the amount of steps dependant on the speed, so at slow speeds there are no to a few steps, and the higher the speed the more steps there are (potentially hundreds when moving BLJ-fast, which sounds like a performance nightmare in hindsight), so that there never is a gap between marios hitbox which could be exploited.
At first I was like "wait, no big boss fights? But what about King Bob-omb and King Thwomp?" Then I realized that those fights were in arenas with no wall collision.
Is there a "super mario 64 optimized" rom hack for the original game planned? Would be beautiful seeing the original game run at a constant 60 on real hardware.
i would like to do that eventually, but that'd take hundreds of hours of work that i can't spare at the moment.
@@KazeN64 shame, but certainly something to look forward to now
@@KazeN64 What I would love to see from you is a patch that applies all these fixes to an otherwise vanilla rom so other moders just start their work with the freedom theses fixes bring.
@@KazeN64 that was my idea.. 😥
there is the hackersm64 repo which is pretty much exactly that.
Going from creating meme hacks to fixing an entire engine in the span of a decade.
And he's getting better with every hack.
If you consider Star Road a MEME hack, it's okay.
kaze didn't make star road
@@HEHEHEIAMASUPAHSTARSAGA I guess they meant Last Impact, which is waay more intricate and complex than Star Road imo (although i love both hacks)
@@HEHEHEIAMASUPAHSTARSAGA What was Kaze's involvement, then?
Genuinely, I've seen his name next to Skelux in most author listings for the hack, and I've been rather confused by it.
I like how Kaze is so proud of his perfected Mario model that now it's the one being used in the thumbnail instead of the original model
haha, he just looks better, i thought there was a good chance i could get away with it without anyone noticing
@@KazeN64 you should be very proud, its awesome! you are mad talented
I thought it was the original model until I see the before video thumbnail
Sm64 is the perfect game to do these kinds of optimizations on because like, they were just still figuring out 3D games, and this is one of the first 3D platformers, so things weren’t close to perfect at all. So it’s fantastic to see its full potential with the work you’ve done on the game’s engine
Would be fun to see someone optimizing donkey kong 64 or something, since it runs so slow at times
At the same time, Super Mario 64 was nowhere near as optimized as it could be and optimized enough to be revolutionary upon release. As you said, this game was a leap into 3D. History could consider it the 3D platformer's golden proof of concept that paved the way showing what 3D platformers could look like. It didn't have to be perfect, but good enough to prove that the formula works.
I also consider it a wonder how games like Super Mario 64 were often made with teams of about 40-50 people in the span of two years from the ground up. These were people working with brand new hardware and no prior engine to fall back on. Games today look better, for sure, but it still feels like a slap in the face that they can involve 200 people over 5 years built on the engine of a previous game for hardware that most developers are intimately familiar with and still not be nearly as polished as Super Mario 64. Developers now-a-days have all the shortcuts they could ask for and still don't have the level of polish that Super Mario 64 has, and we're now discovering Super Mario 64 wasn't all that polished.
@@KTSpeedruns That's the thing about [current year] game development. The bar has been set so high for developers in regards to graphics and other things that it's become more or less difficult to maintain good optimizations and stellar graphics. With games like SM64, it not only maintained good performance and decent graphics at the time, but also set the bar of what's to be expected of 3D games going forward. Whereas in today's climate, with the bar set high and technology to do almost just about anything, where do developers go from there?
@@KTSpeedruns The game's considered revolutionary by pretty much everyone. Meanwhile you're saying it's not revolutionary simply because the programming wasn't 100% optimized... even though it was the best and most complex programming we had seen in any 3D game at that point.
@@thenonexistinghero This is absolutely not what they were saying. Reread the comment. The wording is a little clunky, but if you read the whole thing its obvious what they meant.
I think the reason they may have been so much bad math in Mario 64 was because coding things for a 3D environment was a relatively new thing at the time and certain concepts or techniques in 3D code just hadn't been invented/discovered yet.
John Carmack did pioneer a lot of things for 3D including raycasting, but perhaps his techniques weren't well understood or known?
This can possibly be reflected by the following quote:
As the Nintendo 64 reached the end of its lifecycle, hardware development chief Genyo Takeda referred to its programming challenges using the word hansei (Japanese: 反省 "reflective regret"). Takeda said, "When we made Nintendo 64, we thought it was logical that if you want to make advanced games, it becomes technically more difficult. We were wrong. We now understand it's the cruising speed that matters, not the momentary flash of peak power."
@Kalicrowa ah, the classic programmer take "if it works good enough don't touch it"
The same things didn't happen with sonic adventure, and they arguably had more trouble considering the previous attempt at 3d sonic was a 2.5d mess that got canceled from internal corporate hell.
The better less messy dreamcast hardware definitely made 3d gaming easier, and not having the space limitations allowed them to mostly faithfully recreate the classic gameplay (to a fault with tails and big was wtf but the rest was good), with graphics that weren't just compressed stock textures.
64 is good but it would've probably been much better if the Nintendo Playstation came to fruition, with the cds eliminating the disadvantages of the 64.
Its spiritual successors surpassed it in every way tho. Banjo Kazooie is way better
No shit, which is why I hate videos where they shit on devs making their first 3d game on the cusp of the 3d revolution, they paved the fucking way lol
How to explain that quote, Sony has always focused on better graphics while Nintendo has always focused on making consoles with more simple and cheaper parts. Both are great marketing strategies that work very well for both companies. There was one time though, that Nintendo decided to switch gears and try to outcompete Sony in graphics quality by outcompeting their hardware specs for the time, not only that, but out compete them by a longshot. Nintendo set out to make the most complicated console they could possibly make and load it with every cutting edge feature they could for the time. The N64 was supposed to be like Hollywood CGI you see in theatres and rendered real-time, a cartridge would mean little to no load times, a disk drive would allow game code and memory to be readable and writeable and prove a clock for all games, an internet adapter would allow online play and sharing. This was above and beyond anything ever imagined at the time.
Obviosuly the whole dream of it failed, Nintendo simply knew that the more powerful a console is, the more complicated it had to be. They intentionally went out of their way to make it as complicated as they could for really no reason. They gave it 2 different processors that dont work well together, took direct power away from the devs, and loaded the thing up with hollywood grade hardware. The costs were ridiculous. On top of that, surprise surprise, hollywood films cant be rendered realtime. Then they starting cutting costs everywhere, the yhad to rewrite the graphics microcode stuff loads of times so it can run faster. It was pretty botched. On top of that the intenret thing and disk drive failed as a product. The system was horrible to program for, it was stiupidly complicated, all the hardware and system didnt work very well with one another. The graphics quality was reduced to almost nothing and you can't even leverage the thing to full power because of technical oversights. Like, the N64 can technically have a lot of polygons, but you can't use them because it's convoluted as heck to render polygons and you have memory errors in non-relevant locations trying to do so so you can never leverage the device to its fullest.
Thats why they gave that quote, the most powerful device is the one that's very powerful but very simple to program for, not one thats intentionally complicated. The N64 could have been way better had they just kept the hardware and design simple but powerful. It's a lesson they learned. Sony had to learn the lesson too with the PS3 by trying to make something ridicously complicated for power.
I created a game dev tool for creating 2D geometry purely out of triangles and later added custom properties so I could make 3D assets with it. Then, tried making a Doom clone out of it and one of the challenges was detecting and solving collisions with geometry that can take any shape.
I tried reading up on how it was done for games like SM64 and Doom, but they were full of mathematical formula that made my eyes glaze over (I only ever succeeded in core mathematics at high school).
So trying to do it from scratch, it became an absolute nightmare. There are countless bugs and edge cases and corner cases, almost literally, where the collision detection and resolution just fail completely and cause you to fall out of the world, so often that it would be unacceptable in a publicly released game.
Point of all this is, I think Kaze and the developers of SM64 and Doom deserve as much respect as they can get for pulling it off in anything resembling reliable, since I have been doing game dev since 2005 or so and still can't pull it off (but it's probably just that I'm not very smart)
im not very tech savy, and there are quite a bit of things that I dont get, but for real, each time you upload a video, I am completely blown by the stuff you manage to do with the game
and the fact that not only did you fix the issues, but also saved on processing while doing it, thats just great.
Explains why the few boss fights the og game has are all on wall-less platforms.
With the exceptionof Big Boo, but thats probably because hes a ghost and wall collions dont matter.
Even irock is only capable of moving towards the void, and not a wall.
Absolutely amazing how you're slowly making SM64 as optimised as possible! I have a couple of questions though:
1) Do these optimisations improve SM64 emulation in any way?
2)Are you considering releasing your fixes publicly so that other modders/ROM creators can utilise your fixes/optimisations and make their ROM hacks as efficient as possible?
While I can't answer the 2nd question, I can answer the 1st.
These optimisations help the game run faster on original hardware. An emulator's job is to emulate original hardware. So, these optimisations actually do help this game run faster on emulators!
Chad Kaze putting Virgin Nintendo's code into shame once again
lol
In al fairness, SM64's development was heavily crunched and developers back in the day were getting started with 3D.
Hey it was the first 3D Mario. Cut em some slack. lol
Yeah sure, it was the first 3D Mario, when 3D was still new, but also, this is one guy, against a team working on one of the biggest IPs for one of the biggest names in gaming lol.
@@calciums175
That one guy also had 8 years of n64 coding experience while Mario 64 had about 5 programmers and two animators who had less than 21 months to learn about the hardware while making a game
Whenever I watch these videos, I'm reminded of those guys who made a brand new game for the NES, called Micro Mages, which is ridiculously optimized and looks great. I know it would be a crazy big and time consuming project for one guy, but it would certainly be badass to see :P
I'll let you know if I ever get rich, in which case I will sponsor you lol.
just looked that up, that game looks super cool
@@KazeN64 Yeah! I'm amazed that the NES can run something so beautiful.
I also realized now that I forgot to write that such a project *for N64* would be a crazy big and time consuming project for one guy.
@@soulextracter
And it's not even a big NES game. It's 40 KB, the same as the first Super Mario Bros.
(By comparison, Super Mario Bros. 3 was 384 KB, and Kirby's Adventure was 768 KB.)
Open Lara for GBA is also impressive.
Programming to make even existing physics accurate is very difficult. Nicely done! 6 weeks sound pretty short to me actually.
those 6 weeks were for the entire sm64 source, this was just the walls haha
Honestly this idea at 2:36 is a really cool approach.
As someone who's been developing a 3D Sonic fangame in Unity, one of the biggest issues to overcome is preventing the player from moving through the wall.
This is good in the case that the player still manages to go through the wall, they'll be pulled right back to where the ray following the player hits the wall.
If Sonic's collision is a ball, you could have his entire collision scheme be a pill, the length of his speed vector, so that in essence he can never clip through walls, because (barring certain scenarios) all collisions will be caught (if they are processed)
It's a scheme I use (in two dimensions, circular collision which becomes a pill as you speed up) and the player doesn't even go fast in my game. It's just very robust as far as I've tested it.
You literally went through the whole source code? I'm very impressed, fixing all those issues while also making it more optimal, you're incredible at this!
standardizing and releasing a patch that implements all these fixes (including the optimizations from your other vids) into a baserom for people to use would probably revolutionize sm64 hacking overnight
it would probably take a couple years, though
i doubt it would. most hackers don't care about their game running on console, and everyone is used to original sm64 physics
@@galoomba5559 stings to hear
This would be a really cool thing for libsm64 projects.
Mario: stands near wall
The dinosaur: 👁️👄👁️
7:31 THERE I AM GARY THERE I AM
I just want to say "aside from the code fixing " the editing is so well done
You didn't just say what you did, you showed us how it works and the code
I immediately liked the video ❤❤
itd definitely be interesting to see these optimizations put into place as a romhacking base, imagine the kinda stuff that might be possible with this
Could these changes be added to the PC port? it's amazing how changes to collision make the entire game run so much more efficiently, great work!
It's neat when you make a change that has the game run slower, but then find a fix that makes it run faster again. Even if it did run slower, it's great that you're fixing all these tiny bugs
Always really exciting to see these kind of optimization videos, as a developer it gives me inspiration to write fast code myself :)
Honestly one of the biggest hustlers I've ever seen. You put the work in, you optimize and have done so much for the game.
I know someday you should move on to bigger and better things, with your talent. But your work with Mario 64 is phenomenal, and I hope you're able to push this game to its absolute potential (Even if that's never truly possible).
Did not expect to see my ancient SBLJ video in this video 😂
This is incredible. The sheer level of work you are putting into fixing and optimizing an old game is astounding.
Took me a second to realize you are THE kaze. The myth; the legend. You are always the one with the most polished competition hack simpleflips has in his pool. Much love !
Beautiful. Getting back into Mario 64 for the first time in years takes an hour or two, to shake loose the modern gunk off your thumbs, but it's still a top 3 controls / character feel. I have no idea why they used 2D style "pump to go up" swimming controls in Odyssey when the best way has been established by them in the last century.
Yo, I can't handle Kaze getting SO DAMN SWOLE OMG! It's like he absorbs every fixed issue with the original SM64 right into his muscles.
Its insane how much of the original games code you've changed, and optimized. I cant imagine how good that hack is going to be to play. If i had a better n64 controller than this cheap knock off, id deffinaetly be ready to olay this.
To be fair Mario 64 was one of the first 3D games. They had no idea what they were doing and it's amazing it worked as well as it did.
It was one of the first good 3D platformers. It was far from the first 3D games.
@ It was one of the first 3d games. Period. No need for bullshit semantics.
@@jonnyj. 3d Games had been around for more than a decade by the time Mario 64 was released. Additionally, the original Sony Playstation had been released in 1994, and Mario 64 came out in 1996. Most PlayStation games were 3d games.
@ No game before 1994 uses a 3-dimensional coordinate system to store geometric data. Hence they are not truly 3D.
Thanks Kaze, I've been looking forward to your Top 5 Wall Bugs video for many years now. You've just made your most dedicated fan very happy, I will be subscribing twice.
1:01 so THAT'S why I consistently failed to wallkick up the blue coin shaft in rainbow ride! I was slowly getting closer to the back wall until it cucked me out of my wallkick on the right side!
I like how you briefly show off the code on what you did to solve the issue that you are talking about in this video.
I think there should be more videos like this one to show brief glimpses of the code you used to solve a particular Mario 64 issue in the original game.
Keep up the work!
It's been a while since last playing SM64, but even so that answered at least three big questions! Thanks!
You’re at least 4 parallel universes ahead of any other Mario 64 hacker, Kaze
Actually he kinda fixed the hyper speed walk and made it impossible to access parallel universes. He must be a guardian of parallel universes or something.
Amazing job! Great to see that not you not only were able to fix buggy wall collision code but also speed up the performance while doing it!
Ohh man, You are trully an angel for this community !
Kaze, you are one of few who can make a video that I both do not understand and completely get, while also being entertaining and educational.
This is really neat, thanks kaze!
I loved this video, wonderful summary of a passion project!
Bro stop putting yourself down! Your video editing skills are totally fine. I appreciate you sharing and explaining everything too! You’re doing amazing work!
Kaze ist das beste was Deutschland hervorgebracht hat seit der Erfindung von geschnitten Brot!
Ganz viel liebe an dich für deine großartige Arbeit!
Super impressive as always Kaze! Love watching your stuff!
Damn if thats irl kaze on the cam there, he is fricking jacked!
I suppose you can still BLJ, although it may become useless in clipping, only useful for hyperspeed.
Oh, and what about weird ledge grabs that allow you to move through walls?
good job with the continuous collision. I know how nightmarish that can be, and I've only halfway implemented it into a 2D physics engine.
informative vids like this remind me of pannenkoek and stuff except we hear your beautiful voice Kaze, keep up the good work!
I love that you are a shredded game dev. That's so uplifting for some reason.
Super cool to see this! Always love hearing about unique quirks and how they can be solved
your video editing is very good! You are incredibly good at getting your information across
a lot of the wall physics in the original remind me a LOT about doom
Great video Kaze! I always knew something was up with the walls in Mario 64 but I didn't know enough to figure out why
Idk why, but your voice is super pleasant to listen to. More content like this please!
glitch #2 reminds me a lot of how you get out of bounds in Doom. its basically the same thing, but its just a single step, not four. making it a much buggier solution, although its a lot harder to get enough speed in that game.
Ray cast collision: turning Super Mario 64 collision into Super Mario 64 DS
Imagine being such a Chad to single handedly optimize a lot of code in a game along with extensively modding it on your own, all while having the balls of the size of the moon to survive Nintendo, and even getting built like a brick irl
Like, imagine that one buff dude living near your house being a SM64 coding wizard, you can't be more Chad than that
Lol
Unbelievably based. And he has a GF, too.
@@malte3421 *_I M P O S S I B L E H O W ? ? ? ?_*
@@malte3421 I can't see why he wouldn't have one tbh 😂
how walls in sm64 TRIGGERS you
OH NO
Nathaniel Bandy has joined the chat
Damn Kaze, way to fix everything
You're doing god's work, son. This is very impressive, can't wait to see a completed product/test eventually.
this is very useful information for programing wall functionality in games period, thank you
very nice work. I have never really played any sm64 romhacks but I've seen some amazing stuff from you that I need to check out someday.
What a mad lad, the guy know everything about this game ahah
I always wanted to ask, is all of this wonderful work applicable to the decompilation project? And has that project helped you in any way with your programming. I am excited to see if maybe one day there cam be a crossover, maybe one of you awesome romhacks could be ported natively to pc, that would be awesome.
yes, the code snippits ive shown are all the decompilation project. if i was showing assembly code, noone would understand a thing (it's pure numbers)
@@KazeN64 Warte mal also für den hack schreibst du den ganzen Code in asm um und integrierst diesen Code dann ins game??
Thank you for explaining, some of the best content on youtube imo
5:10 SM64 has a collision bug to do with a collision grid used to speed up collision checks, where things with radius only occupy one cell instead of all of the cells they are intersecting...
I can't believe the original Doom and SM64 have the exact same bug with the exact same context (speeding up collision checks), probably coded independently too
Iterative physics checks were very common back in the day, especially for 2D games. That's where that came from. It took a bit for everybody to realize the power of raycasting for this purpose.
You couldn't just Google this stuff back then. It was all new. This stuff was being invented on the fly.
That's true,... although they did also implement raycasts for his floor collision so it's a bit of an odd combination
After struggling through a university intro to coding class, I am in awe of what anyone ever does ever to mod a game. How you people have the brains to understand this I will never know
The stuff you can do is crazy to me, so much respect :)
woah that tas at 3:28 is really cool I wonder who made it :O
This video (along with what came on screen at 3:54), had me seriously wondering if we first needed to delve into the topic of parallel universes.
Neat analysis video! Thanks for uploading!
Sunshine borrows a fair bit of collision code from sm64 I think so wonder if this info would also be helpful for sunshine as well 🤔
probably, but not until sunshine decomp is done
@@DessertArbiter you don't need a full game decomp just to edit a specific section of the games code this should be super possible in sunshine. Our team has allready improved the collision detection in sunshine We patched out spray nozzle sidestep clips, and improved the way water collision is handled so this shouldn't be hard for our lead coder JoshuaMK to handle :)
@@epicwade6346 oh cool
Ive never tried a SM64 romhack as I havent really looked too much into getting them to work, but the more and more I watch Kaze's videos, the closer I come to trying some.
No quarter steps? Dude looked at Pannenkoek and decided to end that man's whole career.
The collisions look so much smoother after your changes.
Your T-rex looks so great! :D The colors bring me back to the SNES games, gosh I love dinosaurs! Please tell me Mario will OOF and flatten every time it steps on him.
You're nuts man. This is a treat to watch and follow.
Thank you for your incredible work on this project. Would you ever consider talking about how to get started in modifying the source code, or open sourcing your improvements to the engine so that others can learn from what you have done and possibly improve on it? Or is that too much of a legal risk given that it is copyrighted code?
You are incredible. I wish I had even an inkling of your vast knowledge
that is stunning, kaze, you're the og!!
This was a really interesting video, I would love to see more stuff like this
It really is amazing to see how much jank was in early 3D games under the hood. That's why, when Nintendo went back to that style with the DS, the experience was so much better.
This is some really impressive work
Excellent work, well done!
We super Mario 64 rom hack enjoyers are truly blessed to have something like this exist. I feel as though many of us never had such high expectations and yet here you are spending most of if not all your free time working on a project that we never could have seen being possible at all. Thank you for you commitment working on this. Also the textures that Zeina worked on are so much better than the original and still manage to run better than the original ones. Not to change the subject so abruptly, but I have been quite interested in decomp since last year. The way that every line of code is in the palm of your hands make it seem quite easy. The only real issue is to learn how to code and to use modeling tools such as blender. As a young 14 year old inspired by your work, I would like to use decomp and create ideas like never before. I made promises I couldn’t keep to others about how I would start making a hack soon and now here I am a full year later. I hope it isn’t too much to ask of you, but would you be able to point me in the right direction? Would you think that someone as unexperienced as me could learn how to code for decomp and learn to model? I hope that maybe I can turn the mess I got myself into around and maybe even create a hack that rivals yours. I understand if there isn’t much of a reason to help me, especially if I screwed myself over and lied to others. But I want to take a leap of faith and see if I would enjoy something like this.
yeah anyone can learn to code. picking up a skill like that early in live will be immensely helpful later on as well. ive met 16 year olds on discord that could program better than the 6th semester uni students ive met, simply because they've been coding for fun before university.
Nobody's going to bash you for promising a romhack and be slow at it, or giving up. At 14 you should learn programmation because it's fun, not because you feel pressured by misrepresentations of others' expectation on your "work". I repeat : you're 14, you're not working for anyone. Have fun with people online, put efforts into your creation, but don't enslave yourself with non-problems, especially at your age !
@@SealsAreMyFriends I never saw it that way. Thanks for this point of view,
So after 25 Years someone Fixed all/some of the Sm64 Wall bugs for us
Honestly, at this point regardless of whether or not the hack ends up being fun, its a technical achievement.
There's a special spot in heaven for people like you man, this is god's work
"It's not a bug it's a feature"
-St Howard, Warden of lies
It would be cool seeing all these optimizations run on the N64 iQue player. It has a 140mhz processor and 16 megs of DDR RAM built in, both are faster than a regular N64. Might be something to consider in the future
You know the video will be good when the first chapter is titled "Wallcucking".
0:18 what's the song playing more quietly in the background behind the mario rpg song?
I am glad you did this. I think people have to remember in 1996, programming and Computers in general were still primitive. And 3D gaming was never done before. They pretty much had no idea what they were doing, and kinda winged it. SM64 wasn't perfect by any means. But for a first attempt, it was pretty cool for the time and paved the way for better 3D games in the future.
Yoshi's Island 64 is all but guaranteed to be the most epic N64 game ever. I'd call it a romhack but honestly it's way beyond that at this point. You are the Mario 64 magician man, seriously.
I think the pace you edit and release your videos is not so bad, plus I enjoy seeing the progress on the mod on twitch
This guy is just too big brain I have no idea how somebody can make all of these miracles happen
This is so satisfying to watch!
Wouldn't you have some references to share on how to make the wall clips in a similar way to yours?
I'm not sure how to code the ray and get the exact position before the intersection.
Nice solution for wall clips, my naive solution would've been to make the amount of steps dependant on the speed, so at slow speeds there are no to a few steps, and the higher the speed the more steps there are (potentially hundreds when moving BLJ-fast, which sounds like a performance nightmare in hindsight), so that there never is a gap between marios hitbox which could be exploited.
At first I was like "wait, no big boss fights? But what about King Bob-omb and King Thwomp?" Then I realized that those fights were in arenas with no wall collision.
Man the fact that one dude can basically fix all of the performance issues in this game is outstanding
This is a like a getting a tour through a fine arts museum