Cartridge bigger than 32Mbits ?

Ask anything your want about the 32X Mushroom programming.

Moderator: BigEvilCorporation

ob1
Very interested
Posts: 463
Joined: Wed Dec 06, 2006 9:01 am
Location: Aix-en-Provence, France

Cartridge bigger than 32Mbits ?

Post by ob1 » Tue Feb 13, 2007 9:08 am

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 ?

Fonzie
Genny lover
Posts: 323
Joined: Tue Aug 29, 2006 11:17 am
Contact:

Post by Fonzie » Tue Feb 13, 2007 10:26 am

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?

ob1
Very interested
Posts: 463
Joined: Wed Dec 06, 2006 9:01 am
Location: Aix-en-Provence, France

Post by ob1 » Tue Feb 13, 2007 10:31 am


ob1
Very interested
Posts: 463
Joined: Wed Dec 06, 2006 9:01 am
Location: Aix-en-Provence, France

Post by ob1 » Thu Feb 15, 2007 7:51 am

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

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Thu Feb 15, 2007 8:30 am

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

ob1
Very interested
Posts: 463
Joined: Wed Dec 06, 2006 9:01 am
Location: Aix-en-Provence, France

Post by ob1 » Thu Feb 15, 2007 8:37 am

Bart Trzynadlowski made a document on it :
http://www.trzy.org/files/ssf2.txt

Fonzie
Genny lover
Posts: 323
Joined: Tue Aug 29, 2006 11:17 am
Contact:

Post by Fonzie » Thu Feb 15, 2007 11:17 pm

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?

SONIC3D
Newbie
Posts: 6
Joined: Fri Dec 28, 2007 6:05 am
Location: Shanghai

Post by SONIC3D » Fri Dec 28, 2007 8:04 am

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

HardWareMan
Very interested
Posts: 745
Joined: Sat Dec 15, 2007 7:49 am
Location: Kazakhstan, Pavlodar

Post by HardWareMan » Fri Dec 28, 2007 8:38 am

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.

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) » Fri Dec 28, 2007 1:23 pm

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.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

Snake
Very interested
Posts: 206
Joined: Sat Sep 13, 2008 1:01 am

Post by Snake » Fri Nov 14, 2008 9:06 pm

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.

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) » Sat Nov 15, 2008 4:32 pm

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
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

HardWareMan
Very interested
Posts: 745
Joined: Sat Dec 15, 2007 7:49 am
Location: Kazakhstan, Pavlodar

Post by HardWareMan » Sun Nov 16, 2008 4:45 pm

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.

Jorge Nuno
Very interested
Posts: 374
Joined: Mon Jun 11, 2007 3:09 am
Location: Azeitão, PT

Post by Jorge Nuno » Sun Nov 16, 2008 7:50 pm

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...

HardWareMan
Very interested
Posts: 745
Joined: Sat Dec 15, 2007 7:49 am
Location: Kazakhstan, Pavlodar

Post by HardWareMan » Mon Nov 17, 2008 4:58 am

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.

Post Reply