Originally posted by Copy
Currently SMW Hacking is only possible in Assembly. But for people who dosn't want to read complex CPU Instructions why not adding C support to making Patches?. The output of a C programm is just assembly code.
What's your thoughts about it?
Should Patch Development support C or stay at assembly
Something like this seems to come up periodically. A few points:
* There seems to be a bit of a misunderstanding of the overall process. The original game was written in assembly language; in order to modify that code, even to just call a custom routine at a specific spot, absolutely requires working in assembly language.
* Even for separate code, you'd still need a C compiler for the 65C816, which is notoriously hard to do. They exist, but they produce horribly inefficient machine code. Furthermore, you'd still need some sort of facility for dealing with memory directly, negating a lot of the benefit.
* 65C816 Assembly language is much simpler than C. The difficulty in working with assembly language tends to come from its simplicity and lack of features for high-level programming constructs, not from complexity. Also, much of the difficulty of hacking a game like SMW comes not from the assembly language itself, but from having to work within the existing environment of SMW, which is quite complex, and wasn't made for this.
* I've seen a project for LTTP which is actually a port of the game to C, and people have brought this up as well. While you could do something like this for SMW, it wouldn't be the same game anymore. You'd lose some of the bugs that people have come to know and rely on. And if you want to hack this ported version, you lose the entire toolchain that's grown up around it over the last 20+ years, including Lunar Magic.
All together, there doesn't really seem to be much that could be fruitful in this direction.