Norbert wrote:Hi Doktor Headshot, welcome.
doppelganger wrote:Welcome, Doctor!
Nice to meet you all, guys!
Norbert wrote: I can give you information about this. You can edit these values only per guard type - also called skill, and there are 12 guard types total. Their decimal values can be found in the PDF document you're referring to, and also at the beginning of SDLPoP's seg002.c file. These values are stored inside the PRINCE.EXE file, as word units (= two bytes). This means that, if you convert, for example, all "strikeprob"/"Striking Prob." values to hexadecimal words, you get a series of bytes that you can search for inside PRINCE.EXE. For this example, that series of bytes is "3D 00 64 00 3D 00 3D 00 3D 00 28 00 64 00 DC 00 00 00 30 00 20 00 30 00". In (at least) the unpacked 1.0 version of PoP1, these bytes start at offset 0x1D3C2. With this knowledge you can hex edit PRINCE.EXE (
instructions here) and change the properties of the 12 different guards.
Thank you, you explained like a charm and I exactly got what I asked for. Let me return a pdf containing a table chart with all guard skills expressed both in decimal value and in hexadecimal words ready to be searched and edited in "PRINCE.EXE" (basically is a simplified version of your document with pre-made series of bytes ready to be copy/pasted in the hex-editor for customization). Hopefully it can be of some use for modders.
David wrote:Maybe, but currently it starts only when the prince crouches for the first time.
David wrote:Unless we change play_next_sound() to start the background music everytime a sound effect ends.
Hello David, thanks for your reply. I experimented a bit before I got your reply by " PR'ing " a custom type-0 midi file in place of "presentation.mid" and here what I got: midi exactly started playing after the Prince landed and Prince was forced to stay crouched until midi ended (then, Prince stood up and I moved him again). The same happened when I applied your trick with many different IDs after I " PR'ed " original "presentation.mid" back. General game behaviour was: force-crouched Prince, ID-specified tune played before "presentation.mid", "presentation.mid" played, Prince stood up. However, game behaved in a slight different way with slowfall music (ID 27): force-crouched Prince, no playing of "presentation.mid", double loop of slowfall music and Prince stood up on third loop. All sound were disabled as you predicted but I was able to finish Level 1. On Level 2 start, door closing sound looped endlessly. On a side note: when Prince died by spikes, there was no "Press a Button to Continue" nor chance to reboot level in that way (I had to use CTRL + A).
All in all, bgm implementation doesn't seem that "painless" as I thought at first: there are some compromises the player should take in account like force-crouched prince, music loop wait and disabled sfx. On the other hand, slowfall music might be the way to bring bgm in Prince 1 by allowing it to be played right after big level door closing sound on any level start. That's would be a bait for hard-cored developers which are willing to explore bgm implementation.