Documentation (Prince of Persia 2 Special Events)
Documentation (Prince of Persia 2 Special Events)
[Edit: the latest version can be downloaded here.]
I have finished the first version of a document that describes all the special events that take place in PoP2:
2014-06-22_PoP2_Special_Events.pdf
The source document (.odt; OpenDocument) is also available, here.
Its main page on PoPOT.org is here.
Feedback is welcome. Just post it in this thread or send an e-mail.
I have finished the first version of a document that describes all the special events that take place in PoP2:
2014-06-22_PoP2_Special_Events.pdf
The source document (.odt; OpenDocument) is also available, here.
Its main page on PoPOT.org is here.
Feedback is welcome. Just post it in this thread or send an e-mail.
Re: Documentation (Prince of Persia 2 Special Events)
I made a list of all events I could find (from the disassembly and by playing the game). I attached the list to this post.
Spoiler: show
- Attachments
-
- pop2_special_events.txt
- (19.62 KiB) Downloaded 119 times
Re: Documentation (Prince of Persia 2 Special Events)
My list. It comes from the Mac version but I suppose most of them should be good for the DOS version too.
0. When entering a level, all tunnels are automatically closed. Also true for exit doors.
1. Rooms on the ground level use a different palette.
1.1 The prince starts with a running jump but skips 9 frames before displaying one.
2. If the level in a a desert level, the prince will start laying down on the ground. Also, the prince can't go engarde in this level.
2.2 The first time the prince enters this room, the symbol and its location will be randomly selected.
5.1 Uses a different palette.
6.1 If the prince starts in this room, its horizontal location will be hardcoded to a specific value.
7 If the player has left level 6 using a door that is in one of the first six tiles of a row, he will starts this level in room 32, cell 24. Otherwise, he will starts in room 4, cell 25.
8.1 Uses a different palette.
9.1 The custom music is played if the room is entered from the left.
9.2 The prince must leave the room at a very specfic frame to trigger the cutscene.
9.3 (Room 16). A custom music is played in this room.
10.1 If the prince starts in this room, its horizontal location will be hardcoded to a specific value.
13.1 Is the only custom room (based on its custom id) that displays the right part of the rightmost cell of the bottom row from the room on the left.
14. Every room is drawn using custom graphics. The prince can't go engarde if he's in room 1 or 2. There's one palette for the tower rooms, one for the spider and chessboard rooms and another one for the last three rooms.
14.1 If the prince starts in this room, its horizontal location will be hardcoded to a specific value.
14.2 After being transfered to room 4, the prince will always look right.
14.6 Every time the prince enters this room, the facing of the false princes are randomized.
14.7 When escaping the flaming prince, Jaffar will use 4 locations where he'll run to and then wait for the prince to come close enough, run to the next location, ...
0. When entering a level, all tunnels are automatically closed. Also true for exit doors.
1. Rooms on the ground level use a different palette.
1.1 The prince starts with a running jump but skips 9 frames before displaying one.
2. If the level in a a desert level, the prince will start laying down on the ground. Also, the prince can't go engarde in this level.
2.2 The first time the prince enters this room, the symbol and its location will be randomly selected.
5.1 Uses a different palette.
6.1 If the prince starts in this room, its horizontal location will be hardcoded to a specific value.
7 If the player has left level 6 using a door that is in one of the first six tiles of a row, he will starts this level in room 32, cell 24. Otherwise, he will starts in room 4, cell 25.
8.1 Uses a different palette.
9.1 The custom music is played if the room is entered from the left.
9.2 The prince must leave the room at a very specfic frame to trigger the cutscene.
9.3 (Room 16). A custom music is played in this room.
10.1 If the prince starts in this room, its horizontal location will be hardcoded to a specific value.
13.1 Is the only custom room (based on its custom id) that displays the right part of the rightmost cell of the bottom row from the room on the left.
14. Every room is drawn using custom graphics. The prince can't go engarde if he's in room 1 or 2. There's one palette for the tower rooms, one for the spider and chessboard rooms and another one for the last three rooms.
14.1 If the prince starts in this room, its horizontal location will be hardcoded to a specific value.
14.2 After being transfered to room 4, the prince will always look right.
14.6 Every time the prince enters this room, the facing of the false princes are randomized.
14.7 When escaping the flaming prince, Jaffar will use 4 locations where he'll run to and then wait for the prince to come close enough, run to the next location, ...
Re: Documentation (Prince of Persia 2 Special Events)
David, realXCV, is it okay if I paste your literal texts into the PoP2 Special Events document?
Under the correct headings and giving you credits at the end of the document, obviously.
By the way, David, I've also added your text inside your post.
Hope you don't mind. (If you do, sorry, feel free to remove it again.)
Under the correct headings and giving you credits at the end of the document, obviously.
By the way, David, I've also added your text inside your post.
Hope you don't mind. (If you do, sorry, feel free to remove it again.)
Re: Documentation (Prince of Persia 2 Special Events)
Sure. You can also modify them for a better integration into the existing text.
Some precisions (or guesses) on a few ??? in David's list:
Lvl2, Rm1: OVL_05/L0000038B: (CUST 0x06) ??? -> Same as 2.2 in my list
Lvl5: seg011:0F7E ??? -> Not exactly an event. Just initializing the variables for the breaking of the bridge.
Lvl5, Rm3: seg003:1B60 ??? -> A (mostly) useless check for when the prince hit the bars at the top of the room.
Lvl8, Rm9: seg032:0E70 something about turning around? -> Move back a little when turning around when you're behind the gate on the right.
Lvl14, Rm1: seg006:0650 ??? cust? -> Fill background with blue.
[Edit: Dynamic guard information moved to another thread.]
Some precisions (or guesses) on a few ??? in David's list:
Lvl2, Rm1: OVL_05/L0000038B: (CUST 0x06) ??? -> Same as 2.2 in my list
Lvl5: seg011:0F7E ??? -> Not exactly an event. Just initializing the variables for the breaking of the bridge.
Lvl5, Rm3: seg003:1B60 ??? -> A (mostly) useless check for when the prince hit the bars at the top of the room.
Lvl8, Rm9: seg032:0E70 something about turning around? -> Move back a little when turning around when you're behind the gate on the right.
Lvl14, Rm1: seg006:0650 ??? cust? -> Fill background with blue.
[Edit: Dynamic guard information moved to another thread.]
Re: Documentation (Prince of Persia 2 Special Events)
Of course you can add my texts. As realXCV said, you may need to modify them though.
About the list by realXCV:
Some events are not in the DOS version, namely:
(level 2) Also, the prince can't go engarde in this level.
(level 5 room 3) Uses a different palette.
And some events are not in IR, only 1.0, namely:
(level 14) The prince can't go engarde if he's in room 1 or 2.
(level 14 room 6) Every time the prince enters this room, the facing of the false princes are randomized.
About the list by realXCV:
Some events are not in the DOS version, namely:
(level 2) Also, the prince can't go engarde in this level.
(level 5 room 3) Uses a different palette.
And some events are not in IR, only 1.0, namely:
(level 14) The prince can't go engarde if he's in room 1 or 2.
(level 14 room 6) Every time the prince enters this room, the facing of the false princes are randomized.
Re: Documentation (Prince of Persia 2 Special Events)
One more:
OVL_12/L00001209 room 22,23,28 ? -> Actually it's 22,24-28. The skeletons in these rooms will chase you when the exit door is opened.
OVL_12/L00001209 room 22,23,28 ? -> Actually it's 22,24-28. The skeletons in these rooms will chase you when the exit door is opened.
Re: Documentation (Prince of Persia 2 Special Events)
Erm, yes, I overlooked the types of the conditional jumps.realXCV wrote:OVL_12/L00001209 room 22,23,28 ? -> Actually it's 22,24-28. The skeletons in these rooms will chase you when the exit door is opened.
(More precisely, the condition is: room>=22 && room<=28 && room!=23)
I thought that the behavior of those skeletons is caused by the subtype of the guards.
Re: Documentation (Prince of Persia 2 Special Events)
Assusming I'm looking at the correct variable, when it comes to waking up skeletons, the subtype is only used to check if a skeleton can move at all.David wrote:I thought that the behavior of those skeletons is caused by the subtype of the guards.
Re: Documentation (Prince of Persia 2 Special Events)
Actually, there are two variables that can be called "subtype".
(Offsets are meant within the static_guard_type structure.)
One of them is a word at offset 0x11, and that does what you wrote.
It was described here: viewtopic.php?p=14164#p14164
It has a different effect for snakes, see here: viewtopic.php?p=14177#p14177
Perhaps this could be called "behavior"?
The other is a byte at offset 0x09.
For regular guards, it is the color.
It is 1 for most other guards, but 0 for those skeletons on level 4, rooms 26,27,28.
I thought that this causes them to behave specially, but it looks like I was wrong.
By the way, that same byte can be used to color the hair of the flying heads.
So it should be called "color" instead.
(Offsets are meant within the static_guard_type structure.)
One of them is a word at offset 0x11, and that does what you wrote.
It was described here: viewtopic.php?p=14164#p14164
It has a different effect for snakes, see here: viewtopic.php?p=14177#p14177
Perhaps this could be called "behavior"?
The other is a byte at offset 0x09.
For regular guards, it is the color.
It is 1 for most other guards, but 0 for those skeletons on level 4, rooms 26,27,28.
I thought that this causes them to behave specially, but it looks like I was wrong.
By the way, that same byte can be used to color the hair of the flying heads.
So it should be called "color" instead.
Re: Documentation (Prince of Persia 2 Special Events)
Yes, 0x11 and 0x12 are "act1" and "act2" in this XLS:David wrote:One of them is a word at offset 0x11, and that does what you wrote.
viewtopic.php?p=14937#p14937
That column is called "color" in the XLS.David wrote:The other is a byte at offset 0x09.
(As is known, the dynamic guards also have their own XLS; latest version here.)
Re: Documentation (Prince of Persia 2 Special Events)
I've added your findings to this updated version of the document:
http://www.popot.org/documentation/docu ... Events.pdf
Also updated the first post of this thread (and the on-topic page at popot.org).
http://www.popot.org/documentation/docu ... Events.pdf
Also updated the first post of this thread (and the on-topic page at popot.org).
Re: Documentation (Prince of Persia 2 Special Events)
I was looking at the later version of this document.
https://www.popot.org/documentation/doc ... Events.pdf
One event surprised me. On level 8 kid can go through the gate that separates him from his father's sword if he draws the short sword. I always thought it was a bug with the gate push and the frame width.
https://www.popot.org/documentation/doc ... Events.pdf
One event surprised me. On level 8 kid can go through the gate that separates him from his father's sword if he draws the short sword. I always thought it was a bug with the gate push and the frame width.
Code: Select all
seg033:0D7E [VERIFIED] if kid draws sword at the gate, he can go through gate to
the left