Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
PokéCommunity supports the Stop Killing Games movement. If you're a resident of the UK or EU, consider signing one of the petitions to stop publishers from destroying games. Click here for more information!
Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
I am a programmer for C/C++ and I never faced the assembly language. How did you learn it? With a tutorial or an instruction reference? Thanks in advance!
I am a programmer for C/C++ and I never faced the assembly language. How did you learn it? With a tutorial or an instruction reference? Thanks in advance!
It was quite a few years ago now when I was still interested in Sonic games rather than Pokémon hacking, but as far as I can tell my learning ASM was essentially inhaling some of the reference materials from this old thread. I think it helped that the 68000 is a very friendly assembly language - ARM7 took a little getting used to, and stuff like the Z80 or Intel - basically anything with dedicated accumulator, index etc. registers rather than general-purpose ones - still scares me.
I started out hacking by studying how hex editing works and soon became familiar with hacking all kinds of data.
Once I understood more about pointers, I realized every data I'm editing is pointed to from somewhere and by searching for those pointers, I noticed "something different" there. I knew this was some general code making the game do what it does and I could edit a bit of it (mostly asm instruction parameters) with a hex editor.
Later on, a person called Sawakita linked me a web page explaining the basics behind assembly of GB CPU and studying that, I figured how to write simple routines and after gaining more experience, figured out how to debug code and remake some of the original in-game routines and not just write new ones from scratch.
(Before all this, I had literally no programming experience although I have now. It all came naturally but it sure did take some time to learn as well.)