Where it's going :)


[ Follow Ups ] [ Post Followup ] [ TI-99 Emulator Forum ] [ FAQ ]

Posted by Tursi on October 25, 1999 at 07:37:21:

In Reply to: Hi and thanks! posted by Stiletto on October 24, 1999 at 13:05:13:

: However, the video is finally displaying
:completely, not just the background layer. So
:thanks for pulling through for me.

Good. You don't know how much of a pain that was. ;)

: The next thing that I'd like to have is a
:GUI/menu system of some sorts. As soon as you
:get the next stuff working, please work on that.

You may not have noticed the menu bar... ;) Most of the options are currently disabled, but they're there. How far it'll get, we'll see. :)

: Let's see... what else would be nice...

uhoh. ;)

: Joystick support. Like V9T9, if you could use
:the mouse as a sorta-joystick, that'd be cool
:too. (Capture the input like vMac does,
:although how you get un-captured, I have no
:idea). With DirectInput, though, you could
:support more than one gaming device.

I don't know what you mean about capturing input like vMac, but using the mouse as a joystick like V9T9 isn't too hard. (And it worked surprisingly well in TI Artist). It would help if the joystick support currently wasn't a hack, though. The CRU scanning only returns values for straight angles - diagonals return nothing and I'm not sure why.

: Serial/Parallel support would be cool, though I
:never used them at all.

Supporting PIO for print output I considered, though it is probably complicated by running under Windows. Serial support I considered but I'm fairly sure that trying to do low level manipulation of the serial port under Windows isn't a fun little task. ;)

:We could use a decent way to get information
:onto disk images, as well.

Ickick nonono... no disk images. I hate disk images, they're so restrictive. Emulators use them because it's easier to get more reliable and accurate emulation, but then you can't manage your files from your native OS. Even in V9T9 the filename munging is a bit annoying, cause you can't rename your files.

Not to mention, I have a 17gb hard drive. Why should my TI emulator be restricted to 180k disks? ;)

With the release of that utility to copy PC99 images to V9T9 compatible files (or even if it just does to disk, I never tried, you can use the V9T9 tools to copy to files), there is really no need for me to munge in disk image support.

Supporting native files means you can use the PC to transfer, store, and move the files around, which is in my view infinitely more useful.

: Hmm... Oh, full-screen DirectX support would be
:nice. (ya know, like 640x480 full screen,
:320x240, 800x600, so on - put that in the menu
:system.)

I thought about that, but I've been running the emulator maximized and it's close enough to full screen for me. So what exactly are the benefits of full screen mode?

-faster? Only if I write another video renderer for full screen mode, then it's *possible*, and then only if the image is not scaled (ie: like the old version).
-enables people with slow video hardware to enjoy a full screen mode without watching it paint. This is prolly the only useful benefit. Unless the menu and title bar are *that* annoying. Me, I found working in full screen all the time annoying. ;)

: Hey Tursi, unlike MESS, this actually stands a
:chance of actually becoming a competitor to PC99
:and such.

I get really nervous when I hear that, (while silently cheering inside), because of all the bad feelings it seemed to stir up on the mailing list. One person went so far as to accuse me of trying to get things for free instead of just paying for them like I should. (?) It's pretty hard to get past that stuff, so I'd rather adopt a policy of not thinking about PC99.

:Would adding a debugger at this late date be too
:hard?

Uh, there is a debugger. It's not a stellar one as yet, but it gives you disassembly, register dump, and error log onscreen (with the TI screen at the same time), and gives pause and single-step capability. Press 'HOME' to enter it, 'END' to exit it. F1 to pause (at any time), F2 to single step (can be held down for slo-mo).

:Pretty soon, with continued help from TI99
:users, we could add support for other devices as
:well.

There are a couple I'd like. ;) 9958, for one. ;)

It's interesting, though... the emulator is being thoroughly transformed. Very little now looks like the original Amiga source, except the CPU core, and that's moved into it's own file. ;)

What it really needs now is some optimization... some assembly in the CPU. The video system is hard to optimize as it's tied fairly closely to Windows. The last version got rid of the GDI calls in the middle of the main loop, but how well that works *really* depends on how decent your video card's blitter is. Having a gamers card will make a big difference over having a generic card.

In order to achieve device independance, the video system sets up a tiny buffer just 16 pixels wide, and uses the Windows pen system to plot 1 pixel of each of the TI's colors to it. Now I have 16 pens, preconverted to the current color depth. The render system goes through the screen. For each character, if it hasn't drawn that character yet, it uses those pens, and blits each pixel into the pattern buffer, then flags that character as drawn. Then it blits the whole character from the pattern buffer to the video buffer. For this reason, a screen full of repeated characters (such as 'A') draws much faster than a screen full of different characters. Bitmap mode suffers the most for this, since usually all 768 possible patterns are different.

: Thanks for mentioning me in the credits...

NP. ;)

I was pretty frustrated when I posted last night, but I thought I'd explain a bit why the speech in games, like Parsec and Alpiner, doesn't seem to work at all. The emulator just isn't keeping up. if you watch in the debugger while the games are trying to talk, you'll see all kinds of messages like 'ran out of bits in decode'. Using the speech synthesizer is a real time operator, and due to the way I've plugged it in to the emulator, it still is. The synthesizer merrily works away, processing information as it receives it. If it processes faster than it gets data, and runs out, that produces an error condition which ends the speech. The games don't seem to check for this (and it wouldn't be easy to), so they just keep happily sending data, which is now interpreted as commands. It sounds awful. :)

I have some ideas for fixing that, but everything ties on getting the streaming to work reliably first. Windows is returning me what amounts to junk when I try to process the stream, and I need to figure out how to apply that junk to get reliable control. This is largely why XB speech sucks, too, but at least there you can catch bits of recognizable sound. ;)




Follow Ups:



Post a Followup

Name:
E-Mail:

Subject:

Comments:

Optional Link URL:
Link Title:
Optional Image URL:


[ Follow Ups ] [ Post Followup ] [ TI-99 Emulator Forum ] [ FAQ ]