post suggestions here

Windows and Linux editor of PoP1 (for DOS and SNES) and PoP2 (for DOS).
Post Reply
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

post suggestions here

Post by Norbert »

Please use this thread to post suggestions for future versions of apoplexy.
Already on my TODO list is allowing the user to specify broken room links (like in Repetition of Time, level 3).
xx20
Efendi
Efendi
Posts: 5
Joined: May 26th, 2011, 5:05 pm

Re: post suggestions here

Post by xx20 »

Make the level test working :D

It rly anoyin need to lauchn it always with dosbox.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

Assuming you're using the Windows version, edit the dosbox.bat file and change "E:\dosbox\dosbox.exe" to where your dosbox.exe is.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

Norbert wrote:Already on my TODO list is allowing the user to specify broken room links (like in Repetition of Time, level 3).
Done.
New suggestions are welcome.
polipo
Vizier
Vizier
Posts: 89
Joined: September 6th, 2012, 8:34 am

Apoplex and PoP.net format

Post by polipo »

Dear,
what do you think about make a new PoP save file format in apoplex, like XML ?

In PoP.net i think to develop a file format in XML like this:

Code: Select all

<level>
<room>
<row>  (x3)
<column>  (x10)
<tileType=floor>
<spriteType=guard>
<spriteObject=null>
</column>
</row>
</room>
</level>
It's simple.. what do you think about it ?
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

Maybe a LEVELS.DAT to LEVELS.XML converter program would be a more universal solution.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

Now that Prince of Wateria has been released, I'm going to work on the next apoplexy version.
Below is a list of stuff I may work on; some of the things are obviously more important and interesting than others.
My intention is to release the next version near the end of 2013.
  • If the command line option --noaudio (or -n) is being used, also disable audio in the game.
  • If Shift (and/or Ctrl) is down, the mouse (scroll) wheel should select rooms horizontally; to the left and right.
  • Add support for Prince of Persia 2 levels.
  • Add a command line option that doubles and/or triples the size of the interface; of all images.
  • Rewrite the --improved (and -i) command line option so it accepts cheat codes other than "improved" (and "megahit").
  • Make it possible to quickly mirror rooms horizontally and vertically.
  • Make sure the gates set to "0" show up if the --debug (or -d) command line option is being used.
  • Make it possible to quickly copy/paste rooms.
  • Undo should be possible an unlimited number of times.
  • Make it possible to switch between palace and dungeon environments.
  • Allow users to specify the "LEVELS.DAT" filename with a command line option.
  • Add the capability to export levels to images and/or text files. Maybe also to an XML format that other programs can use.
  • Add bloody chompers and stuck level doors. See the Additions_to_Room_Mapping.pdf document.
  • Mention in the documentation that (in GNU/Linux) apoplexy needs libsdl-ttf2.0-0 and libsdl-image1.2.
  • Add a help page that links to YouTube videos for newbies (both about apoplexy and modding in general), links to the apoplexy board of the Princed forum, and links to the "New levels and mods" board.
  • Verify that apoplexy allows the placement of all available wall patterns.
  • On the tiles pages, add a marker to all tiles that will show up distorted, and make sure those aren't being used when randomizing levels.
  • Add a command line option that allows users to start the application in specified levels.
  • Look into why stuck loose tiles (and possibly other tiles) don't always look the way they should if they're to the left of the current room.
  • Add two guard types. See the PoP1 Guard Types document.
  • Rename "guard level" to "guard type".
  • Add a screen that gives a graphical overview of the entire level.
  • When the keyboard is being used, it's easier to re-use the last used tile than with the mouse - even though that's easy too. Improve this.
  • Make it possible to automatically add random background images (shadows, windows; maybe also broken tiles on the floor and torches and such).
  • When clearing a room or level, also remove guards.
  • Add a sound effect when guards are being clicked on the tiles screen.
  • If there is no room to the left of the current room, show a wall on the far left.
  • If there is a room under the current room, display part of it.
  • On the broken room links screen, right clicking (and pressing a key, like Backspace) should decrease the values in the adjacent rooms.
  • What is the guard information in the princess level about? (I'm not sure why I wrote this down, maybe someone mentioned something related to this on the Princed forum.)
  • If unknown tiles are being used, do not just display a question mark but also display the foreground and modifier numbers. Could be useful for future usage.
  • Copy the .DAT file to a .BAK file before saving (in case the PC crashes while saving or whatever).
  • Warn the user if an event is set to a location without a gate or door.
Last edited by Norbert on June 12th, 2013, 10:27 pm, edited 2 times in total.
tacosalad
Sheikh
Sheikh
Posts: 48
Joined: October 3rd, 2005, 6:03 am
Location: Oregon, USA
Contact:

Re: post suggestions here

Post by tacosalad »

Norbert wrote:
  • When clearing a room or level, also remove guards.
This would solve an existing issue with the "Rescue Level" (14) that it's currently impossible to remove a guard if a particular room already contains one. Since Apoplexy doesn't let you edit guards on level 14 (because there shouldn't be any) it currently doesn't let you remove one if the LEVELS.DAT contains one that was placed there in error. (I think the default LEVELS.DAT has a few rooms with guards.)
Norbert wrote:
  • Add bloody chompers and stuck level doors. See the Additions_to_Room_Mapping.pdf document.
    .
  • Verify that apoplexy allows the placement of all available wall patterns.
    .
  • If unknown tiles are being used, do not just display a question mark but also display the foreground and modifier numbers. Could be useful for future usage.
Please consider adding a 'tile properties' view that permits the user to see/edit the foreground and modifier bytes for any tile. That's an extremely advanced operation, but it gives access to any unforeseen tiles without forcing the user to binary-edit his levels file. Consider the (rather terrible) possibilities of the invisible tile illustrated in this test video:
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

tacosalad wrote:see/edit the foreground and modifier bytes for any tile
I'll probably make it possible to add/edit custom tiles, as a replacement of the current 'unknown tile'.
tacosalad wrote:invisible tile
This is actually one tile I missed when I worked on the Additions to "Room Mapping" (3.4.2) document...
...because it's invisible.
What foreground and modifier numbers did you use to create your sample video?
polipo
Vizier
Vizier
Posts: 89
Joined: September 6th, 2012, 8:34 am

Re: post suggestions here

Post by polipo »

I will wait for the next apoplexy version.... BUT you have missed the file level conversion for Prince Of Persia.net :lol:
PS
What do you think about Pop.net ?

Thanks a lot
tacosalad
Sheikh
Sheikh
Posts: 48
Joined: October 3rd, 2005, 6:03 am
Location: Oregon, USA
Contact:

Re: post suggestions here

Post by tacosalad »

Norbert wrote:
tacosalad wrote:invisible tile
This is actually one tile I missed when I worked on the Additions to "Room Mapping" (3.4.2) document...
...because it's invisible.
What foreground and modifier numbers did you use to create your sample video?
Oops, I've made a mistake--this tile won't work in LEVELS.DAT.

The foreground is 0b, and I found this behaviour while studying this tile change bug in level 4. But this behavior only occurs for that one specific tile in level 4, and only after the tile changes during game play. I've tried putting all 256 possible modifier bytes in LEVELS.DAT, but it only shows up as an ordinary loose tile until the magical "tile change" bug occurs.

Apparently the bytes actually have to be modified while the game is running--or else I've overlooked some other critical detail. I've run it under a debugger and modified it while the game was running, but the behaviour is more complex than I'd thought. Interestingly if the level 4 "tile change" is a spike tile it becomes a visibly-corrupt spike tile but not any of the variants listed in the "Additions to Room Mapping" document!

But the good news is the video is authentic: you can design a level 4 that has a single invisible tile in a chosen location in room 4 after the exit door is opened, and that's exactly what I did in that video. Plus I've done enough live debugging of prince.exe to learn that (unlike the Apple II version) it doesn't update the room blueprints to reflect changes like (like potions drunk) during game play; it tracks changes separately from the room blueprints. But I haven't debugged it enough to explain it completely...not yet anyhow.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

polipo wrote:I will wait for the next apoplexy version.... BUT you have missed the file level conversion for Prince Of Persia.net :lol:
On the contrary, polipo... :)
Quoting from my TODO list here: "Add the capability to export levels to images and/or text files. Maybe also to an XML format that other programs can use."
polipo wrote:PS
What do you think about Pop.net ?
Well, I added it to popot.org here on January 5, 2013.
Also, I tried running it, as I wrote here; I'm a Linux user, it didn't work for me.
tacosalad wrote:Oops, I've made a mistake--this tile won't work in LEVELS.DAT.
Maybe that's for the best, considering the "rather terrible possibilities". ;)
We already have level 12a for that, I guess.
(If you did not yet see the walkthrough for level 12a of Prince of Wateria, when you reach the section where you can pick a path, try the middle path; that is, just keep going left until you finish the level. Level 12a is far easier than level 1 that you tried.)
polipo
Vizier
Vizier
Posts: 89
Joined: September 6th, 2012, 8:34 am

Re: post suggestions here

Post by polipo »

Hello norbert, and to all
thanks for the replies, I'll wait with anticipation the evolution of "apoplexy",
especially the ability to exports levels in XML format.

I wanted to know your opinion on a Pop.net to understand how far my
conversion is from the original PC version.
Could you ask someone (expert to Prince of Persia 1) if he can prove my .net version?
I would be useful to have some feedbacks.

Thank you again!
David
The Prince of Persia
The Prince of Persia
Posts: 2846
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: post suggestions here

Post by David »

tacosalad wrote:The foreground is 0b, and I found this behaviour while studying this tile change bug in level 4. But this behavior only occurs for that one specific tile in level 4, and only after the tile changes during game play. I've tried putting all 256 possible modifier bytes in LEVELS.DAT, but it only shows up as an ordinary loose tile until the magical "tile change" bug occurs.

Apparently the bytes actually have to be modified while the game is running--or else I've overlooked some other critical detail. I've run it under a debugger and modified it while the game was running, but the behaviour is more complex than I'd thought.
As I said in the Unknowns in the level format topic:
The modifiers of certain objects are changed after the level is loaded.
Gate: on disk, 1=open, 2=closed. In memory, the modifier stores how much the gate is open, in 1/4 pixels. (Probably because when the gate is closing, it moves 1 pixel in 4 frames.)
Loose floor: the modifier is zeroed out. In memory, the modifier tells which frame to show.
Potion: the modifier is shifted 5 bits left, i.e. the bottom 3 bits become the top 3 bits, and the bottom 5 bits store which bubble image should be shown.
So you either have to use the tile-change bug, or change the number of the first unused room (also mentioned in the same post), which determines where to stop changing the modifiers. (Or maybe edit the exe.)
tacosalad wrote:Interestingly if the level 4 "tile change" is a spike tile it becomes a visibly-corrupt spike tile but not any of the variants listed in the "Additions to Room Mapping" document!
The spike in this video: viewtopic.php?f=73&t=3151&start=15#p12716
It looks exactly the same as a spike with modifier 43.
For some reason, Norbert checked only multiples of 32 in the document.
tacosalad wrote:Plus I've done enough live debugging of prince.exe to learn that (unlike the Apple II version) it doesn't update the room blueprints to reflect changes like (like potions drunk) during game play; it tracks changes separately from the room blueprints. But I haven't debugged it enough to explain it completely...not yet anyhow.
Are you sure? I used an unofficial DOSBox version (http://ykhwong.x-y.net/xe/143) that can save the contents of the memory, and it shows me that when a potion (0x0A) is drunk, it is replaced with a floor (0x01).

[Edit: The following comment is part of this thread about PoP1 Studio. --Norbert]
Norbert wrote:
polipo wrote:PS
What do you think about Pop.net ?
Well, I added it to popot.org here on January 5, 2013.
Also, I tried running it, as I wrote here; I'm a Linux user, it didn't work for me.
Erm... your links point to PoP1 Studio, but I think he meant Prince Of Persia.net written in C#.
tacosalad
Sheikh
Sheikh
Posts: 48
Joined: October 3rd, 2005, 6:03 am
Location: Oregon, USA
Contact:

Re: post suggestions here

Post by tacosalad »

David wrote:
tacosalad wrote:Plus I've done enough live debugging of prince.exe to learn that (unlike the Apple II version) it doesn't update the room blueprints to reflect changes like (like potions drunk) during game play; it tracks changes separately from the room blueprints. But I haven't debugged it enough to explain it completely...not yet anyhow.
Are you sure? I used an unofficial DOSBox version (http://ykhwong.x-y.net/xe/143) that can save the contents of the memory, and it shows me that when a potion (0x0A) is drunk, it is replaced with a floor (0x01).
No I wasn't sure, which is why I added the qualifier "...I haven't debugged it enough."

I was debugging DOSBox with CDB (a Windows debugger) so it's likely I was being fooled by the behavior of the emulator (DOSBox.exe) instead of the behaviour of the program being emulated (Prince.exe). I just tried the exact test you described--drinking a potion--and the blueprint bytes remained unchanged. Then I manually edited the blueprint bytes in the DOSBox's memory space, but when the prince entered the room my edits didn't show up. So my debugger must not be showing me the actual memory prince.exe is using.
Post Reply