Zwischenbilder bei statischen DOS-Spielen ändern

Diskussion zum Thema Programmierung unter DOS (Intel x86)
Antworten
littbarski
Windows 3.11-Benutzer
Beiträge: 3
Registriert: So 30. Mär 2025, 13:28

Zwischenbilder bei statischen DOS-Spielen ändern

Beitrag von littbarski »

Hallo zusammen,

ich bin kein Entwickler, sondern spiele nur sehr gerne alte DOS-Spiele aus meiner Kindheit. Bei manchen Spielen, die nur aus statischen Bildern bestehen (also keine Rennspiele, Shooter, Jump n Run, sondern Managerspiele), wird teils beim Wechsel der Bilder (wie Menü, Hintergrund, Szenario) immer ganz kurz ein schwarzes Bild angezeigt. Also entweder schwarz oder "aus".

Meine Frage ist nur, ob es realistisch ist, dass man dies in der ursprünglichen EXE findet und ändert (ich stelle mir als Laie so vor, dass man in einem HEX Editor einen bestimmten Wert ändert, der diesen OFF-Screen deaktiviert oder die Dauer auf 0 stellt).

Beispiel (nicht mein Video):
https://youtu.be/1FuI-kqi3V4?si=Jc4_6BoTugknjgGZ&t=1054

Der dunkle Screen ist sogar von der Dauer des Haltens der Maustaste abhängig :).
Interessanterweise ist es beim Addon zur WM damals dann schon verändert worden, so dass dieses "OFF" nicht mehr da ist.

Meine Frage hier also nur als möglichen Einstieg für mich ins Thema.
Benutzeravatar
Nitrosamin
MemMaker-Benutzer
Beiträge: 82
Registriert: So 23. Mai 2021, 23:15
Kontaktdaten:

Re: Zwischenbilder bei statischen DOS-Spielen ändern

Beitrag von Nitrosamin »

Kann es nicht nur einfach am Rechner & Graka liegen? Verarbeitungszeit?
mfg.

Nitro
littbarski
Windows 3.11-Benutzer
Beiträge: 3
Registriert: So 30. Mär 2025, 13:28

Re: Zwischenbilder bei statischen DOS-Spielen ändern

Beitrag von littbarski »

danke, nein, da habe ich schon alles versucht bei den Einstellungen zur CPU etc und der Computer ist auch ein guter neuerer. Ich denke schon, dass das fest programmiert ist, weil es beim Addon dann gar nicht mehr da ist (und einfach vermutlich per Parameter abgeschafft wurde). Ich bin einfach nicht wirklich in der Materie und würde nur gerne mal lernen, ob bei so alten DOS-Spielen überhaupt mal von Fans was z.B. in einer EXE geändert wird. Ist das immer recht aufwändig, weil man da nicht einfach eine "Volltextsuche" machen kann wie in einer Konfigurationsdatei?
Jackintosh
MemMaker-Benutzer
Beiträge: 74
Registriert: Di 25. Okt 2022, 15:46

Re: Zwischenbilder bei statischen DOS-Spielen ändern

Beitrag von Jackintosh »

Die Bilder mit den Daten müssen ja auch erst einmal aufgebaut werden, d.h. die Daten müssen aus der Spieledatenbank herausgezogen und dann bearbeitet (addiert, etc) werden. Das kann bei DOS PCs natürlich schon mal einen kleinen Moment dauern. Daher hat sich der Programmierer entschieden diese Bildschirmseite offscreen aufzubauen und onscreen so lange einen schwarzen Bildschirm anzuzeigen. Ist die Seite zur Anzeige bereit, wird gewechselt. Ist halt so - lebe damit.
Benutzeravatar
amadeus777999
Einmal-Poster
Beiträge: 1
Registriert: Di 2. Dez 2025, 19:16

Re: Zwischenbilder bei statischen DOS-Spielen ändern

Beitrag von amadeus777999 »

Du müsstest nach der hex-Sequenz in der exe suchen die einen schwarzen Bildschirm zeichnet - je nach Methode ist das unterschiedlich.
Ein Indikator könnte eine Schleife mit 64000 oder 16000 Wiederholungen sein wo ein der Palettenindex mit dem Schwarz repräsentiert wird assoziiert ist. Du musst auch schauen welcher Bildschirm modus gesetzt wurde, denn wenn es ein planarer Modus ist, dann könnten die Programmierer auch einen internen "Write Mode" benutzen der den Wert aus den "latches"(interner Speicher des GraphicsControllers) liest und in den aktuellen Speicherbereich schreibt.
Natürlich gibt es, falls es ein planarer Modus ist, auch die Möglichkeit das einer der "Bildschirmpuffer" immer "leer"/"schwarz" ist und kurz eingeblendet wird.

Wenn die Maustaste die Länge ändert dann ist möglich, das der InterruptHandler der mit dem hardware interrupt der Maus zu tun hat beteiligt ist - was da konkret eine Interaktion herbeiruft ist ungewiss. Es kann aber sein dass der handler maskierbare Interrupts abschaltet(um nicht während seiner Abarbeitung wieder von sich selbst fatal gestört zu werden) und dadurch, bei Missbrauch(user button'd permanent herum), die "timing routine", die wiederum auch von einem hardware interrupt aufgerufen wird, latent "aufgehalten" wird.

Sind alles amateurhafte Mutmassungen(also Vorsicht!) - wenn man nicht den source hat oder sehr gewifft ist und es aus der "hex Sequenz" der exe "herleiten" kann. Du kannst aber ein Program wie IDA probieren das dis-assemblieren oder de-compilieren kann... kommt aber wieder drauf an ob die .exe 16- oder 32bit(mittels DPMI host) ist.

Wenn Du auf vogons unterwegs bist, dann könntest Du den user "scali" fragen der sich von 8088 bis DX12 ziemlich gut auskennt und ein echter "SzeneCoder" ist... ob sich der halt so einem Unterfangen hingibt ist äusserst fraglich.
"CentaurHauls"
Antworten