[#1]
WipeOut 2097 + muzyka w trakcie gry
Hello. W związku z moim poprzednim tematem dotyczącym nie działających Settlers-ów, przeskoczyłem na temat zapewne wszystkim bardzo dobrze znanej gry WipeOut 2097. Postanowiłam ją zatem trochę pomęczyć, uprzednio nagrywając na płytkę CD aby słyszeć ścieżki CDDA. Niestety obraz BIN/CUE musiałem wypalić pod Windowsem, gdyż pod MorphOS-em nie znalazłem programu, który rozumiał by inne formaty oprócz ISO, ewentualnie CDR. Niestety dawno nie używałem napędu w moim iBooku i po włożeniu do niego płyty okazało się, że ten rysuje górną powierzchnię nośnika zdzierając refleksyjną powłokę. W efekcie płyta do wyrzucenia. Czeka mnie zatem demontaż napędu i zajrzenie do jego wnętrza, ale na razie nie mam do tego weny. Natomiast chęć zagrania z nutą w tle pozostała. Rozwiązaniem okazały się dwa skrypty, którymi chciałbym się podzielić. Zanim jednak to zrobię należy wykonać konwersję ścieżek CDDA do bardziej jadalnego formatu, choćby AIFF. W posiadanym "obrazie" gry każda ścieżka została zapisana oddzielnie jako pliki z rozszerzeniem .bin, oraz jeden pliki .cue. Każdy chyba wie, że są to czyste dane RAW. Więc korzystając z dołączonego do SongPlayera programu AudioConvert skonwertowałem pliki BIN do AIFF, redukując częstotliwość próbkowania do 22050, oraz używając opcji zamiany bitów Big-Little Endian. Tak powstałe pliki dźwiękowe umieściłem razem w katalogu z grą nadając im nazwy WipeOut_Track_X.aiff, gdzie X to cyfry od 1 do 9. Następnie pisząc skrypty stwierdziłem, że chciałbym aby za każdym razem po uruchomieniu gry utwory nie były odtwarzane wedle listy, lecz losowo. Pomógł mi w tym program
BLUM dostępny na Aminecie.
Skrypt WipeOut2097:
; $VER: WipeOut 2097 Startup Script (24.12.2021)
ASSIGN WO2097: ""
DELETE >NIL: ENV:TRACK ENV:TRACKX ENV:STOPPLAY ENV:TASK
RUN >NIL: EXECUTE WO2097:WipeOut_Track_Play
STACK 100000
WIPEOUT >NIL:
ECHO >ENV:STOPPLAY YES
STATUS COM C:PLAY >ENV:TASK
FAILAT 21
BREAK >NIL: ALL $TASK
WAIT 5 SEC
DELETE >NIL: ENV:TRACK ENV:TRACKX ENV:STOPPLAY ENV:TASK
ASSIGN WO2097: REMOVE
ENDCLI
Skrypt WipeOut_Track_Play:
; $VER: Play No-CDDA Tracks During Game WipeOut 2097 (24.12.2021)
CD >NIL: WO2097:
LAB START
C:BLUM >ENV:TRACK 9
IF EXISTS ENV:TRACKX
IF "$TRACK" EQ "$TRACKX"
DELETE >NIL: ENV:TRACK
FAILAT 11
SKIP BACK START
ENDIF
ENDIF
IF $TRACK EQ "0"
DELETE >NIL: ENV:TRACK
FAILAT 11
SKIP BACK START
ENDIF
FAILAT 21
C:PLAY >NIL: WO2097:WipeOut_Track_$TRACK.aiff
IF EXISTS ENV:STOPPLAY
ENDCLI
ENDIF
DELETE >NIL: ENV:TRACKX
RENAME >NIL: ENV:TRACK ENV:TRACKX
FAILAT 11
SKIP BACK START
ENDCLI
W drugim skrypcie BLUM z parametrem 9 generuje losowo cyfry od 0 do 9. Dalej polecenia warunkowe sprawdzają czy nie zostało wylosowane 0, lub czy wylosowana cyfra nie jest taka sama jak wcześniej. Nie może wypaść 0 ponieważ żaden plik AIFF (u mnie) nie posiada w nazwie zera. Natomiast zmienna TRACX powstaje dopiero po pierwszym wykonaniu skryptu, przed zapętleniem i przechowuje wcześniej wylosowaną cyfrę.
Wadą całości jest chyba tylko to, że nie ma z poziomu gry kontroli nad odtwarzaniem utworów, oraz to że muzykę słuchać już w chwili otwarcia okienka preferencji.
Chciałem tylko na koniec sprostować, że nie miałem zamiaru się zachwalać, wychwalać itp. chciałem tylko ułatwić "życie" innym. Bo dlaczego innym miałoby być gorzej niż mnie? Wszelkie konstruktywne uwagi mile widziane, natomiast apeluję o wstrzymanie się przed obraźliwą krytyką z byle powodu.