Флеш картридж для dendy

Флеш картридж для dendy

У мене є NES (Nintendo Entertainment System) в дуже хорошому стані. На жаль, у мене небагато ігор, а деякі досить важко знайти (наприклад: Bubble Bubble). Тому вирішив поколупатися в картриджі, щоб навчитися самому записувати на нього софт на свій вибір, будь це гри, демки, самопальні гри або можливо, коли-небудь, мої власні програми.

Флеш картридж для dendy

Я використовував два флеш-чіпа AT49F002 (256K). Порушували я їх універсальним eprom-програматором. Чіпи і сокети такі товсті, що я не зміг закрити картридж. Тому я прорізав отвір в корпусі. Таким способом буде простіше замінити чіпи (не треба буде відкривати картридж).

Існує багато різних чіпів-мапперов, і деякі з них дуже складні. Маппер в моєму картриджі - MMC1 від Nintendo. Тут є трохи документації по ньому: mmc1.txt.

Так як я хотів пограти в Bubble Bobble, а ця гра використовує MMC1, то довелося використовувати картридж гри Motor City Patrol який так само використовує MMC1.

У картриджі також є чіп захисту (CIC). Чіп CIC з'єднується з таким же чіпом всередині приставки. Якщо з'єднання успішно, то чіп приставки перестає виконувати постійний скидання і гра запуститися. Я просто залишив чіп на своєму місці.

Я вибрав флеш-пам'ять Atmel AT49F0002 (256K) тому що у мене завалялося трохи. Контакти ромів від Nintendo і моєї флеш-пам'яті розрізняються. Довелося вирізати доріжки на платі і підпаяти трохи проводів. На щастя, було небагато відмінностей. Тут документ, з якого я дізнався терморегулятори ромів від Nintendo: NES_ROM_Pinouts.txt.
А тут інший документ, в якому я знайшов терморегулятори маппера MMC1: rom.txt.

В інтернеті, зазвичай роми поширюють в форматі ".nes". Файл ".nes" містить дані з двох ромів картриджа (PRG і CHR) і заголовок з позначенням використаного маппера, типу перенаправлення, і розміри ромів. Мені знадобився інструмент для вилучення цих двох ромів, який буде працювати під Linux, тому я написав свій власний.

Я написав 3 простих інструменту: readnes, nesgg і patchnes.
Вихідні тексти на C: nesutils-1.0.tar.gz
Вихідні тексти на C + бінарники DOS: nesutils-1.0.rar

/ Readnes rom.nes [num repeats prg] [num repeats chr]

readnes зчитує заголовок .nes, пише використаний маппер, міррорінг, пише кількість банків prg і chr і створює 2 файли: один з даними рома PRG і інший файл, який містить дані CHR.

Вміст рома PRG або CHR може бути записано в файл PRG або CHR більше одного разу. Для мене це було корисно коли треба було записати 128К-гру в 256К-картридж. Через способу використання MMC1, лінія A14 змінювалася і зчитувалися непрограммірованних дані. Після повторення однакових даних по 2 рази в PRG стан лінії A14 перестало бути важливим.

приклад:
# 036; ./readnes BUBBLE.NES 2 1
File length: 262288 Bytes
NES PRG: 08 CHR: 10 MAPPER: 11 44
Nintendo MMC1
Flags: 01
V
PRG 8 pages of 16kb (131072 bytes)
CHR 16 pages of 8kb (131072 bytes)
End at 262160
Remaining bytes: 128
BUBBLE BOBBLE From MINDRAPE and EFX

Writing BUBBLE.prg
.
Writing BUBBLE.chr
..
Все, що залишилося зробити - це записати .prg і .chr в Flash / ROM.

Щоб прошити флешки, я використовую старий універсальний програматор від xeltek. Можливо купити універсальний програматор з E-bay приблизно за # 036; 50. Але можливо зібрати і свій програматор, так як в даташітах на флешки написано як їх прошити.

Тут ми бачимо SL-ROM-6 pcb від картриджа Motor City Patrol. Я замінив роми двома 32-піновим сокетами. Я також змінив плату таким чином, щоб терморегулятори сокетов і флешок AT49F002 збіглися. Це важкувато побачити на картинці, але чіпи насправді в сокетах.

Флеш картридж для dendy

Ось деякі фото моїх картриджів, запрограмованих і працюють:

Флеш картридж для dendy
Флеш картридж для dendy

Довелося вирізати більше доріжок, щоб перенаправити сигнали. Фото проводки:

Флеш картридж для dendy

Час можна прикинути з тактової частоти приставки

Плис повільніше ніж логіка працює, але її можна використовувати, інше питання схем складних мапперов не існує, їх зазвичай самі ті хто робить флешки придумує виходячи із загальновідомих даних, звідти трабли з сумісністю

немає єдиного картриджа - немає флешки

практично це тому немає для супернінтендо флеш-картриджа з підтримкою чіпів - там теж в картриджі свій контролер і логіка стоїть, як що зроблено відомо погано, ніхто відтворювати сам не стане, а робити флешку на вже наявних картриджах не вигідно - витрати великі, а совсестімость маленька

завжди все йдуть за найменшим опором, а тут воно досить велике, а вигода маленька - тому все так як воно є