Hello, Guest the thread was called44k times and contains 546 replays

last post from HOLY MOSES/ROLE at the

Super Mario Bros für den C64

  • Hmm... Wenn man:


    - das Game insgesamt mit weniger Frames laufenlässt

    - oder von mir aus auch bei den Sprite-Animationen Frames weglässt

    - und zusätzlich vielleicht auch noch die Soundqualität irgendwie zurückschraubt?


    ...ist das was dabei rauskommt, dann nicht viel krätziger als so ein popliger Slowdown?


    :smoke:

  • Optimierungs Möglichkeiten gibt es sicherlich, nur müsste das Spiel neu geschrieben werden. Mario ist ja konvertiert worden.


    Ein neues Spiel auf dem C128er, das alle Möglichkeiten ausschöpft, wär sicherlich interessant. Problem ist die geringe

    Stückzahl der Rechner.. So ein Spiel würde sich nicht lohnen.. Schade :(



    MiC

  • Ein neues Spiel auf dem C128er, das alle Möglichkeiten ausschöpft, wär sicherlich interessant. Problem ist die geringe

    Stückzahl der Rechner.. So ein Spiel würde sich nicht lohnen.. Schade :(

    Auch bei kleiner Stückzahl Trap Them 64 kann C128 (Auch wenn man nur ganz wenig den ausnutzen kann im C64er Modus).

  • ...ist das was dabei rauskommt, dann nicht viel krätziger als so ein popliger Slowdown?


    Ja, das mag Ansichtssache sein, was man hier dann bevorzugt. Aber diese beschriebenen "Einschränkungen" wären ja immer nur jeweils ein paar Sekunden lang zu sehen, nicht dauerhaft. Ich muss ehrlich sagen, dass "Super Mario Brothers 1" ja ein doch eher recht einfaches Jump and Run ist. Am NES spiele ich das manchmal schon auf Speedrun, also nur noch auf Zeit, weil ich es sowieso immer durchschaffe.


    Und genau bei solchen Speedruns muss eben das ganze Timing im springen und laufen undsoweiter, genau passen. Macht man da als Spieler einen kleinen Fehler, geht man entweder drauf, oder die gute Zeit ist hin. Und diese Slowdowns hier am C64 bei SMB, die machen jegliche Art von Speedrun oder sonstigem fehlerfreiem Top-Spiel dahin, denn dafür muss eben alles genau passen.


    Da würde ich persönlich jetzt jegliche andere Art von Verschlechterung eindeutig lieber in Kauf nehmen, als dieses "in die Knie gehen des Gesamt-Speeds". Denn auf den eigentlichen Spielablauf an sich, also wie der Spieler zockt, hätte es keinerlei Einfluss, wenn der Sound schlechter klingen würde eine kurze zeitlang, oder wenn kurzzeitig mit 25 FPS gescrollt wird statt mit 50 FPS, oder wenn kurzzeitig Animationsphasen beim Sprite fehlen würden. Es sähe halt nicht mehr so gut aus kurzzeitig, aber es hat nicht direkt einen Einfluss darauf, wie der Spieler zockt. Man konzentriert sich ja immer eher auf das was vor einem liegt im Spiel und schaut dorthin, deshalb würde mich das nicht weiter stören.


    Was ich aber als störend empfinde, ist eben, wenn der Gesamt-Speed einbricht, weil dann in diesen Momenten auch die Spielbarkeit nicht mehr zu 100% gegeben ist. Das Timing passt dann halt nicht mehr genau. Das gilt natürlich nicht nur für Leute die einen Speedrun machen wollen, sondern bei allen Spielern passen dann die Timings nicht mehr, wenn der Gesamtspeed einbricht.


    Sicher ist das Ansichtssache, was man lieber will. Aber eine Version, nämlich jene, die in die Knie geht geschwindigkeitsmäßig wenn viel los ist am Screen, gibt's ja nun schon. Gäbe es nun noch eine auf Performance getrimmte und optimierte Version mit kuzzeitigen Einschränkungen anderer Art, dann könnte man es sich als Spieler aussuchen, welche man lieber zocken will und alle Spieler könnten zufrieden sein. Ich würde mit Sicherheit dann immer zur letzteren Version greifen. :)


    Auch mit 25 FPS bringt man ja recht flüssiges Scrolling hin beispielsweise und es wäre ja immer nur für einen kurzen Augenblick nötig. Wenn da dann also immer jeweils ein paar Sekungen lang umgeschaltet werden würde vom Spiel auf solch einen FPS-Modus und danach dann wieder auf 50 FPS zurück, wäre das verkraftbar denke ich. Aber ich kann jetzt nicht wirklich einschätzen, ob sowas dann ausreichen würde, hier dann Slowdowns zu verhindern, wenn viel am Bilschirm los ist. Das sind lediglich Vorschläge.

  • Da du ja ganz genau weißt wie das funktioniert bist du offensichtlich genau der Richtige um diese verbesserte Version zu basteln. Fang schon mal an... :D


    Hab ich nie behauptet, dass ich da genau Bescheid weiss. Im letzten Satz hatte ich dazu extra noch geschrieben:


    "Aber ich kann jetzt nicht wirklich einschätzen, ob sowas dann ausreichen würde, hier dann Slowdowns zu verhindern, wenn viel am Bilschirm los ist. Das sind lediglich Vorschläge."


    Es wäre aber halt toll, wenn es eine auf Performance getrimmte Version des Spiels geben würde, da der C64 viel verbreiteter ist wie der C128 und in der Form wie das Spiel jetzt ist, kann man es wohl eher als C128 Spiel bezeichnen, da es eben nur dort richtig gut läuft.

  • "Zeropaige" selbst wird wohl nichts mehr daran machen, befürchte ich, vielleicht erbarmt sich ja mal ein anderer Programmierer, der eine Idee hat, wie es umzusetzen wäre ohne dass der Speed am C64 in die Knie geht?

    Wäre es ein kommerzieller Port gewesen, hätte man wohl einfach an kritischen Stellen ein paar Gegner weniger untergebracht und nicht ganz so viel wert darauf gelegt, daß es möglichst 1:1 portiert wird.

    Das dürfte gängige Optimierungspraxis von damals bis heute sein, denn immer wieder gibt es Beispiele, wo im finalen Spiel gegenüber einer Vorabdemo stellen abgespeckt wurden, um Probleme auf dem angestrebten System zu vermeiden.

  • Also echt, ich glaube kaum, dass sich jemand die Arbeit machen wird. Schließlich gibt es schon passable Möglichkeiten, das Game zu spielen. Die einfachste Lösung ist es, wenn man es als C128-Spiel ansieht. Mit der zusätzlichen Option, es auch am 64er leicht eingeschränkt spielen zu können.


    Aber okay, die Leute, die keinen 128er daheim rumstehen haben, werden meine Ansicht vermutlich nicht teilen können ;)

  • Die einfachste Lösung ist es, wenn man es als C128-Spiel ansieht. Mit der zusätzlichen Option, es auch am 64er leicht eingeschränkt spielen zu können

    Von "leichten" Einschränkungen würde ich hier, so meine persönliche Meinung, aber nicht sprechen. Aber sonst wäre ich auch wesentlich weniger enttäuscht, wenn es von Anfang an als C128-Spiel verbreitet worden wäre. Aber da es total gehyped wurde als toller Port für den C64 und dieser Anspruch auch im Namen sich wiederfindet, hat es bei mir halt gewisse Erwartungen hervorgerufen. Finde ich aber auch nicht so ungewöhnlich, da das bisher auch die Regel war und ist, dass ein technisch "gutes" Spiel für den C64 ohne Slowdowns läuft.

    Wenn man dieses Spiel allerdings eher als Tech-Demo betrachtet, dann ist es sicher eine starke Leistung. Nur als Gamer (aka Lamer? ;) ) reißt mich dieser Port eher nicht vom Hocker. Ich denke allerdings, dass der Tech-Demo-Ansatz, es zu machen, weil er es kann, sowieso eher der Fokus des Coders war. Und da hat er zweifellos hoch gepunktet. Von daher hat er meinen Respekt, auch nicht zuletzt für die jahrelange Arbeit.

  • Als ob der Port ständig und immer im Slowdowns laufen würde.. . So schlimm ist's gar nicht. Ausserdem wird es in den Momenten ganz flüssig / stufenlos langsamer, ruckelt also 'nicht'.

    Da sind einige SNES Games mind. genauso stark betroffen (von Slowdowns).. .

    - oder von mir aus auch bei den Sprite-Animationen Frames weglässt

    Das bringt eigentlich null mehr Speed. Ist ja nur ein Zähler / Sprite-Pointer der hochgezählt bzw. verändert wird.. .

    Ob ein Sprite dann nun nur drei oder doch ganze 32 Animationsstufen hat, spielt daher keine (große) Rolle. Es wird immer nur ein und dasselbe Register benutzt / verändert.

  • Weiß man denn mittlerweile welcher Scener dahintersteckt?

    ZeroPaige natürlich. :D

    Aber im Erst: Die Gründe, warum er ein Pseudonym nur für diese eine Sache verwendet hat, sind vollkommen nachvollziehbar. Und ich finde, wir sollten das respektieren und es einfach dabei belassen. Wir wollen doch nicht, daß da am Ende noch jemand Ärger bekommt.

  • Ja alle jammern sie immer.

    Ich finde das Spiel ist super gelungen und habe eine Menge Respekt vor den Leuten, die heute noch Originalhardware laufen haben.

    Ich bin davon so allmählich ab.

    Ich habe leider keine Röhre mehr zur Verfügung und werde mir auch keine mehr nachkaufen, auch wenn man so einen Fernseher für nen 10er bekommt.

    Ich liebe den C64 und den VC 20 auch.

    Deshalb habe ich den The C64 auch schon vorbestellt.:thumbsup:

    Aber genau da fänge es an. Als TV habe ich einen 65 Zoll und einen 32 Zoll TFT.

    C64 geht , man gewöhnt sich mit der Zeit dran und VC 20 ist absolut grottenschlecht.

    Dann hat jeder der noch Originalhardware hat auch irgend eine Floppyemulation SD2IEC oder beim Amiga Gotek Floppy usw.

    Also früher oder später laden alle auch auf original Hardware die Games von alternativen Datenträgern.

    Worauf ich hinaus möchte ist, es geht hier ja um Super Mario für den C64.

    Der Vice 128 Emulator funzt super, aber das 50 Hz Problem.

    Der Hosx64 kein 50 Hz Problem aber kein C128.

    Da bleibt noch der Raspberry Pi mit Bare metal c128.

    Sehr gut das Teil, muss ich ihm lassen.

    Jetzt zum Punkt.Unsere Originalhardware stirbt.Jeder für sich aber es ist wie bei uns.Alle werden sterben.

    Das Ultimate 64 ist sehr nahe dran, das Leben des C64 maßgeblich zu verlängern und auch fast Alle Chips sind mittlerweile als FPGA in der Wiedergeburt.

    Wenn es den VIC II als FPGA mit HDMI oder DVI out geben würde, dass wäre die Krönung.

    Das wäre natürlich auch für den C128 wünschenswert.

    Es wäre natürlich schön, da wenn alles Leben seinen Zenit überschreitet es auch für den C128 einen FPGA geben würde und entweder für den Mister oder als Core für den Ultimate 64 umgesetzt werden könnte.

    Noch wiederum besitze ich einen C128 mit 1571 und einen C128D Plastik, die noch wohlauf sind und mit etwas Gewöhnung auch auf dem TFT noch spielbar sind.

    Wenns dazu kommt, es auch einen C128 als FPGA zu bekommen, wird da es meiner Meinung in X Jahren keine laufenden C64 mehr gibt, es sei denn es sind Elektronikexperten und Chips wie der VIC II werden tatsächlich reproduziert und der Prozessor ebenfalls.

    Sollte auch heutzutage also für jeden möglich sein das Spiel im C128 Modus zu spielen.

    Ich kanns noch original, aber im Ernst. Es macht mir tatsächlich auf dem Raspi mit BMC128 genausoviel Spaß, wenn ich den Bildschirm allein im Auge habe.

    Es gibt immer noch das Gewisse ehrwürdige Feeling, die Original C128 Tastatur zu bedienen, aber auch die Chips werden das Zeitliche segnen.

    Ich hoffe, die Schätzchen machen das noch ein bisschen und bis dahin macht jemand was, aber ich bin zu blöd dazu, aber wenn ich Google beschäftige sieht es beinahe so aus, dass ich fast der Einzige bin, der sich einen C128 als FPGA wünscht.?(

    Eine Modifikation des Spiels halte ich auch für Überflüssig.

  • Als ob der Port ständig und immer im Slowdowns laufen würde.. . So schlimm ist's gar nicht. Ausserdem wird es in den Momenten ganz flüssig / stufenlos langsamer, ruckelt also 'nicht'.

    Da sind einige SNES Games mind. genauso stark betroffen (von Slowdowns).. .

    - oder von mir aus auch bei den Sprite-Animationen Frames weglässt

    Das bringt eigentlich null mehr Speed. Ist ja nur ein Zähler / Sprite-Pointer der hochgezählt bzw. verändert wird.. .

    Ob ein Sprite dann nun nur drei oder doch ganze 32 Animationsstufen hat, spielt daher keine (große) Rolle. Es wird immer nur ein und dasselbe Register benutzt / verändert.


    Wurde ja auch nie behauptet, dass der Port IMMER in Slowdowns laufen würde. Fakt ist aber, sobald drei oder mehr Gegner mit im Bild sind, können die 100% Speed nicht mehr gehalten werden und es wird oben dieser kleine Punkt im Spiel angezeigt, der dem Spieler verdeutlicht, dass der Gesamtspeed in die Knie gegangen ist. Ob es dabei ruckelt oder nicht ist zweitranging, Fakt ist aber, dass die Spielbarkeit nicht mehr richtig gegeben ist in solchen Momenten, weil plötzlich alles langsamer läuft und da habe ich schon öfters Leben verloren aufgrund dieser Tatsache. Es geht eben nicht flüssig weiter, sondern alles wird verlangsamt. Flüssig würde es weiterlaufen, wenn in diesen Momenten auf sowas wie "automatic frameskipping" oder "skip every second frame" umgeschaltet werden könnte/würde, wie in Emulatoren am PC etwa, wenn der verwendete PC den Fullspeed bei einem Spiel nicht mehr schafft bei voller Framezahl. Beispielsweise wenn man Spiele neuerer Konsolengenerationen emuliert, dann ist sowas öfters der Fall.


    Gut, dann bringt das mit den weniger Sprite-Animationen nichts, aber ein umswitchen auf 25 FPS für ein paar Sekunden, würde dies vielleicht tun. Sind die Gegner aus dem Screen herausgelaufen oder wurden besiegt, könnte ja direkt wieder auf 50 FPS Scrolling umgeschaltet werden.


    Wieso heisst es da gleich, dass man "rummjammert", nur wenn man äussert, dass es toll wäre, wenn es neben der schon vorhandenen Version für den C128, noch eine auf Performance ausgerichtete Version für den C64 geben würde? Vor allem auch, weil es diese wirklich tollen, roten Cartridge-Platinen gibt. Dass es ein gutes Spiel ist, hatte ich doch schon mehrfach geäussert. Es schmälert doch die Leistung des Programmierers nicht, wenn man im Nachhinein von einer auf Performance getrimmten Version spricht.


    Dass "Zeropaige" hier eine tolle Arbeit abgeliefert hat bei dem Game, steht doch ausser Frage und dass er selbst, sich nun nach der Abmahnung von "Nintendo" eher zurückhält, was Neuerungen an dem Game angeht, ist auch nachvollziehbar. Ich hatte da auch eher an irgendwelche Crackergruppen a la "Nostalgia" oder sowas gedacht, bei einer V1.1 des Games.

  • Zum Thema reduzierte frame rate(frameskip) contra slowdowns, was sich manche wohl so wie bei einem Emulator vorstellen. Das würde wohl nicht so einfach funktionieren.

    Wenn ein Emulator Frames skippt, dann überspringt dieser lediglich das Zeichen des Bildes, nicht aber die Ausführung des Codes und wird dadurch gefühlt schneller ruckelt aber.

    Beim 64er ist die Problematik aber eine andere. Da kostet ja das Zeichnen der Grafik nicht nennenswert Zeit, während man das Ausführen des Codes nicht überspringen kann, denn dann würde z.B. die Physik nicht mehr stimmen.

    In seinem Anspruch eine 1:1 Konvertierung zu sein, ist das Spiel eben eins geworden, welches einen Turbo braucht. Das Nes ist ja auch schneller getaktet. Muss man akzeptieren.

    Wenn man lediglich einen Port machen wollte, welcher auf einem unbeschleunigten 64er perfekt läuft, dann hätte man eben besser komplett neu programmiert und keine 1:1 Version bekommen.

    ZeroPaige wollte doch überprüfen, ob ein 1:1 Port möglich gewesen wäre und hat zum einen bewiesen, dass es ging, ist aber auf eine andere Art daran gescheitert, weil der 64er eben etwas zu langsam ist.

  • Also, nur zum Verständnis nochmal - es geht doch nicht darum, den Programmierer "Zeropaige" zu kritisieren, weil er das so gemacht hat mit der 1-zu1 Version. Ist ja gut dass es das Game so gibt wie es ist, eben für C128 User usw.


    Ich schrieb, dass es nun im Nachhinein auch cool wäre, zusätzlich auch noch eine auf Performance getrimmte Version des Spiels zu haben, weil dies halt eine wirklich tolle Sache wäre für C64 User. Jede Aussage dazu, wird hier scheinbar immer sofort als Kritik am Programmierer ausgelegt. Dann dürfte es nie eine V1.1 oder V1.2 irgendeines Spiels geben, wenn immer alles gleich als Kritik verstanden wird.



    Zum Thema reduzierte frame rate(frameskip) contra slowdowns, was sich manche wohl so wie bei einem Emulator vorstellen. Das würde wohl nicht so einfach funktionieren.


    Dass dies mit dem Frameskipping auf einem C64 nicht genauso wie bei einem am PC laufenden Emulator funktionieren kann, ist mir schon klar. Aber es gibt doch schon ein paar Spiele am C64, die statt mit 50 FPS mit 25 FPS scrollen und dies auch noch relativ flüssig aussieht. Und dies würde doch wahrscheinlich dann auch Rechenzeit sparen, gehe ich mal von aus. Daher sprach ich dies an. Auch etwa das C16/Plus4 Spiel "Pet's Rescue" macht dies doch so. Im Intro scrollt es noch mit 50 FPS, daher sieht das Scrolling im YAPE Emulator mit einem 50Hz-Vollbild auch absolut flüssig aus im Intro. Startet man dann das Spiel und steuert den Sprite selbst, dann wird ein 25FPS Modus benutzt, da dann das Scrolling nicht mehr ganz so weich vonstatten geht. Aber immernoch gut, sodaß es eigentlich so gut wie nicht stört. Langsamer wird dann nichts, der Speed bleibt gleich, es wird halt nur nicht mehr ganz so weich und superflüssig gescrollt, sprich man hat dann ganz kleine Mikroruckler, die aber nur wenig auffallen und spielerisch gar nichts beeinflussen. Anders war es speedmäßig wohl auch nicht möglich, das Spiel umzusetzen auf diesem Rechner.


    Wenn ein Emulator Frames skippt, dann überspringt dieser lediglich das Zeichen des Bildes, nicht aber die Ausführung des Codes und wird dadurch gefühlt schneller ruckelt aber.

    Wirklich sichtbar ruckelt er aber nur bei "automatischem Frameskipping". Nimmt man "skip every second Frame", dann läuft er ja konstant in einer 25 FPS Rate, was dann keine wirklichen Ruckler zur Folge hat, sondern eben nur diejenigen kleinen Mikroruckler beim Scrolling, die halt dann dadurch entstehen, dass immer ein Zwischenbild ausgelassen wird. Daher nutze ich "automatic Frameskipping" auch nur ganz selten in Emulatoren, sondern greife, etwa wenn ich den "Gamecube" oder die "PS2" emuliere und mein PC es bei einem Spiel mal nicht mehr schafft, lieber auf einen "skip every 2nd Frame" Modus zurück. Aber das ist jetzt ein anderes Thema und hat nichts mehr mit "Super Mario Bros" zu tun.

  • Verglichen mit einem 50fps scrolling empfinde ich ein 25fps scrolling eben ruckelnd. Du kannst gerne Ruckeln als Abweichung von konstanten 25fps definieren.
    Aber, wenn man die Gamelogik auf 25fps ändern würde, hätte das garantiert einen deutlichen Einfluss auf das Spielgefühl. Nicht zu vergessen, dass die Sprungphysik und eben die Art wie sich Mario steuert das revolutionäre an dem Spiel war.

    Aus dem vorhandenen Code wird sich aller Wahrscheinlichkeit eben nicht mehr aus dem 64er rausholen lassen, ohne das Spiel an sich stark zu verändern oder an die Gegebenheiten des 64ers entsprechend neu zu gestalten.