Page 1 of 2

Cartridge bigger than 32Mbits ?

Posted: Tue Feb 13, 2007 9:08 am
by ob1
The 32X Hardware Manual states, in 3.1, ROM Access when using the 32X,
The MEGA Drive has a bank set register (A1 30F1h - A1 30FFh odd numbered addresses) for coping with a cartridge ROM that exceeeds 32Mbits. The RV bit should be set to "1" beforehand when accessing here.
So, does a 32x cartridge be bigger than 32MBits ? Up to how much ? How to access it ?

Posted: Tue Feb 13, 2007 10:26 am
by Fonzie
I saw (by disassembling the SRAM of one 32x game, was NFL maybe?) that they were a second ChipSelect...
If it is confirmed, it could mean that the 32x can access 2*4MB instead of 4MB with mininal hardware added in the cartridge.
The RV bit should be set to "1" beforehand when accessing here.
The RV bit seems only for use when you want to do a DMA from cartridge to VRAM... It halt the 32x and get the mapping back to original state?

Posted: Tue Feb 13, 2007 10:31 am
by ob1

Posted: Thu Feb 15, 2007 7:51 am
by ob1
Sur devster :
yea, any cartridge can be bigger than 32mbits, but only through external bankswitching. a game rom can also allocate itself to $000000-$7FFFFF, but i never seen any carts that do this, nor do i think it'll work on genesis systems released after the model 2.

any read/write to $A13000 - $A130FF pulses the /TIME signal on the cartridge port -> handy for external bankswitching hardware

Posted: Thu Feb 15, 2007 8:30 am
by Stef
ob1 wrote:Sur devster :
yea, any cartridge can be bigger than 32mbits, but only through external bankswitching. a game rom can also allocate itself to $000000-$7FFFFF, but i never seen any carts that do this, nor do i think it'll work on genesis systems released after the model 2.

any read/write to $A13000 - $A130FF pulses the /TIME signal on the cartridge port -> handy for external bankswitching hardware
As far i know only one official game this bankswitch method : Super Street Fighter 2. It access A130F1 to A130FF to reprogram rom banking. I guess it work exactly in the same way for 32X as 32X rom are exactly the same as Genesis rom

Posted: Thu Feb 15, 2007 8:37 am
by ob1
Bart Trzynadlowski made a document on it :
http://www.trzy.org/files/ssf2.txt

Posted: Thu Feb 15, 2007 11:17 pm
by Fonzie
But does setting RV bit temporary reset the megadrive mapping to its original state while the 32x continue to run?
It is why i'm understanding by reading the doc... or i'm misunderstooding?

Posted: Fri Dec 28, 2007 8:04 am
by SONIC3D
Stef wrote:
ob1 wrote:Sur devster :
yea, any cartridge can be bigger than 32mbits, but only through external bankswitching. a game rom can also allocate itself to $000000-$7FFFFF, but i never seen any carts that do this, nor do i think it'll work on genesis systems released after the model 2.

any read/write to $A13000 - $A130FF pulses the /TIME signal on the cartridge port -> handy for external bankswitching hardware
As far i know only one official game this bankswitch method : Super Street Fighter 2. It access A130F1 to A130FF to reprogram rom banking. I guess it work exactly in the same way for 32X as 32X rom are exactly the same as Genesis rom
aother game title using this rom banking feature is Phantasy Star 4.Bank switch ROM/SRAM by writing value at $A130F1.....

Anothor game maybe megaman

Posted: Fri Dec 28, 2007 8:38 am
by HardWareMan
SONIC3D wrote:aother game title using this rom banking feature is Phantasy Star 4.Bank switch ROM/SRAM by writing value at $A130F1....
I have the "Beyond Oasis" (aka "Story of Thor") cartrige, wich do this too.

Posted: Fri Dec 28, 2007 1:23 pm
by TmEE co.(TM)
This SRAM things are standard, all carts that use SRAM work by writing to $A13000 - $A130FF. Bit0 controls if $200000...$3FFFFF is ROM or RAM.
My EEPROM mapper is entirely controlled by reading and writing $A13000 - $A130FF address range. How many mega bits of cart you have is limited by your imagination and the size of your wallet.

Posted: Fri Nov 14, 2008 9:06 pm
by Snake
ob1 wrote:Sur devster :
yea, any cartridge can be bigger than 32mbits, but only through external bankswitching. a game rom can also allocate itself to $000000-$7FFFFF, but i never seen any carts that do this, nor do i think it'll work on genesis systems released after the model 2.

any read/write to $A13000 - $A130FF pulses the /TIME signal on the cartridge port -> handy for external bankswitching hardware
Yup, this is official sega banking hardware. It annoys me slightly that this stuff has become known as "SF2 banking" or "PS4 banking" when its clearly documented (and well enough that it didn't need to be redocumented) in sega manuals as standard hardware.

Also RE accessing $400000-$7fffff - is a bad idea, which is why this banking stuff was created in the first place. It works on some models but not others. If you're wondering why "Beggar Prince" had problems on some systems - this is it. For 32X, I doubt this will work at all.

Posted: Sat Nov 15, 2008 4:32 pm
by TmEE co.(TM)
Using my "alternate" address decoding for ROM (which makes 000000-7FFFFF as ROM area) works in all conditions, with or without 32X and on MD1, MD2, Xeye, Wondermega and Nomad. Only things you will not be able to access when "alternate" addressing is enabled is MCD (as the 400000-7FFFFF is ROM now) and TMSS ROM. BTW, TMSS is bypassed then when you start the system :)

The A130xx area is universal, and calling it bank register is wrong IMO, (though it was used for nothing more than banking)... if you want, you could have 512 bytes of memory in that area with minimal fuzz in the cartridge. !Time is really handy signal

Posted: Sun Nov 16, 2008 4:45 pm
by HardWareMan
TmEE co.(TM) wrote:The A130xx area is universal, and calling it bank register is wrong IMO, (though it was used for nothing more than banking)... if you want, you could have 512 bytes of memory in that area with minimal fuzz in the cartridge. !Time is really handy signal
256 bytes, not 512. Or 128 16-bit words. Also, we have another 256 bytes at A120xx, it is !FDC signal at MegaCD slot.

Posted: Sun Nov 16, 2008 7:50 pm
by Jorge Nuno
Isn't from 0xA13000 thru 0xA130FF? Then it's 256 unique locations, which can directly select 1 of 256 16-bit words (512Bytes).

Wait, the 68K doens't have A0... :( :? so it's only 128 locations...

Posted: Mon Nov 17, 2008 4:58 am
by HardWareMan
Jorge Nuno wrote:Isn't from 0xA13000 thru 0xA130FF? Then it's 256 unique locations, which can directly select 1 of 256 16-bit words (512Bytes).

Wait, the 68K doens't have A0... :( :? so it's only 128 locations...
Exactly. Do not be confused with the x86.