AmiBlitz wurde in der Version 3.9.0 veröffentlicht.
Diese Version von AmiBlitz enthält einige wesentliche Änderungen und einige Optimierungen:
Große interne Veränderungen
Unmengen von Code von asm nach basic konvertiert
Kleinere Anpassungen
Tooltype DISABLE_HIGHLIGHTING hinzugefügt, um die Leistung auf Low-End-Rechnern zu verbessern Tooltype DISABLE_LOCALIZATION hinzugefügt, um den Speicherbedarf auf Low-End-Rechnern zu reduzieren Tooltype STANDARDEDITMODE entfernt, nur noch das neue Verhalten wird unterstützt Tooltype OLDSEARCH entfernt, jetzt wird nur noch das neue Verhalten unterstützt Tooltype USE_ASLDIMS entfernt Tooltype NO_DISPLAYBEEP in DISABLE_DISPLAYBEEP umbenannt Tooltype NO_WELCOME in DISABLE_WELCOME umbenannt Tooltype TOKENBOLD in BOLD_TOKENS umbenannt Menüeintrag "Autolayout" hinzugefügt, um eine automatische Anordnung aller geöffneten Fenster per Menüaufruf durchzuführen Wrapperlib für gadtools.library zu osLibs hinzugefügt Reorganisiertes Einstellungsfenster Neues Iconify-Gadget für Quellfenster hinzugefügt (OS3.2+) Aktualisierte GlowIcons für alle Icons in der AmiBlitz3-Schublade
Wie ihr alle wißt, sollte man auf jeden Fall mal ein Tetris selbst programmiert haben.
Darum hier meine Version davon. von 1996!
Das ist jetzt natürlich noch kein richtiges Spiel, nur ein ProofOfConcept oder so.
ist schon etwas älter, ich hab es heute nochmal neu kompiliert, vorher nochmal durchgesehen wegen Bugs und so, war aber größtenteils schonmal revidiert irgendwann 2000-2003 oder so.
Sounds hängen hinterher, aber sonst...
Joystick in Port 1 zur Steuerung, P für Pause, Q oder ESC für Ende.
Manchmal will man verschiedene Fonts für diverse Gadgets verwenden, z.B. weil man in einem Listview lieber alles nett untereinander gelistet haben will und man sich mit Charakter-Spalten begnügt.
Dann hilft der einfache Trick, den IntuiFont zu wechseln während des Erstellens der Gadget-List:
ttext$=" Evil Midan, tyrant of the highest order, lies hidden deep within his underground lair. Allied security forces demand"
ttext$+" his reign to cease. one man is needed. that man is YOU. "
Repeat
ev=Event ;we don't wait...
Delay_1 ;...here we do!
Gosub winscroll
If ev=$2 Then Gosub refwin
Es scheint immer mal wieder die Frage aufzutauchen, wie man ein Interlace-Display aufbaut. Dabei steht es doch in der Anleitung.
Ok, die Anleitung ist nicht immer fehlerfrei und AGA macht gelegentlich einen Strich durch die Rechnung, aber was soll's.
Interlace erfordert normalerweise eine besondere Behandlung der Copperliste, aus der das Display aufgebaut ist.
Da das Display nur noch halb so schnell aufgebaut wird (immer erst ein Halbbild, gerade, dann das andere, ungerade), und der Vblank Interrupt dies auch bei jedem Wechsel anzeigt, können wir dies benutzen, um das jeweilige Halbbild anzuzeigen. Damit das funktioniert, muß aber das angezeigte Halbbild natürlich jede zweite Zeile überspringen.
Das erreichen wir, indem wir die Zeilenbreite (Modulo, was übersprungen wird, um die nächste Zeile anzusteuern), die das Display (Slice) erwartet, verdoppeln. Die unnütze nächste Zeile verschwindet quasi rechts von der aktuellen im Nichts.
Slice 0,44,`1,`2 / 2,$fff8,`3,8,32,`1+`1,`1+`1
Außerdem müssen wir das LACE Bit setzen in einem Spezialregister.
Dafür hat Blitz2 eine Abkürzung eingebaut: SetBplcon0.
Hier ist der Sourcecode im Beispiel. Macro benutzt, einfach mal so.
Code:
Macro laceblitz ;w, h, d
BitMap0,`1,`2,`3
VWait50
SetBPLCON0 4 ;set lace bit!
BLITZ
;$fff9 for HiRes
Slice0,44,`1,`2 / 2,$fff8,`3,8,32,`1+`1,`1+`1
SetInt5 ;VBI
;If Peek.w($dff004)<0 Show 0,0,0 Else Show 0,0,1 ;doesn't work on AGA??
lfr.b=1-lfr ;swap lace frame#
Show 0,0,lfr ;lace frame# becomes y offset to show
kann man amiblitz etwas abspecken, das es nur sagen wir mal 3-4 mb ram braucht
hintergrund ist der:
hab mir nen a500 geholt und nen ram-hack gemacht
hab nun 1mb chip und 1,5 slow
will nun etwas weiter aufpeppen, hab mich wohl für die terriblefire entschieden
dummerweise hat die tf nur 4mb fast
(die aka500+ hätte zwar 8, aber zu wenig leistung im speed,
den anderen kram brauch ich nich, nen kick3.1 hab ich eingebaut
und nen ide-adapter is an der tf auch drann)
mein endziel ist es, games zu coden die so ein system
auch benutzen, also trotz nur ecs/ocs aber 30/40 mhz
dafür hab ich ins purebasic amiga eine c2p engine eingebaut
die 6 bitplanes hat (auf echter hardware nicht getestet)
und hab noch eine für 4 bpl
unter amiblitz würd ich die normalen ecs-screen mit display-library
benutzen eventuell mit nen paar coppertrix
und das ganze blitting in 32 farben per cpu aus dem fastram
damit wäre so ne configuration auch mal benutzt
nun das problem:
im emu mit 2mb chip und 8mb fast nimmt amiblitz 7mb fast
das würde dann wohl auf meinem 1+5.5 mb nicht laufen
...hab auch irgendwie nicht so den drang des budget zu erhöhen
um mir ne tf mit 64mb ram zu holen, soll wohl dann auch
nen besseres netzteil brauchen und so weiter...
hab da mal ne allgemeine frage zu amiga grafikkarten
werden die auflösungen 320x256 oder eben 320x240 in 8 bit von allen
unterstützt?
und
was ist die kleineste auflösung, die alle gfx karten haben
zu 256 farben?
---------
die sache ist, habe schon einiges an grafiken und eben auch handgepixeltes
ist/war für amiga aga 320x256.
ein "hochrechnen" und /oder nochmal nachpixeln damits auf 640x480
toll aussieht ist nicht, dafür ists zu viel
würde halt gern die beschleunigung der grafikkarte nutzen und kann mir
das ewige hin und hergefrickel mit den farben und gemache, welche sachen mit in die sprites
müssen, was wird ab wo geblittet , nur um das halbwegs beste rauszuholen, alles sparen