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.