Jump to content
IGNORED

Geneve emulation and Rasmus games


Recommended Posts

I've played with several of the Rasmus games on the Geneve emulation and so far they 'mostly' work, except for Titanium which doesn't run at all, but they all have the same problem. the problem is the keys/joystick isn't mapped on the right keys/joystick place. for example, the fire is the A key in most of the games, T and G are joystick up and down on some etc...

Just wondering what's the cause of this bad mapping on the Geneve and might be a way to fix?

by the way, there are other games with the same problem, but few. Still, I'm up to over 150 games I have converted to the Geneve (check out the Geneve emulation package).

  • Like 3
Link to comment
Share on other sites

The Geneve does not support CRU-based direct keyboard scanning like the /4A, so many games (especially newer ones) won't work without a compatibility modification.   The Geneve joystick ports respond to the same CRU as the /4a counterpart, so joystick-only games often work properly.  Unfortunately, polling the non-existent keyboard can disrupt the joystick responses.   I approached a few conversions by simulating the /4a keyboard/joystick CRU output via a matrix/table.   There is a second compatibility adjustment: the need to simulate rom cartridge banking in the 0x4000 space instead of the 0x6000 space, by indexing into a list of 8k pages instead of writing to a rom address.  Both can be relatively easy to implement, depending on the complexity of the game and its keyboard/trampoline functions.  An example of such a conversion is Pinball 99.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

9 hours ago, InsaneMultitasker said:

The Geneve does not support CRU-based direct keyboard scanning like the /4A, so many games (especially newer ones) won't work without a compatibility modification. 

I now remember you telling me this once before. 

 

-I approached a few conversions by simulating the /4a keyboard/joystick CRU output via a matrix/table.  -

This require a re-compile of the game?

Link to comment
Share on other sites

16 minutes ago, InsaneMultitasker said:

Correct, and time to understand the game code and make compatibility changes. 

great. Back burner you go. :)  Maybe I can get Rasmus to help when the time comes. the Rasmus games are the last of the well known games to do.

I still got about 50 lesser games that need testing and/or conversion to the Geneve plus Pilot, G & Lisp so it's going to be a while.

  • Like 2
Link to comment
Share on other sites

On the Geneve, how would someone making their own game detect that two keys are simultaneously being pressed?
Is this functionality documented, or would a programmer need to disassemble the Geneve's own KSCAN routine?

Link to comment
Share on other sites

1 hour ago, bjkrug said:

On the Geneve, how would someone making their own game detect that two keys are simultaneously being pressed?
Is this functionality documented, or would a programmer need to disassemble the Geneve's own KSCAN routine?

The way that I accomplished this was to check the key state of the XT keyboard and save that to a matrix corresponding to the /4a keyboard CRU row/column. The game can then "poll" the CRU bit via the replacement routine, and not have to know there is a Geneve back end.

 

Without reviewing my code, I don't recall if there were limitations on how many keys could be depressed simultaneously nor if one key interrupted another.  The keyboard itself may factor into this, especially where the keyboard's auto-repeat is concerned. 

 

For example, in Flying Shark, I was able to fly diagonally using two keys but if I recall correctly, I could not fire a weapon (third key) at the same time.  "Life" got in the way of further work on that and other projects but I documented the approach insofar as my code and comments are concerned. 

 

The source code to the standard Geneve keyscan is available but without a translation of some kind, only a standard keyboard call, e.g., BLWP @KSCAN is available. This of course can wreak havoc with interrupts and is slower, hence why many newer games use the /4a direct CRU-based scan. 

 

  • Like 4
  • Thanks 1
Link to comment
Share on other sites

The source code to the standard Geneve keyscan is available but without a translation of some kind, only a standard keyboard call, e.g., BLWP @KSCAN is available. This of course can wreak havoc with interrupts and is slower, hence why many newer games use the /4a direct CRU-based scan. ....

 

More-or-less the Geneve is about 5 times faster than the TI-99. If you converted those wayward games to a standard BLWP@KSCAN to make them compatible with the Geneve I wonder if the speed hit would end up negligible in the end? 

Link to comment
Share on other sites

59 minutes ago, hloberg said:

 

 

More-or-less the Geneve is about 5 times faster than the TI-99. If you converted those wayward games to a standard BLWP@KSCAN to make them compatible with the Geneve I wonder if the speed hit would end up negligible in the end? 

Yeah, a standard keyboard can work well in some cases, depending on the game.  

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