Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

Jak się zabrać do napisania emulatora NES'a?


  • Zaloguj się, aby dodać odpowiedź
8 odpowiedzi w tym temacie

#1 derwenoper-63801cbb72

derwenoper-63801cbb72
  • 237 postów
  • Płeć:

Napisano 24 lipca 2014 - 20:21

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źć :(

#2 macsurf

macsurf
  • 104 postów
  • SkądKołobrzeg

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 robgrab

robgrab
  • 1 384 postów
  • SkądWarszawa

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ą.

#4 derwenoper-63801cbb72

derwenoper-63801cbb72
  • 237 postów
  • Płeć:

Napisano 24 lipca 2014 - 22:28

Dzięki za szybkie odpowiedzi :D Chyba dam sobie z tym spokój.. zdaje mi się, że prędzej napisze gta 3 niż ten emulator :/

#5 Paf

Paf
  • 8 094 postów

Napisano 26 lipca 2014 - 12:16

Po co pisać coś co istnieje ?
OpenEmu - Multiple Video Game System

#6 derwenoper-63801cbb72

derwenoper-63801cbb72
  • 237 postów
  • Płeć:

Napisano 27 lipca 2014 - 21:19

Po co pisać coś co istnieje ?
[url=http://openemu.org]OpenEmu - Multiple Video Game System[/url]

Po to, żeby się czegoś nauczyć :)

#7 tomasz_konrad

tomasz_konrad
  • 165 postów
  • SkądGdańsk / Kielce

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 derwenoper-63801cbb72

derwenoper-63801cbb72
  • 237 postów
  • Płeć:

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 tomasz_konrad

tomasz_konrad
  • 165 postów
  • SkądGdańsk / Kielce

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.




Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych