Hallo, Gast
Du musst dich registrieren bevor du auf unserer Seite Beiträge schreiben kannst.

Benutzername
  

Passwort
  





Durchsuche Foren

(Erweiterte Suche)

Foren-Statistiken
» Mitglieder: 71
» Neuestes Mitglied: bmpeter
» Foren-Themen: 253
» Foren-Beiträge: 2.349

Komplettstatistiken

Benutzer Online
Momentan sind 11 Benutzer online
» 0 Mitglieder
» 11 Gäste

Aktive Themen
RedPill - Game Constructi...
Forum: Projects
Letzter Beitrag: HelmutH
14.01.2022, 00:18
» Antworten: 27
» Ansichten: 29.543
Roadie - Ergänzung zur Ro...
Forum: Projects
Letzter Beitrag: HelmutH
12.01.2022, 00:23
» Antworten: 7
» Ansichten: 2.659
Schöne Weihnachten und gu...
Forum: Off Topic
Letzter Beitrag: bruZard
25.12.2021, 13:59
» Antworten: 12
» Ansichten: 27.132
GadTools Gadgets: Fonts
Forum: Basics & Manual
Letzter Beitrag: hackball
14.11.2021, 21:48
» Antworten: 0
» Ansichten: 465
Text Scrolling in Fenster...
Forum: Basics & Manual
Letzter Beitrag: hackball
24.10.2021, 03:19
» Antworten: 1
» Ansichten: 686
BlitzMode Interlace
Forum: Basics & Manual
Letzter Beitrag: hackball
16.10.2021, 20:52
» Antworten: 1
» Ansichten: 968
amiblitz etwas abspecken
Forum: Questions & Answers
Letzter Beitrag: hackball
01.09.2021, 17:33
» Antworten: 1
» Ansichten: 1.078
allgemeine frage grafikka...
Forum: Off Topic
Letzter Beitrag: hackball
30.08.2021, 18:34
» Antworten: 3
» Ansichten: 1.779
pfad ändern
Forum: Questions & Answers
Letzter Beitrag: hackball
25.08.2021, 17:19
» Antworten: 3
» Ansichten: 2.049
Tokenizing
Forum: Questions & Answers
Letzter Beitrag: hackball
23.08.2021, 15:55
» Antworten: 1
» Ansichten: 971

 
  GadTools Gadgets: Fonts
Geschrieben von: hackball - 14.11.2021, 21:48 - Forum: Basics & Manual - Keine Antworten

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:


Code:
FindScreen1

NEWTYPE.listv
 a.w
 text.s
End NEWTYPE

Dim List lv.listv(10)

AddItem lv():lv()\text="list item 1"
AddItem lv():lv()\text="list item 2"
AddItem lv():lv()\text="list item 3"

LoadFont 1,"topaz.font",11
LoadFont 2,"times.font",11

Use IntuiFont1
GTButton 1,1,5,5,250,15,"topaz testbutton",0

Use IntuiFont2
GTButton 1,2,5,25,250,15,"times testbutton",0

Use IntuiFont1
GTListView 1,3,5,45,250,100,"",0,lv()

Window 1,100,50,300,200,$140F,"gt fonts test",2,1

AttachGTList1,1

Repeat

Until WaitEvent=$200

End
   

Drucke diesen Beitrag

  Text Scrolling in Fenstern.
Geschrieben von: hackball - 24.10.2021, 03:13 - Forum: Basics & Manual - Antworten (1)

Dies ist eigentlich ein einfaches Thema, aber erscheint irgendwie 'schwierig wegen Basic' oder so.


Code:
LoadFont1,"topaz.font",11
FindScreen1

WBStartup
SetErr:End:End SetErr

DEFTYPE.l

DEFTYPE.w y,stp,tpos

Window1,0,0,ScreenWidth,ScreenHeight,$140F,"win scroll test",2,1

Gosub refwin

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

Until ev=$200
End

.winscroll:
 WScroll 1,y.w,InnerWidth,y+12,1,0,0:stp+1

;note: the Topaz font has a width of 8 pixl for each char
 If stp>7   ;fonts char with-1
   stp=0
   tpos.w+1:If tpos>Len(ttext$) Then tpos=0

   tchar$=Mid$(ttext$,tpos,1)
;   WLocate InnerWidth-8,y:Print tchar$
 Else
   WLocate InnerWidth-stp,y:Print tchar$
 EndIf

Return

.refwin
    WCls

    y=InnerHeight/2

    Wline 0,y-2,InnerWidth,y-2,1
    Wline 0,y+14,InnerWidth,y+14,1

    stp.w=0
    tpos.w=0

Return



Angehängte Dateien Thumbnail(s)
   
Drucke diesen Beitrag

Wink BlitzMode Interlace
Geschrieben von: hackball - 15.10.2021, 23:57 - Forum: Basics & Manual - Antworten (1)

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. Wink

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

 End SetInt

Use BitMap0:BitMapOutput0


End Macro


!laceblitz {320,400,2}

RGB 0,1,2,5
RGB 1,15,14,13

NPrint""
NPrint "hello world!"


Circle 160,200,90,180,1

Line   70,380,250,20,1


MouseWait


ClrInt5    ;kill VBI

SetBPLCON0 0

VWait 50

End


Beispiel Screenshot:
   

Drucke diesen Beitrag

  amiblitz etwas abspecken
Geschrieben von: xp^tsa - 01.09.2021, 09:26 - Forum: Questions & Answers - Antworten (1)

hab wieder eine meiner speziellen fragen Wink

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...

dann lieber amiblitz etwas abspecken

Drucke diesen Beitrag

  allgemeine frage grafikkarten
Geschrieben von: xp^tsa - 27.08.2021, 23:49 - Forum: Off Topic - Antworten (3)

hallo,

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

Drucke diesen Beitrag

  pfad ändern
Geschrieben von: xp^tsa - 24.08.2021, 11:50 - Forum: Questions & Answers - Antworten (3)

hallo

gibt es bei blitz2 irgendeinen befehl
um den "arbeitspfad" festzulegen

auch ein compilat ins gewünschte verzeichnis brachte nichts

es wäre dumm absolute pfade "work:testkram/gfx/da-sprite.iff"
statt "gfx/da-sprite.iff" angeben zu müssen

Drucke diesen Beitrag

  Tokenizing
Geschrieben von: xp^tsa - 23.08.2021, 15:00 - Forum: Questions & Answers - Antworten (1)

hab da mal ne frage

wann wird endlich dieses alberne tokenizing abgeschafft?

es war vielleicht mal gut angedacht, weil sich jeder ein anderes lib-set zusammengestellt hat,
aber es ist einfach nur nervig.

ich programmiere auf uae und öffne die quelltexte mit nem texteditor, jedesmal das
als asci exportieren und importieren ist doch albern

..aber fürchte schon, das wird nicht gehen

Drucke diesen Beitrag

  AmiBlitz3 Deutsche Dokumentation?
Geschrieben von: HelmutH - 11.07.2021, 12:32 - Forum: Questions & Answers - Antworten (2)

Hallo in die Runder der AmiBlitz3 Benutzer
Gibt es irgendwo eine Deutsche Dokumentation von AmiBlitz3 ?
Wenn nicht, gäbe es interesse daran?

Drucke diesen Beitrag

  TK Player - Multiformat AHI Player
Geschrieben von: HelmutH - 04.07.2021, 18:16 - Forum: Projects - Antworten (1)

10.10.2005 TK Player V1.5

Multiformat AHI Player (MP3, AIFF, WAV, MOD, MAUD, 8SVX) von Thilo Köhler

Dies ist ein sehr kleiner Player für Audiodateien. 
Er ist so konzipiert, dass er sich in die Defizite der unterstützten Audioformate einfügt. 
Er öffnet keine große und teure GUI, sondern spielt die Audiodatei nur schnell ab.
Er hört auf zu spielen, wenn Sie das kleine Fenster schließen, das den Titel und die laufende Zeit anzeigt.

Benötigt wird ein:
- Amiga mit 4MB Fast-RAM.
- OS3.0+
- AHI V4+



Angehängte Dateien Thumbnail(s)
   
Drucke diesen Beitrag

  TK Player Source
Geschrieben von: HelmutH - 04.07.2021, 17:59 - Forum: Snippets & Libraries - Keine Antworten

Zum Projekt: TK Player - Multiformat AHI Player
Dies ist der Code zum

TK Player013 lite.bb2

Code:
WBStartup
optimize 7
Syntax 2
ver.s = "$VER: TKPlayer Lite 1.2 (\\__DATE_GER__)"

#buffersize  = 250      ; 100 msecs double buffering
#ahi_unit    = 0        ; play on ahi.device unit 0

#max_files=2

XINCLUDE "dos.include.bb2"
XINCLUDE "file_audio.include.bb2"
XINCLUDE "ahi_device.include.bb2"
error_flags {#error_stout}


dummy.l = dos_settaskpri {2}
succ.l  = True
If NumPars>0 Then filename.s = Par$(1)
If ahi_open{#ahi_unit} ; open ahi.device
 If ahi_stream_open{filename.s,#buffersize}
   While succ=True
     succ = ahi_stream_do{}
     signals.l = Wait_(-1)
     If (signals & #SIGBREAKF_CTRL_C) Then succ=False
   Wend
 End If
 Delay_ 2
 ahi_close {}
End If
ffa_free{}
End

Und dieser für 
TK Player014.bb2 
Code:
WBStartup

optimize 7
Syntax 2
ver.s = "$VER: TKPlayer 1.4 (\\__DATE_GER__)"

#max_files= 2
XINCLUDE "dos.include.bb2"
XINCLUDE "file_audio.include.bb2"
XINCLUDE "ahi_device.include.bb2"
error_flags{#error_stout}
speed.l      = dos_gettoolvalue{"SPEED",100}
infos.l      = dos_gettoolvalue{"INFO",0}
nogui.l      = dos_gettoolvalue{"NOGUI",0}
ahiunit.l    = dos_gettoolvalue{"AHIUNIT",0}
pri.l        = dos_gettoolvalue{"PRI",2}
buffersize.l = dos_gettoolvalue{"BUFFERSIZE",250}

 If dos_numpars{}>0 Then filename.s = dos_nextarg{};:Else error {"no cli args !"}

 Repeat
   option.s = UCase$(dos_nextarg{})
   If Peek.b(&option.s) = @"-" Then option.s = Right$(option.s,Len(otpion.s)-1)
   Select option.s
     Case "NOGUI"
       nogui.l = True

     Case "SPEED"
       speed.l = Vallong(dos_nextarg{})

     Case "OFFSET"
         msoffset.l = Vallong(dos_nextarg{})
         If msoffset<0 Then msoffset=0

     Case "INFO"
       infos.l = True

     Case "AHIUNIT"
       ahiunit = Vallong(dos_nextarg{})

     Case "BUFFERSIZE"
       buffersize = Vallong(dos_nextarg{})

     Case "PRI"
       pri.l = Vallong(dos_nextarg{})

   End Select
 Until option.s = ""
 If nogui=False Then infos=False
 If buffersize<10 Then buffersize=10
 If buffersize>10000 Then buffersize=10000
 If speed<50 Then speed=50
 If speed>200 Then speed=200
 If ahiunit>3 OR ahiunit<0 Then ahiunit=0


 If filename.s><"?" AND filename.s><"-h"
 dos.l = ffa_read {filename.s}

 If dos.l><-1
   fil.s        = file_name {dos}         ; read file properties
   channels.l   = ffa_channels {dos}      : If channels><1 AND channels><2 Then channels = 2
   samplerate.l = ffa_samplerate {dos}
   bits.l       = ffa_bits {dos}          : If bits><16 AND bits><8 Then bits = 16
   todo.l       = ffa_blength {dos}
   frsize.l     = ffa_framesize {dos}
   filename.s   = file_fullname {dos}
   ahibuffersize.l = buffersize
   buffersize.l = buffersize * samplerate / 1000
   buffersize   * channels * Int(bits/2)
   If buffersize<256 Then buffersize=256

   blength.l     = todo.l
   bufflength.l  = todo / buffersize
   If bufflength<1 Then bufflength=1
   succ.l        = True
   fsamplerate.f = samplerate
   foffset.f     = msoffset
   foffset       = foffset * fsamplerate / 1000
   fileoffset.l  = foffset

   If fileoffset>0
     succ.l = ffa_seek{dos,fileoffset}
     todo - fileoffset *frsize
   End If

   sectime.l = blength / samplerate / channels * 8 / bits

   totaltime.l = sectime : If totaltime<1 Then totaltime=1

   mintime.l = sectime / 60
   sectime.l = sectime MOD 60
   Format "00"
   tim.s = "/"+Str$(mintime)+":"+Str$(sectime)+" "+fil.s
   b.s = Str$(0)+":"+Str$(0)+tim.s

   flength.l = blength/frsize
   If infos
     Format ""

     NPrint "File:         ",filename.s

     Format "00"

     NPrint "Duration:     ",Str$(mintime)+":"+Str$(sectime)
     Format ""

     NPrint "Samplerate:   ",samplerate
     NPrint "Bits:         ",bits
     NPrint "Channels:     ",channels
     NPrint "Sampleframes: ",flength
     Format "00"
     NPrint "Starting ..."

   End If


   If nogui=False
     *scr.Screen = Peek.l(Addr Screen(0))
     titleheight.l = *scr\WBorTop + *scr\Font\ta_YSize + 1
     pixwidth.l = Min(TextLength_ (*scr\RastPort,&b.s,Peek.l(&b.s-4)) +64,*scr\Width-32)
     DefaultIDCMP #IDCMP_CLOSEWINDOW|#IDCMP_ACTIVEWINDOW
     Window 0,(*scr\Width-pixwidth)/2,*scr\Height/2-6,pixwidth,titleheight,$E,b.s,1,0
   End If

   dummy.l = dos_settaskpri {pri}

   If ahi_open{ahiunit} ; open ahi.device
     If ahi_stream_open{filename.s,ahibuffersize,speed}
       While succ=True
         If succ Then succ = ahi_stream_do{}
         sectime.l = ahi_stream_timeindex{} / samplerate
         mintime.l = sectime / 60
         sectime.l = sectime MOD 60
         procent.l = ahi_stream_timeindex{} / samplerate * 100 / totaltime

         a.s = Str$(mintime)+":"+Str$(sectime)+tim.s
         If a.s >< b.s
           If nogui=False
             ;If locklayer{0}
               SetWindowTitles_ Peek.l(Addr Window(0)),&a.s,0
             ;  unlocklayer{}
             ;End If
           End If
           If infos
             Format ""
             c.s = Str$(procent)+"% - "
             Format "00"
             c.s = Str$(mintime)+":"+Str$(sectime)
             NPrint Chr$(11)+"playing ",c.s,tim.s
           End If
           b.s = a.s
         End If

         signals.l = Wait_(-1)

         If (signals & #SIGBREAKF_CTRL_C) Then succ=False

         Repeat ; check for closewindow event
           idcmp.l=Event
           If idcmp = #IDCMP_CLOSEWINDOW Then succ=False
         Until idcmp = 0

       Wend
     End If
     Delay_ 5
     ahi_close {}
   End If
   ffa_close {dos}
 End If
 Else
   NPrint "Usage: TKPlayer [?] [<filename>] [ahiunit ...] [buffersize ...] [info] [nogui] [speed ...] [offset ...] [pri ...]"
   NPrint " "
   NPrint "Parameters:"
   NPrint "  filename   - valid DOS filename with path"
   NPrint "  ahiunit    - 0..3, unit of ahi.device"
   NPrint "  buffersize - buffersize in milliseconds, default is 250"
   NPrint "  speed      - playback speed in %, default is 100"
   NPrint "  offset     - offset from where to start playback in ms, default is 0"
   NPrint "  info       - display infos in shell"
   NPrint "  nogui      - do not open playback window"
   NPrint "  pri        - set task priority, default is 2"
   NPrint "  ?          - display this help"
   NPrint " "
   NPrint "Example: TKPlayer Sys:Music/mymusic.mp3 ahiunit 1 buffersize 500 nogui speed 75 offset 1000"
   NPrint "This will play the file \\22Sys:Music/mymusic.mp3\\22 on ahi unit 1 with a buffersize of 0,5 secs, at 75% speed, from 1sec after the beginning, showing no gui window"
   NPrint " "
 End If

 If infos
   NPrint "Done."
 End If
 ffa_free{}
End

Drucke diesen Beitrag