Proto:MediEvil/Rolling Demo
This is a sub-page of Proto:MediEvil.
This page is rather stubbly and could use some expansion. Are you a bad enough dude to rescue this article? |
The prototype of MediEvil was released on October 17, 1997 as part of the Registered User Demo 02 disc. Files on the disc suggest the demo finished development around August 14, 1997.
Contents
Unused Notice Screen
On function 800248a8 there's a switch case for selecting the screens shown at the start of the demo, however the first entry is never used. We can replace the address of the second entry (the "Presents" screen) with the first entry's address, by applying this Game Shark code:
D0096864 800D 800ABC48 48FC
Cheat Codes
Because the player cannot play this rolling demo of the game normally, cheats are required to make any progress in this demo.
Effect | Code | Description |
---|---|---|
Player-controlled Dan | D0096864 800D 300D4490 0000 |
Gain control over Dan |
Cheat Mode | D0096864 800D 300CFCEC 0001 |
Extends pause menu with DEBUG1 menu |
Extended Cheat Mode | D0096864 800D 300CFCEC 0002 |
Extends pause menu with DEBUG2 menu, |
Default Button Layout | D0096864 800D 800D0818 27F8 |
Equivalent to CONTROL SETTINGS = "Digital - 0", |
Debug Menus
To do: Document the remaining entries. |
When either DEBUG1 or DEBUG2 are activated, the current camera mode is displayed at the bottom-right of the screen.
Modes can be switched by pressing Select, however Free and Fixed can only be set from the pause menu.
Available modes:
TESTCARD shows color bars:
SHOW VRAM shows textures in memory:
Some menu entries are missing logic, but don't show the description "Not available":
- GATSO
- SHOW MEM STATUS
- GRAB SCREEN
To verify these, let's check for example SHOW MEM STATUS, which contains these fields:
800b66b4 20 b7 0a 80 addr s_SHOW_MEM_STATUS_800ab720 = "SHOW MEM STATUS" 800b66b8 a4 b7 0a 80 addr s_%jcX_to_enter._800ab7a4 = "%jcX to enter." 800b66bc 6c 7e 02 80 addr LAB_80027e6c ; handler subroutine address [...] 800b66cc 02 00 00 00 ddw 2h ; cheat level required to display entry
The corresponding handler is just a no-op:
80027e6c 08 00 e0 03 jr ra 80027e70 00 00 00 00 _nop
But the handler address is not followed by an address for a description subroutine (only null bytes up to 800b66cc), usually implemented as:
80027238 0b 80 02 3c lui v0,0x800b 8002723c 8c 68 42 24 addiu v0=>PTR_s_%jrNot_available_800b688c,v0,0x688c = 800abba4 80027240 08 08 82 af sw v0=>PTR_s_%jrNot_available_800b688c,0x808(gp) = 800abba4 80027244 08 00 e0 03 jr ra 80027248 00 00 00 00 _nop
Gameplay Mechanics
As expected, the game is more simplistic and arcade-y. Health is measured by the few green bones you collect, and lives are represented traditionally by how many Dans you have left. Instead of a Chalice of Souls, there is a standard scoring system for the enemies you take down. When an enemy is killed, their point worth is shown, but their soul still flies up and away. Lastly, the game uses "tank controls" to move Daniel around. It doesn't seem like sidestepping was implemented, either.
Item Differences
These models are stored as MOF files inside the WAD container file "medres.mwd". These can be ripped with FrogLord. They are identified by their file entry index in the corresponding WAD.
Club
Rolling Demo | Retail (SCUS-94227) | Description |
---|---|---|
Index: 12 |
Index: 44 |
The Club had some gore that was removed in later versions. |
Unused Items
Trident
Icon | Model | Description |
---|---|---|
Offset: 0x97e4 |
Index: 23 |
The Trident has a melee lunge attack and would've been similar in use to the Lightning. It is also nearly identical to Zarok's own trident. |
Potions
Potions are collectible items used to affect enemies. The following can be obtained in-game:
Name | Model | Description |
---|---|---|
Serpent Potion | Index: 31 |
Summons Kul Katura the Serpent Lord upon being picked up. In the final game, this potion gets used for the Dragon Armor item. |
Shrink Potion | Index: 33 |
Temporarily shrinks enemies that are near the player. However, it's only partially implemented, since enemies still cause damage when colliding with the player. In the ECTS demo, enemies are instead crushed by the player. |
Power-Up Potion | Index: 34 |
Can either create a protective shield, protective force shield that hurts enemies, or power up the player's weapon. |
Other potions listed below are not found in any levels of the demo, but they are referenced in the object table entry at address 0x800b7498.
Name | Timed Demo Icon | Rolling Demo Model | Description |
---|---|---|---|
Dragon Potion | Offset: 0xe87c |
Index: 27 |
There is an early model of the Dragon Potion/Armor matching its overall appearance to its early inventory icon. No visible effect when obtained. |
To load any of these potions in-game, we can replace chests using the following GameShark codes:
D0096864 800D 80034840 FC00 80034842 0807 80034844 0000 80034846 0000 801FF000 0004 801FF002 8270 801FF004 0004 801FF006 3403 801FF008 0004 801FF00A 1470 801FF00C 0007 801FF00E 3403 801FF010 0004 801FF012 A263 801FF014 00XX 801FF016 3403 801FF018 0006 801FF01A A263 801FF01C 0004 801FF01E 9662 801FF020 D212 801FF022 0800 801FF024 0000 801FF026 0000
Where XX
is one of the following values:
Value | Description |
---|---|
00 | Dragon |
01 | Serpent |
02 | Power-Up |
03 | Misc 3 |
04 | Growth |
05 | Misc 1 |
06 | Shrink |
07 | Misc 2 |
Test Models
Unused Enemies
Uncle Mad
These skinny guys are encountered in The Sleeping Village level, but can only be spotted inside the buildings. They are intoxicated fellows sitting against a wall and can either throw green bottles at the player or bash with their club if approached.
Levels
To do: There are loads of level differences to put here. |
In this prototype, there are more than just 22 levels (also including the "Title Level" and the Programmer's Playground, even though both are unplayable). However, half of them are unplayable:
- Cemetery Hill
- The Pumpkin Serpent
- Inside the Asylum
- The Enchanted Earth
- The Lake
- The Crystal Caves
- The Gallows Gauntlet
- The Entrance Hall
- Zarok's Lair
Only ten levels are playable:
- The Graveyard
- The Hilltop Mausoleum
- Scarecrow's Fields
- Pumpkin Gorge
- The Sleeping Village
- Pools of the Ancient Dead
- The Asylum Grounds
- The Haunted Ruins
- The Ghost Ship
Dan's Crypt and The Time Device weren't planned yet.
Differences From the Final
The Sleeping Village
Killing the possessed townsfolk is fine and even adds to the score.
The water is unfinished and is set up like walkable terrain.
The Asylum Grounds
When the player enters the hole after completing the chessboard puzzle, the level doesn't end. Instead the player falls into an underground tunnel where a rune can be found. After returning above ground, the gate behind the chessboard opens leading to a building which resembles the one seen in the unused FMV 7AV. This can be seen [here]. Presumably this is where the cut level featuring the Morten the Worm would take place.
Scrapped Levels
Other levels were completely scrapped from the final game's release, although none of these actually have any other content in this build. The unused levels are listed as follows:
- The Coffin Vaults
- The Fields of Dust
- The River
- The Muddy Riverbank
- The Mud Slide
- Circle of Shadows
- The Silver Wood
- The Halls of Illusion
- The Hub
- The Great Machine
Placeholder Textures
Several of these textures can be found in file "medres.mwd". These can be ripped with a script. Some of them are shown below, along with their starting offsets in the resource file.
Offset: 0x13ff00 (stored along with graphics of the "Title Level" intro)
Offset: 0x7e30a0
Offset: 0x827f30
Offset: 0x831b64
Rolling Demo | Retail (SCUS-94227) |
---|---|
Offset: 0x7ea824 |
Offset: 0x172552c |
Rolling Demo | Retail (SCUS-94227) |
---|---|
Offset: 0x7ef1a4 |
Offset: 0x1729eac |
Rolling Demo | Retail (SCUS-94227) |
---|---|
Offset: 0x7794b8 |
Offset: 0x173a0b4 |
Weapons
Rolling Demo | Retail (SCUS-94227) |
---|---|
Offset: 0x009e64 |
Offset: 0x00f1f8 |
Rolling Demo | Retail (SCUS-94227) |
---|---|
Offset: 0x00d904 |
Offset: 0x010cbc |
Rolling Demo | Retail (SCUS-94227) |
---|---|
Offset: 0x00dc44 |
Offset: 0x010434 |
Rolling Demo | Retail (SCUS-94227) |
---|---|
Offset: 0x00efc4 |
Offset: 0x0109ec |
Rolling Demo | Retail (SCUS-94227) |
---|---|
Offset: 0x00f304 |
Offset: 0x013a84 |
Unused Textures
These textures don't map to any models in "medres.mwd". We can confirm this in FrogLord, where VLO files 331 and 375 map to WAD files 332 and 376, which are both empty (32 bytes followed by null bytes up to the next file offset). Both textures and models were included in the ECTS demo.
Offset: 0x74e500
Dragon and background of "The Silver Wood" level (a.k.a. Jabberwocky chase level).
Offset: 0x7c72cc
Unknown Dan transformations of "The Halls Of Illusion" level.
Animations
Death Animation
The death animation used when Daniel loses a life is identical to the one used when Daniel loses his final life, this is unlike the retail release which uses separate animations for the former and latter situations.
Sneaking Animation
With CONTROL SETTINGS = "Digital - 0" set in the pause menu, pressing Up + L1 makes Daniel perform a "sneak" animation while walking slowly.
Music
There are a total of four songs used for the rolling demo. During gameplay, however, each song stops playing after half of a minute rather than looping. The music is mostly identical to those used for the game's final build, but with slight differences and ending sooner. They are also used for some later demos.
- Menu - A shorter version of the music for The Crystal Caves. It is used for The Hilltop Mausoleum, The Haunted Ruins, and The Ghost Ship.
- The Cemetery - A shorter version of the Scarecrow Fields music. It is used for The Graveyard and The Asylum Grounds.
- Unused - A shorter version of the Dan's Crypt music. It is used for The Ant Caves, The Sleeping Village, and Pools of the Ancient Dead.
- The Hilltop Mausoleum - A shorter and different version of the Return to the Graveyard music. It is used for Scarecrow Fields and the Pumpkin Gorge level.
Loading Screen
Proto | Final |
---|---|
The early loading screen contains an image of a scarecrow as seen in one of the FMVs, with smaller "LOADING" text below it.