Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trArcade Sistemler ve Oyun KonsollarıArcade Sistemler (Moderatör: yavuzg)NEO-GEO MVS Mini Bartop Kabin Projesi
Sayfa: 1 ... 15 16 [17] 18 19   Aşağı git
Yazdır
Gönderen Konu: NEO-GEO MVS Mini Bartop Kabin Projesi  (Okunma Sayısı 267061 defa)
0 Üye ve 2 Ziyaretçi konuyu incelemekte.
Cherokeex
Üye
**
Mesaj Sayısı: 34


Üyelik Bilgileri
« Yanıtla #240 : Aralık 07, 2016, 14:20:33 ÖS »

Pic le yapildigini biliyorum ama source filan yok.
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #241 : Aralık 07, 2016, 14:31:57 ÖS »

Game Select kısmı çok basit. 138in1 kartuşun 8 bitlik adresleme hatlarına binary olarak olarak seçilen oyunun numrasını set edip slot'u reset ediyorum sadece.

PIC Kodu aşağıda. Ancak OLED kütüphanesi ticari bir başka proje için yazıldığından burada doğrudan paylaşamıyorum. Ama zaten o kısımda özel birşey yok. Ana kodda ekrana yazı yazan fonksiyonlar belli. O kısımları kendi LCD rutinlerinizle replace ederek aynısını yapabilirsiniz.

Kod:
// MAIN CODE
void intHandlerH();
void intHandlerL();

// VECTORS ...
#pragma code intvectors = 0x0008
void InterruptVectorHigh(void)
{
_asm
GOTO intHandlerH
NOP
NOP
NOP
NOP
NOP
NOP
GOTO intHandlerL
_endasm
}

#pragma code

unsigned char penc,enc,enc_flag=0;
unsigned char game=0;
unsigned int enc_pos=0;

unsigned char pA, pB;

#pragma interrupt intHandlerH
void intHandlerH()
{   
unsigned char t;

if (PIR2bits.TMR3IF)
{
PIR2bits.TMR3IF=0;
TMR3H=241; // Period 1ms ...

// Check Encoder ...
if ((BTN_B!=0) && (pA==0))
{
if (BTN_A==0) game++; else game--;

if (game==255) game=137;
if (game==138) game=0;
enc_flag=1;
}
else
if ((BTN_B==0) && (pA!=0))
{
if (BTN_A==0) game--; else game++;

if (game==255) game=137;
if (game==138) game=0;
enc_flag=1;
}

if (BTN_B) pA=1; else pA=0;
}
}

const rom char * rom Games[]=
{
  "3 Count Bout",
  "Aero Fighters 2",
  "Aero Fighters 3",
  "Alpha Mission 2",
  "Andro Dunos",
  "Art of Fight. 2",
  "Art of Fight. 3",
  "Bang Bead",
  "Baseball Start 2",
  "Blazing Star",
  "Blue's Journey",
  "Panic Bomber",
  "Breakers",
  "Breakers Revenge",
  "Burning Fight",
  "Captain Tomaday",
  "Hidden Dragon 20",
  "Hidden Dragon 20",
  "Cyber-Lip",
  "Double Dragon",
  "Double Dragon Pl",
  "Eightman",
  "Fighter's Histor",
  "Ganryu",
  "Garou: Mark of T",
  "Garou: Mark of T",
  "Ghost Pilots",
  "Ghostlop",
  "Goal! Goal! Goal",
  "Kabuki Klash",
  "Kabuki Klash Far",
  "King of Gladiato",
  "Lansquenet",
  "Last Resort",
  "League Bowling",
  "Magical Drop II",
  "Magical Drop III",
  "Metal Slug",
  "Metal Slug 2",
  "Metal Slug 2 +",
  "Metal Slug 3",
  "Metal Slug 3 +",
  "Metal Slug 4",
  "Metal Slug 4 +",
  "Metal Slug 5",
  "Metal Slug 5 +",
  "Metal Slug 6",
  "Metal Slug 6 +",
  "Metal Slug +",
  "Money Puzzle Exc",
  "Mutation Nation",
  "Nan-1975",
  "Neo Bomberman",
  "Neo DriftOut",
  "Neo Mr. Do!",
  "Neo Turf Masters",
  "NeoGeo Cup 98",
  "Nightmare In The",
  "Ninja Combat",
  "Ninja Commando",
  "Ninja Master's",
  "Over Top",
  "Pop n'Bounce",
  "Power Spikes II",
  "Pre Historic Isl",
  "Puzzle Bobble",
  "Puzzle Bobble 2",
  "Puzzle de Pon!",
  "Puzzle de Pon!",
  "Puzzled",
  "Q Double Dragon",
  "Rage of Dragons",
  "Rage of Dragons ",
  "Robo Army",
  "Sam. Shodown II",
  "Sam. Shodown II ",
  "Samurai Shodown ",
  "Samurai Shodown ",
  "Samurai Shodown ",
  "Sam. Shodown IV+",
  "Sam. Shodown V S",
  "Sengoku",
  "Sengoku 2",
  "Sengoku 3",
  "Sengoku 3 Plus",
  "ShockTroopers",
  "ShockTroopers 2n",
  "Snk vs Capcom Re",
  "Spin Master",
  "Spin Master Plus",
  "Street Fighter v",
  "Street Hoop",
  "Strikers 1945 Pl",
  "Strikers 1945 Pl",
  "Super Dodge Ball",
  "Super Sidekicks",
  "Super Sidekicks ",
  "Super Sidekicks ",
  "Super Sidekicks ",
  "Takon Matrimelee",
  "KOF 10th Anniver",
  "KOF 10th Anniver",
  "KOF 2001",
  "KOF 2001 Plus",
  "KOF 2002",
  "KOF 2002 Magic I",
  "KOF 2002 Magic P",
  "KOF 2002 Super",
  "KOF 2004 SE Plus",
  "KOF 2004 SP",
  "KOF 2005 Unique",
  "KOF 2005 Unq. II",
  "KOF 94",
  "KOF 95",
  "KOF 95 Plus",
  "KOF 96",
  "KOF 96 Plus",
  "KOF 97",
  "KOF 97 Plus",
  "KOF 97 Plus",
  "KOF 98",
  "KOF 98 The Slugg",
  "KOF 99",
  "KOF 99 Remix Pro",
  "The Last Blade",
  "The Last Blade 2",
  "The Last Blade 2",
  "Top Hunter",
  "Trash Rally",
  "Twinkle Star Spr",
  "Viewpoint",
  "Waku Waku 7",
  "World Heroes 2",
  "World Heroes 2 J",
  "World Heroes Per",
  "World Soccer 96",
  "Zed Blade",
  "Zupapa!"
};

const rom GameID[]=
{
  45,   99,  100,  135,  97,  49,  50,  121,  120,  95,  130,  108,  46,  35,  128,  98,
  6,  28,  133,  47,  19,  71,  38,  70,  13,  31,  134,  110,  117,  37,  48,  9,
  68,  96,  137,  105,  106,  59,  60,  78,  62,  80,  63,  81,  64,  82,  65,  83,
  77,  109,  131,  129,  84,  126,  127,  119,  115,  86,  132,  90,  39,  125,  107,  123,
  94,  102,  103,  79,  104,  136,  34,  18,  32,  73,  40,  51,  41,  52,  42,  53,
  16,  87,  88,  89,  75,  66,  67,  58,  69,  74,  12,  118,  61,  93,  122,  111,
  112,  113,  114,  17,  30,  57,  4,  26,  5,  0,  27,  10,  29,  7,  11,  8,
  20,  21,  54,  22,  55,  1,  23,  56,  2,  24,  3,  25,  14,  15,  33,  76,
  124,  91,  92,  36,  43,  72,  44,  116,  101,  85,
};

#pragma interrupt intHandlerL
void intHandlerL()
{
}

// ------------------------------------------------------------------------------------------
// CODE START -------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
char str[64];

extern const rom unsigned char logo0, logo1;

void formGameSelect(void)
{
REFRESH:
ClrWdt();

sprintf(str,"Game No:%d",game+1);

c5x8_Clear();
c5x8_GotoXY(0,0);
c5x8_PutStringRam(str);
c5x8_GotoXY(0,1);
c5x8_PutString(Games[game]);
oledUpdateDisplay();
Delay10KTCYx(100);

LOOP:
if (enc_flag)
{
enc_flag=0;
goto REFRESH;
}

if (BTN_OK==0)
{
NEO_RESET=1;
PORTB=GameID[game];
Delay10KTCYx(250);
NEO_RESET=0;

goto REFRESH;
}

ClrWdt();
Delay10KTCYx(100);

goto LOOP;
}


void main(void)
{
unsigned char i,a;

TRISA=DEF_TRISA;
TRISB=DEF_TRISB;
TRISC=DEF_TRISC;

ANSELA=0;
ANSELB=0;
ANSELC=0;

// OSC/PLL
OSCCONbits.IRCF2=1;
OSCCONbits.IRCF1=1;
OSCCONbits.IRCF0=1;
OSCTUNEbits.PLLEN=1;

// TMR3 SETUP
T3CONbits.TMR3CS0=0; // Internal clock ...
T3CONbits.TMR3CS1=0; // Internal clock ...
T3CONbits.T3CKPS1=1; // 1:4 Prescale ... 64MHz = 16MIPS = 4.096 * 4 = 16.384 ms
T3CONbits.T3CKPS0=0;
T3CONbits.TMR3ON=1; // Enable Timer ...
PIE2bits.TMR3IE=1; // Enable Interrupt ...

INTCONbits.GIE=1;
INTCONbits.PEIE=1;

NEO_RESET=1;
PORTB=GameID[0];

Delay10KTCYx(50);
oledInit();

c5x8_Clear();
glcdLogo(&logo0);

glcdLogo(&logo1);

sprintf(str,"v1.1");
c5x8_GotoXY(12,1);
c5x8_PutStringRam(str);
oledUpdateDisplay();

for (i=0;i<8;i++)
{
ClrWdt();
Delay10KTCYx(250);
}

c5x8_Clear();
sprintf(str,"     SERI #     ");
c5x8_GotoXY(0,0);
c5x8_PutStringRam(str);

oledUpdateDisplay();

NEO_RESET=0;

formGameSelect();
}
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
evreno
Deneyimli
*****
Mesaj Sayısı: 1.257



Üyelik Bilgileri
« Yanıtla #242 : Aralık 07, 2016, 15:09:54 ÖS »

Hayırlı olsun @delimawi, eline sağlık
çok güzel bir proje(projeler) çıkardın ortaya
keyifle kullanman dileğiyle, iyi oyunlar.
Logged
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #243 : Aralık 07, 2016, 15:19:57 ÖS »

Hayırlı olsun. Çatı akmasını en az hasarla atmana sevindim. iyi oyunlar.
Logged
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.750


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #244 : Aralık 07, 2016, 15:38:23 ÖS »

Of süper olmuş yaw, birazcık da olsa kıskandım valla. Ama bir yandan da sevindim, çünkü o MVS bende olsaydı hala kolide yatıyor olacaktı.
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
atariManyagi
Üye
****
Mesaj Sayısı: 378


En Sevdiğim Super Mario Karakteri


Üyelik Bilgileri WWW
« Yanıtla #245 : Aralık 07, 2016, 16:02:45 ÖS »

@delimawi, Ben de Geliştirme Portu'nu iki Bartop'u Bağlayacak İletim Kablosu için Sandım. Videona baktım. Meğerse AES Kontrolcülerini (Joystick veya Mahjong Pad) bağlamak için kullanılıyor. Mahjong Pad,Sadece 2 adet Oyunda Kullanılan Kontrolcüdür.

Mahjong Pad:


Joystick:


Logged

itch.io Sayfam
itch.io
GitHub Adresim
GitHub
Peg Bebek Koleksiyonum
Peg Bebekler
LW3D
Yönetici
*****
Mesaj Sayısı: 11.417


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #246 : Aralık 07, 2016, 17:09:03 ÖS »

Harika olmuş... Güle güle kullan iyi eğlenceler.
Logged

AmigaMan
Deneyimli
*****
Mesaj Sayısı: 634



Üyelik Bilgileri
« Yanıtla #247 : Aralık 07, 2016, 18:25:31 ÖS »

Bende bir tane alabiliriyim
Logged

Amiga ölmedi, efsane uyuyor
Selim7
Üye
****
Mesaj Sayısı: 264



Üyelik Bilgileri
« Yanıtla #248 : Aralık 08, 2016, 00:13:13 ÖÖ »

  İlker abi, kabinin değeri sizin nezdininizde bu kadar sıkıntının ardından eminim ki   bir o kadar  artmıştır. : ) Güle güle kullanın.

  Birde, pcb yi montaj yapmak amatörler için sizce zor olur mu? Bulmakta sıkıntı yaşayacağımız parçalar var mıdır,
sizden istesem, sıkıntı yaşar mıyım?
Logged

Cengiz Demir
Uzman
*****
Mesaj Sayısı: 3.819



Üyelik Bilgileri
« Yanıtla #249 : Aralık 08, 2016, 08:29:23 ÖÖ »

@delimawi
Gözünüz aydın. Güle güle oynayın
Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #250 : Aralık 08, 2016, 09:25:35 ÖÖ »

Arkadaşlar ilginize teşekkür ederim.

Şu an için elimdeki fazla PCB'ler tükenmiş durumda. Eğer daha fazla isteyen olursa yeniden sipariş açmamız gerekiyor.

Bu arada kartın dizilmesi ile ilgili olarak kısa bir tutorial hazırladım. Gözünüzü korkutmak istemiyorum ama kartın dizilmesi çok amatör olan arkadaşlar için çok uygun olmayabilir. Kartın tamamının dizilip programlanması benim 2 saatimi alıyor.

Öncelikle boş PCB'mizi alıyoruz. İlk olarak FPGA çipini dizeceğiz.



Ben FPGA'i en son buradan sipariş verdim. Henüz elime ulaşmadı bu son sipariş.
https://tr.aliexpress.com/item/Ep2c5t144c8n-ep2c5t144c8-ep2c5t144-ep2c5/1039414723.html?spm=2114.13010608.0.0.Zq1l5t

Öncelikle çipin köşelerinden bir kaç pini lehimleyerek tüm bacakları hizaladığımızdan emin oluyoruz.



Sonra teker teker tüm bacakları lehimliyoruz. Bu arada iki bacak arasına dolan lehimleri alabilmek için flux yada pasta kullanabilirsiniz. Ayrıca çok fazle lehim kullanmamaya dikkat edin. Eğer çok lehim dolar ise bacaklara bakır ile çekebilirsiniz.

Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #251 : Aralık 08, 2016, 09:33:06 ÖÖ »

Daha sonra direnç ve kondansatörleri lehimlemeye başlayabiliriz. Ben öncelikle kart üzerinde parçaların tek bacaklarına lehim yapıyorum.



Daha sonra SMD parçaları bu tek taraftan lehimleyip hizalıyorum. SMD parçalar kart üzerinde 0805 kasa olarak çizildi. Ama ister 0805 ister 0603 kullanabilirsiniz. Ben elimde olduğu için 0603 kullanıyorum.



Son olarak diğer bacaklarını da lehimleyip bu adımı tamamlıyoruz.



Evet SMD parçaların tamamını dizdik. Bazı parçaların dizilmediğini farkedeceksiniz. Bu dirençler tasarım sonrası ARGE aşamasında iptal edildi. Ayrıca bazı dirençler ise kısa bir tel ile short edilmiş durumda. Bunlarda tasarımda 0 ohm olarak belirtilmiştir.

Sol altta ufak 8 bacaklı bir çip var. Bu çip FPGA programını tutan flash hafıza. Ben aşağıdaki linkten satın aldım.

https://tr.aliexpress.com/item/Free-shipping-EPCS4SI8N-EPCS4N-EPCS4-SOP8-original-authentic-single-handle-real-talk-about-SZNXDZ/32707642877.html?spm=2114.13010608.0.0.Zq1l5t
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
LW3D
Yönetici
*****
Mesaj Sayısı: 11.417


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #252 : Aralık 08, 2016, 09:33:23 ÖÖ »

Açıkçası bu işlemcinin dizilmesi bile ölümcül bir iş...kaç bacak var orda
Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #253 : Aralık 08, 2016, 09:43:16 ÖÖ »

Şimdi kondansatörleri, regülatör ve LED'leri lehimliyoruz.



Regülatörlerden LM1117-1.2V olanını TR'de bulmak çok zor. LM1117-3.3 olanı bulunabilir. Ama almışken hepsini aliden almak mantıklı.

Bu arada kondansatörler SMD elektrolitik olarak çizildi. Ama direnç.net sipariş ettiğimden daha büyük boy göndermiş. Bu sebeple oraya sığmadılar. Mecburen elimde fazla olan tantal kondansatörleri dizmek zorunda kaldım. Siz normal elektrolitik 100uF SMD dizebilirsiniz.

Şimdi sırada konnektörleri takmak var.



Evet kartımız hazır. Son olarak bir IDC kablo hazırlayacağız. Bu kablo 20'li şerit kablodan yapılabilir.



Bu kabloyu çok uzun tutmayın zira 12MHZ clock sinyali de bu kablo üzerinden geliyor. Bozulmalar olabilir. 20cm civarı yeterli olsa gerek. IDC konnektörün çakılması için özel bir pense gerekiyor ama benim yok. Ben bunu mengene ile sıkıyorum.

Ve bu kablonun boşta kalan uçlarını Neo Geo RGB Sinyallerine lehimliyoruz. Buna ait bilgi birkaç sayfa önce vardı. Tabiki her slotta bu lehim yapılacak yerler farklıdır. Ben 1A modeli için bunu paylaşıyorum.

EDIT Burada: http://www.commodore.gen.tr/forum/index.php?topic=12737.msg157011#msg157011



Hepsi bu kadar, kolay gelsin...
« Son Düzenleme: Aralık 08, 2016, 09:48:07 ÖÖ Gönderen: delimawi » Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #254 : Aralık 08, 2016, 09:58:00 ÖÖ »

Açıkçası bu işlemcinin dizilmesi bile ölümcül bir iş...kaç bacak var orda

Sanıyorum 144 bacak vardı...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Sayfa: 1 ... 15 16 [17] 18 19   Yukarı git
Yazdır
Gitmek istediğiniz yer: