(Can do this same thing with Cheat Engine so ignore his MHS program you don't need to use that)
The stuff under the line is only if you have a lot of time and you are really dedicated to learning this as you will feel like they are not directly related to what you want to do, yet you will still get a lot out of it. You will also notice how similar GameShark/Action Replay codes are to this whole thing. Nothing has really changed since then, it's all the same idea.
Obviously methods will be different and nothing will be the EXACT same as the coding is much different between PSOBB and an SNES game
------------------------------------------------------------------
(random stuff and this page also has things for game consoles but a lot of the knowledge and theory can be applied to eerything)
(related to GBA hacking obviously and probably will think it's unnecessary and confusing but it won't be eventually)
(same as above)
(huge amount of things related to making codes etc.)
(explains how a lot of different codes are made)
(same as above)
(insanely long and old popular document)
(famous tutorial series related to cracking/reverse engineering)
This is a lot so you don't have to read or care about it if you don't want to, I just wanted to share. Personally I have read / done everything from these links a long time ago and also everything that these links link to and enjoyed all of it.
Definitely not for everyone
EDIT: It is also important to know about the Windows API. Here is a list of some common functions that I think you should know about.
I'll give one basic example on why this is important. Let's say when a CRC error is detected you get a message box saying error and the game is then terminated. Simply set a breakpoint on the "MessageBox" function and trace back to find the CRC check.. (note: all programs will not use the same functions, but they will be similar. for example, PSO2 (which I have been messing around with lately) calls MessageBoxExW instead). You can go to any of these functions in CE just by clicking "Go to address" in memory view and typing their names in. There is much more to take advantage of than this, I only gave one example for one function.
Oh also if you want to commit suicide you can read all 2000+ pages of these Intel manuals:
(decent and somewhat interesting imo)
(reference of every instruction... ~1500 pages. shouldn't really read all of this through like a book. it's unnecessary to know and master all of them and quite unrealistic)
EDIT 2: I am aware that this is not the most organized post ever and I apologize. too lazy