Hallo Besucher, der Thread wurde 19k mal aufgerufen und enthält 140 Antworten

letzter Beitrag von sparhawk am

C128 Portierungen

  • Ich hatte früher mal einen C128D und war am Anfang recht gehyped. Soviele neue Möglichkeiten. Leider gabs aber nicht so viele Infos und daher habe ich dann fast nur noch "GO64" benutzt bevor ich dann auf den Amiga umgestiegen bin.

    Jetzt hatte ich wieder dran gedacht und mich gefragt warum immer noch so viele Programme für den C64 erscheinen, aber kaum was für den C128. Da der C64 ja ziemlich ausgereizt ist, habe ich deshalb überlegt, wenn ich was machen will, das dann eher auf dem 128er zu machen. Ich habe jetzt angefangen mal im "128 Intern" zu lesen, weil ja "64 Intern" quasi meine Bibel war. :) Und wenn ich mir das so ansehe, dann sollte es doch vergleichsweie einfach sein, seine C64 ASM Programme auch auf dem C128 zum Laufen zu bringen, oder sehe ich da was falsch?

    Der IO Bereich z.B. liegt ja auch auf $D000 und ist weitgehend kompatibel. Ein paar neue Register für den VDC, aber als C64 Programm muss man die nicht unbedingt benutzen. Auch viele anderen Sachen sind auch im 128er Mode gleich.

    Ist das also nur Gewohnheit, weil halt der 64er das Zugpferd war? Das man Module und andere Hardware noch auf dem 64er macht kann ich noch nachvollziehen, weil der 128er halt nicht so verbreitet war. Aber bei Programmen sollte das doch leichter sein, vor allem mit den heutigen Möglichkeiten von Emulatoren, da gibts ja auch nicht die Hürde dass man so viele Geräte rumstehen haben muss . Obwohl ich einen 128D ganz gerne wieder hätte um meine Sammlung zu vervollständigen.


    Da hier ja viele sind die recht fit mit dem C64 sind, habt ihr euch noch nie mit dem 128er beschäftigt? Gibts da vielleicht ein paar Stolperfallen, oder wie ist da eure Erfahrung?

    Muss mal meine C64 Projekte rauskramen, da habe ich z.B. so einen Characterscroller, den werde ich mal probeweise auf dem 128er ändern. Da ich den CA65 verwende sollte das relativ einfach sein.

  • Manche Features des C128 sind ja vom 64er-Mode auch nutzbar, zum Beispiel der 2Mhz-Fast-Mode, solange er nur dann zugeschaltet wird, wenn der sichtbare Teil des VIC-Bildschirmaufbaus abgeschlossen ist. Tobias hat hier eine Liste von C64-Spielen angelegt, die vom 2Mhz-Fast-Mode des C128 profitieren: http://wiki.icomp.de/wiki/Chameleon#Turbo (Allerdings kann es sein, dass hier nur der Turbo-Mode vom Chameleon gemeint ist. Das ist mir gerade nicht ganz klar.)


    Ansonsten hatte ich vorgestern im anderen aktuellen C128-Thread schon was gepostet, was hier reinpasst:

    Anfängerfragen zum C128


    Deine Frage kann man glaube ich immer so beantworten: Ja, es gibt zu wenig eigene Releases für den C128. Ja, es ist immer toll, wenn jemand was Neues für den C128 bastelt. :)

  • Manche Features des C128 sind ja vom 64er-Mode auch nutzbar, zum Beispiel der 2Mhz-Fast-Mode, solange er nur dann zugeschaltet wird, wenn der sichtbare Teil des VIC-Bildschirmaufbaus abgeschlossen ist. Tobias hat hier eine Liste von C64-Spielen angelegt, die vom 2Mhz-Fast-Mode des C128 profitieren: http://wiki.icomp.de/wiki/Chameleon#Turbo (Allerdings kann es sein, dass hier nur der Turbo-Mode vom Chameleon gemeint ist. Das ist mir gerade nicht ganz klar.)


    Ansonsten hatte ich vorgestern im anderen aktuellen C128-Thread schon was gepostet, was hier reinpasst:

    Anfängerfragen zum C128

    Hmmm. Das ist zwar interessant, aber auch wieder "nur" C64, wenn auch quasi ein erweiterter C64. :D Ich dachte da mehr an native 128. Sowas was auch in dem Anfängerthread gepostet wurde.

    Zitat

    Deine Frage kann man glaube ich immer so beantworten: Ja, es gibt zu wenig eigene Releases für den C128. Ja, es ist immer toll, wenn jemand was Neues für den C128 bastelt.

    Meine Frage zielte darauf ab, ob ich da was übersehe, aus ASM Sicht, und das deshalb so wenig drauf gemacht wird. Wie gesagt, ich habe mir erstmal nur das Intern durchgelesen (teilweise) und von daher hatte ich den Eindruck dass die Progamme auf dem 128er eigentlich recht ähnlich sein müssten und es daher für jemanden der sich auf dem C64 auskennt, recht einfach sein sollte sein Programm auch auf dem C128 nativ verfügbar zu machen.

  • Ist das also nur Gewohnheit, weil halt der 64er das Zugpferd war?

    Das liegt bestimmt hauptsächlich daran, weil der "Kundenkreis" beim C64 um Vielfaches höher war.


    Für kommerzielle Anbieter ist es selbstverständlich, dass meine Zielplattform jene ist, wo ich am meisten potentielle Kunden habe.


    Aber auch Private haben es lieber, wenn möglichst viele Menschen ihre Programme nutzen.

    Mal davon abgesehen, haben auch die Programmierer eher einen C64 als einen C128 gehabt ...

  • Das liegt bestimmt hauptsächlich daran, weil der "Kundenkreis" beim C64 um Vielfaches höher war.

    Für kommerzielle Anbieter ist es selbstverständlich, dass meine Zielplattform jene ist, wo ich am meisten potentielle Kunden habe.

    Das ist klar, aber wenn man nur einen sehr geringen Aufwand hat, dann kann man damit ja den Kundenkreis leicht erweitern. Die C128 Portierung ergibt sich dann quasi als Nebenprodukt. Wobei, wenn ich mir das überlege ist es vermutlich eher der logistische Aufwand der höher wird, weil es dann eine C64 und eine C128 Version gibt, also eine andere Disc benötigt.

    Zitat

    Mal davon abgesehen, haben auch die Programmierer eher einen C64 als einen C128 gehabt ...

    Hmm. Das wäre allerdings auch ein Argument. :)

  • Ein Mini-C128-Assembler-Projekt habe ich sogar selbst gemacht: Hier sind meine ersten Gehversuche in automatisch generiertem Assembler, von dem "Forum64 RSS Reader" gibt es von mir auch eine native C128-Version für den 80-Zeichen-Modus: https://retrostuff.cafeobskur.de/rss2prg.php (Den Reader hatte ich hier vorgestellt.)


    Ich habe dort PRGs für C64, C128 und C16/Plus/4, die sich ständig selbst aktualisieren. Die PRGs sind zwar in Assembler, aber sonst recht einfach und nutzen nur Kernel-Funktionen der betreffenden Plattform. Beim C128 wird in den 80-Zeichen-Mode geschaltet, und noch ein paar Kleinigkeiten. Ist primitiv, hat aber Spaß gemacht und ist prinzipiell ausbaufähig.


    245916-img-20210211-224718-2-jpg

  • Aber bei Programmen sollte das doch leichter sein, vor allem mit den heutigen Möglichkeiten von Emulatoren, da gibts ja auch nicht die Hürde dass man so viele Geräte rumstehen haben muss .

    Gerade wenn man mit Emulatoren arbeitet, dann kann der C128 doch so gut wie mit nichts mehr punkten. Dem C64 klickt man ja im Emulator ohne Probleme z.B. eine Speichererweiterung ran.


    Ich denke, dass der C128 einfach nur sehr wenig an "mehr" bietet, so dass es einfach zu wenig Anreiz gab und gibt, exklusiv für den C128 ein Spiel zu coden. Auch heute noch sind ein Vielfaches mehr an C64 als C128 da draußen und dann will man die nicht unnötig ausgrenzen.

  • Da hier ja viele sind die recht fit mit dem C64 sind, habt ihr euch noch nie mit dem 128er beschäftigt? Gibts da vielleicht ein paar Stolperfallen, oder wie ist da eure Erfahrung?

    Ich hab ein paar BASIC-Programme entwickelt, die laufen auch am 128er, im 80Z-Modus halt nur auf einer hälfte des Bildschirms. Aber immerhin...

    Wollte da auch etwas Assembler einbauen, aber die unterschiedlichen Speicherbereiche hätten dann verschiedene Versionen erfordert. Da blieb es dann bei BASIC.


    Bei Assembler hab ich bis heute nicht das Konzept mit MMU und Shared-ZeroPage/Bank-Switching komplett verstanden. Für die paar Punkte wo ich was anpassen musste hat das Wissen aber gereicht. Und wie Du selbst sagst gibt es ja VICE... und Try&Error :D


    Die F-Tasten-Abfrage in BASIC hatte zuerst nicht wie am 64er funktioniert. Da musste ich zuerst F-Tasten von den verknüpften Befehlen lösen.

    Die Kernal-Datei-I/O-Routinen sind fast identisch zum C64, nur SETNAM braucht eine extra-Wurst, weil man hier die Bank angeben muss in welcher der Dateiname liegt. Solche "Kleinigkeiten" gibt es bestimmt noch mehr...


    Für mich ist die Kiste mit Bank-Switching+VDC zu "Komplex"... auf meine alten Tage werde ich das nicht mehr lernen... der 64er ist halt schön einfach ;)

  • Die C128 Portierung ergibt sich dann quasi als Nebenprodukt.

    Das ist aus heutiger Sicht schon genau so.




    Damals hat man ein Spiel X für den C64 entwickelt und ein paar tausend mal verkauft.


    Wenn ein Manager auf die Idee kommt, das Spiel X zu portieren auf den C128, dann macht er eine Kosten-Nutzen Analyse:

    • 10.000$ damit man die Hardware hat und zwei Programmierer fit macht für C128
    • pro Spiel 20 Mann-Tage Aufwand für die Portierung ($8000)
    • Doku und Verpackung anpassen
    • Werbung / Marketing
    • erwarteter Gweinn: potentiell 2000 Kunden von denen maximal 100 das Produkt dann kaufen


    Damit dürfte das Projekt dann gegessen sein ...


    Da erwägt man lieber, seine Ressourcen in ein neues Projekt zu stecken.


    ====


    Mal davon abgesehen ist der typische C128 User kein Spieler.

    Sonst hätte er einen C64 wahrscheinlich.


    Man hat da mehr auf kleine Firmen oder Büros abgezielt.

    Oder Menschen die zuhause den Computer zum arbeiten nutzen.


    Z80 - CPM - 80 Zeichen Textmodus - das ist eine Ausgangsbasis für eine Büro Maschine der damaligen Zeit.


    Jemand der sonst vielleicht einen CBM-8296 kauft, der überlegt sich vielleicht einen C128.

    Dann hat er seine Büro Maschine und kann als Nebenprodukt nach Dienstschluss ein bisschen zocken.

  • Im 64'er Sonderheft gibt es viele 128'er Programme. Unter anderem auch den "Double-Ass", das ist ein 128'er Assembler der sowohl den 8502 als auch den Z80 nutzt(dadurch läßt sich noch mehr aus dem C128 herausholen). Dieser Assembler kann sowohl von Diskette als auch von U36 geladen werden. Zu finden auf Seite 66 bzw. im Heftscan auf Seite 55.

  • Ich glaube das 'Problem' ist daß der C128 im 40 Zeichen Modus im Prinzip ein C64 mit mehr Speicher ist. Grafik und Sound sind gleich, lediglich die Taktfrequenz ist doppelt so hoch.

    Das reicht aber offenbar nicht aus um damit wirklich spürbar bessere Programme (ok, sagen wir mal Spiele) zu programmieren?

    Den geringeren Speicher kann man ja z.b. mit Nachladen am C64 umgehen.


    Ist ein wenig so wie bei C16 und Plus/4. Was ich so weiß gits es dort auch haufenwsie mehr C16 Spiele, als reine Plus/4 Spiele?


    Einen wirklichen Unterschied hat für mich der Amiga gemacht, der ja auch schn zur selben Zeit in den Startlöchern stand. Somit wurden Spiele dann halt egher für den Amiga umgesetzt, als für den C128.


    Der C128 hatte seine Stärken dagegen denek ich im Home-Programmieren, weil das Basic einfach viel besser war, bzw. man im 80 Zeichen Modus auch tolle Sachen machen konnte (aber halt für Spiele eher ungeeignet)

  • Ich glaube das 'Problem' ist daß der C128 im 40 Zeichen Modus im Prinzip ein C64 mit mehr Speicher ist. Grafik und Sound sind gleich, lediglich die Taktfrequenz ist doppelt so hoch.

    Falsch geglaubt.

    Sobald der VIC II (40-Zeichen) Modus aktiv ist, muß der C128er mit 1MHz betrieben werden, da der VIC im 2 MHz Modus nichts darstellen kann.

    Der 2MHz Modus kann nur mit dem VDC (80-Zeichen Modus) betrieben werden.

    Und ja, ich weiss: im VIC-Mode kann man bis zu 20 - 30% mehr Leistung rausholen, wenn in 2 MHz geschaltet wird wenn VIC eh nix darstellt.

  • Ich glaube das 'Problem' ist daß der C128 im 40 Zeichen Modus im Prinzip ein C64 mit mehr Speicher ist. Grafik und Sound sind gleich, lediglich die Taktfrequenz ist doppelt so hoch.

    Das gilt im Prinzip auch für den 128k Spektrum. Da gabs dann halt portierte Spiele mit mehr Sound, Grafik, etc.

    Zitat

    Den geringeren Speicher kann man ja z.b. mit Nachladen am C64 umgehen.

    Na, ja. Das muss man natürlich, aber Nachlader sind immer öde am C64. :)

    Zitat

    Einen wirklichen Unterschied hat für mich der Amiga gemacht, der ja auch schn zur selben Zeit in den Startlöchern stand. Somit wurden Spiele dann halt egher für den Amiga umgesetzt, als für den C128.

    Das stimmt. Das war bei mir auch so. Der C128 kam etwas zu spät.

    Zitat

    Der C128 hatte seine Stärken dagegen denek ich im Home-Programmieren, weil das Basic einfach viel besser war, bzw. man im 80 Zeichen Modus auch tolle Sachen machen konnte (aber halt für Spiele eher ungeeignet)

    Das will ich mal ausprobieren. Ich schaue mir gerade den 80 Zeichen Modus an weil ich schauen will wie langsam oder schnell der ist. Der ist zwar umständlicher zu programmieren, dafür kann man eben den 2MHz Modus verwenden und der Chip hat ja auch diverse Zusatzfähigkeiten wie Scrolling. Da möchte ich mal sehen was man damit anfangen kann.

  • Ich glaube das 'Problem' ist daß der C128 im 40 Zeichen Modus im Prinzip ein C64 mit mehr Speicher ist. Grafik und Sound sind gleich, ...

    Genau das war (und ist) das "Problem" des C128, wenn es um Spiele geht. Es gibt kaum Relevantes, was er dem C64 voraus hätte. Auf alle Fälle viel zu wenig, um ein (kommerzielles) Spiel exklusiv für den C128 zu programmieren.

  • Das will ich mal ausprobieren. Ich schaue mir gerade den 80 Zeichen Modus an weil ich schauen will wie langsam oder schnell der ist. Der ist zwar umständlicher zu programmieren, dafür kann man eben den 2MHz Modus verwenden und der Chip hat ja auch diverse Zusatzfähigkeiten wie Scrolling. Da möchte ich mal sehen was man damit anfangen kann.

    Du bist ja auch aus Wien, wie ich sehe?

    Da solltest du dich mal mit meinem Bruder zusammensetzen, der hat am C128 früher sehr viel programmiert und kennt den VIC im 80 Zeichen Modus ziemlich gut. :)

  • Z80 - CPM - 80 Zeichen Textmodus - das ist eine Ausgangsbasis für eine Büro Maschine der damaligen Zeit.


    Jemand der sonst vielleicht einen CBM-8296 kauft, der überlegt sich vielleicht einen C128.

    Dann hat er seine Büro Maschine und kann als Nebenprodukt nach Dienstschluss ein bisschen zocken.

    Das war natürlich der offizielle Grund. Tatsächlich ging es darum, Amstrad die Z80 CPUs vor dor der Nase weg zu schnappen und somit

    effektiv die CPC´s zu bekämpfen. :bgdev

  • Da hier ja viele sind die recht fit mit dem C64 sind, habt ihr euch noch nie mit dem 128er beschäftigt? Gibts da vielleicht ein paar Stolperfallen, oder wie ist da eure Erfahrung?

    Ich hatte damals erst recht spät ein C128, ca. 1995/96. Interessant fand ich ihn schon immer, aber früher hatte ich nicht sehr viel Dokumentation, ausserdem war der Amiga damals interessanter. Eigentlich auch noch heute ;)

    Aber es gibt eigentlich wenig Vorteile, die der C128 hat.


    In Giana Sisters 30th Anniversary nutzen wir z.B. den 2 Mhz Modus im C64 Mode, allerdings macht sich das kaum bemerkbar.
    Auf PAL Maschinen macht es auch kein Unterschied.
    Auf NTSC Maschinen ist es überhaupt nur bemerkbar, wenn man die richtigen Stellen spielt und weiß worauf man achten muss. An einigen wenigen Stellen, kann nämlich die Musik langsamer werden, wenn gerade gescrollt wird und noch 4 Gegener bewergt werden und wenn man noch gleichzeitig schießt. Da hat man auf NTSC einige hundert Taktzyklen zu wenig, so dass im 1MHz Modus die Musik kurzzeitig langsamer abgespielt wird.

    Aber zurück zu den Vorteilen des C128 im C128 Modus:

    - schnelleres Laden, wenn man System-Routinen verwendet
    - mehr Speicher
    - Double-Bufferfähiges Color Ram. Da kann man offenbar das Color Ram in einer der 64k Bänke abwechselnd einbleden. Geht wohl über Register $01 - Das kann aus meiner Sicht auch recht hilfreich sein zum Besipiel, wenn man in alle Richtungen scrollt .
    - Ein VDC der allerdings kaum für Action Spiele genutzt werden kann, weil keine Sprites und umständlich/langsam anzusprechen ist. Aber wenigstens kann man auch mit dem VDC weich scrollen :)

    - Der 2 Mhz Modus (lässt sich aber nur im Rahmen einschalten, wenn man den VIC-IIe nutzt).
    - Die Zero-Page und Stack lässt sich im ganzen Speicher verschieben über die MMU.


    Ich kann evtl. auch falsch liegen, da ich nie wirklich für den C128 Modus programmiert habe, aber so weit ich das aus irgendwelchen Büchern (aus dem Internet) gelesen habe müsste das passen.


    Sonst hat der VIC-IIe im C128 ja auch nur 2 Register mehr. Eins für die Abfrage der zusätzlichen Tasten und eins für den 2 Mhz Modus.
    Und das Prozessor Register $01 ist verschieden. Und man hat eine MMU und einen zwiten Grafikchip (VDC) mehr.


    Aber im Gegensatz zu einem C64 mit Speichererweiterung (z.B. die REU mit DMA-Block Copy) oder ein Cartridge mit viel Speicher und/oder einem schnelleren Prozessor hat man keine oder nur wenige Vorteile.

    Leider gibt es keine Spiele, die wirklich alle Vorteile des C128 ausnutzen. Ähnlich wie bei AGA-Amigas (CD32/A1200/A4000). Wobei es mehr AGA Spiele gibt als C128 Spiele die wenigstens einige wenige Features der Plattform nutzen.

  • Hat nicht Rocky Horror Picture Show auf dem C128 farbigere Grafik usw? Nutzt das irgendwelche C128-Features aus? Oder hatten die die C64-Version voreilig rausgebracht und dann einfach ein bisschen aufgehuebscht fuer die C128-Version? Weiss da jemand was genaueres?

  • Na, ja. Das muss man natürlich, aber Nachlader sind immer öde am C64

    Ultima V kann man auch im C128-Modus starten, den zusätzlichen Speicher nutzt es zum einen für Ingame-Musik und zum anderen als Cache, weil das Spiel ständig Teile der Welt nachlädt. Selbst das VDC-RAM wird noch als zusätzliche Datenablage herangezogen, kann man ganz gut sehen wenn man den vor dem Start des Spiels in den Grafikmodus versetzt.