Jump to content

Photo

Adding command modules to classic 99?


4 replies to this topic

#1 S1500 OFFLINE  

S1500

    River Patroller

  • 4,824 posts
  • Location:Twin Cities

Posted Mon Apr 5, 2010 6:51 AM

What's the easiest method to add modules to the menu list for cartridges in Classic 99? I'm at work, and have been a bit busy to read any ftm.

Reason being, MESS locks up horribly on Buck Rogers. MESS locked up to the point where it was constantly looping a sound, and any normal attempts to kill the task failed miserably. Yeah, don't use buck rogers.

I would love to easily switch games in Classic 99 instead of using MESS's cumbersome UI. I did however realize that you can just select the 2 files for a cart(why are they in 2 files?) and hit enter, and it runs. You don't have to individually mount the cart files. Instead, just go straight from the picker.

#2 retroclouds OFFLINE  

retroclouds

    Stargunner

  • 1,698 posts
  • Location:Germany

Posted Mon Apr 5, 2010 12:03 PM

Not really sure, but I seem to recall that Tursi has plans on adding a cartridge library (perhaps something in the style as win994A has?).

At this time, I suppose the only way to add cartridges to the menu in classic99, is to add the appropriate entries in the classic99.ini file.

Something like this:

[Usercart0]
name=Tutankham
rom0=3|0000|8000|D:\Projekte\tutankham\tms9900\TUT.bin


I'm afraid you'l have to read the manual (in this case classic99.txt) ;)
Here is an extract on the ROM section

[roms]
cartgroup
	0	Apps
	1	Games
	2	User

cartidx
	-1	No cartridge selected
	??	index of the cartridge from the appropriate menu

[UserCart0]	 (and so on up to 99)
name
	Name of the cartridge. If blank or missing, the cartridge is ignored.

message
	Compatibility notes, if desired

rom0	(0-3 for a total of 4 ROMs per cartridge)
	Contains notes for loading the cartridge. This is a pipe-limited row
	of data, formatted like so:
	T|AAAA|LLLL|filename

	T is the single character ROM type. Most carts only use G, C and X types.
	C	CPU ROM
	D	DSR ROM
	E	DSR ROM bank 2 (used for p-code)
	G	GROM*
	P	P-Code GROM
	R	CPU RAM - this is loaded like CPU ROM but is not flagged as read-only!
	S	Speech ROM
	V	VDP RAM
	X	XB Bank 2 ROM (called 'D' in some systems, but I used D already)
	A	AMS memory, RLE encoded (not working correctly yet)
	K	Paste string for the keyboard after boot (to autostart tasks, not a filename)
	3	Packed banks with a '379 style decoder. Similar to XB style but more banks and 
		all in one file. Note that this assumes a load at >6000, so you are specifying
		the offset in the banking space, with bank 0 at >0000, bank 1 at >2000, etc.
		SuperSpace carts (CRU >400) can be loaded this way for now, too, but will 
		likely split them up later. Max size is 64k.

	(* GROM is special - to support multiple GROM bases, you can now load GROMs
	into different memory bases - up to 16 of them! By default, GROMs load into
	memory base 0. Append a hex number 1-F after the G to specify a different
	base (like: G1). The console will detect these and add them to the start menu! 
	Note that not all GROMs will work at alternate bases. Also note, in the real 
	console, the console GROMs appear at all bases, so you can't load alternate
	bases at less than >6000. Classic99 does not support using this with cartridges that
	include CPU ROM. Each GROM base is offset 4 from the previous, ie: GROM Read
	is >9800, >9804, >9808, etc.)

	AAAA - load address in hexadecimal

	LLLL - length of data in hexadecimal (will override actual size of file)

	filename - filename on disk to load

	This system supports both raw ROM files, and ROM files with a 6 byte GRAM
	Kracker style header. The header is detected by checking if the first byte
	is >00 or >FF, and if the 5th and 6th bytes represent the load address. The
	header will be ignored if detected - the data in this INI file is
	considered authoritative.


#3 Tursi OFFLINE  

Tursi

    Quadrunner

  • 5,638 posts
  • HarmlessLion
  • Location:BUR

Posted Mon Apr 5, 2010 4:19 PM

Sorry that there is not yet a more intuitive way... core functionality has always been high priority in the very limited time I get to work on it. :)

There is one shortcut - if you are loading ROMs in the 'V9T9' format, which is also what MESS uses, you'll note they end with C.BIN, D.BIN or G.BIN. If all the files in the cart end like that, Classic99 has an auto-loader under Cartridge->User->Open, just select any one of the three files and it will find the others.

If it's not in that format, or it's one of the newer bank switch carts, then there's no autodetect, and you must use the INI file method. It's on the TODO list to add the MESS RPK format, which will simplify things nicely (if I can find a non-GPL unzip library....)

As for why they are separate files.. just legacy. Each file is a dump from a single type of memory, usually. C is the Cartridge ROM at >6000, up to 8k. D is the second bank of Cartridge ROM at >6000, up to 8k, used for Extended BASIC (and Atarisoft carts). G is GROM space, usually concatenated together into a single file, loading at >6000 and supporting up to 24k.

The MESS RPK format zips the files together and includes an XML layout file, which is surely the best way to go forward. XML is nicely extensible so we should be able to add manuals, screenshots, and cover scans to it as well. ;)

(edit: and I need to update that doc, apparently.. as far as I remember it supports up to 16 ROMs per cartridge now ;) )

Edited by Tursi, Mon Apr 5, 2010 4:20 PM.


#4 unhuman OFFLINE  

unhuman

    Stargunner

  • 1,227 posts
  • Location:Vienna, VA

Posted Mon Apr 5, 2010 6:03 PM

I wrote a UI for MESS to simplify playing games... It was called TI Mess or something like that. I put it up on 99er.net....

I can dig it up - haven't used it in eons.

Found it!

Attached File  TI99MessUpdate.zip   285.69KB   20 downloads

Edited by unhuman, Mon Apr 5, 2010 6:14 PM.


#5 S1500 OFFLINE  

S1500

    River Patroller

  • Topic Starter
  • 4,824 posts
  • Location:Twin Cities

Posted Mon Apr 5, 2010 6:19 PM

Hmm. So that's what the RPK format is. I'll use the classic99 'File-open" method, especially if you can just specify 1 file of three.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users