C64Power Forum

Software => Programowanie => Wątek zaczęty przez: marx w 08 Marca 2016, 10:42

Tytuł: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: marx w 08 Marca 2016, 10:42
Drodzy koledzy commodorowcy, prośba o poradę. Przygotowuję się do stworzenia wystrzałowego dema na C64 ale mam drobny problem ;). Otóż piszę sobie pod Relaunch64 i odpalam źródłówki pod VICE na OSX. Pół biedy gdy moje wypociny można zamknąć w jednym pliku, wtedy wystarczy kliknąć "Run" i program się odpala. Chciałbym jednak dodać do swojego mega wystrzałowego demka muzykę. Jednym okiem rzucam na ten tutorial (https://digitalerr0r.wordpress.com/2011/05/01/commodore-64-programming-9-interrupts-and-music/ (https://digitalerr0r.wordpress.com/2011/05/01/commodore-64-programming-9-interrupts-and-music/)) i widzę, że program odwołuje się do dodatkowego pliku (music.sid). I tu pojawia się problem, jak skonfigurować Relanch'a aby po odpaleniu mojego programu, znalazł także plik music.sid? Pisząc na prawdziwym C64 nie byłoby problemu (w końcu i plik programu i plik muzyczny byłyby na tej samej dyskietce). Jak jednak "pożenić" je pod emulatorem?

Za wszelkie sugestie byłbym bardzo wdzięczny. Aha... a to wystrzałowe demo ma narazie jeden zajefajny efekt - czyszczenie ekranu i ramki :)
Pozdrawiam!
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: Skull w 08 Marca 2016, 11:39
a jaki masz assembler podpięty do tego relauncha?
wstawiasz tak jak podano w przykładzie (składnia zależy od używanego assemblera)
    org $1000-$7e
INCBIN “music.sid”

często np.
*=$1000-$7e ; te $7e to nagłówek pliku .SID, reszta to prg jak w c64
.binary "ścieżka do pliku .sid"
 
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: marx w 08 Marca 2016, 11:47
Dzięki Skull za odpowiedź. Mam podpiętego 64tass. Z tym, że mi chodzi bardziej o to jak fizycznie podpiąć plik .sid do programu. VICE po odpaleniu głównego programu .PRG nie będzie miał jakby podlinkowanego pliku .sid (po prostu polecenie INCBIN "music.sid" nie znajdzie takiego pliku)
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: Kisiel w 08 Marca 2016, 12:18
proponuje zajrzeć do ksiażki, turtorialu zanim zaczynasz pytać o takie rzeczy.
Książka to nie "forum zrób mi demo"
To co napisał skull wystarczy.
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: marx w 08 Marca 2016, 12:38
Zdaję sobie sprawę, że pytam może o rzecz oczywistą dla niektórych. Ale chyba korona z głowy nikomu nie spadnie, nawet podczas odpowiedzi na lamerskie pytanie nowicjusza (a Ciebie Kisiel to już dawno olewam ciepłym moczem, może jeszcze kilka wizyt na AmiParty to się uspołecznisz :P)
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: bor@s w 08 Marca 2016, 12:45
incbin zlinkuje ci statycznie sida i wpakuje do prg pod wskazany adres. Żaden ze mnie koder, ale tak robiłem prg z muzyką z GoatTrackera. I polecam do wystrzałowego dema skomponowanie mimo wszystko coś własnego. Nawet bez zdolności muzycznych można przy pomocy wspomagaczy typu ChordBot na Androida przygotować coś ciekawego, wyeksportować do midi, a potem wklepać do C64. Ale na scenie bym tego nie wystawiał :D
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: Zbych w 08 Marca 2016, 21:45
Tak jak napisał Skull to będzie działać jak pominiesz nagłówek pliku SID, składnia zależy od asma może to też wyglądać tak:

*=$1000
!binary   "muzyka.sid",,$7e 


trzeba podać żeby zlinkował plik od ofsetu $7e
oczywiście wszystko będzie ok jeżeli load adres jest od $1000
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: Kisiel w 08 Marca 2016, 22:28
Zbych, odebrałeś okazję do wysiłku umysłowego polegającego na czytaniu ze zrozumieniem.
Forum robi demo, tego jeszcze nie było :)
Robiliśmy już grę ztcp.
Nowinka.
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: Zbych w 08 Marca 2016, 23:49
Zbych, odebrałeś okazję do wysiłku umysłowego polegającego na czytaniu ze zrozumieniem.
Forum robi demo, tego jeszcze nie było :)
Robiliśmy już grę ztcp.
Nowinka.

Oj tam, oj tam, ten post była rozrywka, a gra się cały czas robi. Ja miałem dziś większy problem, nie chce zaśmiecać forum zbędnymi fragmentami kodu chociaż... jak ci się nudzi to: co spieprzyłem w tym kodzie, bo od czasu do czasu migają multipleksowane sprajty?? Podpowiedź: addAndUpdateScore wywoływane jest poza przerwaniami rastra, co jakieś... 32 ramki:

;dodaje wyniku zawartość z akumluatora i aktualizuje to co jest wyświetlane
addAndUpdateScore
          pha         
          sed
          clc
          adc SCORE_REG_START
          sta SCORE_REG_START         
          bcc .addScoreEnd       
          lda SCORE_REG_START+1
          adc #$00
          sta SCORE_REG_START+1                   
          bcc .addScoreEnd                       
          [...]
          ;update screen
.addScoreEnd
          cld
          lda SCORE_REG_START+2
          tay
          and #%00001111
          ora #$20       
          sta SCORE_TEXT_START+SCREEN_START+1
          [...]

          pla
          rts

;procedura w przerwaniach rastra
sprMplxIrq
          pha   
          txa
          pha   
          tya
          pha   

          ldy irqPtr         
          lda rasterIrq,y
          tax
          inx         
          .......

          pla
          tay       
          pla
          tax       
          pla       
          rti


Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: marx w 09 Marca 2016, 08:23
@Zbych & bor@s: Dzięki chłopaki za pomoc. Problem oczywiście leżał w moim kodzie, który nie był w stanie odtworzyć poprawnie muzyczki (która de facto była już w pamięci). No cóż, nie każdy rodzi się od razu takim geniuszem jak Kisiel. Tak czy owak dzięki za miłe przyjęcie na forum ;)
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: Skull w 09 Marca 2016, 09:40
Zbych, odebrałeś okazję do wysiłku umysłowego polegającego na czytaniu ze zrozumieniem.
Forum robi demo, tego jeszcze nie było :)
Robiliśmy już grę ztcp.
Nowinka.

Oj tam, oj tam, ten post była rozrywka, a gra się cały czas robi. Ja miałem dziś większy problem, nie chce zaśmiecać forum zbędnymi fragmentami kodu chociaż... jak ci się nudzi to: co spieprzyłem w tym kodzie, bo od czasu do czasu migają multipleksowane sprajty?? Podpowiedź: addAndUpdateScore wywoływane jest poza przerwaniami rastra, co jakieś... 32 ramki:

;dodaje wyniku zawartość z akumluatora i aktualizuje to co jest wyświetlane
addAndUpdateScore
          pha         
          sed
          clc
          adc SCORE_REG_START
          sta SCORE_REG_START         
          bcc .addScoreEnd       
          lda SCORE_REG_START+1
          adc #$00
          sta SCORE_REG_START+1                   
          bcc .addScoreEnd                       
          [...]
          ;update screen
.addScoreEnd
          cld
          lda SCORE_REG_START+2
          tay
          and #%00001111
          ora #$20       
          sta SCORE_TEXT_START+SCREEN_START+1
          [...]

          pla
          rts

;procedura w przerwaniach rastra
sprMplxIrq
          pha   
          txa
          pha   
          tya
          pha   

          ldy irqPtr         
          lda rasterIrq,y
          tax
          inx         
          .......

          pla
          tay       
          pla
          tax       
          pla       
          rti


pewnie problem z systemem dziesiętnym/szesnastkowym - dlatego nie używam dziesiętnego, i wydaje mi się że w 99% przypadków jest on zbędny
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: Kisiel w 09 Marca 2016, 09:48
leżałem w wyrze i też tak pomyślałem. Przepełnienie i dodawanie z dupy wartości daje ciekawe wyniki, musiałbym spojrzeć w mój kod.
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: Zbych w 09 Marca 2016, 13:42
pewnie problem z systemem dziesiętnym/szesnastkowym - dlatego nie używam dziesiętnego, i wydaje mi się że w 99% przypadków jest on zbędny
Tak, jest to związane z dziesiętnym. Po prostu czasami przerwanie wywoływało się w połowie obliczeń gdy była ustawiona flaga dla BCD i wtedy dziwne rzeczy się działy.
Wystarczy w procedurze przerwań wrzucić na stos rejestr stausu i profilaktycznie wyłączyć tryb dziesiętny, czyli:
          php         
          cld
i wszystko wróciło do normy

Tylko to nie było takie oczywiste co powoduje miganie sprajtów, tym bardziej że wtedy testowałem odtwarzanie muzyki i SFX jednocześnie więc to mnie zmyliło, a wcześniej nie zauważyłem migania bo jest ono sporadyczne.
Jak będę miał jeszcze jakąś ciekawą zagadkę to wrzucę na forum.
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: Kisiel w 09 Marca 2016, 13:58
spoko wrzucaj, proponuje utworzyć nowy wątek "ZbychoZagdka"

Nie bardzo rozumiem po co używać decimal poza HID.
Tytuł: Re: Relaunch64 + VICE i kilka plików
Wiadomość wysłana przez: Zbych w 09 Marca 2016, 14:21
spoko wrzucaj, proponuje utworzyć nowy wątek "ZbychoZagdka"

Nie bardzo rozumiem po co używać decimal poza HID.

Np. do wyświetlenia wyników. Wydaje mi się że łatwiej (i szybciej) policzyć i wyświetlić BCD niż konwertować HEX do postaci umożliwiającej wyświetlenie, tym bardziej że to licznik kilkubajtowy.