2013-09-23 27 views
5

Burada bir şeyi yanlış anlamış mıyım? 128kB, 0xFFFFFF bayttan daha küçüktür.

cevap

5

SNES adres alanının gerçek adres sayısından çok daha büyük olması sorun değil. 64-bit bir makinede, işaretçiler yaklaşık 10 milyar GB olan 1.844674407 × 10 bayt adrese yetecek kadar büyüktür. Bu kadar RAM'le hiç bilgisayar görmedim, ama bu sorun değil. Bazı adresler sadece hafızadaki adreslere başvurmaz.

Bu yardımcı olur umarız!

+0

Bu sorunun sorumu anlamama yardımcı olduğunu düşünüyorum. Teşekkürler! Sorun şu ki, SNES bellek haritasında bu adres gerçek adreslere karşılık geliyor. Bu adreslerin sadece bir kısmı (128k) RAM mi? RAM dışında diğer bellek türü nedir? (eğer tamamen anlamıyorum üzgünüm) – VJC1288

+0

Bu bağlantıda belirtildiği gibi (http://romhack.wikia.com/wiki/SNES_ROM_layout), bellek diğer RAM konumlarına yönlendiren adresleri olan birçok * ayna * bölgesi içerir. . Bu, belirli bellek bölgelerinin iki katına çıkarılması, normalde geçersiz olan adreslerin yerine geçerli konumlara yönlendirilmesi anlamına gelir. – templatetypedef

6

Pekala, eski soru, ama bu sadece Google'da ortaya çıktı ve bunu tamamen yanıtlayabiliyorum.

Buradaki karışıklık, RAM, ROM ve SNES'in toplam adres alanı arasındaki farka dayanmaktadır. SNES'in sadece 128K RAM'e sahip olduğu doğru olsa da, sadece geçici bellek ve ROM alanını dikkate almaz. Çalışma RAM'i, her biri 64K olan 7E ve 7F bankalarına eşlenir. VRAM başka bir 32K uçucu hafızadır, ancak standart adres alanı içinde erişilemez ve özel kayıtlar aracılığıyla yazılması gerekir.

En sık kullanılan ROM eşlemeleri (topluluk içinde LoROM ve HiROM olarak anılacaktır), her bir bankada adres alanının üst yarısında veya tam 64 K bankalarında 32 K bankalarını eşler. "LoROM", 32K bankalarını (00: 8000-00: FFFF, 01: 8000-01: FFFF, ..., 3F: 8000-3F: FFFF, 80: 8000-BF: FFFF) yansıtıyor. (C0: 0000-C0: FFFF, C1: 0000: C1-FFFF, ... FF: 0000-FF: FFFF). Daha önce de belirtildiği gibi, RAM çalışma haritaları 64K bankalarına 7E ve 7F. SRAM'in nasıl çalıştığını bilemeyen ama 70: 0000 iirc'e eşdeğer olan ve 7X bölgedeki birkaç ek bankada yansıtılmış olanların hepsi ben değilim.

Düzeltme: Diğer bir not olarak, ROM elbette okunur. Program verilerinizin (okuma: oyun, talimatları ve varlıkları) saklandığı yerdir. Değiştirilmesi gereken herhangi bir şey (sıkıştırılmış verilerin, sıkıştırılmış verilerin, seviye verilerinin, düşmanların, oyuncu istatistiklerinin, çeşitli arka planlar üzerinde ne tür görüntüler için yedekler, vb.) Işlenmek üzere RAM'e (7E/7F) aktarılır. RAM, kartuşlarınızdaki yongaların üzerine yazılırken, RAM her zaman sistem açıldığında çöp verileriyle doldurulur; Bir oyunun başlatma adımları sırasında RAM'i sıfırlamak için basit bir döngü kullanmak oldukça standart bir uygulamadır.

Umutları temizleyen bir şey!