An explanation of the process and tech behind my last video, Reverse emulating the NES to give it SUPER POWERS!". You should watch that video first, of course: • Reverse emulating the ...
Another tip when laying out a PCB. Before you order the board, print it out on paper and lay any components you have on the pads to see if they match. I do this with all my boards. Of course Murphy's gonna get you anyway on something stupid, but at least it'll usually be something you can rework at home. Excellent work on the project, I've very much enjoyed the videos :) Cheers
THIS! just finished my first PCB project. What a surprise when I got the PCB back and my main IC section was way too small! So, yes, definitely print out your PCB and lay your parts on them. I do that now and it has saved me from many more problems.
Yup, would 100% suggest this too, really helps when sending off to china, not so bad if you fabricate yourself but still stops you wasting time. *has flashbacks to the 5 versions of a Dual Flat No leads part*
Yeah, if he knew we'd stick around that long, he should have just gone on some more about it! Give us 2 hours of overly detailed circuit troubleshooting and jury-rigging! XD
This is one of the greatest channels that never uploads. And good on you for it too! Your videos are always such high quality. Unlike most other channels on RU-vid where there is this _expectation_ of content, you're in a lucky spot where you can upload whatever the heck you've been toying with in your mind lately and it's a lovely surprise that treats your audience to some unexpected good times. ...Plus you're a low-key super-genius.
That is beautiful work. That part about reverse emulating the CPU to make the audio better made me realize you are nearly to the point where the sole function of the Nintendo itself is to render video and audio from a hilariously convoluted set of inputs. I.e., it's basically a set of D/A converters and hardware that sends signal to a TV.
Yeah, but the point is, it's a GREAT party trick to pull with anyone who has an old NES lying around (AKA, fellow geeks. XD) I mean, who WOULDN'T be confused/amazed if you popped in an old zelda or mario cartridge, then booted up Windows (Or, well, Linux in this case) or a far more modern game that can run on a Pi.
I'm more curious to know if you can inject/manipulate code in the cpu itself.. this could make the Raspberry Pie a software SuperFX-ish expansion to enhance native-run NES code/homebrew :)
Im in 4th year electronics engineering and some of my collegues look at me like im some sort of genius when I show them my electronic or embedded projects but damn man.. It hurts my mind to see how smart you are
The actual method of the hack is not very interesting on the switch I'll agree with that but it's still interesting to look at and use all the homebrews and ports!
I wouldn't this consider a hack, not like mordern consoles and privilege escalation attacks as they are different ball game completely this is simply electrical engineering essentially bus stuffing the NES kinda by being able to feed data essentially every clock cycle, in a way he is just dma'ing to the ppu using the raspi which bypassed normal hardware limitations set by stock console hardware, you can access any info about the NES down to the Mobo schematics (and yes you can legally make reproduction NES Mobo from them as hardware patents are expired which is what the clone makers should actually do), it's less of a hack(not really a hack but someone after 30 years took time to research and build essentially a dsp expansion cartridge like the super fx on snes )and more like adding an expansion like ram or graphics card on a pc, I am doing something like this with the 2600, using 6502(no not 6507) with additional 64k ram, ay-3-8910 and atmega8515(or 644)
This is an interesting idea. I have also suggested to him checking out baremetal Raspberry Pi programming. I have even posted the list of links showing what retroprojects are possible when you program the RPi in this way, but the post with the links did not show up (probably has to be accepted manually by suckerpinch)...
Yeah, good call. I was thinking a RTOS like QNX to fix the glitching, but I was forgetting about the existence of the Linux RT kernel. Gotta dig more into that one of these days.
It doesn't need to be RTOS, there are just a few settings that you can change to make it more amenable to real-time processing ( sched_rt_period_us and sched_rt_runtime_us ) and sched_setscheduler to set it to SCHED_FIFO. It may also help to lock the pages in memory so they don't get swapped out.
Thank you for including both your set-backs and breakthroughs in your video--it helps other folks like me feel empowered to push through on our own ambitious projects. I wouldn't have guessed you'd encountered so many problems from the presentation in your previous video, so if you can still get a great result than surely we'll be able to push through as well!
IHatePuns godel Escher and bach is an awesome book. I read it like probably 10 years ago. so worth the time it took to read. would highly recommend reading it all the way through. 😎
Thank you for making these videos! They're always a blast to watch and I'm consistently amazed by the breadth of knowledge you have when it comes to computer science!
When you showed the image of your neighbors old PCs I shed a tear! I had the futuristic looking Compaq Presario growing up and that was my entrance to things tech and computing! Loved that computer and to see it again, after forgetting all about it for roughly 20 years brought it all back! Great Vids!
I know this is mega old by now. But your progression through the electrical aspects of this is great. Everything you describe is what every new EE goes through. Why don't these transistors work like I think, why can't I drive this, what is TTL, etc is great! It's very impressive that your persevered. Many of these problems can be super frustrating and difficult to figure out. As I'm sure a million nerds already (jokingly) pointed out, use less vias!
How have I missed your channel for so long? Absolutely brilliant content that inspires me to want to perform similar projects myself. Thanks for the detailed explanation and walkthrough of your project.
This was amazing. I really appreciate you going through the simple mistakes and misconceptions you had. As a fellow software guy (I'm assuming) and hardware dabbler, it's really nice to see your process. I never really quite groked the tri-state logic thing until this, even though I've designed and fabbed a board or two using KiCad. Also you schematic looks so much nicer than my first one :)
You are a Genius man, we need more enhancements and more knowledge from you, Please keep working in the vblank solution and the sound. we need this to learn more about your work.
I LOVED seeing how you pulled off this project. I must say, though, that every time you upload something I have to go back and rewatch a few of your videos to remember what got me to subscribe. XD I hope you upload more often in the future; you make great, interesting content.
I have no idea about many things you were talking about but I found your thinking process fascinating. Really cool video about showing how you thouught about this project exactly.
as a programmer who has dabbled with hardware, it helps immensely to have a fun, compelling project. that way when things inevitably go sideways, or just don't work at all, you retain motivation to dig into documentation, wikipedia, whatever it takes to "get something working."
40 min videos? - normally No...but watching you condense months of learning into a 40 minute adventure - Yes! Thanks for being humble enough to share your misunderstandings too. That's where real learning takes place. Great Video.
Very, very cool! A couple points though: - Both the NES and SNES use the SAME chips in the controllers, just the SNES chains a second chip per controller to allow for >8 bits. The bit order is designed in. It would be possible to make the NES read a SNES controller using a simple modified plug and having the routine read all 12 valid bits (4 unused, 16 total). - The NES 5v regulation uses a standard linear regulator (7805?) and if you are truly pulling 1A with the pi alone then you are past its specification. i.e. You may end up frying the NES and your pi. Consider supplemental 5v directly into your custom cart. (I would measure actual power draw first.) -Greg
I think I've watched every suckerpinch video ever made and I have never been disapointed, other than the fact that there aren't more of them. But I know that's part of what makes them great.
There are NES games, such as a 3d polygonal space game (yes for the nes) that achieves 3d by doing what you said at the end of the video, computing data off site (on the cartridge chips) and simply feeding that "prerendered" data into the nes (as a continually shifting pallet and/or sprite, which is actually a "time lapsed" drawn graphic, not just a pallet or sprite). The fact that you arrived at the pallet idea (though don't forget sprites) on your own is pretty impressive! (Then again everything you do is, so no surprise there!)
this is good stuff man. Yeah, I watched the 40 mins all the way through. Mainstream RU-vid will obviously have different videos in store but it doesn't mean there's no room for long, technical, quality content. Keep it up!
Reminds me of all those years ago when I would void the warranty on everything electronic I've ever owned which all of us hardware geeks did. My first FM pocket radio was source for my first transistors harvested to use on my first breadboard which still had fahnstock clips instead of binding posts. My first stereo I added digital frequency display to the analog dial attaching the LED board to the pointer so it moved with the dial. Oh, the memories... Also great explanation and animation of transistor(s). Transistor theory and application isn't always understood the same way by everyone, you have to get your hands on them and build and see results to get it to click.
Pls let me know when you get onto sound. My goodness. You have blown my mind sir. I'm gonna get my head back in the code and electronics book, you have reignited my dwindling Hobbyist bug.
40 minute videos are the one...because there is a 1.5 x button for those who talk too slow or pack too little in. you do neither...well for a electronics flunk like me
Good times. Reminds me of when I got the N64 for Christmas but didn't know it lacked an RF adapter. I was crestfallen. I couldn't play it on my old TV. Then I got the bright idea to crack open my old NES and bridge the NES's RF and RCA outputs and used it as a pass through for the N64
Your videos are the best on the internet. I can't wait for the next one. I always watch them multiple times, especially if they are about cycles? Please make more videos faster, If I had money I would want to give it to you to help you fund resistors and antique ROM cartridges.
Every half a year I realize I've been secretly in love with you. You have some really great ideas and your execution always comes with so much care, it's impossible not to like it.
wow wow wow, this was an awesome project to see! Thankfully a commenter below linked to the project files, but those would be great to throw in the video descriptions as well for people to access. :)
Damn. I think this is the first project of yours I've seen and it was certainly very interesting. It'll be upsetting when I no longer have the time to watch hours of RU-vid videos, but I might as well make the most if it while I can and to that end I'm going to check out your back catalogue now. Thanks dude!
I absolutely LOVED this.... I really wish I knew, 3 years ago, what I know now. Also, I bet you wish you had pcbway 3 years ago! Lol I'm really happy I stumbled onto you (one time the RU-vid algorithm actually worked favorably) keep it up Tom, thank you!!
This experiment brings to mind the philosophical conundrum of determining at what point the NES is still an NES as you augment and supplement more components and more powerful hardware. Damn fascinating to watch, though.
I'm really happy that you discussed a little bit about reverse emulating the NES sound hardware. Your video actually gave me ideas to try to figure out how to somehow make the NES do some kind of frequency modulation. It might not be possible, but you might be able to modulate the pulsewidth waveforms really quickly to get something similar to phase modulation. Like you said earlier, the NES does allow for small samples with a low bitrate so you can just upload a bunch of samples and make the NES play them. It would be interesting to figure out if you could make the NES hardware do things like Fast-Fourier Transforms so you could do vocoder effects. I do know that some Famicom games allowed for additional sound hardware within a game's ROM to allow for things like FM synthesis and audio effects. This is the case for the Japanese release of Castlevania III ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-h2JWRJZwvJo.html. I think the disk system allowed for extra sound capabilities as well like with The Legend of Zelda: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-tVumJ-z1F9E.html. I don't know if the American NES allows for additional sound hardware like that, but it might be worth looking into! Anyway, great content as always! Edit: As I was writing this, I was listening to the flute example from the NES version of The Legend of Zelda, which is clearly doing a vibrato effect. If that's being controlled by one of the other waveforms (or an LFO I had no idea existed on the NES), then you should absolutely be able to to FM synthesis on an NES.
I wrote a program in Java a while ago that converts any picture into a ZX Spectrum picture. The ZX Spectrum was a bit more restrained, as the NES but it had the same concept, producing monochrome and colour clashy graphics. I used the same techniques as you did pretty well to render the picture, lots of fun to write but it was a devil to debug. I thought I was doing alright, you know, gave myself a pat on the back. Great way to spend a weekend.... then I watched this and wow, yeah... got some work to do. Good one man!
I love the lengthy tech videos. I always want to know how it all came together. This may not be your largest audience but I think it serves two purposes for a reasonable cost: 1. You get to rehash your ideas and further solidify your knowledge. 2. We get to see how it all works and follow along with you. I liked the rant format of the video and it saves you time editing so even if these aren't as popular its worth it!
This has been a really interesting watch. I should pick up that "write down good ideas" thing. It sounds like a really good way to figure out new projects to do.
I was wondering if this would be possible a couple years back but I didnt had a knowlage to do it and now here I am. I though it would look better but its more than I though it would be capable of. Great job man
Fun thing about 3.3V CMOS and 5V TTL is that they *are* directly compatible, usually both ways (e.g. 74ALS series outputs 3V as "1", for others I'd use a small series resistor, say 33-100Ω). Yes, you can directly drive any TTL chip using 3.3V CMOS signal. If you need to convert 3.3V CMOS to 5V CMOS, you could use 74HCT chip. To do it very fast you could go with 74ACT / 74ABT series. Tried it, works, drives things very strong too (and adds ringing to long wires).
I like to think that your concept of reverse emulating the nintendo in this way reminds me of what is actually done with the superFX chip in the super nintendo. You're adding supplemental processing to the current system.
Nice video for students or classrooms. Admire your work and watched all the 44 minutes of the video, and I'm just an a enthusiast. First time I've seen a board customization. Didn't know it was "that easy" to do a custom board 🙂🙂