bazz wrote:
skarstoker wrote:
reading a bit I found this:
Code:
LoRom cartridges can potentially map up to 64 Mbit (whereas the low 32nd Mbit is unmapped).
this information is correct?
Yes I confirmed this with NoCa$h. No commercial cartridges we know that do this, however it is possible. Most games just mirror 00-7f and 80-ff. this means mappers don't acknowledge A23. It's the same reason why LoRom mirrors itself (I explain all this in more detail in the doc.), that the upper banks mirror the lower ones. It is the ignoring of an Address line. Ignores A15 causes the LoRom mirrors. Lorom and Hirom both ignore A23 causing the 00-7f mirrors to 80-ff.
First: you repeatedly have said banks $00-7f.
This is misleading. It is banks $00-
7d (because as you already know, banks $7e-7f are used by 128KB RAM). Maybe at the hardware level the mask ROM gets assigned to $00-7f and then you "lose the last 128KBytes" because (again at the hardware level) the 128KB RAM region the SNES uses "stomps over" it. But I wish you would stop saying $00-7f when that's simply misleading.
This is further supported by the fact that the actual developer docs state clearly that banks $80-fd --
not banks $80-ff (read closely!) -- are mirrored from $00-7d. Meaning: you lose the last two banks, so effectively you can't even get a full 32mbit in mode 20 (you can get at most 32mbit - 64KB)
bazz wrote:
You can potentially make a cartridge that mapped new data to those upper bank areas. and you lose a 1 Mbit by System RAM 7e-7f. thus I concluded 63 Mbit.
Your math is wrong:
* Banks $00-7d = total of 126 ($7e) banks
* Address ranges $0000-7fff are reserved (unmapped to ROM), leaving you with 32KBytes of addressing space for ROM per bank
* 126 * 32,768 = 4,128,768 bytes
* 4,128,768 bytes = just shy of 32mbit (32mbit is actually 4,194,304)
If you want to design a cart that
does not allocate address ranges $0000-7fff in banks $80-fd for NES registers/etc., then yes, you could get "almost" 64mbit (specifically 64mbit minus 128KB) within that region. However, that would not be mode 20 -- that would be a new/custom cartridge. And if you were, additionally, able to overcome the "last 2 banks" issue (i.e. banks $fe-ff) then you could get a full 64mbit.
I really do not understand why everyone on this forum is suddenly, out of the complete and total blue,
all at once (multiple people!!), jacking off over the memory map. People are acting like this is a spawn of satan or some super insanely complex thing to understand -- it isn't. Maybe at the hardware level (address lines, the 128KB of RAM at banks $7e-7f, etc.) it's complex, but when visualised by Nintendo in their own documentation it's pretty damn clear.
They just didn't do a very good job of leaving full linear addressing space available. I've already stated
in another post how I would have designed things: in that diagram you'd end up with 251 banks available, all 64KBytes, linearly, for ROM. That's 16,449,536 bytes, or roughly 125.5mbit.
But whoop de doo.
WHO CARES, IT'S NOT LIKE ANY ONE OF YOU ARE MAKING GAMES THAT ARE GOING TO TRULY NEED (read: not waste) ALL THAT SPACE. So I wish people would stop jacking off. :P
Edit: lots of edits, actually.