20.03.2016, 19:00 (Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2020, 16:27 von Crystal.
Bearbeitungsgrund: Link aktualisiert
)
Beim vorletzten Kampf in Schatten über Riva gegen die eigenen Spiegelbilder erscheinen bekanntlich je nach Speicherkonfiguration Phantomzwerge bzw. Phantomdruiden, und zwar immer 7-minus-Gruppengröße an der Zahl. Soweit ich das reproduzieren kann, ist dies der Tatsache geschuldet, dass für die nicht vorhandenen Gruppenmitglieder ein Nullzeiger referenziert wird. Das wird zumindest den C-Programmieren von Euch was sagen. Je nachdem, was zufällig im Speicher liegt, kommt ein untoter Zwerg, ein Phantomdruide, oder in vielen Fällen auch gar nichts, weshalb die Entwickler das wohl nicht gemerkt haben. Abhilfe lässt sich schaffen, indem eine andere überflüssige Abfrage umfunktioniert wird zur Abfrage eines Nullzeigers. Hierzu wird in RIVA.EXE die Zeichenkette
85 C0 0F 84 97 02 00 00 89 D0 E8 geändert zu
85 D2 0F 84 97 02 00 00 89 D0 E8 (also nur das zweite Byte ändern). Der Suchstring ist zwecks Eindeutigkeit so lang.
In RIVA.EXE der Version 1.12ger mit installierten Lösungsbuch zum Beispiel wäre also an Position 11A3D9 das Byte von C0 auf D2 zu ändern. Bei anderen Versionen bzw. ohne Lösungsbuch ist die Position eine andere, der obige Suchstring sollte das Auffinden aber ermöglichen.
Mit dieser Änderung tritt das Problem zumindest in den Situationen, in denen ich es reproduzieren kann, nicht mehr auf. Sollte das noch nicht ausreichen, dann gäbe es wohl noch andere Fehlerquellen, also bitte ausprobieren und Ergebnisse mitteilen. Erfolgreich habe ich es probiert mit 1.12ger und 1.01 (U.S.).
Sofern ich positive Rückmeldungen erhalte, werde ich einen Patch erstellen, mit denen sich diese Korrektur auch von Leuten ohne Hex-Editor bewerkstelligen lässt.
ich habe nur einen Spielstand vor dem Eintritt in den Bau der Königin, aber gut ausgebaute Helden. Sollte nicht allzu lange dauern, um zu der entscheidenden Stelle zu kommen.
Hacke Tau, Kumpels!
Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?
Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
(20.03.2016, 19:00)NRS schrieb: Sofern ich positive Rückmeldungen erhalte, werde ich einen Patch erstellen, mit denen sich diese Korrektur auch von Leuten ohne Hex-Editor bewerkstelligen lässt.
Es wäre gewiß ein großer Schritt, wenn dieses wohl schwerste bislang ungelöste Problem der NLT, das so kurz vor dem Schluß noch zur unüberwindlichen Barriere werden kann, einer endgültigen Lösung zugeführt werden könnte.
20.03.2016, 20:40 (Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2016, 22:03 von Lippens die Ente.)
witzig ist, dass dieses Problem unter Windows 98 etwa nie auftauchte, unter Dosbox jedoch immer.
Aber egal, diese eine Änderung hat das Problem gelöst, wieder einmal ein technisches Problem beseitigt. Warst du es nicht, der die Einhorn- und Sphärenrisstheorie herausgefunden hat? War vor meiner Zeit, aber sicher ein Meilenstein in der NLT-Nachforschung!
Als ich den Spiegelsaal nach der Änderung betrat, erschien dieser Kampfbildschirm.
Hacke Tau, Kumpels!
Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?
Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
20.03.2016, 22:16 (Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2016, 22:34 von NRS.)
Das ist ja schön. Schreibst Du noch bitte Deine Versionsnummer und ob mit oder ohne Online-Hintbook.
Nein, mit Einhorn und Sphärenriss habe ich nichts zu tun. Bei Schicksalsklinge habe ich mich mit Treborn Kolberg, Oberorken-Dungeon und kleinerem Gedöns beschäftigt.
In diesem Fall hier also der fertige Patch, der in meinen Tests mit allen mir vorliegenden Versionen des Spieles im Test funktioniert hat, das heißt das reproduzierbare Problem beseitigt hat. Ich habe das Spiel jetzt nicht nochmal von Anfang bis Ende durchgespielt, sehe aber keinen Grund, warum sonst etwas kaputtgehen sollte, da ja nur ein Nullzeiger abgefangen wird.
Wie schon beim Truhenpatch einfach ins RIVA-Verzeichnis extrahieren und innerhalb DOSBox RIVAFIX.BAT ausführen, oder bei Verwendung von 32-Bit-Windows im Windows-Explorer auf RIVAFIX.BAT doppelklicken. Danach sollte zumindest zur Umgehung dieses Problems kein HDPMI- oder JEMMEX-Gedöns mehr nötig sein, es sei denn, es gibt noch andere Probleme, die man durch Verwendung dieser Programme ebenfalls umgeht.
Wäre schon, wenn ich der Übersicht halber den Patch in den ersten Beitrag dieses Threads einfügen könnte, aber leider sagt mir die Forensoftware, dass es dafür nun zu spät sei.
(23.03.2016, 20:32)NRS schrieb: In diesem Fall hier also der fertige Patch, der in meinen Tests mit allen mir vorliegenden Versionen des Spieles im Test funktioniert hat, das heißt das reproduzierbare Problem beseitigt hat. Ich habe das Spiel jetzt nicht nochmal von Anfang bis Ende durchgespielt, sehe aber keinen Grund, warum sonst etwas kaputtgehen sollte, da ja nur ein Nullzeiger abgefangen wird.
Wie schon beim Truhenpatch einfach ins RIVA-Verzeichnis extrahieren und innerhalb DOSBox RIVAFIX.BAT ausführen, oder bei Verwendung von 32-Bit-Windows im Windows-Explorer auf RIVAFIX.BAT doppelklicken. Danach sollte zumindest zur Umgehung dieses Problems kein HDPMI- oder JEMMEX-Gedöns mehr nötig sein, es sei denn, es gibt noch andere Probleme, die man durch Verwendung dieser Programme ebenfalls umgeht.
Wäre schon, wenn ich der Übersicht halber den Patch in den ersten Beitrag dieses Threads einfügen könnte, aber leider sagt mir die Forensoftware, dass es dafür nun zu spät sei.
Bei mir funktioniert der Patch. Hasste auch das Problem mit dem Phantomdruiden. Jetzt gehts Porblemlos. Dank an NRS!
18.08.2016, 02:40 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2016, 02:51 von Luigi.)
Da ich eh nicht schlafen kann.
Riva 1.12
Lösungsbuch? Keine Ahnung. Finde nur ne RIVAHLP.BAT oder ne RIVAHINT.ALF im DATA-Verzeichnis.
Bei meiner Konfiguration der DOSBOX kommt vor dem Spiegelkampf dieser Absturz.
memsize=63
XMS=false
EMS=false
DPMIHost ist HDPMI32.
DOSIDLE nach "HDPMI32.exe -r"
DOSExtender ist DOS32a. DosBuffer erhöht auf 64KB mit der SS.exe von DOS32a und mit sb.exe DOS4GW bei RIVA.EXE ersetzt durch DOS32a bla bla bla...
Feste CYCLES, da sich sonst die DOSBOX zu Tode "idled".
DOSBOX: Die aktuelle SVN.
Hab eben gerne auf Android-Tablet und Laptop gespielt, deswegen DOSIDLE und DOS32a. Der Akkulaufzeit wegen.
HDPMI als Ersatz für CSDPMI, oder wie der heißt.
Im Gegensatz zur DOSBOX0.74 tritt der Spiegelbug bei mir mit der aktuellen DOSBOXSVN-Version jetzt immer auf. Auch bei unverbastelter Konfiguration ohne DOSIDLE.
Lange Rede, kurzer Sinn: Es funktioniert. Habs mit einem Hexeditor gemacht, da ich keine orginale RIVA.EXE V1.12 mit DOS4GW hatte, sondern mit DOS32a.
PS: Die aktuelle DOSBOX-SVN und HDPMI hab ich nur benutzt um die Konfiguration exotischer zu machen. Aber DOS32a bei XMS=0 und DOSIDLE benutzte ich immer beim RIVA-Spielen. Ohne DOSIDLE ging auch der Spiegelkampf bei mir ohne Probleme mit DOSBOX 0.73 und 0.74.