SMiTH wrote:forgive me for the noob questions.
hey it's cool. I was a total beginner at this just a few months ago, started in june. happy to answer your questions about asm hacking.
SMiTH wrote:are you able to view asm in real time? nope.
if you play the game with a debugger, then yes, you can view the "asm" in real time. you can view the opcodes of the game. for example 00 09 is the opcode for 'NOP' which means do nothing and go to the next opcode. so when you play the game in MAME with the debugger open, it will show <Program Counter address> NOP 00 09 for a line that has a NOP. but when you say "real time", the game is making hundreds of thousands or millions of calculations every second, so you will never be able to just observe with a naked eye any instruction, it will all move in a blur. so you need to learn to use WATCHPOINTS and BREAKPOINTS in order to stop the execution of the program based on your criteria.
https://docs.mamedev.org/debugger/watchpoint.html
https://docs.mamedev.org/debugger/breakpoint.html
SMiTH wrote:now that i think about it, this makes no sense oh well.
like using a memory editor? but instead of viewing hex code, you view asm? is this what a debugger does? <-- maybe?
so when you use a controller and press a button, you can find what values change and where they are located etc?
idk ??????
hex code is a mix of data and opcodes. debugger lets you view the state of the PC and registers and (hopefully) use watchpoints and breakpoints to analyze the operation of the program. with regards to the controller and pressing a button, yes. all dc/naomi uses an input system called maple, maple writes to a specific address every frame. the game program will then read from that address. every single dc/naomi game will use this same system. so if you google to find that maple address and then go into mame debugger and type "watchpoint <that address>,8,rw" the operation of MAME will break any time any PC either reads or writes to anywhere between that address and 8 bytes ahead.
SMiTH wrote:do you find hex codes in memory then you are able to find that specific hex in asm as well? (this is it, right?)
again idk, asm is wizardry to me sry lol
if you search for a value in RAM, that value will not show up in ROM. the game files are ROM, read only memory, they never change. the game's temporary memory which gets lost when you turn the machine off is RAM. so you can search for, for example, the timer in a fighting game. search for value "99". there will be a lot of hits. then let the timer decrement to 98, and search again within the prior results. do it a couple times and you'll find the memory address for the game. then you can modify it to change the timer to 99 so you never run out of time. but what I'm describing is changing RAM, it's temporary. an example of changing ROM would be to find the asm instruction that decrements the timer by 1 every second and then change that instruction to 00 09 (NOP) so it never decrements and stays at 99 permanently. this would be an example of a ROM change.