Jump to content
IGNORED

New game project: Jetpac


Vorticon
 Share

Recommended Posts

Hi.

 

So it's time for my next game, and I decided this time to port the ZX Spectrum game Jetpac using Turbo Forth. This game is pretty simple in concept yet terribly additive. It also has the added advantage of a fixed background with no scrolling.

 

Attached is version 1.1 for the TI 99/4A, which should be the final version.

 

To run it from disk, just place the Jetpac.dsk file in DSK1 for Classic99 or MESS, insert the TurboForth cartridge version 1.2.2 (latest version), and reset the computer. Jet Pac will auto-boot.

 

To run as a cartridge, below are the instructions for Classic99:

 

To load the cart in Classic99, you need to copy the file into the Classic99/MODS folder, then add the following to your classic99.ini file (make sure classic99 is not running):

[UserCart3]
name="Jetpac"
rom0=3|0000|10000|MODS\JPCart.bin

You may already have a UserCart3 so just change it to the next in the sequence. Once this is done, save the ini file, start classic99, you will then find the cartridge in the Cartridge --> User menu.

If you have a 64K Guidry cart, you should be able to burn the exact same bin file to an EPROM and run it on real iron.

 

Cartridges are also now available here: http://www.arcadeshopper.com/wp/?page_id=11#!/Jetpac-Solid-State-Cartridge/p/61738115/category=15846003

 

Jet Pac can be run with a joystick (recommended), or with the keyboard as noted below:

  • W boost left
  • E boost up
  • R boost right
  • S move left
  • F move right
  • L fire

Here's a quick preview of the gameplay. I am terrible at this even though I programmed the thing :D Please let me know if you come across any bugs. Enjoy!

 

https://youtu.be/HZZ2pu5BrF4

JetPac.dsk

JPCart.bin

Jetpac.txt

  • Like 14
Link to comment
Share on other sites

oh really ? i love you vorticon !!!! :)

 

i just have the almost unplayable version in XB and always loved to have a "real" jetpac

 

it is a great news for me !

 

thank you for the choice of this game TIer :)

 

I had no idea there was an XB version of the game! I'll have to post it on Gameshelf site with the next update. It's really not too bad for XB though. Turbo Forth should be more than up to the task for this project, and hopefully we'll have a more faithful version of the game for the TI.

Link to comment
Share on other sites

I had no idea there was an XB version of the game! I'll have to post it on Gameshelf site with the next update. It's really not too bad for XB though. Turbo Forth should be more than up to the task for this project, and hopefully we'll have a more faithful version of the game for the TI.

 

Well in true, only the first screen is of the jetpac game, the other screens levels are different... so i always considered it like a clone.

instead your conversion will be the conversion of the original one, so it will be really nice to have :) i can't wait to play it ! :)

Link to comment
Share on other sites

Just wondering if it's possible to produce a cartridge version of a Forth game?

 

The way TF currently exists at the moment: No. It is a 16K EPROM, and it is jam packed full. I think there's 16 bytes free in bank 0, and a little more in bank1. If it were a 64K EPROM then the word BSAVE could be used to produce a binary representation of a program. That could be stored in spare banks in the EPROM and simply unpacked to RAM at run time (so you'd still need the 32K RAM). But if I were going to do that I wouldn't start with TurboForth. I'd start again from scratch. I have ideas for a native code generating Forth for the TI (compiles Forth to machine code). Still kind of sorting it out in my mind. I can get it to produce native assembly code, that's quite easy. The tricky bit comes with optimisation techniques (peep-hole, in the main). They are tricky things to implement (a lot of systems compile to intermediate code, then optimise that, then emit the machine code) - it's quite a tall order for a cartridge based system working in 8K banks of ROM ;)

Link to comment
Share on other sites

 

Ah nice find :) I thought I already had found all the graphics for the game, but I see that I missed a few, particularly the angled jet flames of the jetman. Too bad the image is too small... I did email the author requesting a larger image if possible.

Link to comment
Share on other sites

 

The way TF currently exists at the moment: No. It is a 16K EPROM, and it is jam packed full. I think there's 16 bytes free in bank 0, and a little more in bank1. If it were a 64K EPROM then the word BSAVE could be used to produce a binary representation of a program. That could be stored in spare banks in the EPROM and simply unpacked to RAM at run time (so you'd still need the 32K RAM). But if I were going to do that I wouldn't start with TurboForth. I'd start again from scratch. I have ideas for a native code generating Forth for the TI (compiles Forth to machine code). Still kind of sorting it out in my mind. I can get it to produce native assembly code, that's quite easy. The tricky bit comes with optimisation techniques (peep-hole, in the main). They are tricky things to implement (a lot of systems compile to intermediate code, then optimise that, then emit the machine code) - it's quite a tall order for a cartridge based system working in 8K banks of ROM ;)

 

Are there major limitations to using a 64K EPROM in this scheme? It would be great if the finished product was available as a cartridge even if 32k RAM expansion was still required.

As for the idea of a Forth to machine language compiler, that would clearly be Nirvana |:)

  • Like 1
Link to comment
Share on other sites

 

Are there major limitations to using a 64K EPROM in this scheme? It would be great if the finished product was available as a cartridge even if 32k RAM expansion was still required.

As for the idea of a Forth to machine language compiler, that would clearly be Nirvana | :)

Well, I think the best way to do it (the way I'd want to do it) is to have a, say,128K *flash* EPROM. TurboForth (or some sort of equivalent) would sit in the first n banks, leaving free flash memory for an application.

Having compiled an application into normal RAM in the normal way, you would just type FLASH <name> <cart> where <name> is word in the dictionary that would represents the entry-point of the application, and <cart> is the string to show on the cart selection screen. The Forth system would copy the application into Flash, and also create a cartridge header entry, so that the application could be selected from the cartridge menu. It would add a little bootstrapper to copy the flash data out into ram and execute it.

 

How frickin cool would that be? :D

 

Imagine compiling Jetpac and typing:

 

flash init Jetpac

 

and boom! Instant cart!

 

Someone build me a cart with enough flash memory, and, crucially, the ability for the TI to WRITE to the flash, and I'll do it!

 

One question: Who's gonna update their emulator to support the development and testing of this? I ain't doing it all on real iron!

Link to comment
Share on other sites

 

What ? Larger ? It looks good, high res, no loss, from over here, - so if you want it larger, then resize - or is there something I can do for you !? :|

 

I already tried to do that, so don't get snotty with me. At the scale I wanted it, it was simply too blurry for my eyes. I could use it in a pinch, but I'd rather wait to see if I can get the author to send me the original picture.

Link to comment
Share on other sites

 

I already tried to do that, so don't get snotty with me. At the scale I wanted it, it was simply too blurry for my eyes. I could use it in a pinch, but I'd rather wait to see if I can get the author to send me the original picture.

 

Oh. Sorry if I offended you. When I zoom with PaintShopPro and PhotoShop, it's usually crystal clear. But sure, there's plenty of reasons for zooming to go blurry.

Link to comment
Share on other sites

Ah zooming! I tried to scale the image instead and it got blurry fast. Zooming on the other hand was crystal clear as you said. Always learning something here. And, no you didn't offend me. I was just cranky :D

 

Scaling the image works fine for what you want to do if you do not let the software do any interpolation. For example in the GIMP, you would choose “none” for the interpolation choice.

 

...lee

Link to comment
Share on other sites

  • 3 weeks later...

Here's a first look at the game in its current state. I have concentrated so far on getting the overall look as close to the original as possible. More importantly, given that the movements and animations of the Jetman are the soul of the game, I have really tried to render these animations very closely. It took a lot of tinkering but I think I got it mostly right.

Currently, you can select to use either keyboard or joystick control, and just fly Jetman around.

 

https://youtu.be/cLIMJHY_Wyo

 

If you can, please give it a try and let me know how it feels as compared to the original game. Just paste the attached source file into Turbo Forth and type JETPAC. For keyboard control, the S and D keys are for left and right, the space bar for boosting.

 

Jetpac.txt

  • Like 4
Link to comment
Share on other sites

Thanks :) Actually you can, but in the joystick mode only because it is not possible to register 2 simultaneous keypresses with the keyboard. I found a partial way around the problem through the judicious use of flags, so it's only apparent when free falling. In that case, you need to release the directional keys before you can boost...

Link to comment
Share on other sites

Looks good. :thumbsup:

 

Does his antenna move when he walks in the original ?

 

Much as what Rasmus said. When I walk on the ground I can't take off.

 

Actually you can, but in the joystick mode only because it is not possible to register 2 simultaneous keypresses with the keyboard. I found a partial way around the problem through the judicious use of flags, so it's only apparent when free falling. In that case, you need to release the directional keys before you can boost...

Well, I guess TurboForth is using KSCAN as does TI Basic, and then there's a problem with 2 simultaneous keypresses. But movement with a joystick and a keypress works fine. Surely something like this must be possible with TurboForth ?

 

100 CALL KEY(0,K,S)
110 CALL JOYST(1,X,Y)
120 PRINT K;X;Y
130 GOTO 100 

:)

Edited by sometimes99er
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...