(Small) differences between Apple II and DOS levels
Posted: September 12th, 2020, 4:56 pm
(Small) differences between Apple II and DOS levels
I have compared the levels in the Apple II and DOS versions of PoP.
(I admit I was partially motivated by the possibility that the room from the cover might be hidden in the Apple II version. But, alas, it isn't.)
* The Apple II levels can be found in Mechner's PoP source: https://github.com/jmechner/Prince-of-P ... rce/Levels
* The DOS levels can be extracted from LEVELS.DAT with PR. You can use the --raw option to extract the levels without PLV headers. That way you can do a binary comparison between the corresponding levels.
Remember that the Apple II version was first, and the DOS version came later.
Here is what I found:
Differences on all levels:
1. The DOS version has guard colors Offset 0x8D7..0x8EE. That area is unused on the Apple II.
2. DOS levels (except the potions level) have an extra byte at the end (offset 0x900) with value 09.
Curiously, 9 is also the number of 256-byte sectors needed to store a level on the Apple II.
Level-specific differences:
(Scroll down for pictures.)
level 3:
Offset 0x52A: room 21, tile 2 modifier.
Apple: 01, DOS: 00.
It's just a wall pattern hidden behind the columns. It was removed in the DOS version, maybe because it's barely visible?
level 8, first difference:
Offset 0x275: room 21, tile 29.
Apple: 0x07 (doortop), DOS: 0x14 (wall).
The Apple II version has patterned doortops in the dungeon.
In the DOS version all doortops are black, so this doortop was changed into a wall.
level 8, second difference:
Offset 0x859: room 19 guard (unused room!).
Apple: 0F (tile 15), DOS: 1E (none)
level 9:
Offset 0x000 and 0x001: room 1, tiles 0 and 1.
Apple: 00 0C (empty, doortop), DOS: 14 14 (wall, wall).
Same as level 8 above.
level 10:
Offset 0x85B: room 21 guard (unused room!).
Apple: 0F (tile 15), DOS: 1E (none).
level 13:
Offset 0x5A0 and 0x6A0: door link 0 (event 1 in Apoplexy).
Apple: It points to room 5 tile 24 (unused room!), and it also triggers the next event, which points to room 3 tile 13.
DOS: It points to room 3 tile 13.
I made a collage of the differences:
I have compared the levels in the Apple II and DOS versions of PoP.
(I admit I was partially motivated by the possibility that the room from the cover might be hidden in the Apple II version. But, alas, it isn't.)
* The Apple II levels can be found in Mechner's PoP source: https://github.com/jmechner/Prince-of-P ... rce/Levels
* The DOS levels can be extracted from LEVELS.DAT with PR. You can use the --raw option to extract the levels without PLV headers. That way you can do a binary comparison between the corresponding levels.
Remember that the Apple II version was first, and the DOS version came later.
Here is what I found:
Differences on all levels:
1. The DOS version has guard colors Offset 0x8D7..0x8EE. That area is unused on the Apple II.
2. DOS levels (except the potions level) have an extra byte at the end (offset 0x900) with value 09.
Curiously, 9 is also the number of 256-byte sectors needed to store a level on the Apple II.
Level-specific differences:
(Scroll down for pictures.)
level 3:
Offset 0x52A: room 21, tile 2 modifier.
Apple: 01, DOS: 00.
It's just a wall pattern hidden behind the columns. It was removed in the DOS version, maybe because it's barely visible?
level 8, first difference:
Offset 0x275: room 21, tile 29.
Apple: 0x07 (doortop), DOS: 0x14 (wall).
The Apple II version has patterned doortops in the dungeon.
In the DOS version all doortops are black, so this doortop was changed into a wall.
level 8, second difference:
Offset 0x859: room 19 guard (unused room!).
Apple: 0F (tile 15), DOS: 1E (none)
level 9:
Offset 0x000 and 0x001: room 1, tiles 0 and 1.
Apple: 00 0C (empty, doortop), DOS: 14 14 (wall, wall).
Same as level 8 above.
level 10:
Offset 0x85B: room 21 guard (unused room!).
Apple: 0F (tile 15), DOS: 1E (none).
level 13:
Offset 0x5A0 and 0x6A0: door link 0 (event 1 in Apoplexy).
Apple: It points to room 5 tile 24 (unused room!), and it also triggers the next event, which points to room 3 tile 13.
DOS: It points to room 3 tile 13.
I made a collage of the differences: