SDLPoP; David's open-source port of PoP

Open-source port of PoP that runs natively on Windows, Linux, etc.
David
The Prince of Persia
The Prince of Persia
Posts: 2877
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by David »

So, did I choose wrongly?
Can there be problems?
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5786
Joined: April 9th, 2009, 10:58 pm

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by Norbert »

No, it's fine. :)
Falcury
Calif
Calif
Posts: 568
Joined: June 25th, 2009, 10:01 pm

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by Falcury »

David wrote:1. There is add_wipetable(), but it requires x-coordinates to be multiples of 8. (Leftover from DOS, and there it's a leftover from Apple II.)
This restriction could be lifted. It's used only in draw_tile_wipe() and wall_pattern() (for palace walls).
OK, as you suggested, I changed add_wipetable() so it now works with non-multiples of 8 as well (pull request).

Here is a new "release candidate" binary version:
SDLPoP_v1.15RC2.zip
(4.81 MiB) Downloaded 181 times
Regarding the potion and some scripted gameplay customization stuff I have been working on, here is an experimental build.
SDLPoP_mod_SoC.zip
(4.83 MiB) Downloaded 179 times
David
The Prince of Persia
The Prince of Persia
Posts: 2877
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by David »

I could finally pass that green guard on level 1. I hope I will soon be able to finish the level...
This level has many places where the kid must lose HP.
What does SoC stand for, by the way?

I see you added a branch for the mod, among others: https://github.com/Falcury/SDLPoP/branches

I see you also found the bug with the exit door on level 4, and fixed it in the "mod" branch.
You should add this commit to the main branch and/or a pull request.

I used to play SDLPoP through from the beginning to the end, once in a while, just to see if there are any bugs.
I stopped that, and a bug sneaked in. :)
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5786
Joined: April 9th, 2009, 10:58 pm

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by Norbert »

For SoC, the Linux "Makefile" file needs roomscript.o on the OBJ line. On line 79 of roomscript.c the par variable is unused. For the LEVELS.DAT file to be detected under Linux, it needs to be renamed from LEVELS.dat to LEVELS.DAT. I don't know what SoC means, but I did find out that "soc" in the filename mentioned here stood for Shadow of the Castle ("Shadow of the Castle using FreePrince Engine"). State of Concept/Code, maybe? Which level editor did you use to edit LEVELS.DAT? I looked at level 1 with apoplexy and it shows unknown tiles in the starting room, you didn't use 0/0 for several empty spots. You used the level entry door as the level exit door, which won't allow the prince to enter, unless you specifically fixed/changed that. What I don't understand about the first level is that you don't seem to use the special potion you came up with (and also mentioned above: "Regarding the potion and [...]"). Am I missing something? David, you're almost done with the level, just go up, right, raise the level exit door, bit left, down.
Falcury
Calif
Calif
Posts: 568
Joined: June 25th, 2009, 10:01 pm

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by Falcury »

David wrote:I could finally pass that green guard on level 1. I hope I will soon be able to finish the level...
This level has many places where the kid must lose HP.
What does SoC stand for, by the way?
"Secrets of the Citadel" - it's an old level set that I never managed to finish entirely. It consists of only 8 levels for now, but completing level 8 now takes you straight to level 14 so at the mod is "fully playable" at last, thanks to SDLPoP :D Who knows, I might still get some inspiration for levels 9-12 sometime.
Also, quicksave is the one killer feature that finally tips the balance from "frustrating" to "challenging but fun" for these levels, at least for me personally.
David wrote:I see you also found the bug with the exit door on level 4, and fixed it in the "mod" branch.
You should add this commit to the main branch and/or a pull request.
I used to play SDLPoP through from the beginning to the end, once in a while, just to see if there are any bugs.
I stopped that, and a bug sneaked in. :)
Thanks, I forgot that I hadn't fixed that in the main branch! I had not looked very far into it, but as described in the post you linked to it seems to be a very interesting bug. Here is the pull request.
Norbert wrote:For SoC, the Linux "Makefile" file needs roomscript.o on the OBJ line. On line 79 of roomscript.c the par variable is unused. For the LEVELS.DAT file to be detected under Linux, it needs to be renamed from LEVELS.dat to LEVELS.DAT.
Thanks, I will fix this!
Norbert wrote:Which level editor did you use to edit LEVELS.DAT? I looked at level 1 with apoplexy and it shows unknown tiles in the starting room, you didn't use 0/0 for several empty spots. You used the level entry door as the level exit door, which won't allow the prince to enter, unless you specifically fixed/changed that.
I used Roomshaker version 1.79 - it's quite useful in this case because it displays the custom modifier value on top of the symbols representing the tiles. You are right, I used the entry door as the exit door (this is in fact the reason I spent so much time on fixing the level doors... the option can be activated using tile modifier 79, see roomscript.c).
Norbert wrote:What I don't understand about the first level is that you don't seem to use the special potion you came up with
Well, the shadow potion only appears in level 6 (I have limited it to an "easter egg"-like feature for now). However, I have also placed a number of "extra time" potions. These trade max health for extra time and are therefore very attractive to get a good ranking in the Hall of Fame. However, they are also dangerous because you lose health. This in turn makes the life upgrades (otherwise so boring when you've got a couple already) somewhat more of a necessity to get.
Last edited by Falcury on July 6th, 2015, 11:57 pm, edited 1 time in total.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5786
Joined: April 9th, 2009, 10:58 pm

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by Norbert »

Falcury wrote:"Secrets of the Citadel"
Ah, yeah, that one. :) It did look super familiar, I was already looking through mods to find it. By the way, your video walkthrough of level 1, in the beginning of the level, I don't think there's any need to go all the way around... is there?
Falcury
Calif
Calif
Posts: 568
Joined: June 25th, 2009, 10:01 pm

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by Falcury »

Yeah, you can skip a couple of rooms! I think I will refrain from uploading more walkthrough videos though, it is possible that they spoil too much... these things are probably fun to people if they discover it on their own :)
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5786
Joined: April 9th, 2009, 10:58 pm

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by Norbert »

David, if you finalize the ZIP for 1.15, can you take another short look at ChangeLog.txt. It currently includes:

-----
2015 June 24
============
(version 1.15 changelist)

[...]

2015 June 27
============
Added GPLv3 license.
-----

Maybe that should be changed to:

-----
2015 July <whenever you finalize the ZIP>
============
(version 1.15)

[...]
-----

Where [...] includes:

Added GPLv3 license.
or
Added GPLv3 license (2015 June 27).

Or whatever. My point is that it would be nice if the day you release the ZIP is actually mentioned in the changelog (as being the release date for 1.15). Now it has (just) a version 1.15 changelist for June 24th.

[Edit: Maybe there's no need for both the main.cpp and main.c files. They are basically identical.]
David
The Prince of Persia
The Prince of Persia
Posts: 2877
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by David »

I merged the pull requests, except those marked Work In Progress.
I'm not sure what should I do with those. Maybe make a branch for them in my repository, or just merge them into the main?
Norbert wrote: [Edit: Maybe there's no need for both the main.cpp and main.c files. They are basically identical.]
main.cpp was added by Falcury here.
The changelist includes "enabled the code to be compiled using a C++ compiler", maybe that's why it's there?
Falcury
Calif
Calif
Posts: 568
Joined: June 25th, 2009, 10:01 pm

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by Falcury »

I figured if we ever wanted to interface with C++ code it would be good to have an entry point for the compiler. I tried it and it worked back then, although I'm not sure if it's strictly necessary to do it this way. We may as well remove main.cpp it for now; it serves no purpose right now and we can always put it back later.

Thanks for the merges, now I can go clean up some of my branches :)
I marked the remaining two as [WIP] because this approached was suggested in a "guideline" for pull requests that I found:
Be explicit about when you want feedback, if the Pull Request is work in progress, say so. A prefix of “[WIP]” in the title is a simple, common pattern to indicate that state.
Probably best to deal with them after 1.15 is finalized, I think?
If you want to test them in a separate branch, that should probably be doable (perhaps these instructions are of help).
David
The Prince of Persia
The Prince of Persia
Posts: 2877
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by David »

Falcury wrote:We may as well remove main.cpp it for now;
CMakeLists.txt has to be changed, then.
Falcury
Calif
Calif
Posts: 568
Joined: June 25th, 2009, 10:01 pm

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by Falcury »

Here is a pull request with the suggested changes. I also added the music files to the repository.
Anything else that needs changing for version 1.15?
Attachments
SDLPoP_v1.15RC3.zip
(4.81 MiB) Downloaded 210 times
David
The Prince of Persia
The Prince of Persia
Posts: 2877
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by David »

Falcury wrote:Anything else that needs changing for version 1.15?
I don't think so. (Maybe the readme part about the music.)
So is it time to release 1.15 officially?

Maybe I play it through to see if there are no showstopper bugs like that one with the exit door on level 4. :)
Falcury
Calif
Calif
Posts: 568
Joined: June 25th, 2009, 10:01 pm

Re: SDLPoP; David's open-source port of PoP (pre-release)

Post by Falcury »

That's probably a good idea :)
And a maintenance 1.15.1 release is always a possibility, if something crops up later.

Could you create a tag on GitHub as well, once you are happy with the release?

Something else entirely: I have started an attempt to deobfuscate the seqtable, with the help of the Apple II source code. Here is my progress so far. Obviously still a lot to be done...
Attachments
seg006.c
(65.59 KiB) Downloaded 187 times
Post Reply