Autor Wątek: Muzyka do gotowej gry  (Przeczytany 8626 razy)

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Muzyka do gotowej gry
« dnia: 2012.11.05, 09:53:10 »
Po długiej przerwie zrobiłem trainer/selektor ULA+ do kolejnej gry. Tym razem to jest Lightforce.
Okazało się, że po dodaniu intro wraz z muzyką pod koniec pamięci pozostaje jeszcze ponad 1kB.
Gra nie wchodzi na muzykę z intro, stąd mój pomysł, czy mógłby ktoś dopisać procedurę grania muzyki w czasie gry?
Ja już pousuwam wszystkie DI i jeśli się uda, to również odwołania do ROM-u.

Kilka szczegółów (bloki):
Loader w Basic,
Muzyka + palety i inne bajery: 57528, 7709
Kod intro: 62536, 1044
Właściwa gra: 24800, 32427
Standardowy screen: 16384, 6912

Gdyby ktoś potrafił (i chciał) dołączyć taką procedurę byłoby super.
Ja się jeszcze w przerwaniach gubię.

AY Music, ULA plus.

LCD

  • **
  • Wiadomości: 71
  • Miejsce pobytu:
    Wieden/Austria
  • Ciemna moc
    • Strona glówna LCD
Odp: Muzyka do gotowej gry
« Odpowiedź #1 dnia: 2012.11.05, 11:38:42 »
Ja mam Atari i C64 do grania. Ale pracuje na ZX-ie.

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Muzyka do gotowej gry
« Odpowiedź #2 dnia: 2012.11.06, 01:24:20 »
Program jest bardzo dobry. Dzięki, choć z grą nie da się nic zrobić.
Nie dopatrzyłem, że tworzy ona własną tabelę przerwań w tym miejscu gdzie jest muzyka w intro, a poniżej 49152 nic nie zmieszczę, aby przełączać banki.
AY Music, ULA plus.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Muzyka do gotowej gry
« Odpowiedź #3 dnia: 2012.11.06, 10:20:45 »
Na szybko rzuciłem okiem w to co podesłałeś.

Intro trzeba poprawić bo działa tylko jedną ramkę. Pewnie coś nie tak z czytaniem klawisza, który wychodzi z pętli intra i odpala grę.

Co do muzyki. Gra włącza IM2 a kod obsługi przerwania znajduje się pod adresem 53928. Wystarczy w tamtym miejscu zrobić CALL do swojej procedurki, która będzie robić to co robił zastąpiony przez tegoż CALLa kod, a następnie będzie grać muzykę.

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Muzyka do gotowej gry
« Odpowiedź #4 dnia: 2012.11.06, 20:46:07 »
Tygrys, na czym sprawdzałeś? Może masz wciśnięty fire w joysticku albo za długo wciskasz spację (spróbuj inny klawisz)?
U mnie w 5 emulatorach intro startuje prawidłowo.
Zrobiłem to tak, że grę uruchomić można wciśnięciem spacji, 0 lub kempston fire, jeśli to będzie przeszkadzać,
to zmienię na jeden klawisz, np. 0

Jeśli chodzi o przerwania to pomęczę się z tym przy okazji.
AY Music, ULA plus.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Muzyka do gotowej gry
« Odpowiedź #5 dnia: 2012.11.06, 20:50:29 »
Bardzo możliwe że miałem coś nie tak z ZX Spinem, teraz już jest OK, więc przepraszam za fałszywy alarm ;)

Zacząłem grzebać w tym co podesłałeś. Niedługo podeślę moje propozycje poprawek.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Muzyka do gotowej gry
« Odpowiedź #6 dnia: 2012.11.06, 22:38:53 »
To jednak nie był fałszywy alarm. Popełniłeś znany błąd -- zacząłeś używać kempstona bez wcześniejszego sprawdzania czy jest dostępny.

Zmiany jakie proponuję to:
- wykrywanie kempstona, zanim nastąpi próba jego użycia
- toggle dla opcji 3 i 4, wiąże to się również z podświetlaniem linijki z opcją
- drobne optymalizacje oraz reorganizacja kodu

Muzyki podczas gry jeszcze się nie dotykałem.

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Muzyka do gotowej gry
« Odpowiedź #7 dnia: 2012.11.07, 00:26:22 »
Dzięki za poprawki. Zrobienie toggle zawsze było dla mnie diabelską sztuczką.
Ponadto zatrzymałem się z assemblerem gdzieś koło roku 1990 i taka instrukcja jak
_immunity   equ   $+1
jest dla mnie całkowicie niezrozumiała.
Cieszę się, że pomogłeś.
AY Music, ULA plus.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Muzyka do gotowej gry
« Odpowiedź #8 dnia: 2012.11.07, 10:09:04 »
_immunity   equ   $+1
to jest zdefiniowanie etykiety, której wartością jest aktualny adres pamięci $  zwiększony o 1.
To zabieg bardziej estetyczny, połączony z wygodą, co może pokazać przykład. Nie muszę pamiętać, o ile mam zwiększyć adres aby poprawnie zmodyfikować kod:

Przykład bez użycia sztuczki:
_immunity:
       ld   a,0
       inc a
       ld (_immunity+1),a

oraz z jej użyciem:
_immunity: equ $+1
       ld   a,0
       inc a
       ld (_immunity),a

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Muzyka do gotowej gry
« Odpowiedź #9 dnia: 2012.11.07, 23:19:53 »
Znalazłem przeróbkę na mysz tej gry i chciałem ją dołączyć, ale nic za cholerę mi nie wychodzi (pierwszy załącznik - oryginał).

Najpierw musiałem wyłączyć muzykę (czy tylko ją zatrzymałem i to może być powód?), bo gra doładowuje blok-sterownik 227b na muzykę, zaraz za kodem gry.

Dalej w Basicowym loaderze (nie usuwałem tego, ale przepisałem na asm i stamtąd to startuje, na samym końcu pliku code3) jest kilkanaście POKE, które wpisywane są w różne miejsca gry.
Jeśli ich nie dodaję, to gra startuje, ale chodzi na joystick Kempston, gdy dodam, to się wiesza.
Gdzie popełniam błąd? Nie mam pojęcia, może szybko spojrzysz na to. Jeśli nie da się tego uruchomić, dam sobie spokój.

Jednocześnie odpada też sprawa muzyki w grze, jeśli ma być mysz, jak wspomniałem sterownik jest ładowany na muzykę.

Ostatnie pytanko odnośnie assemblera. Znalazłem w Twoim kodzie coś takiego jak rept 8. Domyślam się, że znaczy to, że ma powtórzyć 8 razy. Tylko co? Ostatnią operację, czy jakiś zdefiniowany wcześniej fragment?
AY Music, ULA plus.

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Muzyka do gotowej gry
« Odpowiedź #10 dnia: 2012.11.07, 23:27:53 »
Tutaj znajdziesz odpowiedź na temat rept: http://pasmo.speccy.org/pasmodoc.html

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Muzyka do gotowej gry
« Odpowiedź #11 dnia: 2012.11.13, 12:44:17 »
Abrimaal, zajrzę do tego niedługo, póki co jestem zawalony inną robotą.