Documentation (Prince of Persia 1 Special Events)

User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5746
Joined: April 9th, 2009, 10:58 pm

Re: Documentation (Prince of Persia 1 Special Events)

Post by Norbert »

David wrote: August 18th, 2018, 11:37 amIt's a demo version.
Oh, yeah.
I see its icon text even says "demo v1.0".
realXCV
Beylerbey
Beylerbey
Posts: 72
Joined: November 4th, 2011, 12:04 am
Location: Right here
Contact:

Re: Documentation (Prince of Persia 1 Special Events)

Post by realXCV »

David wrote: August 18th, 2018, 11:37 am That is odd.
One thing I can think of is that if there is no room on the right side of the mouse room then the mouse is erased in the Mac version, since the mouse would start in that nonexistent room.
I haven't tried this, though.
That makes sense. While the mouse is created on the same room as the prince, it is put far enough on the right side that it could be sent to the next room.
David wrote: August 18th, 2018, 11:37 am It's a demo version. Probably all functions work in the full version, but I don't know if it's available anywhere...
I might have it somewhere...
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5746
Joined: April 9th, 2009, 10:58 pm

Re: Documentation (Prince of Persia 1 Special Events)

Post by Norbert »

I haven't checked to verify, but this should be the full version.
Its author mailed it to me.
Attachments
TPC_10_full_sit.zip
(6.83 KiB) Downloaded 111 times
realXCV
Beylerbey
Beylerbey
Posts: 72
Joined: November 4th, 2011, 12:04 am
Location: Right here
Contact:

Re: Documentation (Prince of Persia 1 Special Events)

Post by realXCV »

The archive is password protected.

I found my old copy for which I can confirm it is the full version.
Attachments
PERSIA~1.zip
(6.61 KiB) Downloaded 105 times
David
The Prince of Persia
The Prince of Persia
Posts: 2850
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: Documentation (Prince of Persia 1 Special Events)

Post by David »

Norbert wrote: August 19th, 2018, 8:46 pm I haven't checked to verify, but this should be the full version.
Its author mailed it to me.
realXCV wrote: August 19th, 2018, 10:10 pm The archive is password protected.

I found my old copy for which I can confirm it is the full version.
I can't extract either of those SIT files.

This is what I get from StuffIt Expander on Mac OS:
TPC_10_full_sit Mac OS.png
Norbert's file is password protected.
PERSIA~1 Mac OS.png
realXCV's file can't be extracted with this Expander. Basically they want me to buy the Deluxe version. :moneybag:
Of course the link is dead. <http://www.aladdinsys.com/dropstuff/index.html>

This is what I get from Expander.exe that came as part of Universal Extractor v1.6.1:
TPC_10_full_sit Windows.png
TPC_10_full_sit Windows.png (7.45 KiB) Viewed 3653 times
Norbert's file is still password protected.
PERSIA~1 Windows.png
PERSIA~1 Windows.png (8.07 KiB) Viewed 3653 times
I guess this Expander can't handle the Deluxe compression method, either.

I might try something from here: http://macintoshgarden.org/search/node/stuffit%20deluxe
David
The Prince of Persia
The Prince of Persia
Posts: 2850
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: Documentation (Prince of Persia 1 Special Events)

Post by David »

Norbert wrote: August 11th, 2018, 8:01 pm The Macintosh version appears to have one or more additional checks when it comes to whether the mouse appears in level 8. I haven't done any extensive testing yet (I may when the editor is ready), but just the level exit door being open and then staying in the mouse-room for a long time isn't enough.
I have tested this now. I moved the starting place to the room where the mouse appears, and I also removed the chompers next to the button that opens the exit.
It seems that the mouse will appear only if the player has seen a guard before.
I don't know why does this happen. It might be a bug. Maybe entering a room with a guard sets something that is required for the mouse.

I tried one more thing.
The X coordinate of the mouse is set here:

Code: Select all

 ; do_mouse()
03:1a46: 4e ba 2a 34              JSR    (D_2A34,PC) ; = 03:447C ; load kid
03:1a4a: 1b 7c 00 18 b9 51        MOVE.B #0x0018,(D_B951,A5) ; Char.chtype
03:1a50: 1b 7c 00 c8 b9 47        MOVE.B #0x00C8,(D_B947,A5) ; Char.x
I changed 0xC8 to 0xB0, to move the starting position of the mouse to onscreen, to see if the mouse even appears at all.
After this, the mouse did appear when it should, just right from the button that it should press, but it didn't move.

Update:
I think I also found why doesn't the mouse move.

Code: Select all

 ; play_guard_frame()
03:0486: 0c 2d 00 56 b9 7f        CMP.B  #0x0056,(D_B97F,A5) ; Guard.direction
03:048c: 67 66                    BEQ    B_04F4
03:048e: 4e ba 40 88              JSR    (D_4088,PC) ; = 03:4518 ; load shad with opp
03:0492: 4e ba 3c 34              JSR    (D_3C34,PC) ; = 03:40C8
03:0496: 4e ba 53 64              JSR    (D_5364,PC) ; = 03:57FC ; check shadow died (unholy)
03:049a: 4e ba 48 9a              JSR    (D_489A,PC) ; = 03:4D36 ; play_guard()
03:049e: 10 2d b9 4f              MOVE.B (D_B94F,A5),D0 ; Char.room
03:04a2: 48 80                    EXT.W  D0
03:04a4: b0 6d ba 6a              CMP.W  (D_BA6A,A5),D0 ; shown room
03:04a8: 66 46                    BNE    B_04F0
03:04aa: 4a 6d ba 2c              TST.W  (D_BA2C,A5) ; <-- THIS
03:04ae: 67 40                    BEQ    B_04F0      ; <-- THIS
03:04b0: 4e ba 3d 94              JSR    (D_3D94,PC) ; = 03:4246 ; play char sequence
Here is a new condition that is not in the DOS version (or SDLPoP), just before calling play_seq().
play_seq() animates the current guard or the mouse, but if this new condition is false then play_seq() is skipped and the mouse won't move.

If I disable this new condition, by changing this 67 40 to 4E 71 (NOP), then the mouse *does* move, even if I haven't met a guard yet.

This new variable in the check (D_BA2C,A5) is set to 0 on level start.
It's set to 1 when you meet a guard, including those from special events: the skeleton and the shadow, but not the mouse.
However, it seems that it's not set back to 0 when you exit the room with the guard.
I'm not sure what is the purpose of this new variable, since there already is a variable that tells whether there is a guard in the current room: Guard.direction. And that is checked right at the beginning of play_guard_frame().
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5746
Joined: April 9th, 2009, 10:58 pm

Re: Documentation (Prince of Persia 1 Special Events)

Post by Norbert »

David wrote: September 8th, 2018, 5:29 pmHere is a new condition that is not in the DOS version (or SDLPoP), just before calling play_seq().
Good to read I wasn't imagining things. ;)
David
The Prince of Persia
The Prince of Persia
Posts: 2850
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: Documentation (Prince of Persia 1 Special Events)

Post by David »

I think this bug should be added to the document: viewtopic.php?p=16082#p16082
If a loose floor falls from the bottom right tile of the room above the current room then this activates the checkpoint.

While you can do that in the first few rooms of the original level 11, that level has no checkpoint, so this bug does not appear there.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5746
Joined: April 9th, 2009, 10:58 pm

Re: Documentation (Prince of Persia 1 Special Events)

Post by Norbert »

David wrote: December 19th, 2018, 1:10 pmI think this bug should be added to the document: viewtopic.php?p=16082#p16082
I agree, and thanks.
I'll update the document this weekend, with everything mentioned since August 2015.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5746
Joined: April 9th, 2009, 10:58 pm

Re: Documentation (Prince of Persia 1 Special Events)

Post by Norbert »

Norbert wrote: December 19th, 2018, 8:07 pm
David wrote: December 19th, 2018, 1:10 pmI think this bug should be added to the document: viewtopic.php?p=16082#p16082
I agree, and thanks.
I'll update the document this weekend, with everything mentioned since August 2015.
Done; PDF.
David
The Prince of Persia
The Prince of Persia
Posts: 2850
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: Documentation (Prince of Persia 1 Special Events)

Post by David »

Norbert wrote: December 23rd, 2018, 3:00 pm Done; PDF.
Thank you!

However, I found some problems in the PDF:

* There is a blank page between level 4 and level 5 (page 11).

* The text of some footnotes does not appear at the bottom of the page, although the separator line is there.
Examples are footnote 8 on page 23 and footnote 10 on page 26 of the PDF.

The ODT version of the document (from here) does not show these problems in LibreOffice.

(While at it, LibreOffice (on Linux) thinks that the "Century Schoolbook L" font is not present on the system, and thus it's substituted with some sans-serif font.
However, GNOME Charmap shows this font is actually present. Inkscape can also use it. What's going on?)


You wrote this about the level 14 bug:
"An easy workaround for players is to press - or +, which displays the minutes left."
The problem is that these keys work only in cheat mode.
Some keys that stop the countdown and work without cheats are: Esc, Ctrl+V, Ctrl+J, Ctrl+K, Ctrl+S.
I guess Esc is the simplest choice.
(You mentioned Ctrl+J here: viewtopic.php?p=16926#p16926 )
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5746
Joined: April 9th, 2009, 10:58 pm

Re: Documentation (Prince of Persia 1 Special Events)

Post by Norbert »

David wrote: December 24th, 2018, 1:31 pm* The text of some footnotes does not appear at the bottom of the page, although the separator line is there.
That's weird; nice catch.

As for "Century Schoolbook L": LibreOffice dropped Type 1 font support, so you need to manually dump these in ~/.fonts/ (and maybe run "fc-cache -fv" ?). Thanks Linux.

In some future version I'm sure these things will all be fixed.
David
The Prince of Persia
The Prince of Persia
Posts: 2850
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: Documentation (Prince of Persia 1 Special Events)

Post by David »

Norbert wrote: December 24th, 2018, 9:36 pm As for "Century Schoolbook L": LibreOffice dropped Type 1 font support,
The comments section has the usual arguing between "please bring it back because I need it" and "if you want this to work then fix it yourself because nobody else will work for you for free"...
Sigh...
Norbert wrote: December 24th, 2018, 9:36 pm Thanks Linux.
Or rather "Thanks LibreOffice", since Type 1 fonts still work in other Linux programs. (The article mentions GIMP, Krita, Inkscape, and OpenOffice.)

Norbert wrote: December 24th, 2018, 9:36 pm so you need to manually dump these in ~/.fonts/ (and maybe run "fc-cache -fv" ?).
Thanks, that fixed it.
I simply git cloned the whole repo to that folder. (But I first created the .fonts folder because it didn't exist.)
By the way, there is another forder for user fonts which I used before: ~/.local/share/fonts/
Is there any difference?

Now, if I save the document as PDF then it doesn't have the blank page, and the footnotes appear correctly.
So I'm wondering what did you do differently.


By the way, I'm trying to figure out how this font is licensed.
This font is in the "gsfonts" package, and "apt show gsfonts" says "These are free look-alike fonts of the Adobe PostScript fonts."
"/usr/share/doc/gsfonts/copyright" says they are GPL'ed, but also "All Rights Reserved".
Meanwhile, URW is selling the font: https://www.urwtype.com/en/shop/?fontsh ... ;fontbel:;
But Wikipedia says: "A very limited set of styles digitised by URW++ has been released as open-source software as part of the Ghostscript project in type 1 format."
So, is this font free or not?
Or maybe it's free if you get it from GhostScript but not if you buy it from URW?
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5746
Joined: April 9th, 2009, 10:58 pm

Re: Documentation (Prince of Persia 1 Special Events)

Post by Norbert »

David wrote: December 26th, 2018, 2:25 pmOr rather "Thanks LibreOffice", [...]
I get what you mean, but this problem is widespread on the Linux OS. Linux software developers generally don't get paid, so too often they pick showing off new features (nobody asked for) over fixing bugs. They will either blame other packages or tell you to "fix it yourself". Usability is still an underdog because of the 'not my/our problem' stance. (Recently, a customer and I were shaking our heads at how GIMP still can't save regular formats, such as PNG, via Save (As). I've actually never checked Photoshop to see if it's behaving better...) Anyway, I'll stop about Linux now, because I could write an entire document flaming it to the ground (better than this). :|
David wrote: December 26th, 2018, 2:25 pmNow, if I save the document as PDF then it doesn't have the blank page, and the footnotes appear correctly.
Maybe I could simply use your PDF?
(Or, you could polish it where necessary, and I'll make your .odt/.pdf a new, latest version.)
David wrote: December 26th, 2018, 2:25 pmBy the way, I'm trying to figure out how this font is licensed.
So did I, in 2009; this is one of my related bug reports. Maybe dual-licensed. The license that matters for us (GPL) makes it Free and has the font exception. Personally, I really like it and use it for most - if not all - documents.
David
The Prince of Persia
The Prince of Persia
Posts: 2850
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: Documentation (Prince of Persia 1 Special Events)

Post by David »

Norbert wrote: December 26th, 2018, 8:15 pm Maybe I could simply use your PDF?
(Or, you could polish it where necessary, and I'll make your .odt/.pdf a new, latest version.)
Attached is a slightly updated version in ODT and PDF.
Changes: I changed the workaround for level 14 as I wrote earlier, and I updated the date on the first page.
Attachments
2018-12-27_PoP1_Special_Events.zip
(512.43 KiB) Downloaded 75 times
Post Reply