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
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
ABBUC SWC 2025: wszystkie linki do gier Zebraliśmy wszystkie dostępne linki do gier z konkursu ABBUC Software Contest 2025! Zagraj i oceń.
RastaConverter Beta 20 RastaConverter, popularny konwerter grafiki dla Atari, otrzymał aktualizację Beta 20 z nowymi opcjami linii komend i poprawkami.
Test7800 0.7.2 Nowa wersja eksperymentalnego emulatora Atari 7800, Test7800, wprowadza poprawki w emulacji procesora 6502.
Rogul dla Atari STE, kolejne wieści Twórcy gry Rogul na Atari ST/STE udostępnili pierwszy film prezentujący działający gameplay na nowej platformie!
Wyniki konkursów ABBUC 2025 Znamy zwycięzców ABBUC Software i Hardware Contest 2025. Sprawdź, kto zgarnął nagrody i punkty!
atari.area forum » Posty przez tebe
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
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ę
a na miejscu będzie przewodnik ? :)
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
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 mainadmini sprawdzają naszą spostrzegawczość, pewnie szykują coś większego ;)
niech zgadne, musisz wejsc do swojego profilu i zmienic jezyk na polski
zacznij składać swoją maszyne czasu mac...
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ś
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
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
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
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
"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ć :)
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)
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
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
na atariage juz jeden gość przeszedł całą grę jeśli wierzyć załączonemu przez niego screenowi
ok, a na jakie party jedziecie wogóle ludki ?
na 65816 mozna zrobic to szybciej jesli uzyjesz 16-bit rejestrow, tyle ze dotyczy to specyficznej kolejnosci wypelniania rejestrow kolorów
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 :)
bo nie po to Bill implementował multitasking w "okienkach" :)
ok Fox, ale po co Ci to, przecież Ty lubisz tylko dema pisać
to moze teraz ktos przetlumaczy na język polski oba wywiady, he ?
ja oddałem do Pewexu i naprawili :)
atari.area forum » Posty przez tebe
Wygenerowano w 0.084 sekund, wykonano 20 zapytań