atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Translate to RSS RSS
Ruszyła edycja zimowa Silly Venture 2024 z 2024-12-06 08:48 (13)
Historia Robbo w J2ME (Java) z 2024-12-04 20:10 (6)
Spowiedź autora symulatora lotu z 2024-12-01 13:44 (10)
11-latek naprawia komputer szachowy z 2024-11-30 12:08 (8)
Tajemnice Atari 5200 (KWAS #35) z 2024-11-27 00:44 (10)
Spotkanie z autorem gry "F-16 Falcon Strike" z 2024-11-22 15:06 (3)
Jak Xorcerer zrobił grafikę do dema STE? z 2024-11-22 14:12 (6)
Pomagamy Atarowcowi! z 2024-11-20 15:02 (28)
Wyniki ATASCII Compo 2024 z 2024-11-10 20:06 (13)
Wyniki konkursu ABBUC 2024 z 2024-11-02 15:54 (19)
Konkurs na grafikę ATASCII 2024 - głosowanie z 2024-10-27 23:34 (14)
Nowszy RECOIL z 2024-10-27 16:05 (0)
W sobotę KWAS #35 w Krakowie z 2024-10-16 00:17 (7)
Giełda 80/90 w Gdańsku z 2024-10-15 13:45 (5)
Pędź Mietku, pędź! z 2024-10-10 12:44 (42)
ATASCII Compo - 4. edycja z 2024-10-06 19:12 (16)
Gra "Dangerous City" uwolniona! z 2024-10-03 15:49 (25)
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)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier (konwencja Kaz)
Aktualizacja: 2024-12-05
Liczba katalogów: 8501, liczba plików: 37171
Zmian katalogów: 43, zmian plików: 90

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ść 2935 MB

Katalog gier (konwencja TOSEC)
Aktualizacja: 2021-07-11

Opisy gier
Rescue On Fractalus opisał Kaz (18)
Stranded opisał Kaz (11)
Gunslinger opisał Dracon (5)
Space 1999 opisał Kaz (4)
Pięć Gówien Eepcha opisał Kaz (10)
Mózgprocesor opisał Kaz (31)
Bruce Lee opisał Kaz (31)
Amaurote opisał Kaz (29)
Jax Stardo In Starblade opisał Kaz (13)
The Dallas Quest opisał Kaz (4)
Hacker opisał Kaz (12)
«« nowszestarsze »»

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
Husakoło - Tribute to Jakub Husak (1)
ostatni: 09-12-2024 01:05, Kaz
Gra "TONY" (491)
ostatni: 09-12-2024 00:24, rafaldudek
Poison - Adam Gilmore music covers (5)
ostatni: 08-12-2024 22:52, amarok
Muzycy scenowi... (117)
ostatni: 08-12-2024 22:09, miker
F-16 Falcon Strike (symulator lotu) (66)
ostatni: 08-12-2024 20:21, Kaz
Nowe okładki gier (522)
ostatni: 08-12-2024 05:49, lexx
Magazyn Flop 67 - nowe gry (15)
ostatni: 07-12-2024 05:08, pancio
Ciekawostki (5591)
ostatni: 07-12-2024 02:48, as...
Toms 720 Zaxon robi (86)
ostatni: 06-12-2024 20:19, as...
KWAS (357)
ostatni: 06-12-2024 16:32, Kaz
CX78+ & CX40+ (Wireless) (1)
ostatni: 06-12-2024 14:53, 5eba_GD
Sdrive - wgrywanie plików cas z o... (5)
ostatni: 06-12-2024 10:59, Kaz
Historia Mirage (36)
ostatni: 06-12-2024 10:48, Kaz
Silly Venture 2024WE - in tribute... (129)
ostatni: 05-12-2024 23:07, Mq
Muzyka i Atari ST/STE (70)
ostatni: 05-12-2024 20:24, Kaz

Kategorie Forum Atarum

Użytkowników: 2862
Ostatnio zarejestrowany: RafałSikorski
Postów ostatniej doby: 15

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 (14)
Wywiad Dracona z Mr. Bacardim i Kaz (16)
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 (130)
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 (58)

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 »»