376

(599 odpowiedzi, napisanych Software, Gry - 8bit)

@sikor Aplikację przeznaczoną na cartridge można mechaniczne przerobić na aplikację działająca na portb. W drugą stronę niekoniecznie,bo portb to jednak ram.
Ale ogólnie idea jest fajna i myślimy o czymś takim.

377

(19 odpowiedzi, napisanych Fabryka - 16/32bit)

@Lewis 52 jest za ultradev. Ultratos ma swoją podstronę.

A czy fanaberia? No to zależy. Mi się na przykład trafił STE z niemiecką klawiaturą i spolszczonym TOSem 2.06UK, więc wszystko jest fajne dopóki nie chcę niczego napisać na klawiaturze. Zainstalowałem sobie Okami shell i jest niestety nieużywalny, bo nie wiem gdzie jest głupi dwukropek czy slash. Więc dla mnie już samo przełączenie wersji językowych nie wydaje się  takie głupie.

378

(599 odpowiedzi, napisanych Software, Gry - 8bit)

Ja tam bym sobie marzył, żebyśmy się nie radykalizowali i doceniali, że są ludzie, którym się chce coś robić na malucha, ale jestem za stary, żeby nie mieć złudzeń, że...

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

379

(599 odpowiedzi, napisanych Software, Gry - 8bit)

Grzybson, nie warto. Ja już próbowałem i poległem. Towarzysz XXL ma niezawodną taktykę sprowadzania dyskusji do swojego poziomu i pokonywania adwersarzy doświadczeniem.

380

(599 odpowiedzi, napisanych Software, Gry - 8bit)

Ale nie oszukujmy się. Atari jest zwyczajnie technologicznie kilka lat za C64. To co u nich można zrobić z palcem w nosie w standardowej ilości pamięci, na Atari wymaga zaprzęgnięcia wielu sztuczek i smarowania pamięcią (wiem do czego sprowadzało się robienie Flimbo's Quest). Oczywiście, że można pisać gry i dema na stock, ale nie oczekujmy wtedy, że te produkcje dorównają tym z C64. Pytanie, czy twórcom będzie sprawiało frajdę robienie czegoś pośledniej jakości. W porównaniach jesteśmy zatem niejako skazani na spadanie w dwa skrajne obszary ocen. Albo "kupa, na C64 można lepiej", albo "kupa, bo robi to co C64 a wymaga bazyliona bajtów RAMu".

381

(3 odpowiedzi, napisanych Konsole)

TL;DR: to skomplikowane.

Przeszedłem crash-course programowania na Lynxa, bo w maju 2019 wiedziałem że jest coś takiego jak Lynx, a na początku września wydaliśmy grę wygrywającą compo, więc chyba mogę się wypowiedzieć.
Jeżeli to ma być coś prostego, to na takie potrzeby chłopaki lynksowcy wymyślili sobie swój prosty formacik plików binarnych *.o, który można załadować do Handy'ego oraz jest narzędzie, które obudowuje taki plik w nagłówek i buduje z niego pełnoprawny obraz cartridge'a.
Minusem tego rozwiązania jest to, że jest to jednostrzałowiec - zwartość musi mieścić się w 64kB, bo ładuje się od razu cały i uruchamia i to byłoby na tyle.
Lynx potrafi jednak o wiele więcej. Cartridge mają tam pojemność od 128 do 512 kB (1 MB można wycisnąć bankowaniem) i są dość przyjazne w obsłudze, bo całą pamięć dzielą na 256 stron i można sobie dowolną z nich zaadresować i po prostu czytać. Trudną rzeczą do przeskoczenia jest tylko zarządzenie tą przestrzenią. Trzeba wymyślić sobie jakiś wirtualny filesystem i umieć stworzyć samemu obraz cartridge'a. Pikanterii temu dodaje fakt, że Atari wymyśliło szyfrowanie i nagłówek carta zawierający loader musi być zaszyfrowany, więc trzeba zbudować sobie narzędzie lub zestaw narzędzi, które to ogarnia. No i wtedy można osiągnąć dość dużo, np napisać sobie Mortal Kombat w którym same klatki animacji postaci zajmują więcej niż dostępna pamięć konsoli i dogrywa się je w locie.

Nasz pakiet, którym zbudowaliśmy Lynx Qusta można ściągnąć stąd. Jest tam mój tool ogarniający wszystko oraz pełne źródła. Ale domyślam się, że lektura nie jest łatwa.

382

(3 odpowiedzi, napisanych Konsole)

A to zależy czy w CC65 czy ASM

383

(599 odpowiedzi, napisanych Software, Gry - 8bit)

To nie jest tak, że powinna albo nie powinna. Autor aplikacji sam decyduje o kręgu odbiorców. Inne wymagania może mieć demo, które doceni garstka scenowców, a inne gra, która strzelałaby sobie w stopę, jeżeli nie odpalałaby się na powszechniejszych konfiguracjach.

384

(33 odpowiedzi, napisanych Programowanie - 16/32bit)

Tak. FASTLOAD brzmi fajnie.
W sumie... teraz zaświtała mi w głowie idea, że tylko bufory na pamięć ekranu, DMA sampli i dysku oraz cokolwiek dotykam blitterem muszą być w ST ramie, a cała reszta mogłaby być też i w TT ramie. Nie wiem tylko, czy to jest warte zachodu w porównaniu do wymagania, aby po prostu było wolne dla dema (max) 3.7 MB ST ramu, skoro liczbę STków z TT ramem można liczyć wg Adama na palcach jednej ręki, a nie zakładam, żeby demo odpalało się poprawnie na TT albo Falconie.

Żebyście tylko nie rozumieli mnie źle. Nie planuję potworka zjadającego cały RAM. Pytałem się tylko o limity, których nie można przekroczyć, bo będę pisał narzędzia, które mi tą pamięcią będą automatycznie zarządzały i chcę je jakoś nastroić kiedy mają wywalać błąd.
W każdym razie wielkie dzięki, bo dużo się z tego wątku dowiedziałem.

385

(28 odpowiedzi, napisanych Software, Gry - 16/32bit)

Kurde. Za szybko to leci... dla mnie zawsze będziesz tym 14-latkiem chodzącym krok za Tatą Grzybsona

386

(33 odpowiedzi, napisanych Programowanie - 16/32bit)

Drugi rozdział Atari Compendium opisuje format pliku GEMDOSowego. Pod offsetem 0x16 jest pole PRGFLAGS, które ma bity określające do jakiej pamięci ma być załadowany proces.
@sqward wg tego opisu jeżeli ustawi się te pole na 0 to program nie zostanie załadowany do TT ramu. Źle to rozumiem, czy to nie są dobre informacje?

387

(16 odpowiedzi, napisanych Emulacja - 8bit)

Ten emulator ma swój wątek na AtariAge. Może tam spytaj.

388

(893 odpowiedzi, napisanych Scena - 8bit)

Osobiście przyznam, że u mnie zainteresowania zataczają koło i idea pisania rzeczy działających na stocku staje się kusząca - szczególnie, że popularne stają się cartridge, które dość dobrze mogą zaspokoić zapotrzebowanie na pamięć.
Chciałbym jednak dorzucić swoje 5 groszy do dość popularnej idei wspomnianej teraz przez Sikora. Pisanie aplikacji korzystającej z dodatkowych zasobów gdy są, ale działającej wolniej itp gdy ich nie ma nie jest zabawne ani trochę. Większości zwyczajnie nie da się zrobić bez pamięci, a nawet jeśli, to w większości algorytm musiałby być na tyle inny, że to mogłoby tylko mniej więcej wyglądać tak samo, a z konieczności działać zupełnie inaczej. To może sprawdzić się do długich dem, w których party mieszczą się w 64kB i są zwyczajnie doładowywane z dysku gdy nie ma ramu, lub z banków, gdy są. Podobnie z multilevelowymi grami. No ale gołym okiem widać, że są to dwa rodzaje produkcji, bo dodatkowy RAM daje możliwości, których nie da udawać doczytując z dysku gdy trzeba.

389

(33 odpowiedzi, napisanych Programowanie - 16/32bit)

No jest wiele opcji. Rozwiązanie z odpowiednią sekcją BSS chyba jest najprostsze, bo TOS sam wyświetli odpowiedni komunikat jak pamięci będzie za mało. Wyobrażam sobie, że takie bardziej zaawansowane scenariusze pewnie mają znaczenie przy większych Atarkach, które mają multitasking, ale w przypadku zwykłego ST ze zwykłym TOSem i tak wychodzi na jedno.
Doczytałem jeszcze teraz dokumentację i rzeczywiście przeczytałem, że TOS przydziela zawsze wszystko, a mshrink (alternatywna nazwa setblock) rezerwuje konkretny obszar, więc nie ma tam mowy o zwiększaniu pamięci bo i tak na starcie ma się maksa.

390

(33 odpowiedzi, napisanych Programowanie - 16/32bit)

@Kroll - Dzięki, widzę, że można wycisnąć naprawdę dużo, więc jest sporo marginesu.
@Adam - Planujemy demo plikowe doczytujące się z HD na STE i nie mam pojęcia co wyjdzie z kompatybilności z większymi Atarkami, więc na pewno ograniczę się do standardowej pamięci ST.
Nie rozumiem jeszcze do końca zależności mshrink i malloc. Planuję zrobić proces, który będzie zajmował malutko (mało code, data i bss), który rozejrzy się po zmiennych systemowych sprawdzając ile jest pamięci i wtedy zrobi mshrink na tyle pamięci ile mu potrzeba. Nie wyczytałem w docach, żeby mshrinkiem dało się tylko zmniejszać pamięć a nie powiększać, dlatego nie zakładałem, że będę wołał malloc (mam negatywne odczucia  co do runtime'owego zarządzania pamięci).

391

(33 odpowiedzi, napisanych Programowanie - 16/32bit)

Ja myślę, że przykład, ale mnie zadowala i będę podpierał się autorytetem tego wytrawnego STkowca ;)

392

(33 odpowiedzi, napisanych Programowanie - 16/32bit)

Demo będzie doładowywane z dysku, bo muzyka będzie strumieniem (więc odpada problem alloców playera muzyczki). Ja mam dość czyste atari STE (TOS 2.06) z 4MB RAMu na którym mam tylko sterownik Putnika do Ultra Satana. Nic poza tym. Nie byłem po prostu pewny, czy ta konfiguracja nie jest zbyt syntetyczna i czy ludzie nie mają załadowanych więcej rzeczy, bo jestem zupełnie zielony w kwestii "co się miewa" w STkach, a nie chciałem zgrzytów jeśli okaże się, że uruchomi się tylko u mnie.
W każdym razie skoro padła tu liczba 3.7 MB, to póki co uznam to za górny limit, jaki można wymagać i słuszna informacja, żeby jasno zdefiniować w opisie ile się wymaga i ludzie będą mogli się do tego dostosować (w granicach rozsądku). Dzięki!

393

(33 odpowiedzi, napisanych Programowanie - 16/32bit)

Oczywiście zawsze znajdzie się jakaś maszyna z takimi sterownikami, które zajmą absurdalnie dużo pamięci. Bardziej interesujący jest przypadek rozsądnej konfiguracji jakie ludzie mają na biurkach i oglądają na nich dema. Nie twierdzę, że chcę wymagać na maksa, tylko właśnie się zastanawiam jaki wyznaczyć sobie górny limit, bo gdy demo będzie już napisane i okaże się, że jednak przesadziłem, to już będzie trochę późno. Jak 4MB to 64*64kB to nie wiem czy 60*64kB jest jeszcze rozsądnie osiągalne, czy bliżej 56*64kB albo jeszcze mniej.

Hej. Mój pierwszy wątek w tym dziale :)
Może trochę dziwne pytanie, ale wiecie, wychodzę z atari 8-bit, a tam takimi rzeczami ludzie się martwię ;)
Interesuje mnie kwestia jak to jest z pamięcią w STE. Zakładając że ma się 4 MB na pokładzie, to na ile z tego można liczyć, że będzie dostępne dla dema, żeby nie ukisić systemu (a w szczególności, żeby sterownik dysku działał)?
Zaglądając do Sysinfo widzę u mnie (a także w Hatari), że membottom jest poniżej $20000, a memtop opiera się o pamięć ekranu.
Czy można zakładać, że w konfiguracji w której ktoś chce uruchomić demo membottom nie przekroczy $20000? a dokładniej, że mój program nie załaduje się powyżej tego adresu)? A jak to jest z memtop? Czy coś tam może być załadowanego przez system, czy zawsze jest tam wolne do phystop? Czy poprawnym jest założenie, że wszystko pomiędzy może być bezpiecznie dostępne dla dema?

Oczywiście rozumiem systemowe mechanizmy zarządania pamięcią, wołanie mshrink() itp. Pytanie tyczy się tylko tego ile system jest w stanie mi dać.

395

(893 odpowiedzi, napisanych Scena - 8bit)

Prawdę mówiąc, ja bym nawet nie wpadł na to, żeby publikować demo "ot tak". Przecież to bez sensu. Dla mnie od zawsze było oczywiste, że dema pisze się po to, żeby były wystawione w konkursie na demoparty, bo największą nagrodą jest obserwowanie reakcji publiki podczas prezentacji.
W 2021 mamy szanse na co najmniej jednego Losta i na dwa SV. Któreś z nich musi się udać, więc nie panikujmy :)

396

(128 odpowiedzi, napisanych Programowanie - 8 bit)

To jakieś kodowanie arytmetyczne żę tam są potrzebne mnożenia?

397

(3 odpowiedzi, napisanych Sprawy atari.area)

Co sugeruje, że w dziale fabryka wątki może zakładać tylko autor programu, gry lub dopałki do ST. Tak zawsze rozumiałem fabrykę, że nie jest miejscem na info, że ktoś gdzieś tam coś buduje, tylko że "hej, buduję to i to, czy to ma sens?".

Nie wiem jak z lutowniczego punktu widzenia, ale 65C02 nie ma żadnej przewagi nad 65C816 a ma niekompatybilności nie tylko w postaci braku nielegali ale nawet coś gorszego - kilka instrukcji ma inny czasu wykonywania, co może rozwalić nawet rzetelnie napisany kod.

Jak już idziemy w niekompatybilność to jeżeli byłby tylko dostępny, to 65CE02 byłby o wiele ciekawszy (Commodore 65 miał mieć go na pokładzie).

399

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

Ja akurat pisałem o jednobajtowych nopach, których sekwencji nie da się przerwać. 65CE02 nie ma tych nopów. On działa zupełnie inaczej.

400

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

Fox napisał/a:
laoo/ng napisał/a:

Wg tego dokumentu przerwanie nie może wskoczyć po instrukcji skoku względnego nie przekraczającego strony.

W jednym akapicie jest to napisane w trybie przypuszczającym, ale już w następnym jest plot twist.

Eh... dopiero teraz doczytałem ten drugi akapit.
Wygląda zatem, że jedyną taką sekwencja są jednobajtowe NOPy w 65C02.