Some questions about cartridges...
Moderator: BigEvilCorporation
Some questions about cartridges...
1) How mirroring works on 3 Megabytes carts?
The 4rt megabyte is a mirror of the 1st or is a mirror of the 3rd mega? I think it has to be the third... but I don't know for sure.
2) A 4-megabyte cartridge memory can save games (SRAM, flash or whatever)? How?
I hope this time are more specific questions.
Greetings!
The 4rt megabyte is a mirror of the 1st or is a mirror of the 3rd mega? I think it has to be the third... but I don't know for sure.
2) A 4-megabyte cartridge memory can save games (SRAM, flash or whatever)? How?
I hope this time are more specific questions.
Greetings!
-
- Very interested
- Posts: 616
- Joined: Thu Nov 30, 2006 6:30 am
Re: Some questions about cartridges...
It depends on how the cart is set up, but I would guess that nothing would be mapped in the range from 3MB to 4MB. The simplest way to make such a cart would use either one 2MB (1MBx16) and one 1MB(512Kx16) chip or 3 1MB(512Kx16) chips and a 2 to 4 line decoder to translate the appropriate address lines into chip select signals. You could OR the extra output from the decoder with one of the others so that you mirror a portion of the ROM in the last MB, but it would seem simpler to just leave it disconnected.eteream wrote:1) How mirroring works on 3 Megabytes carts?
The 4rt megabyte is a mirror of the 1st or is a mirror of the 3rd mega? I think it has to be the third... but I don't know for sure.
Not sure how it works internally in a mask ROM, but I imagine the setup is similar.
The !TIME signal on the cart slot allows you to map something in the $A13XXX address range (or maybe just $A130XX, not sure). You can use this to either map a small bit of RAM, bankswitch hardware or a serial EEPROM.eteream wrote:2) A 4-megabyte cartridge memory can save games (SRAM, flash or whatever)? How?
-
- Very interested
- Posts: 2440
- Joined: Tue Dec 05, 2006 1:37 pm
- Location: Estonia, Rapla City
- Contact:
3 MByte carts got 2MB + 1MB ROM, and IIRC a simple 74HC00 selector, so top 2MB is full of that 1MB (2MB ROM + 1MB ROM + 1MB ROM).
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
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
-
- Very interested
- Posts: 745
- Joined: Sat Dec 15, 2007 7:49 am
- Location: Kazakhstan, Pavlodar
Here you are some cart schemes:
http://www.fileden.com/files/2008/10/17/2146441/01.gif
http://www.fileden.com/files/2008/10/17/2146441/02.gif
http://www.fileden.com/files/2008/10/17/2146441/03.gif
http://www.fileden.com/files/2008/10/17/2146441/04.gif
http://www.fileden.com/files/2008/10/17/2146441/05.gif
http://www.fileden.com/files/2008/10/17/2146441/06.gif
http://www.fileden.com/files/2008/10/17/2146441/07.gif
http://www.fileden.com/files/2008/10/17/2146441/01.gif
http://www.fileden.com/files/2008/10/17/2146441/02.gif
http://www.fileden.com/files/2008/10/17/2146441/03.gif
http://www.fileden.com/files/2008/10/17/2146441/04.gif
http://www.fileden.com/files/2008/10/17/2146441/05.gif
http://www.fileden.com/files/2008/10/17/2146441/06.gif
http://www.fileden.com/files/2008/10/17/2146441/07.gif
Ok, thanks!
Just to clarify about mirror question:
This is the cheapest solution, so this must go.
Note: I don't care if there are 3 roms of 1Mb each or 1x2 + 1x1 Mb each, I only want to write 3Mb in a 4Mb EPROM.
Just to clarify about mirror question:
This is the cheapest solution, so this must go.
Note: I don't care if there are 3 roms of 1Mb each or 1x2 + 1x1 Mb each, I only want to write 3Mb in a 4Mb EPROM.
Last edited by eteream on Wed Feb 03, 2010 11:43 pm, edited 1 time in total.
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
Just to be clear, roms don't NEED to mirror at all on the Genesis. There's no requirement for it at all. A rom only needs to present an exception table at 0, and the word "SEGA" at 0x100 for TMSS. Anything else is up to the developer - if your rom doesn't mirror, don't try to access the mirror area. It's that simple.
-
- Very interested
- Posts: 2440
- Joined: Tue Dec 05, 2006 1:37 pm
- Location: Estonia, Rapla City
- Contact:
in the case of writing 3MB into a 4MB EPROM you'll have $FF(if you don't program those bytes) in the last 1Mbyte, no mirroring goes on... 1 wasted Mbyte...eteream wrote:Note: I don't care if there are 3 roms of 1Mb each or 1x2 + 1x1 Mb each, I only want to write 3Mb in a 4Mb EPROM.
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
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
Chilly Willy, as long as I know mirroring in not a feature, is a side effect.
As the EPROMs 4 megs are cheaper than the smaller capacity...
Yes, what I will do is to double the last megabyte to simulate the mirrored one.TmEE co.(TM) wrote: in the case of writing 3MB into a 4MB EPROM you'll have $FF(if you don't program those bytes) in the last 1Mbyte, no mirroring goes on... 1 wasted Mbyte...
As the EPROMs 4 megs are cheaper than the smaller capacity...
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
You still don't get it - just write 3MB to the 4MB EPROM and SCREW the final MB!eteream wrote:Chilly Willy, as long as I know mirroring in not a feature, is a side effect.
Yes, what I will do is to double the last megabyte to simulate the mirrored one.TmEE co.(TM) wrote: in the case of writing 3MB into a 4MB EPROM you'll have $FF(if you don't program those bytes) in the last 1Mbyte, no mirroring goes on... 1 wasted Mbyte...
As the EPROMs 4 megs are cheaper than the smaller capacity...
You DON'T have to write it. Writing the final MB will take extra time and doesn't gain you anything more than simulated mirroring, which isn't needed.
Chilly, I understand what you say, as the program does not access the mirrored memory, is not necessary to take this into account.
BUT:
Do you fully know the code? I know nothing.
You can be 100% sure it's the same with mirrored memory than without it?
In one hand we have a 100% sure that everything worked while in the other one we have a 99.9999% sure.
What you choose a 99% or 100%? The difference between 100% and 99% is great, think about it.
Another thing, the games have bugs, and these are corrected only if they have unwanted effects and are visible, you can be sure at 100% that the game has no bug that has relationship with mirrored memory?
The cost of doing it is 30 seconds while I'm doing another things. With that 30 seconds I lost near nothing while I get the 100% sure.
BUT:
Do you fully know the code? I know nothing.
You can be 100% sure it's the same with mirrored memory than without it?
In one hand we have a 100% sure that everything worked while in the other one we have a 99.9999% sure.
What you choose a 99% or 100%? The difference between 100% and 99% is great, think about it.
Another thing, the games have bugs, and these are corrected only if they have unwanted effects and are visible, you can be sure at 100% that the game has no bug that has relationship with mirrored memory?
The cost of doing it is 30 seconds while I'm doing another things. With that 30 seconds I lost near nothing while I get the 100% sure.
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
The thing is that it completely depends on the way the original cartridge was designed and Mask ROMs(s) mapped, simulating mirroring might be accurate for some games but completely wrong for others, so no, it's not "100% sure" to do it by default.
Anyway, as others said, no games should really be relying on this.
The only game I know that is actually using mirroring is Sonic & Knuckles but this is because of the way lock-on works: it actually access the plugged game by reading the $200000-$300000 area which should return mirrored ROM data from $000000-$100000 in the plugged cartridge.
That's why, when you plug a game larger than 2MB, it (generally) doesn't detect any valid header and boot S&K by default instead of showing the default "now way" screen.
Anyway, as others said, no games should really be relying on this.
The only game I know that is actually using mirroring is Sonic & Knuckles but this is because of the way lock-on works: it actually access the plugged game by reading the $200000-$300000 area which should return mirrored ROM data from $000000-$100000 in the plugged cartridge.
That's why, when you plug a game larger than 2MB, it (generally) doesn't detect any valid header and boot S&K by default instead of showing the default "now way" screen.
Years ago, when I made my emulator these things were taken into account in the very firsts steps, I'm surprised...
Maybe I misunderstood it, but for example Sonic 1 is mirrored since pins A19-A23 (of cart pinout) are connected to nowhere. Well, there is no assurance at all, but most of 512k roms (without save feature) will go in the same way.
And what else a cart designer can do?Eke wrote:The thing is that it completely depends on the way the original cartridge was designed and Mask ROMs(s) mapped, simulating mirroring might be accurate for some games but completely wrong for others, so no, it's not "100% sure" to do it by default.
Maybe I misunderstood it, but for example Sonic 1 is mirrored since pins A19-A23 (of cart pinout) are connected to nowhere. Well, there is no assurance at all, but most of 512k roms (without save feature) will go in the same way.
-
- Very interested
- Posts: 2440
- Joined: Tue Dec 05, 2006 1:37 pm
- Location: Estonia, Rapla City
- Contact:
Things will be mirrored, but no game makes any attempts at data access from above its own address area... only some copy protected Taiwanese games might do it...
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
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen