TI-99/4A on Mister (based on Speccery's)

https://github.com/MiSTer-devel/Main_MiSTer/wiki

Moderators: Mug UK, Zorro 2, Greenious, spiny, Sorgelig, Moderator Team

GHPS
Retro freak
Retro freak
Posts: 10
Joined: Fri Jul 13, 2018 11:14 am

Re: TI-99/4A on Mister (based on Speccery's)

Postby GHPS » Tue Sep 24, 2019 8:05 pm

alex1 wrote:Good that is now handled correctly..

Nice - one problem fixed.
alex1 wrote:Up to now I've converted/tested approx. 300 games.

You really did an amazing amount of testing!

To facilitate your work (and further testing) I just updated convertArchive.
In version 1.9 the script now supports a -l parameter to generate a sorted,
well formatted list of the cartridges generated, checksums and two additional
columns for remarks, i.e. works/non functional/starts ok and id of tester.

Usage is

Code: Select all

-l output.txt

alex1 wrote:My Donkey Kong dump was working fine when converted to a single file with your previous version of the script (1.5).

Since I played Donkey Kong a lot on my TI I would love to get this working.
It would be helpful to have the checksums (-c) for this...

alex1
Retro freak
Retro freak
Posts: 10
Joined: Fri May 25, 2018 5:28 pm

Re: TI-99/4A on Mister (based on Speccery's)

Postby alex1 » Wed Sep 25, 2019 5:07 pm

GHPS wrote:You really did an amazing amount of testing!

To facilitate your work (and further testing) I just updated convertArchive.
In version 1.9 the script now supports a -l parameter to generate a sorted,
well formatted list of the cartridges generated, checksums and two additional
columns for remarks, i.e. works/non functional/starts ok and id of tester.

That's great! The idea is to prepare an Excel file with the list of working/not working titles as I've seen for the NeoGeo core. :-)

GHPS wrote:Since I played Donkey Kong a lot on my TI I would love to get this working.
It would be helpful to have the checksums (-c) for this...


Here is the output with checksums, so you'll be able to find the correct version and play it again :D :

Memory Map
--------
Copying .\donkeyc.bin done, MD5 Checksum: e7917d25bd71ea15bb3c8de4be5aeb17 (8192k occupied)
Copying .\donkeyd.bin done, MD5 Checksum: 8dbb00ada548e24183b2ad9611ada98e (8192k occupied)
Applying 49152k of padding.
-------
Copying .\994AGROM-EP.Bin done, MD5 Checksum: ed8ff714542ba850bdec686840a79217 (24576k occupied)
Filling reserved 32768k.
Applying 8192k of padding.
-------
Filling reserved 8192k.
Filling reserved 32768k.
Copying .\994aROM.Bin done, MD5 Checksum: 6cc4bc2b6b3b0c33698e6a03759a4cab (8192k occupied)
Applying 16384k of padding.
-------
Target ROM donkey.bin created, MD5 Checksum: 36c38dd35a865848fed162d634d19067

GHPS
Retro freak
Retro freak
Posts: 10
Joined: Fri Jul 13, 2018 11:14 am

Re: TI-99/4A on Mister (based on Speccery's)

Postby GHPS » Wed Sep 25, 2019 7:42 pm

alex1 wrote:Here is the output with checksums, so you'll be able to find the correct version and play it again

The checksums helped to identify a culprit I didn't have on my short list - the 994AGROM-EP.Bin
from the original greyrogue/ColecoVision_MiSTer repo. Replaced it with the standard 994AGROM.BIN
and everything is fine now. Corrected the script as well...

Thanks for your help!

alex1 wrote: The idea is to prepare an Excel file with the list of working/not working titles as I've seen for the NeoGeo core.

If you take the latest version of the script you can specify the listing to be a csv file which can be easily imported
into Excel or LibreOffice Calc:

Code: Select all

-l output.csv

alex1
Retro freak
Retro freak
Posts: 10
Joined: Fri May 25, 2018 5:28 pm

Re: TI-99/4A on Mister (based on Speccery's)

Postby alex1 » Thu Sep 26, 2019 5:18 pm

GHPS wrote:
alex1 wrote:Here is the output with checksums, so you'll be able to find the correct version and play it again

The checksums helped to identify a culprit I didn't have on my short list - the 994AGROM-EP.Bin
from the original greyrogue/ColecoVision_MiSTer repo. Replaced it with the standard 994AGROM.BIN
and everything is fine now. Corrected the script as well...

Thanks for your help!


ok, so the issue wasn't really related to Donkey Kong rom.

I've seen that you have released the V1.95 of the script and the change log reports "experimental diskIO support".
Is there already some disk support in the TI99 core? I supposed that it wasn't included yet. And the same for speech. However, looking at the github repository from greyrogue there are some .vdh files for tms5220 e tispeechsyn, so it seems that also the speech synthesizer could be there.

Moreover, in your github page you have written, in the limits section, that "Currently there is no support for DiskIO and for Speech due missing information about the memory layout.". So, is this the only limit to have the speech and disk supported by the core? Could you, please, clarify?

GHPS
Retro freak
Retro freak
Posts: 10
Joined: Fri Jul 13, 2018 11:14 am

Re: TI-99/4A on Mister (based on Speccery's)

Postby GHPS » Fri Sep 27, 2019 11:22 am

alex1 wrote:Is there already some disk support in the TI99 core?

Sorry to curb your expectations here - I have pretty much the same questions as you concerning
disk I/O support of the current core. GreyRogue mentioned disk support in his very first posting
in this forum (referring to a diskdsr_4000_padded8k.bin file) which might imply that disk I/O is
already there.

Also two commits imply that there is support for disk and speech in the core [1,2].

Before starting to reading the core's sources I simply gave it a try and loaded the disk I/O rom
(the 8k Disk.bin where you got your 994GROM.BIN) at the presumably right memory slot (first 8k
slot in third memory block). After starting some roms that depend on disk I/O I came to the
conclusion that this didn't work. I can't say why - missing core support, wrong disk rom,
wrong memory location or something else.

If someone else has more insight into this problem (or more luck) - trying experimental
disk I/O support with createImage is easy: -d will place Disk.bin in the full rom.

I would like to enable speech as well but still need information where to place the rom...

1: https://github.com/MiSTer-devel/TI-99_4 ... 34d0bd7ab0
2: https://github.com/MiSTer-devel/TI-99_4 ... 37f9a17425

alex1
Retro freak
Retro freak
Posts: 10
Joined: Fri May 25, 2018 5:28 pm

Re: TI-99/4A on Mister (based on Speccery's)

Postby alex1 » Fri Sep 27, 2019 5:12 pm

GHPS wrote:
alex1 wrote:Is there already some disk support in the TI99 core?

Sorry to curb your expectations here - I have pretty much the same questions as you concerning
disk I/O support of the current core. GreyRogue mentioned disk support in his very first posting
in this forum (referring to a diskdsr_4000_padded8k.bin file) which might imply that disk I/O is
already there.

Also two commits imply that there is support for disk and speech in the core [1,2].

Before starting to reading the core's sources I simply gave it a try and loaded the disk I/O rom
(the 8k Disk.bin where you got your 994GROM.BIN) at the presumably right memory slot (first 8k
slot in third memory block). After starting some roms that depend on disk I/O I came to the
conclusion that this didn't work. I can't say why - missing core support, wrong disk rom,
wrong memory location or something else.

If someone else has more insight into this problem (or more luck) - trying experimental
disk I/O support with createImage is easy: -d will place Disk.bin in the full rom.

I would like to enable speech as well but still need information where to place the rom...

1: https://github.com/MiSTer-devel/TI-99_4 ... 34d0bd7ab0
2: https://github.com/MiSTer-devel/TI-99_4 ... 37f9a17425


I've exhumed some old books to see if I can be of any help with the missing information:

- the speech rom size is 32K (32.768 bytes), 8K memory mapped at >8000 - 9FFF.
- the disk rom size is 8K (8.192 bytes) in DSR (Device Service Routine) space at >4000 - 5FFF.

From the Appendix of the E/A Manual:

"Addresses >4000 through >5FFF are built into various peripherals. They contain up to
8K bytes of ROM for the Device Service Routine used to run peripheral devices, such
as disk drives and printers. These ROMs are selected by CRU operations (see
Section 9), so several ROMs can be at the same address.

Addresses >6000 through >7FFF are available on the Command Module port. Some
Command Modules, for example TI Extended BASIC, have ROM in this space.

Addresses >8000 through >9FFF are built into the console. They contain PAD from
addresses >8300 through >BJFF (see Section 24.3.1) and all of the memory-mapped
device locations."

The Speech PAD is at >8300 in the general memory usage, with the LOAD AND RUN option of the E/A the SPEECH CPU RAM is at >8300.


So, we could try to see if the Speech is implemented using the 32K rom file, splitting it into 3 banks of 8K each and placing the first bank at >8000 of the first memory block of 64K and so on.


For the disk support even if we can place the correct disk rom in the memory map, we than have the problem to select for the TI99 core a floppy disk to use, but there isn't any option in the menu for this. Anyway, we should be able to check from Extended Basic if there is or not a disk controller connected with a simple command:

OLD DSK1.TEST

If there isn't any disk controller we will get a I/O ERROR 50, if there is the controller we will get a I/O ERROR 06 (no disk in drive).


To test the speech we can use a game that is supporting it (Parsec, Alpiner, etc.) or using the CALL SAY command from XB.


I have some of the TI99 technical books/manuals that I can share if needed to find additiona information.


I haven't seen any post from GreyRogue since February. :-( Do you know if he is still supporting his port of the core?

GHPS
Retro freak
Retro freak
Posts: 10
Joined: Fri Jul 13, 2018 11:14 am

Re: TI-99/4A on Mister (based on Speccery's)

Postby GHPS » Sat Sep 28, 2019 5:13 pm

alex1 wrote:[
I've exhumed some old books to see if I can be of any help with the missing information:

Thanks for sharing this valuable information.

It's amazing how good the online available documentation regarding the TI-99/4a is [1,2].
There is even a recorded talk about the TI memory map[3].

The problem with enabling disk I/O and speech with the TI MiSter core is that the TI
has 64 KB of address space, more is realized by bank switching. Therefore all addresses
you listed are 0x0-0xFFFF.

The "full rom" memory image, however, has 192 KB, addresses range from 0x0-0x2FFFF as
described by greyrogue [4]. So there is a mapping from 192KB to 64KB.

greyrogue lists 0x20000 as the base for the disk I/O rom which is the first segment in the
last, third block. This, however, doesn't seem to work...

1: http://www.unige.ch/medecine/nouspikel/ ... chitec.htm
2: http://www.stuartconner.me.uk/ti/ti.htm
3: https://www.youtube.com/watch?v=hOQPbfkQwZ8
4: viewtopic.php?f=117&t=33684#p345730

alex1
Retro freak
Retro freak
Posts: 10
Joined: Fri May 25, 2018 5:28 pm

Re: TI-99/4A on Mister (based on Speccery's)

Postby alex1 » Sat Sep 28, 2019 9:25 pm

GHPS wrote:
alex1 wrote:[
I've exhumed some old books to see if I can be of any help with the missing information:

Thanks for sharing this valuable information.

It's amazing how good the online available documentation regarding the TI-99/4a is [1,2].
There is even a recorded talk about the TI memory map[3].

The problem with enabling disk I/O and speech with the TI MiSter core is that the TI
has 64 KB of address space, more is realized by bank switching. Therefore all addresses
you listed are 0x0-0xFFFF.

The "full rom" memory image, however, has 192 KB, addresses range from 0x0-0x2FFFF as
described by greyrogue [4]. So there is a mapping from 192KB to 64KB.

greyrogue lists 0x20000 as the base for the disk I/O rom which is the first segment in the
last, third block. This, however, doesn't seem to work...

1: http://www.unige.ch/medecine/nouspikel/ ... chitec.htm
2: http://www.stuartconner.me.uk/ti/ti.htm
3: https://www.youtube.com/watch?v=hOQPbfkQwZ8
4: viewtopic.php?f=117&t=33684#p345730


I've read the reference [4] from greyrogue regarding the memory image. I was incorrectly assuming that the original 64K mapping was respected, however I can see the reasons for the current implementation.

greyrogue indicated that "0x20000-0x2FFFF (64KB) = DSRs (Floppy Disk Controllers, etc.) Scratchpad RAM, and System BIOS ROM are here.", so the 8KB disk rom should be in this bank.
Using your script, I've generated a standard Extended Basic image and another one using the "-d" option to add the disk support. Then I've checked them using an Hex Editor. The "disk.bin" 8KB rom is placed starting from 0x20000, ending at 0x21FFF. At 0x2A000 there is the 8KB "994arom.bin" ("System BIOS ROM" as indicated by greyrogue). So, in this bank we don't have a 32KB hole for the speech rom.

I've tested the two Extended Basic images in MiSTer, running the following commands (in XB): CALL FILES(1) and OLD DSK1.TEST and in the image containing the "disk.bin" rom the first command was completed without any error message and the second is reporting an I/O ERROR 06 (when no disk is inserted, the OPEN command yields a I/O ERROR 06 with the standard TI FDC).
In the image without the "disk.bin" rom, the CALL FILES(1) is returning the error message "* SUBPROGRAM NOT FOUND" and the OLD DSK1.TEST is returning an I/O ERROR 00. The first digit is the command (in this case a "0", so an OPEN command") and the second is the error type ("0" means that the disk drive could not be found).

Based on these tests I think that the "disk.bin" rom is correctly recognized by the core, however we cannot use it, since we do not have the possibility to mount a disk.

Now, where to place the 32KB speech rom to run some tests to see if it's working? Let's check again the Extended Basic image with the Hex Editor. In the second 64KB bank we have only the GROMS. The first 24KB are for the system GROM (from 0x10000 to 0x15FFF). The XB has a 32KB GROM, that is located starting from 0x16000. So, surely we have to look at the first 64KB bank, that is indicated as "Cart ROM" space by greyrogue. The first 8K is for "C" bank, followed by 8K for the "D" bank. Now, for our 32KB speech rom we should have only 3 possible locations, at 0x4000, at 0x6000 and at 0x8000.
I've created, starting from a XB image, 3 new images with the speech rom at these locations and run the CALL SAY("HELLO") command to test the speech, but without success. :-(
Now it's late, but tomorrow I'll try again. Any other suggestion/advice?

GreyRogue
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 104
Joined: Thu Mar 22, 2018 3:50 am

Re: TI-99/4A on Mister (based on Speccery's)

Postby GreyRogue » Sun Sep 29, 2019 5:48 am

The format is listed here:
https://github.com/MiSTer-devel/TI-99_4 ... om.cmd#L30
The current full ROM is 256+32KB long. The speech ROMs are the last 32KB. However, it's not terribly useful right now. The speech data is available to the TI-99, but the actual voice generation isn't implemented. So the Speech Editor and Advanced Basic can access the data/modify it, but the actual voices can't be generated. Disks are similar. You can place the disk ROM where it belongs, but the actual disk drive hardware isn't implemented. The Disk ROM that I have doesn't specify which model of disk drive it goes with, so I'm don't know how to code it (if I were to motivate myself).

alex1
Retro freak
Retro freak
Posts: 10
Joined: Fri May 25, 2018 5:28 pm

Re: TI-99/4A on Mister (based on Speccery's)

Postby alex1 » Sun Sep 29, 2019 2:31 pm

GreyRogue wrote:The format is listed here:
https://github.com/MiSTer-devel/TI-99_4 ... om.cmd#L30
The current full ROM is 256+32KB long. The speech ROMs are the last 32KB. However, it's not terribly useful right now. The speech data is available to the TI-99, but the actual voice generation isn't implemented. So the Speech Editor and Advanced Basic can access the data/modify it, but the actual voices can't be generated. Disks are similar. You can place the disk ROM where it belongs, but the actual disk drive hardware isn't implemented. The Disk ROM that I have doesn't specify which model of disk drive it goes with, so I'm don't know how to code it (if I were to motivate myself).


Hi GreyRogue,

first of all, many thanks for the TI99 core. I really appreciated your great work. :D

Thanks also for the clarifications on speech and disk status. I've just talked with a friend of the TI99 Italian User Club (ti99iuc) that has contributed to the TI99/8 implementation in MESS (providing access to his rare hw to dump the roms, etc.) to see if we can be of any help with the missing documentation/information.

For the speech, he explained me that it seems that at the moment nobody was able to fully decode how voice generation is working in TI's chip, so the various emulators implemented their own interpretation of the chip. :o

Regarding the disk, we are not sure to have understood the correct information that is needed/missing. Moreover, I do not know what documents/sites you have already checked, so please apologize for any repetition.

The original TI disk controller has the WD FD1771 FDC (data sheet available here: https://www.hartetechnologies.com/manua ... 0Sheet.pdf) and is supporting DSSD disks with the original 8KB ROM. Its dump has the following MD5 checksum: f9916e6b04f8a7c9e72cb47d876d6708

These two link should have all TI99 specific information on the FDC:
http://www.unige.ch/medecine/nouspikel/ti99/fdcard.htm
http://www.unige.ch/medecine/nouspikel/ti99/disks.htm

In the whtech site we have the schematics of the PHP1240 disk controller:
https://ftp.whtech.com/datasheets%20and ... ematic.pdf

The software specs for the disk are here:
https://ftp.whtech.com/datasheets%20and ... pheral.pdf


If you need to have instead the brand/model of the original 90KB floppy disk drive, please, let me know.

Additional data sheets (including the TMS 5520 Voice synthesis processor data manual) are also available on this whtech directory:
https://ftp.whtech.com/datasheets%20and ... %20-%20TI/

Please, let me know it the above information were of any help.

alex1
Retro freak
Retro freak
Posts: 10
Joined: Fri May 25, 2018 5:28 pm

Re: TI-99/4A on Mister (based on Speccery's)

Postby alex1 » Sat Oct 26, 2019 10:25 am

GreyRogue wrote:The format is listed here:
https://github.com/MiSTer-devel/TI-99_4 ... om.cmd#L30
The current full ROM is 256+32KB long. The speech ROMs are the last 32KB. However, it's not terribly useful right now. The speech data is available to the TI-99, but the actual voice generation isn't implemented. So the Speech Editor and Advanced Basic can access the data/modify it, but the actual voices can't be generated. Disks are similar. You can place the disk ROM where it belongs, but the actual disk drive hardware isn't implemented. The Disk ROM that I have doesn't specify which model of disk drive it goes with, so I'm don't know how to code it (if I were to motivate myself).



Many thanks to GreyRogue for the updated version of the core (20191020)! This version has greatly improved the compatibility with games. Now Miner, Tennis, Tutankham, Congo Bongo, Moon Patrol, etc. are all working fine.

Some games (e.g. Tutankham, Mancala, Return to Pirate's Isle) have to be loaded in this order:
1) System ROM;
2) .C file using C Load Menu;
3) .G file using G Load Menu;
4) .C file using D Load Menu.

I've not yet tested building a complete file with system ROMs, then repeating the C file throughout the first 64KB (C/D sections). Maybe, it's time for an update of the Python script with the support for this kind of carts... ;-)

Finally, the menu has now new entries: Scratchpad RAM (256bytes/1K), Cart Type (Normal/MBX) and Speech (Off/On).
I don't really know the meaning of the Scratchpad option. I've not tested yet the MBX switch. Regarding the Speech toggle, I think that is just simulating the real behaviour of the TI99 when sending data to the speech synt. if not connected (there is a short freeze). But. let's wait for additional clarifications from GreyRogue.

Again, many thanks for this update. Really appreciated. :-)


Return to “MiSTer”

Who is online

Users browsing this forum: No registered users and 16 guests