Norbert wrote:
1. First of all, given how the joystick code currently works, I was wrong about the (-)30000 values.
Those need to be (-)8000 values or it's impossible to combine directions, such as left+up.

Norbert wrote:
My suggestion is to use both the D-pad and the joystick for movement left and right, and use buttons to jump and crouch.

SNES also uses buttons for up/down, maybe this is why?

Norbert wrote:
I noticed the cutscene before level 2 cannot be interrupted while it's fading in, while this is possible with the original DOS game. I didn't test other cutscenes.

Shift will interrupt it then.
I remember there were some problems with this.

EDIT:
It seems to be related to the use of do_simple_wait vs. do_wait in the fade_*_frame functions.
With do_wait(), I can interrupt the main title but not the cutscenes.
With do_simple_wait(), it's the other way around.
I will have to dig into this...

I think the D-pad on the SNES controller does not allow for movement in diagonal directions, so they didn't really have a choice there.
Which buttons did they use for crouch, jump, 'Shift'?

[Edit: Found an overview:]

A: Sneak, pick up items, hang from edges
B: Jump forward
X: Hang from edges
Y: Display time left
L: Crouch
R: Crouch
Start: Pause the game
Select: Display the menu
Up: Jump up, climb edges
Down: Crouch, climb down from edges
Left: Run to the left
Right: Run to the right

David wrote:You could either remove C:\MinGW\bin\ from your PATH, or remove/rename libmodplug-1.dll.

Oh. Actually, I did solve that myself when I found out that the SDL version needed was the i386 one instead of the x86 as it was in the compilation instructions. It also solved my compilation problems as well. Should have found it sooner.

David wrote:
It's the same format as in the DAT files, this is a PoP-specific format.

Is there a way to open that for Photoshop or something? Since it's already been extracted, I might as well check out how to do so.

David wrote:It's the same format as in the DAT files, this is a PoP-specific format.

Is there a way to open that for Photoshop or something? Since it's already been extracted, I might as well check out how to do so.

Those aren't the base palettes, so you won't be able to open them with Photoshop. SDLPoP's data/SKEL.DAT/res750.pal, for example, is the same file as the PR extracted skel/res750.pal.more, which is some kind of game-specific extension, while the actual base palette resides in skel/res750.pal for the PR extracted version and is not included with SDLPoP. This is because SDLPoP uses the indexed colors of the PNG files directly instead of relying on resources.xml to match up images with the respective palettes. Its .pal file should probably be renamed to .pal.more for consistency and to prevent confusion.

Some options were added for setting window dimensions and fullscreen mode at startup. I also added options for changing the kid's starting time and hitpoints, as well as an option to allow triggering of any tile.
It should hopefully be bit easier to add similar modifications now; my earlier implementation of ini_callback() (in options.c) wasn't very elegant.

SuavePrince wrote:i wanna use sdlpop in my mods,and all mods ..is possible create a options easy such as apoplexy?...you can create this Norbert??

The next SDLPoP release will most likely allow its users to modify SDLPoP.ini to specify custom starting minutes, starting hitpoints, and to enable triggering of any tile. Falcury worked on these options.

SuavePrince wrote:i wanna use sdlpop in my mods,and all mods ..is possible create a options easy such as apoplexy?...you can create this Norbert??

The next SDLPoP release will most likely allow its users to modify SDLPoP.ini to specify custom starting minutes, starting hitpoints, and to enable triggering of any tile. Falcury worked on these options.

Adding extra CusPop options as INI settings is fortunately not very hard, now that the basic system works (although there are a LOT of options!). Of course, it is necessary to find the correct spot in the code for each hack. (Is there a reference somewhere for what each of the hacks exactly does at the byte level?)

To see how similar options can be added to SDLPoP with relatively little work, you can for example take a look at this commit. (So far I did a few options going from the top down, on the CusPop page) The commit does the following:
- Pick a name for a new global variable in data.h (for example, "max_hitp_allowed" for maximum life points) and specify the unmodified value.
- Modify the relevant code so that it makes use of the value of this variable (for example, in seg001.c, "if (hpmax > 10) hpmax = 10;" becomes "if (hpmax > max_hitp_allowed) hpmax = max_hitp_allowed;")
- In options.c, in the function ini_callback(), specify how the option in the INI file should be read and then used to set a new value for the newly added global variable when the game starts
- Add the option to SDLPoP.ini

I wonder what should be done with array data. For example, should a guard hp setting be defined in the INI file as follows...?

Your array with curly brackets looks prettier/cleaner and saves space, but users will have to start counting to find, for example, the current guard value for level 12b. With the curly brackets solution, using tabs to align all values related to the same level in the same column would be an alternative solution, but tabs may differ per user and given the number of levels there may be line wrapping issues.