RGCD 16kB Cartridge Competition 2013

  • Gargel64 schrieb:

    Hat schon mal jemand mit KickAss ein crt oder bin File erstellt? So auf Anhieb möchte mir das nicht gelingen.
    Yo klar, mache ich staendig: die option -binfile ist dein freund. und dann .pc = $8000. und danach mit cartconv (von vice) in das passende crt umwandeln. oder (was ich auch schon mal gemacht habe): .pc = $7fb0 und dann dort den crt-header per .byte einbinden.
  • Meine Güte bin ich eingerostet. Vielleicht hat ja einer noch einen kleinen Tip. Als 8k Variante funktioniert das prima, als 16k startet das Programm scheinbar keine Zeile Code. Muss man da speziell bei 16k noch was beachten? Ich erstelle derzeit bin-Files und der Header sollte doch da immer gleich sein...
  • Nobody schrieb:

    andererseits warte ich immernoch auf ne Cart-Version einiger Spiele aus 2012

    ALeX baut noch ein paar Features in SpaceChem ein und dann wird das auch bald auf Modul released. Und heute Abend klären wir mal grob ab, ob wir voraussichtlich auch 2013 teilnehmen werden und falls ja, mit was für einem Spiel (an zwei Sachen brüte ich eh schon länger herum und vielleicht fällt einem noch was spontan ein).
  • Als 8k Variante funktioniert das prima, als 16k startet das Programm scheinbar keine Zeile Code. Muss man da speziell bei 16k noch was beachten?

    wenn dein testcode in den ersten 8k liegt sollte der immer gehen (logischerweise, hoffe ich). der einzige unterschied ist ansonsten die belegung von exrom und game - das sollte cartconv aber im crt header richtig setzen.
  • Sorry, mein Fehler. Wenn man in seinem Code ein JSR in den Basic Kernel macht, dann kann das natürlich nicht funktionieren. Dank an den Debugger von Vice und seinen Haltepunkten. Ist schon echter Luxus...
  • Seit heute gibt es eine neue SpaceChem-Version – jetzt mit Level-Editor, für die Leute, denen die vorhandenen Level zu trivial erscheinen ;) . Von daher bin ich zuversichtlich, dass zeitnah unser 2012er Projekt abgeschlossen sein wird. Und es kristallisiert sich auch ein neues Spiel heraus, das wir versuchen, umzusetzen – wobei ich dort wieder ein paar Fiesheiten für AleX eingebaut habe, damit er sich auf gar keinen Fall beim Programmieren langweilt. :bgdev Ich gehe also davon aus (bzw. hoffe stark), dass wir uns auch dieses Jahr wieder zur RGCD 16kB Cartridge Competition anmelden. :freude
  • @Gargel: Du findest hier schöne Snippets
    16KB Cartridge Game Development Compo
    Da haben Enthusi, Sauhund und IIRC Endurion und andere mir damals versucht auf die Sprünge zu helfen in Sachen Header für ein .CRT. Führte zwar nicht zu einem Release (Compiled Basic ist einfach für Cartridge keine gute Idee, wenn das Compilat gelegentlich aufs Basic-ROM zugreifen will, außerdem: Wer braucht SOAP als Cartridge, der gehört ggf eingwiesen), aber gelernt hat man trotzdem was dabei ^^
    an allem schuld (sagt Sauhund, und der ist bekanntlich nicht ohne)
  • Nur mal ne Verständnisfrage, habe noch nie was cartridgemäßiges geschrieben, aber grad ein wenig in Ryks Forumlink gelesen:

    Wenn ich ein Programm habe, dass Basic&Kernal an- und abschaltet, Zeichensatz,Sprites,Bitmap... unter $d000 liegen hat und eigentlich munter Speicher von $0400 bis $fffe nutzt: kann ich das in die erforderliche 16K-Modulform bekommen, solange es von Exomizer unter 16K gecruncht werden kann? Ich denke schon, aber weiß es eben nicht sicher...

    Soll natürlich fehlerfrei laufen ^^

    Worauf müßte ich achten bzw. was müßte zu Beginn des Programms (nach dem Entpacken) als erstes passieren (lda #$35 sta $01?). Und überhaupt: Wird direkt vom Modul entpackt und dann ins RAM unter dem Modul entpackt oder muss das gepackte Program erst in den Speicher und von dort entpacken (ganz so wie nach dem Laden von Disk..) ?(

    Thx
    "...please come again - when I´m not working!"
  • Das bin file braucht eine Modulkennung CBM80, wenn man z.B. cartconv (von VICE) benutzt, muss man sich um das CRT-format nicht weiter kuemmern.
    Das ist auch anzuraten.
    Auf codebase64.org finden sich einige Beispiele.
    Z.b. dieses hier:
    codebase64.org/doku.php?id=bas…rame_for_16_kb_crt-images

    Die Kernel-REset-routinen werden NICHT angesprungen wenn man vom Modul startet.
    Das muss man also selbst erledigen. Man kann aber durchaus saemtliche relevanten Kernel-Routinen verwenden, hat dann aber kurz einen blauen Screen etc.
    unusedino.de/ec64/technical/aay/c64/memcfg.htm

    Da steht eigentlich alles.
    Wenn man ueber $01 den Cart-Bereich ohnehin nicht eingeblendet hat, kann man munter alles wie gewohnt machen.
    Ob/wann/wie man vom Modul 'laedt' bleibt einem selbst ueberlassen.
    Der Code kann
    - direkt vom ROM laufen (kein selfmod etc)
    - einen starter vom ROM laden der dann ein grosses "exomized" Programm ins Ram schiebt, Cartridge wegschaltet und entpackt
    - einen Teil ins RAM laden und be Bedarf einzelne (bei Bedarf gepackte) Daten nach'laden'.

    Alles drei kommt vor, die mittlere Variante ist aber wohl die anfaengerfreundlichste.
    Einfach ausprobieren ;)

    Beim Testen NICHT stumpf auf vice verlassen. Grade nicht initialisierter Kram zeigt sich oft erst auf echter Hardware. Also etwas mitdenken dabei ;)
  • Benutzer online 1

    1 Besucher