If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Splatterhouse 3

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Splatterhouse 3

Also known as: Splatterhouse Part 3 (JP/KR)
Developer: Now Production
Publishers: Namco (JP/US), Samsung (KR)
Platform: Genesis
Released in JP: March 19, 1993
Released in US: 1993
Released in KR: 1993


TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.


Leftover Debugging Features

Now with even more breakage than in Splatterhouse 2!

Hmmm...
To do:
  • Check the US ROM.
  • Provide codes that fix the number displays to use the correct tiles in VRAM.

The Menu Strings

Stored alongside the Options menu text, starting at $5015 (JP), are the following strings:

; after the text for the control options
ROM:00005015                 dc.b  $B
ROM:00005016                 dc.b $12
ROM:00005017                 dc.b 'OBJ TEST',0
ROM:00005020                 dc.b  $B
ROM:00005021                 dc.b $14
ROM:00005022                 dc.b 'PLAYER TEST',0
ROM:0000502E                 dc.b  $B
ROM:0000502F                 dc.b $16
ROM:00005030                 dc.b 'EXIT',0
; immediately followed by the EXIT that is actually used in the options menu; I think this one is just in a different position

It's likely the debugging features were meant to be accessed in the Options Menu itself, but the code that would theoretically have accessed these strings was likely removed (see below, on removed cheats, to see what I mean about these clean removals). The patch codes I give below will jump you into these screens by selecting EXIT from the Options menu; the low byte of the patch code values are the screen mode numbers.

OBJ TEST

Splatterhouse3 OBJTEST.png

Use 479C:0009 (JP) (Gens/GS). This is identical to the OBJ Test from Splatterhouse 2, right down to having the same controls, though the weird drawing bugs are all gone and in their place... the numbers don't show up correctly (using garbage tiles instead of number tiles; the number tiles are in VRAM). Hit Start to return to the Options menu (which is how I eventually decided to go with doing this through the Options menu).

PLAYER TEST

Splatterhouse3 PLAYERTEST.png

Use 479C:000A (JP) (Gens/GS). This is a simple player sprite animation test. Use Left and Right to change the direction Rick faces, Up and Down to select an animation, and Start to go back to the Options screen. (Do A, B, and C do anything? TODO). As with the OBJ TEST, the sprite number shown does not use the correct tiles (they are in VRAM).

Removed Cheats?

At $2CC7 (JP)/$2D97 (US) lies the following text routine data, immediately after the title screen menu strings:

; from the JP version; the data is identical in the US version
ROM:00002CC7                 dc.b $11
ROM:00002CC8                 dc.b $16
ROM:00002CC9                 dc.b 'STAGE NO ',0
ROM:00002CD3                 dc.b $E
ROM:00002CD4                 dc.b $17
ROM:00002CD5                 dc.b 'PLAYER STOCK ',0

Nothing in the title screen code ever refers to these strings and there does not appear to be any code left that lets you select a stage and life count outside of the password system. In fact, the list of title screen submodes (which starts at $286C (JP)/$292E (US)) is mostly comprised of pointers to the first string on the list (the PRESS START BUTTON string) (starting after the submode that represents the title screen main loop), which may indicate that the code was completely removed from the game but the screen mode list was not updated.

Hmmm...
To do:
Disassemble the rest of the game code to see otherwise, though I'm (andlabs) mostly convinced the submode list is obvious proof.

Regional Differences

Careful, you'll lose an eye.
This page or section needs more images.
There's a whole lotta words here, but not enough pictures. Please fix this.

The game is mostly the same between versions, even down to the English text (which explains the Engrishy moments) though the US version added text explaining the basics of the game after you start. However, some tweaks were made to the gameplay when the game was localized outside Japan. Most notably, the spin kick was made more powerful, and the button inputs for special moves were switched around. Moves that subtract from Rick's powered-up form no longer do so. Time limits are shorter. The name also changed from Splatterhouse Part 3 to just Splatterhouse 3. In the emulated ROM version in the reboot, the digitized cut-scene pictures were completely redone.

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