Norbert wrote:
One of the per-level settings I have in mind is for the environment type (palace or dungeon). However, I looked at the Apple II source code and from what I can tell, these are bgset1, bgset2 and chset (offsets 0x1A8B7, 0x1A8C6 and 0x1A8D5 in the disk image), but if I modify these the game crashes.
I have looked into this.
Code: Select all
* Level #: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
bgset1 db 00,00,00,00,01,01,01,02,02,02,01,01,02,02,01
bgset2 db 00,00,00,00,01,01,01,02,02,02,01,01,02,02,01
chset db 00,00,00,01,02,02,03,02,02,02,02,02,04,05,05
Changing these
does work, but there is a twist:
Graphics set 00 (of both bgset and chset) is on Side A, the others are on Side B.
Therefore:
• Levels 0..2 must use 00 in all tables, because they are on Side A.
• Levels 3..14, in contrast, must use something other than 00, because they are on Side B.
This is true even if the two sides are combined into a single file, as in your disk image.
Something still keeps track of which side is the current.
If I change level 1 to use bgset1 = 01, for example, then when I load level 1, some graphics will be garbled and the game freezes.
If I undo that and change level 1 to use bgset2 = 01 instead, then the game kicks me out into the machine code monitor. Wow!
The bgsets of level 3 seem to contradict this.
However, there is a check that does not load bgsets if the number is the same as for the previous level:
Code: Select all
(MASTER.S)
rdbg1 ldx newBGset1
cpx BGset1 ;already in memory?
beq :rts ;yes--no need to load
stx BGset1
So if you go to level 3 from level 2, no new level graphics are loaded.
Maybe this is why the "GO" cheat code can't load level 3?
Because if you wanted to go to level 3 from a later level, then the bgset number
would be different.
Hey, what's this?
If I press Ctrl+L without saving the game first, then Level 3 is loaded with 61 minutes left, and the prince moves automatically!
And if I interrupt it with any key, the game loads Level 4 with dungeon graphics, but displays "LEVEL 1".
Also, the prince starts with a running entry and he will have no sword.
If I skip to Level 2 or further levels, they are loaded correctly.
I guess the save-game area is filled with zeroes?
So Ctrl+L tries to load Level 0.
If I recall correctly, Level 0 on Side A is at the same place as Level 3 on Side B.
I guess the game assumes that Side B is needed for any level loaded with Ctrl+L. (You know, saving is enabled only from Level 3.)
So Level 3 is loaded instead, but the game still thinks it's Level 0, and thus plays the demo moves.
The solution?
The saved level should be negative (0xFF), this means there is no saved game.
Code: Select all
(TOPCTRL.S)
:cont jsr loadgame ;Load saved-game info from disk
lda SavLevel ;Has a game been saved?
bpl :ok ;Yes
* No game saved--start new game instead
It's stored at 0x43600 in PoP1.po.
Or just
press "*" when cheats are enabled and Side B is active.
Norbert wrote:
It needs a colon, but "azap" is correct.
The reason is that "a" itself toggles auto/manual controlling of the guard.
Oh, right. "zap" has an "a", and so another "a" is needed.
"zapa" (or Zappa?) would also work, but then you need to press the second "a" before the guard's death music starts playing, or else the keypress is not registered.
Norbert wrote:
In (the default) joystick mode, with just "zap", the prince no longer makes small steps.
Actually, there are two joystick buttons, mapped to numpad Ins and Del, and also the two Alt keys.
One of them (Ins / left Alt) is assigned to the guard in "manual guard mode", but the other (Del / right Alt) is kept for the prince.
By the way, the keyboard control of PoP1 Apple (UIOJKL) lives on in PoP2 DOS.
(It's supplemented with "M,." and there is another set, the WERSDFXCV keys).
Also, in PoP2 DOS you can use Insert instead of Ctrl, and Delete instead of Shift.
Norbert wrote:
By the way, the level editors table at popot.org includes red-like and green-like colors to work around the common color-blind pair.
Now that you say, I see it.
I guess accessibility is also the reason for having key equivalents for everything in your editors?
Norbert wrote:
Alphabetical sorting put my editors at the top; I did not deliberately name them with that in mind.
(I don't think you think I did.
)
Well, if you say so...
BTW, there are names that
were chosen for such reasons:
The
Amiga for example.
ZZT did the opposite trick.