Author
|
Topic: Am I the only one having this problem in no$gba? (Read 425 times)
|
Ryusui
Guest
|
|
« on: September 17, 2007, 03:34:45 am » |
|
"For some weird reason," in the immortal words of Earthbound, no$gba doesn't seem to break on reads and writes that get triggered by a DMA transfer. VBA-SDL-H, on the other hand, does.
I'm taking another look at SF4, and having figured out how to successfully gut the entire print routine, allowing me to replace it as I see fit (which is starting to look more and more like quite a daunting task), I'm presently trying to figure out how the font tiles originally got transferred from RAM to VRAM. And failing. >_>
|
|
|
|
Nightcrawler
Guest
|
|
« Reply #1 on: September 17, 2007, 07:49:28 am » |
|
When in absolute doubt, you can just override it with your own transfer at some point after the game's transfer is done. Sometimes, it's just simpler that way if you really can't figure it out without many headaches such as this one.
|
|
|
|
Ryusui
Guest
|
|
« Reply #2 on: September 17, 2007, 12:32:36 pm » |
|
I am such an airhead. I remember now: SF4 doesn't use DMA, it uses SWI $0C (alias CpuFastSet, alias swiFastCopy). I remember finding that out when I was using VBA-SDL-H.
...So in other words, it's not that no$gba doesn't trap DMA (the jury's still out on that), it's that it doesn't trap the BIOS memory copy functions. Now that I know what to look for, it'll be cake. :3
|
|
|
|
KaioShin
Guest
|
|
« Reply #3 on: September 17, 2007, 12:59:44 pm » |
|
Yes, I stumbled upon that too when I was looking for DQM's menues. Once you know what's going on it's easy though. Just set a breakpoint to the swi call and you have your paramters, telling you where to look for the data.
|
|
|
|
Gemini
Guest
|
|
« Reply #4 on: September 17, 2007, 01:05:14 pm » |
|
Sure about that? O_o I remember I used the write breakpoint for locating a DMA vram/tilemap transfer and it worked fine, or at least it did for Magical Vacation.
|
|
|
|
KaioShin
Guest
|
|
« Reply #5 on: September 17, 2007, 01:13:03 pm » |
|
Breakpoints on DMA transfers work, but not SWI calls (which look like DMA transfers).
|
|
|
|
|