Trouble dumping Tales of Phantasia (SNES)

General No-Intro related discussions.
Post Reply
root
Site Admin
Posts: 738
Joined: 19 May 2008 09:26

Trouble dumping Tales of Phantasia (SNES)

Post by root »

Rif: 1875 Trouble dumping Tales of Phantasia (SNES) \ Yakushi~Kabuto on 28th November 2007, 06:38 wrote:

The ROM image I dumped with my super flasher is mirrored every h0x8000 bytes section. It happened before for a couple of dumps (such as SF bios), but I could rearrange data manually. But with this one, the rom is 48 Mib large (32M + 16M chips), so I need to dump at least 96Mib of data to extract the entire dump... And even uCON64 seems not able to do that.

Anyone can point me to some directions?
And btw, anyone know why some carts produce such mirrored dumps with super flasher? Is it a copy protection or something?

===============================================

Re: Trouble dumping Tales of Phantasia (SNES) \ d4s on 17th January 2008, 16:31 wrote:

allow me to revive an old thread and go on a slight rant here.
the following is a bit of a generalization and may already be known to most of you.
regardless, the reason why mirroring exists in the first place is the way parallel memory devices work.
say you have a fictional rom chip with a size of 256 bytes organized in byte-mode.
that means there are 256 different adresses you can read data from.
to tell the chip which adress you want to read, you have to transmit this adress, which is done via individual adress lines on parallel memory chips present as pins on the chip package.
since we`re dealing with digital electronics, each of this line can only have two states: 1 or 0, which is equivalent to on or off.
therefore, you could say the adress is sent as a binary number to the memory chip.
the highest/last adress on that chip is 255(if you count 0 as a number), which is $ff in hexadecimal and 11111111 in binary.
therefore, the chip needs 8 adress lines(11111111) for you to be able to adress all memory locations on it.

now here`s where the mirroring comes from:
imagine you have a program that tries to access adress $100, 1 more than the capacity of our chip. (100000000 in binary)
when writing that adress to the adress bus, it takes up 9 adress lines, but because our memory chip only has 8 adress lines, it doesn`t "see" the whole adress.
100000000 <-this is what the adress looks like
00000000 <-and this is what the chip sees

that`s why although we requested adress $100, the chip actually responds with adress $0, which is why it is theoretically mirrored indefinitely into the whole adress range.
practically, there are a variety of other things that play a role such as memory mappers and stuff like that.


to come back to your issues with the super flash, the reason for tales of phantasia not being accessible in a straight fashion is it`s memory map.
unlike normal hirom games, tales of phantasia maps 32mbit into the $c00000 to $ffffff area and the remaining 16mbit into $400000-$600000.
reading out just these areas will give you a straight dump.

the reason why the gd7 rom appears to be mirrored several times is because
it is actually a very small rom, similar to the mirroring example i gave before.

these issues are no protection, it`s just how their mapping works.
on the other hand, there are snes games that are protected (mostly pirate games).
these usually use special mappers or circuitry that either prevents you from reading out the whole rom or prevents the rom from running if these circuits aren`t present.
the latter can be cracked(i did this with the unlicensed pokemon/picachu game for snes) while the former needs a redump using advanced knowledge of the mappers working.
Post Reply