Is there a hotkey for switching between ARM and Thumb in the disassembly window?
I can't find anything related to it in the provided help documentation. The lack of this function drives me nuts because currently I repeatedly switch between game and disassembler until it lands on Thumb code in the process of execution and simply setting breakpoint on the address, where Thumb code is located but the window displays it as ARM, doesn't have any effect.
Also in the past I encountered a problem, where not all instructions were recognized when you attempt to change them. In my case it was LDRHLE, so I was forced to use online converter https://armconverter.com/ which had no issue converting it because obviously there's nothing supernatural about it.
Question about NO$GBA
Forgot to add something. Execution breakpoints become useless if a game loads an overlay to the area where they were set. This basically makes it hard to catch a code execution and forces the user to constantly monitor memory changes in order to update each affected breakpoint if needed. This probably affects every NO$ emulator. Very, very inconvenient...
For ARM and THUMB mode, if you have the source code then you should have debug info with mode info in a .SYM or .ELF file. When rev-engineering a binary, you could create a .SYM file yourself in a text editor.
There's no hotkey to toggle between modes, except you could toggle the "t" thumb flag in the register/flags window (of course that will crash if you resume execution without untoggling the flag first).
And there's the difference between F2-key and F4-key breakpoints, the F2 ones do patch the binary (and work only if thumb/arm state is known), the one-shot F4-key breakpoint compares the PC register (and should work regardless of arm/tumb mode).
LDRHLE, that's because ARM has changed the syntax at some point, it's either LDR{chond}H or LDRH{cond}. The disassembler options support both classic and UAL syntax, but the assembler supports only one syntax, which, yes, I should support both there, too.
Overlays on NDS? I would have thought such things were only used on 8bit computers with less than 64K work RAM. Anyways, a similar and perhaps more common situation is game code and firmware boot code using the same memory for different purposes - I don't know a good solution for that.
There's no hotkey to toggle between modes, except you could toggle the "t" thumb flag in the register/flags window (of course that will crash if you resume execution without untoggling the flag first).
And there's the difference between F2-key and F4-key breakpoints, the F2 ones do patch the binary (and work only if thumb/arm state is known), the one-shot F4-key breakpoint compares the PC register (and should work regardless of arm/tumb mode).
LDRHLE, that's because ARM has changed the syntax at some point, it's either LDR{chond}H or LDRH{cond}. The disassembler options support both classic and UAL syntax, but the assembler supports only one syntax, which, yes, I should support both there, too.
Overlays on NDS? I would have thought such things were only used on 8bit computers with less than 64K work RAM. Anyways, a similar and perhaps more common situation is game code and firmware boot code using the same memory for different purposes - I don't know a good solution for that.
Who is online
Users browsing this forum: No registered users and 1 guest