Kwietnia 23, 2024, 13:26:05 *
Witamy, Gość. Zaloguj się lub zarejestruj.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności:
Nowa strona główna  : http://www.emunes.pl
Zapraszamy do testowania !

Chat: http://chat.emunes.pl
Galeria cartów: http://carts.emunes.pl
 
   Strona główna   Pomoc Zaloguj się Rejestracja  

Reklama
Strony: [1]
  Drukuj  
Autor Wątek: Nagrywanie gier na PEGASUSa - odsłona 2 (168-in-1 + złota 5, 4 i inne gry)  (Przeczytany 4051 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
Krzysiobal
Chorąży
***
Offline Offline

Wiadomości: 140



« : Września 30, 2015, 02:19:10 »


Temat nagrywania "dyskietek" do Pegasusa wraca co jakiś czas na forum jak bumerang i cieszy się ogromnym zainteresowaniem. Postanowiłem znów przybliżyć forumowiczom kolejny mój projekt z tej serii, a jest to już drugie podejście do tego tematu. Poprzednie, zaprezentowane w poniższym wątku:
http://www.elektroda.pl/rtvforum/topic2724225.html
miało kilka wad:
- obsługa jedynie mappera UNROM (co ograniczało ilość obsługiwanych gier)
- pojemność jedynie 512 KB, co pozwalało na nagranie 4 gier
- wybieranie gry za pomocą  zworek
- nagranie nowych gier wymaga wyjęcia kości pamięci, wsadzenia do programatora i nagrania.

Postanowiłem więc podejść do tematu raz jeszcze. Założenia były następujące:
- wykorzystanie układu CPLD zamiast 74XX - większa swoboda w typach obsługiwanych układów. Lubię układ CPLD Xilinx XC9572, mam tego pół szuflady, gdy chcemy współpracować z napięciami TTL to wymaga jedynie pojedynczego zasilania +5V, posiada wbrew pozorom sporo makroceli (72), obudowa łatwa w lutowaniu (PLCC32), stosunkowa duża ilośc koncówek (ok. 40).
- większa pamięc -> wykorzystałem kupioną kiedyś za grosze 4 megabajtową kość Am29LV320D. Wadą jest jej współpraca jedynie z poziomami napięć 3.3V co wymusiło wykorzystanie konwertera 74LVC245.
- nagrywanie gier w prostszy sposób.

W efekcie wymyśliłem coś takiego:


Realizacja nie była trudna, najbardziej bałem się o lutowanie układu pamięci Am29LV320D z uwagi na gęsty raster wyprowadzeń.
 

Poszło jak z płatka:


Programowanie układu
Programowanie kardridża odbywa się po włożeniu go do programatora mojego autostwa - MyKazzo (komunikacja z PC po USB).


Więcej szczegółów tu:
http://www.elektroda.pl/rtvforum/topic2761660.html

Nagranie 4 MB flasha zajmuje ok 700 sekund.

Co do obudowy to kiedyś kupiłem z 10 sztuk jakiegoś badziewia w rodzaju 999999-in-1 po 1zł/szt, właśnie po to aby mieć obudowy do kardridzy.

Układ CPLD w którym zapisane są mappery tuż po włączeniu zasilania umożliwia zaprogramowanie pamięci flash, a następnie `czeka na sygnał` określający, jaki mapper ma emulować (chwilowo dostepne są:
015 - mapper kadridża 168 in 1
071 - mapper camerica
232 - mapper quatro camerica
002 - mapper UNROM

Musiałem naskrobać trochę kodu w asemblerze 6502 aby wyświetlić tuż po włączeniu menu z listą gier do wyboru (obsługa PPU, joysticka).

Trudności
W zasadzie trudności nie było zbyt wiele. Chronologicznie:
- Problem z komunikacją z pamięcią Am29LV320D.
W początkowo zaprojektowanej PCB podpiąłem nogę pamięci !OE do GND a !WE do R/!W od konsoli. Niestety pamięć  nie przyjmowała rozkazów zapisu. Jak się potem okazało, gdy oba wejścia (!OE i !WE) są aktywne, pamięć nie przyjmuje rozkazów zapisu. Zmyliło mnie to, bo pamięci SRAM przy obu aktywnych wejściach pozwalają na zapis:
   
Stąd konieczność modyfikacji PCB za pomocą kabelka.

- Napisanie w VHDLu mappera do obsługi programowania pamięci
   

- Napisanie w asm 6502 menu wyboru gier (po 3 latach przerwy w pisaniu pod ten procek prawie wszystko zapomniałem)
   

Efekt końcowy
W jednym kardridżu udało się zmieścić najbardziej popularne gry (168 in 1, złota czwórka, złota 5, kilka inych gier codemasters i kilka innych gier unrom). Pełna lista gier:
168-in-1
Big Nose Freaks Out
Big Nose the Caveman
Fantastic Adv. of Dizzy BLUE
Micro Machines
Ultimate Stunman
Quattro Adventure
Quattro Arcade
Quattro Sports
Fantastic Adv. of Dizzy RED
Dizzy Adventurer
Duck Tales 1
Duck Tales 2
Prince of Persia
Rock Man 1



Uwaga: Osoby zainteresowane posiadaniem takiego kardrydża mogą zgłosić się do mnie za pomocą wiadomości prywatnej.

Na koniec mały filmik podsumowujący działanie:
https://youtu.be/C1uyC0tGr8k
Zapisane

Life is brutal, full of zasadzkas and sometimes kopas w dupas.
Krzysiobal
Chorąży
***
Offline Offline

Wiadomości: 140



« Odpowiedz #1 : Października 10, 2015, 14:24:05 »

Miło mi poinformować, że dodałem obsługę mappera MMC1 (gry z CHR-RAM bez SRAMu) oraz ANROM, więc do obsługiwanych gier można dodac m.in:
Mega Man 2
Robin Hood Prince of Thieves
Battle Toads

Układ mieści 4 MB (megabajty) gier więc można sobie skomponować składankę według potrzeb.

Zainteresowanych do zakupu zapraszam do kontaktu. Cena 80zł z wliczoną przesyłką.
« Ostatnia zmiana: Października 10, 2015, 14:25:55 wysłane przez Krzysiobal » Zapisane

Life is brutal, full of zasadzkas and sometimes kopas w dupas.
kokodin
Chorąży
***
Offline Offline

Wiadomości: 135


« Odpowiedz #2 : Października 23, 2015, 19:55:44 »

Wiem że pytanie jest nieco poza spektrum obecnie obsługiwanych mapperów, ponieważ opcja save jest głównie w mmc3, ale czy twój cart potrafi zgrać savy z gier np podobnie jak w everdrive dodatkową kombinacją klawiszy? Pracujesz nad czymś takim czy jest to poza możliwościami sprzętowymi lub zwyczajnie zbyt upierdliwe by to zaprogramować?
Zapisane
Krzysiobal
Chorąży
***
Offline Offline

Wiadomości: 140



« Odpowiedz #3 : Października 23, 2015, 20:11:34 »

W krzysiocarcie będzie taka opcja. W tym kardridżu jest to upierdliwe, bo aby wykrywać naciśnięcia klawiszy na joysticku trzeba monitorować szynę adresową cpu w poszukiwaniu odczytów/zapisów do $4016/$4017, a to z  kolei wymaga pełnego dekodowania adresu czyli pociągnięcia wszystkich linii adresowych a14-a0 do cpld. Na krzyciocarcie wszystkie linie oczywiście będą pociągnięte bo będe chciał obsługiwać wszystkie mappery, tutaj nie gdyż w założeniach była obsługa tylko 168-in-1 oraz gier codemasters. Potem rzutem na taśmę dodałem obsługę MMC1 gdyż w zaprojektowanych zasobach sprzętowych jego obsługa była możliwa. Niedawno dodałem obssługę NROM i CNROM.

Tutaj pełna lista obsługiwanych na daną chwilę gier:
http://www.felinusz.elektroda.eu/
Zapisane

Life is brutal, full of zasadzkas and sometimes kopas w dupas.
80sFREAK
Hardware freak
Szeregowy
*
Offline Offline

Wiadomości: 2


« Odpowiedz #4 : Października 24, 2015, 15:20:47 »

Hi all and sorry for posting in english.  zawstydzony

Great project for budget multicart. Krzysiobal , i have a question - how do you match sides on pcb for your proto? I do print out both sides on the same sheet, fold and laminate after, but still 0.3-0.5mm shift between top and bottm layout.

Thanks in advance.
Zapisane
Krzysiobal
Chorąży
***
Offline Offline

Wiadomości: 140



« Odpowiedz #5 : Października 24, 2015, 16:37:53 »

I print on two diffrent sheets, then match them against the light (turning on board dimension - rectangle over the whole board on both layers makes it very easy) and stapple them with stapples , then I insert between them 2 layer pcb and put into laminator. Everything is perfect.
Zapisane

Life is brutal, full of zasadzkas and sometimes kopas w dupas.
80sFREAK
Hardware freak
Szeregowy
*
Offline Offline

Wiadomości: 2


« Odpowiedz #6 : Października 24, 2015, 17:25:03 »

Ah, okay, and what sort of paper do you use? I use fax paper - perfect for single side, but i think a bit thin for double side.
Zapisane
fixxxer1
Kapral
**
Offline Offline

Wiadomości: 64


« Odpowiedz #7 : Listopada 08, 2015, 10:30:09 »

Czy jest możliwe uruchomienie Wonderland Dizzy na Twoim carcie?
http://wonderlanddizzy.com/
Zapisane
Krzysiobal
Chorąży
***
Offline Offline

Wiadomości: 140



« Odpowiedz #8 : Listopada 09, 2015, 12:49:51 »

Tak!
Zapisane

Life is brutal, full of zasadzkas and sometimes kopas w dupas.
Strony: [1]
  Drukuj  
 
Skocz do:  

Działa na MySQL Działa na PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC Prawidłowy XHTML 1.0! Prawidłowy CSS!
Strona wygenerowana w 0.069 sekund z 18 zapytaniami.