I developed the rom hacking tool cited by FAST6191 above, klo-gba.js, that is a level editor for Klonoa's GBA game.
I described in details on blog posts the process to develop the interface, but I could speak briefly here:
- You don't need to think about the language now! Firstly you should to learn how to create a custom map manually. Only after that you could think about "how to automatize the boring process to customize a map"
- So you could write a very simple proof of concept, with a ugly code and fast to write to understand better the problem, such as the steps necessary to extract the map from ROM, display it to user and save the new version on ROM
- And only after a workable proof of concept you'll understand better the problem and you could start to write the "real" project
So you don't need to think now if you need to use JS, C# or whatever. It's useless. Firstly you need to understand the problem, and to understand it you need to write a proof of concept.
You could write it using any language and you'll could check if it's good enough to write the final project.
A good language to that need to have good GUI libraries, good event handles, good libraries to use the file system and buffer of binary data. And how to check it? Writing a proof of concept.
I used JS to klo-gba.js because I love web app. The user doesn't need to download anything to use klo-gba.js, and it's awesome. But JS sucks, because it has a bad design. Currently there are better languages to replace JS, such as TS, and I should have used it instead of JS.