calima wrote:
I believe you, but why is the past important? Most Genesis games were also made in asm, yet today no dev valuing their sanity does so.
68K is a different architecture altogether, and can actually cater to C's designs/needs easier than the 65xxx series.
Why the past is important... wow, I don't even know where to start, so I'll just brain dump.
We're talking about consoles that were invented in the late 80s/early 90s. These systems were not developed "with C in mind" -- rephrased better, they are not personal computers. They are not intended for multiple tasks (ex. a general home computer at the time was multi-purpose, handling things like spreadsheets, word processing, games, and later on, networking), they more appropriately classify as embedded devices. They were designed with use of assembly in mind -- *especially* the SNES/SFC (all official documentation references assembly methodologies, including providing code and tools for that; NES/Famicom I don't think even included an opcode listing, just that it was a 6502 variant, i.e. you want to work on the console, you write assembly). C compilers were not something that was a focus in either case. I cannot speak on behalf of Genesis/Megadrive because it's a console I haven't spent any time developing on, but I can tell you
Toshi Morita -- who was the lead programmer of Zombie's Ate My Neighbours -- did all his work in assembly (I spent an afternoon/evening with him and some others who ended up at Tiburon back in 1993).
Secondly, the initial post talks about making a book about obscure NES games, including homebrew titles (and probably some of the more successful/well-rounded translation/romhacks). Are these games and homebrew titles being done on, say, a PC? Nope. What about an Amiga 4000? Nope. A home video game console of the mid-to-late 80s.
I see this constantly around here now (and in tech in general, but it's prolific as hell around the NES and SNES): people trying to instil crybaby beliefs about PLs into the console. "Wah, I don't like assembly language, but I really want to make something on this archaic system that I'm sporting a major hard on for. I'm familiar with Javascript and Ruby. Why can't the NES run these? This is stupid!" Yes I'm overdramatising (
or am I?), but it's a bizarre mindset: wanting to develop software for a 30-year-old system (NES/FC; for SNES/SFC, make that ~24 years), but having present-day ideologies and beliefs and habits (esp. about PLs) somehow take precedence. I'm not talking down anyone on here, honest, but many of us who have been doing 65xxx assembly for a long time know that the architecture does not "mesh well" with C. That said: is it possible to use C on the NES? Yes, and either in this thread or another (I forget), there have been several titles done that way. I think that's awesome.
But doing so still requires that you know and use assembly at some point, especially for debugging/troubleshooting. In other words, you cannot avoid the reality of needing to know and use assembly on these platforms.
The reason I asked about the SNES/SFC because the initial post mentioned making SNES books along the same lines as what was proposed for said NES books, with with this line in focus:
Interviews with Homebrew developers, musicians, artists, etc. -- and the thing is, those of us who were around during the apex of real homebrew development on the SNES/SFC (the early 90s -- then went on hiatus until the late 90s when emulators started coming to light, prompting the creation of the romhacking scenes more-so than actual homebrew) and the start of North American homebrew for the NES/FC (again: starting in late 90s due to the creation of emulators; I don't know about other countries, incl. Japan)... we're still alive, you know. It's just that nobody has, from what I can discern, bothered to track us down and interview us about how things were then. (I will point out though that different platforms/consoles had very different scenes going on. It would be impossible to do a book on the evolution of emulation because the scenes were all separate/unique: NES vs. SNES vs. Genesis vs. PCE vs. GameBoy vs. PSX etc. -- folks from each scene would have to be tracked down).
So, when you ask a question like "why is the past important?", I cannot help but shake my head. No offense, but it is questions like this which have driven me out of tech (as a career) and greatly diminished my interest in anything technology-related as a hobby. But don't worry, not knowing how something works is the current "in" trend -- but eventually
someone does need us.