Ami99 Official Bug Report...

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

Posted by Stiletto on November 12, 1999 at 22:37:50:

Using Win95 4.00.950B running IE5 v5.00.2314.1003, I get the following error message(s) -
A device attached to the system is not functioning."
quickly followed by this other message:
"The AMI99.EXE file is linked to missing export KERNEL32.DLL:CreateWaitableTimerA."
My version of KERNEL32.DLL (a system file) is 4.03.1212. Can anyone else confirm this error? I'd hate to have to upgrade at this late date, or reinstall Win95.
Please, Tursi, I'd like a response to this first one at least, the rest when you have time. Please let it be your bug, not mine!

By the way, why is "time short?" I'd sure wish you had the time to work on the program.
I wish I could help you with your sprite priority problem, but I can't. I'm not sure which storage compartment my old TI is in, if at all.

Are there any images of the Atari carts floating around? I have mostly the original DOAD's and FIAD's and modules (carts) that came with, while it was still out and about. But even CADD isn't selling the module images of, say, Q-Bert. I'd love to form a webpage of all TI99 module and disk images, but unfortunately TI seems pretty dedicated to erasing all TI rom images (including calculators) off the Internet. Got any ideas? Email me. We're fighting against machine obsolescence for nostalgia's sake, and TI isn't helping. Well, they've at least let CADD be licensed ROM distributors, but while it's cheap, they don't have EVERYTHING. (for some reason, I'd much rather play the TI99 version of Q-Bert than the MAME version. Just kicks, I guess.)

Is the speech synthesizer the 5500 or 5520? i'm confused. Would digging up more info on the 5500 help make the speech sound better than in the speechtest program?

Finally - the old build 101799 worked great on my machine, if slow and no sound. Now the new one just crashes with this "missing export" error. What gives???


P.S. To load a cart, say, Alpiner, in MESS - type "mess ti99 alpinerc.bin alpinerg.bin" and make sure both ROMS are in the roms/ti99 directory. However, it doesn't matter right now, since Raphael Nabet's (and most other computer drivers as well) TI99 driver's keyboard support is very sketchy - and while you can see Alpiner listed in the menu when you PRESS A KEY to move to the menu screen, you can't choose 2 and run the game, since currently, the key "2" does not exist. You can press "1", however, go into TI BASIC, and see what keys are recognized. 3 cheers for one of the more advanced TI emulators out there, Ami99!

P.P.S. If you hang in there another week or so until I have my new 20.4GB UltraATA 66 HD formatted and partitioned how I want, I can test Ami99 on Win2000 Release Candidate 2, if ya want. :)


Less Important Comments on Ami99 DX 1.0:

Correction to Readme: My graphics card drivers haven't been updated in over 2 years, and are thus made with DirectX 3.0 in mind. However, I have DirectX 7.0 installed and have seen no problems thus far. Besides, I can't imagine that you are using any DX6-specific speedups. In other words, remove that shite about my gfx card! Leave my Number Nine Imagine 128 Series II 8 MB VRAM alone! ;)

BTW, thanks for the new "Thanks" section in the Readme. First time I've ever been credited for anything in the emulation community. Fantastic. Now I have something to pass on to my children. ;)

Correction to Readme:
June 1993 - TI Emulator 386 is the original name of V9T9 when it comes out on a BBS that Edward Swartz frequents.
February 29th, 1994 - TI Emulator v4.0 hits the Internet.
April 24th, 1994 - TIEMUL v5.0 comes out.
April 29th, 1994 - TIEMUL v5.01 comes out.
July 1995 - V9T9 (note the name change) v6.0 comes out.

Well, you asked, Tursi. ("This project started after I saw V9T9 (what was it called back then? I forget...)") What does this mean? *ahem* Take all the development time you need. BTW, I have version 4.0 and 5.01, but not the source code. V6.0 is best anyhow.

TODO (not in any sort of order):
1.) Implement GUI and proper configuration file
I highly agree - this is a necessary stage of development for the program.
2.) Complete the VDP with support for multicolor mode, though I've no way to test it
I don't suppose you can write a XB program to test it? What's multicolor mode? Do I see it in any game I might recognize?
3.) Complete joystick support (correct CRU response)
Again - I highly agree. Add mouse emulation of joystick, keyboard emulation of joystick, and DirectInput support, please.
4.) Write GPL interpreter (distant future)
What's a GPL interpreter? What's GPL, then?
5.) Examine feasibility of Speech Synth support (before GPL interpreter)
To my knowledge - accomplished and more than feasible.
6.) Write psuedo DSR for RS232 and PIO support.
What's PIO, again?
7.) Complete psuedo DSR for disk.
Please add disk image support, besides using Ed's novel FIAD format. Perhaps you could include not only V9T9 image compatibility but also PC99? (Ask that guy who made the file converter programs)
8.) Replace CPU core with assembly routines from V9T9 source?
I'm not sure the speedup we'll see, since it's already as fast as it was using Allegro (or so you say) Do it anyhow, when you have the chance - perhaps we'll need speed limiters!

Correction to Readme: ghostly "cart." at EOF.

Questions and Comments:
1.) Would having non-simulated interrupts be an improvement? It would make those programs that relied on reading the changed registers work, at least.
2.) Please make speed control a NON-hack. :)
3.) I'm sure that most of the TI99'er hardcore fans will want a 50Hz switch.
4.) Cassette loading/writing WOULD be rather cool then... if you don't want to do that, then specify how a *.WAV file containing the casette info should read, and randomly access THAT. Shouldn't be too hard, I'd imagine. Most of us could figure out how to attach a tape player to the Audio In jack of our soundcard, and use an audio program to record it all. Would that be an enormously long wave file? I never used my cassette player with my TI - though I had one that could be hardware-controlled - and I still have a Tunnels of Doom cassette poking around.
5.) Please add the ability to remap Key's on the PC keyboard to the TI-99's, if you can. I hate pressing all those keys just to do "Redo." And finish the joystick interpretation if you can. I'd love to play Parsec, with speech, full-screen and in full-speed, using my Logitech Wingman Digital Extreme USB joystick.
6.) Please add other audio file generation as well. (SINE.WAV, TRIANGLE.WAV) so I can play. :) Or, perhaps keep non-generation around also, to override auto- generation if switched on in the menu system.
7.) Want semi-thermal printer compatibility? Automatically generate Post-Script images when sending to the "printer." Then, advertise a good PS viewer/printer, like RoPS. (Just nitpicking!)
8.) 9938/58 VDP would be very cool. Also, I'd imagine that most of the popular memory-enhancement devices are the same as the ones supported by PC99.
9.) Ya never know when the 5-sprite-on-a-line effect might look good. It would be a feature of ACCURATE emulation, anyhow (although that isn't a goal of this project and I don't really care whether it is or not.)
10.) Did you ever get volume control working?
11.) "It would have been nice, if I had proceeded with this, to kick the screen into
640x480, and let you watch the TI screen in one corner, see the disassembly in a second corner, see the registers and a memory dump in the third, and had a little control panel/hex editor in the fourth. Wouldn't it?" This is actually doable now - just display the video in one window, and then the debugging info surrounding the frame.
12.) There's a way that MAME and MESS uses to do auto-frameskip and speed-limiting in general based on some feature of the processor it's running on, but I forget. Ask a MAMEDEV or MESSDEV, or look in the source yourself.
13.) Oh yeah, add screenshot support at least, possibly movie support. Think you could do demos as well? (Like V9T9)
14.) How about on-the-fly debug enabling/disabling?
15.) Are the comments on the modules in TIDATA still valid?
16.) I bet I could find Ed Swartz on the Net, with a well-worn T-shirt for scent and a head start, if need be. Wouldn't that be cool? Full circle.

Here's a list of people who helped with V9T9, if you can dig up email addys for them:
" Jim Reiss, who sent me tons of test files, information about
disks, RS232s, file formats, protocols, and provided major suggestions
which helped me create v5.01 from the toy-like pieces of v4.0.

Jeff Lawson, who sent me the (digitized!) articles about the
speech synthesizer that gave me the information to emulate speech

Dan H. Eicher, for sending me Funnelweb to test on the emulator,
and a commented disassembly of the console ROM which helped out a WHOLE

Steve Hayter, for the "V9t9" name, and a nice round of beta-

Robert Jones, for sending me the TI speech synthesizer manual
which cleared up a few things.

Will Chose, Eric Bray, Charles Good, Tom Wills, Howie Uman,
Jesse Slicer, Brian Sedlak, and so many others that this might start to
look like an awards ceremony, for their exceptional interest in the
program, helpful suggestions, and bug-hunting."

Finally, here's a list of the people who's responded to me from time to time about my rants on V9T9 project continuation. I'm sure they won't mind if I quote them.

Andrew R. Becker ( wrote to me to say this:
"I saw your message about improving the V9T9 emulator. I wrote to Ed
several times and he told me that it was fine with him if the thing is
modified and distributed. I told him that I found out how to read and
write TI disks in a PC disk drive. A program called Anadisk has that
ability if the hardware cooperates. I wrote a little BASIC program that
translates an Anadisk "dump" file from a TI disk into a V9T9 disk image
file. I tried it with one 90 KB TI disk and it worked fine. I sent the
program to a few people by e-mail.

I was thinking about adding new disk routines to the emulator to let it
use TI disks directly. The main problem is that most PC computers don't
have both a 5.25 inch disk drive and a disk controller that will work in
single density. My tests indicate that most of the more modern disk
controllers will work in single density. I had very good results from my
newest controller, called a Boca IDE Plus. I'm not an expert at assembly
language so I would need some practice to be able to improve the
emulator. I mainly make programs in BASIC. I learned how to do a little
programming in assembly language for the TI and I have made some simple
modifications to 8086 assembly language programs. I know nothing about
programming for Windows but I did buy an old version of the Microsoft C++
compiler which was intended for making programs for Windows. I think it
includes an assembler. It should be possible to make V9T9 easier to run
without making it a Windows program.

To me, the speech synthesizer isn't so important. I don't think I would
be able to work on that. I would like to see the emulator evolve to run
like a Myarc 9640, with better video and more memory. It might also be
useful to make it emulate a TI 990 minicomputer too. I don't know if
there are any free programs available for that.

Let me know if you want to try reading a TI disk on your PC. I'll give
you hints and my program if you need them. First you have to get Anadisk.
It's shareware. I got it from the Simtel MS-DOS collection."

Frank Palazzolo informed me of MESS's hardware drivers that could be reconfigured into a MESS TI99 driver, even before Raphael Nabet thought of moving off from his Mac "port" of V9T9. You know his email.

Jeff Wilcox ( emailed me the following about LPC-10e:
"I've read your questions on the TI-99 QA forum. What caught my eye is
your questions about the speech synthesis the TI used. I myself have been
rounding up information on this over the last seven months or so, and have
accumulated a great deal of data. Actually, it's merely a matter of figuring
out what part of the ROM image holds what data.

I'm sure you know by now that the TI uses a very advanced speech
compression algorythm called LPC (Linear Prediction Coding) that basically
filters and stores characteristics of human voice in three different fields:
Pitch, Volume, and Waveform.

There are two parts to LPC. Analysis: Which is the fintering and storing
of the voice variables. (this is how the voice is compressed) And Synthesis,
which is where those variables are used to reconstruct the voice. The TI only
used the Synthesis half, and believe me, it's the EASIER half to understand.

TI researched and developed LPC for use by the Department of Defence
for use as 'Speech transmission at extremely low bitrates' I know this
becuase I am an electronic technician for the US Navy and have played with
this stuff for a while now. The source code is available on the net. It's
referred to LPC-10e. So use your favorite search engine and look for it.
However, I have only found it for SunOS systems. (Which I've learned to hate)
I don't know why we use them. If your an avid C programmer, I'm sure you can
port it.

I hope I have helped you. I want to see the TI emulation effort grow.
Ed Schwartz started it all, and I'm sad to see that few have picked up where
he left off. Imagine if he didn't leave us his code.

Any questions about LPC? Or if you have anymore information to share,
please Email me. If you can port the LPC source over to a DOS/WIN95 platform
PLEASE LET ME KNOW!! I'm not much of a programmer, I wish I was. But I'm
still learning."

Mike Wright @ CADD Electronics' email was @ when I last emailed him. He had wondered at the time if emailing Frank could help them out with speech, but he hadn't taken the time.

And as you well know, Ed Swartz's source code and documentation is a dearth of info.

Sorry this is so long, but I don't get online that often. Sorry if I mistakenly gave out a private email addy here somewhere as well. :p

Follow Ups:

Post a Followup




Optional Link URL:
Link Title:
Optional Image URL:

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