atarionline.pl Bubble Bobble v1.00 - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1:
         
        CommentAuthorJacques
      • CommentTime16 Dec 2024 08:12 (5 dni temu)
       
      Akurat jak na 1xSIO to ładowanie wcale nie jest straszne, owszem, odrobinę psuje flow pomiędzy etapami, ale nie jest źle. Bardziej przeszkadzają te śmieci na ekranie w trakcie doładowywania po SIO ;-)
      • 2: CommentAuthorvega1
      • CommentTime16 Dec 2024 12:12 (5 dni temu) zmieniony
       
      nie takie proste z tymi śmieciami...dodałem testowanie DLI/VBL do procedury przerwania IRQ i wywala mi błąd...chyba moje przerwanie vbl za długie..nic innego mi nie przychodzi do głowy

      138 ($8a) -118 SIO DEVICE TIMEOUT (DOESN'T RESPOND)
      Urządzenie nie odpowiedziało na komendę komputera w czasie na to przewidzianym; na ogół oznacza to, że urządzenie nie istnieje, jest wadliwie podłączone bądź uszkodzone


      myIRQ_OS .proc
      bit NMIST
      bmi myDLI_OS
      jvc (save_VIMIRQ)
      pha
      txa
      pha
      tya
      pha
      sta NMIRES
      jsr myVBL.jmp1 ; my own VBL
      tsx
      lda #>irq1 ; return address for RTI
      pha
      lda #<irq1
      pha
      lda $103,x ; status register for RTI
      pha
      jmp (save_VVBLKI) ; OS VBL
      irq1 jmp (save_VIMIRQ)
      .endp

      myDLI_OS .proc
      tsx
      lda #>irq1 ; return address for RTI
      pha
      lda #<irq1
      pha
      lda $103,x ; status register for RTI
      pha
      jmp (DLIV)
      irq1 jmp (save_VIMIRQ)
      .endp
      • 3: CommentAuthormono
      • CommentTime16 Dec 2024 13:12 (5 dni temu) zmieniony
       
      STA NMIRES na DLI.

      Edit: Nie ma potrzeby robić na IRQ tych pha/txa/pha/... IRQ jest wyzwalane poziomem i nie znika.
      Proponuję taką obsługę:
      irqint:                 ;wskazywany obecnie przez VIMIRQ
      irqdli bit NMIST ;$D40F
      bpl irqvbl
      bit NMIST ;$D40F
      bpl irqvbl
      jmp (VDSLST) ;$200

      irqvbl bvc irqjmp
      bit NMIST ;$D40F
      bvc irqjmp

      pha
      txa
      pha
      tya
      pha
      sta NMIRES ;$D40F
      jmp (VVBLKI) ;$222

      irqjmp jmp $FFFF ;kod przerwania IRQ - to co było wcześniej w VIMIRQ

      Poza tym VBLKI i VBLKD zostają nietknięte. Procedury DLI na VDSLST powinny mieć resetowanie statusu NMIST i muszą jak najbardziej oszczędne jak się da - najlepiej żeby nie wykonywały się po 8 linii skanningowych z wielokrotnymi WSYNC.

      Przy podwójnym testowaniu NMIST się nie upieram - być może wystarczy jedno.

      Artykuł o paczowaniu IRQ będzie w GREL-u następnym.
      • 4: CommentAuthorvega1
      • CommentTime16 Dec 2024 13:12 (5 dni temu) zmieniony
       
      .
      • 5:
         
        CommentAuthorgienekp
      • CommentTime16 Dec 2024 15:12 (5 dni temu) zmieniony
       

      Mono:

      (...)Przy podwójnym testowaniu NMIST się nie upieram - być może wystarczy jedno.(...)


      Zapytam pobocznie, jaka jest przyczyna takiego triku?
      • 6: CommentAuthormono
      • CommentTime16 Dec 2024 16:12 (5 dni temu) zmieniony
       
      Chodzi o to, żeby nie wywoływać dwukrotnie przerwania NMI w przypadku gdy wskoczy między BIT a Bxx. Ale mam wątpliwości czy to jest skuteczna metoda.
      Phaeron proponował
      lda NMIST
      nop
      and NMIST
      bxx ...

      co na jedno wychodzi. Kiedyś myślałem o
      asl NMIST   ;NMIRES
      bcs dli
      bmi vbl
      ...

      ale chłopaki tam piszą, że między odczytem a zapisem może się trafić NMI które przy zapisie (NMIRES) zostanie skasowane i efekt będzie ten sam.
      Z kolei nawet jeśli przerwanie DLI zostanie wywołane dwa razy, to zawsze to lepiej niż gdy nie zostanie wywołane w ogóle (co innego VBLK) o ile projektuje się DLI i VBLK w specyficzny sposób:
      - DLI zmienia rejestry ale nie wykonuje sekwencji istotnych zmian (np. po lewej czerwono, po prawej zielono),
      - VBLK zamiast wykonywać istotne procedury modyfikujące stan programu ustawia flagi, na które reaguje program główny (np. wywołanie playera do dźwięku).
      Chodzi o to, że ponowne wywołanie przerwania ma ustawić te same wartości w komórkach.

      No ale żeby to uwzględniać to najlepiej z tą świadomością projektować program od zera.
      • 7: CommentAuthorvega1
      • CommentTime16 Dec 2024 17:12 (5 dni temu) zmieniony
       
      jak próbowałem w procedurze IRQ po skoku DLI/VBL nie robić potem skoku jeszcze jak niżej
      irq1 jmp (save_VIMIRQ)

      to ciov dawał znowu taki błąd
      42 ($8e) -114 SIO SERIAL BUS DATA FRAME OVERRUN ERROR Komputer nie zdążył odebrać danych przesłanych przez urządzenie i zostały one zamazane przez dane nadesłane następnie. Jest to bardzo rzadko występujący błąd, na ogół oznacza spowodowane przez program użytkownika przeciążenie przerwań albo zbyt dużą szybkość transmisji zaprogramowaną na układzie POKEY.

      bo widzę, że w kodzie mono tego nie ma...
      rozumiem mono, że twoja procedura przetestowana przy odczycie ze stacji dysków? i działa dobrze
      • 8: CommentAuthoriSiek
      • CommentTime16 Dec 2024 17:12 (4 dni temu) zmieniony
       
      No i zrobiłem, mam wersję na niezmodyfikowane Atari 1050. Niestety nie udało mi się na Single Density (90kB), bo jednak za ciasno. Upchnąłem za to wszystko na dwóch stronach Extended Density (130kB).

      Ani jeden bit kodu nie został przeze mnie zmodyfikowany w grze (więc nie ma obawy, że coś popsułem). Jedynie co, to musiałem zmienić kod uruchomieniowy XDos aby działał z sektorem o rozmiarze 128B. Jeżeli komuś nie działa wersja Double Density po SIO ani nie ma CARTA, z którego mógłby sobie grę załadować, albo jak ja - bo trzeba z dyskietki i już, a nie ma modyfikacji DD!

      Zamieszczam poniżej obrazy i krótką instrukcję:

      UWAGA na starcie, trzeba dokładnie przeczytać zanim się zdecydujecie użyć!

      1) Nagrywamy obrazy dyskietek:
      a) na jednej dyskietce po obu stronach wg nazwy plików
      b) na dwóch osobnych dyskietkach
      2) Uruchamiamy "dysk 1/Stronę A" normalnie ze wciśniętym OPTION i czekamy aż się wczyta menu główne gry. Możemy uruchomić dowolną kategorię w menu poza "START GAME" bo zawiesimy komputer i będzie trzeba wgrywać od nowa.
      3) Aby rozpocząć grę, zmieniamy w stacji dysków na "dysk 2/Strona B" a następnie wybieramy "START GAME". Czekamy aż gra się wczyta i gramy sobie dla przyjemności lub bicia rekordów (proszę o testy, całej gry jeszcze na swoim 800XL nie przeszedłem)

      Istotna informacja! Gdy stracimy wszystkie życia i na ekranie pojawi się nam napis "GAME OVER" nie naciskamy FIRE ani nic na klawiaturze. W tym momencie trzeba ponownie podmienić dyskietkę w stacji dysków na "dysk 1/Strona A". Dopiero wtedy można nacisnąć FIRE. Jeżeli pobiliśmy któryś rekord będziemy mogli dokonać wpisu na "HALL of FAME" i ponownie pojawi nam się ekran tytułowy. Powtarzamy kroki opisane powyżej z podmienianiem dyskietek tak długo jak mamy zamiar się bawić.

      Powstało to tylko i wyłącznie dla moich potrzeb ale może ktoś też będzie chciał wykorzystać, to się dzielę.

      @Vega Dziękuję bardzo za cierpliwość, wyrozumiałość i wytłumaczenie zawartości dyskietki! :)
      • 9: CommentAuthortebe
      • CommentTime16 Dec 2024 19:12 (4 dni temu)
       
      czas przeprosić się z pamięcią dodatkową, ona tak ładnie pozwala wszystko szybko załadować, pozwala na kolory, na muzykę, ahh jaka ona dobra :)
      • 10: CommentAuthoriSiek
      • CommentTime16 Dec 2024 19:12 (4 dni temu)
       
      @tebe Mam, dzisiaj właśnie przyszło moje 512kB :D
      • 11: CommentAuthormono
      • CommentTime16 Dec 2024 20:12 (4 dni temu) zmieniony
       

      vega1:

      rozumiem mono, że twoja procedura przetestowana przy odczycie ze stacji dysków? i działa dobrze

      W załączniku test (uruchamiać IRQP.XEX) z tym patchem. Można wciskać BREAK do woli.
      • 12: CommentAuthortebe
      • CommentTime16 Dec 2024 20:12 (4 dni temu) zmieniony
       
      ciekawe czy ktoś testował nielegale 6502 pod kątem współdziałania z IRQ, może jakiś rozkaz wstrzymuje CPU do napotkania IRQ

      od jakiej wersji 6502 ma załatany ten bug? 65c02? 6510?

      65c02 ma rozkaz WAI, który pomaga kiedy startujemy IRQ bodaj

      p.s.
      może fix dla CPU, jak fix dla GTIA ;)
      • 13: CommentAuthorvega1
      • CommentTime16 Dec 2024 21:12 (4 dni temu) zmieniony
       
      STA NMIRES na DLI

      to pomogło..ale jeszcze coś się kaszani...ale jest lepiej
      • 14: CommentAuthorvega1
      • CommentTime18 Dec 2024 11:12 (3 dni temu)
       
      na stronie vega.atari.pl jest nowa werja v1.01

      ciągle jest problem z miganiem przy odczycie ze stacji dysków

      zmiany:
      - na ekranie start potrafiła mignąć czerwona pozioma kreska...poprawione
      - poprawienie ruchu gracza po skoku...podczas lotu do góry można od teraz ruszać się także lewo/prawo
      - dłuższe przytrzymanie wrogów w bańkach...jeżeli za chwilę się uwolnią to bańka przestaje się ruszać
      - "I find the fall not very precise, as if there is a space before touching it and it dies"...corrected
      - level 11 - napis HIGH czasami robił się żółty...poprawione
      - skrócone przerwanie dli podczas wczytywania
      - szybsze wczytywanie plansz dla wersji na kartridż
      - jeżeli wystąpi DISK ERROR to pokaże również nazwę pliku, którego to dotyczy
      - level 11 - zmienione kolory planszy
      - po wzięciu parasolki, bardzo rzadko ale mogły się pojawić śmieci na PMG...poprawione
      - podczas gry Hi-score zawsze miało wartość 20000 punktów...poprawione
      - napis join zostawał uszkodzony jak woda spłynęła w dół
      • 15: CommentAuthoriSiek
      • CommentTime18 Dec 2024 15:12 (3 dni temu) zmieniony
       
      Świetnie, brzmi super, zaraz biorę na warsztat do testów na 2xED.

      - jeżeli wystąpi DISK ERROR to pokaże również nazwę pliku, którego to dotyczy

      Teraz to będzie bajka. Może w wersji kolejnej da się dopisać obsługę dwudyskietkową? ;)
      • 16: CommentAuthoriSiek
      • CommentTime19 Dec 2024 16:12 (2 dni temu)
       
      @Vega dzięki za wyrzucanie informacji o nazwie pliku, gdy go brak. Dzięki temu znacznie łatwiej było mi przygotować nową wersję. Tym razem już nie na czuja.

      Mam tylko jedno drobne pytanie

      BB_TIT.OBX obrazek tytułowy Graph2font


      Co to jest za plik, do czego służy i kiedy jest wczytywany? Z moich testów wyszło, że jest zbędny i nigdy mi się nie ładował :) Może został zasymilowany w START.COM albo moje Atari postanowiło mi zaosczędzić kilka sektorów?

      Z próśb, czy mocno komplikuje sprawę dodanie podczas ładowania gry, pominięcie ekranu tytułowego po jakimś czasie (10-30s) zamiast permanentnego oczekiwania na wciśnięcie FIRE, aby kontynuować wczytywanie?
      • 17: CommentAuthoriSiek
      • CommentTime19 Dec 2024 16:12 (2 dni temu)
       
      Powiedzcie mi proszę, czy zamieszczanie tutaj (kolejnych wersji) przerobionych obrazów dyskietek Bubble Bobble na format ED ma sens? Czy ktoś z tego korzysta, czy tylko zaśmiecam forum? Jeżeli to przeszkadza, to nie będę już zamieszczał kolejnych wersji tylko wrzucę je do szufladki na własny użytek.

      Poniżej aktualna wersja 1.01 na dyskietki Extended Density (130kB). Tym razem trochę wygodniej, bo grę ładujemy ze strony A i możemy tam wybrać wszystkie opcje poza uruchomieniem gry "START GAME".

      Gdy zginiemy to nie zmieniamy już strony tylko wciskamy "FIRE" i czekamy na wpis, na liście rekordów (o ile ustanowiliśmy nowy) lub na wczytanie się ponownie menu głównego. Gdy się ono pojawi, to już możemy wybierać dowolną dostępną opcję, ponownie nową grę dla jednego lub dwóch graczy. Strona B służy do grania, do woli!

      Mam nadzieję, że komuś się przyda.
      • 18: CommentAuthorpigula
      • CommentTime19 Dec 2024 17:12 (2 dni temu)
       
      Wrzucaj wrzucaj. Są różne stacje, więc każda wersja znajdzie swoich zwolenników.
      • 19: CommentAuthorvega1
      • CommentTime19 Dec 2024 20:12 (1 dzień temu) zmieniony
       
      iSiek
      .tak BB_TIT.OBX zbędny bo jest w start.com
      .mozna dodać zeby po 10sek sam startowal...ale jak bedzie wiecej poprawek to kolejna werja...nie chce mnożyć tych wersji bo się nikt nie połapie


      aktualnie jest wersja v1.01a najnowsza..mały bląd się ujawnił w wersji v1.01 więc poprawiłem szybko...aktualnie został tylko bład migania przy czytaniu po SIO...niestety przerwanie IRQ "zpaczowane" coś nie chce mi działać...

      w wersji v1.01 jak się brało parasolkę to pierwszy wiersz następnej planszy miał 1 z kolorów zawsze czarny...w v1.01a to poprawiłem
      • 20: CommentAuthorvega1
      • CommentTime19 Dec 2024 20:12 (1 dzień temu)
       
      ciekawi mnie czy na real atari mniej miga podczas czytania plansz w wersji v1.01/v1.01a?
      przerwanie dli zostało bardzo mocno skrócone...
      • 21: CommentAuthoriSiek
      • CommentTime19 Dec 2024 21:12 (1 dzień temu)
       
      Porównam to jutro rano i dam znać. Chociaż mnie na Atari 800XL wgrywanie z dyskietek nie denerwuje i nie bije po oczach.

      Nic to, sprawdzę jutro i zwrócę uwagę na Altirra, SIO2PC i fizyczna dyskietka
      • 22: CommentAuthoriSiek
      • CommentTime20 Dec 2024 09:12 (1 dzień temu) zmieniony
       
      Vega
      po testach na moim Atari 800XL (żadnych modów) i Sio2Pc przez RespeQt wygląda to tak:

      - ekran tytułowy, instrukcja i podziękowania - bez artefaktów w trakcie wczytywania
      - nowa gra do pojawienia się bąbla z graczem/graczami - bez artefaktów
      - wczytywanie pierwszej planszy - drobne artefakty w postaci białych migających pikseli
      - wczytywanie kolejnych plansz - są już większe artefakty, które czasami migają jako pasek na całą szerokość ekranu ze śmieciami (nie umiem dokładnie określić rozmiaru ale ma to z 1/4 wysokości całego obrazu)

      Mnie to jakoś bardzo nie przeszkadza, bo to tylko w czasie dogrywania gdzie ekran nie gra istotnej roli w zabawie.

      Co ciekawe znalazłem jedną różnicę w wyglądzie gry pomiędzy emulatorem Altirra i fizycznym sprzętem. Na emulatorze krawędzie ekranu są czyste, czarne bez dodatkowych fragmentów obrazu. Natomiast na fizycznym Atari, mam zawsze z lewej strony pasek (na szerokość ok. 8 scan liines) po wczytaniu się planszy do gry (każdy poziom)

      [ img ]
      • 23: CommentAuthoriSiek
      • CommentTime20 Dec 2024 09:12 (1 dzień temu) zmieniony
       
      No i klasycznie, skoro Vega wypuścił nową poprawioną wersję, to i ja ją przekonwertowałem na 2xED

      Instrukcja nie uległa zmianie i jest taka sama jak przy wersji 1.01
      • 24:
         
        CommentAuthorPeri Noid
      • CommentTime20 Dec 2024 10:12 (1 dzień temu) zmieniony
       
      @iSiek:Na normalnym CRT ten fragment ekranu byłby niewidoczny.
      • 25:
         
        CommentAuthorKaz
      • CommentTime20 Dec 2024 11:12 (1 dzień temu)
       
      A z kolei na emulatorze Altirra też można go zobaczyć, odpowiednio ustawiając opcje ekranu.
      • 26: CommentAuthoriSiek
      • CommentTime20 Dec 2024 12:12 (1 dzień temu)
       
      @Peri Noid a wiesz, zaraz z ciekawości sprawdzę.

      @Kaz cóż, jednak na emulatorze wolę bez dodatkowych artefaktów.

      Poza tym, wspomniałem tyko o tym, bo mi to nie przeszkadza. Nie jest to coś co się pojawia w polu gry i przeszkadza, więc niech sonie tam jest.
      • 27:
         
        CommentAuthorKaz
      • CommentTime20 Dec 2024 12:12 (1 dzień temu)
       
      Warto jednak wiedzieć, że obraz można ustawiać, bo niektóre, nieliczne programy, wykorzystują szeroki ekran i nie zobaczysz go całego bez zmiany ustawień.
      • 28: CommentAuthoriSiek
      • CommentTime20 Dec 2024 15:12 (1 dzień temu)
       
      @Kaz dziękuję za wskazówki. Będę o tym pamiętał!
      • 29: CommentAuthorvega1
      • CommentTime21 Dec 2024 11:12 (6 godzin temu) zmieniony
       
      xboot rozwiązuje problemy z miganiem dli/vbl podczas odczytu ale brak pamieci aktualnie...no coż najwyżej w wersji .atr bedzie sciemniany ekran..plus byłby też taki, że muzyka mogłaby cały czas grać przy wgrywaniu kolejnej planszy przy xboot

      2-gi problem to przesuw delikatny plansz...pod PAL można powiedzieć prawie działa...a pod NTSC wszystko skacze jak szalone...a kod jest ten sam...dziwne...potrzebne dodatkowe testy

      jest wersja v1.01b - usunięty tam jest jeden upierdliwy błąd jeszcze
      • 30:
         
        CommentAuthorJacques
      • CommentTime21 Dec 2024 11:12 (6 godzin temu)
       
      To chyba lepsze te drobne zakłócenia w ładowaniu pomiędzy levelami niż ciemny ekran?
      • 31: CommentAuthorvega1
      • CommentTime21 Dec 2024 11:12 (6 godzin temu)
       
      Jacques...problem, że na real atari to nie są drobne zakłócenia i psują wszystko..jakby gra była niedopracowana
      • 32:
         
        CommentAuthorJacques
      • CommentTime21 Dec 2024 12:12 (5 godzin temu) zmieniony
       
      Rozumiem, tylko jak np. odpalam z SIDE3 z użyciem PBI BIOS z U1MB (a nie SIO) to zakłóceń prawie (albo wcale) nie ma, także szkoda wyłączać całkiem obraz moim zdaniem.
      • 33: CommentAuthortebe
      • CommentTime21 Dec 2024 12:12 (4 godzin temu)
       
      xbios umożliwia IRQ, NMI, nie xboot