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.
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.
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.
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.)
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
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!
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
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!
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.
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 ❤❤
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.
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?
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.
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.
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.
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 !
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).
@ 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.
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
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!
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
@@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 :)
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.
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?
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.
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.
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.
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 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.
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.
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.
2 роки тому
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.
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.
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.
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!
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
Imagine if Time Travel became a thing, and Kaze just walked into the SM64 Programmer's room as they work on it, completely blowing their minds with this stuff.
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
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.
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
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.
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.
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.
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.
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
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
Mario: stands near wall
The dinosaur: 👁️👄👁️
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.
Did not expect to see my ancient SBLJ video in this video 😂
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.
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!
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
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!
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!
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.
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
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.
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 ❤❤
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.
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.
This is incredible. The sheer level of work you are putting into fixing and optimizing an old game is astounding.
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?
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.
Damn if thats irl kaze on the cam there, he is fricking jacked!
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.
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.
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 !
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).
Always really exciting to see these kind of optimization videos, as a developer it gives me inspiration to write fast code myself :)
I love that you are a shredded game dev. That's so uplifting for some reason.
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.
a lot of the wall physics in the original remind me a LOT about doom
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
It's been a while since last playing SM64, but even so that answered at least three big questions! Thanks!
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.
The collisions look so much smoother after your changes.
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!
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.
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!
Ray cast collision: turning Super Mario 64 collision into Super Mario 64 DS
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
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
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!
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
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
What a mad lad, the guy know everything about this game ahah
woah that tas at 3:28 is really cool I wonder who made it :O
This is a like a getting a tour through a fine arts museum
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?
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.
how walls in sm64 TRIGGERS you
OH NO
Nathaniel Bandy has joined the chat
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??
This guy is just too big brain I have no idea how somebody can make all of these miracles happen
"It's not a bug it's a feature"
-St Howard, Warden of lies
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.
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.
So after 25 Years someone Fixed all/some of the Sm64 Wall bugs for us
You know the video will be good when the first chapter is titled "Wallcucking".
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.
No quarter steps? Dude looked at Pannenkoek and decided to end that man's whole career.
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.
Idk why, but your voice is super pleasant to listen to. More content like this please!
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.
Man the fact that one dude can basically fix all of the performance issues in this game is outstanding
Honestly, at this point regardless of whether or not the hack ends up being fun, its a technical achievement.
Ohh man, You are trully an angel for this community !
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 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.
You are incredible. I wish I had even an inkling of your vast knowledge
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.
kaze and pannenkoek are the pantheon of mario 64 gods.
There's a special spot in heaven for people like you man, this is god's work
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.
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.
I loved this video, wonderful summary of a passion project!
this is very useful information for programing wall functionality in games period, thank you
Super cool to see this! Always love hearing about unique quirks and how they can be solved
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!
2:04
This is basically how I believe quantum tunneling works.
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
Imagine if Time Travel became a thing, and Kaze just walked into the SM64 Programmer's room as they work on it, completely blowing their minds with this stuff.
It'd probably fast-track revolutionizing 3d games- SM64 was one of the first 3d games, in the era of figuring out all this stuff.
I'd personally introduce the world to the modern game consoles and electronics instead. That is something that would really mess with the timeline.
Basically a recreation of SM64 which is really cool. I love seeing projects like this, though the only other one I can think of is OpenMW.
informative vids like this remind me of pannenkoek and stuff except we hear your beautiful voice Kaze, keep up the good work!
Whenever you lose a bug you find interesting there is always the option of translating it into an intentional mechanic.
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 😂
This is really neat, thanks kaze!
I think Kaze is some kind of Mario Wizard at this point.
I’d love to see the mod you’re making but it’d be so cool to see all your optimizations in the actual game
this mans need to call himself PhD.MARIO(64)
this is pretty amazing!
Beautiful! I wish we could send you back in time to work on the original code and make it correct from the beginning. Alle guten Wünsche!
A step is a step, you can't say it's only a quart.
That dinosaur you made is awesome!
I guess this will require a new speedrunning category.
mario 64 hacks in the past: omg!! bob omb battlefield flat!!! WHAT!!!
mario 64 hacks now: yeah there’s a giant t rex it’s chill
Super impressive as always Kaze! Love watching your stuff!