so, omega-race geht nicht so ohne weiteres, alle anderen funzen wohl auf den ersten Blick .....
CRT to PRG
-
aRcAdEsTaTiOn -
22. Januar 2017 um 10:57 -
Erledigt
Es gibt 39 Antworten in diesem Thema, welches 10.693 mal aufgerufen wurde. Der letzte Beitrag (
-
-
so, hab mal alle getestet. Battlezone macht allerdings probleme. Er hängt sich weg nach dem bestätigen der F1 Taste.
Der Rest geht. Nochmals ein dickes Dankeschön Gero. Hast einen Gut bei mir. Welches Bier hättest Du den gerne? -
Nochmals ein dickes Dankeschön Gero.
Sehr gerne, Marc. Solltest Dich auch mal wieder auf n Treffen sehen lassen

Welches Bier hättest Du den gerne?
egal, ich bin flexibel. Nur nix aus der Plastikflasche ...
Freue mich schon auf ein Wiedersehn mit Dir ....
-
Falls jemand aus diesem crt das loco.prg auslesen koennte, wäre ich begeistert

Ich hab hier zwar das Tool von Draco am Start, das weigert sich aber

-
Ich hab hier zwar das Tool von Draco am Start, das weigert sich aber

nimm vice - cartconv !
cartconv -i Loco.crt -o Loco.prg
-
cartconv -i Loco.crt -o Loco.prg
Hi, heissen Dank.
Das .prg ist ja 64k groß. Das wäre ja der Dump des kompletten CRTs. Ich dachte eher an das .PRG, welches die Quelle für das CRT war. Das müsste ja deutlich kleiner sein. Ein 64k PRG lässt sich nicht auf Floppy schreiben und von dort laden.
-
Meintest du das vielleicht so.

-
Warum wolltest du eingentlich die Modulversion. Das Game gibt es auf der CSDb, mindestens 10 verschiedenen Cracks.
-
@stefan: die Modulversion hat erstens kein Intro und startet sofort (btw: hast Du nen Komprimierer drĂĽber laufen lassen? Dein PRG entpackt ein paar Sekunden vor dem Start).
Zweitens haben einige Versionen Fehler. Grafikfehler und leider sehr oft Soundfehler. Nachdem die Lok explofiert ist, hoert der RAusche-Sound nicht auf...
Die crt-Version hat diese Fehler nicht. Daher wollte ich mir davon eine Transwarp-Floppy bauen.
-
Jep, Exomizer gecruncht. Sonst wäre die Datei 174 Blocks groß gewesen. Ich hätte natürlich noch den unnötigen Easyflash Code entfernen können und auch diverese überflüssige Daten, die durch die
Verschieberoutinen produziert wurden. Das hätte aber Stunden gedauert, deshalb hatte ich das gelessen. Du kannst das Programm auch mit Unp64 decrunchen.
-
@stefan: danke fĂĽr den Hinweis mit den 10 Versionen. Ich hatte immer artig nach L.O.C.O. gesucht und nur eine Version gefunden.
Die von Donald Duck startet schnell ohne Intro und hat an den Grafiken nix verhunzt...
Das mit dem Soundproblem tritt bei mir immer nur dann auf, wenn ich per Transwarp lade.... seltsam...
Kann das jemand verifizieren? Einfach SPACE druecken und die Lok losfahren lassen, bis sie zerstört wird. Wenn sie danach wieder im Bahnhof steht, sollte Ruhe sein.
Ich hab mal drei Versionen angehängt: Eine pur und zwei mit Transwarp.
-
Schaue ich mir gleich mal an.
Transwarp, ein wahnsinig irrer Fastloader. Mir ist fast die Kinnlade aus den Gelenk gesprungen. Tack,Tack,Tack,Tack,Tack,Tack, nach Sekunden fertig geladen.
Bei der CSDb muss man immer mit mehreren Begriffen suchen. Wie zum Beispiel "phm-pegasus, p.h.m. pegasus, phm pegasus usw.
" -
Bitte melde dich an, um diesen Link zu sehen.
die Originale Version (uncompressed)
-
Das mit dem Soundproblem tritt bei mir immer nur dann auf, wenn ich per Transwarp lade.... seltsam...
Da wird anscheinend der SID vom Spiel nicht ordentlich initialisiert.
Programme mit uninitialisierten Variablen sind leider keine Seltenheit, besonders, wenn sie aus der FrĂĽhzeit stammen.
Da kann man, ohne die Programme selbst anzufassen, nur sehr bedingt was gegen tun.
Aber probier mal, dieses StĂĽck Code
Code.C:8000 A9 00 LDA #$00 .C:8002 A2 18 LDX #$18 .C:8004 9D 00 D4 STA $D400,X .C:8007 CA DEX .C:8008 10 FA BPL $8004 .C:800a 4C 00 84 JMP $8400ins Programm zu tun (an der Stelle sind nur ungefährliche Quelltext-Überbleibsel) und die Startzeile auf "1 SYS32768" umzutippen.
Die SID-Register nach dem Laden mit Nullen zu füllen würde entweder den "Ding"-Sound unschön abbrechen oder den Start verzögern, was beides keine so tollen Optionen sind.

-
Hallo Krill (aka God of Floppyspeeder),
der Hauptzweck eines Speeders sollte das schnelle Laden und hohe Kompatibilität sein.
Ladesound ist da aus meiner Sicht eher nebensächlich.
Ich probier mich mal an Deinem Patch. Man wird ja echt nicht dĂĽmmer hier
Das einzige, was ich davon vermeindlich verstehe, ist dass die alte Startadresse offenbar $8400 ist und dort hin gesprungen wird, wenn der Schreibbefehl in 8004 positiv bestätigt wurde. Also ist die Zeit, die zwischen .3 und .5 verbraten wird, die längere Ladezeit, denn .1 und .2 dürften ja nicht messbar ins Gewicht fallen.Um wieviel würde der Start denn verzögert werden? Ist das im Zehntel-Sekunden-Bereich oder darunter? Das würde ich im Kauf nehmen.
Oder einen zukĂĽnftigen "No-Sound" Modus, fĂĽr den man sich ĂĽber einen Schalter in cc1541 entscheiden kann?
LG
F
-
der Hauptzweck eines Speeders sollte das schnelle Laden und hohe Kompatibilität sein.
Schon, aber bei Bugs der Programme (und uninitialisierte Variablen bzw. Chip-Register gehören ganz klar dazu) sind die Möglichkeiten recht begrenzt.
Z.B. gibt es da Programme, die komischen Sound machen oder gar abstĂĽrzen, wenn bestimmte Werte bei $03xy nicht Null sind.
Dass dieser Bereich genullt ist, ist zwar gegeben, wenn man von einem Original-BASIC/KERNAL aus lädt, aber in genau diesem Bereich hat Transwarp etwas residenten Code, der auch nirgendwo anders hinverschoben werden kann.
Würde der generell nach dem Laden genullt werden, könnte man immer nur einmal laden und nicht per Transwarp nachladen.
Aber wenn mensch das Programm eh schon in einem Spezialformat speichern muss, damit es fixer lädt, kann mensch dabei auch gleich ein paar Fehlerchen wegbügeln.

Ladesound ist da aus meiner Sicht eher nebensächlich.
Es gibt da diese Optionen im Code:
Code
Alles anzeigen.weak BOOTNM = "TRANSWARP" .if BOOTNM != "TRANSWARP" CRYPTO = 0 .else; BOOTNM = TRANSWARP CRYPTO = 1 .endif; BOOTNM = TRANSWARP SOUND = 1 PROGRS = 1 ERSTAT = 1 COMPAT = 1 INSTAL = 1 .endweakDank der "weak"-Direktive sind die von auĂźen ĂĽberschreibbar, und man kann z.B. so
eine Variante ohne Tonausgabe bauen.
Dabei wird es auch ein wenig kleiner und startet entsprechend schneller, und in der Minimalkonfiguration werden 17 statt 32 Blöcke belegt.
Das einzige, was ich davon vermeindlich verstehe, ist dass die alte Startadresse offenbar $8400 ist und dort hin gesprungen wird, wenn der Schreibbefehl in 8004 positiv bestätigt wurde. Also ist die Zeit, die zwischen .3 und .5 verbraten wird, die längere Ladezeit, denn .1 und .2 dürften ja nicht messbar ins Gewicht fallen.
Um wieviel würde der Start denn verzögert werden? Ist das im Zehntel-Sekunden-Bereich oder darunter? Das würde ich im Kauf nehmen.
Der "Ding"-Sound wird da auch vorzeitig abgebrochen, aber das ist dann halt so. Ăśblicherweise brauchen Programme aber oft ein wenig Zeit zum Entpacken oder Umherkopieren von Speicherbereichen, bevor sie Ton machen.
Generell eine Verzögerung zwischen geladen und Start einzubauen (und das ist schon mindestens ca. eine halbe Sekunde, bis der Ton ausgeklungen ist), wobei die allermeisten Programme die nicht brauchen, wäre eher doof.
Bei der benutzten LOCO-Variante z.B. wird am Anfang bei $8400 erst mal recht viel Speicher bewegt (relativ sinnlos, das hätte man besser lösen können), bevor es losgeht.
Die SID-Initialisierung könnte also auch erst danach passieren.
Oder einen zukĂĽnftigen "No-Sound" Modus, fĂĽr den man sich ĂĽber einen Schalter in cc1541 entscheiden kann?
Use-Flags und Kompatibilitäts-Optionen sollen per Design nicht in den Dateien selbst bestimmt werden, die sollen nur das Programm an sich abbilden und effektiv nicht mehr Information als das Standard-PRG-Format beinhalten.
Aber dafĂĽr kann man sich ja den Transwarp-Booter zurechtschustern.

-
Das ist natĂĽrlich mega, dass sich jeder den "passenden" Loader compilieren kann.
Wieder was gelernt... War mir nicht klar, dass Du den gesamten Sourcecode veröffentlich hast und den jeder selbst dank des 64tass selbst compilieren kann.
Ich staune und hoffe, es lernen viele mit

-
War mir nicht klar, dass Du den gesamten Sourcecode veröffentlich hast und den jeder selbst dank des 64tass selbst compilieren kann.
Tatsächlich kam der Loader-Quelltext schon beim ersten Release v0.64 mitgeliefert, also ca. ein Jahr, bevor endlich auch der Encoder rauskam.

Aber so ganz der gesamte Sourcecode ist es nicht, zugegeben. Das Tool, welches das magische Encoding und die zugehörigen Tabellen generiert, behalte ich für mich.
Das produziert nicht die einzige Lösung für das Problem, und der Loader wurde bewusst mit GPLv3 lizensiert. =D
-
So, dann mal hier das Ergebnis im Anhang.
Einmal Loco mit Transwarp v0.84 ohne Ladesound und einmal die gepatchte Loco-Version (Danke Krill) mit Transwarp V0.86 mit Ladesound.
Kann sich jeder sein Lieblings-Image aussuchen

Gibts eigentlich einen Hex-Editor, in dem man ein PRG laden und als erste Adresse 0801 vorgeben kann? Über Vice und dann im Monitor die Adressen einzeln überschreiben fand ich etwas umständlich...
PS: Wenn Stefan Scheuer jetzt noch die etwas ruckeligen Zeppline fixt haben wir eine perfekte Version *g*
-
Hex-Editoren gibt es eigentlich zuhauf. Unter Linux ist mir "Okteta" am liebsten, bei den anderen beiden mĂĽsste ich jetzt nachgucken.
Ansonsten geht halt auch die alte tail/head/printf-Lösung auf der Kommandozeile.

-