Hello, Guest the thread was called2.4k times and contains 57 replays

last post from Stephan Scheuer at the

Hires Grafik scrollen möglich ?

  • Also ich hab mal nachgedacht ob man Hires Bitmaps scrollen kann.

    ist ja doch viel 10KB am Bildschirm herum zuschieben...


    Viele Fotos im Netz sind ja Hochkant und sehen am C64 dann eher bescheiden aus. Besser wäre es dann aus mehreren Quergrafiken ein Hochkant zu bauen

    aber hier muss man scrollen...


    Meine Lösung sieht folgendermassen aus:

    ich lade alle Bilder in die REU Expansion (lässt sich ja im Vice schnell einschalten) und

    verwende den Blitter darin um den Scroll aufzubauen. Am Anfang ist selbst das nicht ohne Raster flickern gegangen, nachdem man aber mal intensiv nachdenkt findet man auch da eine Lösung...


    Statt mehr zu reden, einfach Demo gucken. Alles Roger ?

    PS: Ach ja wer will kann die Bilder auf der Disk ja gegen andere Koala Bilder tauschen. Man muss sie vorher nur mit pucrunch (am PC) vorkomprimieren und korrekt benennen -

    sonst gehen sich ja nur einige wenige aus... Mein Demo ladet und konvertiert sie dann in ein eigenes Format für den Scroller.

    Ihr könnt auch verschiedene (D021) Hintergrundfarben nehmen, der Scroller färbt per Rasterspliits syncron mit (im Vice zumindest)



    Verwendete Tools: P1 Bitmap konverter, C64 Studio (Assembler), MSPaint, Dirmaster um die Programmteile in ein D64 Image zu quetschen.


    Eine Bitte noch: Bitte wenn jemand das auf einem echten C64 mit 256KB REU testen könnte und mir bescheid gibt ob es da auch läuft? Habe nur den Vice zur verfügung

  • PPS; weiß jemand wie man das D64 Image update irgendwie aus dem C64 Studio automatisieren kann ? Ist doch nicht normal

    das jedes mal wenn ich was ändere , neu assembliere das dann per Hand in den Dirmaster schieben muss und vorher das D64 im laufenden emulator auch noch "deattachen" muss nur damit ich es verwenden kann....


    Wie macht Ihr sowas ? Ich weiß man kann im Studio alle Binärdateien mit Linken aber nur was in den Speicher geht. Ich habe aber 320KB unkomprimierte Dateien...

  • Du kannst im Post-Build-Step mit dem MediaManager Dateien in ein Disk Image schieben.


    Das könnte so aussehen:


    del "Soulless 2.d64"

    "$(BuildTargetPath)\..\exomizer" sfx $0810 "../Soulless 2.spr@$cc00" "../panel.chr@$c000" "$(BuildTargetFilename)@$080e" -t64 -n -o "soulless2_packed.prg"

    $(MediaManager) -d64 "Soulless 2.d64" -import "soulless2_packed.prg" -renameto "SOULLESS 2"

    $(MediaManager) -d64 "Soulless 2.d64" -import "$(FilePath)\..\titlepacked.prg" -renameto "A"

    $(MediaManager) -d64 "Soulless 2.d64" -import "$(FilePath)\..\forestpacked.prg" -renameto "B"


    Ist nicht besonders schön oder elegant, aber damit hast du direkt im Build-Vorgang ein fertiges Disk Image.

  • Sehr schön.

    Also ich hab mal nachgedacht ob man Hires Bitmaps scrollen kann.

    Kann man natürlich. In Monster Buster schiebt ALeX z.B. den ganzen Bitmap-Monster-Bereich nach unten (dank Softscrolling-Register in Halb-Char-Schritten). Es kommt halt auf die Geschwindigkeit an, die man benötigt.


    Übrigens meinst du wahrscheinlich Bitmap allgemein, denn du verwendest hier ja nicht den Hires- (320x200px), sondern den Multicolor-Mode. (Von der Datenmenge her ist das egal aber der Begriff stimmt halt nicht ganz.)


    verwende den Blitter darin um den Scroll aufzubauen. Am Anfang ist selbst das nicht ohne Raster flickern gegangen

    Gute Idee. Ab und zu sehe ich in VICE allerdings noch ein kleines Flickern.


    Verwendete Tools: P1 Bitmap konverter

    Was man noch besser machen könnte beim Konvertieren: Beachten, dass die C64-Pixel nicht quadratisch sind, damit die Bilder nicht so in die Länge gestreckt aussehen. Dafür einfach die zu konvertierenden Bilder vorher vertikal etwas stauchen.

  • Oha danke Endurion und Retrofan ! Ich liebe euch !


    Endurion : ziehe ich mir gleich rein ! Der Mediamanager ist ein externes Programm. Finde es nicht auf meinem Rechner :-(



    Retrofan: kommt dir die Frau zu lang vor ? Ich merke das gar nicht mehr. Aber ich weiß was du meinst mit der VIC Pixel darstellung (hardwaremässig)


    mein flickern kommt wenn sich die 2 Rasterirq codes überschneiden.


    Ich brauche einen Rasterirq um nach dem bild bei zeile 250 den REU Blitter auszulösen sonst wäre er mittem im Bild und dann reisst es.

    und einen der die D021 Bildfarben syncron mit der MC Bitmap (sage ich das jetzt korrekt?) (welche ja gescrollt wird) beim Bildwechsel mit zu colorieren.

    oder anders : wenn bild A einen weissen hintergrund hat und Bild B einen roten dann laufen beim scrollen ja beide sanft über den Schirm.

    Wenn ich keinen 2. IRQ habe welcher im richtigen Moment , wenn bild B dargestelle wird auf Rot schaltet, haben beide Bilder einen weissen Hintergrund.


    Habe noch keine Idee wie ich die Überkreuzten Rasterirqs anders implementiere ...


    (frei nach Igor stanz: nicht die Strahlen kreuzen ! Der wusste 1983 wovon er sprach auch wenn er nur Schauspieler war ;-)

  • So habe heute meine Scroll Engine mal umgedreht und getestet ob man da auch einen XEVIOUS Arcade shooter bauen könnte...

    Nur so ein Test. Die Sprite Multiplexer machen noch Fehler keine Ahnung warum. Hatte sowas noch nie programmiert....


    Also hier mal der BETA Preview Test:

    Fehler sind noch genug drinnen aber es ist schon irgendwie nett den Andora Riesensprite und die Arcade Hintergrundgrafik mal am C64

    zu sehen ... Glaube beide Maschinen sind 1982 erschienen. Das eine in der Spielhalle , der andere daheim ....


    falls jemand den Sprite Multiplexer sehen willl, habe das Testprogramm angehängt (mplex.asm und prg)
    sys4096 startet es. Es flimmern die Spriteendzeilen. Denke das hat mit dem VIC zu tun.
    habe keine IRQs erlaubt und benutze keine Kernal sachen. Endlos Schleife die auf den Raster zeichnet.

    Weiss nicht was hier stört. Vielleicht aber nur am Vice Emulator... K.A

  • Habe hier im Forum einen Sprite Multiplexer gefunden ! WOW

    Jetzt kein Flackern in den Sprites. Erst wenn Sie den unteren Rahmen berühren flickert es wieder.

    Keine Ahnung warum.

    Hat irgendwas mit Badlines zu tun. Denn wenn ich nur 1 Pixel scrolle flackern alle Sprites auch am Schirm egal wo.

    Sobald ich aber +2 Zeilen scrolle, flackert nichts mehr. Sehr mystisch.


    Ist ein langer Weg wie es scheint einen sauberen Multispriteplexer zu bauen....

  • Danke Drachen.


    Den Code muss ich mal testen. Wirklich ein feiner Plexer für Horizontal Gschichten aber vertikal denke ich wirds eng.


    Habe bemerkt das wenn man zuviele Zyklen in einer VIC Zeile verbraucht und der Rasterstrahl schon im Rahmen ist,

    holt der DMA schon neue Sprite Daten und das stört vorallem dann wenn noch badline status auftritt....

  • So habe heute meine Scroll Engine mal umgedreht und getestet ob man da auch einen XEVIOUS Arcade shooter bauen könnte...

    Noch ist die REU-Bitmap-Scrollroutine eine interessante Lösung, die nach einem Problem sucht. Spiele, wie Xevious, wird man wohl auch in Zukunft im Char-Mode bauen, weil Bitmaps dort keinen allzu großen Vorteil bringen. Das lässt sich alles ganz gut aus Chars kacheln. Und ob man sich wirklich auf Dauer Hochkant-Mädels-Bilder angucken will, die über den Bildschirm scrollen, weiß ich auch nicht.


    Vielleicht findet man das passende Problem eher im Anwendungsbereich. Wir hatten hier schon öfters mal diskutiert, ob man nicht bestimmte Anwendungen im Bitmap-Mode laufen lassen könnte, um C64-typische Schwächen (z.B. nur 40 Zeichen/Zeile) zu umgehen. Das wäre z.B. bei Textviewern/-browsern und -Editoren (mit 60 oder 80 Zeichen/Zeile oder sogar Proportionalschrift) der Fall. Und da wurde u.a. gerne gemutmaßt, dass der C64 Bitmaps nicht schnell genug scrollen könnte, um eine zufrieden stellende User-Experience beim Lesen mehrseitiger Texte zu erzeugen. Ich bin zwar noch nicht hundertprozentig davon überzeugt, dass Zusatzhardware dafür zwingend nötig ist, aber egal – das hier wäre ja evtl. eine Teil-Lösung (neben einem schnellen Text-Renderer) für das Problem. Wenn eine REU dank DMA die Lösung des Bitmap-Scrolling-Problems bei Anwendungen wäre, fände ich das einen ganz schönen Effekt (an den bisher hier niemand gedacht hat).

  • Wenn eine REU dank DMA die Lösung des Bitmap-Scrolling-Problems bei Anwendungen wäre, fände ich das einen ganz schönen Effekt (an den bisher hier niemand gedacht hat).

    Überhaupt wäre ein schnelles Auf- und Abscrolling (in WYSIWYG) für eine Textverarbeitung doch ein wünschenswertes Feature!


    Arndt

  • Ich mach das mit REU wegen der Geschwindigkeit. Wenn du beim Kacheln mehr als 256 Chars hast und das ist leicht möglich bei Arcade

    umsetzungen . Denke mal an Capcom CPS1 Hardware wo du ja 16x16 und mehr Pixel Tiles hast ....

    Ich brauche auch die Reu für meine Sprite animations da das alles schon lange nicht mehr in eine 16K Bank vom VIC passt.


    Im Moment code ich einen Sprite Converter da mir im Forum bei den Grafik Freaks niemand ein Tool empfehlen kann ,damit ich die Grafiken bequemer als alles von Hand zu pixeln , in den C64 bekomme.


    Zu deiner App muss ich sagen ja, nimm die REU. Sicher geht alles zu Fuss in Assembler auch irgendwie aber warum die vorhandene Ressource

    nicht verwenden. Der 1Mhz CPU hat sicher genug zu tun bei deinem Beispiel als das er auch noch Speicherbereiche verschieben muss, neben Pixel rechnereien

    oder ? Aber wenn du eh 80 Zeichen Cartridge hast sollte man da extra Hardware anbauen für Blitting / Bitmasking udgl. ?


    Demnächst beginne ich mit einer REU Nachbau entwicklung nachdem ich ein anderes HW Projekt fertig machen muss.

    Im Moment habe ich nur Bustiming analysen vom C64 mit Logic Analyzer gemacht in ermangelung einer echten REU. Sonst hätte ich das schon alles ausgemessen und ein Konzept für den uC.

  • klar und wie genau hast du das gemacht ? Raster FLD offset vom VIC verschoben ?

    Ich kenne mich leider nicht gut genug mit den Internas des VIC aus deshalb nehme ich die REU

    Mir ist klar wenn ich demos sehe von anderen das es da tricks gibt. Die sind mir nicht bekannt und ich habe niemand hier zum Diskutieren (IRL)

    Hast du den Source noch ?

    btw: sehr cooles demo . hättest das nicht vor einer Woche sagen können bevor ich mir den A abarbeite mit dem REU code ;-)

    Aber habe wenigstens viel gelernt wieder mal ... und bemerkt wieviel man nach 20 Jahren vergessen kann :-)

  • Aber wenn du eh 80 Zeichen Cartridge hast sollte man da extra Hardware anbauen für Blitting / Bitmasking udgl. ?

    Ne, es geht nicht um ein 80-Zeichen-Cart, sondern um eine Software-Lösung im Bitmap-Mode. 64 Zeichen pro Zeile (5 Pixel je Char horizontal) oder ähnlich platzsparende Proportionalschrift lässt sich noch recht gut auf einem CRT lesen:



    Nur ist es halt eine Herausforderung, ohne "Tricks" sowas sauber und schnell zu scrollen. Die REU könnte dafür evtl. eine Lösung sein.