Welcome to the Jumpman Project!


A little history and background behind the project:

This version of Jumpman was originally released for the IBM PC (and PCjr) in
1984 by Epyx and distributed by IBM.
It is a port of the very popular Commodore 64 version, released just a year
earlier.  The port was done by Mirror Images software.

The game came on a 5.25" floppy disk and was copy protected.

In its original form, the game is completely unplayable on any computer made
later than about 1985.  This project is an attempt to fix that.




In order to play this game on today's modern hardware, a few of issues must
be resolved:

1) the game must be moved off the 5.25" diskette, since no one has those
   drives anymore.

2) the copy protection must be removed.

3) the game runs way too fast on modern hardware; it was developed for a
   computer running 4.77MHz.




Tasks 1 and 2 are essentially the same.  In order to copy the game onto your
hard drive and play it, the copy protection has to be removed.
These tasks were done in a short amount of time, but the game was still
virtually unplayable due to issue #3 which plagues many games from earlier
generations.

In order to properly fix issue #3 without relying on speed throttling programs
or emulators, the game had to be disassembled, (convert the game back into
source code) modified to include speed throttling, and finally recompiled.

Task 3 is still a work in progress, and perhaps always will be, as the code
can always be improved, commented and debugged.  There comes a time though
when a release is "good enough" and should be distributed. 


This is Jumpman 1.0 - a speed-fixed, modern machine compatible version of the
original 1984 jumpman.

You can play it on your Pentium 4 or your original IBM PC and have the same
look and feel.  It even works properly on the IBM PCjr and has 16 colors and
3 voice sound.


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Game controls:

Arrow keys - Move our hero around on the screen.
Spacebar - Jump, or on some levels, fire.
ESC - Pause game.

Ctrl-S - Toggle sound on and off.
Ctrl-R - Restart
Ctrl-O - Skip level (yes, I added a cheat)
Ctrl-Q - Exit back to DOS.


The game also supports joystick, although getting the game to recognize the
joystick is dependant on your particular computer and operating system.
I strongly suggest using DOSBox as an interface between jumpman and your O/S.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Misc Notes:

The jumpman.exe was compressed with PKLite.  This was done in order to create
a DOS 3.3 bootable 360k floppy disk and still have the levelxx.dat and main
jumpman.exe all fit on the disk!



-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Credits:

Original game concept - Randy Glover
1984 IBM PC port source code - Jake Richter, Mirror Images software
Disassembling, code modifications, comments - Jeff Leyda
Beta testing and bug reporting - Jeremy Kapp, Juan G., Michelle Greenwood


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Contact:

Jeff Leyda jeff@silent.net
http://www.oldskool.org/pc/jumpman



-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

History:

Dec 2006    ver 1.0.001 WIP

After a 3+ year hiatus, I've gotten the inspiration again to work on a few
stray bug reports that have come in.

Fixed:
  * Multiplayer support.  This was actually working just fine right up to the
    1.0 release, when I broke it.  (doh!)

  * Joystick not detected message at startup now appears as it is supposed to
    and requires you to press enter.

At the moment, I'm working on fixing the individual levels that have speed
issues, so there will be several new releases as I go along.




July 5th 2003  ver 1.0

fixed:
   * weird sounds on PCjr with 3 voice support:
     Some end of level songs were goofy; they play more than just the song!
     Sometimes a bomb getting results in only a weird beep and that
     sound no longer plays for the remainder of that level.

   * dragon Slayer level hang on a PCjr when an arrow is launched.

   * Invasion level no longer crashes after 3+ minutes of playing.

   * "next level" message sped up when running off floppy. 
   
   * no more mysterious graphics left behind during bomb explosion on level 3

   * "stars around the head" sequence is timed properly now.
   
Here's the current issue/bug list:
        a) possibly runs too slow when running on a pentium IV 2GHz+?
           This is unconfirmed because my machine is only 800MHz.  :(




I've declared this version as a 1.0 release.  This version faithfully 
reproduces the original gameplay on all machines, including the PCjr.

Future enhancements to the game, such as getting 16 color "PCjr" graphics to
display on VGA systems would be best released under a 1.1 release number.





Huge thanks to Jeremy Kapp for endless hours of playtesting!  This game would
be nowhere near 1.0 without him.




-----------------------------------------------------------------------------



april 25th 2003 ver 0.13


fixed:
   * PCjr!  Game comes up in glorious 16 color graphics and 3 voice sound.
   * joystick support.  (actually it wasn't broken to begin with! Thanks
     to Jeremy Kapp for finding this out)
   * Save high score table on 8088 based machines no longer locks up.
    (thanks to Juan G for finding this)
   * a few more delays timed out better.

New Features:
   * After finishing a level, bonus timer counts down to 0 and score is
     updated.  Totally minor change, but I felt it needed to be that way.
   * Level names parsed from levelxx.dat file instead of an internal list.
     This is work in progress, but it should allow the game to support more
     than 30 levels.  Levels can also be swapped out and replaced without
     affecting game flow.  Eventually, the game will figure out how many
     levelxx.dat files exist in the current directory, then randomizer will
     randomly play all of them, finishing out with the highest level number
     found.

     Currently, the only drawback to this method is that when running off a
     floppy drive, the level display is too slow.  This should be fixed in
     the next release.

   * Added DOS version check, must be at least 2.0
   * Added memory size check, must have at least 128k.
   * Added IDing of Tandy 1000 machines; change default to PCjr if found.
   * Level skip.  press Ctrl-O to jump over a level.

Here's the current issue/bug list.
major issues:
        a) None that I know of.

minor issues:
        a) invasion level crashes after a couple minutes of shooting aliens.
           There's plenty of time to play though the level, but extended
           playing will break it.
        b) dragon Slayer level hangs on a PCjr when an arrow is launched.
           Possibly other levels too.  PCjr is mostly untested.
        c) weird sounds on PCjr with 3 voice support:
           Some end of level songs are goofy; they play more than just the song!
           Sometimes a bomb getting results in only a weird beep and that
           sound no longer plays for the remainder of that level.
           Funeral dirge sounds like it's cut short a bit. 
        d) mysterious graphics left behind during gameplay on level 3 (bombs away)
        e) "next level" messages, when running on a floppy drive are too slow
        f) possibly runs too slow when running on a pentium IV 2GHz.
        g) Some delays might be slightly off


     
-----------------------------------------------------------------------------

mar 2nd 2003 ver 0.12

randomizer now does levels 1-29 then level 30, then the game ends with a
congrats message.  The original version never hit level 30 and never ended,
often repeating levels which always bugged me.

Fixed timing delay at congrats message when extra player's lives are
subtracted off and added to the score (took WAY too long)

Fixed congrats message lockup.  Now times out after a few seconds and goes
to high score screen the way it should.

Missing a levelxx.dat file now prints out which file is missing instead of a
generic message.  This was a byproduct of me testing the randomizer stuff.

-----------------------------------------------------------------------------



feb 23rd 2003 ver 0.11

over a year later....auto speed throttling! (no I haven't been working on
it night and day for that long!)

Works fairly well except a few levels are a tad too slow.  Will hopefully
fix these in future releases.  In order to properly fix these levels, they
will have to be disassembled and modified, which is a huge pain in the cheeks.

Speed throttling is automatic and appears to work on everything from an 8088
to a Pentium III 800MHz.  (no more + and -)!

Added delays during level loading and initial screen drawing to better emulate
original PC version.

Added support to exit gracefully when the level datafiles are missing.

Tested game on original 8088 and it works fine.  On my PCjr, I have some
screen issues that need to be resolved.  


Next update will hopefully have PCjr graphics available for VGA systems.


-----------------------------------------------------------------------------

jan 2nd 2002  ver 0.10

What a great way to start a new year by fixing a couple ugly bugs!
Fixed some memory management issues that kept level 11 in particular from
working properly.  Moved the stack around and modified its size and now the
main .exe is 1/2 the size it used to be.  rawk.

Level 30 now no longer hangs when it switches to the 2nd screen.  Probably
the same problem that level 11 had.

In the year that I've slacked off working on this update, I've located the
original author of the code, Jake Richter, who was unable to provide me with
the true source code for jumpman, but did manage to dig up source to another
of his games entitled "Fleet Sweep".  A lot of the graphics and sound routines
are identical between these two releases, so I will be copying source from
fleetsweep and reorganizing jumpman, which should help with the commenting
and figuring out how the game works!  Jake also gave me full permission to
distribute the source for both games, so I'm now legit.  (except for getting
permission from IBM.  ha! like that'll ever happen.)

-----------------------------------------------------------------------------

nov 9th 2000
fixed level 25, mystery maze.  My fault, was debugging and didn't restore.
no other code changes aside from major comments and variable naming.

Started heavy work on disassembling levels.  Created level01.asm finally
which can be modified, recompiled, and played.

soon to be made into an automated disassembler and editor.

-----------------------------------------------------------------------------

apr 10th
hiscore table now works.
if hiscore.dat doesn't exist in current directory, it is created.
added ctrl-Q support to main menu screen.
fixed level 25 (mystery maze) stupid bug.  Verified all 3 versions work.
added a bit more delay to the sound made by the bullet when it fires
fixed code so it'll compile under tasm or masm.

-----------------------------------------------------------------------------

mar 27th:
sorry I've been unable to do anything until recently.
Nothing major in this release, just fixed the rest of the end of level tunes
and started work on the hiscore table.

-----------------------------------------------------------------------------

feb 29th:
fixed weird jump bug where the player landed on top of the girder every other
time.  If you've played any of the earlier versions of this, you know what
I'm talking about.  I believe that proper gameplay on most levels is now 100%.


-----------------------------------------------------------------------------

feb 21st:
fixed level 10 "hotfoot" lockup problem when jumping.
fixed the bug where the game started up again after all players were used.
more comments.  I believe that level 25, mystery maze is the only level left
that has lockup issues.

-----------------------------------------------------------------------------
               
feb 18th:
more comments; things are starting to make sense now.
started prelimary work on level editor
fixed grand puzzle I hangup.
most levels are now 100% playable; I think only level 10 (hot foot) and 25
 (mystery maze) are hanging the system now.



-----------------------------------------------------------------------------

feb 06:
fixed odd graphics left behind during gameplay
fixed level 5 "invasion" hangup when pressing space bar.
fixed 1 of 4 music selections for end of level.  I'm too lazy to fix the rest.
fixed speed issue of "stars around head" after player dies.
more comments



-----------------------------------------------------------------------------

jan 22nd-jan30th
increased stack size again.  couldn't load level 3 without it.
fixed a lot of the sounds and opening music
fixed delays for startup and inbetween levels.
figured out & commented a lot of the graphics sprite data.

changed/fixed keys:
        ctrl-s  toggle sound on/off
        ctrl-q  quit program
        ctrl-r  restart game 
        esc     pause/start game
        + and - increase/decrease delay

-----------------------------------------------------------------------------

jan 21st
fixed a couple level loading bugs:
1st one always loaded a level that was 1 off from the title in beginner mode.
2nd bug kept levels from loading if the input value was a hexadecimal number.
  my generic hex2ascii routines needed to be hex2dec2ascii.  (duh)
  All levels should now load up, although this is slightly untested.

-----------------------------------------------------------------------------

jan 20th
cut the size of the stack segment by a few k.  I still don't know what size
  will actually be correct.
added + and - to adjust speed delay during gameplay.


-----------------------------------------------------------------------------

jan 18th
reenabled INT 9 keyboard routines since they work better than mine. ;)
lots of variable names resolved
full player control including jump now works with the new (old) int 9 handler
no longer trashes screen when moving up and down.
game is actually playable!  although it quits after 1 level. time to celebrate.
several higher levels lock up when loading.  

-----------------------------------------------------------------------------

jan 17th
reenabled INT 1C code to countdown bonus timer
got player to move left and right without garbage on the screen.
up and down trashes the screen
modified keyboard routines and killed jump functionality in the process!
game is now playable under windows
sound is beginning to work.  doesn't pause at end of funeral dirge before
  starting new player.
skips the circling dots when player hits bottom of screen.
web page created.  screenshots grabbed.
still not playable yet, but damn close.
hardcoded slowdown routine.

-----------------------------------------------------------------------------

2nd week jan 2000:
most levels seem to load and display properly.
changed keyboard interface to not revector INT9
quitable via the ESC key.  (will change later)
game does not work under windows.
bullets fly and kill you.  messes up screen.
no sound

-----------------------------------------------------------------------------

1st week jan 2000:
load level data from file, not disk
displays player to the screen

-----------------------------------------------------------------------------

new years:
got level to display on screen.
crashes shortly thereafter

-----------------------------------------------------------------------------

xmas break 1999:

ripped code from floppy diskette and created a .COM to disassemble.
first sourcer file is a big mess.
begin commenting and tracing.  get opening text displayed, then graphics.







