Nie wiem, w jaki sposób mógłbym zacząć pisać swój własny emulator konsoli Nes w javie :/ Macie może jakieś linki do open-sourcowych emulatorów tejże konsoli? Przeszukałem CHYBA cały internet i nic konkretnego nie mogę znaleźć
Jak się zabrać do napisania emulatora NES'a?
Rozpoczęty przez
derwenoper-63801cbb72
, 24 lip 2014 20:21
8 odpowiedzi w tym temacie
#1
Napisano 24 lipca 2014 - 20:21
#2
Napisano 24 lipca 2014 - 21:13
Jak już napisałeś te setki aplikacji / gier w 5 różnych językach i jesteś guru od Assemblera i znasz budowę procesorów, układów I/O, etc. To możesz pisać
Jakoś nie wyobrażam sobie pisania emulatora w Javie, do tego ANSI C + Assembler i pod tym kątem szukaj informacji. Są też gotowe komponenty, emulatory CPU i inne ale żeby to wszystko poskładać dodać swoje procedury do obsługi innych urządzeń ehh no to sorry musiałbyś być jakimś guru
#3
Napisano 24 lipca 2014 - 21:21
Słabo szukasz, jest tego sporo np.: FakeNES GT - Browse Files at SourceForge.net
Ale chyba troche przeceniasz swoje możliwości, pisanie emulatora konsoli to gigantyczna praca. Przed wszystkim musisz znać perfekcyjnie hardware konsoli, wszystkie rejestry, zachowania, przerwania, bugi hardware'owe, obsłuhę sprite, playfield, tryby graficzne, układ generujący dźwięk, no i oczywiście sam procesor. Chcesz się w to bawić to zacznij od napisania własnego emulatora cpu od nes czyli 6502, oczywiście wraz ze wszystkimi nieudokumentowanymi oficjalnie opcode(masa geir korzysta z tego, zresztą tak jak w c64, gdzie niektóre efekty są możliwe właściwie tylko przy użyciu takich instrukcji). Ale przed wszystkim zacznij od stworzenia jakiegoś prostego programu pod nes, żeby zapoznać się z architekturą.
Ale chyba troche przeceniasz swoje możliwości, pisanie emulatora konsoli to gigantyczna praca. Przed wszystkim musisz znać perfekcyjnie hardware konsoli, wszystkie rejestry, zachowania, przerwania, bugi hardware'owe, obsłuhę sprite, playfield, tryby graficzne, układ generujący dźwięk, no i oczywiście sam procesor. Chcesz się w to bawić to zacznij od napisania własnego emulatora cpu od nes czyli 6502, oczywiście wraz ze wszystkimi nieudokumentowanymi oficjalnie opcode(masa geir korzysta z tego, zresztą tak jak w c64, gdzie niektóre efekty są możliwe właściwie tylko przy użyciu takich instrukcji). Ale przed wszystkim zacznij od stworzenia jakiegoś prostego programu pod nes, żeby zapoznać się z architekturą.
#4
Napisano 24 lipca 2014 - 22:28
Dzięki za szybkie odpowiedzi
Chyba dam sobie z tym spokój.. zdaje mi się, że prędzej napisze gta 3 niż ten emulator :/
#6
Napisano 27 lipca 2014 - 21:19
Po to, żeby się czegoś nauczyćPo co pisać coś co istnieje ?
[url=http://openemu.org]OpenEmu - Multiple Video Game System[/url]
#7
Napisano 26 sierpnia 2014 - 17:53
A ja Cię zachęcam do spróbowania napisania czegoś pod NES/Pegasus. Jeżeli zamierzasz zając się kiedyś programowaniem urządzeń embedded, urządzeń opartych na mikrokontrolerach to taki maraton na prawdę dużo Ci da. Dla mnie C-64, Pegasus to okres gdy uczyłem się programować, do tej pory chętnie wracam do lat swojej młodości realizując sobie projekty po pracy, tak dla siebie. W lutym pisałem sobie soft, który wyciąga grafikę z ROM'u dla NES/Pegasus, wyświetla ją, umożliwia edycję i zapis. Fajnie jest rozgryzać sposób w jaki zorganizowali przetrzymywanie grafiki (sprite'ów), w jaki sposób wyświetlają, potem spróbować coś zmodyfikować w jakiejś grze.
Jest dekompilator kodu z MOS6502, także można sobie wyciąć z ROM'u binaria zawierające program, zdekompilować go, obejrzeć sobie kod w asemblerze, zobaczyć jak wygląda sekwencja startowa, jak podnoszą układ grafiki itp. Są także narzędzia na PC do modyfikacji danych graficznych z ROM oraz tworzenie nowej (w tym generator tablic zawierających tzw. tales z których składa się obraz). Z resztą... sam zobaczysz.
#8
Napisano 27 sierpnia 2014 - 14:39
Wszystko pięknie i ładnie, tylko gdzie ja biedny mam zacząć? Zająłem się ostro programowaniem obiektowym, więc zrobienie czegoś takiego dla mnie jest praktycznie niewykonalne bez jakichkolwiek podpowiedzi :/
#9
Napisano 30 sierpnia 2014 - 20:03
Gdzie zacząć, w dobie Google to akurat nie problem, choćby tu: emu-docs: NES
Dalej to już Twoje samozaparcie, wiedza i chęć jej zdobycia. Nie wiem jak bardzo doświadczony jesteś w C czy asemblerze, ale bez tych języków będzie Ci ciężko. Więc może warto zacząć od podstaw C i asemblera MOS 6502? Tak jak Ci koledzy pisali wcześniej, musisz także zapoznać się z architekturą konsoli, bez tego ani rusz.
Dalej to już Twoje samozaparcie, wiedza i chęć jej zdobycia. Nie wiem jak bardzo doświadczony jesteś w C czy asemblerze, ale bez tych języków będzie Ci ciężko. Więc może warto zacząć od podstaw C i asemblera MOS 6502? Tak jak Ci koledzy pisali wcześniej, musisz także zapoznać się z architekturą konsoli, bez tego ani rusz.
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych