This project is a masterclass in technical discipline, proving that authentic gameplay is defined by robust state machines rather than proprietary assets. It elegantly demonstrates how rigorous refactoring can bridge the gap between legacy mechanics and modern engineering standards.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
My Mario Remake Runs With No Nintendo AssetsAdded:
So, you can play the game without any assets now. It looks ridiculous, but it actually works. So, I went through the comments from the last two videos, and you all caught a lot of stuff. A few people pointed out that Mario's walk cycle was way too fast. I adjusted the animation speeds to be closer to the original game. Some of you have a really good eye for detail. The Super Mario Bros. logo on the title screen had wrong tiles mapped. The B was slightly off, and once I looked closer, the P, the first R, the A, the second R, and the last R were all incorrect, too. So, I went back to the tile mappings and fixed each one. It's the kind of thing where once [music] someone points it out, you can't unsee it. But, I genuinely did not notice until the comments.
When you suck at the game and get hit, you're supposed to go from fire Mario to small Mario. But, in my version, I had it going from fire to big to small, which is how the newer games handle it.
When I was programming it, I must have been thinking about the newer games, because that felt right at the time.
But, it's not how the original works.
>> [music] >> So, the fix itself is straightforward, but it did have a few bugs at first. The code that handles Mario's state transitions is getting pretty tangled right now. I have the power-up logic, the damage logic, and the animation system all kind of reaching into each other. So, I'll need to add a proper finite state machine at some point and clean up the transition handlers. But, for now, it works. Fire Mario takes a hit, goes straight to small. That's how it should be. Some of the repeating sound effects sounded weird.
Turns out a few of them had a small delay before the actual sound started in the audio file. I went into Audacity and trimmed those leading silences. And then, I changed the debounce timing to be shorter. Now, when Mario's hitting blocks or collecting coins rapidly, the sounds don't have that awkward gap.
>> [music] >> It sounds much better.
A few people suggested I use YYCHR for the sprite extraction. It's a popular tile viewer and editor for NES ROMs, [music] and it's a good suggestion. The thing is, it's a Windows-only program, and I mostly work [music] on a Mac, so it didn't occur to me. But, I did try it out. I searched through the options, >> [music] >> and I couldn't find any way to automatically build and export the assets from it, or create the tile [music] to sprite mappings that my pipeline needs. It is great for viewing and manually editing individual tiles, but it doesn't do what I need it to.
Some people had trouble getting the project running on Windows because of the Python scripts and FFmpeg dependencies. That's all gone now. When you open the ROM in the game for the first time, [music] it extracts the assets directly to the user data folder.
So, no external tools or command line.
>> [music] >> I can make release builds now, too, so you can just download and play instead of building from source.
>> [music] >> And if you choose not to provide a ROM at all, the game still runs. It just replaces every sprite and tile with colored squares. It looks pretty funny, honestly, but it does actually play.
Everything is functional. You just can't tell what anything is. The goal from [music] here is to finish the first world. But, before I start adding new features, I want to clean up the code.
The transition handlers and the pause system are messy. If you pause the game right now, it permanently soft locks.
And that's [music] the kind of thing that happens when you move fast and don't clean up after yourself. This project has only been worked on for a few weeks. So, the plan is to add a proper finite state machine, move the sub rooms into their own scenes instead of having everything crammed into the main scene, and just pay down the technical debt before it gets worse.
Anyway, the demo release build is up on GitHub if you want to try it. No more building from source.
Related Videos
Agentforce NOW AMA: Build with React and Salesforce Multi-Framework
SalesforceDevs
490 viewsβ’2026-05-28
How agent o11y differs from traditional o11y β Phil Hetzel, Braintrust
aiDotEngineer
450 viewsβ’2026-05-28
Re: π£οΈπthepropheduπ2026 GST 103 CLASS (E-EXAM REVISION)
theprophedu
636 viewsβ’2026-06-04
WEB TECHNOLOGIES UNIT-2 | Degree 4th sem BCOM Computers web technologies unit-2 full explanationπ―β
LearnwithSahera
1K viewsβ’2026-05-29
More tests are always better? How to use AI to identify tests that bring little value
Alliance4Qualification
335 viewsβ’2026-05-29
Search Algorithms Explained in 60 Seconds! π€π¨
samarthtuliofficial
218 viewsβ’2026-06-01
People of Game of Thrones using JavaScript DOM
AltCampus
296 viewsβ’2026-05-30
Instagram accounts got PWNed
EricParker
13K viewsβ’2026-06-03











