SpelunkyFan wiki

Black Markets on graveyard levels

Verified against the spelunky.ai port v0.1.11 on .

Black Markets on graveyard levels is a quirk of Spelunky Classic in which one Black Market in ten is a graveyard, and the game never says so.

The Black Market is a Jungle level, and every Jungle level rolls for being a graveyard. The market's is rolled too, once its rooms are laid out, so one market in ten is a graveyard, with its graves and its dead. But the market's welcome is the level's message, and the graveyard's comes second only on a dark level, which the market never is, so the game never says so.

What happens

#

The player drops from the Black Market's entrance onto a grave below its shops. The market rolled the graveyard, with eight graves and three Zombies, and the game welcomes him to the Black Market. THE DEAD ARE RESTLESS! never comes [1].

A Black Market on a graveyard level. A Black Market that rolled the graveyard: the player drops onto a grave below its shops. The game welcomes him to the Black Market, and the graveyard's own message never comes.

Why

#

scrInitLevel lays out the level's rooms, the market's included, and then rolls the graveyard for any Jungle level:

scrLevelGen();

global.cemetary = false;
if (global.levelType == 1 and rand(1,global.probCemetary) == 1) global.cemetary = true;
scripts/scrInitLevel.gml:145-148, from spelunky.gmk, Spelunky Classic 1.1's source, © 2008, 2009 Derek Yu and Mossmouth, LLC (Spelunky User License v1.1b).

Nothing there skips the market, and scrEntityGen's Jungle branch, which the market runs, makes a graveyard of it: graves on its earth, with their treasure [2], Zombies and Vampires in place of the Jungle's monsters, without the market's rule that keeps Mantraps off its shops' floors [3], and Dead Fish in place of Piranhas [4].

The level's first message, from oPlayer1's alarm 0, takes the market before the graveyard [5]. The second, from alarm 1, shows the graveyard's only on a dark level:

else if (global.cemetary and global.darkLevel)
{
    global.message = "THE DEAD ARE RESTLESS!";
    global.message2 = "";
    global.messageTimer = 200;
    if (global.lake) alarm[4] = 210;
}
objects/oPlayer1/alarm_1.gml:11-17, from spelunky.gmk, Spelunky Classic 1.1's source, © 2008, 2009 Derek Yu and Mossmouth, LLC (Spelunky User License v1.1b).

scrInitLevel clears global.darkLevel on the market, if (global.blackMarket) global.darkLevel = false; [6], so the graveyard's message never shows there [7].

Reproducing it

#

Take the Black Market's hidden door on level 5, 6 or 7, until a market comes with graves on its earth; one in ten does. It welcomes the player as any market does, and says nothing more. The replay, with seed 9, reaches the market on level 6 as a graveyard, with eight graves and three Zombies: "WELCOME TO THE BLACK MARKET!" shows, and "THE DEAD ARE RESTLESS!" never does. The player drops from the entrance onto the edge of a grave, which is solid [8].

In the port

#

The spelunky.ai port reproduces it exactly: it's in docs/quirks.md's list of the 1.1 source's bugs [7], and the oracle's fingerprint of the replay pins the graves, the Zombies and the messages. No option turns it off.

FAQ

#
Can the Black Market be a graveyard level?

Yes, one time in ten. The roll for a graveyard level is made for every Jungle level, the market's too, so a graveyard market has graves on its earth and Zombies and Vampires where the Jungle's monsters would be.

Why doesn't the Black Market say THE DEAD ARE RESTLESS?

The market's welcome takes the level's first message. The graveyard's message would come second only on a dark level, and the Black Market is never dark.

Can a graveyard market's grave hold the Shotgun?

Yes. Its graves are made as on any graveyard level, so one can be the Ash grave, with a free Shotgun in it.

See also

#

References

#
  1. Clip quirks/market-graveyard
  2. scripts/scrEntityGen.gml:176-205
  3. scripts/scrEntityGen.gml:280-288
  4. scripts/scrEntityGen.gml:332
  5. objects/oPlayer1/alarm_0.gml:14-33
  6. scripts/scrInitLevel.gml:176
  7. Quirk 1 (docs/quirks.md)
  8. Replay fidelity/replays/jungle-seed-9-market-graveyard.txt

Source code

#