The NES Homebrew Scene
71–80 of 138 posts
Re: The NES Homebrew Scene
#72Earlier quoted context omitted.
I used to do a lot of dev against the NES. 6502 for the NES was my first language, wrote my own assembler, built games, cartridges, etc. etc. Hell, I even have a PCB, minus the PRG and CHR ROMs, from an old Ice Hockey cartridge on my desk in front of me as I write this. Never had an NES growing up, never played one until I got into NES dev. I was turned onto it by a classmate. We're both too young to have had the NES…
Nostalgia doesn't have to be purely about one's childhood interests, although it frequently is. In your case, your interest still seems a product of nostalgia. I don't really understand why people view interests based on nostalgia as a weakness. Being nostalgic doesn't have to mean that life isn't good or that things were better once upon a time. Like what you like, do what you do, and enjoy what you enjoy without ap…
However, I agree with you, trying to capture past enjoyments and in cases like this, continue to make new memories and fun times, go for it I say!
Re: The NES Homebrew Scene
#73Nowdays, it's impossible to do modern programming without relying on millions of lines of other people's code. It's frameworks and libraries all the way down. On the NES however, every line of code is yours. There's no such thing as libraries, operating systems, or frameworks. They don't exist. It's refreshing. One of the big problems of modern programming is how easy it is to add complexity. As Charles Moore once sa…
I would say that there’s still “other people’s code” that you rely on—that code is just reified into ASICs you drive with control messages over IO ports, rather than being OS system-service daemons you drive with control messages over IPC.
Also keep in mind that, despite the lack of a forced OS or BIOS on the system itself, Nintendo’s SDKs included snippets or code samples (or sometimes complete small libraries as modifiable assembler source), and developers shared others around when they came up with them to solve a particular problem.
(Later on, in SNES/N64/GameCube era, Nintendo effectively handed you a whole library exokernel worth of precompiled, static-linkable libraries for you to use, too. The NES was too small for that, though.)
Re: The NES Homebrew Scene
#74Earlier quoted context omitted.
Not necessarily, there are hundreds of embedded devices that can be programmed just like in the old days. Arduino, ESP286, ESP32, . And since we are in the context of games and Nintendo, something like Arduboy. https://arduboy.com
Even worse than that, people still use legacy devices like 8051 MCUs in modern products. I'm currently working on an assembly codebase for a SiLabs part. Like... Please move to an ARM MCU with a C codebase.
Re: The NES Homebrew Scene
#75Earlier quoted context omitted.
Especially now that every damned language comes with their own custom package manager, with node.js as the posterboy: https://medium.com/@caspervonb/the-internet-is-at-the-mercy-...
The graphic on there is brilliant.
Re: The NES Homebrew Scene
#76Earlier quoted context omitted.
Sometimes I wish we had more constraints because I fear we've all forgotten how to write fast and lean code in favor of semi-fast but very bloated code. I remember back when I first used Windows 95, opening programs was very snappy and I was impressed. I imagined Windows of the future being even snappier, but somehow the opposite has happened. Now every application takes a long time to boot up, check for updates, etc…
It's a dying art because now even the cheapest SoCs are capable of running full Linux with a big stack like Node. The Pi Zero is $5 and capable of all these things. Perhaps the last refuge is battery-powered microcontrollers.
But even then, if they have up to 512 KB, is like having the same tooling as on the Amiga, Atari, PC (MS-DOS) on a needle size CPU.
For younger generations, you can check on YouTube what we managed to do with 512 KB on those systems, even when using higher level languages.
Re: The NES Homebrew Scene
#77I recently started work on an NES project, and wrote the first part of it up: https://www.moria.us/blog/2018/03/nes-development It's a lot of work. I've managed to get data from Tiled into my ROM image, and I'm working on figuring out an architecture for scrolling and displaying a status bar. Implementing scrolling and a status bar sounds simple but is actually a total pain. You only have two screens of tiles to work…
But programming with restrictions like that will make you a better programmer. Nothing brings out creativity better than a limiting environment.
Also, maybe creativity isn't the same as being a good programmer. Creativity may get you out of a bind or into a new area, but I think being a good programmer is founded on many mundane characteristics, such as consistency and ability to conform to others.
Re: The NES Homebrew Scene
#78The existence of phenomena like this and the demoscene made me realize that there are levels of programming skill that I will never be able to reach. Kind of disheartening, but still neat to watch other people do it.
Simple versions of these things are not as insurmountable as you think: just put your foot on the first step :-)
Re: The NES Homebrew Scene
#79Nowdays, it's impossible to do modern programming without relying on millions of lines of other people's code. It's frameworks and libraries all the way down. On the NES however, every line of code is yours. There's no such thing as libraries, operating systems, or frameworks. They don't exist. It's refreshing. One of the big problems of modern programming is how easy it is to add complexity. As Charles Moore once sa…
I once stuck my nose into Game Boy Advance homebrew and was happy to find it can be the same there. Every piece of the hardware is memory mapped. That means, given a reference of the mapped addresses and struct definitions, you can do whatever you want with the machine without any magic, black-box external code.
Re: The NES Homebrew Scene
#80Nowdays, it's impossible to do modern programming without relying on millions of lines of other people's code. It's frameworks and libraries all the way down. On the NES however, every line of code is yours. There's no such thing as libraries, operating systems, or frameworks. They don't exist. It's refreshing. One of the big problems of modern programming is how easy it is to add complexity. As Charles Moore once sa…
Especially now that every damned language comes with their own custom package manager, with node.js as the posterboy: https://medium.com/@caspervonb/the-internet-is-at-the-mercy-...