This is the DOS version of Prince of Persia 2: The Shadow and the Flame, second game in the classic franchise which consists games spanning multiple generations.

Game objectives

  • Emulator used: PCem v17+st-1 in libTAS 1.4.3
  • Config: Early 90s package
  • MD5 Hashes of relevant files are given at the end.
  • Game Version: IR (Initial Release)
  • The objective of the run is to complete the game, which is this case means saving the princess from the evil Jaffar.
  • There are plenty of glitches used for various skips and sequence breaks. The most notable one is wall clipping, which is used to skip major portions of various levels. It and the other glitches are explained in the level-wise comments below.
  • We control only one character in the run - the prince.

Alternate Encodes:

Input Viewer and in-game frame counter:

This shows that the in-game is 13:32.83 at 12fps. This helps in accurate comparison to RTA records.

Commentary with Samabam:

Comments

This is a game which features both plenty of glitches and satisfying movement. Almost all the inputs can be buffered in this game. Unlike its predecessor, this game is relatively more free of RNG, mainly because of the strategies being devised in such a way that enemies are dealt with as little as possible. This is the fourth edition of this TAS. I did not submit the third edition because as much as there were a lot of improved tech like sword clipping, I really did not want another run with the PC Speaker (which is the only sound device that didn't crash the game in JPC-RR). The fact that the PC speaker sounds are annoying was one of the major criticisms of the published second edition as well. Thanks to new PCem + libTAS setup, this is no longer a limitation, and one of my biggest motivation to do an improvement.

Stage by stage comments

Level 1

Right at the start you can get a glimpse of how its possible to take advantage of the guard AI in this game, as we breeze past through the first set of guards after some special movement to deal with the very first one. As we advance further, we take a hit from a guard to get our swords out quicker and one-shot him. A little further, we hit a checkpoint and immediately restart to cancel the prince's stagger and get up animation which takes quite a while. From there we proceed to escape in the ship. At the right moment, its possible to skip the end level jingle and the cutscene by pressing esc followed by space in quick succession.

Level 2

This level is arguably the most RNG part of the run. I set the system time of 32s at the start specifically for getting an optimal pattern here. The following copy-protection screen needs the correct symbols to be entered. Luckily unlike in the original game it wastes no time (atleast in a TAS) as inputs can be buffered just like in the initial command screen. Its also worth noting that the space button is used to cancel any sort of fading menus throughout the run.

Level 3

This level has a shorter path to the exit, but for the completion of this game, we require a total of nine health upgrade potions (including the 3 we have at the start), we will get to the reasons later. After getting to the nearest potion in this level, the wall-clipping is used for the first time in the run to get quick access to an otherwise farther exit door. The way clip works is when standing still close enough to a wall facing away from it, it is possible to run through the wall for a certain distance before it pushes the prince out. but if we do a turn around, the prince gets struck in the wall or comes through the other side if the wall is narrow enough. After that we takeout our swords and put it away to clip further. This tech is what I dub 'sword clipping'.

Level 4

Once again this level has a slightly faster way of reaching the exit using a floating potion, but we do a small detour to collect another health upgrade potion. On our way, we perform a new wall clip which was not faster before but sword clipping makes it faster. After some optimised movement to the exit button, we do a special kind of wall-clip that doesn't require anything special in terms of input execution. For some reason, if a wall clip is performed at the very end of the map, it warps the prince back a couple of rooms in the opposite direction. From there we simply run to the exit.

Level 5

At the start of this level we do some specific movement to get past the skeleton and the next section with some contraptions to reach the carpet room. After that follows the biggest clip of the run that spans several blocks to reach a room with a health upgrade potion. This skip would be faster regardless of the existence of the potion but we get it as an added bonus in this route, avoiding a sidetrack to get to it. From there we run to the end of the level. We do a little checkpoint restart before the bridge section both to setup a good position for jumping through the skeleton and also because the movement is faster.

Level 6

This level is the primary reason why the IR version of the game is used. For some reason the starting door of the level is open and allows us to exit straight to the next level.

Level 7

We start the level with some movement stuff and then get straight to the first clip. Its a very short clip but one of the biggest timesaves of the run as it leads directly to a potion room just like in level 5. After dealing with the medusa head and drinking the potion, we do another little clip to get out of there really quickly. As we proceed further we meet the first sword trap. We avoid having to crawl under them at all costs as its slow so we either bunny hop or in some cases its possible jump through them altogether. In this case we have to do the former. After the dealing with the medusa head in the next room we do another clip to get to the room with the exit door buttons. We can also jump through the trap in that room and also stand close enough to the room with the door without actually having to go through the room transition to exit through it.

Level 8

We quickly perform a save and load to avoid a known crash in this level. After the climb down at the start, we perform a clip instead of crawling under the hole especially so that can also avoid the trap after with bunny hops, which overall ends up being faster. We jump our way through the the end long corridor where we are conveniently aided by a medusa head to clip through the door. This glitch is possible even without the head but here it just helped even more. We pickup the sword and skip the cutscene. This is where the game would crash if not for the save/load at the start. After that we do specific movement in the next rooms to avoid as many medusa heads as possible to reach the exit.

Level 9

This level is again fully movement to avoid medusa heads. At the very end, we do a little trick with our sword actions to avoid falling with a falling tile to reach the horse.

Level 10

The graphics of this level fails to load as we skip the previous cutscene. Luckily the collision/interactions all work normally which is more than enough for us to reach the exit and finish this short level.

Level 11

This is by far the longest level of the run. First we have a movement section, then we do a little clip to get to the potion quicker. Then after more movement we reach a checkpoint which we restart to stop our momentum quickly. Then we deal with the guards in the next section. By taking out our sword and buffering inputs, we can get a little bit into the next room without aggroing the guards, which allows us to completely skip him. And for the next guard, we use the closing door to push him to his death. We do more movement, trap dodges, wall-clips to finish the level, the usual stuff.

Level 12

This level starts straight with a wall clip to avoid going around using the door to the left. We do another clip to skip a small climbing section and then its a straight path to the level exit.

Level 13

This level starts with some specific movement to tightly get under the door as well setup position for jumping through the sword trap. The rest of the level is just more specific movement to get through the guards by slowing down as little as possible. Near the flame, two cool things. One, the guard just get confused and falls off if we stand at a specific spot before he notices us. And second, we don't have to do the flame shenanigans, we can just return without doing anything with it as the only thing we need is for the trigger to open the exit door to be hit, which is luckily not tied to the flame interaction. Also we pickup a health upgrade potion on the way back to the exit.

Level 14

In this level, normally we would need to have 11 potions to get to the flame form, which is achieved by continuously turning left and right alternatively. But we can do so with nine potions only with a clever trick. By placing ourselves really close to the cutscene trigger at the start, we can use the cutscene to interrupt the animation of turning into the shadow which is what normally happens if we have only 9 potions. At the end of cutscene, we magically appear in the flame form, albeit in a slightly different graphics which arguably looks cooler. We proceed to take down the clones of Jaffar. We need to kill only 2 because game counts the prince's body as well, but since we left it in the previous level, the game miscalculates the number of remaining clones. Then we take Jaffar himself by following a specific path at the end chase segment to finish him off quickly.

Final Thoughts and acknowledgements

This was a fun little project, and I was happy to revisit the game and its nice to have a new movie with good sound as well as more optimisations. PS: The time of the movie seems slower, but considering the fact that the boot takes 35 seconds, it beats the current publication by about 15 seconds, assuming the emulators run the game at relatively the same speed.

Suggested Screenshot:

Frame #82543

Files used with MD5 hashes

Files used to make the image:

457a1d83eba4a894596d10d8877f63b7  SNDDRVRS/DDISNEY.DRV
b51a3e481e975016d2efe19a071c4ecc  SNDDRVRS/DMVISION.DRV
d345b258c540574d9b752ede0ee26a7e  SNDDRVRS/DPS1.DRV
d4dc2221531b667a28c87aae1182f3a9  SNDDRVRS/DSBLAST.DRV
a651165c22735d0907bd03be220a33ce  SNDDRVRS/DSB_PRO.DRV
6b85bce568f03075351a8bd77c297646  SNDDRVRS/DTANDY.DRV
5a9139ceedbbc58733b7dbff28371dab  SNDDRVRS/MADLIB.DRV
583dcfaec1cfb3e72f1cd3891414c24a  SNDDRVRS/MCMS101.DRV
558751b791c09d823b0b65513aee129c  SNDDRVRS/MMPU401.DRV
cb674373c8bae208dc35740963d165f1  SNDDRVRS/MMVISION.DRV
b6db35cf66c6d69d51acce45be441aff  SNDDRVRS/MPS1.DRV
27f67e23bfa16802d20223dcc9579000  SNDDRVRS/MSBLAST.DRV
fedd8ddb6fc5284b30371d7cc9354461  SNDDRVRS/MSB_PRO.DRV
17f3c54b7ba94c9f8b3fff3f043398d6  SNDDRVRS/MTANDY.DRV
e2d7d86aa85fcaf2024ee9e788d8c329  SNDDRVRS/PRESET32.DEF
86358ab0ab40d52353fa7b07e9d42a5d  SNDDRVRS/PRESET33.DEF
a7bb7ed8811c6bd9377b26df6b2ed94b  SNDDRVRS/PRESET40.DEF
1b5af5b0f244a0a1a7c4e84f6f1a4df6  SNDDRVRS/PRESET41.DEF
f1b96f5882f697647afe84f4f33f8c4a  BIRD.DAT
c9af41ef358d593a00732a6f1d797076  CAVERNS.DAT
3298c38de30a5fec23de99c1f70f25d1  CONFIG.DAT
7795b9ad4c3b20dd93e5e4def93a162f  DESERT.DAT
d4dc2221531b667a28c87aae1182f3a9  DIGI.DRV
6e84b43eb28068f6aeae39a586cc2f88  DIGISND.DAT
3c39cf12c722692a63db19dbc8bed025  FINAL.DAT
e632701500ce6142f1cfd4f48b5be7b1  FLAME.DAT
73777d652277512aab0696eed747e571  FRAGSND.DAT
23cb6b033ff67236cbaaee54165f44af  GUARD.DAT
055d464ee4fe8efc714f314d7c018339  HEAD.DAT
7d7e242cd326064a6e5aba5f151a795e  IBMSND.DAT
7a05436cf5249eec184d092213d01f61  JINNEE.DAT
dac526e59ec18cb1eebb0dda6d78f171  KID.DAT
27f67e23bfa16802d20223dcc9579000  MIDI.DRV
2d3f03861be8da72b2847602cd1ad924  MIDISND.DAT
100466e19b56067fa0fb97ff86b9e9df  NIS.DAT
017897dd13be11ca63e4a590787826fb  NIS3VC.DAT
48ab6c7e846bd40c57e7292f74fa501c  NISDIGI.DAT
b45e005e677af8475d0000232141bb05  NISIBM.DAT
3c18cbe26222da1d071315bb9a2e191c  NISMIDI.DAT
86358ab0ab40d52353fa7b07e9d42a5d  PRESETS.DEF
9264767b75539d55b2e93c93e6691503  PRINCE.DAT
7bcdb72c92dc661eea0297bf0794d3e4  PRINCE.EXE
0d476778f54ef1e8044df43d24dfa727  PRINCE.ICO
13cae8e658e0ca4f75c56b1fc424e150  PRINCE.OPT
a340119c34a591287a19427531ae4f7d  ROOFTOPS.DAT
e448822afd5d374807c1d22c51fb248c  RUINS.DAT
209e68d914626fe58115db6c1cef040f  SEQUENCE.DAT
68c64d0d7343173690994d2a03af22bd  SETUP.CFG
887e1c75b4d091de853894e5d216d035  SETUP.DAT
caaf9244838030bbec1274523f2a39ec  SETUP.EXE
211d8c4c2fe018cc1d1c2c71b085c823  SKELETON.DAT
ec32a75c2cf55ad1bfe3bb60f1229a35  TANDYSND.DAT
7e87b470058b67574d10c670229a3df1  TEMPLE.DAT
b11d855671c2601c642dcadabee06eb5  TRANS.DAT

The image:

3cb2f35c8e660b5073ad8d34f29ab2b5  ~/.pcem/imgs/pop2ir.iso

ROM files:

15d245587d08979f16383190c55fb153  ~/.pcem/roms/pb570/1007by0r.bio
7138354ba08f606ba51df60c18015635  ~/.pcem/roms/pb570/gd5430.bin1
d4ba691ce5e04d950ca7624050e6b409  ~/.pcem/roms/pb570/gd5430.bin
03207098cea070b325d9e1c6f46f5938  ~/.pcem/roms/pb570/flash.bin
26d8f651e468874e852bdd1ffb6e6804  ~/.pcem/roms/pb570/1007by0r.bi1

Steps to reproduce flash.bin

If flash.bin is missing and you get a checksum error in the boot screen, boot pcem outside of libTAS once, and you will get the same error. Now just close the app and the file should be created now and you can run the movie in libTAS.

slamo: Claiming for judging.
slamo: Replaced the movie file with an annotated version.
Great to see another PCem TAS! There was a little snag with having flash.bin included, but it's nice to know that this doesn't always jeopardize a run being syncable. Prolonged usage of a config outside of libTAS can still make an impossible-to-reproduce flash.bin, so users should still be careful.
Comparing this to the previous movie, the time is longer here, but that's only due to PCem bootup taking longer. Taking that into account, overall from start to finish the new movie is roughly 14 seconds shorter. Gameplay-wise, it's probably a bit more than that, due to some of the loading times being slightly longer in PCem. There were definitely some tangible gameplay and routing improvements when comparing level-by-level. It also doesn't hurt that PCem emulates the sound correctly, making this an improvement presentation-wise as well.
Accepting as an improvement to the previous movie.
fsvgm777: Processing.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15577
Location: 127.0.0.1
eien86
He/Him
Judge, Skilled player (1873)
Joined: 3/21/2021
Posts: 262
Location: Switzerland
Ahh finally the treatment this game deserved. GMP had hoarded a bunch of route and execution improvements to the (now obsoleted) movie since last year and refused to publish it until there was an emulation platform that allowed for this game to show it's true colors. Well, today is the day where libTAS+PCem finally overtook JPC-rr for us, and boy it was worth the wait. Remark: The movie time is actually around 14:10, if you discount the booting times, which makes it faster than my (and +GMP +Challenger) submission Movie highlights: 0:38 - Can't touch this 1:50 - What are walls? 3:35 - No, really, what are walls? 4:30 - W-A-L-L-S? Nope, never heard of him 5:15 - Bye, bonehead! 5:35 - ktnxbye 5:45 - No walls for you! 6:00 - Parsing error: 'walls' command does not exist 6:45 - Walls are just, like, a social construct, man 7:05 - sllaw 7:20 - Doors ain't a thing either 7:38 - The pain section -- hours lost routing this part 8:20 - Who turned off the light? 9:40 - Just a s(k)ip 10:00 - swordturn 10:30 - the legendary birdskip 11:00 - whoopsie 11:45 - walls. not even once. 12:20 - no, really, how many wall skips does this movie have? 12:35 - another wall bites the dust 13:10 - Great bird avoidance 13:45 - Hey, you dropped your wallet! -really? *BAM* 14:10 -Buggy supersaiyan 14:45 - Kamehameha This is an obvious YES for me.
GMP
He/Him
Editor, Reviewer, Active player (395)
Joined: 5/22/2020
Posts: 197
Location: Chennai, India
Woah thanks a lot for this eien, I will steal for my youtube description :p
Reviewer, Expert player (2435)
Joined: 5/21/2013
Posts: 414
Do you have some instructions for how to produce a working flash.bin? It's recommended to start without one. I got lucky and used one I had lying around and the movie synced anyway, so it's not going to require a verification movie or anything. I assume you started your config outside of libTAS to make it, if you can provide some basic instructions on how to make a working one from scratch it would help a lot.
nymx
He/Him
Editor, Judge, Expert player (2234)
Joined: 11/14/2014
Posts: 932
Location: South Pole, True Land Down Under
Wow...really nice. You know, between you and eien, you'll have the series done on all platforms...right? :)
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
GMP
He/Him
Editor, Reviewer, Active player (395)
Joined: 5/22/2020
Posts: 197
Location: Chennai, India
slamo wrote:
Do you have some instructions for how to produce a working flash.bin? It's recommended to start without one. I got lucky and used one I had lying around and the movie synced anyway, so it's not going to require a verification movie or anything. I assume you started your config outside of libTAS to make it, if you can provide some basic instructions on how to make a working one from scratch it would help a lot.
Oh shoot! I totally forgot about that. Yeah I too just had it lying around. I will look into trying to reproducing it.
GMP
He/Him
Editor, Reviewer, Active player (395)
Joined: 5/22/2020
Posts: 197
Location: Chennai, India
nymx wrote:
Wow...really nice. You know, between you and eien, you'll have the series done on all platforms...right? :)
That's the idea yeah :) Both of us have more PoP in our roadmap and it also nicely compliments because while eien will focus on the retro PoP titles in more platforms, I will probably move on to the later ones from this point.
Challenger
He/Him
Skilled player (1689)
Joined: 2/23/2016
Posts: 1061
Glad to see an updated TAS with proper sound emulation now, just as we really wanted before :) Great work finding even more improvents to this game, and improving the wall clip glitch with his sword. Yes vote.
My homepage --Currently not much motived for TASing as before...-- But I'm still working.
Reviewer, Expert player (2435)
Joined: 5/21/2013
Posts: 414
Thanks for updating the description, I booted the movie with no flash.bin and "Prevent writing to disk" disabled, stopped the movie at the checksum error, then re-enabled "Prevent writing to disk" and ran the movie again. Everything synced fine.
GMP
He/Him
Editor, Reviewer, Active player (395)
Joined: 5/22/2020
Posts: 197
Location: Chennai, India
slamo wrote:
Thanks for updating the description, I booted the movie with no flash.bin and "Prevent writing to disk" disabled, stopped the movie at the checksum error, then re-enabled "Prevent writing to disk" and ran the movie again. Everything synced fine.
Nice!
Reviewer, Expert player (2435)
Joined: 5/21/2013
Posts: 414
GMP, can you please edit the description with some instructions for how you set up your config, like I have for my submissions? Me and fsvgm know how to set this up, but people in the future might not.
GMP
He/Him
Editor, Reviewer, Active player (395)
Joined: 5/22/2020
Posts: 197
Location: Chennai, India
slamo wrote:
GMP, can you please edit the description with some instructions for how you set up your config, like I have for my submissions? Me and fsvgm know how to set this up, but people in the future might not.
Sure thing! I just added this file in which I did the annotations in the exact same format as the pastebin you just linked.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15577
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. ---- [4638] DOS Prince of Persia 2: The Shadow and the Flame by GMP in 14:47.45
Fly
He/Him
Player (103)
Joined: 6/30/2015
Posts: 5
Location: Russia
As I realized, after a checksum error, you need to go into the BIOS (F1) and exit with saving the settings (F10 - Enter), otherwise the error will remain.
Accuracy above all.