Jump to content
IGNORED

Classic99 Updates


Tursi

Recommended Posts

I don't currently guarantee any of the F18A enhanced sprites in Classic99 - they were known broken a while back and I've not been able to get to it due to work. So.. yeah.. my knowledge is simply that it's not right. But you can check the F18A GPU settings and see if it's turned on or off. I thought white was the 9918A version and blue was the F18A version... a quick test here suggests that is right (except that I think the fact it was blue was part of the problem ;) )

 

To disable the F18A GPU and force it back to 9918A mode, just select the option under video for 'Enable F18A GPU'. That will give you the white plane (but no F18A support, which is probably just as well now that I'm so far behind ;) ).

  • Like 2
Link to comment
Share on other sites

I don't currently guarantee any of the F18A enhanced sprites in Classic99 - they were known broken a while back and I've not been able to get to it due to work. So.. yeah.. my knowledge is simply that it's not right. But you can check the F18A GPU settings and see if it's turned on or off. I thought white was the 9918A version and blue was the F18A version... a quick test here suggests that is right (except that I think the fact it was blue was part of the problem ;) )

 

To disable the F18A GPU and force it back to 9918A mode, just select the option under video for 'Enable F18A GPU'. That will give you the white plane (but no F18A support, which is probably just as well now that I'm so far behind ;) ).

 

Thank you, the "disable" F18A did the job in Classic99! (the plane is white again and other colours are back to normal)

  • Like 1
Link to comment
Share on other sites

I don't currently guarantee any of the F18A enhanced sprites in Classic99 - they were known broken a while back and I've not been able to get to it due to work. So.. yeah.. my knowledge is simply that it's not right. But you can check the F18A GPU settings and see if it's turned on or off. I thought white was the 9918A version and blue was the F18A version... a quick test here suggests that is right (except that I think the fact it was blue was part of the problem ;) )

 

To disable the F18A GPU and force it back to 9918A mode, just select the option under video for 'Enable F18A GPU'. That will give you the white plane (but no F18A support, which is probably just as well now that I'm so far behind ;) ).

 

I'm happy to try to fix my F18A code in Classic99 if you want me to. But I really only added it as a gimmick - I didn't expect it to stay there forever. To build full F18A support into Classic99 it would be better to separate the F18A code from the 9918A code, or perhaps make it a 'subsclass' (but then the 9918A code would probably also have to be rewritten). I would be happy to contribute to a F18A implementation in Classic99 if I knew I couldn't break anything in the 9918A code. I have all the code for a line by line renderer in JS99er.

Link to comment
Share on other sites

I understand, Rasmus, and I'm glad you contributed it. But it's all getting blown away when I get back to the States, so I'm just as happy leaving it broken for now, unless I can get to it. That said... I do intend to split the systems up better -- I'll send you a PM when I have time to write down what I was looking for as an interface. If it sounds like something you're comfortable with, I'd love to take your F18A renderer in -- saves me a BIG step. :)

  • Like 1
Link to comment
Share on other sites

If it sounds like something you're comfortable with, I'd love to take your F18A renderer in -- saves me a BIG step. :)

 

Damn right! Andif a new F18A implementation executed 9900 like the actual F18A did, that would be awesome! (Might struggle getting 100mhz out of it though!)

Link to comment
Share on other sites

 

Damn right! Andif a new F18A implementation executed 9900 like the actual F18A did, that would be awesome! (Might struggle getting 100mhz out of it though!)

 

I would just need to add support for the rest of the registers - it's already reasonably well tested in Classic99. Speed is a bit of an unknown though, since although we know it's clocked at 100MHz, the instructions don't take the same number of cycles as the real 9900 (most are much more efficient). We could work out the exact timing but that's a ways off. (And yeah, CPU intensive to emulate :) ). But I thought JS99er handled that just fine as well?

Link to comment
Share on other sites

I understand, Rasmus, and I'm glad you contributed it. But it's all getting blown away when I get back to the States, so I'm just as happy leaving it broken for now, unless I can get to it. That said... I do intend to split the systems up better -- I'll send you a PM when I have time to write down what I was looking for as an interface. If it sounds like something you're comfortable with, I'd love to take your F18A renderer in -- saves me a BIG step. :)

 

I just had to look into this :). The loading of the F18A palette broke when you changed the colors to 32-bit. To fix the ECM sprites you just need to replace line 4155 of Tiemul.cpp with this one:

F18APalette[F18APaletteRegisterNo] = ((F18APaletteRegisterData & 0x0f) << 20) | ((c & 0xf0) <<  | ((c & 0x0f) << 4);
  • Like 2
Link to comment
Share on other sites

I just had to look into this :). The loading of the F18A palette broke when you changed the colors to 32-bit. To fix the ECM sprites you just need to replace line 4155 of Tiemul.cpp with this one:


F18APalette[F18APaletteRegisterNo] = ((F18APaletteRegisterData & 0x0f) << 20) | ((c & 0xf0) <<  | ((c & 0x0f) << 4);

Hah, that does it! :) Thanks, that will be in the next release.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

F18A palette fix (Thanks to Rasmus!)

VDP timing tweak

new debugger command for the command window: "DISASM=," will write a disassembly of the specified range to the file "disasm.txt" in the current working folder

new breakpoint option: Lxxxx=# - logs all writes to address 'xxxx' to disk file # (1-9). Disk files are just binary dumps of data and named "dump#.bin" -- this allows up to 9 simultaneous writes.

Classic99 v388

 

Note: the last version on my server was actually 386 (since the crash), so it had a few previous bugs reintroduced, like bad text file handling and an older version of Turboforth. Consider this re-fixing those. ;)

  • Like 5
Link to comment
Share on other sites

 

I would just need to add support for the rest of the registers - it's already reasonably well tested in Classic99. Speed is a bit of an unknown though, since although we know it's clocked at 100MHz, the instructions don't take the same number of cycles as the real 9900 (most are much more efficient). We could work out the exact timing but that's a ways off. (And yeah, CPU intensive to emulate :) ). But I thought JS99er handled that just fine as well?

 

I did not attempt to match the original 9900 instruction timing when I implemented the F18A GPU. I was more interested in making the instructions as efficient as possible. Some *major* differences are the multiply, divide, and shift instructions. A multiply happens in a single ALU cycle (10ns) just like any other basic instruction. Divide and shift are guaranteed to execute in 16-ALU cycles (160ns) maximum. All other instructions have a single-clock (10ns) ALU cycle. Instruction timing variations are mostly just memory addressing, plus fetch and decode overhead.

 

The F18A GPU could be faster if I had implemented the VRAM as 16-bit internally, but I built most of the VDP before deciding to implement the GPU. All 16-bit memory fetches in the GPU take two cycles, one for each byte. However, byte memory access is efficient.

 

Getting exact timing information for the F18A GPU will not be a problem.

Link to comment
Share on other sites

Not trivially... it's not actually a text window, and only 20 lines of debug are kept in the debug buffer.

 

However, all debug is also sent out using the Windows OutputDebugString function, meaning that you can use most debuggers to capture the full output. A good standalone tool for this is DebugView from SysInternals (turn off 'Force carriage returns'): https://technet.microsoft.com/en-gb/sysinternals/bb896647.aspx

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

I'm not familiar with RBASIC?

LOL you worked on it.

It was the EA Support Routines I moved from the EA cart into the TI Basic area so you could load any modules and have TI Basic EA Support commands without a EA Cart.

 

I can not find the thread on AtariAge to show you it. Someone was working on project and needed it, so I made RBASIC.

Link to comment
Share on other sites

Automatically loading files

Would it be possible to automatically load .bin files into Classic99? (or does it exist already?)

(e.g. I put .bin in a directory, then open the directory and all these are shown under Cartridge User option.

(I am aware of making the .ini file, but it makes things much more easier like in V9T9)

but you need to be aware of some modules have the same title like "Parker Brothers" and "Milliken" then

it is hard to differentiate between the .bin

 

Now I need to load .bin manually (I am using multiple computers) and lost my .ini file with some pre-configs.

 

 

Windows 10

Another item - does Windows 10 (both Home and Professional) slow down all applications in general?

After I upgraded I feel that Classic99 runs slower (e.g. Munch Man it has hick ups), but it could be a generic issue with Windows

(I do not know how to analyse it or how to measure the performance hick up, is there a way to do this?)

 

 

(...I should not have upgraded to it, I already got 4x Light Blue Screen errors "your PC run into problems"

(my PC? ... all Windows 7 PCs were running fine using Windows 7 64-bit without any issues....

I guess the message should be: "we created a new unstable version of software called "Windows 10")

(I am okay with Windows 10, but I need stability)

  • Like 1
Link to comment
Share on other sites

Automatically loading files

Would it be possible to automatically load .bin files into Classic99? (or does it exist already?)

(e.g. I put .bin in a directory, then open the directory and all these are shown under Cartridge User option.

(I am aware of making the .ini file, but it makes things much more easier like in V9T9)

but you need to be aware of some modules have the same title like "Parker Brothers" and "Milliken" then

it is hard to differentiate between the .bin

 

Now I need to load .bin manually (I am using multiple computers) and lost my .ini file with some pre-configs.

 

AFAIK, only INI file configuration or Cartridge-->User-->Open... menu option are possible in Classic99.

Windows 10

Another item - does Windows 10 (both Home and Professional) slow down all applications in general?

After I upgraded I feel that Classic99 runs slower (e.g. Munch Man it has hick ups), but it could be a generic issue with Windows

(I do not know how to analyse it or how to measure the performance hick up, is there a way to do this?)

 

(...I should not have upgraded to it, I already got 4x Light Blue Screen errors "your PC run into problems"

(my PC? ... all Windows 7 PCs were running fine using Windows 7 64-bit without any issues....

I guess the message should be: "we created a new unstable version of software called "Windows 10")

(I am okay with Windows 10, but I need stability)

 

It appears to me that, by offering the free upgrade to Win10, Microsoft made us all beta testers. I, for one, reverted to Win7Pro for all the reasons you suggest.

 

...lee

  • Like 1
Link to comment
Share on other sites

Re: Windows 10 slowdown

* This happens on 1x Laptop (3 Gb, Windows 10 Home version)

When the "Enable Joysticks" are on, it is slow, but when unticked it works normal, see video:

http://www.globeron.com/freedownload/services/TI99/Parsec-Classic99.mp4

Could any process impacting it? (Firewall, or something else?)

(I am not using the Joy2Key here, that one is turned off)

 

(I tried on another laptop 8 Gb Mem, Windows 10 Professional version)

and do not have the issue here so far.

 

 

Parsec (not Windows 10 related, but Classic99 implementation related):

Another difference I noticed is that on a real TI it is possible to Fire continuously and move the ship up and down,

but in Classic99 it is one or the other (thus or Fire or move, that makes the game hard to play, especially with the Urbanites, etc.)

Link to comment
Share on other sites

Hi Globeron,

 

for your customized INI / BINs in Classic99, maybe you want to have a look here. This is a very good repository :)

 

http://atariage.com/forums/topic/243591-a-my-mode-for-say-big-thanks-at-all-ti99-community/?p=3340815

 

 

For Windows 10 I can only say the same about like to Windows Millenium and Windows Vista:

 

Forget about it. Don´t do that. This is nothing for productive work.

This is for Microsofts experience only, and comprimising your privacy in an extremely way (!)

 

xXx

  • Like 1
Link to comment
Share on other sites

I too have noticed Classic99 having hiccups running under Windows 10!

 

Munchman - he died, and he paused halfway through dying - he was halfway into the floor and he just stopped ... so did all the monsters too!

This lasted about 3 seconds. There are also other speed issues with various games.

 

When I did this sound test;

10 FOR L=110 TO 220

20 CALL SOUND(-L,L,0)

30 NEXT L

That should produce a smooth upscale sound - it didn't! It DOES in JS99er though, on my Acer Chromebook.

 

So yeah Windows 10 is a complete bag of balls - ALSO - have you noticed under certain emulators, when we go to load a file, the bloody cloud option thing comes up? :)

  • Like 1
Link to comment
Share on other sites

Re: Windows 10 slowdown

* This happens on 1x Laptop (3 Gb, Windows 10 Home version)

When the "Enable Joysticks" are on, it is slow, but when unticked it works normal, see video:

http://www.globeron.com/freedownload/services/TI99/Parsec-Classic99.mp4

Could any process impacting it? (Firewall, or something else?)

(I am not using the Joy2Key here, that one is turned off)

 

(I tried on another laptop 8 Gb Mem, Windows 10 Professional version)

and do not have the issue here so far.

 

 

Parsec (not Windows 10 related, but Classic99 implementation related):

Another difference I noticed is that on a real TI it is possible to Fire continuously and move the ship up and down,

but in Classic99 it is one or the other (thus or Fire or move, that makes the game hard to play, especially with the Urbanites, etc.)

 

 

Parsec (not Windows 10 related, but Classic99 implementation related):

Another difference I noticed is that on a real TI it is possible to Fire continuously and move the ship up and down,

but in Classic99 it is one or the other (thus or Fire or move, that makes the game hard to play, especially with the Urbanites, etc.)

 

>> if you use E,S,D,X as the "TI-arrows" and the Q (then the problem is as per above)

 

>> but if you use the real arrows on a PC-keyboard and the Q, then it works like the Joystick on a TI (and you can move while shooting)

  • Like 1
Link to comment
Share on other sites

Automatically loading files

Would it be possible to automatically load .bin files into Classic99? (or does it exist already?)

(e.g. I put .bin in a directory, then open the directory and all these are shown under Cartridge User option.

Command line works with the same rules as Cartridge->User->Open, I put that in for someone a while back. The manual is getting pretty badly out of date, but nobody ever found the Easter Egg so I figure it's not being read anyway. (No, actually I'm just pretty distracted ;) ).

 

classic99 -rom <filename>

 

Just like with cartridge->user->open, you only pass one filename and it will search for the others (it uses the same mechanism). It's just a quickie hack but it works. :)

 

(Just noticed that's not exactly what you asked for... it would be possible to write a tool to create the INI file, maybe... but I don't think I'd put that in Classic99 itself...)

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

When the "Enable Joysticks" are on, it is slow, but when unticked it works normal, see video:

I had this issue long ago with real analog joysticks on a Sound Blaster game port, but it went away for me with USB. The problem (likely) is that Classic99 polls the joystick API way more often than it should (for every CRU request!), and so if the driver is slow, doesn't buffer, or needs delays, that can have an impact. The impact would be worse on some titles than others depending on how much they read. There's no fix for it right now save trying a different joystick, but it's educational to learn it still impacts people, it sort of fell off my radar to fix.

Link to comment
Share on other sites

>> if you use E,S,D,X as the "TI-arrows" and the Q (then the problem is as per above)

>> but if you use the real arrows on a PC-keyboard and the Q, then it works like the Joystick on a TI (and you can move while shooting)

This is more keyboard driver than Classic99. ;) Classic99 treats the keys individually, but can only deal with the keypresses it gets. You can try a keyboard test tool and see if your keyboard actually responds to the combinations you say don't work. (Also, when using ESDX, try the period key for fire instead of Q, that's the key Parsec set aside for keyboard play ;) ).

 

I see the same response described on my keyboard, but using period avoids it.

 

EDIT: Hmm. The behavior is more odd than I expected, actually. I'll need to dig into it some to understand it. Period DOES work correctly but the symptoms are not what I described above.

Edited by Tursi
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...