This page contains notes for the game Splatterhouse 3.
Stage progression#
The game has 5 main stages and six "Strange Zone X" stages that have the same name but are unique. You will enter a Strange Zone if you finish a stage quickly, and on the worst path where the timer is zero you will skip Strange Zones.
Memory locations of interest:
- 0xFF0166 : Stage number
- 0xFF018D : Backup stage number when in a strange zone, used to get back on the main game path once the zone is complete.
- 0xFF018C : Route flags; bits 1,0 store the outcome of the level you previously beat; bit 7 is set when you're currently in a strange zone.
Stage Number |
Stage Name |
|---|---|
0x00 |
1st Floor |
0x01 |
2nd Floor |
0x02 |
3rd Floor |
0x03 |
Basement |
0x04 |
The Dark Stone |
0x05 |
The Mask |
0x06 |
Strange Zone 0x06 |
0x07 |
Strange Zone 0x07 |
0x08 |
Strange Zone 0x08 |
0x09 |
Strange Zone 0x09 |
0x0A |
Strange Zone 0x0A |
0x0B |
Strange Zone 0x0B |
The game's ending and progression of stages depend on how quickly you clear a level. Each stage has four possible outcomes when you finish it: the current time is above the 1st limit, above the 2nd limit, above zero, or zero. A table at address 0x3CAA stores the time limits. Some outcomes are disabled by setting the start time below the 1st limit by one second so it can never be achieved. Because the outcomes are meaningless after "The Mask" those table entries are garbage, they're the start of a following table.
Stage |
Start time |
1st limit |
2nd limit |
Outcome if above 1st |
Outcome if above 2nd |
Outcome if nonzero |
Outcome if zero |
|---|---|---|---|---|---|---|---|
1st Floor |
6:00 |
3:00 |
2:00 |
Strange Zone 0x06 then 3rd Floor |
Strange Zone 0x08 then 2nd Floor |
2nd Floor |
2nd Floor |
2nd Floor |
6:00 |
3:00 |
2:00 |
Strange Zone 0x07 then Basement |
Strange Zone 0x09 then 3rd Floor |
3rd Floor |
3rd Floor |
3rd Floor |
7:00 |
7:01 |
2:00 |
(Unreachable) |
Strange Zone 0x0A then Basement |
Basement |
Basement |
Basement |
7:00 |
7:01 |
2:00 |
(Unreachable) |
Strange Zone 0x0B then The Dark Stone |
The Dark Stone |
The Dark Stone |
The Dark Stone |
10:00 |
10:01 |
10:01 |
(Unreachable) |
(Unreachable) |
The Mask |
The Mask |
The Mask |
60:00 |
(Invalid) |
(Invalid) |
(Unreachable) |
(Unreachable) |
Game over |
Game over |
If you use a Game Genie code or similar to force the timer to a high enough value you can reach some of the unreachable outcomes; in this case the stage progression is incorrect and you will loop back and play older stages or the game will crash when it looks up out-of-bounds stage data.
Game event flags#
The game stores the four timer outcomes for each stage yielding six sets of four flags. However the game only uses bit 0 (timer expired) for "1st Floor", "2nd Floor" and "Basement" when it comes to passwords and endings. While the other flags are computed they are never acted upon in-game.
Stage |
Flag address |
Flag bit |
Flag set |
Flag clear |
|---|---|---|---|---|
1st Floor |
0xFF0090 |
0 |
Timer expired; Jennifer died |
Timer was nonzero; Jennifer was infected or evaded capture |
2nd Floor |
0xFF0091 |
0 |
Timer expired; Jennifer became a mindless beast |
Timer was nonzero; Jennifer survived her illness |
Basement |
0xFF0092 |
0 |
Timer expired; David died |
Timer was nonzero; David survived |
There are four endings possible:
- All flags clear: Good ending, everyone lived.
- Any combination of Jennifer flags set: Bad ending, Jennifer died
- David flag set: Bad ending, David died.
- All flags set: Worst ending, Jennifer and David died.
Passwords#
The passwords encode the stage number, the three flags described earlier, and an additional byte related to memory address 0xFF0096 and may be related to cut scenes displayed between stages.
While it would seem that having passwords where both Jennifer flags are set seems contradictory as this indicates she died twice, these passwords covers the route where she dies during the 1st Floor and the timer expires while playing the 2nd Floor.
Password |
Stage |
Jennifer flag 1 |
Jennifer flag 2 |
David flag |
|---|---|---|---|---|
RESIOR |
2nd Floor |
|||
OWDRAT |
2nd Floor |
SET |
||
NAIGEP |
3rd Floor |
SET |
SET |
|
ATAERG |
3rd Floor |
SET |
||
NAMEPA |
3rd Floor |
SET |
||
ETLBUD |
3rd Floor |
|||
DABHSN |
Basement |
SET |
SET |
|
AKSILB |
Basement |
SET |
||
TABRAE |
Basement |
SET |
||
TEKROH |
Basement |
|||
NOILCK |
The Dark Stone |
SET |
SET |
|
TSAEBD |
The Dark Stone |
SET |
SET |
SET |
RAOBVW |
The Dark Stone |
SET |
SET |
|
REYALS |
The Dark Stone |
SET |
SET |
|
AIKITI |
The Dark Stone |
SET |
||
HTRACM |
The Dark Stone |
SET |
||
ELPOEB |
The Dark Stone |
SET |
||
RUATNC |
The Dark Stone |
|||
DEPITN |
The Mask |
SET |
SET |
|
URUURU |
The Mask |
SET |
SET |
SET |
OKOMOB |
The Mask |
SET |
SET |
|
LILITH |
The Mask |
SET |
SET |
|
TETUYA |
The Mask |
SET |
||
IRTACK |
The Mask |
SET |
||
VELGAE |
The Mask |
SET |
||
PHENIX |
The Mask |
|||
NILVED |
Strange Zone 0x06 |
|||
ETIRPS |
Strange Zone 0x07 |
|||
REYALF |
Strange Zone 0x07 |
SET |
||
GOFMTS |
Strange Zone 0x08 |
|||
HCTERG |
Strange Zone 0x09 |
|||
SERAGA |
Strange Zone 0x09 |
SET |
||
LEZAJM |
Strange Zone 0x0A |
SET |
SET |
|
TARESA |
Strange Zone 0x0A |
SET |
||
SECOLQ |
Strange Zone 0x0A |
SET |
||
SORABV |
Strange Zone 0x0A |
|||
SARDNA |
Strange Zone 0x0B |
SET |
SET |
|
ROGIBA |
Strange Zone 0x0B |
SET |
||
XASABR |
Strange Zone 0x0B |
SET |
||
HARUON |
Strange Zone 0x0B |