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+
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
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
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
Mit dem Erscheinen von AmigaOS3.2 (und auch schon vorher, mit 3.1.4) wird es notwendig, die Includes, Amigalibs usw. innerhalb BlitzBasic2 anzupassen bzw. auf den neuesten Stand zu bringen, insofern man vom neuen OS profitieren möchte.
Ich hänge hier unten schonmal die wichtigsten Libs dran, aber seid gewarnt:
Wenn ihr nicht die gleichen Libnumbers habt in eurer Installation, dann gibt es Probleme!
Im Prinzip müßt ihr vor dem Update eure Libs scannen, entweder mit einem speziellen Tool oder dem LibMan. Dort seht ihr dann, welche Libnummern ihr verwenden müßt, damit alles so weiter funktioniert wie bisher. Ihr solltet NICHT NEUE FREIE NUMMERN VERWENDEN, sondern die 'alten'!
Die Libs brauchen z.T. zwei Sub-Libs, wegen der Token-Anzahl, darum gibt es auch manchmal zwei Libnums! Siehe im Screenshot dos.library1+2.
Ganz oben sieht man die dos.lib zweimal, mit unterschiedlichen Nummern!! Wichtig! Aufschreiben!
Mit den neuen Amigalibs müßt ihr natürlich auch noch testen, ob die Tokens erkannt werden:
Yep!
16.11.2010 Hydrozone V1.02 - Arcade-Spiel (Vollversion) von David Cruickshanks
Hydrozone ist eine Art virtueller Hindernislauf mit Shoot'em Up- und Breakout-Sequencen. Das ursprünglich 1994 als Shareware vertriebene Spiel wurde nochmals leicht überarbeitet und ist jetzt kostenlos erhältlich.
Änderungen in dieser Version: - Lizenz von Shareware auf Freeware geändert
- Dokumente aktualisiert
- Option zum Fortsetzen ab Level 4 hinzugefügt, wenn ein Spieler über diesen Punkt hinaus stirbt - Änderungen an der Gesundheit vorgenommen. Wenn ein Spieler nacheinander in mehrere Wände kracht, nimmt nur der erste Treffer die volle Energie aus dem Gesundheitsbalken des Spielers. Alle weiteren Treffer verbrauchen nur noch ein wenig - Einige der Texte im Spiel wurden geändert - Hoffentlich wurde das Problem der Beschleunigung und Verlangsamung auf beschleunigten Amiga's d.h. 030, 040's etc. behoben. - Einige Teile des Spiels liefen doppelt so schnell, wie sie sollten. (ungetestet, da ich keinen dieser Rechner besitze) - Neu kompilierter Code mit AmiBlitz3. (Ursprünglich programmiert mit BlitzBasicII1.7)
Ftype ist ein klassischer, vertikal scrollender Shooter mit Bonus-System. Es ist noch in einer frühen Entwicklungsphase. Zielplattform ist ein nackter A1200. Das Spiel läuft auf einem A500 wenn es mit Blitz2.1 kompiliert wurde, mit AmiBlitz3 kommt es zu einem Kompatibilitätsproblem mit dem Amiblitz-Compiler das erst beseitigt werden muß.
Carlos Peris hat eine 17-minütige Videoanleitung auf YouToube veröffentlicht, die zeigt, wie sich mit der Spieleentwicklungsumgebung Redpill eine Breakout-Varinate erstellt werden kann.