3,426

(72 odpowiedzi, napisanych Emulacja - 8bit)

Fox, zgodzę się z Twoimi twierdzeniami zawartymi powyżej bardzo chętnie, jeśli siądziesz do gcc i napiszesz silnik 6502, który po skompilowaniu z dowolnymi opcjami optymalizacji będzie na tej samej maszynie (68030/16 MHz) działał chociaz o połowę wolniej niż mój silnik asemblerowy.

I póki to nie nastąpi, może zawieśmy tę dyskusję, bo niestety ja wiem, co mówię, a Ty nie (oczywiście, bo nie znasz mojego kodu, a ja owszem).

3,427

(72 odpowiedzi, napisanych Emulacja - 8bit)

jellonek napisał/a:

pamietaj ze C to wlasciwie tylko nieco bardziej przenosny assembler, tak wiec jesli dobrze zaprojektuje sie kod C - wynik w assemblerze, przy dobrym kopulatorze, niewiele sie bedzie roznil od perfekcyjnie napisanego recznie.

Pamiętam. Jednak podtrzymuję, że zachodzi tu wyjątek, mianowicie w postaci programu, który jest silnikiem emulacji innego CPU. Tutaj C niestety polegnie, bo jest JEDNAK językiem stosunkowo wysokiego (za wysokiego) poziomu.

gcc dla m68k to było kolejno 2.7.2, 2.8.1, 2.95.2. Wszystkie wersje generują dość przyzwoity kod wynikowy, zresztą chyba nie może być inaczej, skoro gcc przeprowadza optymalizację jeszcze na etapie niezależnym od maszyny, a dopiero to co mu wychodzi przekłada na mnemoniki. Podejrzewam, że na innych platformach z jakością kodu jest dokładnie tak samo.

Pytanie jest idiotyczne z dwóch względów:

a) masz wyżej napisane, że silnik asemblerowy jest szybszy od ANALOGICZNEGO kodu w C (czyli: algorytm ten sam)

b) asembler to jednak nie jest C, więc wymyślenie programu w C, a potem przełozenie go ręczne na asembler nie może dawać wyników znacząco lepszych niz w przypadku produktu kompilatora; implementacja algorytmu musi być nie tylko w asemblerze napisana, ale tez w asemblerze wymyślona.

Dla ułatwienia dodam, że ten program chodzi na procesorach od 68020 do 68060 i nie zawiera nieczystych sztuczek w rodzaju samomodyfikującego się kodu (bo to na Motorolach powoduje problemy z cache'em).

Cały program z gcc nie ma nic wspólnego, poza tym, że gcc występuje tu jako wartość porównawcza. Ale twierdzę, że to jest właśnie taki przypadek, gdzie nie tylo gcc, ale dokładnie każdy kompilator zawiedzie. A to z tego powodu, że kompilator jest bezmyślnym automatem. Może optymalizowac znane sobie (czyli swoim twórcom) konstrukcje pod względem formalnym, oraz dokonywac analizy programu na np. częstotliwośc użycia pewnych zmiennych, żeby zdecydować, które zmienne umieścić w rejestrach, które na stosie a które gdzie tam. Oraz dysponuje repertuarem tym podobnych chwytów.

To wszystko jednak nie zmienia faktu, że kompilator nie ma bladego pojęcia, co kompilowany program robi, oraz jak można wykorzystać architekturę danej maszyny do zrobienia tego lepiej. To wie tylko człowiek, bo tylko człowiek jest w stanie zrozumieć algorytm.

Fox: zagadnienie nie ma nic wspólnego z opcjami optymalizacji kompilatora C, a raczej z tym, jak kompilator w ogóle działa, no i jak jest zdefiniowany język C jako taki.

3,428

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

jellonek: a jakiego "wsparcia" się spodziewałeś? Wyrazów życzliwej zachęty i entuzjazmu? A od kiedy to życzliwa zachęta i entuzjazm zastępuje robotę? Jeśli człowiek ma ochotę i możliwości oraz czuje się na siłach zrobić port, czy też reverse-engineering danego programu, to *ukończony* projekt niewątpliwie spotka się z życzliwym przyjęciem.

3,429

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

Myślimy, że nie ma przeszkód, żebyś to zrobił.

3,430

(72 odpowiedzi, napisanych Emulacja - 8bit)

Pierwsze pytanie jest, wybacz wyraz, idiotyczne.

Dalsze pytania:

1) chodzi o Falcona - procesor Motorola 68030.
2) przyjrzeć się nie można, bo nie mam zwyczaju ujawniać źrodeł
3) do Atari 800 nie trafiło, bo jest niekompatybilne z a800, a Petr Stehlik nie zrozumiał kodu w stopniu wystarczającym, by to przystosować.
4) odczyt/zapis rejestrów sprzętowych był uwzględniony, ten silnik jest zaimplementowany w istniejącym - aczkolwiek mocno niedokończonym, bo mi się odechciało - emulatorze, mianowicie EmuXL.

3,431

(72 odpowiedzi, napisanych Emulacja - 8bit)

Jellonek, ty teoretyzujesz, a ja napisałem w asemblerze silnik 6502 sześć razy szybszy od analogicznego kodu generowanego przez gcc. Taka jest różnica między zdaniem moim a twoim.

3,432

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

W Hammurabim posługujemy się klawiaturą (to tekstówka jest), a co więcej, input uzytkownika - a nie np. VBL - stanowi podstawę czasu. Dlatego jest to gra, która najbardziej nadawałaby się do grania przez internet.

Nawet kiedyś chciałem zrobić serwer Hammurabiego, który pozwalałby pewnej ilości użytkowników grać jednocześnie - ale tu na chceniu się skończyło.

3,433

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

No to podziel się tym sposobem, bo mi na razie synchronizacja internetu z fi2 wydaje się koncepcją dość egzotyczną.

3,434

(72 odpowiedzi, napisanych Emulacja - 8bit)

W przypadku przeciętnego programu może to i jest prawda. Ale w przypadku emulatora, a konkretnie takiego silnika, który emuluje 6502 na procesorze-hoście, raczej nie ma szans na taki kompilator, który wygeneruje kod optymalny co do szybkości interpretowania opkodów.

3,435

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

Moim zdaniem nie ma siły - pudełko może wysłać pakiet z informacją o zdarzeniu do komputera remotnego, poczekać na potwierdzenie przyjęcia i dopiero wtedy przesłać tę samą informację do kompa lokalnego ALE to też niewiele da, bo pakiet z informacją zwrotną nie nadejdzie natychmiast, lecz droga też zabierze mu nieco czasu.

Jeśli więc pomiędzy wysłaniem pakietu z informacją o zdarzeniu a potwierdzeniem przyjęcia upłyną np. 2 sekundy, to nie znaczy, że komputer zdalny dostał informację po dwóch sekundach, tylko że dostał ją gdzieś w czasie od t+0 do t+2, że tak powiem. Kiedy konkretnie - to jest kompletnie nie do ustalenia.

(EDIT: a może i jest - w pakiecie zdarzenia trzeba byłoby zaznaczyć czas nadania, a w zwrotnym czas przyjęcia; a dalej jak poniżej).

Rozwiązaniem jedynym realnym moim zdaniem jest transmisja synchroniczna, to znaczy pudełka generują określoną liczbę pakietów na sekundę niezależnie od tego co robią gracze. Streaming pakietów, innymi słowy, wtedy opóźnienia transmisji dałoby się łatwo przeliczyć w oparciu o podstawę czasu nazwijmy to, co pomogłoby wyeliminować desynch.

Ale obawiam się, że z tym będzie problem, o którym pisano już powyżej, to znaczy gra typu Spy vs. Spy przestanie być grywalna jeśli na na reakcję na ruch joystickiem trzeba będzie poczekać do paru sekund.

3,436

(72 odpowiedzi, napisanych Emulacja - 8bit)

Lizard: big endian to jest m68k, 6502 jest little endian. Pomerdały ci się procesory, za dużo przy piecu siedzisz :P

Na ARM-ie nie ma dostępu do słów spod nieparzystego adresu?

3,437

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

Alex, nosty ma rację, przemyśl to jeszcze. Tu nie chodzi o rozjechanie się zegarów, tylko właśnie sytuacji w grze, co będzie spowodowane tym, że "ewenty" joysticka będą docierały do obydwu komputerów nierównomiernie: do jednego - lokalnego - natychmiast, do remotnego natomiast - z opóźnieniem powodowanym przesłaniem pakietu przez internet. I odwrotnie, remotny komp będzie dostawał lokalne wydarzenia natychmiast, ale do twojego będą one docierały z opóźnieniem np. pół sekundy.

Efekt będzie taki, że ty go w ryj, i on na twoim ekranie w ryj dostaje, ale na drugim komputerze on jest już w drugim pokoju a ty nie wiadomo gdzie.

PS. demko to była Pierestroyka.

3,438

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

Co to znaczy "wiedz"? Tryb rozkazujący od "wiedzieć"? Nie bardzo mi pasuje do kontekstu.

3,439

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

Ale w Hammurabiego można byłoby pograć.

3,440

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

Taa. To musi jakieś chińskie ampery w przeciwieństwie do tajwańskich :)

3,441

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

A ile ten "długi zasilacz" ma amperów? Muszę coś wpisać do manuala w kwestii recommended power supply.

3,442

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

Ja mam zasialcz 1,5A od 130XE i on mi wystarcza na zasilenie komputera i dysku. Ale nie zbaczajmy z tematu, mi idzie konkretnie o to, jaki zasilacz trzeba do interfejsu IDEa i tu chyba tylko Piguła może się wypowiedzieć.

3,443

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

Czyli, jaka w końcu jest wymagana moc zasilacza? Bo rozumiem, że u delego był za słaby?

3,444

(28 odpowiedzi, napisanych Bałagan)

xray napisał/a:

drac030: nie mam pojecia, czemu Tobie to nie chodzi, to najzwyklejsza mp3,  moze z błędem sie sciągneło?

Ściągnęło się dobrze, to u mnie karta dźwiękowa jakieś hece wyprawia. :/

3,445

(28 odpowiedzi, napisanych Bałagan)

U mnie się nie chce odtwarzać :( Ani mplayer ani XMMS tego nie bierze.

3,446

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

jawser napisał/a:

Gra jest bardzo trudna do ukończenia na real atari bez solucji, bo kto wytrzyma nerwowo rozpoczynanie od początku po raz n-ty tylko dlatego, że spróbował wziąć całkowicie zasłonięty przez ścianę przedmiot w niewłaściwym momencie?

Gadasz jakbyś w Jet Set Willy nie grał.

PS. Bo nie zna życia, który nie grał w dżetsetłily ... a ona się nie da ukończyć ;)

3,447

(35 odpowiedzi, napisanych Zloty)

Zamek? A było coś, faktycznie. Widoczne podczas drogi do knajpy ;)

(Hint: ja osobiście rzygam zamkami czesko-słowackimi, oni to w kółko pokazują, nawet wmuszają; w środku są posadzki, sufity i lanszafty na ścianach, przedstawiające czeskich wielmożów w chwili mówienia po niemiecku - ja mimo wszystko preferuję spotkania z naturą, czyli zdrowa czesko-słowacka knajpa z knedlikami w sosie padlinowym zwanym gulaszem oraz piwo w ilościach).

3,448

(14 odpowiedzi, napisanych Sprzęt - 16/32bit)

Napisz se - dobre bo polityczne. Jakbym ja do tej pory wszystkiego, czego mi w Atariki brakuje, "se" nie pisał. :>

3,449

(14 odpowiedzi, napisanych Sprzęt - 16/32bit)

ACSI = Atari Computer System Interface o ile pamiętam (przydałby się artykuł o tym w Atariki, tak w ogóle).

3,450

(43 odpowiedzi, napisanych Programowanie - 8 bit)

Adam Klobukowski napisał/a:

Draco: przeczytaj opisy do obrazkow

Przeczytałem, no i co?

Ntp napisał/a:

A co do Spectruma to ma jeden spory plus - ma sensowny kolor czerwony:D

I dlatego był taki popularny w ZSRR :)