Hello, NES! - "Hello, World!" on a Nintendo? A little easier?

  Рет қаралды 10,528

The Retro Desk

The Retro Desk

Күн бұрын

Another look at how to do a "Hello, World!" program on a 6502 game console, in this case the Nintendo Entertainment System or FamiCom.
The code is available on GitHub: github.com/Sli...

Пікірлер: 36
@_polpon
@_polpon 2 жыл бұрын
Nice video! I made a map for Metroid on the NES using Game Genie, I used sprites because it was much easier to place the tiles where I wanted them and without corrupting the graphics already on screen (also, since I used Game Genie I had limited space). Very interesting to see a simple Hello World program running on the NES and the code behind it :)
@HenkZw
@HenkZw 3 жыл бұрын
Thank you for this video. I also watched and liked your SNES demonstration. I'm trying to teach myself NES programming, and I tried to follow your demonstration. I learned to program 8051, but NES with its video capabilities is quite a different beast. I hope you'll do more NES stuff, but I see that X16 is a more popular topic now.
@slithymatt
@slithymatt 3 жыл бұрын
I do have plans for a NES homebrew project. Stay tuned!
@thehollowknerd3858
@thehollowknerd3858 Жыл бұрын
Give this man more subscribers
@helloww_
@helloww_ 3 жыл бұрын
thank you. i am a pre-beginner trying to wrap my head around this. i will admit i still dont understand it all but im getting an idea and every bit helps :)
@ShampooCell
@ShampooCell 3 жыл бұрын
Just discovered your channel, but I'm really enjoying your content! I've been teaching myself 6502 development for a few years, and every time I find someone else who knows more than I do it's helpful.
@HelloKittyFanMan.
@HelloKittyFanMan. 3 жыл бұрын
Thanks for these very interesting videos! It's so satisfying to see someone out there who can experiment with the "What if you tried this?" or "What if you wanted to do that?" questions that may be floating around as oddball curiosities in our heads! Or even sometimes people create those curiosities and then solve them at the same time! I've had curiosities like this before, but this is even one that you sort of created for me and then solved right at the same time, and is very interesting and cool! I've seen other videos like that too, from Action Lab, etc. My internal reaction would be something like, "Oh, I hadn't even thought to be curious about that, but he does make a great point, and now I AM curious about it, and he's about to tell me the answer!" Haha!
@cmyk8964
@cmyk8964 3 жыл бұрын
Ah yes, the Printed Circuit Board board and the Non-Maskable Interrupt interrupt. ;)
@CallousCoder
@CallousCoder 3 жыл бұрын
Another great video Matt. I am actually looking into making a light gun game (on LCD) and this is a primer for me on the NES PPU. If I know how to get a sprite and background on the screen, I'm golden :D
@kingbrettpro
@kingbrettpro 2 ай бұрын
I want to make a version of Hello, World on the NES where the text flashes like the ? Blocks in Super Mario Bros do. I've always wanted to make my own games, especially since Animal Crossing for the Gamecube has an unused feature that allows you to play almost any NES Game you want using the NES Furniture item. The feature was discovered by James Chambers.
@slithymatt
@slithymatt 2 ай бұрын
@kingbrettpro the easiest way to do that would be through palette cycling, which is how the ? Blocks work. You would just need a counter that you increment each frame interrupt, then change the palette based on the counter value. You'd just have to choose which two bits in the counter to use to determine the flash frequency.
@michaellosh1851
@michaellosh1851 4 жыл бұрын
Good job! At first, the separate memory spaces for the main CPU and the PPU can seem confusing. You explained it verbally, but it might have helped to have a diagram that shows how the control registers visible to & usable by the CPU define a moving "window" into the PPU-dedicated video RAM. Future video ideas: Custom Character set version of Hello World (different style font, or build bigger letters from sub-parts defined in custom character cells) - on VIC-20? Bitmap graphic version that displays a fancy, multicolor "Hello World" image.- could be on many platforms like C64, Apple II, X16, Atari 800 Animated sprites that initially obscure a background "Hello World" but then move to uncover it - C64 or X16
@slithymatt
@slithymatt 4 жыл бұрын
Thanks for your suggestions! I did have to cut off the PPU discussion at some point, and I could have gone on for days on the architecture! Mainly I just wanted to explain it enough to have the code make sense. If that wasn't accomplished, I'll try doing it differently next time.
@Rich-can-do
@Rich-can-do 7 ай бұрын
Ty I made a tiny nes rom. Ty for sharing
@Chris-hi2hn
@Chris-hi2hn 2 ай бұрын
The way the nes cpu and ppu talk to each other using a memory address on the cpu bus that deserializes bytes into 16 bit memory addresses on the ppu bus. Is that what's called a translation look aside buffer, or maybe 🤔 a memory management unit?
@ecernosoft3096
@ecernosoft3096 2 жыл бұрын
It actually started at 32K. You can have 40K (32K prg + 8K gfx) with stock system.
@thisisreallyme3130
@thisisreallyme3130 2 жыл бұрын
Thanks! Would you entertain the idea of a condensed version that targets C in CC65? Or outline why it isn’t possible? (I know printf would consume all 2K, but could C work, if it pushes bytes to the display? )
@slithymatt
@slithymatt 2 жыл бұрын
It could definitely work, but I wouldn't advise it. At that point, you are trying to twist C into being a macro assembler. C without clib is a bit painful!
@TheEvilSoft
@TheEvilSoft 2 жыл бұрын
At one point in the start of this vid, you mentioned that cc65 come with an example chr set. I have been looking for it and cannot seem to find it. Is there a package I am missing on linux? I am on arch and had to pull it from the (AUR), but could not find any optional packages that went along with it.
@slithymatt
@slithymatt 2 жыл бұрын
Right here: github.com/cc65/cc65/blob/master/libsrc/nes/neschar.s
@TheEvilSoft
@TheEvilSoft 2 жыл бұрын
@@slithymatt Awesome thank you so much!
@draconic5129
@draconic5129 3 жыл бұрын
"the famicom wasn't really a computer" I disagree with that statement, it had a keyboard and tape drive and it also ran basic.
@slithymatt
@slithymatt 3 жыл бұрын
The vast majority of users did not have the BASIC keyboard.
@ezekieloruven
@ezekieloruven 3 жыл бұрын
...but that isn't even the standard by which a "computer" is measured. A computer is any device that is capable of processing a set of instructions and inputs to output some kind of consistent response based on the aforementioned instructions and input, and is usually required to be "Turing Complete." All video game consoles are computers, even the big arcade cabinets and pong systems of yore without a CPU. Maybe today they are not thought of as computers but the first computer, the Babbage Difference Engine, performed all calculations mechanically and couldn't even be programmed. Later analytical engine designs would eventually lead to what began being called "computers" in the 40's, with the ABC, ENIAC, and the Z4. These devices were programmed with punch cards and were nowhere close to a personal computer (especially today), but they ARE computers! I think Matt could probably have used different phrasing here, because these devices are computers, just computers without all the trappings of home personal computers at the time. What he means is clear so it doesn't really matter, but technically they are computers. They lacked a disk to store data on, character processing functionality, and a lot of the memory that usually came with a PC, but in exchange they had much more flexible video and sound capabilities, connected to a standard television, and were more affordable so a developer looking for a platform to target would ideally have a larger customer base.
@slithymatt
@slithymatt 3 жыл бұрын
@@ezekieloruven Yeah, I usually try to say "general purpose computer" to be more accurate, but this was an unscripted video. I would call the FamiCom an embedded computer, as it has a limited user interface for a very specific use case. Meanwhile, platforms like the Atari 400 or the ZX Spectrum are just barely general-purpose computers, and really only useful for gaming -- they just happen to have a keyboard and BASIC built in. I would quibble with calling a Pong cabinet or console a computer, as they are certainly not Turing complete devices. They are electronic video devices, but have nothing resembling a computer architecture.
@mad_circuits
@mad_circuits 3 жыл бұрын
Brilliant. New sub you have... *yoda mode: off*
@HelloKittyFanMan.
@HelloKittyFanMan. 3 жыл бұрын
I bet you did that video even if we haven't seen it. (I just saw it, but still have my point here.)
@tails_the_god
@tails_the_god 3 жыл бұрын
damn.. nintendo systems now have more power beyond anything before yes.. but are so overpriced now.
@HelloKittyFanMan.
@HelloKittyFanMan. 3 жыл бұрын
"PCB board"? Oops, there's no such thing.
@slithymatt
@slithymatt 3 жыл бұрын
I will say "PIN number" and "ATM machine" until my dying day!
@HelloKittyFanMan.
@HelloKittyFanMan. 3 жыл бұрын
Ha, @@slithymatt, you're joking, right? Because why would someone want to develop/maintain an odd habit of putting more effort into somrthing to get less correct results? Please tell me that you're just joking, ha!
@slithymatt
@slithymatt 3 жыл бұрын
@@HelloKittyFanMan. I am... Kinda. Old habits are hard to break, and the effort to do that must also be considered.
@HelloKittyFanMan.
@HelloKittyFanMan. 3 жыл бұрын
@@slithymatt: Thanks for your kind replies! That does give me the question: "How do people start these habits in the first place?"
@slithymatt
@slithymatt 3 жыл бұрын
@@HelloKittyFanMan. That's a good question for a socio-linguist. Definitely not my area of expertise!
Hello, SNES! - "Hello, World!" with a Super Nintendo? Not any easier!
48:34
"Hello, 2600!" Hello World on an Atari? NOT EASY!
30:31
The Retro Desk
Рет қаралды 9 М.
НИКИТА ПОДСТАВИЛ ДЖОНИ 😡
01:00
HOOOTDOGS
Рет қаралды 2,3 МЛН
Ouch.. 🤕⚽️
00:25
Celine Dept
Рет қаралды 12 МЛН
Human vs Jet Engine
00:19
MrBeast
Рет қаралды 74 МЛН
6502 Assembly Language: Getting Started
45:43
TokyoEdtech
Рет қаралды 33 М.
Hello, Agon! -- Hello World in BBC BASIC, eZ80 Assembly and C
55:29
The Retro Desk
Рет қаралды 10 М.
NES Architecture Explained
18:28
NesHacker
Рет қаралды 287 М.
X16 vs. Agon: 8-Bit Battle Royale
41:21
The Retro Desk
Рет қаралды 29 М.
The History of X11
58:19
RetroBytes
Рет қаралды 263 М.
The Game Boy Advance Is Insanely Powerful Compared to the SNES
24:05
AQUARIUS+ Retrocomputer Unboxing
46:24
The Retro Desk
Рет қаралды 5 М.
Programming the NES - Everything you need to know
28:36
Inkbox
Рет қаралды 58 М.
How Two People Created Gaming’s Most Complex Simulation System
38:54
ThatGuyGlen
Рет қаралды 1,4 МЛН
Coding NES Loops
17:10
NesHacker
Рет қаралды 30 М.