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!
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 ...
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.
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.
Filename | Size | MD5 | Timestamp |
---|
CDMAN2.EXE | 35337 | d0130eccbf574f3b12ffd0b27731a754 | 19900101000000 |
CDMAN2.ICO | 766 | 962552a4f3bd73ca5cea109938c6eb8e | 19900101000000 |
CHARTAB.CDM | 3556 | fea94215cca5e48347e6cd1b70bd36f8 | 19900101000000 |
DEMO.CDM | 4746 | 45f9ab60a74ca150ab06e41682750cb4 | 19900101000000 |
DPS.NFO | 7186 | 18274aa1d427691f3875916febd18e34 | 19900101000000 |
FILE_ID.DIZ | 525 | bfc71aeda77d7c3649ab52750413e775 | 19900101000000 |
GRAFIX1.CDM | 14202 | 773ac57bcbe95ce03e1cc68589414263 | 19900101000000 |
GRAFIX2.CDM | 10260 | 3053a9ca6b8813e097f38e52e59f908a | 19900101000000 |
GRAFIX3.CDM | 11863 | 7e8a8847b58d7ff2ee5372fe3fcc74ac | 19900101000000 |
GRAFIX4.CDM | 11788 | 0d204d644f804fe14ceb6fd7e03a4c60 | 19900101000000 |
GRAFIX5.CDM | 10851 | 5052a40229ce5e4de71c8b3d4f8750c0 | 19900101000000 |
GRAPHIC1.CDM | 69756 | 76d4649d371a3f0c4e49d89f133f6047 | 19900101000000 |
GRAPHIC2.CDM | 51319 | 9252a9e1d372663dab15dbc1155c35b9 | 19900101000000 |
GRAPHIC3.CDM | 60178 | 44ba97ca0e2dd0c068e4facc45194775 | 19900101000000 |
GRAPHIC4.CDM | 64206 | 8e059189ca2933a5c1707cc6979b8b93 | 19900101000000 |
GRAPHIC5.CDM | 50233 | 864f6cb1a58d4df053a018be070b9369 | 19900101000000 |
HELP.CDM | 4394 | 432a832047d26f24121c67a077ffb5e8 | 19900101000000 |
HIGHSC.CDM | 2221 | a22ef1926944541799714a1ede19db97 | 19900101000000 |
SCREEN1.CDM | 43268 | b8470c931013737c0e83d42f009bc396 | 19900101000000 |
SCREEN2.CDM | 40308 | 0aa73ad4e1e2caa082d4b494d18ba8b1 | 19900101000000 |
SCREEN3.CDM | 32900 | d5a7a8757bfd40c1c7612dedfc3e5b7f | 19900101000000 |
SCREEN4.CDM | 38201 | 7a2122dd3c007686b9a31e80a02f3297 | 19900101000000 |
SCREEN5.CDM | 35892 | af0313441c572c811f5dc556b778c868 | 19900101000000 |
TITLE.CDM | 70790 | 89e065f111ef192715ef61d86cd60a09 | 19900101000000 |
WOSHI.CDM | 48041 | ee674a77e95ccda72a97349701ff3c88 | 19900101000000 |
XMUSE.BIN | 204019 | 9e49ec23496bd585a760004bfb71ce63 | 19900101000000 |
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.