Marca 29, 2024, 07:03:17 *
Witamy, Gość. Zaloguj się lub zarejestruj.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności:
Nowa strona główna  : http://www.emunes.pl
Zapraszamy do testowania !

Chat: http://chat.emunes.pl
Galeria cartów: http://carts.emunes.pl
 
   Strona główna   Pomoc Zaloguj się Rejestracja  

Reklama
Strony: [1]
  Drukuj  
Autor Wątek: Poszukuję ludzi do projektu emulatora  (Przeczytany 1982 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
CodAsm
Szeregowy
*
Offline Offline

Wiadomości: 49


« : Grudnia 08, 2013, 13:44:58 »

Witam

Jestem autorem symulatora 6502 (asm, dasm, sim) napisanego w C++ prezentowanego na forum emunes. Chciałem zwrócić się z pytaniem czy są na forum programiści C++, których zechcieliby stworzyć team i podjąć się napisania emulatora nes w C++ obiektowo. Jeżeli chodzi o mnie bardzo lubię pracę koncepcyjną i chciałbym się wkręcić w jakiś projekt. Na początek proponowałbym wziąć się tylko i wyłącznie za mapper NROM (8K CH + 32K PR), ponieważ samo to zadanie będzie już karkołomne. Projektowanie zaczęlibyśmy od samej góry np.:

Kod:
OdczytajINES();
ObliczonyOffset = ZnajdzPierwszyOpkod();
PC = ObliczonyOffset;
while(!Koniec)
{
  Opkod = Pamiec[PC++]
  AnalizujOpkod();
  WykonajCyklOpkodu();
  if(Przerwanie)
    WykonajPrzerwanie();
  if(Koniec) break;
}

Być może moduł CPU z mojego symulatora przydałby się (po delikatnej refaktoryzacji, jeżeli mam być szczery). Jego zaletą jest fakt, że zaimplementowałem go na poziomie cykli rozkazowych, zaś minusem jest brak przejrzystej implementacji przerwań (w symulatorze je olałem).

Celem projektu jest
*Dobra zabawa i zrobienie czegoś fajnego
*Edukacja z zakresu działania komputera (nie koniecznie dużo-bitowego Smile) i programowania
*Znalezienie osób o podobnych zainteresowaniach

Na koniec chciałbym zaznaczyć, że do projektu chcę osoby, które trochę już programują w C/C++ i mają pojęcie na temat architektury komputerów, które dadzą się ponieść radości projektowania i programowania. Jako narzędzie proponowałbym Visual Studio, ponieważ z autopsji wiem, że dobrze ogarnia się w nim większe projekty.

Pozdrawiam.
« Ostatnia zmiana: Grudnia 19, 2013, 22:27:17 wysłane przez CodAsm » Zapisane
Krzysiobal
Chorąży
***
Offline Offline

Wiadomości: 140



« Odpowiedz #1 : Stycznia 04, 2014, 01:18:03 »

Skąd jesteś? Pomysł fajny, ale raczej tylko ze względów hobbystycznych, taki emulator potem i tak pójdzie do szafy, bo nie będzie obsługiwał gier w tak dobrym stopniu, jak konkurencyjne rozwiązania.
Zapisane

Life is brutal, full of zasadzkas and sometimes kopas w dupas.
Ryan
Kapitan
****
Offline Offline

Wiadomości: 465


« Odpowiedz #2 : Stycznia 04, 2014, 03:40:49 »

Bardzo fajny pomysł z tym emulatorem Smile Z chęcią pomogę o ile będę mógł, choć języki wyższego programowania są mi dalece obce, mogę pogadać ze znajomymi ze sceny C64, może ktoś byłby chętny Wink
Zapisane
CodAsm
Szeregowy
*
Offline Offline

Wiadomości: 49


« Odpowiedz #3 : Stycznia 06, 2014, 12:05:38 »

Do Krzysiobal:
1. Aktualnie stacjonuje w Warszawie.
2. Taki emulator nie musi obsługiwać wszystkich gier (pisałem wcześniej o grach NROM). Problem nie jest w samej ilości kodu implementującego mappery, ale takim zaprojektowaniu go, by można było te mappery ewentualnie dopisywać, jednak to już na wyrost, bo na początek trzeba zaimplementować sam silnik emulatora.

Do Ryan:
1. Fajnie byłoby gdyby w kilka osób przymierzyć się do tego projektu i popróbować. Podkreślam, że na tym etapie próbowanie jest tu kluczowym słowem.
2. Myślę, że coś znalazłoby się i dla Ciebie, projekt to nie tylko kodowanie, ale też projektowanie i rozkmina, kiedy coś już powstanie trzeba kogoś do pisania testowego kodu w asemblerze, który miałby "wysypać" emulator. Poza tym wyszukiwanie informacji o procesorze 6502 i sprawdzanie czy jest wystarczająco szczegółowa dla programisty to też ciężka robota.

Jak sobie wyobrażam początek pracy? Trzeba byłoby nam jakiegoś forum (emunes mamy) i wątku, w którym każdy wziąłby sobie jakieś zadanie na początek i sprawdził czy mu podoła.

Jeżeli chodzi o techniczne sprawy to mam ten projekt symulatora w Visual Studio, możeby wziąć pod lupę silnik CPU i zastanowić się czy da się go jakoś poprawić i czy w ogóle się przyda (refaktoryzacja na pewno dobrze by mu zrobiła, ponieważ jest w nim kilka zgrzytów, o których pisać można długo). Jeżeli uznamy, że nie da się go adaptować, to można go przepisać od nowa, jeżeli natomiast uznamy, że jest ok, to trzeba będzie dopisać mu kod obsługi NMI i BRK oraz osadzić go w module wyższego poziomu, który będzie obsługiwać najważniejsze części emulatora (CPU, PPU, APU, Timing).

Inna ważna rzecz na początku to opracować algorytm jak wyświetlić piksel, skanlinię oraz klatkę na NES. Myślę, że cały silnik opierałby się właśnie na renderingu pikseli z odpowiednim Timingiem. Skoro rendering to trzeba wybrać interfejs graficzny OpenGL czy SDL, czy coś może jeszcze innego. Jeżeli chodzi o mnie to znam nieco OpenGL i SDL'a liznąłem nieco. W OpenGL do renderingu pikseli klatki można użyć np. Pixel Buffer Object, jednak fajnie byłoby, żeby ktoś kompetentny w OpenGL pomógł mi to rozkminić.

Żeby się nie rozpisywać przedwcześnie to będzie na tyle.
« Ostatnia zmiana: Stycznia 18, 2014, 11:29:59 wysłane przez CodAsm » Zapisane
Krzysiobal
Chorąży
***
Offline Offline

Wiadomości: 140



« Odpowiedz #4 : Marca 13, 2014, 01:49:31 »

Tez jestem z Wawy i sam chciałem kiedyś coś podobnego stworzyć.
Jeśli już ma to być super hobbystyczne, to może wszystko pisać samemu, włącznie z emulatorem procesora 6502. Tylko trzeba to zrobić dokładnie, aby wykonanie każdego rozkazu trwało tyle, ile w sprzęcie.
Zapisane

Life is brutal, full of zasadzkas and sometimes kopas w dupas.
Strony: [1]
  Drukuj  
 
Skocz do:  

Działa na MySQL Działa na PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC Prawidłowy XHTML 1.0! Prawidłowy CSS!
Strona wygenerowana w 0.038 sekund z 19 zapytaniami.