kategoria: NatAmi
[#61] Re: V4 Standalone już w lipcu?

@abcdef, post #60

Słowo klucz TAK JAK CIA. Tutaj FPGA nie jest zrobiony jak fizyczny układ, a jedynie realizuje tą samą logikę (z mniejszą czy większą dokładnością). Czyli jeśli wiem, że po 8 cyklach zegarowych na linii takiej a takiej pojawia się impuls to zrobienie logiki która po tych 8 cyklach będzie impuls dawać jest emulacją. Odtworzenie wewnętrznej logiki tak jak robił to oryginalny układ (może na liczniku, może na rejestrze, może na przerzutnikach...) jest implementacją.


O i mamy chyba sedno albo jesteśmy bardzo blisko. Czyli implementacja jest tylko wtedy jeśli z oryginalnego schematu robimy dokładnie takie samo urządzenie, dobrze rozumiem? A emulacja (w tym przypadku sprzętowa) wtedy, gdy nie masz oryginalnego schematu i lepisz to jakoś na czuja by przebiegi testowe przechwycone na oryginalnym urządzeniu się zgadzały? I rozumiem że możemy z dyskusji wykluczyć całą otoczkę FPGA vs ASIC? Teraz kolejny eksperyment myślowy: czy gdybym w swojej szufladzie miał oryginalny schemat CIA i wyklepałbym go w VHDL, niezależnie czy jako bloczek w większym systemie w FPGA czy jako samobieżny układ do komunikacji z innymi chipami, to nie byłaby to emulacja, nie? Czy chodzi Ci o to że FPGA samo w sobie przez to że bazuje na LUTach jest niewystarczające do stworzenia implementacji zgodnej z oryginalnym schematem?

A co do obsługi chipsetu i chip ram amigi - jeśli podłączę wampira do A600 i podłączę TV przez composite to niby jakie układy ten obraz generują? Ano te na płycie. Czyli procesor wewnątrz FPGA gada z gayle, agnusem, denise hr, a te z kolei mają bezpośredni dostęp tylko i wyłącznie do pamięci obsługiwanej przez agnusa - czyli tej na płycie. Dlatego nie da się korzystać z fast ramu jak chipram korzystając jednocześnie z oryginalnego chipsetu. SAGA może mieć każdy bajt pamięci na karcie vampire jako chip, ale ECS z płyty amigowej NIE. Jedyną opcją na ominięcie tego byłaby wymiana agnusa na logikę programowalną z dostępem do pełnej przestrzeni adresowej RAM (a i tak nie ma pewności że nie posypie to kompatybilności z istniejącymi aplikacjami).


Tak, dlatego wydawało mi się, że jak masz wsad z SAGA to masz wyjście video tylko na wampirowym HDMI, bo korzysta z chipsetu w FPGA do generacji audio/video. Jak nie masz SAGA to bo wtedy wsad robi tylko za cpu+rtg i używa oryginalnego chipsetu do wszystkiego. Jeśli tu coś przekręciłem to bardzo Cię proszę o sprostowanie, bo wampira nie mam, wątki pobieżnie śledzę ale może coś mi umknęło.

Teraz kwestia dopałek - musisz zrozumieć, że a500 i a600 to 16bitowy datapath, a 68020 (pełne) i wyżej to 32bit. Dodatkowo z brakiej jednych sygnałów i z kilkoma nowymi. Zatem trzeba emulować E, VPA, VMA choćby, a także sygnały których nie ma na płycie tych amig, a których wymaga procesor do działania. To nie jest kwestia tylko i wyłącznie synchronizacji. AMD nawet temat poruszyło pragnąc swoje machy sprzedawać. Są wylistowane główne przyczyny niekompatybilności. A że mach to CPLD (i to takie ciut większe od GALi) to sprawa jest nie taka trywialna.


A no tak, bo ja cały czas mam w głowie 68000 bo na tym siedzę. ;) Faktycznie, szyny 68000 i 68020+ się różnią, ale tego że ten drugi 6800 nie umie szyny 6800 to już nie wiedziałem, ale w sumie jest to logiczne. Zatem Trzeba "dosztukować" całą logikę od gadania z CIA. Emulacja szyny 68000 na potrzeby nowszych procków, zgoda!

Ostatnia aktualizacja: 23.07.2019 12:56:22 przez teh_KaiN
[#62] Re: V4 Standalone już w lipcu?

@teh_KaiN, post #61

Czyli implementacja jest tylko wtedy jeśli z oryginalnego schematu robimy dokładnie takie samo urządzenie, dobrze rozumiem?

Znów wracamy - co to implementacja. Masz rozrysowaną logikę. Możesz ją zrobić na bramkach i to będzie implementacja, jak taka implementacja wygląda mieliśmy okazję zobaczyć przy prototypach lorraine. Można ją zaimplementować w ASIC i oznaczyć logo Commodore i też będzie to implementacja, inna, ale o jednakowej funkcjonalności, a do tego tańsza i mniejsza. Można wsadzić do PLD i też będzie implementacja, a jeśli się nie zmieści to do FPGA. Ale gdy odtwarzasz logikę układu z własnych obserwacji to jest emulacja, bo NIE wiesz co jest w środku, ale robisz coś co zachowuje się tak samo. Realizuje tą samą funkcjonalność (lub podobną) niekoniecznie w ten sam sposób (ale też niekoniecznie zupełnie inaczej). I to jest właśnie ta subtelna różnica.
[#63] Re: V4 Standalone już w lipcu?

@tbone, post #49

Dobre. Tak, wszystko jest emulacja wedlug niektorych. Taki silnik to tylko mechaniczny emulator konia, a czasami calego stada kuuuni. No i zre paliwo zamiast siana. W koncu taka A600 to niezbyt udana emulacja A500, a taki MC68060 to tylko emulator MC68040.
[#64] Re: V4 Standalone już w lipcu?

@abcdef, post #62

Bingo! I tak, masz rację, w Twojej definicji emulacji/implementacji Vampire faktycznie jest emulatorem. Ja mam tę definicję trochę inaczej sformułowaną, bo klasyfikuję to jako reimplementację i wiem z Twoich wcześniejszych wypowiedzi że się z tym nie zgadzasz, masz do tego prawo, ale czuję się w obowiązku powiedzieć czemu.

Wszystko rozchodzi się o inżynierię odwrotną. W świecie software'owym, chociażby hobbystycznym, ale też komercyjnym pojawiają się twory, których autorzy konsekwentnie nazywają je reimplementacjami. IBMowego BIOSa sklonowano metodą clean room - w "brudnym pokoju" jeden zespół rozebrał kod BIOSu na czynniki pierwsze, na jego bazie napisał specyfikację, którą przekazano do "czystego pokoju" z zupełnie innym zespołem, który nie widząc oryginału a tylko tę specyfikację stworzył kod dla własnego BIOSa. Tu mamy reimplementację jak w mordę strzelił bo obserwacja oryginału była nie tylko od zewnątrz ale też od środka.

Z kolei jest wiele projektów, gdzie tworzy się zamienniki dla programów patrząc tylko na to jak działają nie używając przy tym deasemblacji a posiłkując się publicznie dostępną, szczątkową dokumentacją - chociażby projekt ReactOS, czy cokolwiek innego co wyskoczy jak wpiszesz "github reimplementation" w google. Wg mnie słowa oznaczają to, w jakim kontekście są aktualnie używane przez użytkowników języka, a obecnie właśnie do takich projektów używa się pojęcia reimplementacja. Nie ma ono racji bytu w Twoim podejściu do implementacji (chyba że firma robi drugą rewizję tego samego?) ale w moim jak najbardziej. ;)

Swoją drogą - gdzieś w necie widziałem mikroskopowe skany chipsetu ze zdjętą obudową. Kto wie, może w teamie mają jakiegoś strasznego wymiatacza, który umie decyfrować takie mozaiki i na jej bazie odtworzyli oryginalny schemat? Mało prawdopodobne, ale zawsze możliwe.

Tak czy inaczej wyszło na to że cała dyskusja dotyczyła znaczenia słów "emulacja/implementacja" a nie jak myślałem na początku błędu poznawczego dotyczącego tego, czym tak naprawdę jest Vampire ze względu na swoją budowę. Mieliśmy w głowie to samo, tylko inaczej to nazywaliśmy. ;)
[#65] Re: V4 Standalone już w lipcu?

@teh_KaiN, post #64

Ja tylko dodam dla ustalenia uwagi, że w polskim porządku prawnym (i w wielu innych), reverse engineering jest co do zasady niedozwolone.
[#66] Re: V4 Standalone już w lipcu?

@David, post #65

Z tego co wiem tylko ten, który bierze pod uwagę deasemblację/dekompilację. Cytując wiki (jest tam też podlinkowane źródło):

Inżynieria wsteczna jest dozwolona na terenie wspólnoty do tworzenia programów komputerowych o analogicznym działaniu. 2 maja, 2012, Trybunał Sprawiedliwości Unii Europejskiej orzekł w sprawie C-406/10 SAS Institute Inc. v World Programming Ltd, że funkcjonalność programu komputerowego nie jest chroniona prawami autorskimi we wspólnocie i licencje użytkowania są bezprzedmiotowe i nieważne jeśli zabraniają obserwowania, studiowania i testowania programu komputerowego, by odtworzyć jego zachowanie w drugim programie. To orzeczenie zezwala na inżynierię wsteczną tak długo jak program źródłowy lub obiektowy nie został skopiowany.


Chyba że to nieaktualna informacja, to z góry dzięki za sprostowanie. ;)
[#67] Re: V4 Standalone już w lipcu?

@David, post #65

Raczej disasemblacja oraz łamanie zabezpieczeń. Reverse engineering nie jest czymś co można skutecznie prawnie zablokować, bo ochronie podlega konkretny design czy konkretny utwór (wygląd, brzmienie etc.) I tak, gdybym czapę z procesora ściągnął i rysował układ połączeń to owszem, byłoby to traktowane jak łamanie zabezpieczeń. Natomiast jeśli procesor jest czarnym pudełkiem z określonymi sygnałami nikt nie może mi zabronić zrobić innego czarnego pudełka z takimi samymi sygnałami, ale zrobionego po mojemu. Zresztą w podobny sposób są zrobione windowsowe biblioteki w Wine i im prawnicy mogą naskoczyć.

Ostatnia aktualizacja: 23.07.2019 15:18:22 przez abcdef
[#68] Re: V4 Standalone już w lipcu?

@teh_KaiN, post #66

Nie będę pisał czy Vampire to emulator, bo to juz było wielkorotnie "wałkowane", a dyskusja zdaje się nie mieć końca. Niektórzy wiedzą lepiej i tyle.
A co do tego jak powstaje implementacja chipsetu uspokajam - nie ma mowy o żadnej dekompilacji/deassemblacji czegokolwiek (włączając w to inne podobne rozwiazania jak MiST czy Minimig).
Co do pamięci chip i czipsetu to w Gold3 i we wsadach StandAlone (V4) chip mieści się na płycie Vampa (pamięć) i w FPGA (chipset) oczywiście i może go być więcej (jak widać na ostatnim filmiku z QuakeII).

Ostatnia aktualizacja: 23.07.2019 15:17:13 przez pisklak
[#69] Re: V4 Standalone już w lipcu?

@David, post #65

Pierwsze słyszę, żeby było sprzeczne w polskim prawie. W USA gdzie rządzą korporacje to i może, ale nie na naszej ziemi. Mój poprzedni projekt to 3/4 reverse engineering.
Może coś się zmieniło, ale wcześniej w Polsce, mogłeś zaczytać binarkę i ją deasemblować, do tego jeżeli służyło to nauce, to mogłeś to zrobić nawet z kopii.
[#70] Re: V4 Standalone już w lipcu?

@abcdef, post #62

Czyli implementacja jest tylko wtedy jeśli z oryginalnego schematu robimy dokładnie takie samo urządzenie, dobrze rozumiem?


Termin emulacji ma zastosowanie, kiedy jedno urządzenie udaje inne urządzenie, zgodnie ze znaczeniem słowa "emulate", więc musisz sobie odpowiedzieć na pytanie, kiedy takie udawanie ma miejsce. Ma to miejsce zawsze, kiedy funkcjonalność jakiegoś układu lub ich zespołu jest odzwierciedlana przez program i urządzenie, które samo w sobie jest już funkcjonalnym układem, dlatego WinUAE jest emulatorem (PC i inni udają, że są Amigą), to samo tyczy się mikrokontrolerów.

Implementacja w kontekście zagadnienia elektronicznego, odnosi się do odwzorowania funkcjonalności danego układu na etapie niskiego poziomu sprzętowego, czyli budowania jego funkcji z podstawowych elementów logicznych. Języki takie jak VHDL czy Verilog to tkzw języki opisu sprzętu. Projekt tworzony w taki sposób jest zawsze implementacją, jednak implementacja może być także emulacją, ale trzeba też wiedzieć kiedy coś emulujesz, a kiedy robisz po prostu "zgodny sprzęt". Zazwyczaj emulacją możesz nazwać implementację podzbioru funkcji oryginalnego układu, który ma oszukać pracujące z nim urządzenia, np. emulator immobilizera, który immobilizerem nie jest, ale obsługuje zestaw cech umożliwiających pracę całej reszty systemu. Układ zaprojektowany zgodnie z dokumentacją też jest implementacją, nawet jeśli jego struktura logiczna jest całkowicie odmienna od oryginału. Do 68060 istnieje dokumentacja, wiec można na jej podstawie stworzyc zgodny procesor, taki jak Apollo. W implementacji mogą jednak znaleźć się elementy emulacji, np. timingów zgodnych z oryginalnym urządzeniem. Prosty przykład, prawie w każdej karcie turbo do Amigi wkładanej w złącze procesora, Vampire też, znajduje się implementacja układu, który emuluje oryginalny cykl procesora jaki zastępuje. Istnieje takze szara strefa, w której się można kłócić, kiedy mamy jeszcze implementację, a kiedy emulację, taką szara strefą będzie np. AGA, do której nie ma dokumentacji (chyba, że coś się zmieniło), nieudokumentowane funkcje trzeba udawać, wtedy będziemy mieli do czynienia z implementacją, która jest emuluje dane funkcje.

Nie powinno się raczej używać do debaty argumentów związanych z osobliwymi zachowaniami układów, np. bugów czy glitchy, ponieważ te mogą się różnić między rewizjami oryginalnych układów, pierwsze Gayle miały np. jakieś wady związane z timingami dla IDE, stąd na niektórych płytach od A600 można spotkać dodatkową programowalną logikę (XU1), która wnosi poprawki. Obsługa takich oryginalnych bugów i glitchy, jeśli nie wynika z działania samej logiki jest już ich emulacją (w tym implementacją). Możesz powiedzieć np. zaimplementowałem emulację bug'a VSP w implementacji układu VIC.

Procesor Apollo nie jest emulatorem 68060, ale Vampire jako całość to już kwestia debaty, głównie jeśli chodzi o chipset, czyli co jest zrobione zgodnie z dokumentacją, a co emulowane.


Ostatnia aktualizacja: 23.07.2019 15:46:15 przez sanjyuubi
[#71] Re: V4 Standalone już w lipcu?

@David, post #1

Popyt, sropyt, nie amiga bo emulator, emulator programowy emulator sprzetowy, implementacja sracja, atarowcy bombardowcy...

...dobra...

...ale kiedy w sklepach?
[#72] Re: V4 Standalone już w lipcu?

@Duracel, post #71

już w lipcu!
[#73] Re: V4 Standalone już w lipcu?

@recedent, post #72

A roku ktorego ?
[#74] Re: V4 Standalone już w lipcu?

@teh_KaiN, post #66

Cytowany wyrok jest błędny, bo zaprzecza ustawie i pozostałemu orzecznictwu.

Polecam lekturę odnośnego przepisu, na stronie sejmu łatwo sobie ściagnać.
[#75] Re: V4 Standalone już w lipcu?

@sanjyuubi, post #70

Vampire jako całość to już kwestia debaty...


Dokładnie.. .tym bardziej że chyba mało kogo to interesuje z praktycznego punktu widzenia.

Admini, proponuję dedykowany wątek na temat np.
Czy V4 standalone to emulator czy klon, i co praktycznie z tego wynika dla końcowego użytkownika...
[#76] Re: V4 Standalone już w lipcu?

@David, post #74

Idee i zasady będące podstawą jakiegokolwiek elementu programu komputerowego, w tym podstawą łączy, nie podlegają ochronie.

2. Nie wymaga zezwolenia uprawnionego:
(...)
obserwowanie, badanie i testowanie funkcjonowania programu komputerowego w celu poznania jego idei i zasad przez osobę posiadającą prawo korzystania z egzemplarza programu komputerowego, jeżeli, będąc do tych czynności upoważniona, dokonuje ona tego w trakcie wprowadzania, wyświetlania, stosowania, przekazywania lub przechowywania programu komputerowego;

Jeszcze raz - który zapis konkretnie zabrania nieinwazyjnego (nie wiążącego się z łamaniem zabezpieczeń) reverse engineeringu?
[#77] Re: V4 Standalone już w lipcu?

@abcdef, post #76

2. Nie wymaga zezwolenia uprawnionego:
(...)
2) obserwowanie, badanie i testowanie funkcjonowania programu komputerowego w celu poznania jego idei i zasad przez osobę posiadającą prawo korzystania z egzemplarza programu komputerowego, jeżeli, będąc do tych czynności upo- ważniona, dokonuje ona tego w trakcie wprowadzania, wyświetlania, stosowania, przekazywania lub przechowywania programu komputerowego
3) zwielokrotnianie kodu lub tłumaczenie jego formy w rozumieniu art. 74 ust. 4 pkt 1 i 2, jeżeli jest to niezbędne do uzyskania informacji koniecznych do osiągnięcia współdziałania niezależnie stworzonego programu komputerowego z innymi programami komputerowymi
(...)
3. Informacje, o których mowa w ust. 2 pkt 3, nie mogą być:
(...)
3) wykorzystane do rozwijania, wytwarzania lub wprowadzania do obrotu programu komputerowego o istotnie podobnej formie wyrażenia lub do innych czynności naruszających prawa autorskie.
[#78] Re: V4 Standalone już w lipcu?

@Dopuser, post #75

Czy V4 standalone to emulator czy klon, i co praktycznie z tego wynika dla końcowego użytkownika...
I tego określenia tutaj właśnie brakowało a ono idealnie oddaje istotę rzeczy! ok, racja
[#79] Re: V4 Standalone już w lipcu?

@Slepaq, post #34

Ok, mimo wszystko na WinUAE można uzyskać to samo... Cóż, tu znów kwestia gustu (a o nim ponoć się nie dyskutuje). Niewątpliwie emulacja programowa jest najtańszą opcją i to jest fakt bezdyskusyjny.
No to tak teoretycznie bo praktycznie emulatory zazwyczaj mają znacznie większy imput lag. WinUAE i tak jest dobrze skodowane i ten lag nie jest zbyt duży ale jednak jest.

Druga sprawa to synchronizacja obrazu która ba emulatorach jest zazwyczaj bolączką. I znów WinUAE pozwala uzyskać świetny efekt jak się dobrze skonfiguruje tryb 50Hz (+/- ileś setnych części Hz) ale ogólnie bywa to dość problematyczne a typowy użytkownik tego nie konfiguruje. Można oczywiście spartolić sprzęt też (tutaj przychodzi tragiczna implementacja scan doublerów z serii Indivision które gorzej działały niż emulator...) więc nie ma pewników. Jak to działa w Vampire to nie wiem.

Trzecia sprawa pobudzenie sceny Amigowej. Pisanie softu na emulator jest takie sobie fascynujące w przeciwieństwie prawdziwego sprzętu. Także pod tym względem taki sprzęt jest lepszy od UAE.
[#80] Re: V4 Standalone już w lipcu?

@mikecios, post #73

Dokładnie to samo pytanie ciśnie mi się na usta jeśli chodzi o "obiecanki-cacanki" z apollo-team... jakoś nigdy nie dotrzymali terminów, a mydlili oczu użytkowników. Zagorzali wyznawcy niwej wiary w Vampire mogą dalej się modlić do apollo-team... choć szkoda na to czasu i pieniędzy.
[#81] Re: V4 Standalone już w lipcu?

@PWS, post #80

Przecież to nie jest firma która non stop pracuje na 3 zmiany za wypłatę. Tylko projekt po godzinach.
Dla mnie to tłumaczy wszystko.
[#82] Re: V4 Standalone już w lipcu?

@recedent, post #72

już w lipcu!


Och, to cudownie, bo do końca lipca tylko kilka dni! OK
[#83] Re: V4 Standalone już w lipcu?

@WojtekX, post #81

No cóż, nawet jeśli firma jest jednoosobowa i mówi że coś zrobi na jutro to powinna brać za takie oświadczenia odpowiedzialność.
Ja nie doczekałem się core 3.0 do v2 od ponad półtora roku pomimo iświadczeń apollo-team że "już jest za rogiem"... vampire to niestety mydlenie oczu i granie na emocjach Amigowców... szkoda zachodu i kasy.
[#84] Re: V4 Standalone już w lipcu?

@David, post #77

Kończąc offtop o reverse engineeringu, zakaz obejmuje rozwijanie w oparciu o ust 2. pkt 3 czyli "zwielokrotnianie kodu lub tłumaczenie jego formy w rozumieniu art. 74 ust. 4 pkt 1 i 2 [...]" ale nie ust 2. pkt 2, który obejmuje nieinwazyjne "obserwowanie, badanie i testowanie funkcjonowania programu komputerowego w celu poznania jego idei i zasad [...]". Czyli można sobie obserwować, badać, robić notatki z tego jak działa program, by napisać lepszy zamiennik. Inaczej bardzo dużo komercyjnie powstającego softu byłoby wątpliwej legalności w Polsce. ;)
[#85] Re: V4 Standalone już w lipcu?

@teh_KaiN, post #84

Ja się tam upieram przy swojej interpretacji.

Ale to offtop, fakt, nie ma co drążyć!
[#86] Re: V4 Standalone już w lipcu?

@David, post #85

Przy kwestii ustawy o ochronie praw autorskich tez sie upierales, i tez nie miales racji... :)
[#87] Re: V4 Standalone już w lipcu?

@XoR, post #78

Czy V4 standalone to emulator czy klon, i co praktycznie z tego wynika dla końcowego użytkownika...
I tego określenia tutaj właśnie brakowało a ono idealnie oddaje istotę rzeczy!


OK Ja tylko przypomnę, że dzisiejsze piecyki to są właściwie wszystko klony, więc jesteśmy na prostej drodze do zdominowania rynku Amig. ok, racja
[#88] Re: V4 Standalone już w lipcu?

@XoR, post #79

To wszystko prawda, ale nie liczyłbym na znaczne pobudzenie sceny. By się tym bawić to trzeba najpierw mieć vampa ;) Poza tym ecs i aga to większe "wyzwanie" by zrobić demko wizualnie zapierające dech w piersi :)
[#89] Re: V4 Standalone już w lipcu?

@Dopuser, post #75

Nie, no błagam Cię... co trzeci wątek na forum dotyczy tego (albo kończy się dyskusją) co jest prawdziwą Amigą, a co nie jest Amigą, albo co jest emulatorem albo co nie jest emulatorem, albo co jest emulatorem sprzętowym a co programowym... i w konsekwencji co jest Amigą a co nie jest...

Ta kwestia jest już tak przedyskutowana, że każdy, kto tu przebywa ma ugruntowany pogląd niepodlegający zmianie... w sumie bardzo to przypomina obecną sytuację w polityce
[#90] Re: V4 Standalone już w lipcu?

@Duracel, post #89

A skończy się to tak, że ci co chcą to kupią a ci co nie chcą nie kupią :>
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem