+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  SNES vRAM/RAM Question
Pages: [1]
Author Topic: SNES vRAM/RAM Question  (Read 2 times)
warmech
Guest
« on: April 16, 2008, 12:50:51 pm »

Being new to some of the finer points of delving into the SNES' RAM and vRAM, I have a question which may or may not be a stupid one. I'm working, from the ground up in terms of attaining the skill to do so, on translating Marvelous: Mouhitotsu no Takarajima. I've been using vSNES to wade through the vRAM and have found the graphics for various items of text I wish to alter; my problem here is that though I know where the decompressed data in vRAM is, I don't know where it is in RAM. I ask about this because I noticed this post noting how to find the end of the decompression routine by setting break points for the proper RAM addresses. I almost thought I had it here, but alas, also not stated. I'm using Geiger's SNES9x debugger, for reference. Might anyone know what I need to do to find such information?
MathOnNapkins
Guest
« Reply #1 on: April 16, 2008, 01:21:04 pm »

One approach I use in finding out that kind of information is the dma tracing ability. It's possible that the data could be being written to VRAM with manual writes, but it's far more common to see a DMA transfer as the final copying method. Assuming you're right and it's compressed graphics, it will be decompressed from the ROM into RAM at some location you don't know yet. But if you turn on DMA tracing right around the time you think the graphics end up in VRAM, it has enough info for you to figure out the RAM (WRAM) location where the transfer originated from. The real trick is getting to a point where the graphics are definitely not in VRAM yet. To do this you usually set up two savestates and view them in Vsnes. If you can verify that in the earlier savestate the graphics in question are not in VRAM, and they are in the later one, you simply can load the earlier savestate, turn on DMA tracing, and play until the point where the second savestate occurs. Then you sort through your the (probably large) list of DMA transfers to ascertain which one had the payload you're interested in.
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC