Computing Pi on the NES

  Рет қаралды 164,186

NesHacker

NesHacker

Күн бұрын

An NES game that computes the digits of pi.
Become a Patron - / neshacker
Buy my t-shirt (Amazon Affiliate Link) - amzn.to/3ksOPmR
Get the ROM - github.com/NesHacker/NesPi/ra...
See the Code - github.com/NesHacker/NesPi
Pi-Spigot Algorithm Paper (Rabinowitz & Wagon, 1995):
www.maa.org/sites/default/fil...
Music:
“Raintown (My Love For You) - Instrumental Version” by Alchemorph
“Maldito” by Family Kush
“Boiling Point - Instrumental Version” by Evgeny Bardyuzha
“Night Chase” by Raz Burg
Chapters:
0:00 Introduction
2:20 Choosing a Mapper
3:16 Math Routines
5:22 The Spigot Algorithm
7:18 Coding the Game

Пікірлер: 427
@NesHacker
@NesHacker Жыл бұрын
Happy Pi day, everyone 😄
@rum-ham
@rum-ham Жыл бұрын
It got recommended to me on the right day. Happy Pi Day!
@ThenonFun
@ThenonFun Жыл бұрын
Piepi
@metalheadmaniac8686
@metalheadmaniac8686 Жыл бұрын
mmmm pie
@Nbrother1607
@Nbrother1607 Ай бұрын
And here it is again 😊
@joshgribbon8510
@joshgribbon8510 Жыл бұрын
I remember when I realized that game console were just special-built computers and not just "magic game machines" - so cool
@NesHacker
@NesHacker Жыл бұрын
I chose to become a software engineer as a kid the minute that realization hit me.
@kennystevens2923
@kennystevens2923 Жыл бұрын
​@@NesHacker Same here.
@syrus3k
@syrus3k Жыл бұрын
Here in the UK many of us started with a microcomputer instead of a games console, which was kinda cool, but I really wanted to play sonic.
@vdubs4189
@vdubs4189 Жыл бұрын
I would love to learn more about NMIs and graphics programming.
@NesHacker
@NesHacker Жыл бұрын
Got it, I'll start tooling around more with some ideas on the subject!
@williamdrum9899
@williamdrum9899 Жыл бұрын
It's a tricky business. Essentially an NMI is a "ninja function" that can call itself even if your program doesn't. So it needs to leave everything the way it found it when it's finished.
@vdubs4189
@vdubs4189 Жыл бұрын
@@williamdrum9899 No kidding. I've played around with it a little bit and oh boy the things that can go wrong if you don't use the stack
@ahmed.benaros
@ahmed.benaros Жыл бұрын
​@@NesHacker ❤طططططج❤❤❤❤❤❤❤❤❤❤❤❤ض رب في ص🎉 😮 😢
@JiffyJames85
@JiffyJames85 7 ай бұрын
I would love a quick tutorial along these lines in which you just show a sprite moving from left to right on the screen. I was able to make the "HELLO" scroll across the screen by updating your example in GitHub, but I know there is a better way to do it.
@nict2
@nict2 Жыл бұрын
This video is going to blow up on Pi Day. 🥧
@kermitdafrog8
@kermitdafrog8 Жыл бұрын
He should have released it on Pi day.
@davidandrewthomas
@davidandrewthomas Жыл бұрын
I will share this all the places on Pi day. I am no one, so I don’t see how it will matter much, but this video is deserving of some serious Pi Day views, so I will do my part
@NesHacker
@NesHacker Жыл бұрын
I considered it, but I kinda thought it best to keep the release schedule consistent... otherwise it would have been a nearly a month and a half between releases :)
@kermitdafrog8
@kermitdafrog8 Жыл бұрын
@@NesHacker Pi day is coming up in a couple of days.
@Psythik
@Psythik Жыл бұрын
No it won't. Video was uploaded too early. I agree with Kermit.
@LukeAvedon
@LukeAvedon Жыл бұрын
Super cool! Loved, "do you even flop bro"
@NesHacker
@NesHacker Жыл бұрын
So, when that joke came to me, I was like 10 hours deep doing graphics work. I was so tired I basically fell apart laughing and had to animate it in 🤣
@JoshJones720
@JoshJones720 Жыл бұрын
Great video. The use of visuals on this channel to explain assembly and binary operations are very helpful.
@NesHacker
@NesHacker Жыл бұрын
When I was in school I couldn't *get* math or computer science stuff until I figured out a way to visualize, or *feel*, it in my head. So my hope with the channel is that I can help others do the same with the graphics and explanations.
@sophiacristina
@sophiacristina Жыл бұрын
@@NesHacker Omg, me too, the school methodology: "throw a bunch of numbers; ask students to figure out". I began to understand math better when i began to mess with graphical calcs...
@BlocPanda
@BlocPanda Жыл бұрын
I love the fact that the NES is asking "What is 'Flop'?". Just a nice touch. Also, 1:00
@pedrotomazeti8450
@pedrotomazeti8450 Жыл бұрын
I'm Brazilian and I study computer engineering, your videos inspired me a lot and I'm more and more interested in programming with the 6502. I would love to learn more about NMIs and I'm already following your playlist on basic assembly!
@Josh2102
@Josh2102 Жыл бұрын
NES translations 1:03 「あのー、フロップは何ですか?」= umm, what’s a flop? 5:00 「そうです」= that’s right
@zackyzackyzacky1
@zackyzackyzacky1 Жыл бұрын
素晴らしい、私も日本語が学んでいます。
@dwcalle
@dwcalle Жыл бұрын
+1 for NMI!
@NesHacker
@NesHacker Жыл бұрын
Haha, alright, I'll make sure to bump up the priority!
@josephvanorden6373
@josephvanorden6373 Жыл бұрын
I sold my stack of Megaman NES carts around 8 years ago... You just hit me so hard in the feels with your stack.
@Jennn
@Jennn Жыл бұрын
This video deserves 1000x the views it currently has. Thank you sir. This was Great!
@NesHacker
@NesHacker Жыл бұрын
That's a lot of views 😆
@Zygorg
@Zygorg Жыл бұрын
Man, never thought ill watch a 9min vid about PI in the NES, but how you explain it and how you put it graphically makes it very engaging. Thanks for this video even though i dont have any idea of it!
@NesHacker
@NesHacker Жыл бұрын
Well, I am glad you enjoyed it, haha
@Zygorg
@Zygorg Жыл бұрын
@@NesHacker yes, i did enjoy it
@radio_marco
@radio_marco Жыл бұрын
Now I know, why a friend of my yesterday said he wants to make a NES-Pi calculator. He probably saw this video.
@Bofner
@Bofner Жыл бұрын
I've been living in Japan and learning assembly for the past 8 months now, but I was very surprised to see your NES speak in Japanese xD
@NesHacker
@NesHacker Жыл бұрын
I mean- of course it speaks Japanese... it's from Japan 🤔
@Mentalbox52
@Mentalbox52 Жыл бұрын
It's not entirely true that the nes lacks multiplication and division, but that it's limited. There are 4 bitwise opcodes, ROL, ROR, ASL, and LSR which you can use to shift the bits left and right which can be used to multiply and divide bytes by 2.
@NesHacker
@NesHacker Жыл бұрын
Indeed, I more meant "general arithmetic multiplication and division" such as a "mul" or "div" operation.
@jaysonl
@jaysonl Жыл бұрын
This is great stuff! Finally! A concrete, complete, and not too complex example of how to get an NES to do some actual work!
@NesHacker
@NesHacker Жыл бұрын
I'm glad you like it :)
@jaysonl
@jaysonl Жыл бұрын
@@NesHacker One of the first things I wanted to do as far as NES coding projects were concerned was to "simply" count frames since poweron so I could get an accurate idea of how my video capture device interacted with the console(s). Which means having to deal with enough PPU stuff to be able to set tiles on the screen, and enough math stuff to be able to increment and display, at bare minimum, a 16 bit integer. I figure there's enough I can glean from your code to muddle through it.... now all I need to do is find the time...
@Mainyehc
@Mainyehc Жыл бұрын
I mean, you *could* trade stocks on a Famicom ;) kzbin.info/www/bejne/h2rKk3yQjpaKj5Y
@seanvinsick5271
@seanvinsick5271 Жыл бұрын
A youtuber called suckerpinch made an NES slideshow app.
@jumanji4037
@jumanji4037 Жыл бұрын
This was a really great video, very well explained. I’d love it if you could go into more depth on handling interrupts, I had no clue you could save the address of a register on an interior call. Could also do a brief tutorial on NES audio programming, it’s one of the more difficult concepts I’m trying to grasp.
@NesHacker
@NesHacker Жыл бұрын
APU programming is a big one to tackle. As soon as I have a good way to explain it all and have done more research I'll be sure to cover it!
@jumanji4037
@jumanji4037 Жыл бұрын
@@NesHacker thanks! I really appreciate that.
@ImSquiggs
@ImSquiggs 8 ай бұрын
It's so cool to me there's a way to compute pi without floating point math... and digit-by-digit like that... what a cool algorithm. Math is so freakin' cool sometimes.
@NesHacker
@NesHacker 8 ай бұрын
Yeah I was pretty stoked when I found the paper detailing the algorithm
@magickymajk
@magickymajk Жыл бұрын
A complex, daunting process explained in a very understandable and concise manner. The visuals are very smooth and helpful and your speech has a nice, relaxing cadence. Exceptional video, can't wait for more.
@NesHacker
@NesHacker Жыл бұрын
Thanks! I am glad you liked it :)
@milesdevinny5759
@milesdevinny5759 Жыл бұрын
I have a video request: a video covering the ins and outs of scrolling on the NES. From what I understand, you need to go through all sorts of hoops to be able to get scrolling in all directions. I've studied enough of the hardware to understand it can do general scrolling in one direction, but beyond that is a mystery to me. What makes bi-directional scrolling so hard, how is it accomplished, and what are the limitations to it depending on the mapper you're using? NESMaker is a good example of how this frustrated me a lot in the past. They released this tool allowing you to build your own NES games without needing programming, but anytime they were asked why can't they provide four-way scrolling, they pretty much just said it's not possible and those of us not in the know were left just wonder "But why?" I'd LOVE to see you cover this, and Vdubs also suggested teaching more about "NMIs and graphics programming." I think a video on scrolling and all the hurdles would be a great start.
@NesHacker
@NesHacker Жыл бұрын
It's definitely on my list. 4-way scrolling *is* possible, I mean look at Super Mario Bros. 3... So I kinda wonder what's going on with NESMaker where they can't support it...
@milesdevinny5759
@milesdevinny5759 Жыл бұрын
​@@NesHacker Yep, not to mention all those RPGs! I'm almost certain I remember the main dev of NESMaker mentioning they sort of limited themselves due to the mapper they chose, but I think I've even seen a plain NROM demo with 4-way scrolling, so I'm still confused.
@Starwort
@Starwort Жыл бұрын
@@NesHacker actually 4-way scrolling *isn't* possible. iIRC there's an RGMechEx video on how smb3 cheats but the gist is that there's a load of sprites on the left side of the screen to mask the fact that the tiles wrap around (and you can see colour glitches on the right hand side of the screen because of how NES colour mapping works) The NES has two scrolling modes: 2 screens vertically, and duplicated horizontally; or 2 screens horizontally, and duplicated vertically and SMB3 cheats by covering the left side of the wrapped tile
@binguloid
@binguloid Жыл бұрын
4 way scrolling is possible, whether by including extra RAM on the cartridge for 2 more nametables, or "cheating" like in Super Mario Bros 3 and a ton of other games
@gabrielbarrantes6946
@gabrielbarrantes6946 Жыл бұрын
Wow, I was once assigned to do this using the 8086 assembly and didn't even try, was too hard back then but definitely knowing that algorithm would have changed a lot
@matte.309
@matte.309 Жыл бұрын
This is really cool. I'm loving your recent videos.
@NesHacker
@NesHacker Жыл бұрын
Thanks, I've been really happy with my recent ones too :)
@idkjustsomedog
@idkjustsomedog Жыл бұрын
Great vid, awesome production quality and a super interesting subject all explained very well!
@NesHacker
@NesHacker Жыл бұрын
Thanks :)
@ShadowFoxInfinite
@ShadowFoxInfinite 8 ай бұрын
This makes sense considering 6502 is a general purpose CPU. Chances are there are limitless options to expand this chip by retrofitting current code so it can understand it for low watt, unattended processing.💯
@dhoyt902
@dhoyt902 10 ай бұрын
As a Pi loving mathematician who has written many forms of the Spigot algorithm, bounded and unbounded, for various numbers... Well.. I'm jealous.
@NesHacker
@NesHacker 10 ай бұрын
You have no idea how happy I am to hear that a mathematician is jealous of my work 😂
@igsalexcodes
@igsalexcodes Жыл бұрын
Amazing video! Visuals were amazing, and the breakdown of compilicated math algorithims made it easy to understand. Also cool because you pushed the limits of the NES!
@NesHacker
@NesHacker Жыл бұрын
Thanks! I'm glad you liked it, though I'd say I didn't push them too hard. You should see what some of the people in the demo scene do, haha
@vinigame7490
@vinigame7490 Жыл бұрын
Why limits?
@llaffer
@llaffer Жыл бұрын
I like the joke at 1:00 :) "What is the flop?" :)
@NesHacker
@NesHacker Жыл бұрын
Yeah I am not sure if it's technically correct Japanese, but it's what I remember from lessons... 😂
@llaffer
@llaffer Жыл бұрын
@@NesHacker it was good enough for Google Translate, I guess.
@akko8210
@akko8210 Жыл бұрын
This is very cool! Hasnt watched everthing but its sounds cool!
@NesHacker
@NesHacker Жыл бұрын
Hopefully you like it when you get to watch it all :)
@akko8210
@akko8210 Жыл бұрын
@@NesHacker That was AMAZING very cool! Keep the good work man
@TauGeneration
@TauGeneration Жыл бұрын
ah yes , my videogame from my childhood. Pi for the NES. i especially loved it's requel/remake "Super Pi" fore SNES
@NesHacker
@NesHacker Жыл бұрын
Imho Super Pi was derivative and overrated :P
@TauGeneration
@TauGeneration Жыл бұрын
@@NesHacker D:< to waaaaaar
@titoguidotti2397
@titoguidotti2397 11 ай бұрын
Hey, thanks to the inspiration of this video I got a 10/10 in my parallel computing project, for university! Appreciated!
@blushslice
@blushslice Жыл бұрын
Love these videos bro!!
@NesHacker
@NesHacker Жыл бұрын
Right on :D
@amanda_bynes226
@amanda_bynes226 Жыл бұрын
How come your videos is so dope
@daleatkin8927
@daleatkin8927 Жыл бұрын
Great video. Not at all what I was expecting when I saw “NES Pi” in the vid title, but was interested anyways.
@jroweboy
@jroweboy Жыл бұрын
Loved the video! Quick code note, when an interrupt is fired, the 6502 will push the current PC to the stack, and then will also push the current processor flags as well. This is why you use RTI as it pops both the processor flags and the PC. So anyway, all I'm trying to say is you don't need to do php/plp when an interrupt is fired since that is done for you.
@NesHacker
@NesHacker Жыл бұрын
Yep, another viewer pointed this out as well, my bad! Thanks for watching and letting me know :)
@jroweboy
@jroweboy Жыл бұрын
@@NesHacker awesome! Sorry for that then, I tried reading the comments to see if someone else caught this but I didn't find one. Anyway, thanks for responding, can't wait to see the next upload!
@Daniel-it1dp
@Daniel-it1dp Жыл бұрын
Yes, I want to learn more about using interrupts to do graphics programming on the NES 🙂
@cwoelkers1
@cwoelkers1 Жыл бұрын
A very cool video. You may not have planned this but I got a chuckle out of the NES "speaking" in Japanese as the NES was not released in Japan, the Famicom was.
@NesHacker
@NesHacker Жыл бұрын
Everyone knows that the NES' true home is Japan and that its an expat, jeeeezeee ;)
@RootVegetabIe
@RootVegetabIe Жыл бұрын
ACKCHEWALLY
@popcorn109i
@popcorn109i Жыл бұрын
Really quality video! Very interesting, tnx!
@NesHacker
@NesHacker Жыл бұрын
Thanks, and you're very welcome!
@fluffycritter
@fluffycritter Жыл бұрын
For some reason I assumed this would be about using a Raspberry Pi with a NES, like what suckerpinch did a few years back to implement custom video via MMC/PPU shenanigans.
@jefftheworld
@jefftheworld Жыл бұрын
Cool way to bring in mappers to the series!
@AndrewGlitchMasterBalaschak
@AndrewGlitchMasterBalaschak Жыл бұрын
Oh wow, pleasure seeing you here! I'm a senior in college and I've had your albums on my phone since middle school!
@NesHacker
@NesHacker Жыл бұрын
Thanks! I've been searching for a way to approach the subject more that is interesting without being just an info dump.
@jefftheworld
@jefftheworld Жыл бұрын
@@AndrewGlitchMasterBalaschak That's wild, what a small world. Whereabouts did you find my music way back then?
@AndrewGlitchMasterBalaschak
@AndrewGlitchMasterBalaschak Жыл бұрын
@@jefftheworld it was on Google play actually, I remember I didn't have a credit card or any way to buy stuff online so I just searched for all the free music I could find!
@Kuumba
@Kuumba Жыл бұрын
nice vid , I always try to stay away from floats and these type of stuff with 6502 since its always harder than on modern day processors . also not sure if you know this but you dont have to backup the Proccesor flags at the start of an interrupt , thats done automaticly . Otherwise RTI would be exactly the same as RTS
@NesHacker
@NesHacker Жыл бұрын
I thought it might be the case that the interrupt handler auto stored the status register, but I was like five days into deep hacking on the game, very tired, and figured a couple extra cycles wouldn't matter so I could be "safe" and just throw stack push and pop in there. Fully computing all 960 digits takes quite a while even on the highest speed settings I could get on Mesen, and even minor issues were causing all sorts of havoc with the final digit results. So I was definitely being over cautious when handling the rendering here, haha.
@danielfm123
@danielfm123 Жыл бұрын
i expected an other retro pie tutorial, good video
@tscock
@tscock Жыл бұрын
Honestly i would love to see the debugging process on nes, i have some problems with updating backgrounds and its like no one else had anything like that before, you should collect similar bugs and cover them
@weichun255
@weichun255 Жыл бұрын
Thank you for the great video
@NesHacker
@NesHacker Жыл бұрын
You're welcome :)
@proxy1035
@proxy1035 Жыл бұрын
fixed point arithmetic would've also been an option, as it's functionally the same as floats but a lot easier on the hardware (and easier to implement). a lot of NES games actually use fixed point math to keep track of characters/enemies and their speed/acceleration and such! and honestly it did hurt my pride a bit that you didn't consider it because i made a fixed point library for cc65 (a 6502 C Compiler designed for these systems) for exactly these kinds of projects. :(
@NesHacker
@NesHacker Жыл бұрын
Oh, sorry about that, no offense intended at all! I don't know why but I had it in my mind that there just *had* to be a way to compute the digits using only integer math, so when I found the spigot algorithm I kinda just went with that :)
@proxy1035
@proxy1035 Жыл бұрын
@@NesHacker no worries, important part is that you got something working at all!
@NesHacker
@NesHacker Жыл бұрын
@@proxy1035 Right on, and honestly this is all bound to come up in a future video, so I'll definitely give your library a spin when I get to covering the topic again :)
@ethanwashoe5868
@ethanwashoe5868 Жыл бұрын
I thought from the title you would be making a mini NES out of a raspberry pie but this was cool!
@andrewsveikauskas
@andrewsveikauskas Жыл бұрын
Nitpick: You talked about floating point with a graphic of stock quotes ... Due to rounding errors, using floating point for currency or stock shares is bad bad bad! You would need to use an integer math representing cents or even fractional cents.
@NesHacker
@NesHacker Жыл бұрын
That's true, and my bad. Mostly just needed some basic b-roll to fill in some space xD
@RetroPokemonDepot
@RetroPokemonDepot Жыл бұрын
This was really cool!
@doc_sav
@doc_sav Жыл бұрын
This is so sick!
@NesHacker
@NesHacker Жыл бұрын
Haha, appreciate it :)
@WatchItGo
@WatchItGo Жыл бұрын
can anyone pls explain to me why I end up watching this type of videos with so much interest from start to finish without understanding a thing of what is explained in this video :))) btw, you have a great voice/narration
@SmoggyLambGG
@SmoggyLambGG Жыл бұрын
「あのー フロップは何ですか?」 *"EVERYBODY DO THE FLOP!"*
@NesHacker
@NesHacker Жыл бұрын
Haha
@gustavo9758
@gustavo9758 Жыл бұрын
Awesome stuff right here
@NesHacker
@NesHacker Жыл бұрын
Glad you like it :D
@guilhermehenrique-zj5tt
@guilhermehenrique-zj5tt Жыл бұрын
awesome video. can you make a series where we can build a entire game? sprite, animations etc... i would pay for it.
@NesHacker
@NesHacker Жыл бұрын
I very much would like to do that, but it's a really big undertaking and takes quite a bit of planning :)
@michwashington
@michwashington Жыл бұрын
I subscribed because of this video ❤
@ultiomos
@ultiomos Жыл бұрын
nice video! i love the idea of using old game consoles as general use computers. i wanna make something like this on the gameboy
@NesHacker
@NesHacker Жыл бұрын
The Z80 is for real, give it a shot :)
@toto99303
@toto99303 Жыл бұрын
Awesome! Instant sub!
@danielxmiller
@danielxmiller Жыл бұрын
Great video! Very interesting!
@SONofADAM007
@SONofADAM007 Жыл бұрын
happy 3.14 - i did run this on the everdrive. the screen was slightly cut off, but tons of fun !!
@barrettkepler7618
@barrettkepler7618 Жыл бұрын
Yo, this is really good Thank you!
@NesHacker
@NesHacker Жыл бұрын
Hey, thanks!
@princessmaly
@princessmaly Жыл бұрын
The little NES going "ano..." is so cute x3
@NesHacker
@NesHacker Жыл бұрын
That whole sequence had me laughing to hard when I was doing the graphics :D
@beefmaster7
@beefmaster7 Жыл бұрын
I subscribed! I hope the algorithm bumps your video with March 14 around the corner.
@INDIOBRAVOO
@INDIOBRAVOO Жыл бұрын
Amazing!!!
@NesrocksGamingVideos
@NesrocksGamingVideos Жыл бұрын
Hey you could have done 1920 digits by using horizontal mirroring and scrolling down to the next nametable ;)
@NesHacker
@NesHacker Жыл бұрын
Indeed, but... At 1920 digits I'd need 2 × 1920 × 10 / 3 = 12,800 bytes for the array, which is 12.5 KB. With that number I'd need to use something like the MMC5 to fit the data into contiguous memory (I think you can map WRAM on an MMC5 board into $8000+ range, though I've never done it). Also it would take *much much* longer to compute, haha.
@Abubububu
@Abubububu Жыл бұрын
Checked the whole video… didn’t understand anything 🙈
@NesHacker
@NesHacker Жыл бұрын
Imagine how I felt making it ;)
@Abubububu
@Abubububu Жыл бұрын
@@NesHacker atleast you know what youre talking about :)
@kenjinks5465
@kenjinks5465 Жыл бұрын
I haven't programmed 6502 assembly since the 90s on my C64, good memories. I had to do it on all on paper then poke all the bytes into memory with some C64 basic via the programmers ref guide, then call it with SYS xxxxxx. Hah, all that to make the text wiggle about on the screen or change char sets, make sprites. Fond memories.
@SpyderGamer
@SpyderGamer Жыл бұрын
Love this, it's very interesting!
@NesHacker
@NesHacker Жыл бұрын
Right? I was thrilled when I found the algorithm and even more so when I "got" it, haha
@SpyderGamer
@SpyderGamer Жыл бұрын
@@NesHacker Yeah, it's even more frustrating when it comes to assembly. Good job!
@nocheastral8219
@nocheastral8219 Жыл бұрын
This is so creative and inspiring, thanks 🤩💯✨ I Respect you effort and time to make a great Job Helping others understand better programing and algorithms. 💯👌
@NesHacker
@NesHacker Жыл бұрын
Thank you very much, I really appreciate the kind words :)
@carlonapolitano3598
@carlonapolitano3598 Жыл бұрын
great video!
@NesHacker
@NesHacker Жыл бұрын
Thanks!
@johanngambolputty5351
@johanngambolputty5351 Жыл бұрын
Awesome, I've been meaning to do some non x86/non-desktop programming at some point, console is not a checkbox I've ticked yet, though I'm not quite sure I want to dive into assembly just yet, I'm working my way backwards. Though I guess the benefit of something like this is that its more pure, you won't have to disentangle some proprietary API such as what an xbox might have. Historically c wasn't used because it was slower? Is this still the case, how is c programming for something like the NES nowadays? Is inline assembly a good way to have the best of both?
@NesHacker
@NesHacker Жыл бұрын
You can do NES programming in C or Assembly, choice is yours. But some of the rendering stuff and advanced techniques requires precise cycle timing, so you have to break down into assembly to do that. I mostly teach assembly on the channel cause I think it's fun and a more natural way to program NES games.
@vadimosovsky
@vadimosovsky Жыл бұрын
Great video! Looking for a video on state machines
@NesHacker
@NesHacker Жыл бұрын
You may get your wish in the near future ;)
@rgriswold012
@rgriswold012 10 ай бұрын
Great video
@NesHacker
@NesHacker 8 ай бұрын
Glad you enjoyed it
@collieyy
@collieyy Жыл бұрын
Omg You have 3.14k subs rn!!
@NesHacker
@NesHacker Жыл бұрын
Mmmm, 31.4k I think, but yeah really close to getting 10*pi on pi day, haha
@haryman222
@haryman222 Жыл бұрын
These motion graphics are so impressive
@NesHacker
@NesHacker Жыл бұрын
Thanks, they're a lot of work but really fun and satisfying to make :)
@chrisdible9298
@chrisdible9298 Жыл бұрын
I would typically click on "like" but it is currently sitting at 314 and I just can't bring myself to break that perfection...
@NesHacker
@NesHacker Жыл бұрын
😂
@jadbridge
@jadbridge Жыл бұрын
Great to see coders using assembler and struggling with little RAM. Back in the late 70s I did the same and resorted to using the video memory directly as storage. It’s been a while, but we have come a long way since 4k was total RAM.
@NesHacker
@NesHacker Жыл бұрын
Working in a more limited environment can be really fun because you often have to get creative. I didn't exist in the 70s, but I probably would have had a blast programming back then :)
@metalheadmaniac8686
@metalheadmaniac8686 Жыл бұрын
If I remember correctly there is a fantasy console that has 1 kb of RAM.
@old_catdotjs
@old_catdotjs Жыл бұрын
you just couldn’t wait 10 more days to post this at pi day 😭😭
@NesHacker
@NesHacker Жыл бұрын
I mean I could have... but then by the time anyone knew about it it would probably be too late.
@VinsCool
@VinsCool Жыл бұрын
At this point using a 960 bytes table compressed to something like LZ4 would make more sense to extract all the Pi digits I think lol
@NesHacker
@NesHacker Жыл бұрын
Yeah I guess that would technically be "computing" the digits as much as this is...
@VinsCool
@VinsCool Жыл бұрын
​@@NesHacker haha indeed :D
@NikolajLepka
@NikolajLepka Жыл бұрын
I honestly thought this video was about stuffing a raspberry pi into a nes cartridge
@jpstewart4109
@jpstewart4109 Жыл бұрын
(Tropic Thunder vc) "What!!?.. You been talkin na' ME THIS WHOLE TIME???" 🤯😵‍💫
@frogjmon
@frogjmon Жыл бұрын
Someone get standupmaths over here, he always does a special video for pi day
@NesHacker
@NesHacker Жыл бұрын
I think he's behind most of my favorite numberphile videos :)
@DerrickJLive
@DerrickJLive Жыл бұрын
Wow this is awesome
@NesHacker
@NesHacker Жыл бұрын
No, you are :)
@Evercreeper
@Evercreeper Жыл бұрын
Close to pi day!
@bytesandbikes
@bytesandbikes Жыл бұрын
Nice video. Why do the divide algorithm for 2ⁿ values? I would have thought a shift right for the quotiant and a bit& for the remainder would work?
@NesHacker
@NesHacker Жыл бұрын
It's a divide algorithm in binary not for 2^n values. So it handles division between two arbitrary numbers.
@bytesandbikes
@bytesandbikes Жыл бұрын
@@NesHacker Ah, sorry. I thought I saw a "divide by 8/16", but it must be 8 / 16 width
@OSharraps
@OSharraps Жыл бұрын
You use the stack to store the values of the registers during an NMI interrupt, but isn't it better to store them into the zeropage ? It would use less clock cycle.
@NesHacker
@NesHacker Жыл бұрын
Yeah that would be more optimal, thankfully in this case it didn't matter much... But with more complex rendering routines it certainly would!
@BakeBakePi
@BakeBakePi Жыл бұрын
cool video!
@xcoder1122
@xcoder1122 Жыл бұрын
The Ricoh 2A03 and Ricoh 2A07 (those were the CPUs in the NES) are just 8 Bit CPUs with MOS 6502 instruction set running at 1.79 MHz. Oh boy, those CPUs used a technology node of 6 μm, today CPUs are below 6 nm (that's a factor of 1000 smaller). And the 6502 was just a stripped down version of the Motorola 6800 and it's the CPU also used in the Atari 2600, Apple II, Commodore 64, or BBC Micro, so of course it is capable of doing way more than running console games. It is a general purpose CPU even though a pretty limited one by today's standards.
@NesHacker
@NesHacker Жыл бұрын
Well stated :)
@wcsoblake85
@wcsoblake85 Жыл бұрын
Not gonna lie, I thought this video would be showing a raspberry pi built into an NES cartridge that had multiple games on it.
@thinksie
@thinksie Жыл бұрын
Impressive
@NesHacker
@NesHacker Жыл бұрын
"But you are not a Jedi, yet" **cue lightsaber noises**
@RudolfKlusal
@RudolfKlusal Жыл бұрын
In our language the word "nespi" mean "don't sleep" 😀
@NesHacker
@NesHacker Жыл бұрын
That's a pretty accurate description of my life when I was editing the video :P
@RudolfKlusal
@RudolfKlusal Жыл бұрын
@@NesHacker 😀
@tomyyoung2624
@tomyyoung2624 Жыл бұрын
cool pi nes
@AlexLuthore
@AlexLuthore Жыл бұрын
I legit thought this was gonna be about an NES being run on a Raspberry Pi lol
@ImmortalAbsol
@ImmortalAbsol Жыл бұрын
From the thumbnail I thought you were going to make a cart with a raspberry pi inside
@NesHacker
@NesHacker Жыл бұрын
Yeah a lot of people say that, I should totally do it now xD
@zyad48
@zyad48 Жыл бұрын
Of course the algorithm recommends this to me today
@the_kombinator
@the_kombinator Жыл бұрын
0:55 - Modern processor - shows picture of a Socket 370 CPU.
@NesHacker
@NesHacker Жыл бұрын
I mean... compared to the 6502 😂
@the_kombinator
@the_kombinator Жыл бұрын
@@NesHacker LOL shows a picture of a 4004 :P
@BobbyCharlz
@BobbyCharlz Жыл бұрын
Graphics Interrupts video tutorials would be awesome, good sir, thank you.
@PCgameandgamer
@PCgameandgamer Жыл бұрын
I'd love to see the video on state machines!
@NesHacker
@NesHacker 7 ай бұрын
I have one now called “How NES Games use Stare Machines for Everything”
@wztly7368
@wztly7368 Жыл бұрын
you missed a big opportunity to name it PI-NES
@NesHacker
@NesHacker Жыл бұрын
I think it's more like I *dodged* that opportunity :P
@metalheadmaniac8686
@metalheadmaniac8686 Жыл бұрын
@@NesHacker nah definitely missed XD
@harshitjoshi3082
@harshitjoshi3082 Жыл бұрын
This makes me wanna learn assembly
@NesHacker
@NesHacker Жыл бұрын
It's pretty fun, ngl
@VendettatheGreat
@VendettatheGreat Жыл бұрын
Excellent video! One minor correction: for your Patreon credits, you listed it as "Feb 2022 Supporters" instead of 2023
@NesHacker
@NesHacker Жыл бұрын
Yeah my bad, appreciate it!
The Code That Makes Mario Move
9:53
NesHacker
Рет қаралды 509 М.
Does the NES Have a Secret Master System Port? | Nostalgia Nerd
12:30
Nostalgia Nerd
Рет қаралды 2 МЛН
Stupid man 👨😂
00:20
Nadir Show
Рет қаралды 13 МЛН
ТОМАТНЫЙ ДОЖДЬ #shorts
00:28
Паша Осадчий
Рет қаралды 13 МЛН
Суд над Бишимбаевым. 2 мая | ОНЛАЙН
7:14:30
AKIpress news
Рет қаралды 681 М.
1 класс vs 11 класс (рисунок)
00:37
БЕРТ
Рет қаралды 4,4 МЛН
I Designed My Own 16-bit CPU
15:46
AstroSam
Рет қаралды 1,8 МЛН
How NES Games Use State Machines For Everything
8:21
NesHacker
Рет қаралды 29 М.
The best websites for retro fans
17:36
Retro Tech Dreams
Рет қаралды 35 М.
Fast Inverse Square Root - A Quake III Algorithm
20:08
Nemean
Рет қаралды 4,8 МЛН
How we fit an NES game into 40 Kilobytes
12:04
Morphcat Games
Рет қаралды 3,5 МЛН
computers suck at division (a painful discovery)
5:09
Low Level Learning
Рет қаралды 1,5 МЛН
The CIC & 10NES Explained
19:40
NesHacker
Рет қаралды 58 М.
Can you fit a whole game into a QR code?
20:03
MattKC
Рет қаралды 8 МЛН
Coding NES Subroutines
8:15
NesHacker
Рет қаралды 53 М.
Making a Game in JavaScript with No Experience
5:49
Goodgis
Рет қаралды 694 М.
M4 iPad Pro Impressions: Well This is Awkward
12:51
Marques Brownlee
Рет қаралды 3,3 МЛН
Распаковка айфона под водой!💦(🎥: @saken_kagarov on IG)
0:20
Взрывная История
Рет қаралды 11 МЛН