@@SilasTheSilent I don't think so, I mean I'm no expert but unless he through Mario in it or used code from a preexisting game (which would be a copyright issue for either) he's legally clear. He even says that about the NES at 0:48.
@@yellowwinner1 Yes, you're right. There is no legal issues. There are no permissions needed to sell a physical SNES release either, except if you want to use their trademarked logos. They're unlikely to grant a licence for that (they have policies about how their legacy branding is used, much like any company that pays people to run their branding)... but, all this could be a foot in the door to release the game on the Switch platform if the game proves to have commercial value. Stranger things have happened.
@@No_True_Scotsman Yeah, but the game is not officially approved by Nintendo, so it doesn't really count here. If it does count, then other NES and SNES homebrew games that are made this year also count
I worked for a company in 1989 that got a NES development setup so they could start coding a game they eventually published as “Moon Ranger.” The sample 6502 code we received was full of bugs but George got those fixed up and optimized the code and we submitted the changes back to Nintendo. And that was the point where I move on to another job, so I never got the full Nintendo development experience. But today in 2025 anyone can dive in with free tools, and even build their own emulator if they feel like it, so there’s never been a better time to make your own Nintendo games!
Moon Ranger is a game published by "Bunch Games", the branch that Color Dreams (I think now called Wisdom Tree, at this point) relegated to cheaper games. None of these companies were ever licensed by Nintendo, perhaps Color Dreams was still dreaming of being a licensed publisher?
@@ScottLahteineI see, they also made Deathbots for Color Dreams/Wisdom Tree/Bunch Games. I'm more curious about the part where changes were sent to Nintendo, this company (like others) didn't like the idea of paying Nintendo to produce their cartridges. I do know Nintendo had a requirement where NES games were discouraged from using illegal 6502 opcodes (for the proposed but ultimately scrapped backwards compatibility of the SNES), but I'm not sure if unlicensed publishers cared much about that.
My uncle worked for Intel in Arizona. He was an engineer who would service their lithography machines. When I was 11 years old, he gave me an NES cartridge with a set of all the copied NES games. The copied game would be inserted into the larger cartridge and then inserted into the console. It was awesome! He passed away about 15 years ago and I gave it back to his son. He wouldn't tell me where he got it, but I have a feeling he made it with people at his work.
Thanks for the shout-out :) great video! Since tackling the hardware, I've been meaning to try my hand at software at some point. This has inspired me :)
It is WILD that they had to hand in a FULL PLAYTHROUGH of their game! ON VHS! I imagine the chunky box full of 240min VHS recorded by some poor play tester.
This is actually an incredibly smart idea, and probably why a lot of SNES games were a good bit more reasonable. And unlike super mario maker where there's no actual human moderation to assure something is beatable through the intended path, someone could of course, determine reasonably if there're shenanigans.
@@Aeduoto be fair to Mario Maker, they do have a few things in place to try to avoid unbeatable levels. I'm not saying those systems were as effective as intended, they absolutely weren't, but it's not like they did nothing at all. And given the sheer number of levels submitted to those games there's simply no way a human could review them all. If you're making a veiled reference to Trimming The Herbs, recording a playthrough wouldn't have caught that since the playthrough would not show whether there was a human playing it or not. So while your point that many MM levels don't live up to SNES era Nintendo standards is valid, you do need to keep in mind that QCing MM levels is at a vastly different scale than Nintendo has to deal with when QCing SNES games.
i just came here after seeing the dude that built his own "anyon_e" laptop which i thought it's gonna be some slapped together parts, but noooo, it went way beyond that, like custom pcb stuff. Now i'm here. My brain hates me
mad respect for people who had to squeeze a fun playable game complete with audio and graphics into a tiny space in memory using a whole bunch of tricks to save space and writing it all in assembly. A far cry from cranking out a quick indie game with a game engine like unreal
@silverismoney Ikr , i'm trying to design a retro style game for a 6502 emulator that comes with it's own custom graphics hardware that's designed to work like something from the 80s but not an exact emulation of any hardware from back then , trying to get my head around the hardware is difficult enough (I don't fully understand it so I could be wrong but from what I can tell it has 64KB of RAM shared between the CPU/graphics hardware with 1KB of that 64 as VRAM that maps to 1024 pixels on screen with 4bit colour or 16 possible colours all of which can be displayed on screen at once , 2KB for code which is the equivalent of the cartridge ROM and same size as early Atari 2600 games ). Everything is coded in 6502 assembly although it doesn't appear to have any sound hardware from what I can tell so doing all of that while also coming up with a game design document is pretty fun but challenging :P
@ArneChristianRosenfeldt Yeah the C64 had a great sound chip & I do plan to start learning how music trackers work to make retro sounding chiptunes. I know there's some homebrew development tools that allow you to make megadrive games in C which is pretty cool , yh maybe one day I can check that stuff out 👍🏾
It’s actually extremely impressive that they were able to make such high-quality games with that hardware and 6502 assembly language. Having done a bit of IBM Assembly myself, I know firsthand how tedious and difficult this can be, especially to debug. Every single byte had to be accounted for, so efficiency was essential. These days, even simple games use enormous amounts of storage and memory thanks to cheap hardware and bloated systems full of layers of abstraction.
What is so difficult with accounting? A 6502 can only access 64k. So usually you have a big poster on the wall with your zeroPage memory map. And then you have a bunch of arrays in the rest of the memory. For the code you need to think in block scope. Is there some variable in the registers which I will need after the block? Then place some push and pop around the block. For parameters you need to make sure that they are popped in the same order inside the function every time. So branches might be a problem. Likewise return values need to be pushed in the same order.
@@ArneChristianRosenfeldt I've seen you commenting on a lot of videos. If you really think it's so easy, then put your money where your mouth is and write a game for either the NES or SNES and do it entirely in assembly.
24:40 That is one of the greatest feelings ever, I have to agree. I've been working on Sega Master System and Super Game Boy games as a hobby for the last couple of years, and being able to see all of your work up and and running on real hardware through a CRT is like nothing else
You laugh but I faintly remember an arcade fightstick peripheral with those! It was official AFAIK, my cousin had it instead of a normal second controller because he wanted a "fighting game controller" to go with his SNES Mortal Kombat 3. Had a full-out joystick, and the weirdest setup with the L and R being above the ABXY buttons, like a 6-button genesis controller on this HUGE box you basically needed either on a table or in your lap. The video probably meant joyPAD, but yeah, there were joycons/joysticks too.
Nintendo ironically failed requirement 9 with Pilotwings when they started manufacturing it with a bug-fixed DSP1 chip. The buggy chip would play the attract mode perfectly, but the plane would crash when the revised DSP was installed in the cartridge due to a very slight effect on the physics engine.
I need to point out, that it is extra impressive, that you learned all the different kinds of stuff, like arts, gamedesign, Programming in 6505 Assembly, learning about the SNES hardware and how to specifically program for that, soldering etc... Some things as you told only for this project. You're pretty versatile, so impressive.
I did this back in 1993 without the help of any modern hardware or software. My development computer wasnt even a PC. it was a 7mhz Commodore Amiga 500.
They'll turn it down and probably blacklist you from ever working with Nintendo for the rest of your life. Same thing that happens when you try to send Pixar an idea for a movie.
@@stuff31 Why the hell would they do that if you followed all of the intended methods of creating and submitting a game. Even if you didn't, they wouldn't care because you doing that doesn't hurt their sales
I know writing the editor is half of the fun, but I'd like to recommend the "Tiled" map editor. Some time ago I was evaluating lots of different 2D map editors with the goal of writing my own with the best ideas, and Tiled was pretty much exactly what I needed. So my build scripts are getting TMX files, and produce SNES specific binary and assembly data. Tile graphics are already pre-optimised for 16 colour/8 palettes, so just need to be converted to SNES format.
I will personally buy a snes to play your game good sir. Please finish this amazing project. Thank you for putting so much effort into this video. It’s incredible how intelligent you are.
Well at least you were able to have the effort find a program to actually compile your game and also figure out how the compiler works. I'm too lazy to even do that! All I have the effort to do is draw spritework. Also good job on learning how to draw. I'm really impressed! The more you practice the better you become!
Eh, the process is just as interesting as the result imo. Like I don't care a lot about a NES game itself in 2024, but the way it's made is more timeless imo
Nice video. It's really cool that you're making a game for the SNES, a system that not many homebrew developers like to develop for. Just one correction: 8:05 Actually, sprites on the SNES are *always* 4BPP. You can't have 8BPP sprites like on Game Boy Advance, and sprites can't natively use a 2BPP format on SNES either. The only way to get graphics stored as 2BPP onto a sprite in runtime is to convert them to 4BPP, whether through a specific DMA transfer unit selection (the fastest way, but only works with NES-formatted 2BPP graphics, not SNES/GB-formatted 2BPP graphics) or manually. Also, why did you use layer 2 for the HUD when most SNES games use layer 3 for the HUD? Do you really need as many colours as 4BPP gives you for the HUD? If you had used layer 3 for the HUD, you would be able to use both layers for the foreground, allowing you to overlap tiles on top of each other while saving VRAM. Interesting game development nonetheless, and I'm interested in playing the full game whenever it comes out.
Great video! Do you need music for your game? I've managed to program a music engine before for the Super Nintendo (it's hard), but the Super music is super important to SNES games
22:12 yo being able to break the bamboo is actually sick! I'd have been hyped up as a kid doing that and would probably convince myself I was training for real 😹
Hmm. Cool idea, but I'm a bit worried for the game. I've seen many projects on youtube ended up with their dev binning it or starting from scratch to rework core mechanics because they were focused on looks instead of the game loop. I am just a viewer though, it does look like you have worked it out with the mini demo, though, so I just hope you don't miss the forest for the trees with overbaked mechanics while leaving the core loop uncooked. Great video as always and I hope my criticism is at least has been followed before I wrote it.
I love your videos so much! They bring a new perspective and personality to programming for me, inspiring me to continue with my own efforts in programming. I wish the best for you in this coming year!
CallousCoder It does not look good that the first thing I see when I visit your channel is an AI generated image for a thumbnail, sorry. I'm tired of AI generated media.
@@TuneInToAbacas Oh that's the only one "What waas that saying again? About a judging a book by it's cover?" :D But there's a lot of old skool game hacking there. And very low-level coding and weird esoteric projects.
@ I believe you, I just... am an artist, and I don't like AI being used whatsoever. Please take that how you will, unfortunately it means I have no interest in supporting your channel with my views. Also, I dug slightly deeper and I saw another image that was obviously AI, so don't tell me that's the only one.
@@TuneInToAbacas All the rest is not AI only the kid with the hoodie. The rest is photoshop comping and some stuff for a game I did is an actual cartoon artist that I employed. But you have an interestingly weird way of looking at things :D Who gives a hoot what a the thumb tag is, it's about the content, that's what normal people would think. And I am an artist too, a musician song/writer as you would see/hear and I work as special effects artist and visual effects artist as well. I show some of my special effects arts work there too. Anything that's creative that I do I show case there. Hence it's a bit of everything. But in the end it is your choice ;)
@@alexandersalazar9750 All of the American ones look weird. I am from PAL region and I spent my childhood playing SNES games so seeing any ofthe American SNES consoles just feels really weird. Also the differences of PAL and NTSC games is fascinating, like the sound speed.
I love the US version (probably because I grew up with it, and I love the sharp angles) but the PAL version is my favourite (Japanese second). 50hz can suck a lemon though.
@@netwicks1126 US SNES looks cooler, but the PAL controller was SO MUCH NICER to hold. Source: my aunt somehow ended up with a PAL controller along with an NA one for her SNES, so I got to compare speedrunning Donkey Kong Country 1, 2, and 3 with both. PAL one didn't give me massive finger cramps.
I never wrote for the SNES. I did a lot of NES reverse engineering and more development on the SEGA MegaDrive and a hell of a lot on the Atari ST (68000 for the win) and we need to get back to a lesser abstraction imo. All these interpreted languages now used wastes so much of our incredible hardware's potential
The likes of Lua and other languages aren't the real bottleneck. The bottleneck, which is really hard to avoid, is hardware abstraction. Frankly, while I'd fun working directly on the metal on older machines, the idea of using, say, Vulkan directly isn't that enticing, and definitely not if I were working in the games industry on anything except engine development.
@@talideon Well the scripting languages because they manage everything aren't hyper fast. Doing something in C over Javascript makes it run early 5-10 times faster. And yes hardware has become complex especially GPUs. But the abstraction is often way overdone. And also hardware should be engineered more friendly. Why does it take a sheet of A4 to write a pixel to the screen, when it should be as simple as being allowed to poke straight into the resulting framebuffer memory. But these days that's all locked off without the ability to enable it. And then you have libraries like OpenCV (which is incredible) but it's so inefficient as it's trying to over every scenario. And it becomes an algimation of many different languages and libaries and it's a hell to maintain/compile and distribute. And then you have the Python n00bs writing computer vision in OpenCV in python and barely doing 15 fps when if they just bothered to code in C++ (which is just as simple in OpenCV) they'd easily achieve 30fps. We need to go back to compiled languages and wrap down the abstraction and only abstract up if you need to and do it yourself and not take dozens of libraries.
@@talideon Interpreted languages aren't a bottle neck because you don't write low level enough to code to let them become that. But they are! Global Interpreter Locks in case of Python or single interpreter binary in case of JS/LUA will never ever allow you to take full advantage of multi threading and multi cores. And yes, I agree that hardware gotten unnecessarily complex especially GPUs because of making things proprietary and shielding of direct access to the developers. It would be great if there was a standard that every GPU had a framebuffer that you could request a begin and end pointer to and just write directly to it, like we did in the old days. But nope, all needs to go through convoluted APIs. But the issues is not solely hardware it;s the fact that people can't be bothered to actually program. They just want to call a single simple function which does 100s of things low down. And those libraries are unnecessarily highly wrapped. You should always wrap up when you need to and preferably do it yourself but even a small library is okay. But you get complex massive frameworks like OpenCV, that is an algimation of many different libraries and languages and a massive hassle as a result to compile and distribute. And for some reason all the tutorials out there for this (incredible) library are done in python. Which really irks me because Python is so slow even when OpenCV bindings run in compiled machine code, the marshalling of the structures is so slow that Python aps run in say 15fps when you just write it in C++ you easily do 30fps. That's what I mean with wasting speed with interpreted languages, because 10X faster is a LOT! And those gains are easily made when using C/C++/Rust or Zig over the interpreted languages out there.
@@talideon Oh great example of interpreted "nightmares" I have a google chromecast. I was amazed why the new version takes literally 20-30 seconds to start a new youtube stream. There's no need for it to take that long! Flush the buffer, switch the stream buffer 2 seconds and go. Turns out they actually run HTML5/Javascript.... Why?! Why?! How hard is it to code that in C++ and it would literally be 10 times faster. Ironically my internet connection is faster than the processing of that thing. So the buffer is filled in no time with my 1Gbps up/down stream. So what are we waiting for?! We ran 6000 page views on a modest SGI O200 (200 mhz 64MB) at the Dutch Broadcast assocation. Now for the same load my customer uses 3 docker containers! Why?! Because they use Python and Flask and not low level NSAPI what we did.
@ Another example I recently replaced my chromecast. The old one broke after almost 12 years. Now ironically the new one has a way faster CPU yet starting a stream and changing a stream takes 20-30 seconds! The old one started in 5 seconds. It only buffered and started to play. I found out that this one is so slow because it actually runs HTML5/JS so much overhead and quite possible all sorts of other useless things it does that are no benefit of me the consumer. We need to go back to fast processing! It's weird that I wrote software in the 90s that performs faster than equivalent software now. And we had to make it run on 4MB and tiny slow IDE disks!
Amazing work mate!! It's super fascinating seeing what rules, restrictions, and challenges developers had to go through to make and publish a game. Keep up the great work man ❤ P.S. the game playing on the original hardware looks way way better than on the pixel-perfect emulator, it's insane!
Absolutely amazing video. I love your detailing of what it really took to ship a game back then, I had no idea they required an uncut playthrough of the full game! I bet it was waived for many though, given what I experienced back on the SNES. Very sweet journey of yours, and congrats on your game booting on real hardware!
Great vid, but there were a couple of errors that stood out to me. 8:06 Sprites/objects can only be 4bpp, they can't be 2bpp or 8bpp. 8:26 The examples you showed larger than 16x16 are all internally made up of smaller tiles. 10:26 If you're using only one player sprite, usually you would only reserve as many tiles in VRAM as you would need for one instance of it, and transfer new graphics to for every frame. It's actually what Super Mario World does. 24:59 3D is still technically possible without additional hardware, even if it sucks.
Wow man, I would love to see you collaborate with a couple other people to help out with music, design, etc.and make this something really special. I would literally buy this if it was a good RPG
Very good! That you did this in such a short time is just mind-blowing to me. Impressive! As for the headache with the 8/16 bit shifts in the registers, it's very rare that I have problems with this, the most annoying thing is when the assembler gets confused and compiles the wrong instructions. Then we are forced to use ".b", ".w" and ".l" along with the opcodes to tell the assembler the size of the instruction. I always leave the accumulator at 8 bits and the index registers at 16. When I need to do some calculations in 16 bits, then I really need to change the accumulator to 16 bits. But you can also just use 16 bits all the time. This will use more RAM and a bit more processing, but it simplifies the code.
I've recently been enticed by the idea of doing exactly what you're doing, in terms of reading through that manual and trying to emulate the work that so many have done in the past. Getting into the weeds of developing SNES games has made playing older games so much more fun! I can appreciate the effort that went into them even more, while oggling at some of the amazing effects those games achieved despite all the parameters they needed to live in. I'm glad you mentioned starfox at the end for the 3d stuff, as I just learned about that chip and played the starfox game on the switch, remembering being completely blown away by how much that single chip turned the SNES into something like an N64 experience, which I had no clue was even remotely possible at the time. If you have time to mess with that chip specifically or to show us how it was intended to be used at the time, that would be cool. I know it's an insane ask haha Sick game btw
Looks awesome, and way better than my first game boy games that used all the preexisting tools for sprites, maps, and writing the game in a slightly easier language than assembly (C)
Amazing work so far, great explanation, and the game is coming along! > 8/16 bit register mode swap Oh yeah this sucks big time! It's a powerful and amazing feature which unfortunately turns your code (and brain) into spaghetti. It's a common gripe against this chip and it really gave the 65C816 a bad name, which i don't think it truly deserved, but yes what a pain in the butt for assembling, organizing code, and the sanity of the programmer 🤣
For the colors, getting the aggregate sum of all the WRAM bytes 7E0000-7FFFFF, is a nice way to seed RNG. But the flash cart might be initializing all of the WRAM. Also counting the number of frames the SNES controller buttons are pressed at start can help.
A while ago, the Sega Genesis got a free development kit called the SGDK that lets developers program their own games in C. It's led to an explosion in the homebrew scene for the system, with even old names like Yuzo Koshiro jumping back into developing for the system through it. How viable do you think it would be for a similar development kit to be made for the SNES? I apologize in advance if my question's a bit stupid, I'm not familiar with the world of old hardware...
SNES is so stupidly opinionated. I mean, Amiga has some weird rules where both playfields need to have a similar count of bitplanes. And this crazy HAM mode. Okay, I rest my case. But genesis has only weird sound.
@@ArneChristianRosenfeldt FM synthesis sound, is utterly Legendary, in the right hands. Thunderforce II 's music tracks (and sound effects), are probably the most amazing sounding compositions, ever created for a shooter video game, hands down. FM synths can also make some of the most amazing sound effects, too. And all of it, with very little use of Cartridge Ram, due to it all pretty much being ram via mathematical formulas. Where as the low resolution "Sampled" sounds on the SNES, are flat, boring, and "Meh"... and take up a lot of cartridge space, for the samples. This severely limited the sound/music fidelity, and complexity. No Snes games sounds and soundtracks, can Touch Thunderforce II. Not even close. I also recommend listening to Target Earth's tracks + sound effects, too. FM synths are also what made the 80s music, so damn fantastic. The FM keyboards on Van Halens "Jump" are pure Eargasm-Nirvana. Obviously, programming an FM synth, isnt a very easy task, unless you have a somewhat effective User Interface, and have some time and experience to mess around with it... to get the kinds of sounds you want to hear. This is why many of the older arcade game creators, had one or two dedicated sound designers, that would spend all of their days, messing with the Parameter Algorithms, and coming up with some fantastic sound effects, and sounds for compositional use. Some may have also had a separate Music Composer, to create the various musical compositions, with those sounds... if the "Synth Tweaker" ,wasnt good enough of a musician, on their own. Back then, there was little in the way of information about FM Synths... and how to create patches. But today, there are FM Synth emulators, that have much more Intuitive Interfaces... and many videos from experienced FM creators, that reveal how these sounds are created. Also, if you load up one of those FM Synths, such as a Yamaha DX-7 emulator... you can find countless thousands of Sound Patches, from users all over the world... spanning several Decades worth of time. Being that certain FM synths have similarities.. its also possible, that by comparing existing patches... you might be able to recreate those patches, on the Genesis's FM Sound Chip. As for the Amiga... Its Ham mode... was pretty much useless. It was only basically used for showing static images. A sort of revolution in its time, for what it could display, using pretty cheap hardware... but still, not really usable in games, other than for Displaying some fancy Logos / Title Screens, and or... cut-scene graphics. But even then, such graphics would have taken a lot of Floppy Disk memory up.. so even that was likely not used often. I used it with a drawing program, that auto-blended things as you drew. It was fun to mess with.. but thats about it.
@@johndough8115: sorry to say this, but in my opinion Sega Megadrive also has a lot of poor designed soundtracks. Try soundtracks in the SNES such as those from Axelay, Donkey Kong Country series, Super Adventure Island 2, Gradius, Castlevania Dracula X and many others. Maybe it's just a matter of comparison and it depends on our old perception as kids (when we listened to this music for the first time), but I feel the SNES has really great music. I realise that Sega Megadrive also has it, but I don't like FM synthesis very much; maybe I need to find new music from that system to be amazed again... (and please, don't take this as personal; you know that this is about music as an art... multiple and different points of views, feelings and images from the past...) 😅
@FryAndLeelaAndBender You clearly have been listening to Poorly created FM tracks. Not the good ones. Try these 2 examples: This is a Space-Jazzy synth guitar-like lead, that is a Groovy Masterpiece of Space Shredding: ua-cam.com/video/EAynnxLnC7w/v-deo.html This is an example of Complex Synth sounds, for the amazing shooter, Thunderforce II ua-cam.com/video/XJb8zsIkkfU/v-deo.html Both of these games produce sounds that the SNES is not capable of producing... Most Especially the smooth Pitch-Bends Not just that... but the Clarity and detail of the sounds, is infinitely superior... because the SNES's samples are so low-resolution, that most sounds end up being muddy / muffled As for FM Synth sounds in general... Maybe one of the better examples of what FM Compositions are capable of... is the famous "Axel F" from Beverly Hills Cop: ua-cam.com/video/lXMb768dGNI/v-deo.html (A Cover Version) Another Famous FM tune in the movie FLETCH: ua-cam.com/video/5gZgApyJiSY/v-deo.html FM Synths are used in almost every Arcade game, Countless Movies, and In most all of the Music that you have listened too In fact, even in many modern console games, FM synths are often "Sampled".. as they can create sound that nothing else can replicate The problem with the Genesis, was that many of the Western developers, didnt know how to program the FM Synth chip. The Japanese companies were different. They had been creating Arcade and Japanese Computer games, using FM Synths... for quite some time... and they hired people whom were excellent with them. Where as the Western companies, cheaped out... and simply tried their best, with people whom were not capable of programming the synth properly.
I always dreamt of making my own snes game (not necessarily a real hardware disk). But then I found out that I suck even at basic coding, let alone ASM. And not to talk making custom tools! Glad & envious there are people who are skilled & able. You have incredible skill, as you can even explain it all (wish I understood any of it beyond the surface level).
It's something good when you can see what is happening or what they do to these games and devices to achieve such good and long lasting result for our childhood. I like it!
Very cool and awesome job so far! If you can't find the correct ZIF adapter for your flash chip (they are quite pricey), might instead want to use or build a cart that has a ZIF DIP socket for EPROM(s). Main downside is that EPROMs require UV to erase (so you're not gonna be doing fast iteration on them), but they act similar to a mask ROM. Another tip: when ordering your PCBs from PCBWay (or wherever), order a solder paste stencil too-- it makes SMT soldering way easier (ideally you'd have a reflow oven-- the T-962 clones are a popular choice-- but hot air via a heat gun and a hotplate also work well).
Congrats! Cool to see you learn more pixel art too, and I'm excited of how your style may evolve over time. P.S. for the seal, I feel that the lighting could've been a bit harsher for more contrast in the sprite (mainly so the eyes can feel more defined, in my opinion).
@Archaic_arcade2010 Idk how he learned but you can study programming and computer science , videos on youtube , sites like codecademy/udemy for qualifications , university , books.
I'm currently making the first game for what's supposed to be a novelty game franchise, consisting of period-accurate games for older hardware such as ZX Spectrum, Commodore 64, Sega Master System, Game Boy. While my team consists of somewhere around 10 people, there are only two programmers (I'm one of them), because no one else wants to touch Z80 nor 6502 assembly.
Nice game and explanation!!! Congrats for your effort and dedication to this project. However... Will be more videos about SNES programming like this?? Or maybe something in the future about PC Engine?? It's another console in the line of what you're doing here (I guess...) Very good job!! I love the SNES hardware and games!!
Thanks for the video! I think the NeoGeo console was around at the same time, and technically superior for 2D games, as it had an incredible sprite engine (everything on screen on the NeoGeo is a sprite, it has no tilemaps) with scaling and distortion. It didn't have mode 7 though. Plus it was REALLY expensive!
That looks so complicated and hard. But in reality it's very simple and easy to work. And Teams back then make games like in 3-6 month from scratch to release.
Yes, Nintendo did use their terms of licensing back in the day to create some baseline of quality, but you had to admit that the NES was pretty sophisticated for its time and even considerably enhanced when the MMC3 mapper came out. The proprietary mappers by the way were only mandatory in regions that had the NES as in Japan game companies did in fact make their own cartridge hardware, including sophisticated third part mappers like the VRC6.
24:54 Games like Link To The Past, Final Fantasy 6, Breath of Fire, Mother series, Illusion of Gaia, Mana series (don't get me wrong, it'd 3d remakes are great, but it was a fun series even before that), and Super Mario RPG showed that games don't need to be 3D to be great though
When you finish it, you should ship off a playthrough to Nintendo and a floppy disk with the game on it with no context and see what happens.
Hit squads inbound
Lawyers...lawyers is what would happen.
As the Japanese would say, “Shinderu.”
@@SilasTheSilent I don't think so, I mean I'm no expert but unless he through Mario in it or used code from a preexisting game (which would be a copyright issue for either) he's legally clear. He even says that about the NES at 0:48.
@@yellowwinner1 Yes, you're right. There is no legal issues. There are no permissions needed to sell a physical SNES release either, except if you want to use their trademarked logos. They're unlikely to grant a licence for that (they have policies about how their legacy branding is used, much like any company that pays people to run their branding)... but, all this could be a foot in the door to release the game on the Switch platform if the game proves to have commercial value. Stranger things have happened.
It would be incredible if Nintendo actually approves the final cartridge. Imagine being the only SNES game released in 2025.
It wouldn't be. Angry Video Game Nerd just announced a NES game coming out this year.
Just noticed this is SNES and not NES like the Avgn game, my bad.
I think that the AVGN games will get a port for the NES this year, that would be a great combo.
@@No_True_Scotsman Yeah, but the game is not officially approved by Nintendo, so it doesn't really count here.
If it does count, then other NES and SNES homebrew games that are made this year also count
If only they had a seal of quality for the eShop.
true as hell
If they had it, we wouldn't get such masterpieces as "Vroom in the night sky".
noo what do you mean you dont like 1 million ai slop games for only 1.99 ?!?!??!
You don’t want 99 cent hantai games?!?!?!?
Don't act like the NES wasn't full of shovelware
I worked for a company in 1989 that got a NES development setup so they could start coding a game they eventually published as “Moon Ranger.” The sample 6502 code we received was full of bugs but George got those fixed up and optimized the code and we submitted the changes back to Nintendo. And that was the point where I move on to another job, so I never got the full Nintendo development experience. But today in 2025 anyone can dive in with free tools, and even build their own emulator if they feel like it, so there’s never been a better time to make your own Nintendo games!
we love George
shoutouts to my man George
Moon Ranger is a game published by "Bunch Games", the branch that Color Dreams (I think now called Wisdom Tree, at this point) relegated to cheaper games. None of these companies were ever licensed by Nintendo, perhaps Color Dreams was still dreaming of being a licensed publisher?
@@LuwiigiMaster The contracted developers were the young nerds at Odyssey Software. Could be that the publisher was Bunch.
@@ScottLahteineI see, they also made Deathbots for Color Dreams/Wisdom Tree/Bunch Games. I'm more curious about the part where changes were sent to Nintendo, this company (like others) didn't like the idea of paying Nintendo to produce their cartridges. I do know Nintendo had a requirement where NES games were discouraged from using illegal 6502 opcodes (for the proposed but ultimately scrapped backwards compatibility of the SNES), but I'm not sure if unlicensed publishers cared much about that.
My uncle worked for Intel in Arizona. He was an engineer who would service their lithography machines. When I was 11 years old, he gave me an NES cartridge with a set of all the copied NES games. The copied game would be inserted into the larger cartridge and then inserted into the console. It was awesome! He passed away about 15 years ago and I gave it back to his son. He wouldn't tell me where he got it, but I have a feeling he made it with people at his work.
Thanks for the shout-out :) great video! Since tackling the hardware, I've been meaning to try my hand at software at some point. This has inspired me :)
It is WILD that they had to hand in a FULL PLAYTHROUGH of their game! ON VHS! I imagine the chunky box full of 240min VHS recorded by some poor play tester.
Some poor schmuck had to play through the lion king for SNES in 1 playthrough with no cuts.
I wonder what would they do had VHS or other home recordable video media (betamax, etc) never been invented.
@@UltimatePerfection Tape to Tape reels I guess. Maybe an actual film camera. Both of which would be even more impractical.
This is actually an incredibly smart idea, and probably why a lot of SNES games were a good bit more reasonable. And unlike super mario maker where there's no actual human moderation to assure something is beatable through the intended path, someone could of course, determine reasonably if there're shenanigans.
@@Aeduoto be fair to Mario Maker, they do have a few things in place to try to avoid unbeatable levels. I'm not saying those systems were as effective as intended, they absolutely weren't, but it's not like they did nothing at all. And given the sheer number of levels submitted to those games there's simply no way a human could review them all.
If you're making a veiled reference to Trimming The Herbs, recording a playthrough wouldn't have caught that since the playthrough would not show whether there was a human playing it or not.
So while your point that many MM levels don't live up to SNES era Nintendo standards is valid, you do need to keep in mind that QCing MM levels is at a vastly different scale than Nintendo has to deal with when QCing SNES games.
Do I understand these types of videos? No, not really
Will I watch and enjoy them? Hell yeah
i just came here after seeing the dude that built his own "anyon_e" laptop which i thought it's gonna be some slapped together parts, but noooo, it went way beyond that, like custom pcb stuff. Now i'm here. My brain hates me
He's actually explaining it all very clear to understand.
The production quality of this video is arguably more impressive than writing a SNES game. So much work, thank you.
mad respect for people who had to squeeze a fun playable game complete with audio and graphics into a tiny space in memory using a whole bunch of tricks to save space and writing it all in assembly. A far cry from cranking out a quick indie game with a game engine like unreal
@silverismoney Ikr , i'm trying to design a retro style game for a 6502 emulator that comes with it's own custom graphics hardware that's designed to work like something from the 80s but not an exact emulation of any hardware from back then , trying to get my head around the hardware is difficult enough (I don't fully understand it so I could be wrong but from what I can tell it has 64KB of RAM shared between the CPU/graphics hardware with 1KB of that 64 as VRAM that maps to 1024 pixels on screen with 4bit colour or 16 possible colours all of which can be displayed on screen at once , 2KB for code which is the equivalent of the cartridge ROM and same size as early Atari 2600 games ). Everything is coded in 6502 assembly although it doesn't appear to have any sound hardware from what I can tell so doing all of that while also coming up with a game design document is pretty fun but challenging :P
@@cryptocsguy9282that looks like the C64 which had great sound. I think that it introduced sawtooth and triangular waveforms to the consumers.
Or you take the older genesis and write in C. Sega does what Nintendont.
@ArneChristianRosenfeldt Yeah the C64 had a great sound chip & I do plan to start learning how music trackers work to make retro sounding chiptunes. I know there's some homebrew development tools that allow you to make megadrive games in C which is pretty cool , yh maybe one day I can check that stuff out 👍🏾
And slapping dlss on there instead of optimizing anything
It’s actually extremely impressive that they were able to make such high-quality games with that hardware and 6502 assembly language. Having done a bit of IBM Assembly myself, I know firsthand how tedious and difficult this can be, especially to debug. Every single byte had to be accounted for, so efficiency was essential. These days, even simple games use enormous amounts of storage and memory thanks to cheap hardware and bloated systems full of layers of abstraction.
Yep, I had to rewrite the collision check subroutine a couple times before it was efficient enough to be called by multiple objects per frame
@@InkboxSoftwarememory and time constraints are different things .
What is so difficult with accounting? A 6502 can only access 64k. So usually you have a big poster on the wall with your zeroPage memory map. And then you have a bunch of arrays in the rest of the memory.
For the code you need to think in block scope. Is there some variable in the registers which I will need after the block? Then place some push and pop around the block. For parameters you need to make sure that they are popped in the same order inside the function every time. So branches might be a problem. Likewise return values need to be pushed in the same order.
@@ArneChristianRosenfeldt I've seen you commenting on a lot of videos. If you really think it's so easy, then put your money where your mouth is and write a game for either the NES or SNES and do it entirely in assembly.
I port games to modern consoles at my day job. It's very interesting to see just how different the process was back then! Great video!
When you port these games do you have access to the source code? NOT ASKING FOR LEAKS, i'm just curious. :)
@@samuelbarrett5701 Fortunately yes I do! My job would be tremendously difficult, maybe even impossible, if I didn't.
@@Dezomm that's awesome! Are there any games you can disclose as of now that you're porting?
@@samuelbarrett5701 It's not been announced yet so no I can't :(
@Dezomm ok. I won't ask then :) how likely do you think it is the rogue squadron games get ported?
24:40 That is one of the greatest feelings ever, I have to agree. I've been working on Sega Master System and Super Game Boy games as a hobby for the last couple of years, and being able to see all of your work up and and running on real hardware through a CRT is like nothing else
24:41 Looking at the game through a CRT gives it a special charm
5:00 Joy-Cons on the SNES? 😅
You laugh but I faintly remember an arcade fightstick peripheral with those! It was official AFAIK, my cousin had it instead of a normal second controller because he wanted a "fighting game controller" to go with his SNES Mortal Kombat 3.
Had a full-out joystick, and the weirdest setup with the L and R being above the ABXY buttons, like a 6-button genesis controller on this HUGE box you basically needed either on a table or in your lap.
The video probably meant joyPAD, but yeah, there were joycons/joysticks too.
@@neoqwerty Did they even call it a Joypad? The common nomenclature was just "SNES Controller" they didn't start with the "joy" thing till the Switch
That emoji (😅) looks so punchable to me and I don't know why 🤔
Nintendo ironically failed requirement 9 with Pilotwings when they started manufacturing it with a bug-fixed DSP1 chip. The buggy chip would play the attract mode perfectly, but the plane would crash when the revised DSP was installed in the cartridge due to a very slight effect on the physics engine.
They also failed the "no SFC references" in Super Mario World, the logo is in the background of special world
@keiyakins The main reason they were able to get away with that is because they owned the copyright.
Missed opportunity too call it "Making an SNES game like Nintendo Nintended"
I need to point out, that it is extra impressive, that you learned all the different kinds of stuff, like arts, gamedesign, Programming in 6505 Assembly, learning about the SNES hardware and how to specifically program for that, soldering etc...
Some things as you told only for this project. You're pretty versatile, so impressive.
thank you for the subtitles
UA-cam automatically puts closed caption on every video
@@alexandersalazar9750 these ones aren't generated
@@alexandersalazar9750 to be honest they suck. Human written ones will always be better
I did this back in 1993 without the help of any modern hardware or software. My development computer wasnt even a PC. it was a 7mhz Commodore Amiga 500.
honestly i'm kinda curious what would happen if you tried to submit an snes game to nintendo for approval decades after the system's discontinuation
They'll turn it down and probably blacklist you from ever working with Nintendo for the rest of your life. Same thing that happens when you try to send Pixar an idea for a movie.
They would send you a cease and desist, probably sue you and then give you generational debt for tampering with their hardware.
@@General12th It's different. This game isn't a pitch, it's a game, with Nintendo acting as the publisher.
@@stuff31 Why the hell would they do that if you followed all of the intended methods of creating and submitting a game. Even if you didn't, they wouldn't care because you doing that doesn't hurt their sales
@Vexxter The manual was leaked illegally, they wouldn't be happy about that
I know writing the editor is half of the fun, but I'd like to recommend the "Tiled" map editor. Some time ago I was evaluating lots of different 2D map editors with the goal of writing my own with the best ideas, and Tiled was pretty much exactly what I needed. So my build scripts are getting TMX files, and produce SNES specific binary and assembly data. Tile graphics are already pre-optimised for 16 colour/8 palettes, so just need to be converted to SNES format.
same advice but for using YY-CHR for art instead of making the tiles in another program and converting.
I will personally buy a snes to play your game good sir. Please finish this amazing project. Thank you for putting so much effort into this video. It’s incredible how intelligent you are.
Maybe some day I will be smart enough to understand your videos
I feel ya, still very entertaining to watch
@@ZhuDaoLong yes sir!
Unfortunately we don't get significantly smarter after reaching adulthood
@@cube2fox kinda sad seeing I will turn 18 in a few months, I'll try my best to learn though!
@cdkw2 You can be if you wanted to put in effort to learn computer science/electronics stuff
Well at least you were able to have the effort find a program to actually compile your game and also figure out how the compiler works. I'm too lazy to even do that! All I have the effort to do is draw spritework. Also good job on learning how to draw. I'm really impressed! The more you practice the better you become!
hope its not gonna be like 8-bit Minecraft, where you go "I'll finish it later" and then never come back to it
Eh, the process is just as interesting as the result imo. Like I don't care a lot about a NES game itself in 2024, but the way it's made is more timeless imo
He is ultimately a UA-camr, not a game developer, and finishing a game would take a lot of work.
He's probaly working on 8bit minecraft. Game dev takes a log time
@@PotheGreatDragonwarior no it takes a wood time.
@@CsnlGuy_Da_Goadt 😂
I watched this at midnight on my birthday, making this the last video of my childhood
As an IT person myself, holay molay
Nice video. It's really cool that you're making a game for the SNES, a system that not many homebrew developers like to develop for.
Just one correction:
8:05 Actually, sprites on the SNES are *always* 4BPP. You can't have 8BPP sprites like on Game Boy Advance, and sprites can't natively use a 2BPP format on SNES either. The only way to get graphics stored as 2BPP onto a sprite in runtime is to convert them to 4BPP, whether through a specific DMA transfer unit selection (the fastest way, but only works with NES-formatted 2BPP graphics, not SNES/GB-formatted 2BPP graphics) or manually.
Also, why did you use layer 2 for the HUD when most SNES games use layer 3 for the HUD? Do you really need as many colours as 4BPP gives you for the HUD?
If you had used layer 3 for the HUD, you would be able to use both layers for the foreground, allowing you to overlap tiles on top of each other while saving VRAM.
Interesting game development nonetheless, and I'm interested in playing the full game whenever it comes out.
Great video! Do you need music for your game? I've managed to program a music engine before for the Super Nintendo (it's hard), but the Super music is super important to SNES games
22:12 yo being able to break the bamboo is actually sick! I'd have been hyped up as a kid doing that and would probably convince myself I was training for real 😹
Hmm. Cool idea, but I'm a bit worried for the game. I've seen many projects on youtube ended up with their dev binning it or starting from scratch to rework core mechanics because they were focused on looks instead of the game loop. I am just a viewer though, it does look like you have worked it out with the mini demo, though, so I just hope you don't miss the forest for the trees with overbaked mechanics while leaving the core loop uncooked. Great video as always and I hope my criticism is at least has been followed before I wrote it.
"yes that's me... you're probabally wondering how i got here" 😂.... shoulda joined that bit to the ending but still good video
I love your videos so much! They bring a new perspective and personality to programming for me, inspiring me to continue with my own efforts in programming. I wish the best for you in this coming year!
Perhaps you'd like my shenanigans too there's some similarity.
CallousCoder It does not look good that the first thing I see when I visit your channel is an AI generated image for a thumbnail, sorry. I'm tired of AI generated media.
@@TuneInToAbacas Oh that's the only one "What waas that saying again? About a judging a book by it's cover?" :D But there's a lot of old skool game hacking there. And very low-level coding and weird esoteric projects.
@ I believe you, I just... am an artist, and I don't like AI being used whatsoever. Please take that how you will, unfortunately it means I have no interest in supporting your channel with my views. Also, I dug slightly deeper and I saw another image that was obviously AI, so don't tell me that's the only one.
@@TuneInToAbacas All the rest is not AI only the kid with the hoodie. The rest is photoshop comping and some stuff for a game I did is an actual cartoon artist that I employed.
But you have an interestingly weird way of looking at things :D Who gives a hoot what a the thumb tag is, it's about the content, that's what normal people would think.
And I am an artist too, a musician song/writer as you would see/hear and I work as special effects artist and visual effects artist as well. I show some of my special effects arts work there too. Anything that's creative that I do I show case there. Hence it's a bit of everything. But in the end it is your choice ;)
I always forget how weird the American SNES looks like to European eyes.
Fr
Which one? We have more than one version
@@alexandersalazar9750 All of the American ones look weird. I am from PAL region and I spent my childhood playing SNES games so seeing any ofthe American SNES consoles just feels really weird. Also the differences of PAL and NTSC games is fascinating, like the sound speed.
@@Pehmokettu as an American I was always fascinated by the different look of the Japanese/PAL snes. It looked cooler to me.
5:00 didn't know the SNES had Joycons
I am not the first person to notice this at least.
The European SNES looked like the Japanese Super Famicom. No idea why the US had this abomination
Because NOA's Lance Barr thought it would be better to look like a VCR, and the roundness was "too soft".
US version looks better IMO
I love the US version (probably because I grew up with it, and I love the sharp angles) but the PAL version is my favourite (Japanese second). 50hz can suck a lemon though.
I honestly prefer the US SNES
@@netwicks1126 US SNES looks cooler, but the PAL controller was SO MUCH NICER to hold.
Source: my aunt somehow ended up with a PAL controller along with an NA one for her SNES, so I got to compare speedrunning Donkey Kong Country 1, 2, and 3 with both. PAL one didn't give me massive finger cramps.
"read the joy-cons"
I never wrote for the SNES. I did a lot of NES reverse engineering and more development on the SEGA MegaDrive and a hell of a lot on the Atari ST (68000 for the win) and we need to get back to a lesser abstraction imo. All these interpreted languages now used wastes so much of our incredible hardware's potential
The likes of Lua and other languages aren't the real bottleneck. The bottleneck, which is really hard to avoid, is hardware abstraction. Frankly, while I'd fun working directly on the metal on older machines, the idea of using, say, Vulkan directly isn't that enticing, and definitely not if I were working in the games industry on anything except engine development.
@@talideon Well the scripting languages because they manage everything aren't hyper fast. Doing something in C over Javascript makes it run early 5-10 times faster.
And yes hardware has become complex especially GPUs. But the abstraction is often way overdone. And also hardware should be engineered more friendly. Why does it take a sheet of A4 to write a pixel to the screen, when it should be as simple as being allowed to poke straight into the resulting framebuffer memory. But these days that's all locked off without the ability to enable it.
And then you have libraries like OpenCV (which is incredible) but it's so inefficient as it's trying to over every scenario. And it becomes an algimation of many different languages and libaries and it's a hell to maintain/compile and distribute. And then you have the Python n00bs writing computer vision in OpenCV in python and barely doing 15 fps when if they just bothered to code in C++ (which is just as simple in OpenCV) they'd easily achieve 30fps.
We need to go back to compiled languages and wrap down the abstraction and only abstract up if you need to and do it yourself and not take dozens of libraries.
@@talideon Interpreted languages aren't a bottle neck because you don't write low level enough to code to let them become that. But they are! Global Interpreter Locks in case of Python or single interpreter binary in case of JS/LUA will never ever allow you to take full advantage of multi threading and multi cores.
And yes, I agree that hardware gotten unnecessarily complex especially GPUs because of making things proprietary and shielding of direct access to the developers. It would be great if there was a standard that every GPU had a framebuffer that you could request a begin and end pointer to and just write directly to it, like we did in the old days. But nope, all needs to go through convoluted APIs.
But the issues is not solely hardware it;s the fact that people can't be bothered to actually program. They just want to call a single simple function which does 100s of things low down. And those libraries are unnecessarily highly wrapped.
You should always wrap up when you need to and preferably do it yourself but even a small library is okay. But you get complex massive frameworks like OpenCV, that is an algimation of many different libraries and languages and a massive hassle as a result to compile and distribute.
And for some reason all the tutorials out there for this (incredible) library are done in python. Which really irks me because Python is so slow even when OpenCV bindings run in compiled machine code, the marshalling of the structures is so slow that Python aps run in say 15fps when you just write it in C++ you easily do 30fps.
That's what I mean with wasting speed with interpreted languages, because 10X faster is a LOT! And those gains are easily made when using C/C++/Rust or Zig over the interpreted languages out there.
@@talideon Oh great example of interpreted "nightmares" I have a google chromecast. I was amazed why the new version takes literally 20-30 seconds to start a new youtube stream. There's no need for it to take that long! Flush the buffer, switch the stream buffer 2 seconds and go. Turns out they actually run HTML5/Javascript.... Why?! Why?! How hard is it to code that in C++ and it would literally be 10 times faster.
Ironically my internet connection is faster than the processing of that thing. So the buffer is filled in no time with my 1Gbps up/down stream. So what are we waiting for?!
We ran 6000 page views on a modest SGI O200 (200 mhz 64MB) at the Dutch Broadcast assocation. Now for the same load my customer uses 3 docker containers! Why?! Because they use Python and Flask and not low level NSAPI what we did.
@ Another example I recently replaced my chromecast. The old one broke after almost 12 years. Now ironically the new one has a way faster CPU yet starting a stream and changing a stream takes 20-30 seconds! The old one started in 5 seconds. It only buffered and started to play. I found out that this one is so slow because it actually runs HTML5/JS so much overhead and quite possible all sorts of other useless things it does that are no benefit of me the consumer.
We need to go back to fast processing! It's weird that I wrote software in the 90s that performs faster than equivalent software now. And we had to make it run on 4MB and tiny slow IDE disks!
Amazing work mate!! It's super fascinating seeing what rules, restrictions, and challenges developers had to go through to make and publish a game.
Keep up the great work man ❤
P.S. the game playing on the original hardware looks way way better than on the pixel-perfect emulator, it's insane!
Absolutely amazing video. I love your detailing of what it really took to ship a game back then, I had no idea they required an uncut playthrough of the full game! I bet it was waived for many though, given what I experienced back on the SNES. Very sweet journey of yours, and congrats on your game booting on real hardware!
...why do you keep calling the controller a joycon?
Great vid, but there were a couple of errors that stood out to me.
8:06 Sprites/objects can only be 4bpp, they can't be 2bpp or 8bpp.
8:26 The examples you showed larger than 16x16 are all internally made up of smaller tiles.
10:26 If you're using only one player sprite, usually you would only reserve as many tiles in VRAM as you would need for one instance of it, and transfer new graphics to for every frame. It's actually what Super Mario World does.
24:59 3D is still technically possible without additional hardware, even if it sucks.
Wow man, I would love to see you collaborate with a couple other people to help out with music, design, etc.and make this something really special. I would literally buy this if it was a good RPG
Great editing, every sentence has a matching visual on screen.
Loving the visual! Cant wait for new videos!
Very good!
That you did this in such a short time is just mind-blowing to me. Impressive!
As for the headache with the 8/16 bit shifts in the registers, it's very rare that I have problems with this, the most annoying thing is when the assembler gets confused and compiles the wrong instructions. Then we are forced to use ".b", ".w" and ".l" along with the opcodes to tell the assembler the size of the instruction.
I always leave the accumulator at 8 bits and the index registers at 16. When I need to do some calculations in 16 bits, then I really need to change the accumulator to 16 bits. But you can also just use 16 bits all the time. This will use more RAM and a bit more processing, but it simplifies the code.
I've recently been enticed by the idea of doing exactly what you're doing, in terms of reading through that manual and trying to emulate the work that so many have done in the past. Getting into the weeds of developing SNES games has made playing older games so much more fun! I can appreciate the effort that went into them even more, while oggling at some of the amazing effects those games achieved despite all the parameters they needed to live in. I'm glad you mentioned starfox at the end for the 3d stuff, as I just learned about that chip and played the starfox game on the switch, remembering being completely blown away by how much that single chip turned the SNES into something like an N64 experience, which I had no clue was even remotely possible at the time.
If you have time to mess with that chip specifically or to show us how it was intended to be used at the time, that would be cool. I know it's an insane ask haha
Sick game btw
Looks awesome, and way better than my first game boy games that used all the preexisting tools for sprites, maps, and writing the game in a slightly easier language than assembly (C)
That's amazing!!
You took this serious and it looks really good! woah.
Amazing work so far, great explanation, and the game is coming along!
> 8/16 bit register mode swap
Oh yeah this sucks big time! It's a powerful and amazing feature which unfortunately turns your code (and brain) into spaghetti. It's a common gripe against this chip and it really gave the 65C816 a bad name, which i don't think it truly deserved, but yes what a pain in the butt for assembling, organizing code, and the sanity of the programmer 🤣
I've been working on a gameboy game for the last month; it's so cool to see more people doing homebrew dev work for these consoles :)
I envy that feeling of seeing a project come to fruition! Fascinating
very quality video of beginner to advance homebrew info
For the colors, getting the aggregate sum of all the WRAM bytes 7E0000-7FFFFF, is a nice way to seed RNG.
But the flash cart might be initializing all of the WRAM.
Also counting the number of frames the SNES controller buttons are pressed at start can help.
Can't wait to see how this turns out!
Headphone users at 23:00 no one is behind you don’t worry
Amazing video! The little guy your drew as a character sprite reminds me of Sokka from Avatar: The Last Airbender. 👾
"Sounds like a 2 week project to me"
Me: Ok, you got me. Subscribing now!
A while ago, the Sega Genesis got a free development kit called the SGDK that lets developers program their own games in C. It's led to an explosion in the homebrew scene for the system, with even old names like Yuzo Koshiro jumping back into developing for the system through it. How viable do you think it would be for a similar development kit to be made for the SNES? I apologize in advance if my question's a bit stupid, I'm not familiar with the world of old hardware...
An SNDK, if you will...
SNES is so stupidly opinionated. I mean, Amiga has some weird rules where both playfields need to have a similar count of bitplanes. And this crazy HAM mode. Okay, I rest my case. But genesis has only weird sound.
@@ArneChristianRosenfeldt FM synthesis sound, is utterly Legendary, in the right hands. Thunderforce II 's music tracks (and sound effects), are probably the most amazing sounding compositions, ever created for a shooter video game, hands down.
FM synths can also make some of the most amazing sound effects, too. And all of it, with very little use of Cartridge Ram, due to it all pretty much being ram via mathematical formulas. Where as the low resolution "Sampled" sounds on the SNES, are flat, boring, and "Meh"... and take up a lot of cartridge space, for the samples. This severely limited the sound/music fidelity, and complexity. No Snes games sounds and soundtracks, can Touch Thunderforce II. Not even close. I also recommend listening to Target Earth's tracks + sound effects, too.
FM synths are also what made the 80s music, so damn fantastic. The FM keyboards on Van Halens "Jump" are pure Eargasm-Nirvana.
Obviously, programming an FM synth, isnt a very easy task, unless you have a somewhat effective User Interface, and have some time and experience to mess around with it... to get the kinds of sounds you want to hear. This is why many of the older arcade game creators, had one or two dedicated sound designers, that would spend all of their days, messing with the Parameter Algorithms, and coming up with some fantastic sound effects, and sounds for compositional use. Some may have also had a separate Music Composer, to create the various musical compositions, with those sounds... if the "Synth Tweaker" ,wasnt good enough of a musician, on their own.
Back then, there was little in the way of information about FM Synths... and how to create patches. But today, there are FM Synth emulators, that have much more Intuitive Interfaces... and many videos from experienced FM creators, that reveal how these sounds are created.
Also, if you load up one of those FM Synths, such as a Yamaha DX-7 emulator... you can find countless thousands of Sound Patches, from users all over the world... spanning several Decades worth of time. Being that certain FM synths have similarities.. its also possible, that by comparing existing patches... you might be able to recreate those patches, on the Genesis's FM Sound Chip.
As for the Amiga... Its Ham mode... was pretty much useless. It was only basically used for showing static images. A sort of revolution in its time, for what it could display, using pretty cheap hardware... but still, not really usable in games, other than for Displaying some fancy Logos / Title Screens, and or... cut-scene graphics. But even then, such graphics would have taken a lot of Floppy Disk memory up.. so even that was likely not used often. I used it with a drawing program, that auto-blended things as you drew. It was fun to mess with.. but thats about it.
@@johndough8115: sorry to say this, but in my opinion Sega Megadrive also has a lot of poor designed soundtracks. Try soundtracks in the SNES such as those from Axelay, Donkey Kong Country series, Super Adventure Island 2, Gradius, Castlevania Dracula X and many others. Maybe it's just a matter of comparison and it depends on our old perception as kids (when we listened to this music for the first time), but I feel the SNES has really great music. I realise that Sega Megadrive also has it, but I don't like FM synthesis very much; maybe I need to find new music from that system to be amazed again... (and please, don't take this as personal; you know that this is about music as an art... multiple and different points of views, feelings and images from the past...) 😅
@FryAndLeelaAndBender You clearly have been listening to Poorly created FM tracks. Not the good ones. Try these 2 examples:
This is a Space-Jazzy synth guitar-like lead, that is a Groovy Masterpiece of Space Shredding:
ua-cam.com/video/EAynnxLnC7w/v-deo.html
This is an example of Complex Synth sounds, for the amazing shooter, Thunderforce II
ua-cam.com/video/XJb8zsIkkfU/v-deo.html
Both of these games produce sounds that the SNES is not capable of producing... Most Especially the smooth Pitch-Bends
Not just that... but the Clarity and detail of the sounds, is infinitely superior... because the SNES's samples are so low-resolution, that most sounds end up being muddy / muffled
As for FM Synth sounds in general... Maybe one of the better examples of what FM Compositions are capable of... is the famous "Axel F" from Beverly Hills Cop:
ua-cam.com/video/lXMb768dGNI/v-deo.html
(A Cover Version)
Another Famous FM tune in the movie FLETCH:
ua-cam.com/video/5gZgApyJiSY/v-deo.html
FM Synths are used in almost every Arcade game, Countless Movies, and In most all of the Music that you have listened too
In fact, even in many modern console games, FM synths are often "Sampled".. as they can create sound that nothing else can replicate
The problem with the Genesis, was that many of the Western developers, didnt know how to program the FM Synth chip.
The Japanese companies were different. They had been creating Arcade and Japanese Computer games, using FM Synths... for quite some time... and they hired people whom were excellent with them. Where as the Western companies, cheaped out... and simply tried their best, with people whom were not capable of programming the synth properly.
0:48: I bet Tengen would disagree
So would Wisdom Tree
Wisdom tree too
I always dreamt of making my own snes game (not necessarily a real hardware disk). But then I found out that I suck even at basic coding, let alone ASM. And not to talk making custom tools!
Glad & envious there are people who are skilled & able. You have incredible skill, as you can even explain it all (wish I understood any of it beyond the surface level).
And the hardware reader... Holy cow.
I really should leve the world th the really skilled tech guys.
And not watch these for my sanity😂
This is absolutely wild! I look forward to seeing how this game progresses :)
Amazing video and great game/explanation. Once again - great job!
It's something good when you can see what is happening or what they do to these games and devices to achieve such good and long lasting result for our childhood. I like it!
Very cool and awesome job so far! If you can't find the correct ZIF adapter for your flash chip (they are quite pricey), might instead want to use or build a cart that has a ZIF DIP socket for EPROM(s). Main downside is that EPROMs require UV to erase (so you're not gonna be doing fast iteration on them), but they act similar to a mask ROM. Another tip: when ordering your PCBs from PCBWay (or wherever), order a solder paste stencil too-- it makes SMT soldering way easier (ideally you'd have a reflow oven-- the T-962 clones are a popular choice-- but hot air via a heat gun and a hotplate also work well).
Looks absolutely lovely. Can't wait to see more of it. If you ever need help with pixel art, hit me up.
I really hope you continue with the project. It’s really cool seeing a snes game being made in 2025
Congrats!
Cool to see you learn more pixel art too, and I'm excited of how your style may evolve over time.
P.S. for the seal, I feel that the lighting could've been a bit harsher for more contrast in the sprite (mainly so the eyes can feel more defined, in my opinion).
I hope you`ll continue making the game, I enjoyed the video a lot and am curious what you`ve planned :D
Apparently bitplanes are used so the data for a single pixel can be quickly fed in parallel to the video processor.
You could add a bit of a wind wave effect in front of the punch and kick to extend the detection hitboxes of the player. So he can hit enemies easier
Thank you for that grate Video and the insides of the SNES.
How did you learn all of this programming!?!?!??
@Archaic_arcade2010 Idk how he learned but you can study programming and computer science , videos on youtube , sites like codecademy/udemy for qualifications , university , books.
Step by step? We had 30 years.
Pretty cool, I thought you were going to also use the SNES SDK
Every kind of video like this makes me wanna start developing SNES games
Thats awesome mate! All the best 👍
Will you tape the gameplay when it finished? :D
It's ironic because the Wii was full of shitty shovelwares lol
And so was the Famicom. The NES library was great because the US had a 2 year headstart to cherry pick the good stuff
And so was every console that you could cheaply develop for with low production cost and high marketshare. NES, SMS, PS1, PS2 thanks to RenderWare...
Great vid! 👍
23:29 I had my phone in my pocket, and thought you misspoke, but… wow. That sure is a Giratina on a Gameboy cart
I'm doing the same thing with the sega genesis. We even share gameplay styles, hope yours get finished faster then mine, im a complete noob at this
😢
Excellent technical explanations
Thanks for sharing
All the best for you
"I know we've all watched a million videos on snes backgrounds" is a hilarious sentence.
25:03 no, that's the GBA
to quote one of my idols,
"This information is highly illegal contraband! Please turn back while you still have the chance"
There was an adapter that lets you play NES on SNES
I'm currently making the first game for what's supposed to be a novelty game franchise, consisting of period-accurate games for older hardware such as ZX Spectrum, Commodore 64, Sega Master System, Game Boy.
While my team consists of somewhere around 10 people, there are only two programmers (I'm one of them), because no one else wants to touch Z80 nor 6502 assembly.
Nice game and explanation!!! Congrats for your effort and dedication to this project. However... Will be more videos about SNES programming like this?? Or maybe something in the future about PC Engine?? It's another console in the line of what you're doing here (I guess...)
Very good job!! I love the SNES hardware and games!!
This content is so high quality but the microphone quality change was jarring. Great video though!
Still more advanced than the wayland compositor
Thanks for the video! I think the NeoGeo console was around at the same time, and technically superior for 2D games, as it had an incredible sprite engine (everything on screen on the NeoGeo is a sprite, it has no tilemaps) with scaling and distortion. It didn't have mode 7 though. Plus it was REALLY expensive!
2:09 wow I want to see these VHS tape of the Devs beating games like The page master or even better Hagane.
Loving the low level stuff! 😍
That looks so complicated and hard.
But in reality it's very simple and easy to work. And Teams back then make games like in 3-6 month from scratch to release.
Yes, Nintendo did use their terms of licensing back in the day to create some baseline of quality, but you had to admit that the NES was pretty sophisticated for its time and even considerably enhanced when the MMC3 mapper came out.
The proprietary mappers by the way were only mandatory in regions that had the NES as in Japan game companies did in fact make their own cartridge hardware, including sophisticated third part mappers like the VRC6.
Subbed after seeing all of this. It's inspiring.
The Virgin C vs. The Chad Assembly
24:54
Games like Link To The Past, Final Fantasy 6, Breath of Fire, Mother series, Illusion of Gaia, Mana series (don't get me wrong, it'd 3d remakes are great, but it was a fun series even before that), and Super Mario RPG showed that games don't need to be 3D to be great though
Wouldn't the tile format allow the same hardware to render 2 bit and 4 bit tiles by just pulling in the additional bit planes?