Super Mario Bros đã viết ngôn ngữ lập trình nào? [đóng cửa]


65

Super Mario Bros. chắc chắn là trò chơi điện tử nổi tiếng nhất được tạo ra, bán được 40,23 triệu bản. http://en.wikipedia.org/wiki/List_of_best-selling_video_games

Nó được viết bằng ngôn ngữ lập trình nào? Có ai có một số tài liệu tham khảo mã gốc?


7
Tôi có cảm giác rất nhiều trò chơi NES cũ được viết bằng cách lắp ráp cụ thể bằng máy.
meagar


7
Không phải là một bản sao, vì cái này yêu cầu các mẫu mã cụ thể từ một trò chơi cụ thể.
Tấn

5
Tôi không thấy giá trị của việc có nhiều "Ngôn ngữ X được viết bằng ngôn ngữ nào?" các câu hỏi, bất kể X đáng chú ý như thế nào, trừ khi nó đáng chú ý vì nền tảng phát triển. Ngoài ra, nó yêu cầu các mẫu mã cụ thể của trò chơi vẫn thuộc bản quyền (và vẫn đang được bán) mà không có sẵn nguồn cố ý.

3
@Toad: Có, nhưng bạn thường không có quyền đăng nó trực tuyến hoặc tải xuống một bản sao (ngay cả khi bạn tự sở hữu trò chơi) hoặc tạo các tác phẩm phái sinh dựa trên việc đọc mã của riêng bạn.

Câu trả lời:


76

Bộ lắp ráp 6502

Đây là một trang diễn đàn về việc hack ROM. http://forums.selectbutton.net/viewtopic.php?t=26956&sid=1a883209e1ba63877bcd58c007bb63ae

Nó nên chứa bất kỳ tài liệu tham khảo mã nào bạn cần là tốt.

Một vài bài viết ở dưới đó có một liên kết đến một tệp zip chứa các mục này cần thiết để chỉnh sửa / hack trò chơi.

  • ca65 - trình biên dịch lắp ráp 6502 từ http://www.cc65.org/
  • ld65 - một trình liên kết 6502 từ http://www.cc65.org/
  • smbdis.asm - một sự tháo gỡ toàn diện của Super Mario Bros.
  • smb.chr - Đồ họa Super Mario Bros. (dữ liệu ROM nhân vật)
  • smb.hdr - Tiêu đề ROM Super Mario Bros. (tiêu đề iNES)
  • MAKESMB.BAT - một tệp bó tôi đã tạo để tự động hóa quá trình biên dịch.
  • 6502jsm.doc - tóm tắt các hướng dẫn 6502.

6
Wow, câu trả lời hoàn hảo! Kudos
DFectuoso

31
Tôi bối rối trước câu trả lời này. Về cơ bản, bạn đang chỉ vào một tệp thực thi (ROM) và tuyên bố rằng nó được viết bằng cách lắp ráp ... bởi vì nó đã được tháo rời. Đó là một thực thi; tất nhiên nó có thể được tháo rời . Theo logic này, mọi chương trình C / C ++ từng được viết thực sự được viết theo cụm. Để chứng minh rằng điều này được viết trong lắp ráp, bạn cần phải thực sự chứng minh rằng Nintendo đã viết nó trong lắp ráp, không phải là bạn có thể tháo rời nhị phân thực thi.
Nicol Bolas

52

Hầu như tất cả các trò chơi NES đều được viết bằng tay trong hội đồng 6502, giống như được sử dụng trong Commodore 64, Apple] [e, v.v ... Rất ít trò chơi được viết bằng C có tiếng là chậm khủng khiếp vì NES chỉ có 2Mhz và có 2Kb RAM trên bo mạch (với cửa sổ 8Kb để hộp mực vá thêm). Việc lắp ráp cẩn thận được thiết kế để tận dụng tối đa kiến ​​trúc đặc biệt của NES hiệu quả hơn nhiều.

Dừng lại và suy nghĩ về điều đó ... các trò chơi như Super Mario Bros 3 và Kirby's Adventure chạy trên 2Mhz. So sánh mức độ phong phú của chúng với các trò chơi ngày nay nuốt chửng gigahertz và hàng trăm megabyte RAM ...


3
@Lohoris Tôi vừa đăng nhập để bình chọn nhận xét đó. Và thật ngạc nhiên, tôi đã làm
NSAddict

5
Ví dụ về một trò chơi NES được cấp phép được viết bằng C là gì?
tgies

1
[cần dẫn nguồn]
Almo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.