Difference between revisions of "Solomon's Key (NES)/Game Mechanics"

From SDA Knowledge Base

Jump to: navigation, search
(Information about basic movements)
(Information about basic movements)
Line 57: Line 57:
 
Climbing - There are three ways to climb. The optimal one is a one-frame trick and is described below (corner landing). The other two are:<br />
 
Climbing - There are three ways to climb. The optimal one is a one-frame trick and is described below (corner landing). The other two are:<br />
 
[[File:solomon_climb_bumping.gif]] [[File:solomon_climb_nobumping.gif]]<br />
 
[[File:solomon_climb_bumping.gif]] [[File:solomon_climb_nobumping.gif]]<br />
On the left, Dana bumps into the blocks at every jump (well, because of the horizontal position, every third jump during a climb will not bump into the block). Because of forced immobility frames from bumping into the block, Dana will in reality not move horizontally as soon as he has cleared a block vertically. The right shows how Dana starts out by jumping vertically and then moves horizontally so not to bump into the block. If done correctly, this can save up to four horizontal movement frames per jump (five with corner landing). In average, something like two horizontal frames saved is more realistic, but it's still clearly slightly faster than by bumping into the block. If the climbing is just vertical, the two methods are identical.<br /><br />
+
On the left, Dana bumps into the blocks at every jump (well, because of the horizontal position, every third jump during a climb will not bump into the block). Because of forced horizontal immobility frames from bumping into the block, Dana will in reality not move as soon as the block is cleared vertically. The right shows how Dana starts out by jumping vertically and then moves horizontally so not to bump into the block. If done correctly, this can save up to four horizontal movement frames per jump (five with corner landing). In average, something like two horizontal frames saved is more realistic, but it's still clearly slightly faster than by bumping into the block. If the climbing is just for the purpose of vertical movement, the two methods are identical (corner landing is 16 frames faster - one of the main reasons for a tas gaining time pretty much everywhere compared to a real-time speedrun).<br /><br />
  
 
==Speedrun techniques==
 
==Speedrun techniques==

Revision as of 14:32, 10 February 2014

Solomon's_key

General game description

The fundamentals of the game are simple enough. Get the key in each room and go to the exit to advance to the next. The main character, Dana, can run, duck, jump and create and destroy blocks as many times as necessary. Picking up certain items will allow Dana to shoot a fireball. Touching anything dangerous is an instant kill. However, beyond the basics is some depth to the game that is next to impossible to figure out on your own without help, so I'm gonna start out by explaining some of that. First of all, there are 48 regular rooms (1-48). The last room is always "Solomon's room", which contains the book called "Solomon's Key" (so paradoxically, despite chasing after keys the whole game, the name of the game refers to a book). On top of these 49 rooms that one encounters in a normal playthrough, it's possible to get to 12 bonus rooms and 3 hidden rooms. The bonus rooms are accessed by picking up the constellation icons in every fourth level (fyi, the 48 rooms are divided up in the 12 constellations, but that has no importance other than giving the game story an "exotic" touch). The 3 hidden rooms are:
- Hidden room (upper part) - contains the page of time (torn out of Solomon's Key). To access it, pick up the 4 first Solomon's seals (see below for more info) and collect the constellation icon in room 20.
- Hidden room (lower part) - contains the page of space (torn out of Solomon's Key). To access it, pick up the 6 first Solomon's seals (see below for more info) and collect the constellation icon in room 44.
- Prinsess room (not a spelling mistake on my part) - contains the princess. To access it, pick up all 8 Solomon's seals (see below for more info) and this room will come after room 48.

Endings

There are four endings in the game.
- The "normal" ending - finish the game without having saved the princess or having picked up the pages of space and time. The ending sequence is the bare minimum.
- The "princess" ending - save the princess and finish the game. On top of the normal ending sequence, fairies are released and some text is added at the end.
- The "pages" ending - collect both the page of space and the page of time and finish the game (collecting only one of them doesn't affect the ending). On top of the normal ending sequence, the cave sucks in all the demons and then crumbles. Some text about the constellation being destroyed appears at the end.
- The "best" ending - finish the game after having saved the princess and having collected the pages of space and time. The ending sequence is the combination the two above endings.

Version differences

There are two versions of this game. The pal-version and the ntsc-version (ntsc-u and ntsc-j are identical). The room layout and enemies are the same between the two versions. However, as with many other games for the NES, the pal-version runs slower. Interestingly, it's not entirely slowed down by the usual 5/6 ratio. Instead, horizontal movement is ~3% faster in ntsc (both for Dana and enemies), while vertical movement and all animations keep the same frame speed (resulting in the roughly 5/6 ratio of speed between pal and ntsc). As a consequence, most rooms with enemies have different solutions between pal and ntsc. Some rooms are harder in one version and some are harder in the other. It's not possible to make any kind of comparison of times between the two versions (not even in theory).
Like many other NES-games, playing on keyboard creates a big advantage. There are even some room solutions that are likely only possible on emulator and keyboard.

Important items

Solomon belloflyrac.png Solomon fairy.png - Collecting a bell releases a fairy from the exit. 10 fairies give an extra life. It's better to avoid these when possible in a speedrun as the fairies move around a bit erratically and risk getting in the way by preventing Dana from creating blocks in certain places. This is one of few random aspects of the game.

Solomon jarofmanda.png - Dana can shoot a fireball after having picked up the blue jar. The fireball will stop upon impact with an enemy or disappear when it's exhausted. The number of fireballs in Dana's inventory are shown as small flames on the scroll in the top right corner of the screen. To begin with, Dana can hold at most three fireballs at once. There is an item that can extend the scroll, but it's not useful in a speedrun. These are scattered around in the rooms (mostly in the beginning).

Solomon jarofmagadora.png - Dana can shoot super fireball after having picked up the orange jar. The super fireball destroys all enemies in its way and only disappears when it's exhausted. A super fireball appears as a big flame on the inventory scroll. Be aware that you can't rearrange the fireballs on the scroll. You need to shoot in the order they were picked up. These are scattered around in the rooms. There are less super fireballs in the game than normal fireballs.

Solomon upgradejar.png - Transforms the next fireball in the inventory scroll to a super fireball. These upgrade jars can only be earned by destroying certain enemy types (~10% chance of a drop from the right enemies). The drops in the game are random and can't be manipulated, so the upgrade jars would be a very unreliable part of the route in a real-time speedrun.

Solomon crystalofradblue.png Solomon crystalofradorange.png - The blue crystal extends the range of fireballs (both normal and super) by half a block. The orange crystal (can only be found by destroying certain enemy types) extends the range of fireballs (both normal and super) by two blocks. This effect has to be taken into account in a run of the pal-version, but is of practically no importance in ntsc (in theory, the extended range could possibly introduce some slowdown and therefore be unwanted, but the time difference is likely small).

Solomon goldenwing.png - Finishing a room after collecting a golden wing will allow Dana to skip the next five rooms. There are golden wings in rooms 7, 15, 23, 31 and 39. Note that some of the rooms skipped by the golden wings contain items that are required for the best ending.

Solomon medecineofedlemfull.png Solomon medecineofedlemhalf.png - The full grey jar resets the timer to 50000 and speeds up the countdown speed by 5. The half-full jar resets the timer to 25000 and speeds up the countdown by 2.5.

Solomon hourglassofnormyellow.png - Resets the timer to 5000, but has no effect on the countdown speed. There is a blue variation as well that resets the timer to 10000.

Solomon medicineofmeltona.png - Saramandors and demon heads on the screen are destroyed (but will soon start to spawn again).

Solomon solomonsseal.png - Hidden in rooms 9, 13, 17, 19, 21, 29, 46 and 47. They have no effect individually, but are required to open up the possibilities for obtaining the best ending.

Solomon constellationsign.png - The 48 rooms in the game are divided into the 12 constellations (4 rooms in each). The last room in each constellation contains a constellation sign. Picking up the constellation sign and exiting the room will normally send Dana to a bonus room.

Solomon pageoftime.png - If the first four Solomon's seals have been collected, finishing room 20 after having picked up the constellation sign will send Dana to a hidden room containing the page of time (instead of being sent to the normal bonus room). The page of time has been torn out of Solomon's key and must be collected to get the best ending.

Solomon pageofspace.png - If the first six Solomon's seals have been collected, finishing room 44 after having picked up the constellation sign will send Dana to a hidden room containing the page of space(instead of being sent to the normal bonus room). The page of space has been torn out of Solomon's key and must be collected to get the best ending.

Solomon prinsess.png - If all eight Solomon's seals have been collected, Dana is sent to the Prinsess' room after room 48.

Information about basic movements

Landing/take-off animations - The take-off animation costs 6 and the landing one 9 frames. Since jumping costs time, it must obviously be minimized. Landing animations can be cancelled by either using magic right before landing or by holding left or right on the D-pad.

Block magic - The animation takes 17-18 frames.

Fireball magic - Same as block magic.

Ducking - With frame perfect control, the ducking animation actually doesn't cost any time. However, in practice it's more likely to cost 10-15 frames, depending on the player.

Climbing - There are three ways to climb. The optimal one is a one-frame trick and is described below (corner landing). The other two are:
Solomon climb bumping.gif Solomon climb nobumping.gif
On the left, Dana bumps into the blocks at every jump (well, because of the horizontal position, every third jump during a climb will not bump into the block). Because of forced horizontal immobility frames from bumping into the block, Dana will in reality not move as soon as the block is cleared vertically. The right shows how Dana starts out by jumping vertically and then moves horizontally so not to bump into the block. If done correctly, this can save up to four horizontal movement frames per jump (five with corner landing). In average, something like two horizontal frames saved is more realistic, but it's still clearly slightly faster than by bumping into the block. If the climbing is just for the purpose of vertical movement, the two methods are identical (corner landing is 16 frames faster - one of the main reasons for a tas gaining time pretty much everywhere compared to a real-time speedrun).

Speedrun techniques

Solomon 1space drop.gif Solomon headbump.gif
(1-space drop) - This type of drop can be made by releasing the directional pad for 2, 3 or 4 frames (ntsc, it's 3, 4 or 5 frames on pal). If it's 2 frames, Dana will bump his head as shown in the second gif. Hugging the opposite wall will invariably mean not entering the space. This is instead done by releasing the D-pad in midair for 2, 3 or 4 frames (not important when this occurs). If it's 2 frames, Dana will hit the head, wasting 9 frames from immobilization. This might seem like a tight trick to perform, but it happens to correspond pretty well with "quickly releasing and re-pressing the D-pad". Drops from higher distances are tougher to execute because you need to press the D-pad within a specific 2 or 3 frame window (depending on the drop).

Solomon corner landing.gif
(corner landing) - If a corner of Dana's hitbox touches the corner of a block when jumping up, Dana will immediately land (without landing animation) instead of slightly overshooting the block and then falling down onto it. Since overshooting during a jump is basically a waste of time, the corner landing effect is technically a time-saving strat. In practice however, it's a 1-pixel/frame trick and therefore not really possible to perform consistently.

Solomon edge jump.gif
(edge jump) - By standing on the edge of a block, you can make a jump while having a block just above without bumping the head into it. The advantage is to not having to create an additional block to stand on. There are three or so valid pixels that allow you to make this jump. The timing is slightly different depending on if one uses the left or the right edge (it's maybe more accurate to say that the block hitboxes are not entirely symmetrical with respect to the center of the block). These are not so hard to do, since (with practice) it's possible to position Dana in such a way that a quick "tap" on the d-pad corresponds to the horizontal movement necessary for landing on the edge.

Solomon runningedgejump.gif
(running edge jump) - Similar to above, but harder.

Solomon zigzag.gif
(zigzag climbing) - Just a chain of edge jumps. Risky since falling down will be a huge time loss.

Solomon column.gif
(column building) - If creating a block while standing on the edge (same tolerance as for the edge jumps), you can create a block on the same space you stand, which also means pushing you out of the same space. However, before being pushed out, you can jump. This can be used to ascend areas when diagonal block creation is not possible. It's technically possible to create a column from the bottom to the top of a room. However, for that to save time over diagonal climbing, it pretty much needs to be combined with corner landings. This is doable, but pretty advanced stuff.

Solomon corner attraction.gif
(corner attraction) - If a corner of Dana's hitbox touches the corner of a block, Dana will either be turned right for a 8-9 frames and losing the horizontal momentum (if facing left) or just losing the horizontal momentum for 8-9 frames (if facing right). This is entirely a time waster... It's a one-frame/pixel trick, but still happens almost every time somewhere during a playthrough. In some rooms it can have more serious consequences than just the lost frames. For example, using the block magic while under the influence of this effect can mean creating the block to the right instead of left.

Solomon fireblockbuilding.gif
(fire block building) - Advanced technique. Uncertain if it's even possible outside tas (probably possible on keyboard in real-time as well).

Solomon bufferjump.gif
(buffer jump) - If up on the D-pad (=the jump action) is released during a jump or a drop and then re-pressed, Dana will buffer a jump after a landing animation of only 5 frames instead of the usual 9. A very important side effect is that this also works between rooms, meaning that one can start a room with a jump.

Solomon horizontalalignment.gif
(horizontal alignment) - Because of hitboxes not exactly corresponding with graphical sprite, it's possible to jump past enemies in spaces that are one block wide. The first jump here aligns Dana to the right side of block. The enemy will drop down on the left, allowing Dana to jump past. Very easy to do.

Enemies

There are several enemy types in the game. They are mostly predictable from a quick glance and will not be described below. Most enemies move in very determined patterns. However, the game does have some randomness to it. It's mostly relevant for tasing, but can also have an effect on real-time speedruns when the solutions become very tight and enemy positions have to be accurate.

Solomon saramandor.png - Saramandors spawn in some rooms from "devil's mirrors" (look like black tiles). They walk in a straight line and stop to breath fire when close enough to Dana. When dropping down, the direction they're heading next depends on where Dana is (left if Dana is to the left and right if Dana is to the right). This obviously means that it's possible to manipulate them. Their fire-breath hitbox is disjoint from their own hitbox, meaning that it's possible to safely stay between a Saramandor and its fire-breath.

Solomon gargoyle.png - Gargoyles are interesting because they bring some randomness to the game. Sometimes they start a room walking to the right and the next playthrough (or after a death), the same gargoyle starts walking to the left. This has an impact on some of the room solutions.

Personal tools