1,751

(37 odpowiedzi, napisanych Software, Gry - 8bit)

dla programu w CC65 trzeba dopisać jednak jeszcze po wywołaniu wait()

    asm(" lda #0");
    asm(" sta $13");
    asm(" sta $14");

teraz wynik jest lepszy, 2455 FPS

1,752

(37 odpowiedzi, napisanych Software, Gry - 8bit)

jest OK, okazuje sie że podałem wynik FPS odczytując bajty odwrotnie

przepisuje bajt $13 pod $600, bajt $14 pod $601 i podałem go w kolejnosci $14$13 zamiast $13$14, przez co wynik FPS "podskoczył"

prawidłowo odczytany wynik dla MADS-a to 1036 FPS, czyli ACTION tez jest wiarygodny :) wybaczcie pomyłkę

1,753

(64 odpowiedzi, napisanych Zloty)

a na miejscu będzie przewodnik ? :)

1,754

(37 odpowiedzi, napisanych Software, Gry - 8bit)

ILR a ile masz PRIMES, bo nie mam jak sprawdzic ACTION

pozatym XXL otrzymal podobny wynik dla ASM, tak ze w asm zostało napisane toto podobnie

1,755

(37 odpowiedzi, napisanych Software, Gry - 8bit)

ja też staram się ułatwiać sobie życie, dlatego wprowadziłem do mads-a (jeszcze nie udostępniony) automatyczne generowanie kodu dla pętli WHILE, kod wynikowy ma długość 375b, fps 1036


/* Eratosthenes Sieve benchmark */

true    = 1
false    = 0
size    = 8190
sizepl    = 8191

flags    = $8000


    org $2000

;void wait(void)
;{
; unsigned char a=PEEK(tick);
; while (PEEK(tick)==a) { ; }
;}

.proc wait
    lda:cmp:req 20
    rts
.endp


main

;int main()
;{
;    unsigned int i, prime, k, count, iter;
    .var i, prime, k, count, iter .word
    
;    wait();
    wait

    mwa #0 $13

;    printf("10 iterations\n");

;    iter = 1;
    mwa #1 iter

;    while (iter <= 10) {
p0    .while .word iter <= #10    ;0

;        count = 0;
        mwa #0 count

;        i = 0;
        mwa #0 i

;        while (i <= size) {
p1        .while .word i <= #size        ;1

;            flags[i] = true;

            lda <flags
            clc
            adc i
            sta adr
            lda >flags
            adc i+1
            sta adr+1

            lda #true
            sta $ffff
        adr:    equ *-2
        
;            i++;
            inw i
;        }
        .endw

;        i = 0;
        mwa #0 i
        
;        while (i <= size) {
p2        .while .word i <= #size        ;2

;            if (flags[i]) {

            lda <flags
            clc
            adc i
            sta adr2
            lda >flags
            adc i+1
            sta adr2+1

            lda $ffff
        adr2:    equ *-2

            beq skip

;                prime = i + i + 3;
                lda i
                clc
                adc i
                sta prime
                lda i+1
                adc i+1
                sta prime+1

                lda prime
                clc
                adc #3
                sta prime
                scc
                inc prime+1                
                
;                k = i + prime;

                lda i
                clc
                adc prime
                sta k
                lda i+1
                adc prime+1
                sta k+1

;                while (k <= size) {
p3                .while .word k <= #size        ;3

;                    flags[k] = false;

                    lda <flags
                    clc
                    adc k
                    sta adr3
                    lda >flags
                    adc k+1
                    sta adr3+1

                    lda #false
                    sta $ffff
                adr3:    equ *-2

;                    k = k + prime;

                    lda k
                    clc
                    adc prime
                    sta k
                    lda k+1
                    adc prime+1
                    sta k+1

;                }
                .endw

;                count++;
                inw count

;            }
        skip:

;            i++;
            inw i

;        }
        .endw

;        iter++;

        inw iter

;    }
    .endw
    
;    printf("\n%d primes\n", count);
    
;    i=PEEK(tick)+PEEK(tack)*256;

;    printf("\n%d fps\n", i);
    
;    return 0;
;}

    mwa $13 $600
    mwa count $602

    mva #$80 712
    jmp *


    run main

1,756

(19 odpowiedzi, napisanych Sprawy atari.area)

admini sprawdzają naszą spostrzegawczość, pewnie szykują coś większego ;)

1,757

(19 odpowiedzi, napisanych Sprawy atari.area)

niech zgadne, musisz wejsc do swojego profilu i zmienic jezyk na polski

1,758

(18 odpowiedzi, napisanych Bałagan)

zacznij składać swoją maszyne czasu mac...

1,759

(37 odpowiedzi, napisanych Software, Gry - 8bit)

nowa wersja cc65 generuje dłuższy kod i wolniejszy, aktualna długość kodu 3914b (wersja 2.11), poprzednio 3887b (wersja 2.10) , może biblioteki się rozrosły czy coś

1,760

(37 odpowiedzi, napisanych Software, Gry - 8bit)

w/w benchmark przyspieszy (dla 6502 wyjdzie wynik 2950 fps) jesli zadeklarujemy nasze zmienne jako "unsigned int" w w/w wersji jest bardziej obciążający CPU

1,761

(37 odpowiedzi, napisanych Software, Gry - 8bit)

Pasiu był tak miły i zapuścił ten benchmark na swojej dopałce, jak pisze ciut powyżej 14Mhz

6502:   554 fps
65816: 533 fps

1,762

(37 odpowiedzi, napisanych Software, Gry - 8bit)

magicznym zakleciem Laoo ;)

cc65 -O --cpu 65816 -t atari %1 -o %1.s
ca65 --cpu 65816 -t atari %1.s -o %1.o
ld65 -t atari -o %1.xex atari.o %1.o atari.lib

Fox jak zwykle masz racje

1,763

(37 odpowiedzi, napisanych Software, Gry - 8bit)

oto test który udowadnia że emulator jest szybszy od emulowanej maszyny

/* Eratosthenes Sieve benchmark */

#include <peekpoke.h>

#define true 1
#define false 0
#define size 8190
#define sizepl 8191
#define tick 0x14
#define tack 0x13

char flags[sizepl];


void wait(void)
{
 unsigned char a=PEEK(tick);
 while (PEEK(tick)==a) { ; }
}


int main()
{
    int i, prime, k, count, iter;    

    wait();

    POKE(tick,0x00);
    POKE(tack,0x00);

    printf("10 iterations\n");

    iter = 1;
    while (iter <= 10) {
        count = 0;
        i = 0;
        while (i <= size) {
            flags[i] = true;
            i++;
        }
        i = 0;
        while (i <= size) {
            if (flags[i]) {
                prime = i + i + 3;
                k = i + prime;
                while (k <= size) {
                    flags[k] = false;
                    k = k + prime;
                }
                count++;
            }
            i++;
        }
        iter++;
    }

    printf("\n%d primes\n", count);
    
    i=PEEK(tick)+PEEK(tack)*256;

    printf("\n%d fps\n", i);
    
    exit(0);
}

wyniki w ramkach FPS


atari800win: 4012 fps


prawdziwe Atari z procesorem 65816

tryb 6502:  4015 fps
tryb 65816: 3857 fps


dopałka Pasia F7:

tryb 6502:   554 fps
tryb 65816: 533 fps


p.s.
przeprowadze jeszcze z ciekawości test z programem w asm bez optymalizowania szybkosci kodu z duza iloscia procedur itp. na razie się pisze

1,764

(51 odpowiedzi, napisanych Zloty)

"Dobrze rozwinięta baza noclegowa (4,5 tys. Miejsc noclegowych), gęsta sieć różnych szlaków turystycznych sprawiają, że w okolicy Głuchołaz można naprawdę dobrze i aktywnie wypocząć. Ponadto lokalizacja pięciu przejść granicznych sprawia, że gmina jest ważnym, przygranicznym węzłem komunikacyjnym."

i jakże tam nie pojechać :)

1,765

(116 odpowiedzi, napisanych Sprzęt - 8bit)

nie musicie odpalać Unity Demo, w przykładach załączonych do G2F jest plik z tą grafiką Our5oft-3GfxMode_Atari_TeBe&Dracon.g2f  (katalog Dracon)

1,766

(36 odpowiedzi, napisanych Scena - 8bit)

to może miłośnicy dawnej elektroniki odtworzą sobie jeszcze Odre by móc wklepywać do niej programiki na papieprze perforowanym

Lampart ludzie lubią wygodę i starają ułatwiać sobie życie, od najwcześniejszych lat, tak jak kiedyś srałeś w gacie tak ktoś Ci pokazał kibel i papier toaletowy, polubiłeś to i korzystasz z tego, nie chciałbyś powrócić do czasów kiedy tego nie robiłeś ? :P

1,767

(62 odpowiedzi, napisanych Fabryka - 8bit)

Vidol zauważył że na stronie Madteamu była wystawiona stara wersja Getris'a, nie wiem jak to sie stało, jakieś niedopatrzenie, ostatnia - poprawna wersja ma "żywe" a nie statyczne HighScore i poprawione błędy zauważone przez graczy

jeśli ściągaliście ze strony http://madteam.atari8.info to powinniście zrobić to jeszcze raz

na stronie Kaz-a i Vasca były właśnie podane linki do strony Madteamu, więc ktokolwiek ich użył nie zassał wersji finalnej, a u takiego Fandala jest OK, on to najwidoczniej ściągnąl z Atariage na swój serwer

aktualnie na madteam-ie leży prawidłowy plik GETRIS_OK.ZIP + bonus w postaci źródeł w formacie Mads-a, sorki za zamieszanie

1,768

(81 odpowiedzi, napisanych Fabryka - 8bit)

na atariage juz jeden gość przeszedł całą grę jeśli wierzyć załączonemu przez niego screenowi

1,769

(21 odpowiedzi, napisanych Zloty)

ok, a na jakie party jedziecie wogóle ludki ?

1,770

(12 odpowiedzi, napisanych Programowanie - 8 bit)

na 65816 mozna zrobic to szybciej jesli uzyjesz 16-bit rejestrow, tyle ze dotyczy to specyficznej kolejnosci wypelniania rejestrow kolorów

1,771

(60 odpowiedzi, napisanych Zloty)

a może przełożycie to na nastepny rok, będzie więcej czasu aby przygotować cos od strony softwarowej jak i organizacyjnej, teraz sklecacie party jakby to była jakaś paląca sprawa, pewnie Was mocno suszy :)

1,772

(10 odpowiedzi, napisanych Sprawy atari.area)

bo nie po to Bill implementował multitasking w "okienkach" :)

1,773

(21 odpowiedzi, napisanych Sprzęt - 8bit)

ok Fox, ale po co Ci to, przecież Ty lubisz tylko dema pisać

1,774

(10 odpowiedzi, napisanych Miejsca w sieci)

to moze teraz ktos przetlumaczy na język polski oba wywiady, he ?

1,775

(15 odpowiedzi, napisanych Sprzęt - 8bit)

ja oddałem do Pewexu i naprawili :)