201

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

Dzięki za sugestię, ale na razie robię tylko tryb kolorów 8bit, więc endian'y mnie nie dotyczą.
Coś mi przyszło do głowy jeszcze wczoraj, więc będę to dzisiaj jakoś sprawdzał.

Edit: OK, temat nieaktualny. Rozpierdzuchę palety robi funkcja SDL_DisplayFormat wywołana zbyt wcześnie. I to w sumie jest dość zrozumiałe, ale nie rozumiem dlaczego mimo wszystko jak później dostarczymy paletę, to z grafiki robi się mocno psychodeliczny twór. To znaczy, oczywiście odpowiedzialna za to jest zapewne również SDL_DisplayFormat, ale przynajmniej na razie już nie wnikam co i jak bo osiągnąłem to co mi obecnie potrzebne.

202

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

Cały wieczór dzisiaj spędziłem próbując ustawić paletę przez SDL i *ponownie* nie udało mi się (jakiś kawałek czasu temu po raz pierwszy chciałem to osiągnąć i spędziłem wtedy chyba ze 3 dni, ale w końcu się poddałem)
Może ktoś się dopatrzy czegoś co robię źle.

Generalnie robię to jak poniżej, ładuję bmp SDLową funkcją (choć i czytałem już specyfikację BMP i mam też własną funkcję ładującą BMP) potem buduję sobie paletę i SDLową funkcją ją ustawiam, i wg mojego rozumowania to powinno działać.

    if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 )
    {
        return 1;
    }
    screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE );

    for (x = 0; x <256; x++)    
    {
    strcpy(s1, "screen po setvideomode: ");
    sprintf(s2, "indeks = %i | r: %i g: %i b: %i", x, screen->format->palette->colors[x].r, screen->format->palette->colors[x].g, screen->format->palette->colors[x].b);
    strcat(s1, s2);
    loguj(s1);        
    }        
    
    if( screen == NULL )
        return 1;

    background = load_image( "data/images/title.bmp" );
    
    for (x = 0; x < 256; x++)
    {
        paleta[x].r = background->format->palette->colors[x].r;
        paleta[x].g = background->format->palette->colors[x].g;
        paleta[x].b = background->format->palette->colors[x].b;
    }    

    for (x = 0; x <256; x++)    
    {
    strcpy(s1, "background po zaladowa: ");
    sprintf(s2, "indeks = %i | r: %i g: %i b: %i", x, paleta[x].r, paleta[x].g, paleta[x].b);
    strcat(s1, s2);
    loguj(s1);        
    }        
    
    if (!SDL_SetPalette(screen, SDL_LOGPAL | SDL_PHYSPAL, paleta, 0, 256))
    {
        loguj("problem z ustawieniem palety1");
    }
    
    SDL_BlitSurface(background, NULL, screen, NULL);
    
    SDL_Flip(screen);
    
    SDL_Delay(1000);

Niemniej kolory są zawsze nie takie jak w pliku. Jeśli z takiego wczytanego BMPka do struktury SDLowej "zbieram" sobie paletę i loguję ją do pliku, to te wartości r, g i b są jakieś zupełnie inne. Co prawda nie wygląda to jak kompletnie losowe wartości:

background po zaladowa: indeks = 0 | r: 0 g: 0 b: 0
background po zaladowa: indeks = 1 | r: 0 g: 0 b: 85
background po zaladowa: indeks = 2 | r: 0 g: 0 b: 170
background po zaladowa: indeks = 3 | r: 0 g: 0 b: 255
background po zaladowa: indeks = 4 | r: 0 g: 36 b: 0
background po zaladowa: indeks = 5 | r: 0 g: 36 b: 85
background po zaladowa: indeks = 6 | r: 0 g: 36 b: 170
background po zaladowa: indeks = 7 | r: 0 g: 36 b: 255
background po zaladowa: indeks = 8 | r: 0 g: 73 b: 0
background po zaladowa: indeks = 9 | r: 0 g: 73 b: 85
background po zaladowa: indeks = 10 | r: 0 g: 73 b: 170
background po zaladowa: indeks = 11 | r: 0 g: 73 b: 255
...
ciach
...
background po zaladowa: indeks = 245 | r: 255 g: 182 b: 85
background po zaladowa: indeks = 246 | r: 255 g: 182 b: 170
background po zaladowa: indeks = 247 | r: 255 g: 182 b: 255
background po zaladowa: indeks = 248 | r: 255 g: 219 b: 0
background po zaladowa: indeks = 249 | r: 255 g: 219 b: 85
background po zaladowa: indeks = 250 | r: 255 g: 219 b: 170
background po zaladowa: indeks = 251 | r: 255 g: 219 b: 255
background po zaladowa: indeks = 252 | r: 255 g: 255 b: 0
background po zaladowa: indeks = 253 | r: 255 g: 255 b: 85
background po zaladowa: indeks = 254 | r: 255 g: 255 b: 170
background po zaladowa: indeks = 255 | r: 255 g: 255 b: 255

tylko faktycznie jak jakaś paleta, ale zupełnie nie ta która była oryginalnie w BMP.

A tu jak co jest calutki kod który w trybie 640x480x8 próbuje wczytać plik BMP i po prostu go wyświetlić:

#include "SDL/SDL.h"

const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int SCREEN_BPP = 8;

SDL_Surface *background = NULL;
SDL_Surface *screen = NULL;
SDL_Surface *fafa = NULL;

char s1[100], s2[100];

void loguj (char str[])
{
    FILE *plik;
    plik = fopen("log.txt", "a");
    fprintf(plik, "%s\n", str);
    fclose(plik);
}

SDL_Surface *load_image( char filename[] )
{
    SDL_Surface* loadedImage = NULL;
    SDL_Surface* optimizedImage = NULL;

    loadedImage = SDL_LoadBMP( filename );
    if( loadedImage != NULL )
    {
        optimizedImage = SDL_DisplayFormat( loadedImage );
        SDL_FreeSurface( loadedImage );
    }
    return optimizedImage;
}

int main( int argc, char* args[] )
{    
    SDL_Event event;
    SDLKey key;
    int x, y, indeks_pal;
    int koniec = 0;
    Uint8 *pixel_addr;
    SDL_Color paleta[256];
    
    for (x = 0; x < 256; x++)
    {
        paleta[x].r = x;
        paleta[x].g = x;
        paleta[x].b = x;
    }
    
for (x = 0; x <256; x++)    
{
strcpy(s1, "szara paleta: ");
sprintf(s2, "indeks = %i | r: %i g: %i b: %i", x, paleta[x].r, paleta[x].g, paleta[x].b);
strcat(s1, s2);
loguj(s1);        
}    

    if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 )
    {
        return 1;
    }
    screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE );

    for (x = 0; x <256; x++)    
    {
    strcpy(s1, "screen po setvideomode: ");
    sprintf(s2, "indeks = %i | r: %i g: %i b: %i", x, screen->format->palette->colors[x].r, screen->format->palette->colors[x].g, screen->format->palette->colors[x].b);
    strcat(s1, s2);
    loguj(s1);        
    }        
    
    if( screen == NULL )
        return 1;

    background = load_image( "data/images/title.bmp" );
    
    for (x = 0; x < 256; x++)
    {
        paleta[x].r = background->format->palette->colors[x].r;
        paleta[x].g = background->format->palette->colors[x].g;
        paleta[x].b = background->format->palette->colors[x].b;
    }    

    for (x = 0; x <256; x++)    
    {
    strcpy(s1, "background po zaladowa: ");
    sprintf(s2, "indeks = %i | r: %i g: %i b: %i", x, paleta[x].r, paleta[x].g, paleta[x].b);
    strcat(s1, s2);
    loguj(s1);        
    }        
    
    if (!SDL_SetPalette(screen, SDL_LOGPAL | SDL_PHYSPAL, paleta, 0, 256))
    {
        loguj("problem z ustawieniem palety1");
    }
    
    SDL_BlitSurface(background, NULL, screen, NULL);
    
    SDL_Flip(screen);
    
    SDL_Delay(1000);
    
    if (!SDL_SetPalette(screen, SDL_LOGPAL | SDL_PHYSPAL, paleta, 0, 256))
    {
        loguj("problem z ustawieniem palety2");
    }    
    
    SDL_Delay(1000);
    
    indeks_pal = 0;

    SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
    
    for (x = 0; x < 640; x = x + 5 )
    {
        for (y = 0; y < 200; y++)
        {
            pixel_addr = (Uint8 *)screen->pixels + (screen->pitch * y) + x;
            *pixel_addr = indeks_pal;
            pixel_addr++;
            *pixel_addr = indeks_pal;
            pixel_addr++;
            *pixel_addr = indeks_pal;
            pixel_addr++;
            *pixel_addr = indeks_pal;
            pixel_addr++;
            *pixel_addr = indeks_pal;            
            
        }
        for (y = 200; y < 400; y++)
        {
            pixel_addr = (Uint8 *)screen->pixels + (screen->pitch * y) + x;
            *pixel_addr = indeks_pal + 128;
            pixel_addr++;
            *pixel_addr = indeks_pal + 128;
            pixel_addr++;
            *pixel_addr = indeks_pal + 128;
            pixel_addr++;
            *pixel_addr = indeks_pal + 128;
            pixel_addr++;
            *pixel_addr = indeks_pal + 128;        
            
        }        
        indeks_pal++;
    }
    
    if( SDL_Flip( screen ) == -1 )
        return 1;
    
    while (!koniec)
    {
        while (SDL_PollEvent(&event))
        {
            if (event.type == SDL_KEYDOWN)
            {
                key = event.key.keysym.sym;
                
                if (key == SDLK_ESCAPE)
                    koniec = 1;
            }
        }
    }

    SDL_FreeSurface( background );
    SDL_Quit();
    return 0;
}

A cały plik logujący dane z palet załączam do tematu.
O co tutaj chodzi?

203

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

Nie sprawdzałem z tą myszą, bo mam Eiffel więc musiałbym szukać oryginalnej klawiatury i myszy, ale jako że bardzo dawno grałem na padzie Segi na Falconie, to stwierdziłem, że może źle to pamiętam albo tak naprawdę to w ogóle nigdy nie grałem i tylko chciałem :) więc postanowiłem to zweryfikować na jakiejś grze. Ściągnąłem pierwszą lepszą grę dostosowaną do twardego dysku i Falcona ze strony Klapauzius'a i ... jednak dobrze pamiętałem odnośnie pada Segi. Wszystko działa OK i kierunki i fire. Cuda niewidy ...

204

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

Dokładnie. Niestety nie rozumiem dlaczego obsługa Fire nie działa dla klasycznego joysticka.
Do tego możesz jeszcze grać na padzie 16bitowej Segi.

Może w takim razie ktoś ma pomysł dlaczego poniższy kod nie działa dla przycisku joysticka (a np. działa dla pada Segi)

Aktywuję joystick tak:

    joystick_atari = SDL_JoystickOpen(0);
    if (joystick_atari != NULL)
    {
        printf("joystick number of buttons: %d\n", SDL_JoystickNumButtons(joystick_atari));   (tu zwraca oczywiście, że jest 1 przycisk)
        printf("joystick number of axes: %d\n", SDL_JoystickNumAxes(joystick_atari));
        printf("joystick number of balls: %d\n", SDL_JoystickNumBalls(joystick_atari));
        printf("joystick number of hats: %d\n", SDL_JoystickNumHats(joystick_atari));
    }

A potem korzystam z niego tak:

    SDL_JoystickUpdate();
    current_hat = SDL_JoystickGetHat(joystick_atari, 0);
    current_button = SDL_JoystickGetButton(joystick_atari, 0);

205

(40 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

tOri napisał/a:

- pośpiechu nie ma, będziesz miał chwilę to sprawdzisz :)

Postaram się jakoś to w najbliższym czasie sprawdzić. Ale w razie jakbym się ociągał z informacją, to się przypomnij, bo pamięć ma tę właściwość, że ulotną jest ;)

206

(40 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

tOri napisał/a:

Może ktoś ma zalegający taki interfejs

Mam. Edit: ale nie wiem czy działający, od 15 lat leży w pudełku, przedtem działał. Sprawdzenie możliwe, ale nie takie hop, siup, już.

207

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

>> jakie są minimalne wymagania?

Trudno mi to wycenić. Najmniej wymagająca skórka  (czyli oryginalana) na gołym Falconie jak piszesz, działa wolno, ale na dopalonym przez CT6x za szybko. W takim razie strzelam, że mogła by działać grywalnie na takim AB040, choć może wystarczyło by już CT2. Ale to tylko gdybanie, bo nie mam nic poza CT63 żeby sprawdzić.

208

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

GNURobbo skompilowany na większe Atarki.

W odróżnieniu do klasycznego Robbo z małego Atari, ma 3 różne skórki graficzne i muzyczne i jest w 8 językach.
Moja ulubiona skórka to Oily, jest to taka niby oryginalna grafika ale dość mocno podrasowana do 24bit. Tyle, że jak uruchamiałem to w 24bitach na PC'cie to nie bardzo przypadła mi do gustu, ale obcięta do 15bitów Videla (edit: oczywiście pomyłka, powinno być: obcięta do 8bit) dla mnie wygląda obłędnie! :) Tak więc nie polecam tej skórki na Super Videlu :) Sam nie sprawdzałem jak to działa na SV, bo moje SV coś latem przestało dawać sygnał i jeszcze nie przysiadłem do niego.

Jeśli dobrze kojarzę, to ta wersja jest praktycznie "czystą" wersją GNURobbo, jedyna większa zmiana dotyczy tylko sterowania. W GNURobbo każdy kontroler należy skonfigurować oddzielnie i tylko danym kontrolerem można sterować. Natomiast w tej wersji nic nie konfigurujemy, wystarczy "złapać" za (prawie*) cokolwiek i można grać, płynnie zmieniając kontroler na inny. Czyli można grać na klawiaturze, Jagpadzie, kontrolerze od 16bit'owej Segi (i pewnie każdym innym zgodnym).Nie działa jedynie klasyczny joystick podłączany do Falcona. To znaczy działają kierunki, ale nie działa strzelanie czego kompletnie nie rozumiem skoro działa taki pad od Segi, który jak mi się wydaje, jest przecież zgodny sygnałowo z joystickami.

Jako, że jest to gra SDL'owa, to wymaga trochę mocy, więc jakaś dopałka raczej wymagana. Skórki Oily i Tronic są bardziej mocożerne, więc CT6x to mus, natomiast skórka oryginalna pewnie działał by płynnnie na jakimś AB040 czy może nawet i czymś lżejszym.

Testy: Kroll i TKSM

https://ufile.io/xu7432z5

209

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

Niech ma:

(czyżbyś się TDC'a naoglądał? ;) )

lizard1982 napisał/a:

Witam,

Jak skompilować plik .s razem z plikiem .c do binarki *.tos ?

Chcę połączyć plik .s z plikiem .c w jedną binarkę, ale nie wiem jak...

Korzystam z vasm oraz vbcc.

...

vbcc -quiet test.c -o="test.s"
vasm -nocase -devpac -m68000 -Faout -phxass -no-opt -o GEMDOS.o GEMDOS.s
vasm -nocase -devpac -m68000 -Faout -phxass -no-opt -o test.o test.s
vlink -b ataritos -o ppp.tos GEMDOS.o test.o

Nigdy nie kompilowałem w vbcc to się wypowiem :)

Jedyny znany gotowiec jaki kojarzę, to kawałek własnego silnika graficzno-muzycznego Francuza o ksywie Orion_

http://onorisoft.free.fr/retro.htm  (Falcon Demo System v5)

i tam w skrypcie budującym binarkę (również z c i assemblera) robi to tak:

set path="E:\Programmation\Falcon\VBCC\bin"

vc +%path%\..\config\normal.pc -cpu=68030 -O4 -o falcdemo.prg main.c falcsys.c falcsysa.s

pause

OK, dzięki za wszelakie sugestie. Dzisiaj miałem chwilkę to przysiadłem znowu do tematu i najpierw zacząłem z ciekawości przeglądać (uważniej) ten własny endian projektu i znalazłem przyczynę problemu. Potrzebne makra były zaplątane w serię #ifdef'ów i #ifndef'ów które źle zinterpretowałem, więc w rzeczywistości te makra nie były definiowane. Dostosowałem odpowiednio #ifdef'y i projekt się zbudował :)
Z ciekawości sprawdziłem też endian.h cross-toolchain'a (mam zainstalowany Vincent'owy) i trochę się zdziwiłem, bo tam w endian.h nie ma tych makr.
Pobrałem sobie też toolchain Thorsten'a (w wersji 8.coś tam, choć widziałem że już ma 9.cośtam i nawet 10.cośtam) i jak sprawdziłem jego endian.h, to wygląda jak najbardziej "prawidłowo", ma te wszystkie indiańskie marka i takie tam... Nic to, najważniejsze, że projekt się już buduje, a skoro jeszcze pewnie w tym roku będę  zmieniał distro, to zapewne już pójdę w toolchain Thorsten'a, a na razie nic nie ruszam.

Od jakiegoś czasu (strzelam, że ze dwa dni) ani razu mi nie "zamuliło" forum. Dzięki!

U mnie też. Każda taka operacja trwa conajmniej 30 sekund, a czasem i dłużej.

Dodawać tego <endian.h> z ciekawości oczywiście dodawałem, ale nic to nie zmieniało.
A co do mintliba, to zdecydowanie powinienem mieć, regularnie coś tam kross-kompiluję i wszystko działa jak należy, ale może coś mi się tam ostatnio faktycznie rozjechało, zerknę dzisiaj i zweryfikuję czy wszystko jest OK.

Bez zmian.

perinoid napisał/a:

Masz #include <endian.h> na początku?

Jest tam jakiś własny endian, któru w sobie oczywiście robi załączenie tego systemowego.

perinoid napisał/a:

Ewentualnie spróbuj w linii komend -D_DEFAULT_SOURCE zamiast -D_DEFAULT_SOURCE=1

Nie pomogło.

Mam między innymi taki kawałek kodu:

    x += dest->clip.x;
    y += dest->clip.y;

    if (use_off) {
        x += le16toh(sprite->x);
        y += le16toh(sprite->y);
    }

Kompiluje się to bez problemu (no, może daje tylko mały warrning: implicit declaration of function 'le16toh') natomiast podczas linkowania dostaję:
"undefined reference to `_le16toh'"

Poczytałem w sieci na temat tego błędu i znalazłem fajne wytłumaczenie problemu i rozwiązanie:
https://stackoverflow.com/questions/532 … n-makefile
Ale żadno z zaproponowanych 3 rozwiązań nie pomogło.

Komenda którą komiluję źródło:

m68k-atari-mint-gcc -m68020-60 -std=gnu99 -DHAVE_CONFIG_H -I.    -I/home/jury/sdl_stuff/include/SDL -I/home/jury/sdl_stuff/include -D_DEFAULT_SOURCE=1 -D_REENTRANT  -I/home/jury/sdl_stuff/include/SDL -I/home/jury/sdl_stuff/include -g -O2 -c -o src/sdl-video.o src/sdl-video.c 

Jak to ugryźć żeby się zlinkowało prawidłowo?
Bo już kurde jestem bliski  zainstalowania środowiska gcc natywnie na Falconie i tam powywalałbym te wszystkie makra (nie jest ich dużo, ale parę jest) związane z konwersją indianów to powinno mi się natywnie (raczej) prawidłowo zlinkować. Ale to zostawiam jako ostateczność, tym bardziej, że kompilacja większych rzeczy nawet na 100MHz to małe wyzwanie.

218

(4 odpowiedzi, napisanych Bałagan)

@Sikor, tak, ustawiałem właśnie PCM'a
@Adam, sprawdzałem file'em, ale to chyba nie do końca jest wiarygodne, dla niektórych pokazywał PCM a dla niektórych nie pokazywał kodeka w ogóle. Nie wnikałem za bardzo w wiarygodność tego, ale może jednak powinienem
@Cyprian, no właśnie wybierałem tego PCM'a 16bit i próbowałem jeszcze testowo 32bit (i jak dobrze pamiętam, to ten 32bit też działał)
Dobra chłopaki, dzięki za odzew, przysiądę do tego jeszcze dzisiaj, bo muszę to cholerstwo przekonwertować prawidłowo.

Edit:
O matko, ale forum woooooooolno działa, odświeżenie listy aktywnych wątków około 30 sekund a dodanie posta ponad minutę, i tak któryś już raz dzisiaj jak wchodzę na aa.

219

(4 odpowiedzi, napisanych Bałagan)

2 miesiące temu jakimś linuksowym narzędziem albo jakimś konwerterem on-line (już nie pamiętam czym) przekonwertowałem około 10 małych plików w formacie ogg na wav. Okazało się, że jeden z nich zupełnie nie działa, to znaczy na Falconie w 3 różnych odtwarzaczach muzycznych nie otwiera się twierdząc, że nieznany format, a próba załadowania takiego pliku funkcją SDL_LoadWav też kończy się komunikatem, że format nieznany.
W weekend musiałem przekonwertować jeszcze jeden ogg, a jako, że kompletnie nie pamiętam czym to konwertowałem te 2 miesiące, więc sobie zainstalowałem Audacity. Przekonwertowany plik na Linuksie działa prawidłowo, natomiast na Falconie znów komunikat o nieznanym formacie. Przekonwertowałem więc inny ogg który działa poprawnie wszędzie.
Natomiast wczoraj znowu konwertowałem w Audacity kolejnych 10 plików ogg, ale tym razem żaden z nich nie otwiera się na Falconie, na linuksie oczywiście każdy z nich działa OK.
O co chodzi? Szukałem dzisiaj po sieci czy na Falconie są jakieś restrykcje odnośnie wav'ów, ale nic takiego nie znalazłem. Przejrzałem też, dokumentację Aniplayera pod tym kątem, ale też nic nie znalazłem. Dlaczego więc konwersja do wav'ów kończy się raz dobrze a raz nie, choć każdy przekonwertowany wav na linuksie odtwarza się prawidłowo?

Edit:
Aha, dodam, że te pliki ogg nie są identyczne jeśli chodzi o częstotliwość czy "bitowość", ale nie zaobserwowałem aby pliki o konkretnych parametrach zawsze działały albo zawsze nie działały.

220

(5 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

Dobra, przyniosłem 30 dyskietek. Zakleiłem w czterech z nich czujkę HD i na Falconie włączyłem formatowanie na 720KB. 1 dyskietka coś trochę kręciła nosem podczas formatowania ale przeszła. Ponowna próba formatowania jej przeszła już bez problemu. Druga dyskietka też coś miała problemy przy formatowaniu jej 2 razy, a trzecie formatowanie przeszło całkowicie pomyślnie. Pozostałe 2 dyskietki sformatowały się bez problemu za pierwszym razem. Więc pytanko czy chcesz te dyskietki czy szukasz dalej?
Generalnie są to dyskietki które jakieś 15 lat temu ocaliłem w pracy przed wyrzuceniem na śmietnik. Wziąłem ich dość dużo, ale sam po kilku latach sporą cześć wyrzuciłem z racji tego, że tylko leżały i kurzyły się. Zostawiłem sobie dwa pojemniki i sam co jakiś czas sięgam po nie jak potrzebuję. Absolutna większość działa bez problemu, ale faktycznie co jakiś czas trafia się taka która nie działa.

221

(5 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

Tak, mogę wysłać pocztą lub paczkomatem.
Dobra, w takim razie jutro zejdę do piwnicy i przyniosę 30 dyskietek HD. Sprawdzę na Falconie losowo wybrane ze trzy sztuki, i jak okaże się, że działają, to paczka leci do Ciebie.

222

(5 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

Ile ich potrzebujesz? Musiałbym zejść do piwnicy, żeby podać konkrety, ale myślę, że trzydzieści sztuk to powinienem mieć do oddania bez problemu (HD)

223

(107 odpowiedzi, napisanych Bałagan)

Mq napisał/a:

Temat centralizacji świetnie podsumował pancio.net :)
Dopiszę jeszcze że nieźle się uśmiałem z petycji :)
Allegro jest prywatną firmą i jak ma ochotę to niech sobie zrobi nawet 150% prowizji

Bzdura, no chyba, że poziom ogarniania rzeczywistości masz na poziomie motłochu posiadającego jako jedyną zdolność życiową umiejętność jeżdżenia palcem po ekranie telefonu.
Wszelakich centralizacji, kontroli, instytucji "pilnujących" ... w dziele nazywanym cywilizacja jest multum ...

224

(198 odpowiedzi, napisanych Zloty)

Jakby była jakaś lista rezerwowych uczestników, to poproszę o dopisanie :)

225

(8 odpowiedzi, napisanych Bałagan)

Sikor napisał/a:

Pod koniec działalności "szkolnej" w piwnicy oryginałami handlowałem (szatnia, przed samym skrętem na schody). Na Atari of coz ;P

Na małe czy na ST też? Bo kupowałem od kogoś, jak dobrze pamiętam właśnie w piwnicy, Robbo na ST.