Unknowns in the level format

About PR usage and development, and about the POP format.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Unknowns in the level format

Post by Norbert »

David wrote: January 8th, 2013, 12:53 pmBytes 1..24 store the X coordinates and bytes 25..48 store the Y coordinates.
Of the prince? For testing purposes?
David wrote: January 8th, 2013, 12:53 pm

Code: Select all

// guard color and unknown IV (d) are missing
Now that SDLPoP exists, is it clear(er) what IVd is?
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Unknowns in the level format

Post by Norbert »

Spoiler: show
Also, section 3.4.1 of Specifications of File Formats says:
As unknown II were all zeros for each level in the original set, it was a team decision to use those bytes for format extension. If one of them is not the default 00 00 00 hex then the level was extended by the team. Those extensions are only supported by RoomShaker at this moment. To see how those extensions were defined read the appendix I will write some day. For the moment you may contact us if you need to know that.
Anyone (David?) know what is that RoomShaker extension?

[Edit: Oh, never mind. Found the answer here.]
Norbert wrote: November 10th, 2020, 5:45 pmNow that SDLPoP exists, is it clear(er) what IVd is?
And, why are the kid's start directions stored for levels 1 and 13 essentially incorrect?
David
The Prince of Persia
The Prince of Persia
Posts: 2846
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: Unknowns in the level format

Post by David »

Norbert wrote: November 10th, 2020, 5:45 pm
David wrote: January 8th, 2013, 12:53 pmBytes 1..24 store the X coordinates and bytes 25..48 store the Y coordinates.
Of the prince? For testing purposes?
Of the rooms.
They were used by Mechner's level editor.
The rooms' coordinates were saved in the level data so that the editor could draw the level map more easily, without needing to figure out the layout from the room links.
The room links were generated from these when the level was saved.

Norbert wrote: November 14th, 2020, 2:10 pm And, why are the kid's start directions stored for levels 1 and 13 essentially incorrect?
The prince starts in the opposite direction of what is stored, then, on most levels, he turns around to face the stored direction.
On level 1 and 13 the prince doesn't turn around but does something else (fall, run), so he won't turn around to the stored direction.
See here: https://github.com/NagyD/SDLPoP/blob/ma ... 003.c#L156
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Unknowns in the level format

Post by Norbert »

Ah, I see.
And any thoughts on what IVd is? :)
David
The Prince of Persia
The Prince of Persia
Posts: 2846
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: Unknowns in the level format

Post by David »

Norbert wrote: November 14th, 2020, 9:16 pm Ah, I see.
And any thoughts on what IVd is? :)
I don't think it's used at all.
It's just there to pad the level data to 0x901 bytes (9 sectors on the Apple II + 1 extra byte added in the DOS version).

In SDLPoP it's called fill_3, and it's zeroed out right after the level is loaded, but not used otherwise.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Unknowns in the level format

Post by Norbert »

Norbert wrote: January 2nd, 2019, 4:57 pm
Norbert wrote: September 15th, 2018, 10:50 amWhat do you think?
Bumpity-bump.
I have put together a simple document "PoP1 Legacy Multiplayer Standard".
I've attached the initial version (0.1) to this post.
Attachments
multiplayer.txt
(3.34 KiB) Downloaded 111 times
Brendos
Scholar Scribe
Scholar Scribe
Posts: 3
Joined: August 5th, 2016, 12:57 am

Re: Unknowns in the level format

Post by Brendos »

Hi, I like the idea of multiplayer in pop tho I'd never have guessed ;) What ports support it is it just SDLPop?

I'll look into adding it into RoomShaker as a dialog to set the bytes.

your text article was very easy to interpret and it shouldn't be too much work to implement tho I do have to re familiarize myself with the code as I've not worked on it for a while LOL.

cheers,


Brendon
User avatar
oitofelix
Wise Scribe
Wise Scribe
Posts: 227
Joined: February 17th, 2016, 1:59 pm
Location: Brazil
Contact:

Re: Unknowns in the level format

Post by oitofelix »

Norbert wrote: I have put together a simple document "PoP1 Legacy Multiplayer Standard".
I've attached the initial version (0.1) to this post.
Nice to see efforts in this direction! On a first look your specification seems fine. FWIW, whatever format we agree upon for legacy level data, MININIM will support it.
Norbert in e-mail wrote: An improved implementation could later allow the (single) player to switch between princes. With
networked multiplayer as the pie in the sky, of course. ;)
I realize MININIM already has that feature in the form of the "fellow shadow". So I guess it could already make use of your proposed specification to allow for single-player-multiple-kids levels. (For multiplayer certainly more effort is needed.)
Bruno Félix Rezende Ribeiro (oitofelix)
MININIM author
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: Unknowns in the level format

Post by Norbert »

Brendos wrote: November 22nd, 2020, 2:55 amWhat ports support it [...]
None yet.
Brendos wrote: November 22nd, 2020, 2:55 amI'll look into adding it into RoomShaker as a dialog to set the bytes.
Thanks.
oitofelix wrote: November 22nd, 2020, 5:41 pmFWIW, whatever format we agree upon for legacy level data, MININIM will support it.
Thanks.

For your information, I've released apoplexy 3.11, that includes a kid screen to add multiple players for testing purposes.
User avatar
Akruzen
Developer
Developer
Posts: 141
Joined: April 30th, 2016, 10:16 am

Re: Unknowns in the level format

Post by Akruzen »

Tried to create a local multiplayer PoP:
Guard's Movements: W, A, S, D, Q (for striking)
Prince's Movements: Up, Down, Left, Right, Shift
So now two players on same PC can compete against each other.



It's still experimental with a few known bugs, but the basic combat is possible.
What if life is a video game and Déjà Vu are just checkpoints?
Post Reply