atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Translate to RSS RSS
"Atari Fan" po angielsku już jest! z 2020-09-23 07:15 (13)
Nowy RECOIL, jego historia i język Ć z 2020-09-10 20:26 (11)
Środa z prasą (cz.3) z 2020-08-31 22:44 (9)
Narzędzie do tworzenia scrolli z 2020-08-29 19:31 (9)
Żużelek dla czterech graczy z 2020-08-23 09:36 (38)
Kartridż Sparta DOS X z 2020-08-22 08:29 (4)
Usprawnienia magnetofonu XC12 z 2020-08-14 12:27 (11)
Rusza pre-order gry Adam Is Me na kartridżu z 2020-08-09 19:08 (40)
Atarowskie akcenty na imprezie Decrunch 2020 z 2020-08-06 21:00 (13)
Premiera "Gry w linie" z 2020-07-24 09:20 (19)
Dzisiaj kolejny KWAS z 2020-07-22 16:13 (3)
Konserwacja stacji dysków 1050 z 2020-07-20 13:34 (18)
Lost Party 2020 - prace i wyniki z 2020-07-12 10:29 (35)
Konserwacja magnetofonu XC12 z 2020-07-10 23:13 (13)
Warsztaty z projektowania elektroniki z 2020-07-09 08:50 (7)
Wspomnienie o katowickiej giełdzie i nie tylko z 2020-07-08 11:51 (24)
Sommarhack 2020 - wyniki z 2020-07-05 18:04 (17)
Magazyn dyskowy "Flop" #65 z 2020-07-03 10:55 (14)
SV 2019 - relacja subiektywna z 2020-06-22 21:14 (16)
Lech Bąk i "Świat Młodych" z 2020-06-11 10:12 (26)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier

Opisy gier
Submarine Commander opisał Kaz (8)
Frogs opisał Xeen (0)
Choplifter! opisał Urborg (0)
Joust opisał Urborg (16)
Commando opisał Urborg (35)
Mario Bros opisał Urborg (13)
Xenophobe opisał Urborg (34)
Robbo Forever opisał tbxx (16)
Kolony 2106 opisał tbxx (0)
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 (18)
Basil The Great Mouse Detective opisał Charlie Cherry (123)
Inny Świat opisał Charlie Cherry (17)
Inspektor opisał Charlie Cherry (19)
Grand Prix Simulator opisał Charlie Cherry (16)
Rescue On Fractalus opisał Kaz (18)
«« nowszestarsze »»

Wewnętrzne/Internals



   Nowinki tworzone dzięki CuteNews
Nowy RECOIL, jego historia i język Ć
Piotr "0xF" Fusik napisał:

Retro Computer Image Library (w skrócie RECOIL) to biblioteka programistyczna i oparty o nią zestaw programów umożliwiających wyświetlanie grafiki z przeróżnych komputerów 8- i 16-bitowych z XX wieku. Grafika w tamtych czasach była zapisywana w wielu formatach, zwykle dostosowanych do konkretnego modelu komputera. RECOIL obsługuje przeszło 400 takich formatów plików. Ta strona zawiera pełen wykaz formatów oraz examples.zip z testowymi obrazkami.

W skład RECOIL wchodzą:
  • apka na Androida
  • apka RECOILWin na wszystkie Windowsy
  • apka w sklepie Windows 10
  • wtyczki do XnView, Imagine oraz Paint.NET
  • wtyczki wyświetlające miniatury w Windows Explorer, Quick Look (macOS), GNOME (Linux)
  • strona wyświetlająca grafikę bezpośrednio w przeglądarce, bez dodatkowych wtyczek ani wysyłania danych na serwer
  • przenośny program recoil2png umożliwiający konwersję na PNG z linii poleceń

    Ponadto RECOIL jest wbudowany we wtyczkę "Formats" windowsowej przeglądarki IrfanView.

    We właśnie wydanej wersji 5.1.0 została dodana obsługa następujących formatów:
  • Apple II: Apple Preferred Format (GS/IIGS/PNT/SHR), Multi-palette (32K), 3201
  • Atari 8-bit: Mad Studio (GR0/ASC/SCR, SPR, MSL, MPL)
  • C64: CharPad (CTM), Centauri Logo-Editor (CLE)
  • NEC PC-88: DaVinci (IMG)
  • NEC PC-98: Mapletown Network (ML1, MX1, NL3)
  • ZX Spectrum: ZX Spectrum Next (NXI), Border Screen by Trefi (BSP)

    Ponadto:
  • RECOILWin ma lepszą obsługę wielu ekranów (np. laptopa podłączanego do monitora)
  • w RECOILWin dodano skróty klawiszowe dla powiększeń 5x-9x (przydatne dla posiadaczy ekranów 4K)
  • apka Windows 10 ma tryb pełnoekranowy

    Programy pobieramy ze strony projektu. Apki na Androida i Windows 10 są dostępne w sklepach.



    Wiadomości o nowej wersji RECOIL, takie jak powyższa, pojawiają się w serwisie AtariOnline od wielu lat, mniej-więcej dwa razy w roku. Wykaz zmian w projekcie można znaleźć tutaj. Tym razem nieco więcej o historii RECOIL i o tym, jak jest zbudowany w środku.

    Historia projektu zaczyna się w marcu 2009 roku, kiedy to stwierdziłem, że przeglądanie grafiki 8-bitowego Atari na PC nie jest wygodne. Należało przenieść pliki na obraz dyskietki w formacie ATR, uruchomić emulator z odpowiednim programem graficznym i wczytać w nim plik. Każdy program graficzny obsługiwało się inaczej, często przy pomocy skrótów klawiszowych, na które nie było standardu jak Ctrl+O na Windows. Natomiast odtwarzanie muzyki z 8-bitowego Atari było już dość wygodne: istniały programy SAP Player oraz mój Another Slight Atari Player (ASAP) wraz z wtyczkami m.in. do Winamp. Pojawił się więc pomysł stworzenia programu analogicznego do ASAP, ale wyświetlającego grafikę. W projekt zaangażowałem Adriana "Epi" Matogę i zaczęliśmy od wymyślenia nazwy. Jedną z propozycji było Another Slight Atari Viewer (ASAV), ale w końcu zdecydowaliśmy się na First Atari Image Library (FAIL). Przewrotna nazwa dla projektu mającego odnieść sukces. ;)

    Wersję 1.0.0 ukończyliśmy 25 sierpnia 2009 roku i zawierała ona przeglądarkę na Windows o nazwie FAILWin, przenośny konwerter fail2png oraz wtyczkę do XnView. Programy obsługiwały 19 formatów graficznych 8-bitowego Atari: AP3, APC, CCI, CIN, CPR, FNT, GR8, GR9, HIP, HR, ILC, INP, INT, MIC, PIC, PLM, RIP, SXS, TIP. Kolejne wersje dodawały wtyczki do ImageMagick, Windows Explorera i GNOME oraz obsługę coraz większej liczby formatów.

    W roku 2012 postanowiłem nie ograniczać projektu do 8-bitowego Atari i tak FAIL 1.3.0 obsługiwał też kilkanaście formatów Atari ST oraz Atari Portfolio, a FAIL 1.4.0 również formaty Atari Falcon.

    Projekt od samego początku był programowany tak, aby działał na różnych systemach operacyjnych. Zamiana zawartości plików na bitmapy była zrealizowana w języku C, przestrzegając jego standardu. Umożliwiało to kompilację FAIL dla Windows, macOS, Linuksa oraz innych mniej popularnych systemów.
    Jednak w 2013 roku dysponowałem już technologią jeszcze bardziej przenośnego oprogramowania. Mowa o języku programowania Ć, który pierwotnie posłużył do uczynienia bardziej przenośnym wspomnianego wcześniej projektu ASAP. Ć został zaprojektowany tak, aby możliwa była automatyczna translacja jego na inne popularne języki, bez narzutu skomplikowanych maszyn wirtualnych i rozbudowanych bibliotek. Tłumaczenie wykonuje się z linii poleceń programem "cito", wskazując pliki źródłowe i docelowe. W chwili obecnej możliwe jest tłumaczenie na C, C++, C#, Javę, JavaScript, Pythona, Swift oraz OpenCL C. FAIL 2.0.0 miał już bibliotekę zaimplementowaną w całości w języku Ć. Umożliwiło to wyświetlanie grafiki w przeglądarce WWW z użyciem HTML 5.

    Również w 2013 roku postanowiłem, że projekt nie musi się ograniczać do grafiki komputerów marki Atari. Nazwa projektu, zawierająca "Atari", została zmieniona. 26 lutego 2014 ujrzał światło dzienne RECOIL 3.0.0, obsługujący grafikę z komputerów Amiga, Commodore 64 oraz ZX Spectrum. Numeracja wersji nie została więc zresetowana wraz ze zmianą nazwy projektu. Technicznie zmiany w kodzie polegały głównie na zmianie nazewnictwa. Pojawiły się też nowe porty: apka dla Androida (korzystająca z tłumaczenia Ć na Javę) oraz wtyczka do Paint.NET (wykorzystująca tłumaczenie na C#).



    Od tamtego czasu projekt wzbogaca się głównie o nowe obsługiwane formaty oraz porty, co jest o tyle łatwe, że język Ć umożliwia korzystanie z języka programowania natywnego dla danej platformy, np. C# dla aplikacji Windows 10. Wersja 4.0.0 nie zawierała wielu zmian technicznych, lecz dodawała dziesiątki formatów z komputerów Atari ST/TT/Falcon.

    Wersja 5.0.0 zawierała natomiast głównie zmiany techniczne, polegające na aktualizacji do nowej wersji języka Ć. Dla ciekawych, jak wygląda kod w tym języku:



    To fragment klasy służącej do dekompresji DEFLATE, stosowanej w plikach G2F. Widać podobieństwo do C#. Jest ono na tyle duże, że stosuję po prostu kolorowanie składni C# w edytorze dla programistów SciTE, obsługującym wiele języków programowania. Obecnie RECOIL zawiera przeszło 18 tysięcy linii kodu w języku Ć.

    Warta uwagi jest też baza formatów w postaci pliku XML:



    Jest ona przekształcana na kod specyfikujący obsługiwane formaty w poszczególnych portach, pliki konfiguracyjne zawierające skojarzenia typów plików, a także tabelkę dokumentującą formaty (podlinkowaną na początku tego artykułu). Wszystkie te przekształcenia są wykonywane transformacjami XSLT. Dzięki temu dodanie nowego formatu wymaga zmian wyłącznie w plikach recoil.ci oraz formats.xml. Proces kompilacji jest oparty o Makefile, z wyjątkiem apek na Androida i Windows 10 stosujących standardowe pliki projektów. Do testowania nowych formatów stosuję RECOILWin. Skrót Ctrl+2 w SciTE mam skonfigurowany na kompilację i uruchomienie RECOILWin.

    Na koniec chciałbym podziękować osobom, które pomagały przy tworzeniu RECOIL. Lonny Pursell włożył ogrom pracy w opisywanie formatów i zbieranie przykładów grafik z Atari ST i Falcona. cholok wyjaśniał wszelkie zawiłości formatów z komputerów Amiga. FRS wciąż pomaga przy formatach z japońskich komputerów (m.in. NEC i MSX). Nieżyjący już Mariusz "Ramos" Rozwadowski pomagał przede wszystkim z grafiką komputerów C64. Petri Pyy zaprogramował wtyczkę do Quick Look i opiekuje się wydaniami na macOS. Paweł "Ripek" Szewczyk narysował ikonę RECOIL, a Sławek "Slaves" Śledź przeprowadził wiele testów.

    2020-09-10 20:26 by Piotr "0xF" Fusik
    komentarzy: 11
  • Kaz @2020-09-10 20:35:48
    Dobry artek Fox, dzięki! I dobrze, że pojawiła się historia programu, dla mnie to plus.
    gorgh @2020-09-10 20:45:35
    jak wiele osób korzysta z Ć? masz takie dane? pytanko jeszcze, czy planujesz dodać konwerter grafik do natywnych formatów? wiem, że to tytaniczna praca, więc pytanie może trochę bez sensu
    astrofor @2020-09-11 00:42:02
    recoil.js elegancja francja ;)
    jhusak @2020-09-11 08:32:08
    ja korzystałem z Ć do jakiegoś projekciku, nie pamiętam.
    0xF @2020-09-11 14:09:05
    gorgh: Nie rejestruję użytkowników. :) Konwersja w drugą stronę jest już od dawna w planach, ale póki co nie zabieram się za nią.
    Philsan @2020-09-11 20:50:08
    Thank you very much!
    Philsan @2020-09-11 20:51:01
    Thank you very much for this program!
    Enjo @2020-09-21 14:08:43
    Czy porównywałeś kiedyś prędkość działania kodu wygenerowanego w Ć z natywnym C dla tego samego zadania?
    0xF @2020-09-21 16:52:07
    Ć nie wprowadza narzutu. Generuje dokładnie taki kod, jak napisałoby się bezpośrednio w przenośnym C.
    Nieprzenośne konstrukcje z C (np. intrinsics, rzutowanie wskaźników na typy o różnym rozmiarze) można użyć w Ć w bloku "native".
    xorcerer @2020-09-22 21:40:01
    Wspaniała robota, wielkie dzięki!
    Enjo @2020-09-24 06:33:35
    Muszę przyznać, że brzmi to bardzo dobrze, choć aktualnie nie mam potrzeby pisania czegoś aż tak wieloplatformowego.
    nickname
    e-mail / website (opcjonalnie)
    Aktualne tematy
    #FujiNet - karta sieciowa SIO dla... (376)
    ostatni: 29-09-2020 21:37, Thomas Cherryhomes
    Idzie nowa Montezuma? (50)
    ostatni: 29-09-2020 21:26, BaX
    zaginione w akcji,może toś ma jak... (2)
    ostatni: 29-09-2020 20:41, Krótki
    Moje materiały wideo z grami na A... (26)
    ostatni: 29-09-2020 19:22, nowy80
    Kombat Jasia (3)
    ostatni: 29-09-2020 19:11, IRATA4
    Odżółcanie czyli precz z żółtym i... (33)
    ostatni: 29-09-2020 19:09, IRATA4
    COVID-19 Watcher (694)
    ostatni: 29-09-2020 18:58, IRATA4
    Cymatyka i demoscena analogowa (10)
    ostatni: 29-09-2020 17:00, bruno_j
    [S/O] Prasa i książki (1)
    ostatni: 29-09-2020 13:22, hsimpson
    gr9Lab - przetwarzanie obrazów dl... (28)
    ostatni: 29-09-2020 01:50, pin
    Ha!wangarda - festiwal kultury no... (10)
    ostatni: 29-09-2020 00:33, Kaz
    Jaka to gra? (37)
    ostatni: 28-09-2020 21:27, IRATA4
    SID i POKEY (454)
    ostatni: 28-09-2020 21:20, emkay
    Fajny Chip wczoraj słyszałem (236)
    ostatni: 28-09-2020 21:03, sun
    XEP80 - pomocy! (17)
    ostatni: 28-09-2020 10:19, pirx

    Kategorie Forum Atarum

    Użytkowników: 2197
    Ostatnio zarejestrowany: slawomir21
    Postów ostatniej doby: 42

    Spotkania i zloty / Meetings & Parties

    Najbliższe imprezy
    nasze spotkania online tutaj, zapraszamy do naszego kanału zoom:

    KWAS

    Kalendarz AOL


    Społeczność/Community


    Rozmawiali
    Lech Bąk i "Świat Młodych" i Kaz (26)
    Michał "Mike" Jaskuła i Kaz (6)
    F#READY i Dracon (22)
    Daniel „Arctus” Kowalski i Dracon (25)
    KATOD i TDC (13)
    Mariusz Wojcieszek i "Adam" (16)
    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)
    Wolfgang Burger i Grey (0)
    Mariusz "Ramos" Rozwadowski i Xeen (0)
    Wywiad z Wojciechem Zientarą i Xeen (0)
    «« nowszestarsze »»

    Stragan
    Atari USBJoy Adapter oferuje Jakub Husak (0)
    Programy: Kolony 2106 oferuje Kaz (6)
    Sprzęt: rozszerzenia oferuje Lotharek (19)
    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 (51)
    Sprzęt: interfejs SIO2IDE oferuje Piguła (0)
    Sprzęt: interfejs SIO2SD oferuje Piguła (23)

    Użytki/Utils
    Sprzęt/Hardware

    Wynalazki
    Atari i Bluetooth napisał Kaz (33)
    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 (9)
    Testowałem "Simple Stereo" napisał Zaxon (3)
    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 (8)
    SIO2IDE w pudełku napisał Kaz (5)
    Atari steruje tokarką napisał Kaz (15)
    DarkMouse napisał Kaz (7)
    «« nowszestarsze »»