W jakim języku programowania napisano Super Mario Bros.? [Zamknięte]

65

Super Mario Bros. jest zdecydowanie najbardziej znaną grą wideo stworzoną do tej pory, sprzedającą 40,23 mln egzemplarzy. http://en.wikipedia.org/wiki/List_of_best-selling_video_games

W jakim języku programowania został napisany? Czy ktoś ma jakieś odniesienia do oryginalnego kodu?

Luca Matteis
źródło
7
Mam wrażenie, że wiele starych gier NES zostało napisanych w asemblerze specyficznym dla maszyny.
Meagar
7
Nie duplikat, ponieważ ten prosi o określone próbki kodu z konkretnej gry.
AttackingHobo
5
Nie widzę wartości w wielu „W jakim języku napisano X?” pytania, bez względu na to, jak ważny jest X, chyba że był zauważalny ze względu na platformę programistyczną. Prosi także o podanie konkretnych próbek kodu gry, która nadal jest objęta prawem autorskim (i wciąż jest sprzedawana) bez zamierzonej dostępności źródła.
3
@ Załaduj: Tak, ale generalnie nie masz prawa publikować go w Internecie, ani pobierać kopii (nawet jeśli sam jesteś właścicielem gry), ani tworzyć dzieł pochodnych na podstawie własnego odczytu kodu.

Odpowiedzi:

76

6502 Asembler

Oto strona forum na temat hakowania ROM. http://forums.selectbutton.net/viewtopic.php?t=26956&sid=1a883209e1ba63877bcd58c007bb63ae

Powinien także zawierać potrzebne odniesienia do kodu.

Kilka postów poniżej zawiera link do pliku zip, który zawiera elementy potrzebne do edycji / zhakowania gry.

  • ca65 - kompilator asemblera 6502 z http://www.cc65.org/
  • ld65 - linker 6502 z http://www.cc65.org/
  • smbdis.asm - kompleksowy demontaż Super Mario Bros.
  • smb.chr - grafika Super Mario Bros. (dane ROM postaci)
  • smb.hdr - nagłówek ROM Super Mario Bros. (nagłówek iNES)
  • MAKESMB.BAT - utworzony przeze mnie plik wsadowy, który automatyzuje proces kompilacji.
  • 6502jsm.doc - podsumowanie instrukcji 6502.
AttackingHobo
źródło
6
Wow, idealna odpowiedź! Kudos
DFectuoso
31
Jestem zaskoczony tą odpowiedzią. Zasadniczo wskazujesz na plik wykonywalny (ROM) i twierdzisz, że został napisany w asemblerze ... ponieważ został zdemontowany. To plik wykonywalny; oczywiście można go zdemontować . Zgodnie z tą logiką, każdy program C / C ++, który kiedykolwiek napisano, został napisany w asemblerze. Aby udowodnić, że zostało to napisane w asemblerze, musisz pokazać, że Nintendo napisało to w asemblerze, a nie, że możesz zdemontować wykonywalny plik binarny.
Nicol Bolas,
52

Prawie wszystkie gry NES zostały napisane ręcznie w asemblerze 6502, tak samo jak w Commodore 64, Apple] [e itp.). Niewiele z tych, które zostały napisane w C, cieszyło się opinią bardzo powolnego, ponieważ NES ma tylko 2 MHz i ma 2Kb wbudowanej pamięci RAM (z oknem 8Kb dla kasety, aby łatać więcej w). Staranny montaż zaprojektowany w celu pełnego wykorzystania osobliwej architektury NES był znacznie bardziej skuteczny.

Zatrzymaj się i pomyśl o tym ... gry takie jak Super Mario Bros 3 i Kirby's Adventure działały na częstotliwości 2 MHz. Porównaj ich bogactwo z dzisiejszymi grami, które połykają gigaherce i setki megabajtów pamięci RAM ...

zły pomysł
źródło
3
@Lohoris Właśnie zalogowałem się, aby zagłosować za tym komentarzem. I ku mojemu zdziwieniu już to zrobiłem
NSAddict,
5
Jaki jest przykład licencjonowanej gry NES napisanej w C?
tgies
1
[potrzebne źródło]
Almo