Sikorowy wycinacz by Sikor 2009-05-11 12:14:55

Czy możemy jakimś sposobem zwiększyć ilość dostępnych fontów dla naszego małego Atari, mimo, że już mamy dość pokaźną bibliotekę takowych? Albo wyciągnąć grafikę z gry na inny komputer? Oczywiście, że tak. W tej materii nową propozycję ma Paweł "Sikor" Sikorski, który pracuje nad programem :

GR Finder

Jak pewnie większość z Was, ślędzących forum, już wie, pracuję nad programikiem GR Finder, na który zapotrzebowanie zgłosił kiedyś XXL-a. Ma on służyć do przenoszenia grafiki z różnych platform na Atari i ewentualnej mini-edycji poprzez wstawianie pojedynczych pikseli. Na razie prace nad końcową wersją się przeciągają, dlatego postanowiłem udostępnić plik w wersji beta (oznaczyłem go jako 0,75). Jest on już całkiem funkcjonalny, chociaż jeszcze kilka zaplanowanych rzeczy brakuje.

Już działające funkcje

Poniżej opiszę co jest już zrobione, a jednocześnie opis ten będzie służył jako krótka instrukcja obsługi. Każda komenda wymaga zatwierdzenia klawiszem RETURN:
Program ma bufor 15 KB. Adres względny bufora zaczyna się od $6000 - więc można w prosty sposób odczytać na przykład dane z ROMu Atari (na przykład fonty systemowe mieszczą się pod adresem $1E00, od niego wystarczy odjąć adres bufora $6000 i powstałą liczbę zamienić na kod dziesiętny, który potem wprowadzamy jako adres początkowy bufora. Jeszcze ustawiamy tryb FONTY i cieszymy się oryginalnymi znakami do zgrania).

Gdy niechcący (lub chcący) spowodujemy zawieszenie się programu - wystarczy wcisnąć klawisz BREAK i z dostępnych opcji wybrać RUN. Bufor nie ulega zniszczeniu (zazwyczaj).

ustawienie adresu



wycinanie obrazka



wyszukiwanie fontów


Funkcjonalność planowana

Program, jak napisałem, jest w wersji beta. Najważniejsze rzeczy do zrobienia:
1. Zrobienie poprawnego trybu edycji - najprawdopodobniej nastąpią spore zmiany w stosunku do tego, co jest (brak przepisywania ekranu w trybie edycji, być może osobne podmenu - wyjdzie w praniu).
2. Zrobienie wyświetlania fontu o "dowolnym" formacie - oprócz fontów 8x8 będzie można wyświetlać (znajdować) fonty o szerokości 1/2/3 bajtów i dowolnie wybranej wysokości.
3. Tryb poszukiwań grafiki ZX Spectrum (hgrafika zapisana "z przeplotem", bodajże 3 grupy na raz, co 8 linii).

Sposób wykorzystania

Podstawową funkcją programu ma być przenoszenie grafiki z innych platform - dane ekranu (bez kolorów), fonty, dane duszków. Uniwersalność tego programu polega na tym, że można go użyć także do natywnych plików, w tym binarnych (jak to jest pokazane na przykładzie GUNSHIP DEMO). Wstępnie znalezione dane (także po drobnym liftingu za pomocą funkcji PLOT) można zgrać i obrobić pod dowolnym programem dla Atari lub PC (są to czyste dane). Proces wyszukiwania jest oczywiście mozolny - jest to zwykłe przeglądanie pamięci, najlepiej, jak się orientujemy, czego się spodziewać (na przykład: szerokośc obrazka do wycięcia to 20 bajtów...). Pomocne tutaj mogą być oczywiście tryby wyświetlania (8/15 grafika/fonty), tym niemniej nie spodziewajmy się, że program wszystko wykryje czy wykona za nas.

Cały program jest tworzony w Turbo Basicu XL, więc nie należy oczekiwać od niego cudów. Tryb wyświetlania fontów jest niestety wolny, ale taki pozostanie - chodzi o możliwość importu różnych rodzai fontów, a to bardzo spowalnia procedury. Dane tam pobierane są według prostego przepisu: weź szerokość (czytaj: jeden bajt), przesuń się niżęj, pobierz kolejny bajt, jak dojdziesz do 8 linii (póki co) - przesuń się o bajt w prawo. W ten uniwersalny sposób można będzie zasadniczo wyłuskać wszystkie fonty nieproporcjonalne (rastrowe, o stałej szerokości znaku) i dowolnej wysokości znaku.

fonty gry "Gunship"


obrazek w trybie 8


napis "Happy Computer" od 12 bajtu w TB font mode


Praktyczne przykłady

Testując program na różnych plikach stwierdziłem, że konsolka Atari 2600 ma dokładnie taki sam sposób zapisu fontów (no prawie - są one odwrócone do góry nogami) jak nasze małe Atari. Oczywiście, zazwyczaj na Atari 2600 nie ma pełnych zestawów znaków (zbyt mała ilość pamięci RAM), ale i tak często potrafią one zadziwić estetyką.

Nie wiem, czy wszystkie obrazy cartów zawierają fonty i jakiej są one jakości, ale przetestowałem mój programik na obrazach gier "Ghostbusters" oraz "Ghostbusters II". W pierwszej zasadniczo mamy kilka wyrazów zapisanych jako fonty oraz cyfry od 0 do 9 - ale w miarę standardowe, więc nie bawiłem się póki co w ich uzyskanie. Za to bardze ładne fonty znalazłem w dwójce - są to litery od A do Z oraz cyfry 123. Postanowiłem dla testów je "wyciąć" - oczywiście potrzebujemy pliku o wielkości 1024 bajty, więc tyle zostało wycięte (aby odczytać pod dowolnym edytorem fontów na Atari). Wynik macie w załączonym pliczku - bez żadnej obróbki.

Tak więc, jeżeli znajdziemy w jakiejś gierce na A2600 ładny zestaw znaków, to możemy w miarę prostym sposobem przegrać je na nasz komputer, a dalsza obróbka (głównie "lustro pionowe" i ustawienie w odpowiednim miejscu) to znacznie mniejszy nakład pracy. Oczywiście, tu i ówdzie trzeba parę znaczków dorobić, jeżeli zależy nam na pełnym zestawie.

W pliku znajdziecie oprócz programu GR Finder wspominane wyżej, a wyciągnięte przeze mnie czcionki: trzy ciekawe "surowe" fonty: z gry "Commando", "Joust" i "Flash Gordon" (wszystkie z 2600, tutaj krótsze pliki, ale na przykład pod "Atari Font Makerem" na grzyba dadzą się odtworzyć). Ciekawostką jest, że wiele gier na 2600 wygląda na to, że grafikę ma całkowicie i wyłącznie na fontach (w tym właśnie "Joust", "Flash Gordon" i chyba "Defender II"); fonty z "Robbo" (wersja kolegi Poklika). Może się komuś przydadzą.
xxl 2009-05-11 13:10:32

programik ma sluzyc glownie do wyciagania i edycji grafiki z apple2 oraz bbc micro, do wyciagania grafiki z zx wystarczy to co jest. glownie to wlasnie zmiany w grafice tak bardzo opozniaja prace nad konwersjami z tych platform

larek 2009-05-11 15:54:50

Fajne. Też kiedyś popełniłem podobny programik: http://tiny.pl/z814
Ale wyszukuje on z pliku dyskowego tylko fonty. Ma za to podgląd w różnych trybach tekstowych. Przyznam, że wiele razy z niego skorzystałem :)

Zastanawia mnie, czy nie łatwiej byłoby taki program napisać na pececie? Nie byłoby ograniczeń pamięci i innych takich...

Kaz 2009-05-11 17:05:23

Larek - mogles podac nazwe programu, bo wyszukac go na tak dlugiej liscie nie jest latwo. Chyba, ze chciales zachecic do przegladniecia wszystkich, nota bene ciekawych, Twoich produkcji :D.

I fakt, na pececie mozna by zrobic dosc uniwersalny program. Bo sa rozne specjalizowane, jak tu kiedys podawal kolega Szenko przy okazji poprawiania znakow w roznych gierkach Atari.

sikor 2009-05-11 18:24:28

@Kaz: link prowadzi dokładnie: FONTSELECTOR
@Larek: może i łatwiej, ale ja się na PC nie znam, a poza tym uważam, że czym więcej na Atari, tym lepiej

CharlieChaplin 2009-05-12 01:12:11

Well,
how about "Font Finder" by Norbert Hagemann, released as a type-in listing 1985 in german magazine Computer kontakt ?!? This tool allows one to search fonts 1) in computer memory, 2) on boot disks and 3) inside disk files.

Whnea font is found one can use option 4 to save it as a standard 1024 bytes (9-sector) font onto disk. Oh, to make things easier for you KAZ, I will send you an e-mail with the program - but as said before, it is german and thus (besides the english name) uses german text on the menu options. But it should be easy to replace this german text with english or polish text (I already explained the four options)...

greetings, Andreas Koch.

Kaz 2009-05-12 01:43:52

Thanks Andreas. I just thinking: how it is possible you remember all these programs you mention on Atari Age, AtariOnline and Abbuc forum? :0

Are you a robot? :) Do you keep everything in RAM or ROM? :D

tdc 2009-05-14 01:28:19

Fajne, też teraz się zastanawiam nad podobnym programem, a kiedyś się sporo wycinaczy napisało ;)