CD-MAN is a DOS game created by Creative Dimensions in 1989 and updated in 1992. It would have been just your basic run-of-the-mill Pac Man clone, except for one aspect: you could choose your game speed. The options ranged from the mind-numbingly slow "Zzzzz..." to the literally impossible "Warp". In fact, they made "Warp" so fast, that it is safe to argue that no one in history has ever beaten even the first level at that speed. This TAS makes history by finally beating not just the first level, but all five levels, twice each. And all in less than 2.5 seconds of actual gameplay.

Game objectives

  • Emulator used: JPC-rr 11.2
  • Uses hardest difficulty (LudicrousWarp Speed)
  • 2 players simultaneous
  • Completes all levels twice
  • Uses JPC-rr's default CPU speed (CPUDIVIDER 50)

Quick Encode

Note: This video is at game speed!
Did you blink? Here it is at 1/4 speed (15 fps)
Still too fast? Here it is at 1/10th speed (6 fps)

Game Version Choice

Probably more people recognize CD-Man Version 1.0 than do 2.0. Version 1.0 was released in 1989 and featured a very familiar-looking hero. It was also unfinished, with the third level explicitly saying so.
Version 2.0 was released in 1992 with some significant changes:
  • Had five complete levels
  • Only had to complete each level twice (instead of three times)
  • Changed the hero from a Pac Man copy to "The Snoofer" (probably to avoid a lawsuit)
  • Introduced two-player simultaneous play
Although both versions had the widely varying speed choices mentioned in the TAS description above, I chose to take on Version 2.0 because of the extra levels and the two-player simultaneous play.

Warp Speed

During the judging of the game, turska discovered that Warp speed is unbounded and is only limited by the clock speed of the CPU. Much thanks, turska!
At JPC-rr's default CPU speed during each frame of the game both the heroes and the villains both move up to twelve moves each. That's twelve moves in 14 milliseconds or 0.014 seconds!
JPC-rr's default clock speed of 20 MHz is appropriate for this TAS, as it matches the speed of 386 and 486 CPU clocks at the time of the game's release (1992) (see http://www.islandnet.com/~kpolsson/micropro/proc1990.htm). Any future TASes should use the default clock speed.
This insanely fast speed offered some unique challenges to making this TAS:

Impossible Turns

Due to the speed, there are some tight turns in the game that are simply impossible to make. Even if you input commands to move and turn immediately one after the other, by the time it processes the command to turn, the hero has already moved past the turn. This aspect made route planning a little trickier.
Example of an impossible turn

Trial and Error

The only way to TAS this game was frame-by-frame trial and error. Each frame took many rerecords, as I had to slowly build up and buffer moves for each frame. The cycle of input > save > frame-advance > restore > input > save > frame-advance > restore, is pretty tedious, so I had to do this TAS in bits and pieces, and have been working on this off-and-on since 2013.
Here's an example of what doing one frame would entail:
The board at the start of the frame. I've drawn in the routes I want the heroes to take:
NOTE: P1 is on the left (blue path), P2 is on the right (red path)
1. Save Slot 10 (In case we need to trapped several frames from now and need to get back here)
2. Save Slot 1
3. P2 Left
4. P1 Left 
5. P2 Down
6. P1 Up
7. Save Slot 2
8. Frame Advance (checking to make sure inputs did what I expected)
So far, so good.
9. Restore Slot 2
10. P2 Right
11. P1 Left
12. Save Slot 3
13. Frame Advance 
Looks good. Next to turn them.
14. Restore Slot 3
15. P1 Up
16. P2 Up
17. Save Slot 4
18. Frame Advance 
Nope. P2 made its turn, but P1 didn't make the turn up I wanted. At least we know P2's corner isn't an impossible one
19. Restore Slot 3
20. P2 Up
21. P1 Up
22. Save Slot 4
23. Frame Advance 
Ugh. Still no. P1 Now made its turn, but P2 went past. We'll have to do these one at a time
24. Restore Slot 2
25. P2 Right
26. P2 Up
27. Save Slot 3
28. Frame Advance 
P2 looks good. Next for P1
29. Restore Slot 3
30. P2 Down (Don't go any further out of your way than you need to.  Also, don't get too close to those spiders)
31. P1 Left
32. P1 Up
33. Save Slot 4
34. Frame Advance 
WHAT THE HELL, P2! I thought you had eaten that dot! Grumble, grumble...
35. Restore Slot 3
36. P1 Left
37. P1 Up
38. P2 Down
39. Save Slot 4
40. Frame Advance 
Hmm... hard to tell. Let's advance another frame to see what happens
41. Frame Advance 
Yeah, that's what I wanted! P2 lost a life. Let's see if I can avoid that by turning
42. Restore Slot 4
43. P2 Right
44. Save Slot 5
45. Frame Advance 
Same as before. Let's go one more
46. Frame Advance
There we go! I'll have P1 turn left at the start of the next frame to avoid those spiders
47. Restore Slot 5
48. Frame Advance 
1. Save Slot 11 (Store the latest good frame in case we need to get back here)
2. Save Slot 1 (Start of a new frame)
3. P1 Left
... Trial and Error the next frame ...

Stage by stage comments

Level 1

Because you need to eat a key to open the gate to the upper-half of the level, a little bit of luck manipulation was required to get the key to show up in a convenient location.

Level 2

This level was the most annoying to do, as it has the most dots to eat, and lots of open areas.

Level 3

I had to redo this level several times (on both passes) as I got trapped a couple times by one of the rocket ships. There were a number of impossible turns in this level which also spiced things up.

Level 4

Arguably this the hardest level when playing the game normally, due to its long narrow paths that are easy to get trapped in. Fortunately, since it has so few dots, it was easy to TAS the entire level with the enemies being edible practically the entire time.
Here's an image of the route map I created for this level:

Level 5

Again, a pretty easy level to do. On the second run through it, I end input one frame early, and let the heroes walk the long corridors at the top to end the TAS.
Once you beat Level 5 twice in the single player game, you get the following screen:
(Looks like they left Pac Man in there!)
Unfortunately for the two player simultaneous game, it just takes you back the first level again. I consider the TAS complete once Level 5 has been beaten twice.

Other comments

My goal in route planning was to have as little overlap and retracing in the heroes paths as possible, and for each hero to end the level at approximately the same time. I'm sure a couple frames could be saved on better route planning, especially on the first couple levels where I was still getting the hang of things. I do think I did a pretty decent job overall, and I'm satisfied with the result. If anyone wants to start a frame war over this, they're welcome to it. I won't be responding, as the amount of manual work to TAS this game isn't worth the few frames of savings for me.
I think a one player TAS would be worthwhile. If anyone wants to pick it up, feel free to get in touch with me for tips and pointers.
It would also be interesting as a playaround to see if the game is even TASable at JPC-rr's fastest speed (CPUDIVIDER 1), and what that would even look like.
Suggested Screenshot: 2369

Files:
HDD, 64 tracks, 63 sectors, 16 sides.
FilenameSizeMD5Timestamp
CDMAN2.EXE35337d0130eccbf574f3b12ffd0b27731a75419900101000000
CDMAN2.ICO766962552a4f3bd73ca5cea109938c6eb8e19900101000000
CHARTAB.CDM3556fea94215cca5e48347e6cd1b70bd36f819900101000000
DEMO.CDM474645f9ab60a74ca150ab06e41682750cb419900101000000
DPS.NFO718618274aa1d427691f3875916febd18e3419900101000000
FILE_ID.DIZ525bfc71aeda77d7c3649ab52750413e77519900101000000
GRAFIX1.CDM14202773ac57bcbe95ce03e1cc6858941426319900101000000
GRAFIX2.CDM102603053a9ca6b8813e097f38e52e59f908a19900101000000
GRAFIX3.CDM118637e8a8847b58d7ff2ee5372fe3fcc74ac19900101000000
GRAFIX4.CDM117880d204d644f804fe14ceb6fd7e03a4c6019900101000000
GRAFIX5.CDM108515052a40229ce5e4de71c8b3d4f8750c019900101000000
GRAPHIC1.CDM6975676d4649d371a3f0c4e49d89f133f604719900101000000
GRAPHIC2.CDM513199252a9e1d372663dab15dbc1155c35b919900101000000
GRAPHIC3.CDM6017844ba97ca0e2dd0c068e4facc4519477519900101000000
GRAPHIC4.CDM642068e059189ca2933a5c1707cc6979b8b9319900101000000
GRAPHIC5.CDM50233864f6cb1a58d4df053a018be070b936919900101000000
HELP.CDM4394432a832047d26f24121c67a077ffb5e819900101000000
HIGHSC.CDM2221a22ef1926944541799714a1ede19db9719900101000000
SCREEN1.CDM43268b8470c931013737c0e83d42f009bc39619900101000000
SCREEN2.CDM403080aa73ad4e1e2caa082d4b494d18ba8b119900101000000
SCREEN3.CDM32900d5a7a8757bfd40c1c7612dedfc3e5b7f19900101000000
SCREEN4.CDM382017a2122dd3c007686b9a31e80a02f329719900101000000
SCREEN5.CDM35892af0313441c572c811f5dc556b778c86819900101000000
TITLE.CDM7079089e065f111ef192715ef61d86cd60a0919900101000000
WOSHI.CDM48041ee674a77e95ccda72a97349701ff3c8819900101000000
XMUSE.BIN2040199e49ec23496bd585a760004bfb71ce6319900101000000

Nach: Replacing submission with better file from author.

turska: Judging.

turska: This game's speed is poorly controlled and depends on system performance. This is not limited to the absurdly quick Warp speed setting used in this TAS; lower speed settings are also affected.
The Warp speed setting used in this TAS is absurdly fast at JPC-RR's default settings; in games like [2247] DOS Mega Man by DarkKobold in 02:23.55, even a high speed remains watchable and does not alter gameplay under TAS conditions. The speed is so fast that movement is significantly restricted and affects strategy in the TAS; TASing it on a slower emulated system would have more freedom of movement, while a faster system would limit movement even more. This makes TASes done on slower/faster emulated systems and different speed not directly comparable.
To avoid these issues for future movies of this game, TASes of CD-Man should use a system speed setting that is equal or slower than JPC-RR's defaults; the default setting is CPU Frequency Divider = 50.


The copy of the game used in this submission is not "clean" - DPS.NFO is a warez release notice that is not found in official releases, such as those found on The Internet Archive. This makes the movie desync on copies that lack this file. Aside from unused files and the resulting sync difference, the copy used is identical to the "official" Archive.org release.


Whether this run should be published in Moons or Vault is not straightforward. There are several factors favoring Moons:
  • Good audience response.
  • Has a high chance of being nominated for awards, mainly Speedy TAS. Vault runs are ineligible for awards, so Vaulting this run would effectively disqualify it from being nominated.
  • One of the fastest TASes ever submitted.
  • Less than two seconds of gameplay. At such a speed, even Pac-Man makes for an entertaining TAS.
There are also problems, howewer:
  • Pac-Man clones generally don't make for an entertaining game choice - if this game, or any of the countless similar games was TASed at a normal speed, they would most likely fail Moons entertainment requirements.
  • The run's speed is more a result of poor programming and choosing a high speed setting than the game's suitability for TASing.
  • The speed is so overboard that the gameplay is impossible to follow even with massive slowdown with up to twelve moves happening on a single frame.
While the issues are considerable, I think the run's uniqueness and favorable audience response outweigh them. Accepting for publication into Moons.
Since this is the only published run for this game, it doesn't need a "2-player" branch.

fsvgm777: Processing.

Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
I think you bring up a good point. Many really old DOS games did not have any timing routines, and instead assumed that the PC had a fixed speed (like if it were a console). Thus if you run the game in a faster PC, the game will run faster. Thus, you can speed up a game by running it on a "faster PC"... which doesn't feel right. It's essentially like emulating the game at a higher speed than normal. (Granted, I don't know if this is really the case with this particular game, but it certainly is the case with some other very old DOS games.)
Editor, Player (44)
Joined: 7/11/2010
Posts: 1022
JPC-RR does support subframe input (e.g. #3080: ais523's DOS NetHack "fastest death" in 00:01.15 which is another submission that's shorter than this one; and in the more serious NetHack TAS that dwangoAC and I are working on, we use subframe input to do luck manipulation faster). In order to avoid Warp's concerns, I played using JPC-RR's default clock speed.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
c-square wrote:
Nach wrote:
Please edit your submission to include details on the disk image used for this run as other DOS runs do. Thank you.
Hi Nach, I'm not sure how to do that. Last time I think it did it automatically for me. This time I submitted the wrong file (a save.jrsr) so I'm wondering if that's the reason why it wasn't added. I've since uploaded what I think is the right thing (the movie file I saved to use for the dump that created my quick encode).
I've replaced your submission file. In terms of that, you followed the correct procedure. However, the site does not automatically generate disk image info. Your last submission had it because Ilari added it: http://tasvideos.org/diff.exe?page=3317S&rev=2&prev=1 You can get a listing from JPC-RR, please do so and add it to your submission.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Active player (372)
Joined: 9/25/2011
Posts: 652
Nach wrote:
I've replaced your submission file. In terms of that, you followed the correct procedure. However, the site does not automatically generate disk image info. Your last submission had it because Ilari added it: http://tasvideos.org/diff.exe?page=3317S&rev=2&prev=1 You can get a listing from JPC-RR, please do so and add it to your submission.
Great. I've added the file info to the submission. Please let me know if there's anything else missing.
Active player (372)
Joined: 9/25/2011
Posts: 652
Warp wrote:
I think you bring up a good point. Many really old DOS games did not have any timing routines, and instead assumed that the PC had a fixed speed (like if it were a console). Thus if you run the game in a faster PC, the game will run faster. Thus, you can speed up a game by running it on a "faster PC"... which doesn't feel right. It's essentially like emulating the game at a higher speed than normal. (Granted, I don't know if this is really the case with this particular game, but it certainly is the case with some other very old DOS games.)
I'm pretty sure JPC-rr limits the clock speed. Otherwise, the Commander Keen and other DOS TASes would have just zipped through them. I kept the default settings for JCP-rr to make this TAS.
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
Warp wrote:
I think you bring up a good point. Many really old DOS games did not have any timing routines, and instead assumed that the PC had a fixed speed (like if it were a console). Thus if you run the game in a faster PC, the game will run faster.
While this is true for really old games, it is not the case for EGA/VGA-era games (such as this one). Pretty much all professional or semi-professional games from that era either run off the system timer, or the monitor's vertical blanking interval (which didn't change much until TFTs became common). For example, running Commander Keen 4 in Dosbox, the game keeps running at the same speed even if I change Dosbox's emulated CPU rate by a factor of ten; it only becomes noticeable if I either drop the rate below what CK4 requires to function (about 1 MHz, which is well below the slowest PCs in existence outside of emulation), or if I increase it above what my current PC is capable of emulating.
Joined: 10/14/2013
Posts: 335
Location: Australia
What's the licensing like on this game? I know we can't share hdd images unless the game's freeware, but I'm finding it hard to come by this exact copy. To be specific, HIGHSC.CDM has a different checksum that varies in most cases, and I'm yet to find a copy that has XMUSE.BIN, DPS.NFO and FILE_ID.DIZ.
I'm not as active as I once was, but I can be reached here if I should be needed.
Active player (372)
Joined: 9/25/2011
Posts: 652
thecoreyburton wrote:
What's the licensing like on this game? I know we can't share images unless it's freeware, but I'm finding it hard to come by this exact copy. To be specific, HIGHSC.CDM has a different checksum that varies in most cases, and I'm yet to find a copy that has XMUSE.BIN, DPS.NFO and FILE_ID.DIZ.
I got my copy from http://www.myabandonware.com/game/cd-man-1d0 As for licensing, DosGamesArchive and Archive.org list it as Shareware, which version 1 certainly was. The copy protection on version 2, however, seems to put that in doubt for this TAS. It certainly would qualify for ''Abandonware'' if such a legal thing actually exists.
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
ais523 wrote:
JPC-RR does support subframe input (e.g. #3080: ais523's DOS NetHack "fastest death" in 00:01.15 which is another submission that's shorter than this one; and in the more serious NetHack TAS that dwangoAC and I are working on, we use subframe input to do luck manipulation faster). In order to avoid Warp's concerns, I played using JPC-RR's default clock speed.
How do emulators make use of subframe input? Does it advance the game by instruction?
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
thecoreyburton wrote:
I know we can't share images unless it's freeware
Being freeware doesn't rescind copyright. That being said, probably no original author cares.
Experienced player (758)
Joined: 6/17/2008
Posts: 146
It seems like the Warp speed setting in CD-Man is not capped, and mostly dependent on system speed. Tested in JPC-RR and Dosbox by adjusting emulated CPU speed; with CPUDIVIDER 250, the game moves at around two moves per frame - as opposed to the twelve per frame of this movie, which uses the default speed (CPUDIVIDER 50). Dosbox also slows down when emulating a slower system, and at 500-600 cycles, the Warp speed is even playable in real-time.
Active player (372)
Joined: 9/25/2011
Posts: 652
turska wrote:
It seems like the Warp speed setting in CD-Man is not capped, and mostly dependent on system speed. Tested in JPC-RR and Dosbox by adjusting emulated CPU speed; with CPUDIVIDER 250, the game moves at around two moves per frame - as opposed to the twelve per frame of this movie, which uses the default speed (CPUDIVIDER 50). Dosbox also slows down when emulating a slower system, and at 500-600 cycles, the Warp speed is even playable in real-time.
Interesting. Thanks for investigating that, turska. I've updated the goals and description to reflect that this TAS was then done at JPC-rr's default CPU speed. I think this TAS is still valid, as JPC-rr's default CPU speed is comparable to the speeds of PC CPUs at the time the game was released (1992) (see http://www.islandnet.com/~kpolsson/micropro/proc1990.htm).
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14884
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [2794] DOS CD-Man "2 players" by c-square in 00:03.72