ArchieIl napisał/a:Po pierwsze "emulator" tak naprawdę byłby binarnym rekompilatorem (offlinowym) ROM-ów dla 2600 na kod, który działałby z Atari XL/XE.
xxl już zrobił jeden "rekompilator offlineowy" - możesz go popytać jakie są problemy. Polecam wątek http://atariarea.krap.pl/forum/viewtopic.php?id=4772
ArchieIl napisał/a:Po drugie w Atari 2600 całość grafiki w każdej ramce jest tworzona od 0 przez 6502 i wysyłana do układu graficznego.
lda abs - 4 cykle
sta abs - 4 cykle
CPU jest taktowany 1,773447 MHz w PAL - zegar dzielony jest przez 2 więc masz 886723 cykle procesora na sekundę.
W ramce (PAL - 1/50 s) masz więc 17734 cykli więc jesteś w stanie przepisać rozwiniętą pętlą 2216 bajtów (najszybszy sposób). Rozdzielczość 40x192 daje Ci 7680 bajtów na Atari XL/XE. Nie liczę zupełnie cykli, które ANTIC zabiera na odświeżanie ekranu i zakładam, że ANTIC podczas generacji ma wyłączone rysowanie ekranu.
Nawet gdyby zastosować sprajty do rysowania obrazu a grafikę do rysowania sprajtów to i tak masz dla ekranu 960 bajtów do przepisania, a dla sprajtów 576 bajtów (chyba, że będziesz to modyfikował tylko tam, gdzie trzeba) - w sumie masz więc 1536 ($600) bajtów do przepisania co daje 12288 cykli (i zajmuje $2400 ramu). Reszta czyli 5446 zostaje Ci na logikę i generowanie treści.
ArchieIl napisał/a:* użycie trybu tekstowego 40x24, w którym wszystkie znaki są zaprojektowane jako wszystkie możliwe do użycia zestawy kreseczek poziomych ("mono").
* użycie trybu tekstowego ANTIC 4 ze znakami zdefiniowanymi j.w. (full kolor)
8 linii po 2 stany - ilość kombinacji = ilość stanów do potęgi ilość linii; wychodzi 256 kombinacji - nie wystarczy Ci generatora znaków.
ArchieIl napisał/a:* użycie trybu ANTIC 9 tyle, że nie sprawdziłem jeszcze czy ANTIC pozwala na podmianę zawartości poszczególnych linii i uzyskanie w ten sposób wymaganej rozdzielczości 192 lini w pionie.
Jak działałyby gry gdyby nie pozwalał? Rozdzielczość OS9: 80x192.
ArchieIl napisał/a:W obu przypadkach dynamicznie zmieniające się tło będzie wyjątkowo trudne w realizacji ale na początek chciałby uzyskać emulację dla gier ze statycznym playfield i z dowolnie konfigurowanymi duszkami.
Przecież to zazpisywanie pełnych bajtów: $00, $11, $22 i tak aż do $88. Żadnego maskowania, przesunięć, liczenia - gdzie tu trudność?