2013-09-23 65 views
5

Tôi có hiểu nhầm điều gì đó ở đây không? 128kB nhỏ hơn 0xFFFFFF byte.

Trả lời

5

Thực tế là không gian địa chỉ của SNES lớn hơn nhiều so với số lượng địa chỉ thực tế không phải là vấn đề. Trên máy tính 64 bit, con trỏ đủ lớn để giải quyết 1.844674407 × 10 byte, tức là khoảng 10 tỷ GB. Tôi chưa bao giờ thấy bất kỳ máy tính nào có RAM nhiều, nhưng đó không phải là vấn đề. Một số địa chỉ không đề cập đến bất kỳ địa chỉ nào trong bộ nhớ.

Hy vọng điều này sẽ hữu ích!

+0

Tôi nghĩ điều này giúp tôi hiểu một phần câu hỏi của mình. Cảm ơn! Vấn đề là, trong bản đồ bộ nhớ SNES, địa chỉ này thực sự tương ứng với địa chỉ thực. Có phải đó chỉ là một phần nhất định của các địa chỉ này (128k trong số đó) là RAM không? Các loại bộ nhớ khác ngoài RAM là gì? (xin lỗi nếu tôi hoàn toàn không có ý nghĩa) – VJC1288

+0

Như đã đề cập ở liên kết này (http://romhack.wikia.com/wiki/SNES_ROM_layout), bộ nhớ bao gồm một số vùng * gương *, là các địa chỉ chuyển hướng đến các vị trí RAM khác . Điều này có nghĩa là các vùng bộ nhớ nhất định được tăng gấp đôi, làm cho các địa chỉ thường không hợp lệ thay vì chuyển hướng đến các vị trí hợp lệ. – templatetypedef

6

Được rồi, câu hỏi cũ, nhưng điều này vừa xuất hiện trong Google và tôi hoàn toàn có thể trả lời câu hỏi này.

Sự nhầm lẫn ở đây nằm ở sự khác biệt giữa RAM, ROM và không gian địa chỉ tổng của SNES. Mặc dù SNES chỉ có 128K RAM, nhưng chỉ có chỉ cần bộ nhớ dễ bay hơi và không tính đến không gian ROM. RAM làm việc được ánh xạ tới các ngân hàng 7E và 7F, mỗi 64K. VRAM là một 32K bộ nhớ dễ bay hơi khác, nhưng nó không thể truy cập được trong không gian địa chỉ tiêu chuẩn và cần được ghi vào thông qua thanh ghi đặc biệt.

Bản đồ ROM phổ biến nhất (được gọi là LoROM và HiROM trong cộng đồng) lập bản đồ hoặc 32K ngân hàng ở nửa trên của không gian địa chỉ trong mỗi ngân hàng hoặc toàn bộ 64K ngân hàng. "LoROM" ánh xạ 32K ngân hàng (00: 8000-00: FFFF, 01: 8000-01: FFFF, ..., 3F: 8000-3F: FFFF, được nhân đôi ở 80: 8000-BF: FFFF) trong khi HiROM bản đồ 64K ngân hàng (C0: 0000-C0: FFFF, C1: 0000: C1-FFFF, ... FF: 0000-FF: FFFF). Như đã đề cập trước đó, bản đồ RAM làm việc cho các ngân hàng 64K 7E và 7F. Tôi không phải là tất cả những gì quen thuộc với cách SRAM hoạt động nhưng bản đồ đến 70: 0000 iirc và được nhân đôi trong một số ngân hàng bổ sung trong khu vực 7X.

Chỉnh sửa: Lưu ý thêm, ROM tất nhiên chỉ đọc. Đó là nơi dữ liệu chương trình của bạn (đọc: trò chơi, hướng dẫn và tài sản của nó) được lưu trữ. Bất kỳ thứ gì cần được sửa đổi (dữ liệu nén cần được giải nén, dữ liệu mức, kẻ thù, số liệu thống kê của người chơi, tilemaps cho bất cứ thứ gì hiển thị trên các nền khác nhau, vv) sẽ được chuyển sang RAM (7E/7F) để xử lý. ROM là những gì được in trên chip trong hộp mực của bạn, trong khi RAM chỉ đơn giản là đầy dữ liệu rác mỗi khi hệ thống được bật; thực hành khá tiêu chuẩn để sử dụng một vòng lặp đơn giản để không ra RAM trong các bước khởi tạo của trò chơi.

Hy vọng xóa mọi thứ!