macro wrote: ↑Wed Oct 19, 2022 4:44 pm
Looking at the cartridges there needs to be some more connections made for the S.L.A.G.s as Indy and Peter Packrat are the only games that use the top two chips. (code currently has lower chips connected to 0xFF for all addresses)
All of the other (released) games use at least 3.
Road Runner and Marble Madness use 0,1 and 2 (with 0 being the one nearest the cartridge edge connectors)
Road Blasters uses 0,2 and 3
Additionally, 32 bits of data are passed into the cartridge module, this is mapped to the top two chips as well.
I guess we need to find out the maximum size for graphics roms loaded for each of the 4 chips and set the addresses accordingly (and use fills on the other MRAs so that all are loaded for all of the games) plus find out how the video data is fetched into the other chips so it can be catered for somehow. (and hope we don't hit bandwidth problems as graphics data is currently stored in SDRAM)
Ah, so they can't work at the moment. I didn't notice a difference with your build, what did you change?
Documentation on creating mra files is pretty basic. I've been trying to figure out the exact logic.
With interleaving, four banks of chips are interleaved into 32-bits. But Road Runner has six banks of chips (2 x 3, like you mention) I have now interleaved those six banks at 32 bits, because if I would expand the map bits with two extra ones, it would be 48 bits (which is probably not even possible).
For the correct order I'm looking at the order of the chips on the board and then using a scrambled order similar to that used in the other mra files.
With the Peter Pack Rat mra, one thing that is unclear to me is how the two <part repeat="32768">00</part> blocks relate to the 3 x 2 empty sockets at the top-right of the board. Each of the chips used there is 16KB. The address gap in the MAME source is 0x60000, or 0x10000 per empty socket (32KB), which makes more sense than the odd value used in the mra file.