+hloberg Posted June 29 Share Posted June 29 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). 3 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted July 1 Share Posted July 1 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. 1 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted July 1 Author Share Posted July 1 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? Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted July 1 Share Posted July 1 30 minutes ago, hloberg said: This require a re-compile of the game? Correct, and time to understand the game code and make compatibility changes. Quote Link to comment Share on other sites More sharing options...
+hloberg Posted July 1 Author Share Posted July 1 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. 2 Quote Link to comment Share on other sites More sharing options...
bjkrug Posted July 3 Share Posted July 3 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? Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted July 3 Share Posted July 3 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. 4 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted July 3 Author Share Posted July 3 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? Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted July 3 Share Posted July 3 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. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.