Username:
B
I
U
S
"
url
img
#
code
sup
sub
font
size
color
smiley
embarassed
thumbsup
happy
Huh?
Angry
Roll Eyes
Undecided
Lips Sealed
Kiss
Cry
Grin
Wink
Tongue
Shocked
Cheesy
Smiley
Sad
<- 12
--
--
List results:
Search options:
Use \ before commas in usernames
Edit history:
feasel: 2012-08-22 05:09:54 am
feasel: 2012-08-22 05:08:18 am
feasel: 2012-08-22 05:08:18 am
difficult and stupidly random
1:03:37
http://www.twitch.tv/feasel/b/329510937
http://www.twitch.tv/feasel/b/329510867

3 Mage 1 Warrior.  Died on floor 16 :s

Note that SolairFlaire got a 1:04:xx today, which is also a really good time, using the same party and route.

The hour -- will it be cut??
Learning to Stream
Quote from feasel:
Note that SolairFlaire got a 1:04:xx today, which is also a really good time, using the same party and route.

The hour -- will it be cut??


First off, Special thanks to Feasel & Solairflaire for their input. They seriously made this pathway virtually optimal in such a short time! I've only had some random thoughts and observations. They have been making the real magic with viewable movies of awesome!! Now for the interesting stuff

----

I save state abused the shit out of a run... only for FCEUX to crash the damn movie stating that S&S is an FDS title... x.x;; The reason I did was to see how well I could manipulate stuff along the path optimally. I literally almost pulled off Level 5, but the last damn fight boosted me to Level 6, so that looks like absolute bare minimum.

In this fails to play run [Sigh... is it going to be like this every damn time now?] I scored a Wizard Wand by fluke [And let me tell you... the RNG for those drops is so frame perfect it HURTS! I lost several other items by accidentally reloading... then mashing like mad.. and still nothing x.x] which made shopping on Level 5 VERY easy! Got and lost due to a reload, a Magic Plate and a Mage Ring.

I lost 2 characters... on purpose... during the Dragon Fight.

Final time according to FCEUX before crashing? 53m29s and I wasted maybe 30 seconds with silly mistakes. x.x;;

A true TAS should nail this around 48 mins or less.


----

@Feasel - I am going to give this damn beast one more try.. and I KNOW it will help if it finally works. The path you have? Solid. Party? Solid! Tweaks? Yes.

-You are really going to hate this... but nearly flawless stats are the only way this run is going to go under 1 hr. It could take 15 minutes to roll an all 14 party... and believe me.. that singlehandedly will be what helps you get under the hour mark. I hate it... but honestly, in the long run, it does become more and more noticeable compared to slightly less then perfect characters.

-I memorized a lot of the enemies experience points and kept a calculator nearby with big buttons for mashing. This allowed me to figure out how close to the magic # of 52 exp I was at before killing the guards [They give a solid 48]. This was pure luck that I encountered a few zombies and solo guards to bump me up without even trying. This makes it easy to have a guaranteed LR after the fight. If you don't get enough before the guard fight, I'd dare say it's reset time. The few seconds AFTER that battle to get that 1 more encounter... it makes all the difference. Especially if you get a crappy random battle of 2 enemies when you only need 1.

-Less healing near the end of the guard battle is a GOOD thing. [I noticed you seem to have figured this out too in your 1:03 run] For those of you who are wondering why I say that... if you have enough experience BEFORE you go into the battle with the 6 guards, you will be using a Last Resort IMMEDIATELY after the battle to get to the Temple and heal to Level 2 stats. This is ESSENTIAL as it gives you the MP boost you need for the randomness of Level 2 and ESPECIALLY 3!

-SCREW RANDOM ENCOUNTERS! Unless it's going to be a dead simple / ultra quick fight, ignore them. The only thing that would benefit you would be random drops and those are too damn random at times. Running ends up being faster most of the time and allows MP saved. I believe I fought only 14 random encounters the whole game and 5 were at the First Level. You get enough experience to level up as you go along with the forced encounters, so you're covered there.

-I am kinda iffy about the magic fountain beside passwall. I mean you're about to get healed at the Temple anyway, so it wastes a few seconds... but at the same time, if you're running low and may not make it... it's a tough call.

-Level 9... I don't know if I was imagining it or if the game has certain triggers and codes set up that cause different things to occur... but yeah... optimal pathway achieved here. Just sucks we waste a fountain x.x;;

-Level 11 - I got my pathway to the Upper Left on Level 10, down stairs and then zoom straight East to work... BUT I had to reload it. The reason is, I accidentally stopped and hit B for some stupid reason and cancelled out asap. This stopped it from making noise and giving me the damn Ruby Sword. I think it's a very tight window when you Passwall in there, which explains a lot of things. I also highly recommend a far different path in escaping the square with the sword. Passwall West, go back to D2 and then all the way down to D13 where we Passwall in and go through the doors to the steps. There is NO REASON to toy with that Magic Fountain as it wastes time refilling... which is a waste since we get the Crystal 10-15 seconds later and LR back to 10 for the Zoom Tube.

-Level 13 - Disappointed my one other idea failed for Passwalling, but I expected as much. But, I have a new plan that uses a touch more MP, but can pay dividends in the end. Dead Eye and Strength on the Warrior for sure... but also do it to one of your Mages.. or 2?! I suddenly was doing DISGUSTING damage with my Mage AND Warrior and taking out a lot more monsters before their attacks. Sure I had to do the odd Major Heal, but this additional offence allowed that to lessen enough that it paid off. Worse comes to worse, there's the fountain which will waste 7 seconds... but that could be regained quickly.. or not even needed!

-Dragon - This is where I went balls to the walls. I did the Dead Eye & Strength to my Warrior... then I mashed the SHIT out of the B Button and crossed my fingers. I did the same 2 spells to EACH Mage, and then I went at 'er! I had to use Major Heal 4 times and I deliberately played fast and loose near the end, letting 2 Mages die. Needless to say, 5 seconds later it was irrelevant as my remaining Mage and Warrior crit hit the Dragon as usually is common with that spell combo. 6 Hits or more a round, with deadly accuracy and extra damage makes a HUGE difference. Makes up for lack of a Thief by far.

I think with these suggestions, half decent RNG, and some luck... alright a good chunk of BECAUSE of the RNG... that Sub 1hr on a console is DEFINITELY going to happen! I dare say Sub 59 is all too possible too.
Edit history:
feasel: 2012-08-23 08:59:54 pm
feasel: 2012-08-23 08:58:40 pm
difficult and stupidly random
59:25

Bad luck run, tbh.  Let's do better.

-- edit --

56:33
http://www.twitch.tv/feasel/b/329704874

Really tight run up to the final floor.  Died to the final boss because he began the fight by taking 3 turns to my 1.  If not for that the run would have clocked in at just under 52 minutes.

Only very slight changes to the route.  Not selling anything besides the four items that you do for purposes of changing characters without leaving the shop (nice tip on the character-change, solairflaire).  I skip buying helmets completely.  The only thing I buy at the armory on Floor 5 is the 3 wizard wands.  I also don't ever drop anything, unless i need to do so to make room in the warrior's inventory to equip things on Floor 11 (though usually this doesn't happen if i run away from as much as possible).  My selection of monsters that i actually fight has been refined slightly.  I'm finding it easier to hit the mark for Level 4 by the time you get the 1000XP on Floor 9.  I also save time by healing people a lot less as i approach a deathwarp, trying to run my party out just as i reach it.
Learning to Stream
Alright.. I am SICK of FCEUX killing off my brilliant proof of concept runs of awesome with its FDS ejection bs issues! But enough gripe.. onto the newly found info.

-As Feasel found out from testing tonight... Yep. Level 5 is DEFINITELY possible! I don't believe there's a way to do this on Level 4... though I came damn close. [Literally one of the last forced encounters before the Dragon put me to Level 5. Not sure if I ignore everything and go from Level 1 to Level 2 without Last Resort and ignore everything, if I'd be able to stay just underneath the radar and manage a Level 4... bur believe me... if it was even possible to stay at Level 4 before the Dragon, it damn well should be possible to beat the game on Level 4 with a LOT of luck!]

-What does this mean? Possible new strategy time. Ignore the 1000 experience on Level 9. Considering every grouping on Level 13 that is a REQUIRED fight is almost 500 experience [if not more] a go, that's almost 2000 experience points gained without deviation. [Unless you use the fountain on Level 13, but still]

-Level 5 a little easier? Deadeye and Strength on your Warrior. Takes maybe 3-5 seconds to cast them, but the difference in how much more damage can be done in the long haul can make up for that in a hurry. Needless to say, doing this on a Magician or 2 on Level 13 with the warrior ALSO makes a difference! Just gotta watch MP.

-Drops? Frame dependant. I saved just before the end of the battle. The frame you hit A on the screen detailing experience and gold seems to be the main point of if you will gain a drop and which drop if you GET one. I tested this and on a Level 1 battle, consistently I could force a Leather or a Sword with quick reflexes. The thing is... not a guarantee... but it's interesting.

-The random battles - While OPTIMALLY, we will get to the point of strictly forced encounters... some of these random battles may be the key to taking off more time. If you luck out with 3 Wizard Wand drops.. well damn! No shopping on Level 5 required period and that will save a LOT of time! But it's a truly tough call! The few seconds spent trying a random battle out could be seconds in the end that prevent you from a new record. Considering how BS the RNG is in this game though... a single fight with a Spider on Level 1 could make the Dragon now triple attack you on Level 16. Well alright... maybe not THAT bad... but bad enough.

-Anyone questioning Last Resort in the Armory on Level 5 with the Temple around the corner? Last Resort IS faster. Not by much seemingly, but it also means you save some frames by not having to turn back North [or trying to Passwall North into the Temple, which takes even MORE time]

-Lucky Floor 4 leaving you with a good chunk of MP? Maybe skip the fountain and go straight to 5 and have at it? 1-3 seconds savings there.


If this damn FCEUX error gets fixed, or someone manages to be able to fix the movie I recorded... it's going to be a humdinger of a run to see.

Video is 41m52s. Of that, approximately 2 mins was spent rolling, about 20-30 seconds of menu errors, misstep in Level 10 by 3 squares [I wish it was to avoid an encounter... sadly that is a frame thing as well!] and genuine bs where I had to detour for the fountain on Level 13 due to low level. So yeah.. just a bit over 39 minutes after rolling! A REAL TAS will be able to force 3 Wizard Wand drops, manipulate misses, minimize menu time and movement more efficiently, and will wail on the Dragon in a manner in which it only can. I'd dare say Sub 35 for a TAS is possible.

For an actual run of this game for submission? Sub-57 is great and submission worthy. Sub-54 is incredible and.. dare I say it? Sub-50 is absolutely insane luck! I'd submit anywhere from 53-57 minutes. Less then that is really pressing for luck big time. It's doable alright... but you might have better luck rolling 14-14-14 for 4 characters in a row within a minute.

Of course, watch Feasel go nail a sub 53 now Smiley I mean not long after I said sub 59 did he nail the 56:33! Wink


Mr. Kelly R. Flewin
Edit history:
Dragondarch: 2012-08-28 01:30:03 am
Pudding%
I'd actually like to post a few findings I made in a recent casual playthrough:

-After watching Feasel roll up characters as often as I have, I've noticed some good rolls get passed over because he held the B button down a little too long. I found that if you just tap it (almost like a light slap) that you can increment the roll by 1, thus having the opportunity to see every roll that passes. While not a huge timesaver, I was able to get 3 characters with average 13 or higher for stats relatively quickly.

-RE: Hitting directions in battle: It definitely does something. I don't know if it increases damage at all, since that's almost impossible to measure in real-time, but it does affect accuracy. In general, holding UP (aiming for the head) will decrease accuracy. Depending on what enemy, this effect can range from extreme to not even noticeable. For instance, Goblins (any color) are nearly impossible to hit in the head (even though their noggin is as big as the rest of their body...but that's a completely different argument...). Knights are also hard to hit with UP, but not as bad as Goblins.
Holding DOWN is a real anomaly. This one varies wildly from creature to creature. Bats, for instance, are HARDER to hit with down (and just as hard to hit with UP). Some creatures seem to be easier to hit with DOWN though, or at least are no different than default. Also, for some stupid reason, holding DOWN when attacking Knights seems to be better than default...note that I have no proof to back this up, only a "feeling." Really though, the holding of directions I think is going to need some TAS examination to determine exactly what's going on with it. Outside of accuracy, it didn't FEEL like I was doing any more damage (ignoring the low accuracy for now), but that doesn't mean a lot when trying to examine in real-time.

-The Dragon can miss. With an AC of 16+ on everyone except one Magician (who had a 12), the Dragon's hit rate was somewhere in the 50-66% range. Granted, I was level 16, so that probably helped a lot too, but he most definitely can miss. With the AC of a typical speedrun though, the Dragon probably won't miss, or if it does it will be super rare.
Edit history:
Solairflaire: 2012-08-28 03:30:24 am
I've done some testing on stats. I mostly just used the floor 1 monsters cause they are the most convenient.

Strength - It does affect damage of all classes evenly. Between 10-14 strength didn't seem to do anything on floor 1. Lower, I noticed there being a difference. There might be noticeable differences when you get higher damage weapons.

Intelligence - This affects the speed of your characters in battle. With high enough speed, it's possible for characters to get extra turns in before enemies. If the dragon goes multiple times in a row, it's probably because your Int sucks (which can be random because of level ups). Low Int is bad because enemies go more often. Note: efficiency of weapons also effects speed, but doesn't appear to have any effect on accuracy.

Agility - Affects hit rate and avoidance of attacks. I made a party with all 2 Agi and they had to level up just to have a shot at the guards at the end of floor 1. Though, even with acharacter at high Agi (read 18+), hitting the dragon without deadeye is difficult.

Oddly, the manual seems to actually be correct about the stats.

Quote from Dragondarch:
-After watching Feasel roll up characters as often as I have, I've noticed some good rolls get passed over because he held the B button down a little too long. I found that if you just tap it (almost like a light slap) that you can increment the roll by 1, thus having the opportunity to see every roll that passes. While not a huge timesaver, I was able to get 3 characters with average 13 or higher for stats relatively quickly.


The RNG (at least during character creation) appears to be constantly going, changing every frame. This means being 1 frame late can result in missing that perfect roll anyway. It's also possible that you see multiple rolls getting combined and think they are a good single roll. I just tap the button and it takes the same amount of time for me to get decent rolls as it takes Feasel who holds the button down.

Quote from Mr. Kelly R. Flewin:
-What does this mean? Possible new strategy time. Ignore the 1000 experience on Level 9. Considering every grouping on Level 13 that is a REQUIRED fight is almost 500 experience [if not more] a go, that's almost 2000 experience points gained without deviation. [Unless you use the fountain on Level 13, but still]


The minimum amount of xp you can get on the floor 13 forced encounters is 490 from the snakes. The most is 700 from the skeletons. 525 from bats and wizards. 560 from axemen. To get 1600 on that floor requires
2 axe men and another encounter, or 2 bats and axe men. Or skeletons and 2 whatevers. This assumes you level to 5 on the first forced encounter. If you don't, you can't hit level 6 on floor 13 forced encounters alone.

Quote from Mr. Kelly R. Flewin:
A REAL TAS will be able to force 3 Wizard Wand drops, manipulate misses, minimize menu time and movement more efficiently, and will wail on the Dragon in a manner in which it only can. I'd dare say Sub 35 for a TAS is possible.


A TAS would probably use a wizard, 2 thieves, and a warrior, if not just 3 thieves. Remember that thieves have an insta kill mechanic that a TAS would abuse religiously. A TAS would probably get under 30 min easy. Even with rolling time counted against them.

I also messed around with getting the ruby glasses just before floor 13. To make it efficient enough, you need to get the bronze key on lvl 6 and fight a forced encounter on floor 8. The only real route change is going from floor 5 straight to floor 6, using passwall to get the key, and using passwall from below the "trap" room on 6 to get into the trap room so you can get into the "secret area" with the ruby stuff there. The fixed encounter on floor 8 is actually a pretty easy one really. You also have to cast passwall more on floor 1 after you get up there to get to the ruby glasses and to get back to the Black Crystal dude. It doesn't feel faster, just different.

I would also like to mention that it probably isn't worth throwing away the gold key (and the bronze if you decide on that change). You should have more than enough inventory space for it and it puts some of the ruby stuff closer to who you'll probably want to have it anyway. I also just sell off my warriors stuff when I'm at the shop on floor 5. He gets better stuff soon anyway.
Learning to Stream
FINALLY!!! FINALLY I GOT A RUN WORKING!! This concept run wasn't quite as fast as attempt #4... but Number 5 IS ALIVE! [Just no drops from the Dragon, much to my dismay] Thank you to SolaireFlaire for route revisements earlier on and Feasel for hosting so much awesome streaming. Thank you to EVERYONE for their thoughts on everything with this run! It's helped hone this route to what it is.


ANYWAYS, First you will require FCEUX 2.16 Interim SVN 2620 which can be found here;

http://fceux.com/zip

And now for the concept run itself!

http://dehacked.2y.net/microstorage.php/info/1250321623/Swords%20%26%20Serpents%20-%20Don%27t%20Take%205%2C%20Take%20What%20You%20Want%20To%20Take.fm2


Yes... it is a long name. Points to anyone who gets the reference as well.

Anyway... let me begin with the basics.


-3 over the necessary amount for Level up after the Guard fight, but meh.

-Drops are EXTREMELY frame dependent. The first 2 battles had drops and I did nothing to manipulate those. I re-recorded a few times after the guard fight to see what would happen and I cycled 3 different drops. [Leather, Helmet, Sword] The timing though is thus... When it shows Experience / Gold and NOT a level up... Pressing A on the correct frame gives you the loot. When you Level UP! When it tells you that you've been promoted, THEN Pressing A on the correct frame gives you loot. This is the biggest piece of garbage RNG in a normal run... good to know for a TAS.

-The Wizard Wand drop was a total non-manipulated fluke and was totally awesome! Ditto with the Red Staff later on!

-See those pauses? Partly from saving the game, partly luck manipulation to ensure unawanted / undesired encounters stayed away. Also annoying as hell... but sometimes, I genuinely had good l

-Yes... I TOTALLY botched the shopping.. that damn Wand drop messed me up.. and Helmet.. this was the worst menu running I've ever done x.x;; Soleyly was the cause of a good 1 minute of wasted time.

-I skipped the 1000 experience on purpose for this run.. and you can already notice how much faster that runs.

-You can now see my preferred path on Level 11. I think it honestly saves time with less twists and turns.. and no 1 second pause from the fountain or fill. Death Warp right away means it's useless.

-Level 13 - Damn RIGHT I manipulated those damn Serpents! Also did another Dead Eye / Strength on my Magician with the Red Staff and it made a HUGE difference! Also hit Level 5 right before the last encounter, proving this is the most bare bones level you can pull it off.

-Level 14 and 15? Textbook thanks to Feasel! Don't know how I missed something so obvious in my first playthroughs.

-Dragon... that was my 2nd re-record... and by golly I was shocked how well that went! Every member having the DE / S combo and attacking before it did. Went very well till the end.. but still saddened I could not make it drop a treasure like it did last time. x.x;; I swear I was NOT imagining it!


SDA Timing? Just a hair under 40 minutes. [39.84 minutes]

Considering the drop manipulation... a TAS could skip shopping ENTIRELY, skip the Mithril Chain entirely [Magic Plate force dropped, Plus 3 Sword force dropped, Wizard Wand force dropped] and everything but the Gold Key and Ruby items, Major Heal [directly on the path and quicker then forced encounters] and the Black Crystal. It will destroy the Dragon on Level 5 without a spell required... and yeah.. Magician and 3 Thieves or Magician, Thief and 2 Warriors and enough drops of awesome weapons to decimate with sounds about right. Of course AC will be useless as it will manipulate criticals and battles, and the Dragon doesn't care about AC enough... not that it will probably have much of a chance to attack [Not sure if it'd be possible to kill it without it attacking once]

Sub 35? Maybe even Sub 30 with all the right moves. NOT sure if name length has any effect on RNG or other... probably does for Last Resort, but blah... I chosee what I chose for a reason and I will stick to it till then.

A far cry from the days we wondered if Sub 2hrs was possible.


Mr. Kelly R. Flewin
Edit history:
feasel: 2012-08-30 04:21:31 pm
feasel: 2012-08-30 04:16:29 pm
feasel: 2012-08-30 04:07:49 pm
difficult and stupidly random
I really enjoyed watching the TAS.  It's strangely satisfying to see the levels traversed without running into monsters.

Skipping the 1000XP on floor 9 -- Definitely saves time on floor 9, but then you end up fighting the floor 13 encounters at level 4 and the dragon at level 5 (instead of 5 and 6 respectively).  For TAS this is obviously the way to go, but for a realtime speedrun i'm not sure this is viable.

Floor 7 -- This route is interesting, but not faster.  Same number of steps as my route, but with an additional passwall.

Floor 11: passwall west instead of walking south through the fountain -- I considered this, but it seems to me that the cost of casting passwall pretty much cancels out the 2 extra turns, 2 magic points restored, and 20 frames to draw the fountain message.  In fact i would estimate that passwall-west is slower (since it costs about 3 seconds to cast passwall).  Plus, as a (tiny) addded bonus, if you go thru the fountain you get 1 square where you're guaranteed not to get a random encounter.

DeadEye/Strength -- I agree that it makes sense to cast these on 1 of the 3 mages in the floor13 fights.  I don't do any more than that because conserving magic is important.  For the dragon fight I usually also do 1 mage.  Unless you get back-to-back turns, the other 2 mages are busy casting majorheal, so typically only 1 mage attacks.  Plus it costs a lot of menu time to cast those 8 spells, and you have to get lucky and get multiple turns in a row (otherwise you get 3 casts on the first round, and only 1 cast on each additional round because two of your mages have to cast majorheal -- so 6 rounds before the strategy reaches maturity).  Typically my best dragon fights only last 3-4 rounds anyway, and it's the warrior that does almost all the damage.  That being said, though, it probably does bear experimentation.  I may try doing all 3 mages and see how i like it.  Or maybe 2 is a good compromise?  The fact is, the fight is so amazingly random that all of this strategizing may just be a drop in the bucket.  If a warrior with DE/S hits the dragon on 3 rounds, the fight is over, regardless of what the mages do.  If the warrior keeps missing, the fight will last a long time, regardless of what the mages do.  TBH I'm seriously considering not casting DE/S on any of the mages at all.

Rolling characters -- I'm not sure where the idea came from that i'm holding the B button instead of tapping it.  It may not be a frame-perfect micro-tap, but i'm certainly tapping.  Solairflaire is probably correct that it's an artifact of the stream quality that makes it seem like multiple rolls are blending together.  Also, the argument that you're "missing rolls" by hitting the button for more than 1 frame at a time is deceptive.  Alternatively you could argue the opposite: that you're "missing rolls" by only looking at the first N consecutive outcomes rather than skipping a few in order to go further into the search space.  Both arguments have a whiff of truth but miss the bigger picture.  You may lose a couple frames by not doing perfect 1-frame taps, but the time spent rolling (maybe 5 frames per roll?), is dwarfed by the time it takes to actually look at the roll and make a decision.  So whether you're trying to do 1-frame taps or not, you're still basically looking at the same number of outcomes.

Anyway, MKRF, that is a great theory TAS.  If random encounters are absent, and you get easy enemies for all the fixed encounters, it looks like 40 minutes is a good time.  For purposes of a real-time run I'd say that around 50 is achievable (though even that will require tremendous luck).  I'd estimate a hard-core TAS would be around 25 minutes (luck manipulation in combat, 3 thieves crit-hitting, no shopping, floor5 deathwarp, no floor1 deathwarp/refill, and various small things).

This game is getting hammered.  I love it.
Learning to Stream
@Feasel - Interesting points for Level 11, as I never quite thought of the free space as worth it as you have to pump A.

-The Dragon fight does make more sense.. just figured if I luck out, why not take the chance so there's more chance at hitting and less chance of overdoing Major Heal and spending more time x.x;;

-I still think Level 5 IS viable.. the thing is, as you pointed out, the Dragon is major ridiculous in its randomness. As you saw though, the attacks don't KO your party, but a second round in a row would... just like Level 6 would. But your other point of Level 13 makes it a real roll of the dice whether it'd be doable as at that point is where it all can come to pieces. x.x;


Mr. Kelly R. Flewin
Edit history:
feasel: 2012-08-30 06:37:18 pm
feasel: 2012-08-30 06:36:19 pm
feasel: 2012-08-30 06:33:24 pm
difficult and stupidly random
I agree about level 5 game-end being possible.  And it's not the dragon that i'm concerned about.  You have plenty of magic to spare, and the dragon is so damn random anyway, i really doubt there's much of a difference between fighting him at 5 or 6.

Floor 13 is the real concern.  Without the 1000XP you'd reach level 5 after the 2nd or 3rd battle (depending on whether you killed enough random enemies to reach level 4 before the first fight - which sometimes happens and sometimes doesn't).  Magic is tight (you'll only have the MP of a 3rd or 4th level party to work with, instead of 5th level), and having less max HP would totally bite you in the ass.  These limitations will probably make the Floor 13 fights slower (more healing, etc), and if it ends up lengthening Floor 13 by 20-30 seconds then you've already lost the time you would have gained by skipping the 1000XP.  Plus don't forget that the optional fountain costs 8-9 second minimum to use.  When you're level 6 there's a decent chance you won't have to take it.  But if you begin Floor 13 at level 3 or 4, you're almost guaranteed to have to spend those 8-9 seconds.

Also -- most importantly -- and i never get tired of saying this...
THE GAUNTLET PRINCIPLE:  When a speedrun contains enough randomness, there is a point where you're better off using safer/slower strats and getting a higher rate of successful completion.

And I have never in my life seen a speedrun where RNG causes as much time variation (completely beyond your control) as Swords And Serpents.  The route that i've been using (with no deaths) will get around 58 minutes average, around 40 minimum, and maybe 70 maximum.  So that's a 30 minute range on a run that's only about an hour.

So the Gauntlet Principle applies so hard here that it should probably be renamed The Swords And Serpents Principle.
difficult and stupidly random
52:13
http://www.twitch.tv/feasel/b/331132258

Nice RNG.  Slight changes in route and floor-13 strats.  Sub 50 definitely possible.  Whether i go for it now or try again later this year is yet to be determined.
Edit history:
gyre: 2014-06-05 12:39:43 am
I've been working on breaking down the game algorithms and promised to post notes on the mechanics.

First post is data on how the game memory is laid out.

Like most NES games zero-page memory is used heavily especially in the combat routines.  Here are some offsets I found useful (locations in hex):

01E    Frame counter (0-60)
01F    Second counter (0-60, increments when 01E flips)
020    Minute counter (0-60, increments when 01F flips)
021    Hour counter (0-23, increments when 020 flips)
022    Counter (increments when 01E flips)

064    Player1 Initiative
065    Player2 Initiative
066    Player3 Initiative
067    Player4 Initiative
068    Monster1 Initiative
069    Monster2 Initiative
06A    Monster3 Initiative
06B    Monster4 Initiative
06C    Monster5 Initiative
06D    Monster6 Initiative
06E    Monster7 Initiative
06F    Monster8 Initiative

070    Party Hit Roll
071    Party Evade Roll
072    Party Damage Roll
073    Monster Hit Roll
074    Monster Evade Roll
075    Monster Damage Roll

083    Number enemies
085    Active Monster
087    Active Player

09C-09D Treasury
09E-09F Experience
0A0    Exp. Level

0A2-0A5 RNG scrambling bytes
0E0-0EF Scratch space
0F0-0FF Temporary table pointers

Character data is stored at 600 with 20 offset between each record:

00-05  Name
06      Strength
07      Intelligence
08      Agility
09      Health
0A      Spell Points
0B      Profession
                (00- Magician)
                (01- Warrior)
                (02- Thieft)
0C-11  Inventory
                (| 80- Equipped)
                (00- Jewel)
                (01- Sword)
                (02- Dagger)
                (03- Broadsword)
                (04- Axe)
                (05- Staff)
                (06- Leather)
                (07- Shield)
                (08- Halberd)
                (09- Plus 2 Sword)
                (0A- Long Sword)
                (0B- Great Sword)
                (0C- Great Axe)
                (0D- Wizards Wand)
                (0E- Scale)
                (0F- Helmet)
                (10- Ruby Glasses)
                (11- Plus 2 Sword)
                (12- Horseshoe)
                (13- Gold Key)
                (14- Mirror Shld)
                (15- Silver Sword)
                (16- Red Staff)
                (17- Death Dagger)
                (18- Silver Helm)
                (19- Chain)
                (1A- Glow Cloak)
                (1B- Glow Sword)
                (1C- Mage Staff)
                (1D- Plate)
                (1E- Mage Cloak)
                (1F- Ruby Ring)
                (20- Ruby Shield)
                (21- Ruby Helmet)
                (22- Mithril Chn.)
                (23- Brass Key)
                (24- Ruby Crown)
                (25- Blood Dagger)
                (26- Rope)
                (27- Spell Staff)
                (28- Quickblade)
                (29- Plus 3 Sword)
                (2A- Mithril Shld)
                (2B- Crush Mace)
                (2C- Magic Plate)
                (2D- Mage Ring)
                (30- Shovel)
                (31- Fire Sword)
                (32- Fire Shield)
                (33- Ruby Sword)
                (3A- Blk Crystal)
                (3B- Ruby Amulet)
                (3C- Plus 1 Sword)
12-13  Spells Known
                (| 0100- Heal)
                (| 0200- Flash Fire)
                (| 0400- Sting)
                (| 0800- Shield)
                (| 1000- Deadeye)
                (| 2000- Death Mist)
                (| 4000- Strength)
                (| 8000- Passwall)
                (| 0001- Thunder)
                (| 0002- Viper)
                (| 0004- Phalanx)
                (| 0008- Stun)
                (| 0010- Major Heal)
                (| 0020- Flight)
                (| 0040- Regenerate)
                (| 0080- Crystallize)
14      AC
15      Maximum Health
16      Maximum Spell Points

In combat monster data is stored at 680 with 16 offset between each record.  Don't have the record layout typed up yet.

When mapped item data is stored at 8000 with 16 offset between each record.  This is paged from ROM so isn't always available.

00-0B  Item Name
0C      Initiative
0D      To-Hit
0E      Damage1
0F      Damage2
10-11  Cost
12      Armor Class
13      Foes Hit Min
14      Usable By
                (| 01- Magician)
                (| 02- Warrior)
                (| 04- Thief)
15      Foes Hit Max

Efficiency = Initiative + To-Hit
Damage Class = Damage1 * Damage2
I'm not a LUA expert but I've got a WIP script for displaying the raw combat stats.

function PlayerStats()
    for curplayer = 0, 3, 1 do
        local initiative = memory.readbyte(0x64 + curplayer)
        local hp = memory.readbyte(0x609 + 0x20 * curplayer)

        local ypos = 1 + 10 * curplayer
        local stats = string.format("P%u Initiative %u HP %u", curplayer, initiative, hp)
        gui.text(1, ypos, stats)
    end
end

function MonsterStats()
    local maxmonster = memory.readbyte(0x83)
    if maxmonster > 8 then
        maxmonster = 8
    end

    for curmonster = 0, maxmonster - 1, 1 do
        local initiative = memory.readbyte(0x68 + curmonster)
        local hp = memory.readbyte(0x684 + 0x10 * curmonster)

        local ypos = 1 + 10 * curmonster
        local stats = string.format("M%u Initiative %u HP %u", curmonster, initiative, hp)
        gui.text(140, ypos, stats)
    end
end

function CombatResults()
    local ypos = 91
    for i,str in ipairs(combatstrs) do
        gui.text(1, ypos, str)
        ypos = ypos + 10
    end
end

amonster = -1
function ActiveMonster()
    amonster = memory.readbyte(0x85)
end

function UpdateCombatResults()
    local n = table.getn(combatstrs)

    local aplayer = memory.readbyte(0x87)

    local tohit = memory.readbyte(0x70 + 3 * lastcombat)
    local evade = memory.readbyte(0x71 + 3 * (1 - lastcombat))
    local damage = memory.readbyte(0x72 + 3 * lastcombat)

    local hit = false
    if lastcombat == 0 then
        hit = tohit >= evade
        attacker = string.format("P%u", aplayer)
        defender = string.format("M%u", amonster)
    elseif lastcombat == 1 then
        hit = tohit > evade
        attacker = string.format("M%u", amonster)
        defender = string.format("P%u", aplayer)
    end

    damagestr = string.format("%s To Hit %u vs %s Evade %u", attacker, tohit, defender, evade)

    if hit then
        damagestr = damagestr .. string.format(" (%u damage)", damage)
    else
        damagestr = damagestr .. " (miss)"
    end
    combatstrs[n] = damagestr
end
memory.registerwrite(0x75, UpdateCombatResults)

function NewCombatResult()
    table.insert(combatstrs, "")
    if table.getn(combatstrs) > 6 then
        table.remove(combatstrs, 1)
    end
end

function PlayerAttack()
    ActiveMonster()
end
memory.registerwrite(0x70, PlayerAttack)

function PlayerEvade()
    if not incombat then
        lastcombat = 1
        incombat = true
        ActiveMonster()
        NewCombatResult()
    end

    UpdateCombatResults()
end
memory.registerwrite(0x71, PlayerEvade)

function PlayerDamage()
    ActiveMonster()
    UpdateCombatResults()
end
memory.registerwrite(0x72, PlayerDamage)

function MonsterAttack()
    ActiveMonster()
end
memory.registerwrite(0x73, MonsterAttack)

function MonsterEvade()
    if not incombat then
        lastcombat = 0
        incombat = true
        ActiveMonster()
        NewCombatResult()
    end

    UpdateCombatResults()
end
memory.registerwrite(0x74, MonsterEvade)

function PlayerInitiativeChange(address, size)
    incombat = false
end
memory.registerwrite(0x64, 4, PlayerInitiativeChange)

minitiative = {}
function MonsterInitiativeChange(address, size)
    local initiative = memory.readbyte(address)
    if minitiative[address] == nil then
        minitiative[address] = initiative
        return
    end

    local initiativechange = initiative - minitiative[address]
    if ((not incombat) or (lastcombat ~= 1)) and initiativechange >= -5 and initiativechange < 0 then
        NewCombatResult()

        local n = table.getn(combatstrs)
        combatstrs[n] = string.format("M%u passed", address - 0x68)
    end
    incombat = false
    minitiative[address] = initiative
end
memory.registerwrite(0x68, MonsterInitiativeChange)
memory.registerwrite(0x69, MonsterInitiativeChange)
memory.registerwrite(0x6A, MonsterInitiativeChange)
memory.registerwrite(0x6B, MonsterInitiativeChange)
memory.registerwrite(0x6C, MonsterInitiativeChange)
memory.registerwrite(0x6D, MonsterInitiativeChange)
memory.registerwrite(0x6E, MonsterInitiativeChange)
memory.registerwrite(0x6F, MonsterInitiativeChange)

lastcombat = -1
incombat = false
combatstrs = {}

emu.speedmode("normal")

while true do
    if lastcombat == -1 and memory.readbyte(0x15) == 2 then
        lastcombat = 2
    end

    if memory.readbyte(0x86) > 0 then
        combatstrs = {}
        lastcombat = -1
    end

    if lastcombat >= 0 then
        PlayerStats()
        MonsterStats()
        CombatResults()
    end

    emu.frameadvance()
end
Finally, some of the combat mechanics.

The basic turn order uses an initiative system.

Each of your characters has a starting initiative = random[0,9] + agility + intelligence + weapon initiative + currentHP - maxHP.

Monsters have a simpler formula replacing the non-random components with a value in the monster record.

The current turn is based on the highest initiative.  In case of ties, monsters (in their order 1, 2, ...) go first followed by player characters (in their order).

Taking a turn drops your initiative by 5 (set to 0 if you had a positive score but less than 5 points left).  When everyone's initiative reaches 0, the initiative round is over and the numbers are all rerolled.  Monsters can choose to pass their turn which deducts from initiative without taking an action.

There are 2 major bugs with how initiative works.

The first bug is the initiative underflow glitch.  This is a really good bug.  You'll notice that your initiative is penalized by the amount of damage you've taken.  If all of the other factors are bad you can underflow to 255 initiative.  Since each turn costs 5 initiative this often gives you 30+ turns of action in a row before anyone else gets to go.  Unfortunately your bad stats will make the character suck so it requires careful building.  The best way to exploit it is using a warrior at 2 intelligence with a low-initiative weapon that has high to-hit (luckily the Ruby Sword fits this) and with as much agility as you can get away with safely.

The second bug is the zombie attack glitch.  This is a really bad bug.  When a monster gets killed, it's initiative gets set to 0 to take it out of combat.  Monster HP is never checked again so when the initiative round ends dead monsters get a new initiative value just like everyone else.  This lets all of the dead monsters rejoin combat and start attacking again.  Since they're already dead there's no way to kill them again to stop it from happening.

For party members the basic combat formulas are:

to-hit = random[0,9] + agility + weapon to-hit
evade = agility + AC

Your attack is successful if player to-hit >= monster's evade.  The other way around it's monster to-hit roll > player's evade.

When calculating to-hit monsters roll a random[2,12] choice.

If 2 <= random < 11 then to-hit = random + monster base to-hit
if random >= 11 then to-hit = 128 + monster base to-hit

This gives monsters a devastating ability to bypass your evade.  It's basically impossible to build an invulnerable tank warrior because better armor stops making a difference once you're 10 points over the monster's base to-hit.

Pushing buttons in combat has been a long-standing debate.  The only code I can find is when you're pushing up while attacking.  That gives the monster +4 to their evade but does an extra die of damage if the attack hits.  The best way to use this is against monsters that have crummy evade so you're always hitting them anyway.  Outside of a TAS it's probably not a good idea for most encounters.
Learning to Stream
Thanks for the info Gyre. I cut n paste this [with mention this was all your work and info] to the TASVideos forum. I hope someone will become interested.