When I was a kid in the 80s and early 90s I was fascinated with the process of making video games for my favorite console. But back then I didn’t really know how to research that topic (and much of it - unbeknownst to me - was behind NDA anyway).
One day I asked my friend if he knew how these games were programmed. He confidently claimed that they were made in a top secret tool called NPL - The Nintendo Programming Language.
Of course that kid didn’t know anything more about it than I did so this was just a wild rumor. Now I know that “NPL” was just 6502 assembly with the correct system documentation and some dev hardware, but kid me didn’t know that. Instead, he spent a lot of time dreaming up what this super secret language looked like.
When I checked out NESFab today I instantly saw something that looked very much like what 7 - 9 year old me would have imagined. So thanks for that.
I often wonder what sort of tools like this must have existed in-house at the many small game development studios of the era.
This one reminds me of another modern compiler for the Intellivision console called INTYBasic, which has an extremely impressive suite of games and NES remakes implemented in it:
Nice to see GB Studio get a mention, I’m still working away at it after many years! Definitely going to be checking out NESFab to see what I can learn from it.
There’s also been a fork recently called BB Studio adapting it to make NES games:
Oh wow, it’s exciting to see the same idea catching on for other platforms. And thank you so much for sharing your hard work - I’m loving the huge new influx of GB(C) games thanks to the community that sprung up around your project!
To clarify, the _compiler_ is GPL (as is GCC, GPL doesn't mean that artefacts created with it share that license), but the standard library is the boost software license (which is not a copyleft library) so any machine code artefacts can remain private and doesn't require attribution.
[0] The NESFab standard library (lib/), examples (examples/), and documentation (doc/) are licensed under the Boost Software License 1.0 (See lib/LICENSE_1_0.txt).
I just finished Gustavo Pezzi's NES course last year (https://pikuma.com/courses/nes-game-programming-tutorial). It was excellent and it gave me some great insights to how things work inside the NES using 6502. This looks a lot simpler. I'll take a look. :)
One day I asked my friend if he knew how these games were programmed. He confidently claimed that they were made in a top secret tool called NPL - The Nintendo Programming Language.
Of course that kid didn’t know anything more about it than I did so this was just a wild rumor. Now I know that “NPL” was just 6502 assembly with the correct system documentation and some dev hardware, but kid me didn’t know that. Instead, he spent a lot of time dreaming up what this super secret language looked like.
When I checked out NESFab today I instantly saw something that looked very much like what 7 - 9 year old me would have imagined. So thanks for that.