Jump to content
IGNORED

DonPan on the Geneve 9640


Ksarul

Recommended Posts

It isn't directly a question of space--but of how the space is used. Will the OS fit into the 32K expansion? Yes. Will it work there? Not as written. It would need to be relocatable code, and it isn't. The same goes for the cartridges. Changing that's not a trivial task. . .

Link to comment
Share on other sites

Couple of comments, the original version of the Geneve games did reset the 9640. I could not remember if I'd later fixed them to just return to MDOS or not, so it sounds like I may have. That, or possibly later versions of MDOS handle the method of exit I use more gracefully :)

 

In a nutshell though, the Tomy OS used around 40-48K of internal ROM. The space between 32K and 48K was the location of the built in Tomy BASIC (it may also exist below the 32K mark but that's not relevant).

 

Tomy cartridges map to >8000 and up, so when a cartridge is installed, the built in BASIC disappears.

 

Tomy's OS includes a huge library of hardware specific routines, all called via a vector table that starts near the beginning of the ROM. Since a vector table is used, Tomy would be able to update the hardware specific routines as needed, or create future enhancements (newer hardware, etc) by extending the vector table, or recoding the software. The best thing about it all is that none of the cartridges directly touch hardware. That means that it is not necessary to modify them to run the code on the Geneve, as long as the Tomy OS is suitably patched.

 

Tomy's OS was very obviously written by, or in conjunction with, TI. Numerous scratchpad offsets match those used in the 99/4A precisely, things like KSCAN, floating point, etc, are identical offsets. The built in BASIC uses internal tokens, that are mostly the same as those used by TI XB. If you've ever looked at the cartridges, they look designed by whoever did the 99/4A's cartridges, you can plug a 99/4A cartridge into the Tutor. It won't work of course, don't do this :) But the connectors and such are the same form factor.

 

But the existence of the vector table, the compatible VDP and sound chips, and the use of the TMS9995 made moving the code to a Geneve pretty simple to do. All I had to do was load the Tomy OS/cartridge code into the Geneve on pages that replace >0000 and up, and then hand off control to the Tomy OS. The real trick, was tracing down those vector table entries, and modifying all code that was related to direct hardware access to sound, video, joysticks, and the keyboard. That was really a drop in the bucket of all that code, the vast majority of it didn't need to be touched. Note that any other controller or such that was unique to the Tomy would not currently be handled properly on the Geneve, so there might be theoretically some games out there that might not work properly.

 

My assumption was that the Japanese version would likely use the same hardware vector table, and thus, the carts from the Pyuuta would be compatible, and it is good to see that it seems to be the case.

  • Like 4
Link to comment
Share on other sites

And on the same topic, running these on a 99/4A would be a rather huge undertaking. First you would have to disassemble each game, that in itself would be quite a project. But further, you'd have to code a library to run on the 4A to replace all the console ROM code of the Tutor. I imagine a lot of the built in routines aren't needed by the cartridges, so that might not be as big a chore as it sounds, but you'd have to figure out all the routines that are needed and not needed first by the cartridges.

 

Another issue is the CPU speed. A 9995 runs circles around the 9900 in the 99/4A (although the 9900 implementation in the 4A is quite hamstrung due to all the wait state bottlenecks created by the 16 to 8-bit bus conversion). The 9995 also has a small number of opcodes (signed multiply/divide come to mind) that don't exist on a 9900, so you'd have to make sure those opcodes are not used by carts, or if they are, you'd have to write alternative code for those.

 

So it could certainly be done, but it would be a rather huge time investment.

  • Like 1
Link to comment
Share on other sites

Thanks for the thorough explanation of what you did to make the original conversions work, I still have to try one of the 24K cartridges, once I make a good dump of one. I was pretty sure the Pyuuta dumps would work from your original description too, as the real cartridges work when moved between the systems. The only issues I know of are scrambled text and menus on some of the cartridges, as they used the Japanese character set. Even there, there were releases of most of them with the English character set. I just have to check each of mine for the English set and make sure I dump those if I have them.

Link to comment
Share on other sites

 

This is surprising; are you sure you selected the correct submenu? Floppy and hard drive selections should be under "File manager". In slot devices, "twinjoy" must be set. What kind of joystick do you use? The default is to map the arrow keys to the joystick directions.

 

You can check with a short ABASIC program (doing a CALL JOYST with PRINT in a loop).

 

I can use the joysticks in Geneve on older versions of MESS - e.g. .104,140. I cannot get it to work in 152 or newer. I am using Logitech Cordless RumplePad for my joystick. It works with all other MESS (ti99 and other) as well as with MAME games. It does NOT work with newer versions. I have yet to get it to work in Geneve since the peb:slot changes were made.

Edited by mdorman
Link to comment
Share on other sites

These older versions have only few things in common with today's version, in particular 0.104 (must be more than 8 years old).

 

Have a look at "Input (this system)" in the on-screen menu (ScrLock/TAB). At the end there is a list of settings (P2 Up/Down/Left/Right/Button1, P3 Up/Down/Left/Right/Button1). In "Input (general) / Player 1 controls" you will find the settings for P1. Try one of them (I don't know why there is a P3, need to check that); go to the setting, for instance, Up, press Return - the interface waits for you to do an input. Move your stick to the selected direction and watch whether something happens.

 

If it works with other MESS/MAME drivers this does not mean too much - the input settings are save per system, so it could well be that your settings for the Geneve need correction.

 

Michael

Link to comment
Share on other sites

These older versions have only few things in common with today's version, in particular 0.104 (must be more than 8 years old).

 

Have a look at "Input (this system)" in the on-screen menu (ScrLock/TAB). At the end there is a list of settings (P2 Up/Down/Left/Right/Button1, P3 Up/Down/Left/Right/Button1). In "Input (general) / Player 1 controls" you will find the settings for P1. Try one of them (I don't know why there is a P3, need to check that); go to the setting, for instance, Up, press Return - the interface waits for you to do an input. Move your stick to the selected direction and watch whether something happens.

 

If it works with other MESS/MAME drivers this does not mean too much - the input settings are save per system, so it could well be that your settings for the Geneve need correction.

 

Michael

I started over with a new download of mess0158 in a separate directory and ran the same tests. "Input (general) settings" look right but I still get no response from the joystick. When I look at "Input (this system)" and scroll down to [root:joyport:twinjoy], there are only entries for P2 and P3 - not P1. Doing the same test for ti99_4a and ti99_8, that setting includes the P1 directions and fire action as well as P2/P3.

 

I delete the .cfg directory so that there should be no config settings getting in the way.

 

Mike

Link to comment
Share on other sites

I'm just curious, were there ever any games published that made use of the Geneve's added features (the VDP, memory, speed, ...)? Were any of them good? Technically, the system should've been able to outpace the MSX2, which has seen some great games, but I haven't seen any of them anywhere.

Link to comment
Share on other sites

I'm just curious, were there ever any games published that made use of the Geneve's added features (the VDP, memory, speed, ...)? Were any of them good? Technically, the system should've been able to outpace the MSX2, which has seen some great games, but I haven't seen any of them anywhere.

I recall a few games that made use of some of the features. Unfortunately, there was really never a lot of Geneve-specific game programming that took advantage of the hardware for games. Not to mention the user base is (and was) smaller and like with the TI, there wasn't really much of a community for discussing or improving upon gaming programming. If programmers for the TI and Geneve had an active "atariage forum" 15 or more years ago, today would probably be a whole different story.

Link to comment
Share on other sites

Not to mention the user base is (and was) smaller and like with the TI, there wasn't really much of a community for discussing or improving upon gaming programming.

 

At least there are some 80-col cards for the TI, and unless we use some 9995-specific operations we could think about writing programs for the v9938 that can be used by some more people.

 

 

If programmers for the TI and Geneve had an active "atariage forum" 15 or more years ago, today would probably be a whole different story.

 

Too late now ... or not?

 

I suppose the biggest problem is that we all are past our years of study or training and cannot afford enough time to catch up on everything.

Link to comment
Share on other sites

I started over with a new download of mess0158 in a separate directory and ran the same tests. "Input (general) settings" look right but I still get no response from the joystick. When I look at "Input (this system)" and scroll down to [root:joyport:twinjoy], there are only entries for P2 and P3 - not P1. Doing the same test for ti99_4a and ti99_8, that setting includes the P1 directions and fire action as well as P2/P3.

 

I just verified this with my joystick adapter on the Geneve emulation (0.158). I'm using a small adapter box for connecting a Competition Pro to USB; the box has two 9-pin connectors.

 

I can query both Joystick 1 and 2 (by CALL JOYST, CALL KEY) in ABASIC; however, in the menu "Input (this system)" they are called "P2 ..." and "P3 ...". So don't care about the P1 in the other menu.

Link to comment
Share on other sites

 

I just verified this with my joystick adapter on the Geneve emulation (0.158). I'm using a small adapter box for connecting a Competition Pro to USB; the box has two 9-pin connectors.

 

I can query both Joystick 1 and 2 (by CALL JOYST, CALL KEY) in ABASIC; however, in the menu "Input (this system)" they are called "P2 ..." and "P3 ...". So don't care about the P1 in the other menu.

Great. I can now use my joystick by going to the P2/P3 options and manually pressing the fire buttons & Up, Down, Left, Right actions. This saves the information into <mess_directory>\cfg\geneve.cfg. It seems though that the default configuration does not map P1, P2, or P3.

 

I am unable to run ABASIC on the .chds I have. It either crashes or hangs.

 

Thanks!

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...