Jump to content
IGNORED

bin files and classic99


Sinphaltimus

Recommended Posts

It all started here:
http://atariage.com/forums/topic/241547-official-ti-994a-hi-score-competition/page-38- Post #927

I attempted to load the Centipede bin file from the fr99 collection in to classic99 and it didn't work until Sometimes99er responded

"Try and change the name from centipede.bin to centipedec.bin"

 

To which I complied and it worked.

So I went and grabbed my Zombi42.bin that I know works with fr99 and the same issue happens.

It doesn't show up in the TI boot menu.

So my question is this:

 

"what is the criteria that must be met for an fr99 compatible bin file (I guess that just means a non-inverted bin) to work properly in classic99?"

 

Somehow renaming centipede worked but why? how does Sometimes99 know that it would work and the exact name to rename it to?

Link to comment
Share on other sites

Yeah, I don't understand. I get that the C needs to be at the end of the filename which has max characters of 10 but how would a noob know that c is the proper choice? I'm going to try that with my bin file to see if it works. I suppose in order to know you really have to know. There's no way to find out?

OK so I added a C to the end of the filename (ZOMBIE42.bin to ZOMBI42C.bin) And it showed up in the menu but does not work. Screen goes blank, high pitched squeal. Need to reset via menus (not ctrl+alt+(+)).

 

So I guess I'll just keep changing the last letter to something else in that list from the manual and hope it works eventually?

Edit: Nope, none work. I guess there's something special about this bin that isn't supported in c99?

ZOMBI42.bin

Edited by Sinphaltimus
Link to comment
Share on other sites

The "c" at the end of the file name (without the extension) is a traditional marker for "ROM6" area content. A "d" at the end is ROM6/second bank (as used in Extended Basic). The "g" signifies GROM space.

 

This was also used in MESS in good old times before I found that cartridge handling much too fragile (requires too much knowledge from the user), and before the number of cartridge types rapidly increased. The solution was to add metadata (layout.xml) to define what goes where and put everything inside a ZIP container, renamed to .RPK. The concept with the current ZIP cartridges is the same, but the metadata are contained in the MAME distribution itself.

  • Like 1
Link to comment
Share on other sites

Yeah, way above my head right now. The best I can do is open the debugger and find this..

Illegal opcode (00DB) at address >DCFE, Bank >0001, DSR >FFFF

Illegal opcode (00DB) at address >DCFE, Bank >0001, DSR >FFFF

Illegal opcode (00DB) at address >DCFE, Bank >0001, DSR >FFFF

being repeated over and over when it crashes.

I've used this bin file on real iron via the flashrom without any issues as far as I can tell. So I'm at a loss as to why the same bin doesn't work in c99.

Link to comment
Share on other sites

Non-inverted files should be called xxxxxxxx8.bin to work with Classic99. All FR99 files are non-inverted. Try naming your file zombi42-8.bin

And just like that it works.

 

Anyone develop the matrix yet for ti? I mean the real one.l Like just plug something in to the back of my skull so I can instantly know all this stuff.

 

Thank you.

Link to comment
Share on other sites

I wanted to note that this is not "so it works with Classic99", it is "so Classic99 can auto-detect the type". The scheme was developed for the V9T9 emulator in the 90s and I extended the concept for newer types because I like loading cartridges lazily. ;) You can make any filename work just fine in Classic99 by defining the cartridge in Classic99.ini. There's no naming restrictions there because you tell the emulator everything.

 

The other thing to note is there is no 10 character limit on a ROM filename (*when used directly by emulation). The 10 character limit is a TI Disk Controller limit, and ROM files aren't loaded by the TI Disk Controller, they are loaded by the emulator itself.

 

Auto-detection is more restrictive than the Classic99.ini. In particular, it assumes that you are loading at the base address of the cartridge port (>6000), so you can't split, say, a bank-switched program over multiple files. To do that, use Classic99.ini. But it's easier to just concatenate.

 

So for auto-detection, you first need to know "what kind of cartridge ROM is it?" There are four types today:

 

GROM - TI's custom memory chips. Ending your filename with "G.BIN" allows autodetection of this. The maximum size of a GROM cartridge auto-loaded into the cartridge port is 40k, GROM paging must be specified in the INI.

 

ROM (not-paged) - This is the standard 8K of ROM memory. Ending your filename with "C.BIN" (for 'CPU' memory) allows autodetection of this.

 

ROM (paged inverted) - This was for cartridges on the original release of the "379" switching PCB. It is called 'inverted' because when you select the 'first' page by bank, you get the last 8k of the EPROM. Because of the chip in use, I selected "9.BIN" as the filename ending for this type. This supports up to 32MB of ROM.

 

ROM (paged non-inverted) - This is the newer style, including the FlashROM99. It is called non-inverted because when you select the 'first' page by bank, you get the first 8k of the EPROM. The '378' was one of the chips that worked this way, so I selected "8.BIN" as the filename ending for this type. This supports up to 32MB of ROM.

 

For legacy reasons, there's another autodetected name, and that is "D.BIN". V9T9 used this for the second file of 16k cartridges such as Extended BASIC (which is really 12k, but they duplicated the common 4k block in the two banks). Internally it's a "type 9", I don't expect too many new pieces of software to use this.

 

So how do you select which one to use? If you're the programmer, you probably have some idea what you have created. If you have just received a file and want to rename it, you can narrow it down by size. (Whether it's ROM or GROM is usually known by SOMEONE... and there's only one GROM option). If the ROM file is 8k, it's a 'C', always. There's no need to bankswitch 8k (although /either/ bankswitch type will probably also work. It never switches, so it doesn't matter what is selected).

 

If the ROM file is larger than 8k, then it must bank by definition... but there's no external way to know for sure whether it's 8 or 9. Look for clues like 'inverted' or not in the description. FlashROM99 are always non-inverted ( 8 ), and most newer stuff is. Ultimately, you can just try it -- make sure to test if you just try, though, since the menu may come up and still not run if the header is in multiple banks. :)

 

So to summarize (underscore is not mandatory but I like to separate it from the filename):

 

GROM File:  xxxxxx_G.BIN
8K ROM:     xxxxxx_C.BIN
Inverted:   xxxxxx_9.BIN
Non-Invert: xxxxxx_8.BIN
The other types in the manual there are only for use in the INI file. Edited by Tursi
  • Like 4
Link to comment
Share on other sites

...

ROM (paged inverted) - This was for cartridges on the original release of the "379" switching PCB. It is called 'inverted' because when you select the 'first' page by bank, you get the last 8k of the EPROM. Because of the chip in use, I selected "9.BIN" as the filename ending for this type. This supports up to 32MB of ROM. ...

 

I wish to offer a clarification: The Classic99 manual says ‘3’ is the signal for an inverted ROM binary (probably for the ‘3’ of ‘379’, when inverted ROM binaries were the only ones produced). I checked and, indeed, ‘9’ works, so you obviously changed Classic99 to work with both. If you posted that, I missed it or forgot it (more likely—I'm old!). Now that there are both inverted and non-inverted binaries, it is clearly better to be using ‘9’ to signal an inverted binary that works with the 74LS379 latch (inverted mode) in the same manner that ‘8’ now signals a non-inverted binary that works with the 74LS378 latch.

 

...lee

  • Like 2
Link to comment
Share on other sites

Huh... you are correct, the code uses '3' (my own memory needs more frequent refreshes ;) ). I don't see any case of the code actually supporting '9', though... as you note it makes sense, so perhaps it's time to retcon that and make it true. ;) If it didn't work, the next version will. ;)

  • Like 2
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...