Jump to content
IGNORED

Porting paged TI games to the Geneve


mizapf
 Share

Recommended Posts

On 7/9/2022 at 5:29 PM, dhe said:

Does v91 above point to the fixed version?

No. I was finishing some changes to Flying Shark tonight, which is now also working with the 'rom simulation' approach.  Scratchpad memory usage aside, the Geneve keyscan works well enough and doesn't seem to inhibit frame rate or gameplay.  I have a few ideas to pursue and a bit more cleanup before I release any updates.

  • Like 3
Link to comment
Share on other sites

I played around with conditional assembly.   If Geneve9640==0, the /4a routines are assembled, otherwise the Geneve routines are assembled.  Banking now uses a BLWP routine with a register representing the corresponding >60xx bank address. Bank offsets, where necessary, are applied based on a conditional delta.  So far, the approach seems to be fine.  I'll try the same with Flying Shark later this week and refine as needed.  

 

; [0] 4a standard code;  [<>0] use 9640 code

Geneve9640 equ 1

      .ifne Geneve9640
Geneve_bank_delta   equ >2000   ;adjust from >6000 to >4000 bank location
      .else
Geneve_bank_delta   equ 0
      .endif

 

; /// Example of conditional banking

; /// Not all game routines use R2, so there are vectors for R0,R1,etc.

      .ifne Geneve9640
         blwp @genevemap_r2    ;set bank, r2
      .else
         seto *r2
      .endif

  • Like 2
Link to comment
Share on other sites

17 hours ago, InsaneMultitasker said:

I played around with conditional assembly.   If Geneve9640==0, the /4a routines are assembled, otherwise the Geneve routines are assembled.  Banking now uses a BLWP routine with a register representing the corresponding >60xx bank address. Bank offsets, where necessary, are applied based on a conditional delta.  So far, the approach seems to be fine.  I'll try the same with Flying Shark later this week and refine as needed.  

 

; [0] 4a standard code;  [<>0] use 9640 code

Geneve9640 equ 1

      .ifne Geneve9640
Geneve_bank_delta   equ >2000   ;adjust from >6000 to >4000 bank location
      .else
Geneve_bank_delta   equ 0
      .endif

 

; /// Example of conditional banking

; /// Not all game routines use R2, so there are vectors for R0,R1,etc.

      .ifne Geneve9640
         blwp @genevemap_r2    ;set bank, r2
      .else
         seto *r2
      .endif

A variation of this routine might be useful to port things to the Tomy Tutor/Pyuuta using the >8000 space for their cartridges. . .

  • Like 1
Link to comment
Share on other sites

On 7/9/2022 at 5:29 PM, dhe said:

Does v91 above point to the fixed version?

Updated PINBALL 99 loader, with keyboard and joystick support. Speech is reportedly working as well.  Files are in TIFILES format.

I applied the scoring fix that Rasmus released a few days ago.  My changes are limited to banking, keyboard, and memory support.

 

The loader currently requires both the original ROM and the updated program files.

 

PINBALL99 for Geneve loader v95.zip

 

Documentation text.



Pinball 99 Loader v0.95 for the Geneve 9640

       Based on EXEC 2.7 (C)Barry Boone, Updated by Insane Multitasker

       Pinball is written by Rasmus Moustgaard

         PINROM256         v1.01 ROM from the /4A distribution; unchanged
         PINLOAD           Geneve native OS program; file loader
         PINBALL,M,N,O     Pinball program, modified for Geneve use

       Place all files in the same path.  Load as follows:

       PINLOAD PINBALL

       The file PINROM256 will automatically load from the same path as PINLOAD

       ROM banking simulation is achieved by using >4000-5FFF and Geneve memory
       map support. Keyboard routine is modified to support Geneve keyscan.

       Future release may simplify the loader requirements to eliminate the
       separate program image load.

History:
7-16-2022 Updates for keyboard support
7-6-2022  Initial release

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

Flying Shark with loader v0.93.

 

This ROM loader requires 512K free space for the ROM and 64K for the program.  Memory expansion, such as the 384K mod, Memex, Myarc 504K, etc. is required.  

 

The ROM image is 2048 sectors, therefore, a 720K disk/disk image, ramdisk formatted to 800K, or "hard drive" device (SCSI, IDE, HFDC, TIPI, RamHD) is required.

 

FLYING SHARK for Geneve loader v93.zip

  • Like 3
  • Thanks 2
Link to comment
Share on other sites

On 7/12/2022 at 3:09 PM, Ksarul said:

A variation of this routine might be useful to port things to the Tomy Tutor/Pyuuta using the >8000 space for their cartridges. . .

A variation of the mapping certainly could work.  I opted to use the TI environment for the above two games but it would have been nearly as simple to change the video/sound ports and implement a stand-alone keyboard routine.  I'm not yet sure whether I prefer the /4a method or the native /9640 mode method (used for Tilda) to simulate the ROM.  I might try the latter for a different game after a few other efforts are further along.  The one challenge right now is that keyboard control can only output one key at a time, which doesn't simulate holding one or more keys like you can on the TI.  In Flying Shark, my keyboard routine is limited - you cannot move diagonally or fire while moving, like you can with the joystick. I simply ran out of time to finish emulating output that mimics the CRU-based keyboard.

  • Like 1
Link to comment
Share on other sites

Just now, Asmusr said:

@InsaneMultitasker are you going to make the source code available? 

Yes, that is my intent once I figure out the cart header/loader approach.  I would prefer to eliminate the extra set of program files.

 

Also, I originally added my code directly into your source files.  I have since moved most of the code into its own support file(s) for the Geneve, with conditional assembly statements for the COPY statements and alternate code.  To me, this seemed like a cleaner way to do things and may provide a template for others.

  • Like 3
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...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...