Okay, etwas munterer habe ich heute einen erneuten Test unternommen, mit dem ich reproduzierbar bereits im jeweils 1. Versuch durch die Stelle hindurchkomme:
Während die Zeit vergeht, drückt und hält man „Vorwärts“ (↑) gedrückt und hält die Taste so lange, bis alle Textboxen dadurch „geskippt“ werden und sich die Gruppe über die Geröllstelle hinweg bewegt hat.
Alle Versuche habe ich mittels dieses „mechanischen“ Verfahrens unternommen:
- Bei 1000 Cycles klappt dies bei mir (GOG-Version) immer beim ersten Versuch (ca. 10× getestet).
- Bei 2000 Cycles klappt es bei mir etwa nach jedem 2. bis 4. Anlauf (ebenfalls ca. 10× getestet).
#Versuche: 2, 2, 4, 4, 2, 2, 2, 2, 1, 2, 4, 3
- Bei 3000+ Cycles ist es mir bislang nach über 30 Anläufen kein einziges Mal gelungen.
Cycles reduzieren kann man (in der „normalen“ DOSBox) mit Ctrl+F11, erhöhen mit Ctrl+F12.
Daneben ist mir Folgendes aufgefallen:
Ich nehme in Versuchen, die „scheitern“ (bei 3000+ Cycles), keinerlei Hunger-/Durstschaden. Wochenlang „gräbt“ die Gruppe, ohne ein einziges Mal LE zu verlieren. Es kommen wiederholt Boxen, dass die Gruppe am Verdursten sei, allerdings ohne Schadenswürfe.
Schaden dagegen NEHME ich in meinen 2000-Cycle-Versuchen immer, und zwar ab dem 2. Versuch (dann geht bei meinem Save das Trinken aus). Schaden zu nehmen bzw. den Codepfad zu nehmen, der potenziell Schaden verursacht, scheint somit (zumindest korrelativ) auch der zu sein, der einen über das Feld schreiten lässt (??).
Wie so oft scheint man bei der Analyse eines Bugs über weitere zu stolpern. xD
Die offenen Fragen der Verfallenen Herberge hören sich auch sehr spannend an und ließen sich nun, da der Code mit BrightEyes vorliegt, sicherlich handfester erörtern; aber alles zu seiner Zeit.
Erst einmal bin ich gespannt, was sich hinter diesem Bug in der Zwingfeste verbirgt und ob ihr die Ergebnisse reproduzieren könnt.
Nach erneutem Blick auf die von siebenstreich identifizierte Codestelle und weiterer Reduktion der Cycles auf 500 schaffe ich es nun auch deterministisch am eingestürzten Gang vorbei, und zwar ohne Freilegungsversuch: Man muss nahezu gleichzeitig ENTER (für „Nein“) und „Vorwärts“ (↑) drücken. Dann geht es auch ohne den Zeitverlust, den das Freilegen sonst mit sich bringt.
Während die Zeit vergeht, drückt und hält man „Vorwärts“ (↑) gedrückt und hält die Taste so lange, bis alle Textboxen dadurch „geskippt“ werden und sich die Gruppe über die Geröllstelle hinweg bewegt hat.
Alle Versuche habe ich mittels dieses „mechanischen“ Verfahrens unternommen:
- Bei 1000 Cycles klappt dies bei mir (GOG-Version) immer beim ersten Versuch (ca. 10× getestet).
- Bei 2000 Cycles klappt es bei mir etwa nach jedem 2. bis 4. Anlauf (ebenfalls ca. 10× getestet).
#Versuche: 2, 2, 4, 4, 2, 2, 2, 2, 1, 2, 4, 3
- Bei 3000+ Cycles ist es mir bislang nach über 30 Anläufen kein einziges Mal gelungen.
Cycles reduzieren kann man (in der „normalen“ DOSBox) mit Ctrl+F11, erhöhen mit Ctrl+F12.
Daneben ist mir Folgendes aufgefallen:
Ich nehme in Versuchen, die „scheitern“ (bei 3000+ Cycles), keinerlei Hunger-/Durstschaden. Wochenlang „gräbt“ die Gruppe, ohne ein einziges Mal LE zu verlieren. Es kommen wiederholt Boxen, dass die Gruppe am Verdursten sei, allerdings ohne Schadenswürfe.
Schaden dagegen NEHME ich in meinen 2000-Cycle-Versuchen immer, und zwar ab dem 2. Versuch (dann geht bei meinem Save das Trinken aus). Schaden zu nehmen bzw. den Codepfad zu nehmen, der potenziell Schaden verursacht, scheint somit (zumindest korrelativ) auch der zu sein, der einen über das Feld schreiten lässt (??).
Wie so oft scheint man bei der Analyse eines Bugs über weitere zu stolpern. xD
Die offenen Fragen der Verfallenen Herberge hören sich auch sehr spannend an und ließen sich nun, da der Code mit BrightEyes vorliegt, sicherlich handfester erörtern; aber alles zu seiner Zeit.
Erst einmal bin ich gespannt, was sich hinter diesem Bug in der Zwingfeste verbirgt und ob ihr die Ergebnisse reproduzieren könnt.
Nach erneutem Blick auf die von siebenstreich identifizierte Codestelle und weiterer Reduktion der Cycles auf 500 schaffe ich es nun auch deterministisch am eingestürzten Gang vorbei, und zwar ohne Freilegungsversuch: Man muss nahezu gleichzeitig ENTER (für „Nein“) und „Vorwärts“ (↑) drücken. Dann geht es auch ohne den Zeitverlust, den das Freilegen sonst mit sich bringt.


