kategoria: MorphOS 3.x
[#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.
3
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem