Zrobiłem sobie intro w ASCII (jest taki programik na A8 Larry's Title maker") i chciałbym go "dołączyć" do innego wykonywalnego xex (w tym przypadku FRED) tak, żeby wczytywał mi się przez samą grą. Czy da się to jakoś zrobić z poziomu Atari ewentualnie PC (chociaż wolałbym z poiomu Atari bo mam Mac-a i muszę podbierać PC synowi, jeżeli coś chodzi pod Win).
Super Packer działa :) dzięki Panowie. A czy ktoś z Was by mi powiedział jak po intro zatrzymać ładowanie następnej części (czyli w tym przypadku gry) do czasu naciśnięcia jakiegokolwiek klawisza?
Mogło się zdadzyć, że łaczenie plików nie wymagało podmiany danych w intrze. ;)
Super Packer to ze słyszenia wiem, legendarny program, gdybym tylko go kiedyś używał (mierny ze mnie praktyk) na pewno też bym o nim pamiętał wspomnieć.
Rozumiem jednak że mamy do czynienia z gotowym plikiem intra i nie możemy wygenerować sobie dodatkowego kodu do nowej wersji 'z asemblacji', jak z przykładu Vidola.
Więc to co jest zapisane jako 'źródło' (do asemblacji w asm 6502) tego dodatkowego kodu możemy ewentualnie scalić z intrem poprzez dopisanie ekwiwalentnych "hexów" (to właśnie robi asemblacja).
Potrzebujemy wiedzieć dokładnie co i gdzie dopisać, oraz czy dysponujemy możliwościami edycji pliku.
Możesz swobodnie edytować i wyszukiwać zadany ciąg danych w pliku? (czy masz takie wypróbowane narzędzie w swojej dyspozycji)
Nie mam źródłowego pliku. Intro w ASCII zrobiłem w programiku na Atari - Larry's Title Maker. Ten program od razu zapisuje projekt w pliku wykonywalnym.
Mógłbym próbować edytować ten plik pod Omnivore, ale chyba to ponad moje siły :)
Zrobiłem sobie też intro w Basicu (@mono mi pomógł) i dzięki programowi Fandala - BAS2COM otrzymuję plik wykonywalny. W moim intrze napisanym w BASIC-u mam w kodzie linie która zatrzymuje mi wykonywanie programu.
Połączyłem moje intro z Basica z Fredem przez Super Packer. I tu @marok musiałem zmienić RUN na INIT.
Scalony plik się odpala. Najpierw wchodzi intro ale po naciśnięciu klawisza nie zaczyna wczytywać Freda ale wychodzi do Basica - napis READY i koniec.
Moj kawałek kodu w BASIC na końcu:
10 DIM L$(120):OPEN #1,4,0,"K:":TRAP 30 20 ? CHR$(125);:FOR I=1 TO 23:READ L$:? L$:NEXT I:GET #1,K:GOTO 20 30 END 101 DATA 102 DATA ------------------------------------ 103 DATA TEST. 1234567 104 DATA ------------------------------------ 105 DATA . . 121 DATA ------------------------------------ 122 DATA 123 DATA PRESS ANY BUTTON TO CONTINUE .......
W przypadku intra stworzonego w Larry's Title Maker - Super Packer scala oba pliki - najpierw dodaje FRED poźniej INTRO (tu nie muszę zmieniać RUN na INIT) i scalony plik najpierw ładuje INTRO a póżniej zaraz FREDA.... No właśnie dosłownie ZARAZ. Za szybko... dlatego potrzebuję to zatrzymanie INTRA i uruchomienie dalszego ładowania po naciśnięciu klawisza
"scalony plik najpierw ładuje INTRO a póżniej zaraz FREDA.... No właśnie dosłownie ZARAZ. Za szybko... dlatego potrzebuję to zatrzymanie INTRA i uruchomienie dalszego ładowania po naciśnięciu klawisza"
czyli chodzi o wstrzymanie ładowania
to jak najbardziej słuszny postulat
w takim jednak przypadku nie jestem niestety pewien jak to powinno być zrobione (może ktoś podpowie?), choć zakładam że rozwiązanie musi być najzwyczajniej proste
zapewne można spróbować zrobić to także z poziomu tego programu w basic - wtedy rozwiązaniem jest modyfikacja linii 30 (ale tak może się zwyczajniej nie dać, o czym rozpisuję się niżej)
problemem wtedy staje się jeszcze konieczność odłączenia banku pamięci ROM basica (to w tej zmienionej linii 30), bo pamięć tego obszaru adresowego w grze FRED jest na pewno wykorzystywana (do zapisu - to "RAM pod ROM'em") - żadna duża gra nie pozostawia tego obszaru niezagospodarowanego
tylko że jak się odłączy basic, to jak ma się wykonać ew. reszta kodu z linii 30? - to chyba niewykonalne
może to znaczyć, że doczytanie samej gry raczej musiałoby się odbyć z poziomu basica (w tej linii 30 i ew. kolejnych), ale chyba gra wczytuje się od razu pod adres obszaru ROM - więc i takie rozwiązanie wówczas odpada
w takim wypadku (a można to łatwo sprawdzić z pliku gry) nie ma już możliwości (chyba) rozwiązania tego z poziomu programu w basicu
A takie pytanie: zamiast łączenia dwóch xex czy nie dałoby się to rozwiązać przez BAT? np START.BAT zawierający LOAD: D1:INTRO.XEX QUIT, LOAD D1:GRA.XEX. Nie wiem jak się pisze komendy w plikach BAT pod ATARI.
MatthewNS możesz zapodać zrzut z okna SP i jaka to jest wersja Freda? Podejrzewam, że problem może być z kolejnością bloków w pliku wynikowym. Powinno być tak: blok INTRO INIT blok/i FRED RUN
W załączeniu zrzut z SP i wersja FRED. RUN potraktowany żółtym markerem został zmieniony z INIT... i działa ale......: ja bym wolał ZATRZYMAĆ intro i po nacisnięciu klawisza kontynuować wczytywanie. Czy to się da zrobić przy pomocy SP.