Willkommen im cgboard - classic games Forum! Deine gemütliche Retro Gaming Community. Besuche uns auch im Discord Chat.

[Suche] Tips für GoodOldDay Manager
#1
0
hallo leute,

Ich hab nen kleinen Manager Zusammengeklöppelt für die disk image sammlung von goodolddays
ich würde gerne die installationen automatisieren, finde aber keine simple möglichkeit zwischen
c# kommunikation und dosbox.

versuche grade ein dos c++ tsr manager zusammen zu coden aber das gelingt mir nicht so ganz.



[Bild: godmanager.png]
Zitieren
#2
0
Was ist in diesem Fall unter Kommunikation zu verstehen?

Willst du die DOSBox nur ausführen mit der jeweiligen Config Datei, dann reicht eine einfache Shell Ausführung mit Config Parameter Angabe.
In VB und QB gab es dafür die Shell Funktion.

Glaube in C# gab es irgendwie die Process.Start Methode dafür.
https://learn.microsoft.com/de-de/dotnet...ew=net-7.0

Wenn du aber Installation usw. von deiner Anwendung über die DosBox laufen zu lassen automatisch, dann machst du dir mehr Arbeit als Notwendig wäre.
Installation oder das Entpacken würde ich über deine Anwendung laufen lassen. Starten wie grad schon erklärt mit der richtigen Config + DosBox.

In der Config selbst kannst du Spielspeziefisch alles einstellen und unter dem Autoexec Absatz sogar den Autostart des Spiels einleiten.
Sprich sobald die DOSBox mit der Config Datei startet, startet das Spiel auch entsprechend gleich.

So hab ich mein Launcher mal gebaut gehabt. Den starte ich einfach, stell nur noch kleine Dinge ein wie Auflösung, Midigerät, etc. und drücke einfach auf den Startbutton. Wird dann über die Shell ausgeführt.
Zitieren
#3
0
Achso vergessen zu sagen wie ich das genau meine,
und zwar startet dosbox über process start und mit der
richtigen mount config. der korrekte install start befehl
im diskimage läuft momentan noch manuell, hab aber bald
ne routine fertig die die install start datei install.exe setup.exe usw.
von alleine erkennt.

Mit Kommunikation meine ich die installation der spiele
in der dosbox zu automatisieren und mit exitcode arbeiten oder
wie gesagt ein tsr programm in c oder c++ schreiben
welches automatisiert die spiele installiert.

Bin nicht so gut im erklären

edit: war der installer im weg:

[Bild: Unbenannt.png]
Zitieren
#4
0
Warum will man die Installation der Games in der dosbox ablaufen lassen? Das macht doch außer Nostalgie beim Zuschauen keinen praktischen Sinn.

Mach das doch über dein Tool selbst. Wäre einfacher und gezielter.

Du hast die Games doch verzippt und entpackst die ja auch. Warum entpackst du sie nicht gleich im fertigen Zustand? Der Schritt entzieht sich mir grad, warum das so kompliziert sein soll!? ^^
Zitieren
#5
0
-->Warum will man die Installation der Games in der dosbox ablaufen lassen? Das macht doch außer Nostalgie beim Zuschauen keinen praktischen Sinn.

Ich lasse sie in der Dosbox genau wegen genau des Nostalgischen feelings ablaufen.
Ich mag Installationsprogramme von damals halt sehr. Ich Programmiere auch
grade viele Installer nach, um zu versuchen eigene Ideen einzubauen die Ich mir
damals als Kind gewünscht hätte, ist halt mein Hobby.

--> Mach das doch über dein Tool selbst. Wäre einfacher und gezielter.

Das habe ich schon lange fertig. Das ging ja auch easy. zu easy halt.

-->Du hast die Games doch verzippt und entpackst die ja auch. Warum entpackst du sie nicht gleich im fertigen Zustand? Der Schritt entzieht sich mir grad, warum das so kompliziert sein soll!? ^^

Die Good old Day Sammlung, ist eine Sammlung von Original Disketten Images. Die müssen nach dem entpacken nunmal installiert werden.
ausserdem nutze ich die Sammlung auch unter Real Hardware bedingungen. Deshalb soll alles so Doskonform wie möglich ablaufen.

Und je komplizierter desto lieber ist mir das Smile

Ist halt mein Hobby
Zitieren
#6
0
Dann wüste ich nur noch 2 mögliche Lösungen die man auf die schnelle machen könnte:

1. Lasse dir über dein Tool eine Batchdatei erzeugen die die Install Routine aller Spiele die du installieren willst beinhaltet. So musst du die Dosbox nur 1 mal öffnen und die Batch Datei durchlaufen lassen.

2. Die Shellwait Funktion in C# nutzen / als API einbinden. Diese veranlasst dann das dein Tool solange wartet bis die DosBox beendet wird (entweder automatisch oder mit einem manuellen EXIT Befehl)
Ist das geschehen geht die Kontrolle an dein Tool wieder über und das ganze kann von neuem beginnen. So kannst du in deinem Tool eine Liste nach und nach abarbeiten.


Edit:
3. Möglichkeit die etwas Raffinesse erfordert:
Gaukel dem User eine DOS Oberfläche vor.

Was brauchst du:
- Eine 8x16 oder 8x8 Raster Font Schrift
- Eine geeignete Zeichenoberfläche wie z.B. eine PictureBox.
- Dann bildest du alle Raster Font Schriften deiner eigenen Font Schriftausgabe ab.
- Die Farben kannst du entsprechend auch simulieren. (Standardmäßig kommt die DOSBox mit ihrer 640x400 Auflösung und einer 8x16 Fontschrift mit 16 Farben daher, während 8x8 Fonts in der Regel für 320x200 Auflösungen und 256 Farben genutzt wurden. Kann man aber auch auf 256 auslegen alles)

Danach bauchst du dir halt damit dein Setup Tool nach. Sieht dann aus wie in der DOsBox.
Damit hätteste dein Old School Look, und hättest außerdem die DosBox nicht als Flaschenhals und Fehlerquelle.


Weil der Fehlerpunkt wird bei deiner Methode halt werden, wenn der User etwas in der Setup tut, was du nicht berücksichtigt hast.
z.B: wählt der User ein anderes MIDI Gerät aus oder andere Grafik Karte wie eine CGA Karte und solche Spielchen.
Oder der User wählt ein Install Pfad für sein Game aus der unglaublich blöde ist.
Weil dann ist das blöd, wenn du eine fertige Config vorgibst.

Besser wäre es dann für jedes Game dem User zu überlassen welche Konfig er einstellen möchte.

Oder man bedenke was passiert, wenn der User vorzeitig die DOSBox beendet während der Setup.
Zitieren
#7
0
ich hab das alles bisher so gelöst:
// Schreiben der Konfigurationsdatei
File.WriteAllText(gameConfigFilePath, configBuilder.ToString());

// Starten der DOSBox mit der neuen Konfigurationsdatei
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = dosBoxExe;
processStartInfo.Arguments = $"-conf \"{gameConfigFilePath}\" -noconsole";
Process process = new Process();
process.StartInfo = processStartInfo;
process.Start();
this.Cursor = Cursors.No;

// Warte, bis die DOSBox beendet ist
process.WaitForExit();
this.Cursor = Cursors.Default;

// Fortsetzung des Codes nach Beendigung der DOSBox

DialogResult result = MessageBox.Show("War die Installation erfolgreich?", "Installation abgeschlossen", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
string gameName = selectedItem.Text;
string gameVersion = selectedItem.SubItems[1].Text;

string quelle = pfad;

mir geht es ja nur darum, das man in der dosbox die installation wahlweise
automatisch oder manuell durchführen kann. der zeit muss ich mit F11 + O
die diskimages per hand wechseln. das würde ich halt gerne automatisieren.
Zitieren
#8
0
---> mir geht es ja nur darum, das man in der dosbox die installation wahlweise
automatisch oder manuell durchführen kann. der zeit muss ich mit F11 + O
die diskimages per hand wechseln. das würde ich halt gerne automatisieren.

A: Kann man leider nicht. Das muss man manuell machen in der DOSBox.
Das hatte ich schon mal versucht gehabt ^^
Aber dann eingesehen das das ja Dumm wäre, wenn es gehen würde. Es gab ja früher auch keine automatischen Disketten Wechsel Geräte Big Grin
So sind also auch deren Software nicht darauf ausgelegt. Du hast also keinen Punkt in der DOSBox als Rückmeldung der dir sagt das da eine neue Image Anforderung bereitsteht.
Zitieren
#9
0
ja deshalb möchte ich ja für die dosbox entweder ne api haben mit der ich kommunizieren kann,
oder halt ein tsrtool schreiben welches die disketten wechsel erkennt.

würde dann halt für jedes spiel ne roadmap config schreiben
die nach der roadmap alle disketten automatisch wechselt
Zitieren
#10
0
---> ja deshalb möchte ich ja für die dosbox entweder ne api haben mit der ich kommunizieren kann,

Wenn du dir deine eigene DOSBox kompilieren würdest, könntest du dir selbst APIs schreiben dafür. Würde dann aber nur mit deiner modifizierten DOSBox möglich sein.

---> oder halt ein tsrtool schreiben welches die disketten wechsel erkennt.

Und dafür brauchst du ein Rückgabewert der DOSbox, sobald es erforderlich ist ein Wechsel vorzuziehen. Was die DOSBox aber nicht tun wird, da jeder Entwickler der Setup Dinger bei den Games andere Abfragemechanismen verwendet.


Ich glaube kaum das das ohne hohes Knowhow so einfach möglich ist. Weil das in meinen Augen mehr Aufwand wäre als das es Nutzen würde.

Wie gesagt: Wenn du selbst eine DOS Oberfläche mit nem Raster Font nachbaust, ist das auch recht cool. Weil da kannst du das halt über dein Tool automatisiert installieren lassen.
Aber Installationen über DOSBox wo A) der User mehr Fehlerquelle ist als alles andere + B) ohne die Möglichkeit auf Zugriff auf Funktionen der DOSBox, wirst du da mit deinem Vorhaben scheitern.

Du kannst quasi die DOSBox von deinem Tool nicht überwachen was der User tut, und somit keine Fehler abfangen.
Wenn du dir nicht selbst jetzt eine eigene DOSBox bauen willst, womit du dir Schnittstellen verschaffen tust, dann sehe ich da schwarz bei deinem Vorhaben. Sry.

Alternativen gibt es wie gesagt mit der Geschichte mit den Raster Font Schriften. <- Habe ich selbst schon oft genug gebaut gehabt solche Projekte. Haste dann halt auch ein Retro Look.
Zitieren
#11
0
--> Du kannst quasi die DOSBox von deinem Tool nicht überwachen was der User tut, und somit keine Fehler abfangen.

ich mache ja quasi eine begleitete installation (wie erwähnt mit einem tsr tool welches eine roadmap zu installation erstellt) , sodas der spätere user die ganzen installationsschritte
entweder "per hand" oder automatisiert ausführen kann.
Zitieren
#12
0
Selbst wenn, du hast absolut gar nix um Prüfen zu lassen wann ein Wechsel einer CD oder Floppy notwendig ist, weil dir das kein DOS Setup über die DOSBox nach außen senden tut. Da gibt es keinen Check.

Und ich glaube auch kaum das man das im DOSBox Code irgendwo finden kann.

Weil die alten DOS Setups arbeiten ziemlich verschieden von Hersteller zu Hersteller. Der eine fragt ab ob eine entsprechende Datei vorhanden ist, der andere checkt eine Dateigröße auf dem Träger, der nächste prüft vllt. das Label der CD / Floppy.

Deine Möglichkeit wäre jetzt zu prüfen ob alle Dateien die kopiert werden oder kopiert werden sollen, ein derzeitigen Zugriff gerade haben. Quasi ein Check ob sie geöffnet sind. Sind sie geöffnet, ist ein Kopiervorgang im Gange.
Das müsstest du aber bei allen Dateien gleichzeitig machen. Erst wenn alle freigegeben sind von der Setup, dann ist das Setup fertig und ein Wechsel könnte Theoretisch erfolgen.

Anders wüsste ich jetzt auch nicht mehr. Wie gesagt... das was du da machen willst ist zu viel Aufwand in meinen Augen. Zu viele Blöde Faktoren die man berücksichtigen müsste um Fehlerquellen vorzubeugen. Und die DOSBox gibt halt nix her außer das du ihr ein Input über die Config Datei geben kannst.



EDIT:
Nur mal zur Anschauung wie das mit den Raster Fonts aussehen könnte (Hab ich in grad mal 15min gebaut):

[Bild: t9i448om.png]

Den FontEdit mit was ich die Raster Fonts erstelle hatte ich für andere Projekte mal gebastelt gehabt.

Aber du siehst, ich kann die Fonts und die nötigen Funktionen zum Anzeigen in jede Sprach importieren. Und das grafisch halt auch ausgeben lassen was ich da eingebe.

So könnte man halt intern eine eigene Setup im Retro Look darstellen. Und muss nicht so umständlich mit der DOSBox da arbeiten.
Zitieren
#13
0
Also die Idee, den Charme vieler DOS Spieleinstallationen zu bewahren finde ich gut. Da sind einige bei, die man in den fertigen Paketen wie eXoDOS und GOG und co. nicht mehr zu gesicht bekommt.
Neben aufwendigen wie bei Command & Conquer sicherlich auch simple, die aber Informationen zu letzten Änderungen u.ä. enthalten.

Aber ich fürchte auch, dass das schwer wird, es so umzusetzen. Und auch, dass es nachher viele nutzen würden, was den Aufwand nicht rechtfertigen würde.

Hast du mal darüber nachgedacht, einfach Videos von einer Installation zu machen und dann mit einer ferigen Installationsversion des Spiels zu bundlen?

Aufgrund deines Posts hier denke ich gerade darüber nach, sowas in eXoDOS einzubinden um die Installationsprozeduren zu bewahren ...
Zitieren
#14
0
Hast du mal darüber nachgedacht, einfach Videos von einer Installation zu machen und dann mit einer ferigen Installationsversion des Spiels zu bundlen?

-->Ich danke dir. Daran hatte ich nicht gedacht das man ja auch einfach in video der Installation abspielen kann um den charme zu erhalten!
Jetzt muss ich nurnoch die restlichen 2100 installationen durchführen. Diesmal mit video. Und an die ersten 1300 muss ich dann auch nochmal ran.
Ich danke euch für alle Tips
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  [Frage] Interesse für Gamelisten Tool? Pobeller 2 331 07.11.2023, 17:32
Letzter Beitrag: Pobeller
  Amiga Workbench für Windows smackm 4 1.379 03.01.2022, 19:30
Letzter Beitrag: Retro-Nerd
  [Grafik] Bräuchte mal eine kleine Hilfe für ein Dekompression Algorithmus für ILBM Bild Dateien SagaraS 7 3.715 14.12.2017, 18:30
Letzter Beitrag: tomwatayan
  [Frage] Werbeblocker für Android? SonataFanatica 8 3.603 12.03.2016, 18:03
Letzter Beitrag: Heinrich Reich
  [Frage] Software Raid für Windows 95 donald 0 1.375 27.12.2015, 11:30
Letzter Beitrag: donald

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste