Posts for ais523


Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
JSmith wrote:
Well, driving Water Demons/Djinn extinct would be kind of entertaining... Back to speedrun tactics, is it possible to manipulate a monster holding the Amulet into using a cursed scroll of teleportation as an escape item? Or for that matter, is it possible to kick/manipulate one into a level teleport trap?
It is possible to manipulate them into doing that, but unfortunately it doesn't help, because the Amulet blocks the level teleportation for monsters just as it does for players. (Otherwise, people would do it even outside TASes, because the manipulation in question is not massively difficult.)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
eternaljwh wrote:
Raiding vaults and levelling back down to 1 so you can racket somewhere might be one thing to do. Then eating some rings of protection? Get some of the remaining intrinsics. Magic Breathing and Telepathy seem like the important ones. (The main use for Magic Breathing being not-caring about gorging yourself.)
This is a speedrun, and a TAS, thus no real reason to eat (speedrun: not losing much nutrition over time; TAS: don't really need intrinisics other than the ones we already have). Also, magical breathing is redundant two different ways: we can always polymorph into something with it if we need to overeat or go underwater (and have, in fact, walked along the bottom of the Castle moat in the part of the WIP already done), and you have a 5% chance of surviving overeating even without it, which can easily be manipulated to occur. Telepathy is redundant to the better monster detection, which I'm actively training so as to be able to leave it on constantly (it's far from necessary for the actual TAS, but allows people to see what's going on rather than to have to watch blind, which isn't particularly entertaining). I might get clairvoyance for the same reason.
Polymorphing some nondirectional wands (with max 15 charges manipulated) into death wands would be potentially useful, particularly for breaking them (240 damage to living nondemons, area).
We can just use black dragon breath if we need to oneshot things before T:2000. Afterwards, there are exactly two monsters we have to kill (together with somehow evading Rodney on the plane of Earth, which may involve killing him, although I hope it won't come to that), and we need to find the very fastest way to do that. Most likely, it's to get a monster to kill them so as not to waste one of our precious turns.
ais523 wrote:
What we've done since, is to teleport to a shop on dungeon level 16 to pick up a magic lamp (used for a spellbook of detect monster,
Is that actually faster than manipulating the book to drop? After all, the only useful things you cannot get without wishing are other quest-arts. And only polymorph and wish stuff is what you can't polypile beyond that.
Manipulating a single rare item requires either the generation of an entire level to get a shop (and levels are in limited supply), or doing it as a deathdrop, which would require several seconds of waiting to get the drop, possibly even minutes. I'm trying to mix up the methods we use to obtain items for entertainment purposes; finding all the items we need in shops, wishing for them all, deathdropping them all, etc would be equally boring. (I'm also mixing up wish sources somewhat.) In terms of pure turncount, wishing or writing is by far the fastest way to get anything, in general. (I plan to write some spellbooks; I have a marker and some blank spellbooks in our stash on dlvl 16. But I need to fix luck first, as it would take boringly long to manipulate the write working otherwise.)
Speaking of, Eyes of the Overworld might be a good idea, though Detect Monsters will be more useful once you hit that. Slotless MR - though I guess you don't actually want that, since you'll be jumping into polytraps and levelporters!
The Eyes are necessary for speed, allowing blind polyforms (such as air elemental form) to see, and thus to jump. I have the spell of detect monster already, for entertainment reasons (the turns spent practicing it are pre-2000 and so don't cost anything, and it makes it possible to see what's actually going on); additionally, in times when I need to wait a turn no matter what, I can use the turn to practice spellcasting, so several casts of detect monsters have thus far been used to waste time. I'll do something similar with haste self later on.
What's the inventory look like now anyway? Are rings of protection edible this game?
I dropped my entire inventory on dlvl 16, apart from the cursed scrolls of teleport. So my inventory is 4 cursed scrolls of teleport, that's it. I plan to clear Gehennom like that, because completing the last dungeon before the endgame with no useful inventory is obviously absurd. As for rings of protection, I'm not sure; you seem to be fixated on AC, which is relatively irrelevant in a TAS (as we have enough HP to survive anything in natural form, and can pick high-AC polyforms in cases where combat is actually necessary; a much smaller part of the game than you might imagine...)
Does confused PYEC-invocation charge you up like the scroll would?
No, it doesn't. There is another source of a full Pw refill in the game, though (one of the unlikely results of magic traps), which is likely more fun to watch than confused charging. Not that we really need a Pw refill anyway...
lessee..29*135 = 3915. Might want to boost your Pw some more? Probably not, since the Amulet is unlikely to worst-case every Jumping.
I suspect we have easily enough Pw.
Fountains are not infinite wish engines hmm, the wiki does not mention whether it respects extinction of water demons, and I'm not familiar enough with the code to check.
It both contributes to and respects extinction, so yes, fountains are limited to 120 wishes total. I assure you, though, we have no shortage of infinite wish engines should we actually need them. And anyway, 120 wishes is quite a lot; I can't even think of uses for that many wishes.
Entertainment Are wands of wishing edible this game? Cleaning out Ludios in your spare time could boost entertainment value. While expert attack spells would probably be fastest, disintegration-breath would probably be a better, more-accessible alternative. (Manipulating the dragons to do it themselves?)
Wands of wishing are (platinum, as a xorn or rock mole), but eating one would be kind-of awkward (xorn is really awkward form to TAS in for several reasons, and rock moles have negligible carry capacity). Also, everyone seems to have different opinions about entertainment. I don't think doing optional quests "just for the sake of it" because there's time to do them before T:2000 is a particularly interesting idea, nor is being wasteful just because we can. Besides, both of those are entirely possible with normal play; neither really shows off the power of a superplay. What I'm mostly doing for entertainment are things that are a) obviously useful in speedrunning, even if they aren't strictly necessary in this speedrun, and b) impossible in regular play; some things like this I've done already are getting thousands of HP and Pw without farming or life saving, doing a random level teleport directly onto a blessed magic lamp, and killing a shopkeeper at experience level 3 (done so that I could sacrifice his corpse to fix god anger), although the last of those is possible in realtime too if you prepare correctly. The fastest way to do Ludios, incidentally, is probably the safe_teleds glitch, unless it doesn't work on that level (I haven't checked). I imagine I could reach the treasure room in less than 10 turns, although clearing out the room itself would take a while. Gold is also almost worthless when you can deal with the shopkeepers as efficiently as a TAS can; there is a rather spectacular glitch with it, though, which I need to get around adding to the game resources page sometime (I agreed with its discoverer that I'd keep it secret until it was fixed on the major servers and in the major tournaments, although it is fixed now). The idea is that you can use an infinite-gold glitch (known for ages, and thought to be useless) to overflow your gold counter and gain negative gold, which then reduces the weight of your inventory, effectively leading to an infinite carry capacity glitch. Under such circumstances, clearing out Ludios would probably even be counterproductive...
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
What were the speed/entertainment tradeoffs? Just forgoing the save corruption glitch (in which case they probably shouldn't be listed as that's part of the category), or something else?
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
Here's a WIP from a few days ago: http://sonic.net/~ac/tas/nethack_tas.mkv (note that that account, dwangoAC's, has a relatively small download cap, so don't download it unless you're interested in it); that encode, by Ilari, has actually been slowed down to make it easier to watch, but it's still hard to see what's going on. (Feel free to ask if there's anything there you don't understand; I need to know what to explain in more detail in the submit message.) What we've done since, is to teleport to a shop on dungeon level 16 to pick up a magic lamp (used for a spellbook of detect monster, to make it possible to watch what's happening later on when we're in air-E form), to eat rings (we now have intrinsic controlled polymorphitis and teleportitis; TC was from a tengu, because the ring isn't edible this game), and to start practicing divination; nothing particularly amazing. (We've just oneshotted the shopkeeper; we're planning to teleport his corpse over to a coaligned altar on the level and sacrifice it to mollify our god.) We have several sources of wishes available, incidentally, some of which are infinitely self-sustaining; the simplest is likely just using a fountain, but you might be surprised by some of the others we plan to use later...
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
So, dwangoAC and I have been working on a WIP (with Ilari checking for sync problems), and this is our current situation: St:7 Dx:16 Co:3 In:19 Wi:12 Ch:4 Neutral Dlvl:26 $:0 HP:2222(8763) Pw:2625(3101) AC:10 Exp:2 T:159 We're at the Valley, and have just done a glitch to raise our max HP and Pw high enough to, hopefully, last the game. (If anyone thinks that these stats aren't high enough, we can go further; it would be good to know that now if that's the case.) We have the Castle wand, which has one charge remaining (the first two were used to gain items to perform the glitch with), and a scroll of charging to recharge it with; and now it's not obvious what to do next. One possible plan: I could try to gain experience levels now; the Valley is full of wraiths, after all. I'd be raising them with a mixture of wraith eating, and "failed" polymorph en route to the wraiths (bringing the max HP and Pw a bit higher); however, I'm in the central section of the Valley, quite a way from any of the graveyards, so I fear this might be rather slow and boring. Level gain is useful because we'll want enough extrinsic speed to last the game soon (partly, because we want expert jumping, and casting haste self trains jumping), and we therefore want to get good at spellcasting; also, we need to gain to level 14 anyway to unlock the Quest. Alternatively, we could wish for 5 cursed scrolls of teleportation, and just go wherever we like, pretty much (we can go anywhere but the Sanctum, Quest beyond Home:1, and Planes). One problem is the matter of having only two ring fingers, and with a ring of polycontrol and a cursed ring of polymorphitis worn at the moment, we'd need to take one off, which looks a bit sloppy; ideally, we'd eat those at some point, along with our unworn ring of telecontrol. (The Valley is not really a particularly good place to eat food which is definitely cursed; but on the other hand, we have distance to cover if we stay there. Telecontrol can also be achieved by gaining level to level 15, a good reason to stay on the Valley to level rather than go elsewhere immediately.) There's also the issue of where to go; we have glitches and sequence breaks to set up, but there's also the normal requirements of the game to think about. It's far from obvious what should come next. So I'm asking for help. Does anyone here have ideas for where I should go, and what I should do, next, and more importantly, why?
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
What you want to do is known as "rerecording"; you need to use a rerecording emulator (pretty much all TASes are made on them as they make things so much simpler). Basically, you make a savestate when you shut your computer off, then when you want to start again the next day or whatever, you load that savestate up again and it handles splicing together the bits of the movie for you. (The exact details vary between emulators, but ability to do that's considered vital in a good TAS emulator nowadays.)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
dwangoAC and I have been using VirtualBox to help us TAS NetHack. (Note that this incredibly far from sync-stable; it's just that NetHack syncs extremely well, regardless of pretty much any timing differences, so all we really care about is savestates, which VirtualBox has already.) It turns out that disk access (to the host computer's disk, to save savestates) is not really an issue because loadstating is CPU-bound (taking a few seconds, but it's not massively annoying; it takes about as long to loadstate as JPC-RR does but runs much faster after that). Due to the way VirtualBox works, though, I'm not convinced that any typical TAS features - frame advance, loadstate, savestate, etc - can be done without at least slight desync issues. For instance, whenever we loadstate in NetHack, it takes a while for the network interface to come back up; NetHack doesn't care at all, but other games might, if only because it would change lag properties slightly. In general, I'm far from convinced that mere virtualisation, as opposed to emulation, can ever capture the entire state of the system properly.
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
eternaljwh wrote:
ais523 wrote:
cursed scroll of teleport and use it to get all the way down to the Castle, skipping the entire early- and mid-game. (This isn't quite a sequence break because I'm pretty sure it's deliberate that you can do that.)
Since they did code two exceptions, stopping you at the Valley of the Dead and the Vibrating Square level, it's very sure that straight-to-Castle should be possible. You have watched some of maud's (and nht's) ttyrecs on nethack.alt.org, right? The ones finishing in the 2100-2400 range? Should be instructive in some tactics.
Indeed, I even aided slightly in the routeplanning for nht's run. Arguably, it's even more instructive than maud's, due to getting pretty much every item it wanted much like a TAS would, although we're all indebted to maud for developing (and possibly inventing, I'm not sure) the polyself strategy in the first place.
Incidentally, I thought of a reason to want to get hit over not- "hits!" and "hits." are both shorter than "misses." This will, in combat-heavy situations, potentially lead to times where you can avoid a more-prompt. On the flip side, you can probably avoid any and all more-prompts by playing with very large terminal size, and being hit or missed presumably affects RNG usage by whether damage is calculated. (I have not looked at the source for this, so this last is mere conjecture.)
Terminal size is fixed on DOS; and going for purely gametime as a goal means that an extra --More-- won't be the end of the world (in fact, I manipulated a "just misses" in my WIP, creating an extra --More--, because it looks sloppy to get hit by an enemy that you could dodge).
Restful sleep would not be the most efficient way to not-act during turns, either. Cursory examination looks like bouncing sleep rays (wands/spell) is best with maximum potential of 300 turns. (Properly figuring out the Wis<12 duration of floating eyes would be good, as well as sleep-wand explosions,)
Polyselfing into a blue jelly with unchanging can manage turns continuously until you starve to death. (The issue there is getting out of the state again; you need to get a nymph to steal the amulet.)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
eternaljwh wrote:
rhebus wrote:
To ease luck-manipulation, get massive intrinsic protection.
What's the best way of doing this? Traditionally, one goes to ludios and loots it for all it's worth, but ludios is probably boring and time-consuming in realtime (all those messages) and turns. I think it's a choice between an early-game protection racket, eating rings of protection, or both.
Since you're going to be grabbing a huge stack of rings from a ringshop, =oProt are likely going to be faster. It occurs to me that you can pick up a (near) full set of resistances this way too. Restful sleep might save you some actions in the first 2000 turns (for a low-actions run, reducing it below 2000) but would require an air-elemental taxi or similar to not lose them back going through the Planes. T-itis and vaults for a protection run work fine too.
Actually, I think it's probably easiest to use the polyself glitch to get hundreds of thousands of HP and not worry about AC at all. Who cares about getting hit when it does minimal damage? Meanwhile, I've started on a WIP, using a set of "TASing" tools mostly written by dwangoAC (they let me savestate and loadstate NetHack games on Linux, but don't sync well enough to emulate most other games; I hacked Linux NetHack to sync with the DOS version). So far, we teleport straight from dlvl 1 to the downstairs on dlvl 2, go downstairs, walk to a massive ring shop, and pick up the rings that are really needed early (polymorph, polycontrol, telecontrol), although I'll have to redo the last bit because I saw a way to save a turn. With polymorph and polycontrol, it's trivial to kill the shopkeeper; the current plan's to luck-manipulate the shopkeeper to deathdrop a cursed scroll of teleport and use it to get all the way down to the Castle, skipping the entire early- and mid-game. (This isn't quite a sequence break because I'm pretty sure it's deliberate that you can do that.)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
eternaljwh wrote:
ais523 wrote:
Time for route planning for a (memory-corruption-)glitchless turncount run! (snip) Also, what isn't listed here that needs to be? I've almost certainly missed some things.
Light the candelabrum. Probably one of the last things you do before turn 2k, but still, you want to beforehand to be optimal.
How on earth did I forget that one? (You can attach a wax candle first to have it last a bit longer).
Have sufficient food eaten to last to the end of the game. Unfortunately, as you're going to be eating rings, you won't be able to ascend foodless.
Standard trick here is to use fruit juice, which can end up getting above the typical maximums for nutrition. On the other hand, we won't actually need that because we're going so quickly; a huge chunk of meat would probably do.
Maybegets: Get teleportitis. Optionally, get teleport control, depending on how much luck-manipulation you want. (It won't be useful in a turns-TAS, as you'll have zero times after Quest you want to teleport that you couldn't have manipulated on your level change, optimally. But it will help if luck-manipulating your ascent landing locations is too slow for a time-TAS)
Actually, I think you have this backwards. I don't see how teleportitis would help, because all the levels post-2000 where we'd want to move horizontally are no-teleport (apart from possibly fakewiz1, and that has a restriction on where you can teleport to). On the other hand, teleport control is needed to levport down more than 3 levels at a time, e.g. from the Valley to the Vibrating Square level.
To ease luck-manipulation, get massive intrinsic protection.
I'm less clear on this one; most of the time, if we're even in a position to be hit, it's because we want to be hit to pull off hurtle-movement. Ideally, we'd pick a value that let us manipulate hits or misses easily.
To ease luck-manipulation, get a wand of teleport (mainly for Astral path-clearing) Intrinsic conflict might save time, but mind your food.
These both factor into Astral strategy, and I'm still unsure what to do there yet.

What're you doing about Pw regeneration? It's ungodly slow for the most part, and the fastest methods (Mitre of Holiness, confused ? of Charging) aren't that convenient-luckmanipulating the Mitre's timeout seems like it would be best timewise, unless you can get convenient Umber Hulks and the like so you get a 1-move confusion just for reading that scroll to get your Pw back.
We aren't spending it much :). The only spell I foresee needing to cast post-turn-2000 is jumping, maybe not even that. If we do need massive amounts of Pw, we can pull off the failed-polyself glitch to get all the Pw we need (see any game on NAO which ends with more than 100,000 max HP or so, it produces similar amounts of Pw).
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
ALAKTORN wrote:
I wasn't planning on submitting it at first, since my first TAS was kind of a test run (the strategy wasn't final yet, and got completely overhauled now), but with the new knowledge I can plan a TAS to then be submitted; keep in mind that this TAS goes for in-game time, not real time like is usual for TASVideos, so I don't know if it can even be accepted
You can submit any category for a run you want here, especially if you justify yourself. Explain in your submission message why in-game time is a better or more interesting goal than realtime, and you're unlikely to have problems. (You should set the category name to "in-game time" when you submit, so people know which goal you're aiming for.) As for the music, leaving it on is likely better for entertainment purposes (again, mark this as a tradeoff). I take it that the game desynchs if you change the music status but otherwise keep everything the same? (If not, you could encode it both ways round.)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
Time for route planning for a (memory-corruption-)glitchless turncount run! Which order do people think the following absolutely essential pre-turn-2000 tasks, listed in the order I thought of them, should be done in? ESSENTIAL TO COMPLETE THE GAME A. Get to level 14. (Required to unlock the Quest.) B. Get the Candelabrum from Vlad the Impaler. (Required to unlock the Sanctum.) C. Get the Book of the Dead from the Wizard of Yendor. (Required to unlock the Sanctum.) D. Get 7 candles, of any type. (Required to complete the Candelabrum so that it can unlock the Sanctum.) E. Attach the candles and the candelabrum. ESSENTIAL TO GET MINIMUM TURNCOUNT F. Get at or near 19 alignment. (20 alignment is required to unlock the Quest but you can't get the 20th point before turn 2000; we don't want to waste time getting the other points afterwards.) G. Get controlled polymorphitis. (Necessary to shift between polymorph forms without wasting action; pretty much all speed tricks require specific polymorph forms.) H. Obtain sufficiently many cursed potions of gain level. (I'm not sure of the exact amount, it's around 40, probably a bit more, less with luck manipulation on the way up; necessary as they're the fastest method of vertical travel with the Amulet, barring sequence breaks.) I. Create a storage system for the potions of gain level that allows them to be picked up on the way up without losing time. (Because we can't carry them all at once without slowing down due to the weight; suggestions for an optimal storage system are welcome, although just placing them on selected downstairs would work with sufficient luck manipulation, I think.) J. Set up the sequence break in the Wizard's Tower. K. Set up pets for the purpose of killing the Dark One on a monster's turn. (Perhaps not possible, although I hope it is.) L. Set up pets for the purpose of killing the High Priest of Moloch on a monster's turn. (Ditto.) M. Accumulate enough turns of timeouted speed (via potion or spell) to last to the end of the game. (Obviously saves time.) N. Acquire any items necessary for sequence breaks (wands of wishing for Air, etc.) Also, what isn't listed here that needs to be? I've almost certainly missed some things.
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
goldfish wrote:
ais523 wrote:
As a direct response to Nach's comment, this fails as a speedrun (obviously, too much waiting) ... I'd suggest removing the lowest-score goal, and abandon all pretence that it's a speedrun
This sort of argument keeps appearing in the thread, and I totally disagree with it, because even though there is a lot of waiting, by definition this is absolutely a speedrun, as it achieves a specific, well-defined goal in the shortest time possible. To get the lowest score, waiting until the timer reaches zero is necessary. There are many published movies on this site that deliberately take a longer route and/or have unavoidable waiting periods for the sake of accomplishing a goal other than the standard Get-To-The-Credits-ASAP. I really think this meets all technical qualifications for publication in its current form, and the only matter to debate is whether it's just a boring goal choice - and I think it would be if not for the top-notch playaround entertainment - but I guess the current vote tally suggests most feel otherwise (bleah).
I don't mean it isn't a speedrun in the technical sense. I mean that the run isn't entertaining for the same reason that typical speedruns are entertaining. Imagine a typical glitchless TAS of a typical platformer, aiming for best speed. There's rarely anything there done specifically for entertainment (except in some cases with alternative routes, and autoscrolling levels), but many people, including me, enjoy watching them because a high level of technical perfection, knowledge of the game, and similar tricks, is needed to accomplish that sort of speed. In the case of any run (or section of a run) with a fixed completion time, that sort of justification for speedruns generally being worth publication goes out of the window. (Pretty much all TASes aim to be entertaining instead in such circumstances.) Now, what we have here is a run where certain levels are done as fast as possible (avoiding coins and enemies, which doesn't look particularly different to a typical warped run of the game), and other levels have a fixed duration due to the low-score requirements. If it were mostly speedy levels, with a couple of fixed-time levels, it would be much the same as a typical platformer with autoscrollers, making a decent speedrun (if rather too similar to existing speedruns of the game to really be worth watching). However, this particular run is so full of fixed-time levels that it no longer really contains those elements that make a speedrun interesting. That's why I say it fails as a speedrun, even though the time in question is likely the fastest achievable, or at least close to it. We don't publish things here because they meet the technical requirements to be a speedrun; we publish them because speedruns of many types of games (including platformers) tend to be fun to watch, for a certain set of consistent reasons. How well it works as a playaround is a different issue, but I've covered that already, and you haven't objected to me on that.
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
As a direct response to Nach's comment, this fails as a speedrun (obviously, too much waiting), but has merit as a playaround. Unfortunately, it's a bit repetitive to be interesting as a playaround, for me; removing the lowest-score restriction would presumably allow for a rather less repetitive playaround. I'd suggest removing the lowest-score goal, and abandon all pretence that it's a speedrun, in order to make for a better and more entertaining movie overall.
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
Probably a good source of Gruefood Delight; I watched it all, but it was just a bit too repetitive. There's only so much you can do to entertain while waiting for the time counter to run out. (Voted no.)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
The issue is that the game's mostly about route planning and luck manipulation. I could certainly post an unoptimised run, but it would just be a realtime run, effectively. Most of the strategies we've been discussing really need heavy luck manipulation to have any chance of them working. Really, I'd like to get the plan worked out before even starting, although something I may do as a route-planning test is to create a TAS in debug mode that gives the character a bunch of items and stats, warps to the end game, and completes it as fast as possible from there; in NetHack, you pretty much want to plan from the end backwards, so a WIP of the end of the game, even if it needs debug mode/hacking to get there, would be useful (with the final TAS played without debug mode or hacking). As for options editing, a glitched run shouldn't need that (it'd take longer to change the options than to do the glitch, assuming I can find a way to get it to work...), a glitchless run will likely change options (via the ingame options menu) to do things like remove timeconsuming animations.
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
I love the fact that an optimised TAS of this game exists, but the fact is enough by itself, it doesn't need publication as well, along much the same lines as Desert Bus. Voted no.
Post subject: Re: Thoughts so far regarding the glitchless route planning
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
eternaljwh wrote:
Two things. One, can't you #chat to your Leader to make them notice you?
Yes, but that costs one of our turns. We want to do things on the monster's turns as much as possible, as there's less pressure on those than on our own turns. (Everything we don't have to do ourselves saves one action.)
eternaljwh wrote:
Two, does levelporting actually allow landing on the VS? (I expect it does, as normal teleporting does not have an exception for it, unlike trap squares.)
I'm not completely certain, but I think it does.
eternaljwh wrote:
Three, you need to be careful about burden with that potion stack. Even with maxed str/con you only have 1k weight to play with, which would be 50 potions. I don't recall what stats AirE would have. So, you might manipulate C!oGL to appear on several levels (in stacks if possible) and land on them (+autopickup) as you're going up. If you want to save hair-pulling then you manipulate their appearance on the way down or with spare time, or just deploy wished-up ones.
Simplest method's to gain a stack in the time before T:2000, then drop smaller stacks through Gehennom, to be autopickedup on the way up. (Some luck manipulation would be needed to land on the stacks, at a chance of around 1 in 800; better if the RNG sequence was planned in advance, because then we could just drop the stacks on the squares we knew we'd land on.)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
ais523 wrote:
For the other Planes, it's less obvious. The "stuck" major trouble plus prayer is one potential way to do Astral, if there's some optimal way to get trapped behind boulders (wishing would work but is slow); I'm not sure if it's faster than the "traditional" jumping+teleport enemies mechanism. (I need to check if prayer takes five actions, or five turns; there'd be quite a difference in a minimum-turns speedrun, although not in a minimum-keystrokes speedrun.) On the planes of Earth and Fire, it'll be a matter of manipulating the portal as near to the starting location as possible, and travelling there as fast as possible (possibly via jumping, which would require being a Wizard). Air I'm not sure about, though; the game forces the player and the portal to start at opposite ends of the map, and thus finding a sequence-break to get from one end of the map to the other would probably be a lot faster than having to walk all the way across, without even the opportunity to jump!
Sequence break found for Air (and improved slightly with kerio's help): you can't use safe_teleds or anything like that, due to a teleport restriction (it's a no-teleport level, but additionally, no form of teleportation, even the ones that work on no-teleport levels, can cross from one third of the level into another), but it's possible to move very fast: if you throw a very heavy object (presumably gained on the spot via wishing) to the left, you hurtle to the right. Normally, at this point the game unresistably paralyzes you for a length of time equal to the distance you moved, in order to prevent you gaining time here, but you can cancel the paralysis early by running out of monster-form hitpoints and turning back into human (or other player race) form. I'm not entirely sure what the best movement rate possible is under these circumstances (given the temporary burdening that's likely to be involved, and the large range of possible polymorph forms involved), but it's almost certainly better than trying to do Air the intended way.
Post subject: Re: Thoughts so far regarding the glitchless route planning
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
Kerio wrote:
Basic assumptions:
  • the fastest way to travel is self-polymorph to an air elemental, hasted (with the "haste self" spell, or with potions of speed; the former requires pw and enough skill - and to get enough pw, we'll need either the Eye (which will be locked until the quest if we're a wizard) or a lot of gain energy potions, while the latter just requires the potions) - this gives us 42 plus a chance of 6 movement points each turn; of course we can manipulate the rng to always give us the extra movement points when we need them, so that rounds up to 4 actions each turn - alternated with jumping (the jumping spell at the expert skill - reserved for wizards only - gives us the greatest range), that makes the turncount roll over to the start of the next turn; using the spell on the last action of the turn gives us the fastest way to act, thus we'll be "stuck" as a hasted airE for most of the time after T:2000 - since air elementals are intrinsically blind, we're going to need the eyes of the overworld to see and jump
As a punished unicorn, you actually have slightly more horizontal movement (you have, with luck manipulation, enough movement points for 3 actions a turn; you can throw the ball, autopick it up, then jump, with 3 actions, and cover a larger horizontal distance than an air elemental could). It's slower for actions other than horizontal movement, though, so is likely only useful on Earth and Astral, if that. Additionally, don't the Eyes only have a range of 3 (or is that only through walls)? That would prevent jumping 4 spaces, if it is indeed the case. I think it might be possible to save 1 turn on the way up via sequence-breaking, but I'm not sure. (There are various methods to use the magical portal into Rodney's, then break out of the tower via getting rid of the Amulet somehow and levporting twice; you can use teleport or Rodney to get the Amulet out of the tower.)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
Here's some info on DOS NetHack's internals, because dwangoAC asked. I'll use the seed 1223790555 as an example, as it's the one I'm using for my testrun (it may not be the very best seed for the glitch, but it's definitely pretty close, and I'll need to know exactly what to look for to find one better). Objects take up 60 bytes or more in memory, generated using malloc. Here's an annotated dump of the gauntlets of power in memory, that are autopickedup on turn 1 with the seed given (note that a number like 12 34 56 78 is actually 0x78563412 due to the endianness of the x86 processor): GoP (at physical address 00C390B0): 00 00 00 00 nobj The next object on the object chain. This is what the game uses to iterate through inventory, etc.. A glitch object isn't actually on any object chain, so this won't be checked when doing the glitch. This is, however, why you can't (for instance) make a glitch object into a real one by fumble-dropping it; it isn't in the inventory object chain (you'd need to glitch a different part of memory to do that), so the game panics as it can't find an object that ought to be in inventory. 00 00 00 00 vptrs A backreference from the object to the next object on the same floor location, the container that contains it, or the monster that carries it. Never checked for a glitch object. 00 00 00 00 cobj If this object is a container, its contents (an object chain). Doesn't matter otherwise. 1C 00 00 00 o_id An arbitrary number, different from every object, used to see if two objects are the same or not. 1D ox 04 oy The location of the object, last time it mattered. (Probably when it was last on the floor.) Doesn't matter for objects in inventory, and thus glitch objects. 8A 00 otyp A code representing what sort of object the object is (0x008A = gauntlets of power). 1E 00 00 00 owt The weight of the object in game-internal units. Doesn't matter for any commands you can actually give on a glitch object. 01 00 00 00 quan The stack size of the object. Most objects, like gloves, don't stack. 00 spe The magical qualities of the object; this is what's set to 0 by cancellation. For a weapon or armour, this is the object's enchantment. (If trying to cause a buffer overflow, you'd want to set this to a 3-digit number like +100, to get a bit of extra length.) 03 oclass The general group of items that this item falls into (autopickup group, screen symbol); 03 is '[', armour. Note: the 3 or 4 bytes from here onwards are the best things to look for if trying to memory-search for a particular object; it's how I found the GoP in memory for the first place. 6F invlet The letter that this object has in inventory, or had last time it was there. 6F is ASCII for 'o', the letter which the GoP gained in inventory immediately after being picked up. The game also uses this as a flag to see if an item has ever been in inventory (relevant when training pets, etc., although not for a glitch object). 00 oartifact This object's artifact code. Used to distinguish Excalibur from a longsword that happens to be named Excalibur, etc.. (It's a common urban myth in the NetHack community that this isn't tracked by the game, because it prevents you naming an item to clash with an artifact name anyway, part of a well-known realtime exploit for determining the true identity of an item; but it really is tracked separately.) 00 means it isn't an artifact. 03 where Where the game currently thinks the item is; 03 means inventory. Glitch objects tend to have 03 in this field (unless manipulated by the player), even though they aren't actually on the inventory chain. 00 timed The number of in-game timers on this object, used to track when it, say, hatches or burns out. (The timers themselves are stored elsewhere.) Will generally be 0 for most objects. 20 bitfield1 00 bitfield2 00 bitfield3 00 bitfield4 32 bits which have separate meanings of their own. In order: cursed, blessed, on a shop bill, in a shop but not owned by it, formally identified, viewed while not blind, blessing/curse known, rustproofing level known, [2 bits] rust/fire/dilution damage level (also used for "blecch!"ing food), [2 bits] corrosion/rot damage level (also used for unreviving corpses), erodeproofing level, locked, trapped/poisoned, [3 bits] recharge count, lit (for lamps, etc.), greased, [2 bits] object refers to a monster (for tracking dead pets, etc), currently being used by game internals, immune to spells (used temporarily to stop items being affected twice by the same spell). This is likely the most useful field for a TAS; in particular, "viewed while not blind" can be altered simply by pressing ) to view the object's name, changing a 00 in that location to a 20, as seen here. My current plan is to use this to overwrite a trailing NUL at the end of a string to a space, although it might require several memory allocations to pull off. There are other potential uses too, such as setting as many of the user-visible flags as possible to create a really long object name. ignored padding: 00 00 00 00 00 00 corpsenm An object-type-specific flag: the monster class number of the monster this item is a corpse of (if it's a corpse), the monster ID of the pet leashed to this item (if a leash), the number of times a spellbook has been read, or 1 for an unbottled potion coming from a sink rather than a bottle. 00 00 00 00 oeaten For partially eaten food, how much is left to eat. 01 00 00 00 age Gametime when this object was created. (This is responsible for the unfortunately unexploitable crash when you drop 0 gold pieces onto another stack of 0 gold pieces; averaging out the ages gives a division by zero.) 00 onamelth The length of the user-specific name for this item (used to reallocate the item if the name is made longer). ignored padding: 00 00 00 oxlth The offset from the end of the object to its name. Nearly always 0 in actual play (except in weird cases like named pet corpses, where the info is put in between the end of the object and its name); however, if this is changed via glitch, the object will take its name from an unexpected place in memory, which might help to gain unusually long names. (It's a signed 16-bit number, so you can even take names from earlier in memory than the object itself.) 00 00 00 00 wornmask The parts of the body on which this item is currently being worn; redundant to things like the uwep pointer. This ends up out of synch with reality when the glitch is performed, stating that an item that isn't even in inventory is held in the hands. 00... oextra Other things tacked onto the object, like its name or information on a monster that was converted into an item somehow. The number of bytes allocated here may vary; NetHack uses the "struct hack" famous among C programmers. The memory allocation algorithm used by NetHack is DJGPP's standard algorithm: memory is looked for in this order: - space left over in a block after it had to be split to allocate a small space from a large block (only one of these spaces is tracked at a time); - freed blocks whose size is large enough to fit the requested size, and less than 5/4 the requested size, and has the same number of bits in its size (the most recently freed block is checked first); - freed blocks which are large enough to fit the requested size (checked in order of number of bits in their size, and from most recently to least recently freed in order); - memory requested from the OS. When a block is freed, it's merged with other adjacent freed blocks (two blocks are adjacent if the distance between them is equal to the size of the first plus 8) into a larger block; if a block is allocated but has more than 64 bytes spare, the spare area is put into the "space left over" variable, and the old value of that variable is just marked as free, as normal. For memory watching purposes: while a block of memory is allocated, the 4 bytes preceding it hold its size, and the 4 bytes following it also hold its size (so that blocks can be traversed forwards or backwards), and that's the only tracked metadata. While a block is deallocated, the sizes are still there (but with their low bit set to 1 to mark it as free); also, its first 4 bytes hold a pointer to the next block, its next 4 bytes cache the number of bits in its size (0 means 2 bits as in 2 or 3 bytes, 1 means 3 bits as in 4-7 bytes, 2 means 4 bits as in 8-15 bytes, and so on). (Allocated sizes are rounded up to a multiple of 8 so that the info in question fits.)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
Cpadolf wrote:
Really great run. The stand out moment by far was the new endless staircase skip. I had always thought that it was amazing that for all the tricks and glitches you could do to get to the 70 star door early, if it hadn't opened to tease you with the endless staircase the game would still have had to be beaten with 70 stars (due to there not being anywhere to BLJ at the door). But as we can see here, sooner or later it would have been made possible anyway.
The DS version has an invisible wall on the endless staircase, if you don't have enough stars to get through. Nonetheless, people found a way to glitch into that area and win with fewer stars than intended (kind-of surprising, given that AFAIK there's no known way to glitch past any of the other star doors...)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
I actually think this is a little too long (it'd have been nice to skip more levels, so you only used each particular sort of insane glitch once), but you have to take what the game gives you (or force it to act a different way). Easily a Yes vote anyway, especially as the first half is hilarious (both the warp glitch, and some of the glitches after that.)
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
FractalFusion wrote:
- That being said, not all areas have such NPCs, and you will have to suffer the random encounter or use Repel. I am currently looking for a Poketch app that uses randomization in any way, shape, or form (hint, coin flip app). That, I presume, is the ticket to manipulate the field easily.
Unfortunately, the Coin Flip Pokétch App is based on the internal Mersenne Twister RNG (the IRNG), not the linear congruential RNG used for most of the game (such as wild encounters); so doing that wouldn't help manipulate away encounters at all. The standard method used by Pokémon players when manipulating the RNG in realtime is to use the Journal; when it opens on a page that talks about the capture or defeat of a Pokémon by species name ("Caught a female BIDOOF" and variations), it increases the RNG by 2. This is relatively slow; faster than a battle, but probably slower than just waiting for NPC movements. It could be useful where there aren't NPCs around, but Repels are likely to be faster overall.
Editor, Experienced Forum User, Published Author, Player (44)
Joined: 7/11/2010
Posts: 1022
Because I think it's always worth explaining no votes, no because it's just not that interesting to watch levels being flown over.