501

(38 odpowiedzi, napisanych Programowanie - 8 bit)

@Mq oczywiście gra nie będzie dedykowana na flashowalnego kartridża. O flaszkach mówiłem tylko w kontekście deweloperskim, żebym sam mógł ją na czymś testować, a widzę, że taki The!Cart potrafi emulować bardzo wiele typów, więc póki co skłaniam się ku niemu. Docelowo chcę wybrać jakiś typ kartridża 1 MB (bo różnią się sposobem bankowania) i przygotuję obraz CAR, który będzie można sobie sflaszować jak ktoś chce, ale oczywiście głównym celem jest, aby zrobić jakąś małą edycję kilku sztuk i zasadniczy sens mojego pytania był taki, jaki rodzaj kartridża opłaca się wybrać, żeby łatwo dało się go flashować oraz żeby był łatwy w produkcji właśnie dla tej małej serii dedykowanych kartridży (podobnie jak było z TP).
@Sikor: myślimy o doczytywaniu. To czy to da się zrobić na 130XE to kwestia wymagań silnika gry, jak bardzo da się zoptymalizować, ale prawdę mówiąc zamiast żyłować wersję plikową na 130XE wolałbym zrobić kartridżową na 65XE oraz plikową na coś większego - kwestia włożonego wysiłku, a może i fizycznych możliwości jak bardzo da się zejść, a aż tyle czasu na optymalizację nie wiem czy mam.

502

(38 odpowiedzi, napisanych Programowanie - 8 bit)

Dzięki chłopaki za odzew :)
@grzybson: Myślałem o bankowaniu po 8kB ze względów oszczędnościowych - rozmiary buforów jakie używam lepiej dałoby się poupychać w takich bankach i ostatecznie zająłbym mniej pamięci, ale po przemyśleniu to rzeczywiście nie jest chyba warte włożonego wysiłku i lepiej od razu nastawić się na 1 MB ROMu bankowane po 16 kB.
@inni_pytający_się_o_wersję_plikową_PORTB: Jak najbardziej chcemy wypuścić wersję plikową, ale tutaj w grę wchodzi kwestia... hmm... "polityczna", bo jakie były reakcje na party version? "A dlaczego to hur wymaga tyle ramu dur!!1", "E tam, tak to każdy potrafi. Wyczynem to byłoby zmieścić się w 64 kB tak jak na komodore" i tego typu dyrdymały. Więc ja wiem już teraz, że wersja, która będzie wymagała czegoś więcej niż stock atari na bank spotka się z krytyką. Oczywiście można machnąć na to ręką, ale włożyliśmy w projekt na tyle dużo wysiłku, że chcemy zrobić to porządnie, stąd pomysł wersji kartridżowej (chociaż pewnie kartridż 1MB też będzie krytykowany, bo komodorowski zajmuje mniej), a w drugiej kolejności, na bazie wersji kartridżowej wersja plikowa na dodatkową pamięć. Nie jestem pewien jeszcze ile, ale w 512 kB zmieścimy się z zapasem, nie wiem tylko o ile da się zejść mniej (liczba roboczych banków wymagających do działania silnika nie jest duża, a resztę danych można albo doczytywać, albo trzymać spakowane).
W celach deweloperskich w sumie nie potrzebuję emulować pełnego kartridża 1 MB, bo do testów przecież nie trzeba mieć na pokładzie wszystkich poziomów i wszystko da się przetestować jak będą powiedzmy trzy. W tej chwili mam w atari Ultimate 1MB. Da się nim udawać jakieś kartridże i jeśli tak, to jakie duże? A SIDE2? Tam da się udawać kartridż 256 KB, czy coś źle rozumiem? Ewentualnie z innych proponowanych co można w miarę bez problemu nabyć? Na www.mega-hz.de widzę że The!Cart można kupić za 60 euro... w sumie źle to nie wygląda.

503

(38 odpowiedzi, napisanych Programowanie - 8 bit)

Na SV 2018 pokazaliśmy plikówkę party version naszego Flimbo's Quest. Gra to jednak nie demo i musi działać na jakiejś sensownej konfiguracji, stąd pomysł, aby wersję finalną przygotować na kartridżu, żeby działał na stockowym 65XE.
I stąd pytanie do kolegów biegłych w programowaniu kartridży, jak to ugryźć, bo sam tego nie robiłem? Kryteria, nad jakimi się zastanawiam, to:
- Rozmiar to co najmniej 512 kB, ale raczej 1 MB (banków romu nie da się ponownie użyć, wszystko musi być już rozpakowane i gotowe do użycia, a sama implementacja paralaksy potrafi pożreć nawet 64 kB danych, nie mówiąc o soft-sprite'ach; gra ma 7 poziomów, więc można sobie przemnożyć),
- najefektywniej pamięciowo byłoby, gdyby miał bankowanie po 8 kB,
- łatwość developowania to chyba nie problem, bo wystarczy pewnie przygotować odpowiedni plik car i emulator chyba łyka go bez problemu,
- przyjazność dla użytkowników.

No i najbardziej martwi mnie ten ostatni punkt, bo wiadomo, że wszystkim atarowcom z natury rzeczy się nie dogodzi, a chciałbym zminimalizować liczbę tychże wieszających na nas psy. Wiadomo, że jak "ktoś" wyda taki kartridż, to można będzie go kupić i odpalić, ale jak wygląda kwestia emulacji na jakichś urządzeniach flaszujących? Jakie tutaj są ograniczenia, czy wytyczne, których warto się trzymać? Jakie są popularne rozwiązania? Pytam się także w kontekście uruchamiania tego przez nas, bo fajnie byłoby gdybym miał możliwość odpalenia karta na prawdziwym sprzęcie, a nie tylko na emulatorze, więc jakiś flaszer by się przydał. W ogóle nie pierdzielę głupot i warto zawracać sobie głowę takim zagadnieniem?

Czy wybór kartridża Typ 38 (Switchable XEGS 1 MB cartridge) byłby dobry?

504

(118 odpowiedzi, napisanych Programowanie - 8 bit)

No i o to chodziło. Żeby maszyna pomagała, jak człowiek zrobi jakąś wierutną głupotę, bo nie wiem jak inni, ale ja nieomylny nie jestem. Dziękować!

505

(118 odpowiedzi, napisanych Programowanie - 8 bit)

   434
   435 A01C            backgroundCharsSrc .wo
   436 A01C 00 00        backgroundScrollDiff .wo 0
   437

Chyba za bardzo ufam, że mads zgłosi błąd przy niepoprawnym kodzie. I kosztuje mnie to wiele godzin szukania nie tam gdzie trzeba :(

506

(118 odpowiedzi, napisanych Programowanie - 8 bit)

A to to ja wiem, że zrobiłem bład, zgłaszam tylko, że mads ten kod zaakceptował jako poprawny.

507

(118 odpowiedzi, napisanych Programowanie - 8 bit)

Próbowałem użyć struktur w madsie. Pierwszy problem na jaki się natknąłem, a jaki chciałbym zgłosić, to niedostateczna diagnostyka błędów. Użyłem wewnątrz zamiast deklaracji .byte deklaracji .by, bo myślałem że są zamienne tak jak poza strukturą i mads nawet się nie zająknął, a zignorował pole z .by.
Drugi problem, że jeżeli nie poda się nazwy pola, to takie pole zostanie zignorowane. Również bez błędu ani ostrzeżenia. Niby problem z czapy, ale nie do końca, bo akurat definiowałem sobie strukturę odzwierciedlającą istniejącą strukturę, tylko kilku pól nie używałem, więc nie nadałem im nazwy. I po dość długim debugowaniu odkryłem, że offsety mi się poprzesuwały, bo mads ignorował pola bez nazwy.
Przykładowy kod obrazujący problemy:

    org $2000
    
.struct IgnoredKeyword
dontWork .by    ;ignored keyword here
works    .byte  ;as a result this have index 0
.ends

    lda #IgnoredKeyword.works
    ;ldy #IgnoredKeyword.dontWork ;test.asm (9) ERROR: Value out of range
    
.struct MissingLabel
    .byte    ;no label here
label   .byte    ;as a result this have index 0
.ends

    lda #MissingLabel.label

Produkuje taki listing:

mads 2.0.7
Source: test.asm
     1                     org $2000
     2                     
     3                 .struct IgnoredKeyword
     4                 dontWork .by    ;ignored keyword here
     5 = 0000            works    .byte  ;as a result this have index 0
     6                 .ends
     7
     8 FFFF> 2000-2003> A9 00        lda #IgnoredKeyword.works
     9                     ;ldy #IgnoredKeyword.dontWork ;test.asm (9) ERROR: Value out of range
    10                     
    11                 .struct MissingLabel
    .byte    ;no label here
    13 = 0000            label   .byte    ;as a result this have index 0
    14                 .ends
    15
    16 2002 A9 00            lda #MissingLabel.label

508

(4 odpowiedzi, napisanych Emulacja - 8bit)

Zasadniczo...
niech ktoś

Ale zagadnienie wygląda mi na skomplikowane, bo jednak organizacja pamięci video w snesie i jego scrolling wydaje się bardziej przewidywalne niż w Atari. Chyba raczej trzeba byłoby pójść w analizę kolejnych klatek wychwytując podobieństwo w postaci przesunięć - tak jak robią do kodeki.

509

(48 odpowiedzi, napisanych Bałagan)

Jacques napisał/a:

@Pin, Laoo

Moglibyście podać namiary gdzie kupiliście swoje konwertery (które działają z ST)?

Ja niestety niewiele mogę pomóc, bo nie mam pojęcia czy on działa z ST, bo ani ja, ani kolega nie mamy ST, a druga sprawa, to nie wiem gdzie on to kupował. Ja zamówiłem u majfrienda, ale jeszcze mi nie doszło, to co najwyżej mogę dać znać jak działa z VBXE, jak będę go miał.

510

(48 odpowiedzi, napisanych Bałagan)

Zanim kupiłem konwerter z pierwszego posta (na szczęście umówiłem się ze sprzedawcą że będę mógł oddać), testowałem urządzenie kolegi:

https://i.imgur.com/CasIwYw.jpg

Ono działa poprawnie. Jakość dla mnie była zadowalająca. Od biedy dałoby się stosować je jako przejściówkę HDMI, bo ma takież wejście. Cena tylko sporo większa. I gabaryty.

Cobol napisał/a:

Co systematyzujesz ?

Konwertery, jeśli ktoś chciałby kupić, żeby nie wszedł na minę, bo nigdzie nie piszą, czy konwerter konwertuje RGB czy tylko composite.

511

(48 odpowiedzi, napisanych Bałagan)

Temat wałkowany, ale u mnie aktualnie na topie, więc pomyślałem o jakimś usystematyzowaniu.

Otóż odkryłem, że konwerter SCART -> HDMI ze zdjęcia nie konwertuje sygnału RGB, więc nie nadaje się do podłączania VBXE.

https://i.imgur.com/CAcq6nG.jpg

A szkoda, bo jest bardzo mały i poręczny.

512

(20 odpowiedzi, napisanych Sprzęt - 8bit)

Zaczynanie tego wątku było błędem, bo skoro nawet Fox nie zrozumiał intencji, a ludzie zaczynają narzekać dlaczego vbxe niem ma obrotów i skalowania, to wnioskuję, że w naszym światku nie ma jednak gruntu na merytoryczną dyskusję na ten temat.

513

(20 odpowiedzi, napisanych Sprzęt - 8bit)

@xxl akurat obie rzeczy da się zrobić rdzeniem rapidusa. Nad prototypem "copperlisty" zapisującej rejestry sprzętowe nawet z Pasiem pracowaliśmy, ale nic z tego nie wyszło (było to możliwe, tylko zabrakło zapału), a trigger na pozycje plamki to po prostu licznik. Tak jak mówiłem w FPGA Rapidusa jest jeszcze masę wolnego miejsca, nie ma tylko komu się tym zająć.

514

(20 odpowiedzi, napisanych Sprzęt - 8bit)

Tego się spodziewałem, ale tak jak napisałem na początku, chciałem się spytać, bo nie jestem na bieżąco, a przebrnąć przez kilkuletnie zasoby forum mi się nie udało. Nie wiedziałem też, jak bardzo upchany jest rdzeń, bo skądinąd wiem, że rdzeń Rapidusa zajmuje tylko ułamek zasobów.
No i TeBe nie bulwersuj się tak, bo to przecież oczywiste, że nie chodziło mi o przyjazność dla programisty, która jest rewelacyjna, bo prościej oprogramować się tego nie da, tylko o przyjazność dla CPU, aby miał mniej danych do przewalenia
generując jakąś zawartość.

515

(20 odpowiedzi, napisanych Sprzęt - 8bit)

Jak bardzo możliwości VBXE zostały już wyryte w kamieniu, a jaki jest jeszcze potencjał na robienie rozszerzeń do tego boarda?

Po to jest forum, żeby rozmawiać, więc tak tylko się pytam, a nie wiem jakie są fizyczne możliwości w kwestii upychania w rdzeniu czegoś nowego oraz jaka jest ochota twórców na pochylanie się nad projektem.

Otóż z tego co pomyślałem trochę nad tematem, to coraz bardziej męczy mnie refleksja, że boardowi do ideału brakuje trochę balansu w stosunku do wydajności maszyny, z którą ma pracować. Temat jest chyba znany każdemu, kto próbował to programować, bo nie chodzi o to, że VBXE umie za mało, tylko że właśnie za dużo, żeby atari zadowalająco dało radę z obsługą tego wszystkiego i wyjście poza przeglądarkę plików BMP na graphics compo jest po prostu trudne.

Konkretnie to myślę nad rozszerzeniem istniejącego trybu działania na inne tryby graficzne, które w praktyce byłoby swoistym downgradem możliwości, ale powinno dać zauważalnego kopniaka wydajnościowego. W trybie HR każdy piksel jest opisywany przez nibel danych. Czy jest możliwe, aby taką organizację pamięci móc włączać dla trybów SR i LR? W zamian za 16 kolorów w pikselu (co dla atari jest wg mnie w zupełności akceptowalne) oszczędzamy dwukrotnie na pamięci ekranu oraz wydaje mi się, że dwukrotnie zwiększamy efektywność blittera.

Jak bardzo byłoby to trudne? Na pewno problematyczne jest rozszerzenie XDL, gdyż mamy tylko jeden wolny bit (2.6) którego nie powinniśmy zużywać na dokładnie ten cel, bo zamknęlibyśmy możliwość dalszego rozwoju, ale jakby użyć tego bitu na rozszerzenie komendy XDL do trzech bajtów, to wtedy wystarczyłby tylko jeden bit w trzecim bajcie na wymuszenie trybu 16-to kolorowego (i jeden na wyłączenie dla zachowania konwencji).

Ktoś ma jakieś refleksje? A może komuś zrodził się lepszy pomysł na uprzyjaźnienie VBXE?

516

(24 odpowiedzi, napisanych Fabryka - 8bit)

Udostępnij takiego zepsutego ATRa to będzie można myśleć co się zepsuło i ew. odzyskać pliki, jeśli to możliwe. Przy raportowaniu błędów do podstawowa sprawa, bo samo powiedzenie, że jest błąd niewiele niestety mówi.

517

(20 odpowiedzi, napisanych Fabryka - 8bit)

Mówiłem o jankesach - najpierw marudzą, że na CRT im źle wygląda a jak prosi się o zdjęcie co to znaczy, to żaden się nie odezwał.

518

(20 odpowiedzi, napisanych Fabryka - 8bit)

Czyli w PALu wszystko się pięknie mieści! Dzięki PIN, jesteś jedynym człowiekiem na świecie, który nie położył lagi na temat i wysłał screena, a jankesom, którzy marudzili że im się w NTSC na monitorach nie mieści, nie chciało się fotki cyknąć...

Dla formalności zrobiliśmy update do wersji 1.0.1 poprawiający odgrywanie muzyczki na NTSC oraz zamieściliśmy alternatywną wersję z węższą pierwszą i ostatnią linią (tutaj PAUSED i z progressem na dole), w nadziei, że tym razem zmieści się na monitorach.

A te VBXE to jednak żyleta...

519

(20 odpowiedzi, napisanych Fabryka - 8bit)

Hej, czy ktoś mógłby odpalić grę na monitorze CRT PAL i wrzucić tu fotkę? Myślimy o zmniejszeniu overscana, bo Amerykanie marudzą i chcemy ocenić o ile.

520

(20 odpowiedzi, napisanych Fabryka - 8bit)

Po wielu miesiącach wytężonej pracy ( ͡° ͜ʖ ͡°) udało nam się dopiąć TimePilota!

Ze zmian:
- poprawiona wydajność i naprawione drobne błędy
- nowy balans gry (początkowe levele są łatwiejsze, dalsze - trudniejsze)
- poprawiony Highscore (responsywność, możliwość zmazywania)
- system dodatkowych żyć
- asteroidy i kosmonauta w ostatnim levelu
- eskadry przeciwników
- strzelanie bombami
- strzelanie UFO missiles
- przycisk pauzy
- automatyczne wykrywanie Rapidusa (i odpowiednia parametryzacja silnika gry)
- i na koniec jako smaczek dla rapidusowców mały exclusive - dodatkowy tryb gry, w którym przeciwnicy nie strzelają, ale jest ich... deczko więcej.

I co najważniejsze, gra dalej działa na stock atari z 64 kB RAM (nawet jeśli ukrywają się w niej nielegalne instrukcje).

Po szczegóły i download zapraszam na stronę domową projektu.


https://www.youtube.com/watch?v=rxmhfTRr-PM

521

(2 odpowiedzi, napisanych Programowanie - 8 bit)

Kod konkretnie tu przedstawiony to jednak potworek, bo już jednak łatwiej jest to samo robić w asemblerze, ale ogólna idea wydaje się ciekawa i skłania do przemyśleń, bo mimo tak wielkiego rozwoju kompilatorów, wciąż nie potrafimy osiągnąć czegoś, wydawałoby się, tak prostego jak generowanie dobrego kodu na tak prosty procesor jak 6502. Ja bym tu paradoksalnie główną słabość widział w relatywnej niskopoziomowości imperatywnych języków programowania - semantyka takiego C jest opisana jako maszyna stanów o dość dużych wymaganiach na sprzęt na którym to ma działać. I właśnie ratunku szukałbym raczej w językach jeszcze bardziej abstrakcyjnych jak np Haskell. Może gadam głupoty, ale wydaje mi się, że taki Haskell niewiele mówi o maszynie na której ma działać wygenerowany z niego program, a bardziej jest to abstrakcyjne przekształcenie danych. A to już daje spore pole do popisu. Może dałoby się spróbować naszkicować jakiś podzbiór tego języka, który da się tłumaczyć na tak "ograniczone" środowisko jak maszyna z 6502? Może można byłoby zacząć "wstecz", czyli wziąć jakieś fajnie napisane kody w 6502 i zastanowić się, jak mógłby wyglądać kod Haskellowy, który hipotetycznie mógłby się do tego skompilować?
Ot takie luźne przemyślenia...

522

(28 odpowiedzi, napisanych Programowanie - 8 bit)

Mam pewne wątpliwości co do pogarszania sprawności dekompresora, aby mógł poradzić sobie ze strumieniami, których nikt przez 17-lat jego istnienia nie napotkał.
Czy byłaby szansa, aby wyróżnić w kodzie zbiór ficzerów pozwalających na warunkową kompilację włączającą lub wyłączającą wsparcie dla tych egzotycznych danych wejściowych? Może nawet dałoby się napisać narzędzie, które analizując skompresowany strumień generowałoby odpowiednie makra, coś jak optymalizacja RMT.

523

(14 odpowiedzi, napisanych Sprzęt - 8bit)

Ja miałem takiego pokeya, który wgrywał z magnetofonu, ale już nie nagrywał, ani nie pracował ze stacją.

524

(45 odpowiedzi, napisanych Sprzęt - 8bit)

marc458: z tego drugiego to ja byłbym już zadowolony. Mora pewnie jest przez jakieś niejawne skalowanie, może jakbyś pogrzebał w ustawieniach, to dałoby się ją wyeliminować.

525

(45 odpowiedzi, napisanych Sprzęt - 8bit)

Mój konwerter też pozwala na wybór rozdzielczości od 800x600 do 1920x1200, na różnych rozdzielczościach z efektami tak jak u Irona. Tu jest screen z rozdzielczości w której mam najlepszą jakość:

https://i.imglnx.com/6d4cPI.jpg

Zdziwiło mnie, że u Irona działa Rybags, gdy u mnie nie... Może rzeczywiście tylko obudowa jest taka sama, a w środku jest coś innego. Sprawdzę jeszcze tryb Rybagsa w każdej rozdzielczości, bo może w którejś zadziała.