Jump to content
IGNORED

Classic99 Updates


Tursi

Recommended Posts

7 hours ago, GDMike said:

Maybe the raspberry pi should have been setup with a USB cable connected to a PC with the PC doing the work that a pi does? But I'm still enjoying it.

This idea amuses me far more than it should... we've spent so much time using PIs to extend retro systems, it'd be hilarious to use a full PC to extend the PI.

 

But I support VNC or Remote Desktop would provide that illusion quickly enough.

 

  • Like 3
Link to comment
Share on other sites

Classic99 399.031

 

Bugfix for multiple GROM bases that was preventing the OPA menu from working:

    - fix GROM access to console GROMs from banks larger than Classic99
    supports
    - also mask cartridge access in those cases instead of outright
    rejecting the access
    - some future todo notes added

 

http://harmlesslion.com/software/classic99

 

  • Like 9
  • Thanks 3
Link to comment
Share on other sites

  • 2 weeks later...
1 hour ago, InsaneMultitasker said:

GROM changes seem to have cleared up a problem I was having here.   Very nice.

It's probably worth noting that if they fixed a problem you were having, the original software has what I'd consider a bug - accessing the GROMs at a non-standard base and just accepting that it happens to work. If it's new software it's worth checking for that just in case we ever release a console upgrade that actually decodes the GROM bases. ;)

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

8 hours ago, Tursi said:

It's probably worth noting that if they fixed a problem you were having, the original software has what I'd consider a bug - accessing the GROMs at a non-standard base and just accepting that it happens to work. If it's new software it's worth checking for that just in case we ever release a console upgrade that actually decodes the GROM bases. ;)

 

Thanks, I'll look into that.  The code in question was not originally mine - it spawned from MENU/BOOT code.  With this intel in mind maybe the bug will show itself. I last looked at it over a year ago and figured it was something I did wrong.  GROM and I don't always play together nicely  ;) 

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

[UserCart0] and [CartGroups] Question!
There is a menu called Cartridge in C99 and then under that you have APPS, GAME; USER and Eject.

If you add games/programs in the ini file in [UserCart0] and [CartGroups], do you get the programs in under Cartridge. Like do you get a long list of the programs you added?
Also, I kinda understand the set up of the ini file, but could you make a video or a better explanation for someone not THAT technical?

There is so much I don't know and is careful not changing. I have question like...
- Can I add some line shift with noting in the line so that I get a better overview? Since I am not a computer I find it easier to space out thing so I find it. BUT, the TI has told me that F and f is NOT the same thing.
- Where do I put carts? in ROM, can it be in a folder in ROMS? Better overview. Again, not a computer :p

Simply put, I don't understand that much. I was a Basic and E Basic programmer (from mags) and Parsec player. So much that my old joysticks have worn out.


So, I want to add Carts and be done with it. All in one place and when the next ver. of C99 is out, I copy it to my folder where all is set up and ready.

Also... Thank you so much for C99 and what your doing for keeping the TI 99/4A alive! (Got my second TI, real iron. Here in Norway, this Friday) He got "new" joysticks. Going to send the seller link to your C99 as he is an old TI user, but do not have a TV to use it anymore.

I am using the old one to make a modern ver. of the TI joysticks. Maybe I will put it out here as a project. Will see what kind of stuff I can get to update it and then decide.

Link to comment
Share on other sites

10 hours ago, oddemann said:

[UserCart0] and [CartGroups] Question!
There is a menu called Cartridge in C99 and then under that you have APPS, GAME; USER and Eject.

If you add games/programs in the ini file in [UserCart0] and [CartGroups], do you get the programs in under Cartridge. Like do you get a long list of the programs you added?

   ' ' '
- Where do I put carts? in ROM, can it be in a folder in ROMS? Better overview. Again, not a computer ?
   . . .

So, I want to add Carts and be done with it. All in one place and when the next ver. of C99 is out, I copy it to my folder where all is set up and ready.

 

Cartridges included in classic99.ini under [UserCartx] (where ‘x’ is a number) appear in the Cartridge menu under USER. The others are actually part of Classic99, over which we users have no control.

 

You can put the cartridge binaries anywhere you like. You just need to point to each one properly in classic99.ini. It makes sense to group your binaries in one directory. MODS is there for that purpose, but you can create your own. And, when you copy the next version of Classic99 over top of the old one, your old work is preserved, even classic99.ini. I do always back up my old classic99.ini, though, just to be safe.

 

...lee

  • Like 1
Link to comment
Share on other sites

You can also create subfolders under User by using a custom area tag. For instance, I have one called "Test", and for that I use "[Test1]", "[Test2]", etc.

 

Before I go too deeply into it, though, did you read the manual? I put a lot of detail into there. However, to manually add cartridges you need to know what kinds of memories are in it, it's not automatic. That means you need to know if it's ROM or GROM, paged or not, and the particular details of those memories. After a while you get used to it, but that's kind of why I just added drag and drop. ;)

 

There are some assumptions you can make that help all that. For instance, non paged cartridges almost always start at "6000", whether they are ROM or GROM. Non-paged ROM is never more than 8k (and normally should be exactly 8k). Cartridges with paged GROM are extremely rare, and the GROM should be less than 40k. Paged ROM - you just need to know if it's "inverted" or "not inverted", and the Classic99 load address for paged ROMs is usually "0000".

 

Finally, if the images you have are tagged properly (that is, they load when you drag and drop or use cartridge->open), then this information is actually right there in the last character of the filename. The characters Classic99 knows are in the manual.

 

Link to comment
Share on other sites

Yes, I have read!

Lol, and what for you is so... naturally understandable is a little above my insight. ROM or GROM. Non-paged ROM... lol now I know of non-paged ROM. New thing to understand, or really understand it all. And then you speak Greek :p I am more... I put in the cart and it works :p I am slowly understanding more of the "under the iron stuff", starting to understand the motherboard and some of the design, good and bad, but still... it is just superficial understanding. I know of memory limitations, but again superficial. 

If you could use a cart that is free and then I can try to do it in my own system. The Pole Position is OK, but a little to general for me. The manual is great, to the point, but for me I would easily get some of the more technical stuff with more practical examples. Doing it my self, makes a lot to my learning and understanding.

PS! I wounder what would happen if they made the TI all 16 bit buss all over. How much would that have don't to the TI.

So.. NOW, I know how to add one cart and then use that one, and then put a new new one in. But I would like to change the ini file and add carts and add more as I find more.

Sorry if this is something I should get from the manual. But I have read, man times, tried. But only thing so fare is one and one cart.

Link to comment
Share on other sites

It's not naturally understandable for me at all, it's the result of 20+ years of dealing with it, not only in my own work, but most other people's who use Classic99. ;)

 

Well, we can go through a couple of carts if you want, till it starts to make some form of sense. Once you have done a couple you'll find that 90% of cartridges follow the same pattern. ;)

 

Go ahead and post one here to start, and I'll walk through what I would do to make it go in the INI. ;)

 

Link to comment
Share on other sites

Thx, Tursi ;) Yes I know, give it time and you start to understand!

Also thx for helping me with the carts. Maybe you can implement this in your manual too ;) And then it should cover it. Well... I give you a file name and all the info I get from explorer... So lets see if I can find a good cart to start with...

alpiner.ctg - CTG-fil - 34 kb (Should I upload the file, too?)

That file is in ...\...\classic99\MODS

I would like to make a "My Carts" folder or maybe a file structure. But I will do that when I have a handle of it

Edited by oddemann
Link to comment
Share on other sites

Ah ha, okay. Yeah, I got tired of chasing down every time someone released a new file format for something we already had. ;)

 

So Alpiner is an easy one! When you drag and drop, it loads, so you know that Classic99 successfully autodetected it. That means (most of the time) that the last letter before the .BIN correctly identifies the file type.

 

So to add the file, you need to answer four questions.

 

The first question: how many files are there? Some games will have multiple files with the last letter changing - ALL the files need to be accounted for in the INI, while drag-and-drop will search for alternates automatically. In this case, there is just one file.

 

The second and third question are answered for each file.

 

The second question: what kind of memory is the file? The drag-and-drop only recognizes a subset of the many types in the manual (at least for now), and they are:

C - Standard 8k ROM file
D - Second bank of 2-bank 16k cartridge (XB and AtariSoft games are usually all that use this)
G - GROM data, up to 40k
3 or 9 - 3 is obsolete, but you may see it on old files. Represents an "inverted" bank-switched ROM (using a 74LS379 "mapper")
8 - Represents a "non-inverted" bank-switched ROM (using a 74LS378 "mapper" - that's where the numbers come from  )
N - this is non-volatile RAM for the MiniMemory

There's one exception so far. If there is no ".BIN" extension at all, and Classic99 still successfully loads it, treat it as a type '8'. FinalGROM images are often distributed this way.

 

The reason that I insist on testing via drag and drop first is that there are several other old naming schemes, such as for the PC99 emulator and the GramKracker devices. When you encounter these image files it takes a little more effort to get Classic99 to play with them, since Classic99 wants raw memory data (the naming scheme comes from the V9T9 emulator).

 

This letter will be the "type" character in the INI file. In the case of Alpiner, the type is "G".

 

The third question: where in memory does this data load? For cartridges this is really easy. It's almost always "6000", which is the base address of the cartridge port. There are two exceptions:

3/8/9 - Bank switched ROMs can be much larger than the 8k available, so they live in their own memory space, and start at "0000"
N - the MiniMemory RAM starts at "7000"

Alpiner here is a standard GROM, so it starts at "6000".

 

The fourth question: How big is the file? Normally cartridge images are padded out to a power of two, but regardless, you just need to get the size of the file, and convert it to hexadecimal. You can actually use Windows calculator for this if you don't have anything else - switch it to "Advanced" or "Programmer" mode, depending on which version of Windows you have, and you can type a number in "DEC" (decimal) mode and click the "HEX" option to see the hexadecimal.

 

The one thing to be careful of - the Windows file list rounds the size. Either use properties or the command prompt to get the true size. (Of course the rounded value is fine if you know it's properly padded out.)

 

image.thumb.png.add468f0a1ea3ae043b34d813def9b96.pngimage.thumb.png.da464223ace1eb713ceda4a10cb0e286.png

 

AlpinerG.BIN there is 32768 bytes. Plug that into calculator, and we get "8000". (There are only a few common values you'll find, eventually you'll have them memorized ;) ).

 

Creating the INI entry: that's everything we need, now we can update the INI. Close Classic99, otherwise your changes may be lost as it rewrites the INI on exit. Open Classic99.ini and jump down to the end.

 

First you want to choose a folder for your files and move them there. They can be anywhere that Classic99 can read, it will not attempt to parse the path you specify. In my example, I have ALPINERG.BIN in "D:\new".

 

If you already have "UserCart" entries, select the next index. Classic99 supports indexes from "1" to "99". Note you can create subfolders in the menu by using a different word than "UserCart", as long as it doesn't conflict with any of the reserved words. So for instance, "Games" is fine. 

 

I'll assume here the first entry, and use an index of "1".

 

First create the section header - this tells the system that the following lines are associated with a particular cartridge.

[UserCart1]

Inside a section, everything is defined as a "key" = "value" sequence.

 

Next, we need to enter a name to appear in the menu. Anything will do after the equals sign.

name=Alpiner

Finally, for each of your ROM files, you need to enter a rom line. Classic99 looks for lines 0-99, but the actual key index has no meaning except the order in which the files are loaded. (Sometimes, very rarely, you might have overlapping files on purpose. That's the only time it matters.)

 

You have just a single file, so we'll use "rom0" as the key. If you had a second, you might use "rom1", and so on.

 

The value for a ROM line needs to specify all of the above information, so at a glance it may look like some kind of nonsense code. It's divided into four fields by the vertical pipe symbol (|), and they are:

Field 1: Type character (G)
Field 2: Load address (6000)
Field 3: Load size (8000)
Field 4: Filename (D:\new\ALPINERG.BIN)

So for Alpiner, filling in all the information we have and inserting the pipes between fields, it looks like this:

rom0=G|6000|8000|D:\new\ALPINERG.BIN

Finally, it's often helpful to leave yourself a reminder of what an entry is, or any special cases you encountered, or whatnot. You can have a "comment" in the INI file by starting a line with a semicolon (;). Classic99 will completely ignore these lines, it's just for your own notes.

; Alpiner by Texas Instruments is the BEST GAME EVER!

Putting it all together:

[UserCart1]
name=Alpiner
; Alpiner by Texas Instruments is the BEST GAME EVER!
rom0=G|6000|8000|D:\new\ALPINERG.BIN

That's actually it! Save the INI, close it, and open Classic99, and your game will show under Cartridge->User (or possibly a subfolder of that if you used a different name).

image.thumb.png.eaefa9a15c64096d5951a68ea85bb309.png

 

Troubleshooting and unknown ROMS: I could write a whole 'nother massive post on this, but it's basically experience that will lead you to how to identify unknown ROMs.

- there are GRAM Kracker and PC99 ROMs, which have a 6 byte header that gives all this information

- you can sometimes use the size - normal ROMs must be 8k. Cartridge GROMs normally can't exceed 40k. GROMs may be a multiple of 6k instead of 8k.

- you can open the file in a hex editor and look for the cartridge header for clues

- ultimately in the end you make a theory and try it.

 

When it doesn't work, as this Alpiner doesn't!, the first thing to do is open the Classic99 debug log (Edit->Debugger), reset the emulator (File->Cold Reset), and look for the line that loaded your cartridge. In this case we see:

Loading file (D:\new\ALPINERG.BIN) from disk: Type G, Bank 0, Address 0x6000, Length 0x8000

You're looking for anything that's wrong, or any warnings nearby. I don't see any, which means we typed the INI correctly and there's something strange about the image itself. Troubleshooting that is far beyond this class. ;)

 

But, just because I was curious, I took at look. I don't expect you to learn this far, but the debugger showed that it was jumping into CPU ROM space at >6000. This suggests that indeed, there should be a second file for Alpiner's ROM - and indeed my own archives show that yes, there should be.

ALPINERC.BIN

 

So if we go through the process for this file, then we can quickly work out the four questions:

Field 1: Type character (C)
Field 2: Load address (6000)
Field 3: Load size (2000)
Field 4: Filename (D:\new\ALPINERC.BIN)

Note how the load address is the same, the type changed to C, and the load size went to >2000, which is 8192 in decimal. If we make the rom1 line and add it to the INI like so:

[UserCart1]
name=Alpiner
; Alpiner by Texas Instruments - Don't forget the ROM file!
rom0=G|6000|8000|D:\new\ALPINERG.BIN
rom1=C|6000|2000|D:\new\ALPINERC.BIN

Then we can enjoy some crash-free gaming!

 

image.thumb.png.e489e8aebaa8ba868f65deb279ceed2b.png

 

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

COOOOOOOL!!! - OK! I got it!

2 are in, 4A Flayer is not working... But I got so much information that I will figure out why it did not stick. I got the two others to work!

You a teacher? Ohhh, Will you explain Assembly now??? hahahahahahahaha Kidding ;)

Very good explanation! Also the txt file in MODS saves some time.

Yes.jpg

  • Like 1
Link to comment
Share on other sites

13 hours ago, Tursi said:

Note you can create subfolders in the menu by using a different word than "UserCart", as long as it doesn't conflict with any of the reserved words. So for instance, "Games" is fine. 

Want more... Now that I got this, I want to make sub-folders and sort everything so that it is easy to find stuff. I did not get the sub-folder... tried different thing... but did not get a sub-folder. I see that you have sub-folders in your set up.

  • Like 1
Link to comment
Share on other sites

I did JUST what you wrote with 4A Flyer (D:\new\4AF...) and when I deleted ( and ) it worked :p lol

When I use OPEN to test or use a BIN file... it works without all this stuff I put into the INI file... So I guess that C99 makes a temp "INI" file for this ONE cart. Is there some place where I can copy out all the "4 lines"? With C G and 2000-4000... So dos C99 make this info, so I can see it any place?

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

The temporary data is internal only, so there's no place to copy it out. You could take the information out of the english lines in the log, but the steps listed above are going to be faster. ;)

 

Can't help with the "subfolders didn't work" unless you show me what you did. :)

 

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...