Hello, Guest the thread was called5.6k times and contains 45 replays

last post from SkulleateR at the

Projekt: Hanse übersetzen

  • Yes, und leider gibt's dafür auch keinen Decompiler - und es wird sich wohl auch niemals jemand die Mühe machen, einen zu schreiben. Trotzdem danke, Broti! Die Software kannte ich noch gar nicht.

  • Als auch an Wirtschafts-Simulationen interessierter Forscher (z.B. Fugger) bin ich kurz über diesen Fred gestolpert. Man muss nicht Sachen herausfinden, die schon herausgefunden wurden, und als Fraggle besuche ich vor großen Vorhaben immer die allwissende Müllhalde Marjorie, die damals noch ein einzigartiges Privileg der Fraggles war, aber heutzutage der ganzen Welt zur Verfügung steht.


    Ich zitiere das Wichtigste aus Wikipedia:

    "Die CPC-Version wurde von Ralf Glau in BASIC geschrieben, zeitkritische Teile wurden in Maschinensprache programmiert.

    Die C64-Version hat Bernd Westphal auf der Grundlage der CPC-Version geschrieben."


    Man muss also nur noch einen Schneider/Amstrad CPC - Simulator in Betrieb nehmen, evtl. ein wenig Tricksen, und schon hat man den Basic Code (allerdings für einen 128kB RAM Rechner). "Emulatoren", wie man heutzutage Simulatoren bezeichnet, sind ebenfalls unter obigem Link auffindbar.


    Selbst ein Blick mit dem Windows-Wordpad in eine CPC-Hanse-Diskette läßt leicht erkennen, dass hier Basic und Maschinensprache (Data-Werte) im Spiel sind.

    An das Basic-Listing heranzukommen sollte wirklich kein Problem darstellen. Die Maschinensprache-Routinen betreffen nur Zeitkritisches, wie z.B. Grafik-Zeichnen, und sind mit Sicherheit einfach zu durchschauen (Z80-CPU) bzw. zu ersetzen. Womöglich läuft das Ding fast 1:1 auf einem Commodore 128 (122365 Basic Bytes Free, Basic V7.0, (C) 1977 by Microsoft Corp. lese ich da leider auch noch SEUFZ! bei der Einschaltmeldung... wußte damals schon intuitiv warum mir die Kiste nie wirklich sympathisch wurde...ist beim C64 zum Glück nicht dabeigestanden....).


    Und last but not least: Es gibt Hanse für den CPC nebst Deutsch auch in Französisch und Spanisch (ROMs bzw. Disks findest du im Internet). So gesehen hast du recht, daß da zumindest noch die englische Variante (nebst italienisch) fehlt.

  • SkulleateR :

    Wow, da hätten wir ja beste Unterstützung, um schon mal den Basic-Sourcecode in der Hand zu haben!

    Emulator bräuchten wir vermutlich aber dennoch, denn wie bekommen wir das Listing sonst rüber auf den PC?


    Das Locomotive-Basic wird sich nicht wesentlich vom V2 oder V7 (C128) unterscheiden (CPC-Handbuch?). Anpassen muss man die Software ohnehin, wenn man sie auf dem C64/128 zum Laufen bekommen möchte, da einige Maschinen-Routinen (Grafik) im Spiel sind. Und das Programm will man ohnehin zerlegen und analysieren WOLLEN, denn es sollen schliesslich alle dunklen Geheimnisse von HANSE an´s Tageslicht kommen!


    Abgesehen davon könnte dann das Programm mit einem Vorspann versehen weden:

    --------------------------------

    PLEASE SELECT LOCALE:

    [*] Deutsch

    [ ] English

    [ ] Espanol

    [ ] Francais

    [ ] Italiano

    [ ] 日本

    -------------------------------


    Dann wird der Zeichensatz und das "Sprachpaket" (die paar Wörter und Sätze halt, das ist fast lächerlich) geladen, und dann das eigentliche HANSE Spiel gestartet.


    Habe bis jetzt den Eindruck finchy hat sich´s überlegt und möchte das Projekt doch nicht wirklich angehen. Und bis jetzt hörte ich nur Ausreden wie "geht nicht, viel Arbeit" und Fingerzeige auf Andere oder Anderes (z.B. kein Decompiler). Wenn jemand WIRKLICH an HANSE etwas gefunden hat, dann würde er fast ALLES tun, um zumindest den Basic-Source-Code studieren zu können. Und wenn jemand WIRKLICH Interesse für Sprachen hat, dann würde er meinen Vorspann-Vorschlag lieben und sich international ein HANSE-Denkmal damit setzen.

    Habe aber natürlich Verständnis dafür, wenn jemand ein Projekt (auch unbegründet) verwirft.

  • Das Locomotive-Basic wird sich nicht wesentlich vom V2 oder V7 (C128) unterscheiden (CPC-Handbuch?).

    Locomotive Basic und CBM Basic V2 unterscheiden sich doch schon recht gewaltig voneinander.

    Ich hänge hier mal die Befehlsübersicht der Version 1.0 an.

  • Und genau das ist das Problem, selbst kleine Programme in Basic müssen auf dem jeweils anderen Computer eigentlich komplett neu geschrieben werden, dafür kenn ich mich in Basic aber auch einfach nicht gut genug aus, davon mal ab dass das ewig dauern würde ....


    Wenn gewünscht kann ich ein Image von meinem orginal Hanse Tape hier anhängen falls sich jemand daran machen möchte ... ich persönlich kümmere mich erstmal um das Auslesen der Disk auf der schon einige Anpassungen vorgenommen wurden, das hat leider bisher noch nicht wirklich funktioniert ....

  • Habe bis jetzt den Eindruck finchy hat sich´s überlegt und möchte das Projekt doch nicht wirklich angehen. Und bis jetzt hörte ich nur Ausreden wie "geht nicht, viel Arbeit" und Fingerzeige auf Andere oder Anderes (z.B. kein Decompiler).

    Du meinst es bestimmt in der Sache gut, deswegen nehme ich dir das mal nicht krumm. Aber das liest sich schon etwas unangenehm in meine Richtung. Du darfst natürlich sehr gerne den CPC-Basic-Code auf den C64 portieren, wenn du möchtest. Die unterscheiden sich doch sehr voneinander, wie Bodhi1969 richtig hervorhebt.


    SkulleateR : Ich hätte noch Interesse an dem Diskimage. Kann ich dir irgendwie helfen? Ist die Disk vielleicht verschmutzt? Und Images der Originaltapes gibt es bereits im Netz, die Mühe musst du dir, glaube ich, nicht mehr machen.

  • finchy


    Ja, ich hab mir das CDT von Hanse (CPC Version) angesehen, das ist auch genau die Version


    Bezüglich der C64 Disk : nein, verdreckt ist sie nicht, hab sie auch schon gereinigt. Ich fürchte hier ist eher ein Defekt schuld denn rund um Track 18 gibts Fehler beim Auslesen. Ich hab aber die Hoffnung dass es nur das Directory betrifft und ich über ein kopieren der Sektoren zumindest an das Haupt-PRG rankomme .... muss nur erstmal wieder Zeit dafür finden, stay tuned ;)

  • finchy :

    Du meinst es bestimmt in der Sache gut,

    Keine Sorge, vielleicht klingen meine Aussagen "unangenehm", sind aber keinesfalls diskreditierend gemeint! Sorry, wenn da was falsch rübergekommen ist. Aber ich liebe positiven, konstruktiven und motivierenden Input (statt "...keine Chance..."), und einen positiven "Drive" habe ich hier overall letztendlich nicht so empfinden können, trotz auch tw. ausgezeichneten Inputs.


    Ich fasse mal konstruktiv zusammen (fände ich gut wenn das öfters wer machen würde):


    [*] Hanse soll übersetzt werden: in Englisch, oder doch gleich in mehrere Sprachen?


    [*] via Diskeditor? docbobo hatte sich laut seinen Aussagen in diesem Strang einen eigenen Editor zum Eindeutschen von MotM gebastelt. Der könnte vielleicht Tipps beisteuern, wie man sowas angehen kann. Mal anfragen?

    Jedenfalls ist der Umfang überschaubar: Der Programmhauptteil (laut HTW-Version) hat 122 Blocks, das sind z.B. mit Ex-Dos II angezeigt (nicht empfohlen!) 244 Bildschirm"seiten" (eigentlich nur der Rand). Davon werden die wenigsten Text enthalten. Ich wette die Liste der relevanten Blocks ist überschaubar, aber auch unverzichtbar, denn man will ja wissen, was da an Gesamtaufwand auf den Übersetzer zukommt. Mal ´ne Liste machen?


    [*] oder doch das gesamte Spiel hacken? Vorteile wären optimale Anpassbarkeit inkl. Sprachauswahl sowie Analyse der Spielmechanik:


    Vor Basic habe ich keine Angst, und die Befehlsliste vom Locomotive-Basic 1.0 beeindruckt mich überhaupt nicht. Respekt habe ich höchstens vor Simon´s Basic, weil dort die Syntax meiner Meinung nach recht kompliziert/kontraintuitiv sein kann.


    Die Überlegung war: 1984 erschien der CPC, Hanse 1986. Evtl. wurde Hanse auf dem CPC nicht compiliert, oder es gab damals nur 1 Compiler und evtl. dazu einen Decompiler. Ziel der Übung: Locomotive-Basic Source Code!


    => Gibt es einen CPC Spezialisten, der das checken könnte? Ein Upload des Basic-Source Codes würde schon mal wesentlich weiterhelfen. Dann kann man abschätzen, wie lange eine Portierung auf C128 und/oder C64 überhaupt dauern könnte.


    Falls der Basic-Code nicht zu beschaffen ist, dann bleibt alternativ zur Diskeditor-Variante das Decompilieren. Einige Spezialisten haben hierzu schon hilfreiche Tipps reingestellt. Ein Weg, der sich sicherlich weiterverfolgen läßt!

    Es geht nicht darum einen generellen Decompiler für Basic64 zu schreiben, sondern eine gezielte Einzel-Decompilierung. Dazu benötigen wir erst einmal einen guten Memory-Dump (das Teil lädt nämlich am Anfang nach), und dann eine gute Analyse, z.B. mittels statically tracing disassembler (Download). Der Einsprung ist übrigens NICHT $0801... ;-)


    Falls dennoch keiner da was macht, da habe ich wie gesagt Verständnis, der Strang ist schließlich auch schon eine Weile her. Aber "geht nicht" lasse ich nicht gelten (bei all den tollen Spezialisten hier!), und "viel Arbeit" nunja, wenn es als Arbeit empfunden wird, dann macht´s also keinen Spaß, und dann würde auch ich sowieso die Finger davon lassen.

  • Fraggle


    Ich habe (und hatte damals) nie die Absicht gehabt mehr zu tun als eine Übersetzung ins englische, das ganze würde sogar heute den mir zur Verfügung stehenden Rahmen sprengen und davon mal ab kenne ich mich in Sachen "reverse engineering" mal so garnicht aus ;)


    Ich habe übrigens nach der ersten Teilrekonstruktion tatsächlich auch die HTW Version verwendet, nächstes Ziel ist das kopieren der Sektoren vom MAIN.PRG auf eine heile D64 Version, dann sehen wir weiter ...

  • Naja, bei einem BASIC-Projekt könnten ja viele Leute mithelfen, das ist ja nicht umsonst eine Einsteigersprache. Ob jemand jetzt Texte übersetzt, Code optimiert oder die Spielmechanik analysiert und ggfs. verbessert, kann dann ja jeder für sich entscheiden.


    Wenn jemand den BASIC-Source der CPC-Version nach ASCII konvertieren und hier zur Verfügung stellen kann, wäre das doch schon mal ein Anfang. Selbst wenn nie was daraus wird, wäre das sicher interessante Lektüre.

  • Das ist die kleinste Übrung :D

    Danke. Ich hab HANSE2.TXT mal kurz überflogen:


    Ist ein bisschen schwer lesbar, weil beinahe alle Zeichenketten, die das Programm ausgibt, nicht Bestandteil des BASIC-Codes sind sondern beim Programmstart aus der Datei "d" gelesen werden. Andererseits vereinfacht das natürlich die Übersetzung erheblich, weil (fast) nur der Inhalt von "d" übersetzt werden muss. Kannst du die Datei mal noch extrahieren und anhängen?


    Mehr als die Hälfte der Zeilen ist deutlich länger als 80 Zeichen, das müsste man auf mehrere Zeilen aufteilen. Ist aber lediglich Fleißarbeit: die Zeilennummern sind schön im 10er-Abstand.


    Der Rest des Codes scheint - abgesehen vom Zeichnen der Landkarte - eigentlich ziemlich gut verwendbar. Locate, CLS und diverse Befehle für Farbänderungen müsste man anpassen, manchmal ist die Syntax etwas anders (Open, Input#), aber im Großen und Ganzen ist das gut machbar, meine ich. Sind weniger als 500 Zeilen Code, das Meiste nur Wertzuweisungen, FOR-Schleifen, IF-Abfragen - das kann man unverändert weiter übernehmen.


    Das Zeichnen der Landkarte würde ich sowieso irgendwie optimieren wollen, das ist aktuell ja (auf dem C64) ziemlich grauenhaft gelöst.

  • Na bitte, gibt ja doch entscheidende Fortschritte hier!


    Frage so nebenbei an finchy (neben den vorhin gestellten Fragen):

    Immer noch Lust Hanse auf dem C64 zu übersetzen, wo es doch bereits für den Amstrad/Schneider CPC immerhin 4 Sprachversionen gibt?

    English (UK, done 2019), Französisch, Spanisch, Deutsch - alles downloadbar hier: Hanse in D/F/S/E(UK) 

    Als Übersetzer hättest du da eigentlich keinen Job mehr, sondern nur mehr als reiner Datentypist!


    SkulleateR :

    Könntest Du die entscheidenden Basic/Daten-Dateien von der Originalversion, sowie allen 4 Sprach-Hack-Versionen ebenso uploaden?

    Dann könnte man sich z.B. via Beyond Compare die Unterschiede ansehen, und so prüfen, ob der Code bei den Sprachhacks unbeschadet blieb. Das Ziel wäre ein "sauberer" Basic-Code, bei dem sich dann eine Analyse (oder falls es überhaupt noch jemand vorhaben sollte, eine Portierung auf C128/C64 - natürlich mit Locale-Selector) lohnen würde.

    Jedenfalls aber schon mal vielen Dank für den bisherigen Basic-Code, da kann man schon genug daran ablesen und herausforschen!


    (Vielleicht löst jetzt jemand die eingangs gestellte Frage von finchy: "Was bewirkt eigentlich die Audienz beim Kurfürst von Sachsen außer die teuerste Schale Reis der Welt? :D Fehlt da was im Code oder wird die Audienz auf ein unsichtbares Prestige-Konto gebucht, das mir beim Aufstieg hilft?")


    P.S. Ruft doch einfach mal Ralf Glau an (Tel. 0561/404710), oder schreibt ihm eine Postkarte (Wegelaenge 12, 3500 Kassel), der freut sich bestimmt, wenn es da noch einen Hype um seine damalige Schöpfung gibt. Und falls ihr nur Raupkopien besitzt freut er sich sicher über Nachzahlungen.


    P.P.S. Nach dem Durchforsten der CPC-Emulatormöglichkeiten scheinen APE und CPC-Emu die einzig brauchbaren zu sein, allerdings ohne das Zeug installiert/getestet zu haben.

  • Fraggle


    Mal ernsthaft, das würde jede Menge Zeit in Anspruch nehmen und ich hab im Moment genügend andere Projekte die meine Freizeit in Anspruch nehmen. Jedes Image auf den CPC Transferieren, Basic Teile laden, als ASCII Datei speicherm, zurückübertragen .... da geht schon Zeit ins Land.


    Mein Ziel ist weiterhin meine vor ca. 15 Jahren erstellte Version zu rekonstruieren (mehr als zwei Bildschirme waren glaub ich nicht übersetzt) und hier zur Verfügung zu stellen und das hat erstmal vorrang. Der Tag hat nunmal nur 24 Std und neben Arbeit, Essen, Schlafen, Duschen und Zeit mit der Family bleibt da nicht viel übrig !