Jump to content
IGNORED

v9t9 TI-99/4A emulator written in java


retroclouds

Recommended Posts

yeah, it's on the todo list to redo the Classic99 debugger as a set of frames that you can layout at will. That will also permit things like multiple memory view windows, etc. Of course, lots and lots of stuff is on my todo list.. ;)

Yup, us users are never satisfied. :-D

I remember a database program I once wrote for a bank that was supposed to take a month...six months later and a program that was 10 times the original size I had to finally tell them enough. I think the only feature they didn't ask for was to have it go get their coffee.

Link to comment
Share on other sites

since there is a C version of v9t9, could it be used to create an iOs App? As far as I know i-Phone/i-Pad Apps are based on objective C.

did someone had success to run it the java-v9t9 version on an android system?

I just read this. There is a version V9t9 in C? Do you have a copy?

Link to comment
Share on other sites

I just finished setting up a complete Live Knoppix 7 Linux system on a USB thumb drive including VirtualBox with DOS 6.22, WIn 3.1, Win 98 and Win XP :) And they can all run simultaneously! All I have to do is install all the TI emulators out there in their native environments, and even have multiple instances running. And the best part is that this setup is the ultimate in portability.

post-25753-0-66206000-1359238762_thumb.png

  • Like 3
Link to comment
Share on other sites

Vorticon, just to mention - I notice you have Classic99 running under Linux also ..... are you able to copy/paste text into Classic99 on Linux ? .... because I can't , it pastes two random characters .... even when Notepad is emulated under Wine .... I know this is really off topic for this thread but it's worth asking

Link to comment
Share on other sites

The Classic99 shortcut in the picture runs through Wine, so you won't be able to copy and paste from another application to it unless it's running in the same environment. However, I installed Classic99 in the Win XP machine under VirtualBox and was able to copy and paste from Notepad to Classic99 as usual with no issues. That's probably the way I would go under Linux.

Link to comment
Share on other sites

The Classic99 shortcut in the picture runs through Wine, so you won't be able to copy and paste from another application to it unless it's running in the same environment. However, I installed Classic99 in the Win XP machine under VirtualBox and was able to copy and paste from Notepad to Classic99 as usual with no issues. That's probably the way I would go under Linux.

 

Yeah I did that, I had Notepad running under Wine, alongside Classic99 under Wine, and copy/paste failed. This is only a detriment to productivity, the games play quite well, with not much slowdown.

Link to comment
Share on other sites

  • 8 months later...

I wasn't aware that an emulator written in Java existed until yesterday. I'm very pleased about this because I use Java in my daily work, and having emulator source code available that you understand can be very handy.

 

It was very easy to set up, and a like the front end, but unfortunately my two games (Titanium and TI Scramble) don't work - both are hanging on the opening screen. I couldn't get into the debugger (SysRq doesn't work) to see what was wrong.

 

BTW, are there any plans to support the F18A on v9t9? I might be able to contribute with code for some of the VDP features, but the GPU would probably require too much knowledge of the source code.

Link to comment
Share on other sites

It was very easy to set up, and a like the front end, but unfortunately my two games (Titanium and TI Scramble) don't work - both are hanging on the opening screen. I couldn't get into the debugger (SysRq doesn't work) to see what was wrong.

 

Use the "Advanced Controls" (right click on the screen) and you'll get a button bar at the bottom of the screen. One of them is the debugger. (SysRq is usually captured by OSes nowadays...)

 

I'd be interested to see what is blocking you from using your games. I'll try to fix it as soon as possible.

 

 

BTW, are there any plans to support the F18A on v9t9? I might be able to contribute with code for some of the VDP features, but the GPU would probably require too much knowledge of the source code.

 

Not at this time, though don't let that stop you from trying ;)

 

Thanks,

 

-- Ed

Link to comment
Share on other sites

Use the "Advanced Controls" (right click on the screen) and you'll get a button bar at the bottom of the screen. One of them is the debugger. (SysRq is usually captured by OSes nowadays...)

 

I'd be interested to see what is blocking you from using your games. I'll try to fix it as soon as possible.

Scramble is hanging in this loop:

 

*********************************************************************
*
* Wait until fire button and fire key are not pressed
*
WTNOFI 
*	   Read joystick 1
	   LI   R12,>0024	  		* CRU address of the column decoder 
	   LI   R0,>0600	   		* Column 6, i.e. joystick #1
	   LDCR R0,3		   		* Select it
	   LI   R12,>0006			* Base CRU address for joystick 1
WTNOF1     TB	0
	   JNE	WTNOF1
	   ...
Titanium is hanging in a similar loop waiting for the joystick button to be released (although it was never pressed):

 

*	   Check fire button
WTFIR1     LI   R1,>0600	   		* Column 6, ie joystick #1
	   LI   R12,>0024	  		* CRU address of the column decoder 
	   LDCR R1,3		   		* Select it
	   LI   R12,>0006			* Base CRU address for joystick 1
	   TB	0					
	   JNE	WTFIR2				* Wait for press
           ...
*	   Fire pressed
WTFIR2 TB	0					
	   JNE	WTFIR2				* Wait for release
           ...
Is it possible to set a breakpoint in the debugger?

 

Thanks,

Rasmus

Link to comment
Share on other sites

Scramble is hanging in this loop:

...

Titanium is hanging in a similar loop waiting for the joystick button to be released (although it was never pressed):

 

 

Ok, this is my bug. Due to the way various OSes send keyboard events, I have to do some chicanery to ensure a smooth typing experience, and I expect CRU addresses >6 and >8 both to be read at some point before updating the keyboard and joystick state. A short-term workaround is to do TB >1 before TB >0, I think.

 

 

Is it possible to set a breakpoint in the debugger?

 

 

 

Not directly, yet... V9t9 supports them, but it's not exposed yet.

 

I'm pretty busy these days -- would you mind filing bug reports or feature requests for these on my github page <https://github.com/eswartz/emul/issues> ?

 

Thanks,

 

-- Ed

Link to comment
Share on other sites

  • 2 years later...

I just found this thread and got curious: Does it contain a proper TMS5220© emulator?

I have been trying to find a decoder for compressed TMS data (Gauntlet to be precise), but haven't been all that lucky. The MAME structure and code style has sent me on a walk through the desert, even though I know it should be there somewhere, albeit in emulation form.

Link to comment
Share on other sites

Probably both of these emulators have accurate TMS5220 support. I compared my implementation with MAME's (the precursor to MESS) to compare some decoding tables, but the two emulators have otherwise independent implementations of the speech synthesis.

 

I guess the distinction is whether you can use the innards well enough in a "standalone" way and are more comfortable with hacking in C or Java.

 

See https://github.com/eswartz/emul/tree/master/v9t9/v9t9-java/v9t9-engine/src/v9t9/engine/speech for the guts of V9t9's version. (Reviewing it now, I'm a bit embarrassed at how messy it looks -- it was hand-converted from C a long time ago :P . But it works.)

 

If you're willing to do some hacking, V9t9's sources has a standalone speech generator program which speaks some phrases from speech ROM and from direct data. (https://github.com/eswartz/emul/blob/master/v9t9/v9t9-java/v9t9-machines/tests/v9t9/machine/common/tests/ManualTestSpeech.java).

 

There are quite a few things to fix in that file to make it generically useful, but if you have questions, I'd be willing to help.

 

-- Ed

Link to comment
Share on other sites

If you're willing to do some hacking, V9t9's sources has a standalone speech generator program which speaks some phrases from speech ROM and from direct data. (https://github.com/eswartz/emul/blob/master/v9t9/v9t9-java/v9t9-machines/tests/v9t9/machine/common/tests/ManualTestSpeech.java).

 

Ehm ... I guess I've got already more to do with coding in MAME/MESS than I seem to be able to handle, thanks. :)

 

The speech chip emulation is the same for MAME and MESS, more than ever before since MESS has been fully integrated into MAME. If they look different to you, you seem to have some very old releases. Also, there were some updates to the code in recent releases to better comply with the patents and information from decapped chips.

 

Michael

Link to comment
Share on other sites

Let me tie together a few lose ends to make clear what I have in mind

- I am toying with a Gauntlet like for AGA Amigas so I have looked a little at the arcade

- I found a TMS5220 demo for the TI-99/4a on youtube that showed how to take a sample and process it on a pc to play back on the 99

- I read the Wikipedia page on Gauntlet that it used a professional actor as the voice of the game master

 

So I was wondering if there was a way to extract the samples from the arcade, either in native or decompressed format, and for native format how much cpu grunt is needed to decode it to raw samples (assuming you can skip the complexities you get from a full emulator)? Could decode be done in realtime on a 68020?

And if you have a direct link to any source code that would be lovely. 'Ta.

Link to comment
Share on other sites

Northway,

 

OK, it sounds like you're taking on something more complex than you may realize. Some clarification from the other side:

 

-- TMS5220 is essentially a LPC-10 decoder chip, taking sets of bit-encoded equations and producing audio samples from it. This was done with 1978-era hardware, so, definitely a 68020 could handle the calculations (more) easily.

 

-- But, TMS5220 is not a general audio playback chip. The audio is not "compressed", but in a completely different format, which is in the form of equations, as it were. Those equations are in a bitstream that tries to minimize storage. Several seconds of speech use only hundreds of bytes, but from that it makes an 8 KHz PCM stream with 8-bit samples. See http://www.nouspikel.com/ti99/speech.htm for more details. The sources I posted encapsulate this logic.

 

-- So, yes, if you are able to get a high-quality PCM recording of the Gauntlet speech, and run it through whatever software the person in the video used, then you could get data suitable for the TMS5220, with all its limitations. But it's pretty much only useful if you're running it in emulated 99/4A/etc hardware. There'd be no point doing this for a different processor that doesn't use a TMS5220, since I believe the 68020 could handle much better-sounding LPC.

 

-- Take a look at e.g. http://src.gnu-darwin.org/ports/audio/hawkvoice/work/HawkVoiceDI/src/openlpc/openlpc.c -- this is a general-purpose LPC encoder/decoder that seems like it is flexible enough for your purposes, and which doesn't have any of the emulator-specific logic buried in it.

 

-- Ed

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