atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Translate to RSS RSS
Pędź Mietku, pędź! z 2024-10-10 12:44 (16)
ATASCII Compo - 4. edycja z 2024-10-06 19:12 (15)
Gra "Dangerous City" uwolniona! z 2024-10-03 15:49 (22)
Miniaturowe Atari #2 z 2024-09-30 19:15 (13)
Wkrótce "Bubble Bobble" na Atari z 2024-09-27 10:34 (52)
Pokłosie KWAS #34 - Projektowanie cartów Atari z 2024-09-26 20:28 (9)
Nocne Retro Granie w Poznaniu z 2024-09-24 20:35 (1)
O kodowaniu efektów dema na Atari STE z 2024-09-22 15:58 (27)
Co nowego dla Atari Portfolio? z 2024-09-19 19:43 (0)
Najmniejsze Atari cz. II z 2024-09-17 21:07 (4)
Nadlatuje polski sokół! z 2024-09-12 18:44 (16)
Atarowskie maleństwo po raz piąty! z 2024-09-09 18:58 (2)
Pamiętniczek dinozaurowych koderów z 2024-09-05 14:01 (12)
"Mafia" - od zera do supergangstera z 2024-09-03 23:55 (20)
Wkrótce spotkania z 2024-09-02 20:38 (5)
Ankieta dla zainteresowanych efektami w demie z 2024-08-30 17:54 (22)
Autorzy o demie "The Coders' Guide to the Demoscene" z 2024-08-26 14:29 (35)
Przejście gry "Auf Wiedersehen Monty" z 2024-08-26 14:23 (9)
Autorzy "Technical Difficulties" z 2024-08-25 16:58 (9)
Autorzy o "Auf Wiedersehen Monty" z 2024-08-23 20:56 (13)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier (konwencja TOSEC)

Opisy gier
"Old Towers" (Atari ST) opisał Misza (19)
Submarine Commander opisał Kaz (33)
Frogs opisał Xeen (0)
Choplifter! opisał Urborg (0)
Joust opisał Urborg (16)
Commando opisał Urborg (35)
Mario Bros opisał Urborg (13)
Xenophobe opisał Urborg (36)
Robbo Forever opisał tbxx (16)
Kolony 2106 opisał tbxx (3)
Archon II: Adept opisał Urborg/TDC (9)
Spitfire Ace/Hellcat Ace opisał Farscape (8)
Wyspa opisał Kaz (9)
Archon opisał Urborg/TDC (16)
The Last Starfighter opisał TDC (30)
Dwie Wieże opisał Muffy (19)
Basil The Great Mouse Detective opisał Charlie Cherry (125)
Inny Świat opisał Charlie Cherry (17)
Inspektor opisał Charlie Cherry (19)
Grand Prix Simulator opisał Charlie Cherry (16)
«« nowszestarsze »»

Katalog gier (konwencja Kaz)
Aktualizacja: 2024-10-07
Liczba katalogów: 8477, liczba plików: 37049
Zmian katalogów: 66, zmian plików: 100

0-9 A B C D
E F G H I
J K L M N
O P Q R S
T U V W X
Y Z inne
zipCałość 2933 MB


Wewnętrzne/Internals



   Nowinki tworzone dzięki CuteNews
O kodowaniu efektów dema na Atari STE
Obiecaliśmy, że koderzy bardzo szczegółowo opowiedzą o wybranym przez czytelników AtariOnline.pl efekcie z ich dema The Coders' Guide to the Demoscene, zorganizowaliśmy ankietę, w której czytelnicy oddali wiele głosów nie na konkretny efekt, ale na możliwość, by koderzy sami wybrali, o czym chcą opowiedzieć. Opłaciło się, bo autorzy dema opowiedzieli w detalach o dwóch efektach... Zapraszam na ich analizę zainteresowanych tematem. Nawet jeśli nie jesteś koderem, a tylko odbiorcą, to warto wiedzieć ile i jakiej pracy wymagają niektóre efekty w demach. Nagranie i montaż: Misza. Prawie dewie godziny intelektualnej, koderskiej strawy tutaj:



Autorzy dema: Jakub "Acid Maker" Kruszona-Zawadzki, Krzysztof "Dr. DF0" Kielak, Piotr "Scorpio" Ejdys, Roman "Xorcerer" Fierfas, Michał Popiel-Machnicki, Róża Popiel-Machnicka oraz Jakub Husak. Opublikowane na Silly Venture SE2024. O tym, jak demo było tworzone przez całą ekipę członkowie grupy opowiadają na YT tutaj, demo wygląda zaś tak (filmik od Xorcerera).

2024-09-22 15:58 by Kaz
komentarzy: 27
immolator @2024-09-22 20:08:45
Dzięki!
George @2024-09-23 07:45:24
Dzięki! Z chęcią obejrzę!
0xF @2024-09-23 11:10:20
Coder's pr0n! Nareszcie zrozumiałem, dlaczego to demo ma 30 MB, chociaż wciąż uważam to za kontrowersyjne, co rozwinę na forum. Najfajniejszą rzeczą, której się nauczyłem, jest pętla na RTS, chociaż na 6502 to już nie taki dopał (6 cykli na RTS vs 8 na DEC ZP + BNE). A gotowy kod do rysowania krótkich linii można spokojnie przenieść nie tylko na 6502, ale na dowolną architekturę.
tebe @2024-09-23 11:54:47
:) pętla RTS ? w sensie wrzucasz na stos n-adresów początku takiej pętli, uruchamiasz i po każdym RTS skacze na wskazany początek

taka pętla może wykonywać skoki pod różne adresy, niekoniecznie na początek takiej pętli
0xF @2024-09-23 12:26:46
Dokładnie.
0xF @2024-09-23 13:24:20
Z minusów trzeba uważać, żeby przerwanie nie zamazało stosu do następnego użycia.
Z plusów zysk będzie większy, jeśli pętla jest długa i branch nie sięga.
mono @2024-09-23 15:40:59
Przecież przerwanie niczego nie zamazuje, bo adresy są za wskaźnikiem stosu.
0xF @2024-09-23 15:45:56
A jak wykonasz tę pętlę drugi raz, co? Przecież zapis na stos przed każdym użyciem się nie opłaca. Robisz LDX count2sp,Y TXS
Cyprian @2024-09-23 16:59:02
68k ma dwa stosy - użytkownika USP i superwizora (np. przerwania) SSP.
Druga sprawa, jeśli program działa w trybie superwizora i korzysta z SSP to tu też przerwanie nie powinno nic namieszać.
Przerwanie zrzuca stan/rejestry na stos na wejściu przerwania i przywraca je na wyjściu, czyli z punktu widzenia programu, stos nie został naruszony.
0xF @2024-09-23 17:47:49
Zrzuca na stos nie naruszając stosu?
Cyprian @2024-09-23 18:53:10
na 68k z punktu widzenia aktualnie wykonywanego programu przerwanie nie narusza stosu, gdyż wyjście z przetrwania przywraca jego pierwotny adres.
Konop @2024-09-23 18:58:04
Przerwania musiałyby nie manipulować stosem w ogóle (co może być uciążliwe) lub dysponować swoją ramką w obrębie stosu (osobnym wskaźnikiem stosu). W tym drugim przypadku należałoby zapamiętać gdzieś na boku w pamięci te 3 bajty odkładane przy wywołaniu przerwania, przywrócić zawartość stosu pod tymi lokalizacjami podczas wyjścia oraz wychodzić przez jmp odpowiednio modyfikując rejestr flagowy. To ostatnie stanowi pewne wyzwanie.

To tylko teoria, bo w praktyce na A8 to niepraktyczne w szczególności, gdy pętla mogłaby kończyć się przez dex/dey bne.

Trzeba uważać na to, aby przerwanie nie nadpisało stosu również podczas pierwszego wykonania pętli.
pirx @2024-09-23 19:03:17
co do kodu do rysowania linii - oczywiście da się zrobić na malucha, nie będzie taki ładny, bo kilka rozkazów na punkt, dodatkowo jednak trochę mało ramu na dane i któtki stos.
ale końcepcja zadziała.
0xF @2024-09-23 21:11:16
Konop, ciekawa analiza. Odtworzenie flag trzebaby zrobić kilkoma instrukcjami już po przywróceniu wskaźnika stosu TXS i rejestru X.
Założenie jest oczywiście takie, że w pętli potrzebne nam X i Y do celów innych, niż zliczanie przebiegów pętli.
O co chodzi w ostatnim zdaniu? Dlaczego pierwsze wykonanie pętli jest szczególne?
0xF @2024-09-23 21:31:14
Ciekawe wyzwanie :)
V
0 CLV
1 BIT CONST64
NZ
00 CMP #A-1
01 CMP #A
10 CMP #A+1
11 BIT CONST128 ; w pętli zrobiliśmy BIT, bo przecież nie PLP, trzeba obsłużyć razem z V
C
0 CLC
1 SEC
I - tylko jeśli mamy IRQ
0 CLI
D - teoretycznie, bo raczej nie zmieniamy na przerwaniu
0 CLD
1 SED
Konop @2024-09-23 21:35:04
Rozumiem, że można przyjąć założenie o tym, że to się w praktyce nie zdarzy w przypadku efektów synchronizujących się do VBL, ale w ogólności musimy być pewni, że przerwanie nie zniszczy nam zawartości stosu w trakcie wykonywania pętli na głównym wątku, bez względu na to, czy jest to pierwsze, czy kolejne wywołanie. No i oczywiście to samo dotyczy sytuacji, w której inicjujemy "stos". Tutaj również przerwanie występujące w trakcie tej operacji nie jest mile widziane. Oczywiście należy to synchronizować.
Konop @2024-09-23 21:46:56
Pierwotnie sądziłem, że to może być skomplikowane, ale zapamiętanie rejestru flagowego w osobnej komórce pamięci gdzieś na początku przerwania, a później odtworzenie go tuż przed powrotnym skokiem w postaci lda storedFlags pha plp jmp (returnAddressPtr) powinno być wystarczające.
0xF @2024-09-23 21:55:29
Albo synchronizujemy się do VBL, albo robimy takie VBL, które sprząta po sobie na stosie (patrz wyżej).
Z DLI co 8 linii to już za duży narzut.
Dla inicjalizacji stosu jest jeszcze trzecia opcja: bez przestawiania wskaźnika stosu.

Ale PHA zamaże stos, a mieliśmy zostawić czysty?
0xF @2024-09-23 22:00:41
Prościej będzie zapamiętać na VBL, które trzy bajty stosu popsuliśmy (TSX STX vbl_sp) i przywracać je przed następną pętlą.
0xF @2024-09-23 22:43:42
NZ
00 LSR $D20C
01 INC $D20C
10 DEC $D20C

Da radę przenieść ten offtop na forum?
Amigowiec @2024-09-24 00:02:22
Ja pisałem na copperze paski decrunchu w ten sposób... IYKWIM
Ktos @2024-09-24 07:48:24
Wreszcie rozmowa o konkretach a nie pitu pitu dla przewodniczacego
Konop @2024-09-24 08:21:57
0xF: PHA zapisze na tym nowym ("przerwaniowym"), dedykowanym stosie, jeszcze przed odtworzeniem wskaźnika stosu, więc powinno być OK. Tak, z DLI to raczej odpada. Tak, inicjalizacja stosu mogłaby odbywać się również przez regularne zapisy do pamięci bez użycia wskaźnika stosu, ale trzeba uważać na bieżącą zawartość wskaźnika stosu no chyba, że chcemy mieć jeszcze trzeci stos. Skończylibyśmy wtedy z a) regularnym stosem na głównym wątku wykorzystywanym poza pętlą rysującą , "stosem" wykorzystywanym do powrotu na początek pętli rysującej, stosem "przerwaniowym". Zastanawiałem się szerzej, gdzie można byłoby realnie skorzystać z faktu, że odczyty ze stosu są szybsze (3 cykle) w stosunku do regularnej pamięci, albo gdzie wygenerowalibyśmy krótszy kod (1 bajt na pla), ale to byłyby zawsze naciągane przykłady.
Konop @2024-09-24 08:36:11
Faktycznie, trzeba zadbać dodatkowo o N i Z. lda storedFlags / pha / plp / txs / ldx oldX / ldy oldY / lda oldA / FixNandZCode jmp (returnAddressPtr).
Konop @2024-09-24 08:39:59
Ten fragment FixNandZCode musiałby być dynamicznie nadpisany w zależności od tego jak ustawione były flagi N i Z w storedFlags. To jest do zrobienia.
Kaz @2024-09-24 09:28:29
Dyskusję, na prośbę Fox-a, przeniosłem na forum tutaj:
https://atarionline.pl/forum/comments.ph...
0xF @2024-09-24 10:50:28
Dzięki Kaz, przeniosłem do nowego wątku https://atarionline.pl/forum/comments.ph...
nickname
e-mail / website (opcjonalnie)
Aktualne tematy
Zróbmy razem grę...TONY 2 (15)
ostatni: 11-10-2024 10:14, Wolfen
Motocross (LiteRally) (650)
ostatni: 11-10-2024 01:13, Atariteca
ACSI2STM / 1040 STE / TOS 1.06 - ... (25)
ostatni: 11-10-2024 00:08, hawix
Gra "TONY" (425)
ostatni: 10-10-2024 22:48, xbx
PBTOOLS - para narzędzi do manipu... (2)
ostatni: 10-10-2024 21:55, Jeffrey S Worley
Ciekawostki (5579)
ostatni: 10-10-2024 18:19, j_g
Gry w GTIA (63)
ostatni: 10-10-2024 15:21, Kaz
IBM Tetris... (6)
ostatni: 10-10-2024 14:33, Kaz
Problem Jasia cover (93)
ostatni: 10-10-2024 09:37, Kaz
Grupa Pink Softhard (89)
ostatni: 10-10-2024 09:09, Kaz
Filterek do Blizzarda (100)
ostatni: 10-10-2024 08:35, adi
SID i POKEY (695)
ostatni: 09-10-2024 22:51, nogorg
Zmiany w bazie gier, dem, użytków (951)
ostatni: 09-10-2024 20:51, Kaz
Doom na lampce i nie tylko (9)
ostatni: 09-10-2024 16:25, Cyprian
MultiCLK Module for Atari 8-bit (15)
ostatni: 08-10-2024 20:03, mono

Kategorie Forum Atarum

Użytkowników: 2834
Ostatnio zarejestrowany: CpjJwWHV
Postów ostatniej doby: 28

Spotkania i zloty / Meetings & Parties

Najbliższe imprezy
link do naszych spotkań online, zapraszamy do odwiedzenia kanału zoom również przez kod QR:

KWAS

Kalendarz AOL


Społeczność/Community


Rozmawiali
Wywiad z Mariuszem Jaroszem i Kaz (13)
Wywiad Dracona z Mr. Bacardim i Kaz (15)
Tomasz Dajczak i Kaz (22)
Lech Bąk i "Świat Młodych" i Kaz (26)
Michał "Mike" Jaskuła i Kaz (30)
F#READY i Dracon (22)
Daniel „Arctus” Kowalski i Dracon (25)
KATOD i TDC (15)
Mariusz Wojcieszek i "Adam" (17)
Romuald Bacza i Ramos (16)
Śledzenie Amentesa i Larek (9)
Leszek Łuciów i Charlie Cherry (17)
TO JUŻ ZA TOBĄ: rozmowa z Bobem Pape i cpt. Misumaru Tenchi (39)
Rob Jaeger i Emu (53)
Jacek "Tabu" Grad i Dracon (0)
Alexander "Koma" Schön i Kaz (0)
Maciej Ślifirczyk i Charlie Cherry (0)
Jarek "Odyniec1" Wyszyński i Kaz (0)
Marek Bojarski i Kaz (0)
Olgierd Niemyjski i Ramos (0)
«« nowszestarsze »»

Stragan
Nowe, pojemniejsze RAM-Carty oferuje Kaz (21)
"mouSTer" czyli myszka ST oferuje Kaz (30)
Atari USBJoy Adapter oferuje Jakub Husak (0)
Programy: Kolony 2106 oferuje Kaz (7)
Sprzęt: rozszerzenia oferuje Lotharek (87)
Gadżety: naklejki, pocztówki oferuje Sikor (11)
Sprzęt: cartridge RAM-CART oferuje Zenon (7)
Miejsce na drobne ogłoszenia kupna/sprzedaży oferuje Kaz (58)
Sprzęt: interfejs SIO2IDE oferuje Piguła (0)
Sprzęt: interfejs SIO2SD oferuje Piguła (50)

Użytki/Utils
Sprzęt/Hardware

Wynalazki
Atari i Bluetooth napisał Kaz (34)
SIO2PC-USB napisał Larek (45)
Nowe SIO2SD napisał Larek (0)
SIO2SD w CA12 napisał Urborg (12)
Ratowanie ATMEL-ów napisał Yoohaas (12)
Projektowanie cartów napisał Zenon (12)
Joystick do Atari napisał Larek (54)
Tygrys Turbo napisał Kaz (11)
Testowałem "Simple Stereo" napisał Zaxon (5)
Rozszerzenie 1MB napisał Asal (20)
Joystick trzyprzyciskowy napisał Sikor (18)
Moje MyIDE oraz SIO2PC na USB napisał Zaxon (16)
Jak wykonać płytkę drukowaną? napisał Zaxon (26)
Rozszerzenie 576kB napisał Asal (36)
Soczyste kolory napisał scalak (29)
XEGS Box napisał Zaxon (13)
Atari w różnych rolach napisał Różyk (9)
SIO2IDE w pudełku napisał Kaz (5)
Atari steruje tokarką napisał Kaz (15)
DarkMouse napisał Kaz (7)
«« nowszestarsze »»