Jet Pac Advanced

edited July 2011 in Games
Last year Bad Beard and I worked on a hack to introduce new levels to Jet Pac as well as making a minor adjustment to game play (influenced by the XBox 360 Jet Pack game). As Jet Pac is a denied game I can't distribute a snap shot of the resulting (now 48k) game, but Bad Beard managed to implement the hack as a very long set of pokes and it is fine to distribute these so I am now releasing it here as a .POK file.

http://dl.dropbox.com/u/4588193/Jet%20Pac.pok

I have tested the POK file in Spectaculator and EmuZWin and it worked fine. I think that ZX Spin does not support .POK files and I know that ZXDS cannot handle this as the POK file is too long. I haven't tried any other emulators.

Level 1 is the same as the standard game, the new levels are from 2 onwards.

So, give it a try and let me know what you think - I won't be in the least bit offended if you think this is heresy and that the perfection of the original should not be messed around with.

Edit: see page 2 of this thread for screen shots
Post edited by WhizzBang on
«13

Comments

  • edited June 2010
    dammit i only use zxspin and zxds lol
    Professional Mel-the-Bell Simulator................"So realistic, I found myself reaching for the Kleenex King-Size!" - Richard Darling
  • edited June 2010
    WhizzBang wrote: »
    Last year Bad Beard and I worked on a hack to introduce new levels to Jet Pac as well as making a minor adjustment to game play (influenced by the XBox 360 Jet Pack game). As Jet Pac is a denied game I can't distribute a snap shot of the resulting (now 48k) game, but Bad Beard managed to implement the hack as a very long set of pokes and it is fine to distribute these so I am now releasing it here as a .POK file.

    http://dl.dropbox.com/u/4588193/Jet%20Pac.pok

    I have tested the POK file in Spectaculator and EmuZWin and it worked fine. I think that ZX Spin does not support .POK files and I know that ZXDS cannot handle this as the POK file is too long. I haven't tried any other emulators.

    Level 1 is the same as the standard game, the new levels are from 2 onwards.

    So, give it a try and let me know what you think - I won't be in the least bit offended if you think this is heresy and that the perfection of the original should not be messed around with.


    With regard your signature, I just love that game W*H*B*, I find it the single most addictive game since Tetris.
  • edited June 2010
    BAD BEARD LIVES!!!!!!!!!!!!

    So does this adjustment mean you can't just stand on a platform and shoot forever, gaining maximum points?
    Also, do I load the poke first, then the game?
    THE RETRO GAMER IRC CHATROOM. EVERY SUNDAY AT 9PM BST. LOG ON USING THE LINK BELOW:
    https://discordapp.com/invite/cZt59EQ
  • edited June 2010
    Love Jet Pac advanced. Colourful and adds a bit of interest to the game.
  • edited June 2010
    Zxspin supports pok files, but doesnt seem to like JPA, unless im doing it wrong...
  • edited June 2010
    I just had a go.

    And I tell you guys, Jetpac rulez! :cool: It is hard to imagine that they did such a playable game in 1983.

    With this little hack it is even more interesting. different platform positions, different colours, great.

    And I'm impressed with poke file 14 kB long :) You could place all new game as pokes.
  • edited June 2010
    Just retyped your pok file to defb statements. So Spin users can just copy and paste this into an assembler window and click assemble at the Jet Pac menu screen.
    ; JetPac Advanced
    
    	org 24926
    	db 195, 151, 128
    
    	org 25741
    	db 195, 16, 128
    
    	org 25946
    	db 195, 65, 128
    
    	org 26308
    	db 195, 10, 128
    
    	org 26334
    	db 205, 0, 128
    
    	org 27048
    	db 195, 81, 128
    
    	org 32768
    	db 205,105,128,205,91,102,201,0,35,129,205,147,96,195,163,102
    	db 33,60,93,203,86,32,21,58,62,93,254,24,32,14,203,78
    	db 40,10,58,2,93,79,58,58,93,185,32,6,205,148,104,195
    	db 144,100,203,142,62,64,50,7,128,62,201,50,117,104,195,168
    	db 105,58,7,128,183,40,3,195,69,101,221,203,4,206,195,94
    	db 101,58,7,128,183,40,12,61,50,7,128,183,32,5,62,221
    	db 50,117,104,33,206,93,195,171,105,42,8,128,126,60,204,163
    	db 128,60,204,173,128,126,50,49,93,35,126,50,4,96,35,17
    	db 0,96,1,4,0,237,176,30,8,75,237,176,17,32,102,14
    	db 16,237,176,34,8,128,201,205,163,128,205,105,128,205,43,97
    	db 195,245,97,33,0,129,34,8,128,205,173,128,201,35,17,33
    	db 96,1,2,0,237,176,30,41,14,2,237,176,201
    
    	org 33024
    	db 254,48,71,128,95,168,6,4,128,96,27,4,48,72,35,4
    	db 208,48,35,8,32,40,48,56,64,88,96,120,128,136,192,224
    	db 8,88,96,48,1,5,104,88,27,5,80,48,27,5,184,120
    	db 43,8,24,72,80,88,112,160,168,168,184,192,208,232,8,80
    	db 112,168,2,6,216,88,27,6,32,112,27,6,80,56,51,0
    	db 24,48,80,112,144,184,208,216,224,64,96,24,80,216,0,48
    	db 4,2,128,120,75,0,0,0,0,2,200,64,27,8,24,80
    	db 96,112,128,144,160,192,200,208,232,8,128,200,232,254,48,71
    	db 128,95,168,5,65,128,96,27,66,56,72,43,71,208,112,35
    	db 8,32,40,48,56,64,72,80,120,128,136,192,200,208,216,224
    	db 72,6,69,128,64,27,4,40,96,27,1,208,120,35,8,32
    	db 40,48,96,120,128,136,160,168,192,200,208,216,224,128,200,65
    	db 2,112,104,35,3,144,64,35,4,56,64,35,8,16,40,48
    	db 56,64,72,96,104,128,136,144,152,160,224,56,48,66,3,128
    	db 104,42,0,0,0,0,0,0,0,0,8,24,80,104,120,128
    	db 136,152,176,192,208,224,104,128,128,152,254,48,71,128,95,168
    	db 4,68,120,96,35,68,48,72,27,68,208,112,35,8,16,40
    	db 48,56,104,112,120,128,136,80,192,200,208,216,224,48,5,69
    	db 144,56,35,69,208,104,43,69,112,104,35,8,24,72,96,104
    	db 128,136,144,152,160,184,192,200,208,216,224,168,6,0,0,0
    	db 11,70,64,104,51,70,208,48,35,8,32,40,48,56,64,72
    	db 80,88,96,128,144,192,208,224,208,48,1,0,0,0,0,0
    	db 0,0,0,0,0,0,0,8,24,72,88,104,184,232,152,168
    	db 184,200,216,232,8,200,216,254,48,71,128,95,168,2,6,128
    	db 112,27,69,48,72,27,68,208,112,27,8,16,40,48,56,80
    	db  88,96,120,128,136,200,208,216,48,88,120,4,6,48,104,43
    	db 5,184,120,43,3,200,48,27,0,24,32,40,48,56,64,72
    	db 96,160,168,200,232,48,200,232,224,5,65,128,112,43,66,48
    	db 128,27,67,192,56,27,8,40,48,56,80,104,112,120,128,136
    	db 144,152,184,192,48,192,168,6,4,128,96,27,1,48,72,35
    	db 2,208,48,35,8,32,40,48,56,64,88,96,120,128,136,192
    	db 224,8,88,96,255
    
    
    
  • edited June 2010
    nice!

    looking at it, a level editor would be cool


    makes me wonder if there's any point of finishing my little homage now :sad:

    pity this didn't come out a few weeks later or I'd finished mine a few weeks earlier
  • edited June 2010
    Of course, JetPac advanced requries a 48K spectrum whereas the original JetPac ran in 16K.
    Must be nice to have an entire 32Kb RAM at your disposal!
  • edited June 2010
    nice!

    looking at it, a level editor would be cool


    makes me wonder if there's any point of finishing my little homage now

    pity this didn't come out a few weeks later or I'd finished mine a few weeks earlier

    Binman, aint you serious? :) Of course there is a point.

    Your game is as playable as original Jetpac. It will be great to have them both.

    But I agree, it woulb have been better if your game and Jetpac Advanced appeared at different time.
  • edited June 2010
    Oh WOW - that's fantastic! Thank you very much for posting this :?)
  • edited June 2010
    BloodBaz wrote: »
    Must be nice to have an entire 32Kb RAM at your disposal!

    Considering this was your first foray with a bit of jiggery pokery Whizzbang, you did a great job my friend. Hopefully you'll get the urge to go on and get some more ideas together to fill that 32k up! ;)

    Did anybody spot his special feature he included into the gameplay?
  • edited June 2010
    Bandit wrote: »
    Did anybody spot his special feature he included into the gameplay?


    nope, just played it for about 20 mins unless it's something a bit subtle that you don't notice it right away

    although for a minute I thought that the laser fire seemed to get longer, but that could have been me imagining it (that's a powerup I put in point5)
  • edited June 2010
    Thanks for the kind comments so far, nobody seems to have run into any problems or bugs caused by the changes (the score being temporarily hidden when the space ship flies through it is the only one I know of now and this isn't a problem).

    The gameplay feature is that if you are holding some fuel and an enemy crashes into you, you drop the fuel instead of losing a life. This doesn't always happen though, it never happens when you are standing on a platform or on the floor, your jet pac has to be blasting. It is quite subtle and so is not a game breaker .

    Here is a picture showing all the levels. Level 4 only has 2 platforms, 8 only has 1 and 12 has no platforms.
    JetPacMEV%20%282%29.PNG

    As regards to further development, Bad Beard did suggest we create our own ships and monsters but the project sort of ran out of steam once my daughter was born and I now think any ships or enemies we created would probably be inferior to the UPG ones so it is no bad thing we didn't.

    I would like to get a loading screen and create a TAP or TZX file of Jet Pac Advance that I can play on my real Spectrum one day, but I don't know how to do this just yet, although I have read a few things.

    BinMan, sorry about the timing. If I had known about your project I would have been happy to delay the release of this longer. I wouldn't want to discourage any development on Spectrum related work going on as I am one of those who very much enjoys playing the new stuff going on.
  • edited June 2010
    Has anybody made any attempt to DATA statement the hack? I'm on Fuse on the Mac, and it's the only way to get it to work. I'm sort of doing it type-in style, but it's taking forever and the chance of making mistakes is quite high with no checksums etc... I'm guessing that there isn't enough memory available to Basic to make a hack that pokes the data in after the game code has loaded, so I'm trying one that uses multiple loads instead. What would be even better is a hack that loads one block right at the top of memory, and runs that. The machine code then loads from the Jet Pac tape, installs the hack and jumps to the start of Jet Pac.
  • edited June 2010
    WhizzBang wrote: »

    I would like to get a loading screen and create a TAP or TZX file of ZX Advance that I can play on my real Spectrum one day, but I don't know how to do this just yet, although I have read a few things.

    Perhaps, somebody could make the hack I described above, but throw a new loading screen in and an option to save out a new cassette version with the pokes and screen installed, before running the game. Then you could distribute that as a .tap, people could use it to create their own full game .taps, which they can convert to audio and record onto tape or burn it to CD for playing on a real Spectrum.
  • edited June 2010
    I found a minor bug while playing...

    Occasionally, when carrying a fuel cell, ild fly into a monster - killing it and dropping the fuel but not dying.

    first noticed it with the lvl5 ufos ( evil things they are, along with their froggy cousins ).


    Excellent "advancement" to Jetpac, perhaps adding different aliens, or even mixing alien types on higher levels if possible would further enhance its playability.
  • edited June 2010
    Zaph0dd wrote: »
    I found a minor bug while playing...

    Occasionally, when carrying a fuel cell, ild fly into a monster - killing it and dropping the fuel but not dying.

    first noticed it with the lvl5 ufos ( evil things they are, along with their froggy cousins ).


    Excellent "advancement" to Jetpac, perhaps adding different aliens, or even mixing alien types on higher levels if possible would further enhance its playability.

    I like that 'feature' :D It's like the fuel gives you a bit of protection, like the armour in Ghouls N Ghosts.


    I'm working on that stand alone hack that can save out a full copy to a .tap, once provided with the original Jet Pac tape or a .tzx of it. It will come as a snapshot.
  • edited June 2010
    Zaph0dd wrote: »
    I found a minor bug while playing...

    Occasionally, when carrying a fuel cell, ild fly into a monster - killing it and dropping the fuel but not dying.

    See here...
    WhizzBang wrote: »
    The gameplay feature is that if you are holding some fuel and an enemy crashes into you, you drop the fuel instead of losing a life. This doesn't always happen though, it never happens when you are standing on a platform or on the floor, your jet pac has to be blasting. It is quite subtle and so is not a game breaker .
  • edited June 2010
    Seeing as the .pok or the assembly file has to be entered after the game has loaded and the menu has appeared, is there anything that changes in the code between it being loaded and run to when the menu screen appears? It's just that although I now can produce a full .tzx file which loads and runs the hacked game, the game is corrupt :/ I have been sent the hacking code in the form of a snapshot of the full game running and I've extracted it from that. That snapshot works fine, so I'm guessing I've gone wrong somewhere but I don't know how. Can anybody help? BB? WhizzBang?
  • edited June 2010
    its probably ultimates "copy protection" kicking in, you know them last 3 blips at the end, theres a thread somewhere about it all
  • edited June 2010
    Zaph0dd wrote: »
    its probably ultimates "copy protection" kicking in, you know them last 3 blips at the end, theres a thread somewhere about it all

    Hmm, thought I'd got round that.

    There are 15 bytes in the printer buffer at 23424, then an 'unused' sys var gets poked and then the first 2 bytes of the FRAMES var.

    I've kept them separate from the rest of the code and load them just as is done in the original game (well, you can't do it any other way really). When the Print Usr executes, the menu appears, and you press 5 to start, but then the level starts with bits of the ship set out wrong and it's all down hill from there.
  • edited June 2010
    mulder wrote: »
    Hmm, thought I'd got round that.

    There are 15 bytes in the printer buffer at 23424, then an 'unused' sys var gets poked and then the first 2 bytes of the FRAMES var.

    I've kept them separate from the rest of the code and load them just as is done in the original game (well, you can't do it any other way really). When the Print Usr executes, the menu appears, and you press 5 to start, but then the level starts with bits of the ship set out wrong and it's all down hill from there.

    Here's a download that may help you along. It contains several formats of the same loader, namely .bas, .txt and .z80 and a .png levels map that you can study. Don't alter any of the code though as it uses the 'reclaim' subroutine in the ROM at $19e5.
  • edited June 2010
    Cheers BB, I'll see what I can do with that :)
  • edited June 2010
    OK, I'm assuming that the 'reclaim' routine is called to do something with the basic area that I needed to do, but wasn't doing. I'm now re-thinking my approach to this, and I'll be back with something later on :)

    EDIT: No, I was wrong, it was just deleting part of the basic so there was enough room left to have the game code under 32768. Hmm. Dunno why my installer still isn't working.
  • edited June 2010
    Now, the game runs fine, but you have immunity to everything, including parts of the spaceship, so you can't pick anything up :?
  • edited June 2010
    I managed to work out what was wrong. It was just that the code in the printer buffer shifts everything down 4 bytes before running the game, so I was poking the wrong places. Then I was moving the new code down by 4 by accident too, thus causing the immunity. Here is the installer then...

    http://dl.dropbox.com/u/2668371/JetpacAdvancedInstaller.sna

    It allows you to add your own screen$ if you have one (somebody could supply an official one for download, or send it to me as a .tap or .tzx and I'll adjust the installer). Open it in an emulator and make sure your auto load is switched off so that when you change tape files it doesn't do anything silly.
  • edited June 2010
    Great work Mulder! Sorry i couldn't provide any help as I really know nothing about this kind of stuff.

    Can you recommend any packages that let me create my own loading screen? I want to take bits form the original one and slightly change it. I might call the game Jet Pac DX instead of Advanced.
  • edited June 2010
    Basin has an excellent paint package built in. It shouldn't be too hard to load the original screen in and chop it about a bit.

    I don't know much about assembler language either :D I get frustrated by it and come on here and ask questions. Usually, it's only then that I suddenly work out what is going on (as I did here) and all my posts become pointless :D
  • edited July 2011
    mulder wrote: »
    It allows you to add your own screen$ if you have one (somebody could supply an official one for download, or send it to me as a .tap or .tzx and I'll adjust the installer).

    If you are still looking for an official loading screen for Jet Pac Advanced, I could adapt this one by adding a game title and proper credits for everybody involved:

    SC2+Marine.scr

    Just let me know if you guys are interested, and I will update this screen accordingly.
    Creator of ZXDB, BIFROST/NIRVANA, ZX7/RCS, etc. I don't frequent this forum anymore, please look for me elsewhere.
Sign In or Register to comment.