Jump to content
IGNORED

Classic99 Updates


Tursi

Recommended Posts

At this point I can't really dedicate much more time. The problem, Ox, is you are giving me the bugs one at a time. I can't work on this every day as I have been, other things are suffering. I need you to collect a set of bugs instead, diagnose them to the best of your ability, and provide them all at once. I've done what, five releases in the last 30 days? That's getting silly and costs me a lot of time in overhead. Each time I fix one bug for you, I've assumed it was the last one you were facing.

 

Take notes and logs, and compile a list of them, and then we'll see what I can do next time I can put some time aside. :)

Link to comment
Share on other sites

At this point I can't really dedicate much more time. The problem, Ox, is you are giving me the bugs one at a time. I can't work on this every day as I have been, other things are suffering. I need you to collect a set of bugs instead, diagnose them to the best of your ability, and provide them all at once. I've done what, five releases in the last 30 days? That's getting silly and costs me a lot of time in overhead. Each time I fix one bug for you, I've assumed it was the last one you were facing.

 

Take notes and logs, and compile a list of them, and then we'll see what I can do next time I can put some time aside. :)

 

I really appreciate the updates Tursi, the diskname problem I can live with as it only affects very few disks so I'll just delve in and physically change the code to DSK1, tbh I'm right at the end of the beta testing and this random freezing black screen is about the last thing that needs fixing, it's very infrequent so when it next happens I'll post the error log and see if anything comes to light.

 

I can understand it's been a drain on your time (iv'e spent 7 months up to now on the project) but I believe it was worth it to have Classic99 emulation in there as it's so much nicer than MESS for a lot of reasons.

 

OX.

Link to comment
Share on other sites

The fixes have been good ones, no question, so thanks for that! I'm just asking you to batch them up a bit for me. If you make sure the diskname one is in there, I will fix it too, I have a reasonable idea how to code that. Rich had found it before, too, it just escaped my thought process.

Link to comment
Share on other sites

The fixes have been good ones, no question, so thanks for that! I'm just asking you to batch them up a bit for me. If you make sure the diskname one is in there, I will fix it too, I have a reasonable idea how to code that. Rich had found it before, too, it just escaped my thought process.

 

Hi Tursi, Iv'e done a bit more testing and the only possible bug I can't work around is this infrequent random freezing black screen problem when starting up with a disk image and ex-basic cart image, it helps a little when I put a space before RUN statement but on autobooting disks there is nothing I can do to slow it, as soon as I go into the debugger however the game continues as normal so I was wondering if it would help stop the freezing if you could put in a forced pause of about 1 second at startup before the keyboard input starts, I could then do some more testing and report back wether it has alleviated the problem.

 

(Please :D )

 

OX.

 

Edit - it seems to hang on "CPU thread began" in the debugger.

Edited by OX.
Link to comment
Share on other sites

Hi Tursi, Iv'e done a bit more testing and the only possible bug I can't work around is this infrequent random freezing black screen problem when starting up with a disk image and ex-basic cart image, it helps a little when I put a space before RUN statement but on autobooting disks there is nothing I can do to slow it, as soon as I go into the debugger however the game continues as normal so I was wondering if it would help stop the freezing if you could put in a forced pause of about 1 second at startup before the keyboard input starts, I could then do some more testing and report back wether it has alleviated the problem.

 

(Please :D )

 

OX.

 

Edit - it seems to hang on "CPU thread began" in the debugger.

 

Please post a zip of one example that dies sometimes, the INI, the ROM, and the EXE... rather than guess I'd rather reproduce it. The keyboard paste doesn't take effect until the ROM code scans the keyboard, it's not faking the keyboard hardware, so there's no reason I can think of why it would be causing the emulator to hang before it comes up at all. Let me see what you have going on. :)

 

You are focused on a 1-second delay, and it's not impossible to be related, but it /should/ not happen, so let's fix the real problem.

 

You do need a padding character here and there as in the examples I posted, because the OS does extra keyboard scans that are not part of the user interaction.

Link to comment
Share on other sites

Hi Tursi, Iv'e done a bit more testing and the only possible bug I can't work around is this infrequent random freezing black screen problem when starting up with a disk image and ex-basic cart image, it helps a little when I put a space before RUN statement but on autobooting disks there is nothing I can do to slow it, as soon as I go into the debugger however the game continues as normal so I was wondering if it would help stop the freezing if you could put in a forced pause of about 1 second at startup before the keyboard input starts, I could then do some more testing and report back wether it has alleviated the problem.

 

(Please :D )

 

OX.

 

Edit - it seems to hang on "CPU thread began" in the debugger.

 

Please post a zip of one example that dies sometimes, the INI, the ROM, and the EXE... rather than guess I'd rather reproduce it. The keyboard paste doesn't take effect until the ROM code scans the keyboard, it's not faking the keyboard hardware, so there's no reason I can think of why it would be causing the emulator to hang before it comes up at all. Let me see what you have going on. :)

 

You are focused on a 1-second delay, and it's not impossible to be related, but it /should/ not happen, so let's fix the real problem.

 

You do need a padding character here and there as in the examples I posted, because the OS does extra keyboard scans that are not part of the user interaction.

 

Hi Tursi, try with the attached disk, the .ini is just the standard untouched Classic99.ini with XB roms and V9T9 disk image the problem arises when a previous Classic99 session had CPU Throttle set to max speed it would save the CPUthrottle setting to the .ini on exit and then on startup of the 99er26 disk (in XB) caused it to not find the LOAD file on the disk, I confirmed this in the debugger with :-

 

Loading file from resource: Type D, Bank 0, Address 0x1100, Length 0x01A0

Loading file from resource: Type S, Bank 0, Address 0x0000, Length 0x8000

Loading file from resource: Type P, Bank 0, Address 0x0000, Length 0xF800

Loading file from resource: Type G, Bank -1, Address 0x0000, Length 0x6000

Loading file from resource: Type C, Bank -1, Address 0x0000, Length 0x2000

Loading file (C:\GameBase\TI99-4A\system\phm3026c.bin) from disk: Type C, Bank 0, Address 0x6000, Length 0x2000

Loading file (C:\GameBase\TI99-4A\system\phm3026d.bin) from disk: Type X, Bank 0, Address 0x6000, Length 0x2000

Loading file (C:\GameBase\TI99-4A\system\phm3026g.bin) from disk: Type G, Bank 0, Address 0x6000, Length 0x8000

Loading file from resource: Type K, Bank 0, Address 0x0000, Length 0x0000

Building CPU

Starting Sound

Sample rate: 22050hz, Buffer size: 44160 bytes

Starting Disk

Starting Video

Video Thread began...

Starting video loop

Client rect now 1088 x 826

Timer thread began...

Speech Buffer thread began...

CPU thread began...

Starting Window management

Setting top of VRAM to >37D7 (3 files)

Loading to VDP >096F DSK1.LOAD on drive type Image

Can't find file LOAD on c:\gbgame\0\99er26.dsk.

Setting file error 7 on file buffer 27

Opening DSK1.LOAD on drive type Image

PAB requested file type is IV254

Allocating file buffer 0

Can't find file LOAD on c:\gbgame\0\99er26.dsk.

Releasing file buffer 18

Setting file error 7 on file buffer 29

Loading to VDP >0974 DSK1.SLITHER_X on drive type Image

loading 0x1217 bytes

 

OX.

99er26.zip

Edited by OX.
Link to comment
Share on other sites

If you are messing around with the CPU throttles, then the black screen/hang issue you are seeing may simply be that the CPU speed accidentally got saved as 0. I've seen that now and then and just never really worried about it. If you see it, just look in the Options dialog and see whether the CPU speed is not at 100%?

 

This disk, 99er26, doesn't have a LOAD program. So no bug there. You can even tell this in the readme file that comes with it:

 

Bromosel presents for the TI-99/4a and it's V9T9-Emulator:

99er26.dsk from the 99'er magazine

Release: February 2000

 

Make this disk DISK1

RUN "DSK1.MENU"

 

Bird Brain

Characters

Division Tutor

Loan Calculator

Peg Jump

Quiz-Make

Quiz-Take

Slither

 

Use TI99Dir to open DSK images and double check their directories, or you can get a catalog from inside Classic99 using ARC303G (assuming a standard zip archive, this is a file in the DSK1 subfolder):

 

-select Editor/Assembler cartrige (from the cartridge->apps menu, then select it from the TI selection screen)

-make sure DSK1 is configured to the DSK1\ subfolder where the ARC303G file is with the FIAD type

-select option 5

-enter "DSK1.ARC303G"

-press space to skip the shareware message, and select 3) Catalog Disk

-Load the disk you want to catalog into any slot and then select it in ARC303 to see the listing

 

Or you can use the disk manager of your choice in the TI. But TI99Dir is a lot faster. ;)

Link to comment
Share on other sites

If you are messing around with the CPU throttles, then the black screen/hang issue you are seeing may simply be that the CPU speed accidentally got saved as 0. I've seen that now and then and just never really worried about it. If you see it, just look in the Options dialog and see whether the CPU speed is not at 100%?

 

This disk, 99er26, doesn't have a LOAD program. So no bug there. You can even tell this in the readme file that comes with it:

 

Bromosel presents for the TI-99/4a and it's V9T9-Emulator:

99er26.dsk from the 99'er magazine

Release: February 2000

 

Make this disk DISK1

RUN "DSK1.MENU"

 

Bird Brain

Characters

Division Tutor

Loan Calculator

Peg Jump

Quiz-Make

Quiz-Take

Slither

 

Use TI99Dir to open DSK images and double check their directories, or you can get a catalog from inside Classic99 using ARC303G (assuming a standard zip archive, this is a file in the DSK1 subfolder):

 

-select Editor/Assembler cartrige (from the cartridge->apps menu, then select it from the TI selection screen)

-make sure DSK1 is configured to the DSK1\ subfolder where the ARC303G file is with the FIAD type

-select option 5

-enter "DSK1.ARC303G"

-press space to skip the shareware message, and select 3) Catalog Disk

-Load the disk you want to catalog into any slot and then select it in ARC303 to see the listing

 

Or you can use the disk manager of your choice in the TI. But TI99Dir is a lot faster. ;)

 

I know that the disk does not have a LOAD file but this is where the error occured in the debugger? -

 

Can't find file LOAD on c:\gbgame\0\99er26.dsk.

Setting file error 7 on file buffer 27

Opening DSK1.LOAD on drive type Image

PAB requested file type is IV254

Allocating file buffer 0

Can't find file LOAD on c:\gbgame\0\99er26.dsk.

Releasing file buffer 18

Setting file error 7 on file buffer 29

 

I used -

 

rom0="C|6000|2000|C:\GameBase\TI99-4A\system\phm3026c.bin"

rom1="X|6000|2000|C:\GameBase\TI99-4A\system\phm3026d.bin"

rom2="G|6000|8000|C:\GameBase\TI99-4A\system\phm3026g.bin"

rom3="K|0000|0000|x22 RUN"DSK1.SLITHER_X"\n"

 

In the .ini, nothing wrong there - except it freezes when started in max cpu speed. :(

Edited by OX.
Link to comment
Share on other sites

I know that the disk does not have a LOAD file but this is where the error occured in the debugger? -

 

Can't find file LOAD on c:\gbgame\0\99er26.dsk.

Setting file error 7 on file buffer 27

Opening DSK1.LOAD on drive type Image

PAB requested file type is IV254

Allocating file buffer 0

Can't find file LOAD on c:\gbgame\0\99er26.dsk.

Releasing file buffer 18

Setting file error 7 on file buffer 29

 

I used -

 

rom0="C|6000|2000|C:\GameBase\TI99-4A\system\phm3026c.bin"

rom1="X|6000|2000|C:\GameBase\TI99-4A\system\phm3026d.bin"

rom2="G|6000|8000|C:\GameBase\TI99-4A\system\phm3026g.bin"

rom3="K|0000|0000|x22 RUN"DSK1.SLITHER_X"\n"

 

In the .ini, nothing wrong there - except it freezes when started in max cpu speed. :(

 

There are two speed settings in Classic99.

 

The main one is the Options->CPU Throttling setting, which gives you Normal, Overdrive, Maximum and Slow.

 

The other is an older one in the Options dialog, under Options->Options, called CPU tuning, which lets you adjust the CPU speed between 0% and 100%.

 

post-12959-0-48928100-1307753264_thumb.jpg

 

It is this option that I believe is causing your black screen issue. I have seen cases where it gets set to 0%. If that is the case you are seeing, I need to know.

 

As for the log you specify above, it looks like normal operation to me. The black screen only occurs if the system isn't running at all. In that case we can see XB attempt to open DSK1.LOAD twice (as is normal). XB doesn't give the user keyboard control until after it looks at DSK1 for a LOAD program.

 

The quotes in your INI are not what I would recommend, however, I've never tested like that. I would remove the quotes from around the entire string. They are not supposed to be there. (That it works now is fine but I can not guarantee that it always will). That is, change this:

 

rom0="C|6000|2000|C:\GameBase\TI99-4A\system\phm3026c.bin"

to

rom0=C|6000|2000|C:\GameBase\TI99-4A\system\phm3026c.bin

 

As an aside, it is also not necessary to quote pathnames with spaces in them - look at my previous examples.

 

Your keypresses are clearly working or it would never get as far as loading SLITHER_X. The keypresses can only work if the system is running.

 

As for System Maximum, I recommend you do not use that. If you check the known issues, System Maximum does not work very well on many people's machines. If you want a speed boost (recommended with caution), use CPU Overdrive.

 

My final comment would be a recommendation that you use the built-in Extended BASIC and not external ROM files. It's better tested and any future keyboard patches will rely on it. To load XB replace:

 

rom0="C|6000|2000|C:\GameBase\TI99-4A\system\phm3026c.bin"

rom1="X|6000|2000|C:\GameBase\TI99-4A\system\phm3026d.bin"

rom2="G|6000|8000|C:\GameBase\TI99-4A\system\phm3026g.bin"

 

with:

 

rom0=O|0000|0004|XB

 

O - ROM type is "other"

The first number is the group index - Apps is 0000, Games is 0001 (same order as in the Cartridge menu)

The second number is the cartridge index - the first entry is 0000, so XB is 0004 under Apps.

And the last field is ignored, you can put anything there.

 

Please see the previous examples I gave you.

 

Also, in my opinion your front-end should DELETE the Classic99.ini file after each run. So a previous run would never be able to affect the next one if you did that.

Edited by Tursi
Link to comment
Share on other sites

The other is an older one in the Options dialog, under Options->Options, called CPU tuning, which lets you adjust the CPU speed between 0% and 100%.

 

Attached Image: Classic99Options.jpg

 

It is this option that I believe is causing your black screen issue. I have seen cases where it gets set to 0%. If that is the case you are seeing, I need to know.

 

Ive never changed the CPU tuning option but if that's what is causing the black screen then it would help if I reset the value in the .ini each time, is there a setting for this in the .ini and what is the default value?

Edited by OX.
Link to comment
Share on other sites

Ive never changed the CPU tuning option but if that's what is causing the black screen then it would help if I reset the value in the .ini each time, is there a setting for this in the .ini and what is the default value?

 

All the INI settings are in the manual. You can look there for it, but this one may be going away.

 

It's not that I think you've touched it, I think that it's getting saved as zero inadvertantly. It's value is internally altered when you use the newer settings for maximum/overdrive/etc. It would be best to remove it completely. Is there a reason that you are resisting deleting the INI between runs?

Link to comment
Share on other sites

Ive never changed the CPU tuning option but if that's what is causing the black screen then it would help if I reset the value in the .ini each time, is there a setting for this in the .ini and what is the default value?

 

All the INI settings are in the manual. You can look there for it, but this one may be going away.

 

It's not that I think you've touched it, I think that it's getting saved as zero inadvertantly. It's value is internally altered when you use the newer settings for maximum/overdrive/etc. It would be best to remove it completely. Is there a reason that you are resisting deleting the INI between runs?

 

The script language doesn't hold the facility to delete .ini files just change entries within them, would it matter if the setting is being saved as 0 on exit if I can reset it before Classic99 is ran?

Link to comment
Share on other sites

Well... that's going to cause your previously noted issue of the INI that grows forever, isn't it? How are you deleting old ROM entries so that they don't conflict with new ones? (I guess if you always overwrite the same number of entries, that would be fine.)

 

I think you'll have long term problems if you don't come up with a way to erase the INI file after run, and it will be very hard for you to troubleshoot. (In particular I am thinking about the case where people start screwing with the settings). The front-end doesn't let you run a batch file or anything?

 

You should be able to reset this value on startup. It's under "emulation" and the key is "maxcpf". By default it should be set to 50000 (fifty thousand).

Link to comment
Share on other sites

Well... that's going to cause your previously noted issue of the INI that grows forever, isn't it? How are you deleting old ROM entries so that they don't conflict with new ones? (I guess if you always overwrite the same number of entries, that would be fine.)

 

I think you'll have long term problems if you don't come up with a way to erase the INI file after run, and it will be very hard for you to troubleshoot. (In particular I am thinking about the case where people start screwing with the settings). The front-end doesn't let you run a batch file or anything?

 

You should be able to reset this value on startup. It's under "emulation" and the key is "maxcpf". By default it should be set to 50000 (fifty thousand).

 

The .ini doesn't grown, the entries within the .ini are replaced each time - as long as I specify which entries.

 

I'll replace the maxcpf entry and that should sort it.

 

Thenks, OX.

Link to comment
Share on other sites

Is there no problem with the case where you first play a game with multiple ROMs (like, say, Pole Position which has two ROMs), and then play a game with just one ROM (say, like A-Maze-Ing which has just a single GROM)?

Link to comment
Share on other sites

Is there no problem with the case where you first play a game with multiple ROMs (like, say, Pole Position which has two ROMs), and then play a game with just one ROM (say, like A-Maze-Ing which has just a single GROM)?

 

No, Iv'e basically got a big nested statement that tracks through rom entries 0 - 5 (I've never found anything that needs any more) in the script which will assign any required rom entries and then blanks out any unrequired rom entries as it drops out, thus ensuring there is never an illegal setup.

Edited by OX.
Link to comment
Share on other sites

  • 1 month later...

Hi Tursi, can I possibly add a request to respawn the Classic99 window at the same place it was previously closed? Just a slight annoyance as I prefer it in window mode as it defaults to the native 4:3 ratio as opposed to the 16:9 ratio when in full screen of most monitors used today.

 

PS. no other quibbles about Classic99 and Gamebase TI99/4a is coming along just fine.

Link to comment
Share on other sites

Hi Tursi,

 

any chance some shortcut-keys can be defined for toggling the below menu options?

 

Layers
Disable Sprites    (*)
Disable Background (*)

 

I'm currently working on some bitmap screens and I'm using overlay sprites for correcting the pixel issues.

So I have to reposition the sprites, see how it looks like with sprites/without sprites/without background.

 

Great feature by the way :thumbsup: :thumbsup: :thumbsup:

Link to comment
Share on other sites

Classic99 357

 

-New cleaner tree structure (delete old src folder before unpacking)

-Updated to Visual Studio 2010

-Windows support upgraded to Windows 2000 and higher

-Deprecated SID engine (old SIDdll.dll should still work)

-Original palette restored

-added option to disable the inverted caps lock

-window location is saved on exit

-Added F7 to toggle sprites and F8 to toggle background (scroll lock must be on)

 

(I snuck a few tiny releases out without announcing them, they were very minor and just for one project)

 

http://harmlesslion.com/software/classic99

 

Yes, you can finally build the project. However, you will need Visual Studio 2010. For people running systems older than Windows 2000, do not upgrade, it will not run. (Sorry!) All needed ROMs are included now too, so you should be able to unpack, remove source control information (it will ask), and build. I've only tested as far back as Windows XP, let me know in case of issues.

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