First, two images showing the shapes of the eight rooms, and the layout of the two dungeon types.
Your starting point is always room "4" in the NW corner of one of the maps, which I highlighted in red.
There are 16 unique dungeons with two variables:
- Which of the eight rooms is bound to "4" (the others follow in sequence)
- Which of the two dungeon types you're in: single-width or double-width
Note the room shapes.
- All the rooms are 9x9 "background cards" in size (72x72 pixels).
- The middle card on three of the edges - the three directions you can travel to - is where one room connects to another.
- The center card is the spawn point for: yourself, monsters, pickup items, and the exit (or crown halves).
- The card just south of the spawn point, regardless of orientation is where visual "artifacts" appear: rat droppings, demon bones, and skulls.
- All the rooms are rendered using six GROM character tiles: blank (#0), full (#95), and half-filled along a diagonal (#116-119).
- The rooms are rotated in 90° increments based on the three directions you can go.
- There is one row/column full of empty cards in the direction you can't go.
- Movement always happens in one-tile increments, though the animation is smooth. You and the monsters can only move where there are filled tiles. Diagonals within the "tunnels" are for visual effect, so you're not seen walking through walls while travelling diagonally. The diagonals also effect the angle of refraction for arrows.
Next, note the two dungeon maps. The double-width map is first.
- All rooms appear 4 times, and starting in the north tier, they recur one room SE from the previous one until the south tier.
- For rooms 1-3, use the E-W wraparounds to see how the pattern continues.
- The patterns continue in circular numeric order.
- The only difference in the single-width dungeons is that the wraparounds west of the starting column go to the fourth column of what would otherwise be the double-width dungeon.
- Only rooms 1-7 are used in the single-width dungeons, which is why I arranged the starting point to be room "4".
A fast way to tell which type of dungeon you're in is to travel N then W. If the room has the same shape as the starting room but is rotated 90° clockwise, then you're in a single-width dungeon.
The 8 room shapes, ordered from left to right, follow the same sequence as the numeric labels in the dungeon maps. Visualize one of those "Translation Wheels" where you would turn one wheel that's pinned on top of another which is larger and forms an outer ring. You could turn the bottom wheel, with the labels 1-8 printed around it, to point the number 4 to the one room shape on the top wheel, and then all the other shapes would conform to the other labels.
Rooms are always drawn when they appear within the viewing area. To hide them until they're marked as "visited", they are drawn with the foreground and background colors being the same, like the "invisible robot" in Night Stalker. Moving objects inside of unvisited rooms are hidden except for the blobs.
That leaves a few things for me to discover. I will check to see if there's a relationship between the "cardtab" position on the map and the dungeon variables. I still don't know whether the skulls have any significance, and how the procedural generation determines the placement of skulls, quivers, exits, and quest items.
If anybody wants me to also lay out the mechanics of the five dungeons (Cloudy Mountain and the four colors of the other mountains), I will.