You are not logged in.

Dear visitor, welcome to Forum64. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

hannenz

Unregistered

1

Monday, January 19th 2004, 4:49pm

fade in/ out für bitmap

hallo allerseits. Ich bastel gerade eine Art "Diashow" mit HIRes-Bitmap Bildern. Nun gibts ja alle möglichen schönen Effekte für einen schönen "fade-in bzw. out", also dass eben das alte Bild "zerbröselt" und soweiter. Vielleicht weiß da grad jemand ein Stückchen Code für mich, werde zwar auch mal selber überlegen, was wie machbar ist, aber ein bisschen was als Ansatz wär toll! Danke schon mal...

noch was anderes: was genau ist den ein Taktzyklus; ich dachte intuitiv bisher immer, daß bei ~1 MHz Taktfrequenz quasi 1000 Taktzyklen ind der Sekunde durchlaufen werden, dass kann aber absolut nicht sein, wenn mans mal nachrechnet, ein einfaches LDA/STA $MMMM,x braucht ja laut ProgRefGuide schon 5 Zyklen, dann müsste eine Schleife die den Bildschirm löscht ja schon 4*5*1000=20000 (noch mehr für INX und BNE...)Zyklen = über 20 Sekunden (!!!!) kann ja nich sein, also was hat es mit dieser "Einheit" auf sich?

schönen tach noch....

WhiskiX

Unregistered

2

Monday, January 19th 2004, 5:40pm

Soviel ich weiss ist ein MHz = 1 000 000 Takte pro Sekunde.
Ein schöner Effekt für Bitmaps wäre z.B. den Farbram so ändern, das von links nach rechts z.b. ein Farbbalken gescrollt wird:

W123 ---->
W123 ---->
.
.
.
25. Zeile W123 ---->

W=Weiss, 1=Hellgrau, 2=Grau, 3=Dunkelgrau.
Die Bitmap ist dabei schon geladen und der Farbram auf schwarz. Natürlich bleibt die Bitmap links von Balken dann weiss, damit man was sieht. Umgekehrt kann man es so wieder ausblenden. Sieht toll aus - hab mir daraus mal eine Hires-Diashow gebastelt.

Ich habe leider den Code nicht mehr, mein C64-Ordner hat sich verabschiedet.
Ich hoffe also, Du weisst, wie ich es meine.

This post has been edited 1 times, last edit by "WhiskiX" (Jan 19th 2004, 5:42pm)


hannenz

Unregistered

3

Tuesday, January 20th 2004, 12:19pm

oh je, klar, wo war nur mein hirn mal wieder, Mega sind ja 6 Nullen! Dann isses klar.
Den FarbRam Effekt probier ich nachher gleich mal aus; im FarbRAM kann ich ja aber nur jeden 8*8 "Char" scrollen, so dass es eher ploppt, als scrollt, oder?
Vielen Dank mal.

WhiskiX

Unregistered

4

Tuesday, January 20th 2004, 1:32pm

Ja, man kan nur in Chars den Farbram ändern, aber wenn man es geschickt macht, sieht es wirklich so aus, als scrolle das rein.

Gruß,

Brueggi.

schergentoni

Unregistered

5

Friday, January 23rd 2004, 2:24pm

so ein zerbröseln ist auch nicht so schwer, hab ich früher mal für einen noter zum seitenwechsel programmiert.

einfach die bitmap-werte mit bestimmten brösel-matrixen und-verknüpfen. :-)


also nacheinander:
and #%11110111
and #%10110111
and #%10100111
and #%10100101
and #%00100101
and #%00100100
and #%00000100
and #%00000000

mal als beispiel. dann wäre der bitmap-wert weg, also "zerbröselt".

hannenz

Unregistered

6

Friday, January 23rd 2004, 2:58pm

klar! da hab ich mal wieder viel zu kompliziert gedacht und die Lösung ist wie so oft so einfach! Vielen Dank. Noch was anderes in diesem Zusammenhang: Eine schöne Möglichkeit wäre ja auch das vertikale rausscrollen der ganzen bitmap. Dazu benötigt man ja aber eine Routine, die bei jedem 8. Scrollen die Bitmap verschiebt, aber eben von "unten" nach "oben" damit die alten Werte nicht überschrieben werden. Bin gestern abend fast verzweifelt, weil ichs nicht hinbekommen hab; ich denk heut krieg ichs schon irgendwie hin aber es gibt doch bestimmt ganz elegante Routinen, ist ja nix anderes als ein MOVE, wobei sich Quellbereich und Zeilberiech (in diesem Fall um 320 Bytes) überschneiden.... sowas ist ja immer mal ganz nützlich.

ich bin im Moment bei dieser Lösung: (bmp bei $6000)
...
ldx #$ff
loop lda $7b80,x
sta $7cc0,x
dex
bne loop
dec loop+2
dec loop+5
lda loop+5
cmp #$59
bne loop
...

das hat dann auch für die bmp funktioniert, aber die gleiche Funktionsweise auf den Farbram angewandt kamen ganz ganz ganz ganz komische Dinge raus (daß hier der offset nicht #$140 sondern #$28 ist hab ich schon berücksichtigt)
aber na ja wie gesagt: es war spät gestern und ich genervt und irgendwann schnallt man gar nix mehr. Wahrscheinlich löst sich alles in Wohlgefallen auf :)

schergentoni

Unregistered

7

Friday, January 23rd 2004, 6:32pm

vertikales rausscrollen macht man mit fld-effekt (siehe auch die intro der demo "ödipus complex"...).

fld ldy #0
ldx .fadesin,y

.loop lda $d012
cmp $d012
beq *-3
and #7
ora #$38
sta $d011
dex
bne .loop

inc fld+1
lda fld+1

cmp #64 ;anzahl der sinus-daten


ab ".fadesin" ist der sinus des flds zum rausfaden bzw. reinfaden (also von 0 bis ff oder von ff bis 0).

die o.g. routine immer einmal/bildschirmaufbau (also 1x/rasterirq) ausführen.

hannenz

Unregistered

8

Monday, January 26th 2004, 12:25pm

prima! Danke schön!

Anmerkung: Wozu der CMP #... in der letzten Zeile, bzw. da fehlt doch eine Bedingung, die an den Vergleich geknüpft ist. fld+1 wieder auf 0 setzen der? Ich habs jetzt eh mit 255 Daten laufen, da isses augenscheinlich wurscht.

This post has been edited 1 times, last edit by "hannenz" (Jan 26th 2004, 4:30pm)


schergentoni

Unregistered

9

Monday, January 26th 2004, 5:51pm

ja, war nur ein source-schnipsel. 64 ist die anzahl der sinusdaten, danach wird der counter wieder auf null gesetzt. bei 256 datenbytes ist es natürlich egal.