Jump to content
IGNORED

Cartridge ROM/GROM image cleanup


mizapf

Recommended Posts

I'm currently doing a thorough cleanup of our cartridge images for the purpose of identifying original, pristine dumps. In MAME/MESS we have currently two cartridge formats for the TI: the ZIP format from the MAME core, and the RPK format mainly for the homebrew cartridges. In the next release, the NVRAM-based cartridges like MiniMemory will also be available as ZIP, so only the newer multibank modules are missing.

 

While we can do anything we like with the RPKs, the ZIPs should contain the actual dumps, preferably verified in some reasonable way. I found that I can use the checksums of the ROMs to verify their integrity.

 

However, this endeavor revealed to me that we have a big deal of faked dumps, unfortunately. I'll have to mark those as "bad" in the next MAME release.The RPKs will not be affected, it's just the "official" software list for the ZIPs.

 

Many of the bad dumps are hacks to remove the autostart feature, as we recently saw with the Plato cartridge; the same is the case for most Scott/Foresman modules. Hopefully I can remove these hacks easily without redumping.

 

I'm posting for one special point here: Was there ever a cartridge "River Rescue", or was this another hack to push a disk-based assembly language game on an cartridge? We have a great number of such cartridgified programs, and it's not clear whether they ever lived in a plastic shell or were just used to be loaded into a GRAM card.

 

I found this at the beginning of River Rescue:

 

 

6042: ALL   >20
6044: MOVE  >001C BYTES FROM GROM@>6026 TO VDP@>02C2
604B: MOVE  >175E BYTES FROM GROM@>60A2 TO @>CFF8
6053: MOVE  >1800 BYTES FROM GROM@>8000 TO @>E756
605B: MOVE  >00B0 BYTES FROM GROM@>A000 TO @>FF56
6063: DST   >CFF8,@>8300
6067: XML   >F0

 

So the sole purpose of the GPL code is to upload the machine language program into the 32K expansion. This is not a real cartridge, is it? In this case I will throw out that cartridge from the "official" list - but I'll keep it as an RPK, of course.

 

 

Second, I'm in bad need of some information on MBX game cartridges. If you have one, like Sewermania, Terry Turtle, Space bandits, could you please open it and tell me what's inside or post a picture?

 

I noticed that the MBX cartridge type in my emulation is broken; the banking does not work as expected. There is a mapper at 6ffe, and values 0-3 can be written on it, but I don't know what is supposed to happen. Right now it switches to some second 8K bank, but this fails everywhere because there is no second 8K dump. So either it means something different, or we just lack the dump for the second bank.

Link to comment
Share on other sites

Yes, that's indeed helpful! Good photo quality.

 

So we have

  • at the left two 1024x4 SRAMs (MCM2114); this is the 1024 byte cartridge RAM, unbuffered
  • some kind of ROM? What is a NCR 8342A?
  • bottom edge: space for three GROMs (could be stacked, of course); leftmost position empty
  • bottom right: this is the D-flipflop that is set/reset by writing to 6ffe. There is a 13-input NAND above the leftmost GROM and another NAND next to it, supposedly to decode this address

What remains is to find out where the outputs of the D-Flipflop(s) in the 74LS175 are connected to. Unfortunately I cannot look below the GROMs, and before you start soldering, maybe you have a multimeter to find out where the traces go to?

 

So we have real GROMs in the MBX cartridges.Is it true that all cartridges that have a PHM number and data in GROM space are using real GROMs? Would TI assign a PHM number to a cartridge that fakes GROMs? If this is the case (no fakes) then all cartridge images that have significant content in the blind spot of the GROMs obviously offer no original contents but are hacked versions.

 

 

Edit: Ah, just noticed that matthew already discovered some things in the linked posting.

Edited by mizapf
Link to comment
Share on other sites

What remains is to find out where the outputs of the D-Flipflop(s) in the 74LS175 are connected to. Unfortunately I cannot look below the GROMs, and before you start soldering, maybe you have a multimeter to find out where the traces go to?

You just let me know what pins are in question and I'll let you know. :thumbsup: If still needed.

Edited by Fritz442
Link to comment
Share on other sites

Sure, yes, this seems to have remained an open question...

 

Here is an "xray" that I created from the above photographs using GIMP. I marked the traces that I am interested in. Could you try to find out where they are going to or coming from?

 

Thanks,

 

Michael

 

post-35000-0-56920100-1462453162_thumb.jpg

  • Like 1
Link to comment
Share on other sites

I'm currently doing a thorough cleanup of our cartridge images for the purpose of identifying original, pristine dumps. In MAME/MESS we have currently two cartridge formats for the TI: the ZIP format from the MAME core, and the RPK format mainly for the homebrew cartridges. In the next release, the NVRAM-based cartridges like MiniMemory will also be available as ZIP, so only the newer multibank modules are missing.

 

While we can do anything we like with the RPKs, the ZIPs should contain the actual dumps, preferably verified in some reasonable way. I found that I can use the checksums of the ROMs to verify their integrity.

 

However, this endeavor revealed to me that we have a big deal of faked dumps, unfortunately. I'll have to mark those as "bad" in the next MAME release.The RPKs will not be affected, it's just the "official" software list for the ZIPs.

 

Many of the bad dumps are hacks to remove the autostart feature, as we recently saw with the Plato cartridge; the same is the case for most Scott/Foresman modules. Hopefully I can remove these hacks easily without redumping.

 

I'm posting for one special point here: Was there ever a cartridge "River Rescue", or was this another hack to push a disk-based assembly language game on an cartridge? We have a great number of such cartridgified programs, and it's not clear whether they ever lived in a plastic shell or were just used to be loaded into a GRAM card.

 

I found this at the beginning of River Rescue:

6042: ALL   >20
6044: MOVE  >001C BYTES FROM GROM@>6026 TO VDP@>02C2
604B: MOVE  >175E BYTES FROM GROM@>60A2 TO @>CFF8
6053: MOVE  >1800 BYTES FROM GROM@>8000 TO @>E756
605B: MOVE  >00B0 BYTES FROM GROM@>A000 TO @>FF56
6063: DST   >CFF8,@>8300
6067: XML   >F0

So the sole purpose of the GPL code is to upload the machine language program into the 32K expansion. This is not a real cartridge, is it? In this case I will throw out that cartridge from the "official" list - but I'll keep it as an RPK, of course.

 

 

Second, I'm in bad need of some information on MBX game cartridges. If you have one, like Sewermania, Terry Turtle, Space bandits, could you please open it and tell me what's inside or post a picture?

 

I noticed that the MBX cartridge type in my emulation is broken; the banking does not work as expected. There is a mapper at 6ffe, and values 0-3 can be written on it, but I don't know what is supposed to happen. Right now it switches to some second 8K bank, but this fails everywhere because there is no second 8K dump. So either it means something different, or we just lack the dump for the second bank.

 

You may be right about the Assembly version of the cart as most GROM carts could run fine without any 32K expansion and this version clearly will not.

 

This appears it might be a GRAMULATOR version of the MBX carts as I think the Originals had the same feature and C.A.D.D. set up a version of the GRAMULATOR that could run the MBX carts with just a dump.

Edited by RXB
Link to comment
Share on other sites

MBX banking is working in Classic99 (or at least Terry Turtle works, I didn't try any farther.)

 

My notes state that MBX has the lower 4k fixed and banks the upper 4k. Furthermore, the last 1k of the fixed bank is RAM. As you noted, there's a latch at 0x6FFE which latches the data bits written to select the bank (non-inverted in my notes).

 

So:

 

>6000 - >6BFF - Fixed ROM, first half of the ROM in my samples.

>6C00 - >6FFD - RAM

>6FFE - >6FFF - latch register (write data, least significant bits select bank, non-inverted (probably))

>7000 - >7FFF - banked ROM

 

I don't know if the latch also shadows RAM (that is, if you read the latch, do get get back the data written there?)

Edited by Tursi
  • Like 1
Link to comment
Share on other sites

Look at the link I put above. I put my disk of MBX dumps from Michael Becker in that old thread. Those are ones he dumped and are considered proper dumps. Hopefully that helps once you get the mechanism they are using down pat.

Link to comment
Share on other sites

here some Pictures from MBX Carts

 

ah, very good - the pictures for Sewermania and Superfly show configurations where the U6 socket is empty, so we can see the traces that were covered.

 

@Tursi: Concerning 6FFE, if Michael Becker was right, it is accessed in parallel to the RAM, which means the value is written to RAM and to the latch at the same time, and when reading, the RAM will deliver the value.

Link to comment
Share on other sites

In the Bunyard book, the Extended Basic module was described in detail, and he also stated that there was another, earlier design.

 

I suspect that there once was a three-chip ROM design (3 x 4K) because the ROM dumps have a CRC16 word at the end of each 4K block. The 4K ROM has a CRC16 at 0x0FFE, and the 8K ROM has a CRC16 at 0x0FFE and another at 0x1FFE. I think this only makes sense if you originally planned to burn two separate ROMs.

 

Do we have evidence for that? Are there any older Extended Basic cartridges left, maybe the v100?

Link to comment
Share on other sites

As far as I know they never made a version 100 Extended Basic.

 

I have the original version 110 Source Code that I use for making RXB.

 

In the notes it seem to indicate version 100 had to many errors, so I do not think they ever released it.

Link to comment
Share on other sites

I know it was released, Rich--I have a copy around here somewhere. It did have errors, so when they were found the cartridge was recalled. During the recall, it became known as the great Extended BASIC famine. . .especially as the replacement cartridges were initially in VERY short supply.

  • Like 1
Link to comment
Share on other sites

MBX banking is working in Classic99 (or at least Terry Turtle works, I didn't try any farther.)

 

My notes state that MBX has the lower 4k fixed and banks the upper 4k. Furthermore, the last 1k of the fixed bank is RAM. As you noted, there's a latch at 0x6FFE which latches the data bits written to select the bank (non-inverted in my notes).

 

The problem is that none of the MBX cartridges that I know have a ROM image larger than 8K, so I don't understand what is actually banked. Or do we have something like 4K + 4*1K? I'll have to check the new pictures of the MBX cartridges; maybe we can find out more.

 

Or someone manages to dump such a cartridge 4 times, by writing 0, 1, 2, and 3 to 6FFE. Then we can see the effect. I don't have a TI console, neither an MBX cartridge.

  • Like 1
Link to comment
Share on other sites

Are you sure the dumps you are looking at are complete?

 

Hmm ... obviously not. That might explain a lot.

 

I thought I had a copy of the Cyc somewhere, but I cannot find cartridges on it. Could you mail me all the MBX files? TIA.

Link to comment
Share on other sites

Hmm ... obviously not. That might explain a lot.

 

I thought I had a copy of the Cyc somewhere, but I cannot find cartridges on it. Could you mail me all the MBX files? TIA.

Carts are buried a bit, look in the PC99 folder. They are stored by TI part number IIRC, so you'll need to go look that up elsewhere to know what you're looking at.

 

I can not send you all the MBX files, I only ever pulled out Terry Turtle (I'm not much of an archiver ;) ). I can send you that after work if you give me an address to send to. ;)

Link to comment
Share on other sites

Alas, all the RPKs and ZIPs on WHTech for the MBX cartridges were incomplete all the time ... :( I once created them from the files in the TOSEC collection and from other sources I don't remember. And those RPKs with names starting with "mb_" are actually hacked versions; when you look inside you can even find a string "** DISK VERSION BY JNB APR87 **".

 

We need to clean up the MEss. As I said, we will keep the RPKs, but I want to recreate the genuine modules which will then be selectable by the softlist.

 

OK, so if anyone has complete sets of GROM/ROM dumps for the MBX cartridges, it would be highly appreciated if you send me a copy (ti99@mizapf.de).

 

If you have the MBX cartridges and enough hardware to create a dump (run machine language programs, switch the cartridge at runtime) you can also send me a note; I can quickly set up a dump tool.

Edited by mizapf
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...