Hej!
Akurat "Duszpasterz" był łatwym przypadkiem, zakładam że masz windows jako główny system operacyjny, więc czyniąc to założenie można to zrobić tak...
Uruchomiłem plik ATR zawierający ową grę, zobaczyłem że wystartował MyDos:
po obejrzeniu katalogu, wcisnąłem klawisz "1" aby obejrzeć katalog dyskietki #1:
... okazało się że widnieje tam plik "rzygon.xex", a więc zwykły binarny plik DOS-u, zatem należało do niego dodać kawałek kodu zerującego komórkę $41... można było to uczyć na dwa sposoby, poprzez napisanie kawałka kodu w ASM, i dołączenie tego kodu wraz z segmentem INIT na początku pliku "rzygon.xex", albo skoro zmieniac mamy tylko jeden bajt w pamięci można dołączyć odpowiedni nagłówek na początku pliku. Można tego dokonać z poziomu samego MyDOS, plus mała pomoc ze strony BASIC-a.
Jako że w chwili gdy robiłem "patch" miałem pod ręką tylko emulator, przeniosłem plik "rzygon.xex" z ATR-a do filesystemu na komputerze PC, można użyć np. emulatora Altirra, należy włączyć w nim emulację wirtualne dysku twardego, dodajemy urządznie "H:" w menu System -> Configure System -> Devices:
potem wskazujemy ścieżkę gdzie będą się znajdowały pliki:
po tej operacji możemy przenieść z poziomu MyDOS-a plik na dysk twardy:
mając już plik "po stronie PC", należy przygotować plik zawierający sekwencję wyłączającą dźwięk podczas I/O, można użyć dowolnego edytora HEX pod windows, np. HxD:
po zapisaniu tego małego pliku należy go dołączyć do istniejącego "rzygon.xex", z linii poleceń można to uczynić następująco:
copy /b silent_io.bin + rzygon.xex rzygon_p.xex
po tej operacji pozostaje już tylko skopiowanie pliku "rzygon_p.xex" na powrót do pliku ATR:
... i to jakby wszystko. Uruchamiając "rzygon_p.xex", uruchomisz po prostu plik z dodaną sekwencją wyciszającą I/O.
Jeżeli chcesz to zrobić na komputerze, nie mając do dyspozycji PC, to z pomocą przyjdzie również MyDos, który jest na "dyskietce" oraz wbudowany w ROM Atari interpreter BASIC. Pierwsze co należy zrobić to uruchomić komputer z tej dyskietki z włączonym BASIC-iem, ew. użyć opcji M, wpisać adres "E477", komputer się zrestartuje z BASIC (nie należy oczywiście trzymać OPTION).
Po tym gdy załaduje się DOS i uruchomi się BASIC (napis READY na ekranie) wpisujemy następujący kod:
10 OPEN #1,8,0,"D:RZYGON_P.XEX"
20 TRAP 40
30 READ A:PUT #1,A:GOTO 30
40 CLOSE #1
50 DATA 255,255,65,0,65,0,0
Po wpisaniu kodu uruchamiany program pisząc "RUN", po chwili po tej operacji na dyskietce powinien pojawić się plik "rzygon_p.xex", należy do niego dołączyć plik "rzygon.xex", można to zrobić również z poziomu MyDOS-a. Przechodzimy do DOS-a z poziomu BASIC-a pisząc DOS, a potem używając polecenia "Copy" (klawisz C) w menu MyDOS, łączymy plik "rzygon.xex" z przed chwilą stworzonym plikiem "rzygon_p.xex":
RZYGON.XEX,RZYGON_P.XEX/A
Restart komputera z wyłączonym BASIC-iem, oraz uruchomienie "rzygon_p.xex", spowoduje uruchomienie gry z wyłączonym dźwiękiem I/O.
Tyle że cała przedstawiona operacja tyczyła się tej konkretnej produkcji, na dyskietce maiłeś normalny file-system, DOS-a, etc. Jeżeli dyskietka lub plik ATR zawierają produkcję która jest programem typu BOOT i nie zawiera żadnego systemu plików sytuacja się komplikuje, i do sprawy należy podejść indywidualnie.
Oczywiście owy plik zawierający te 6 bajtów ($FF,$FF,$41,$00,$41,$00,$00) dołączysz sobie na początku dowolnego pliku .XEX, to o ile sam plik i segmenty INIT nie włączą sobie ponownie dźwięku I/O... to takie pliki .XEX będą się wczytywały po cichu już po odczytaniu pierwszego sektora zmodyfikowanego pliku.
Ostatnio edytowany przez seban (2019-06-13 16:34:53)