메가드라이브(이하 MD) 패드가 MSX (아타리 표준?) 조이스틱과 비슷해서,
개조해서 쓰시는 분이 많은 걸로 알고있어요.
저도 한..10년 전엔가 3버튼 패드 산걸로 지금껏 쓰고 있었는데용~
아래 홈페이지에 가봤더니, JoyMega라는게 있네요.
http://frs.badcoffee.info/hardware/joymega-en.html
아래 홈페이지 보시면, 3버튼, 6버튼 패드 컨트롤에 관한 내용이 좀더 자세하게 나옵니다.
http://segaretro.org/Control_Pad_(Mega_Drive)
http://applause.elfmimi.jp/md6bpad-e.html
아래는 MSX 조이스틱 포트의 핀배열이구요.
1 Up
2 Down
3 Left
4 Right
5 +5V
6 Trigger 1
7 Trigger 2
8 OUT
9 Ground
아래는 MD 3버튼 패드(Start 포함 4버튼)의 핀배열입니다.
1 Up
2 Down
3 Left
4 Right
5 +5V
6 A/B
7 Select
8 Ground
9 Start/C
둘을 비교해보면, 거의 비슷한데요. (7,8,9번의 핀 순서가 조금 다릅니다.)
MD는 트리거 버튼 입력 핀이 두개라서 MSX랑 동일한데,
대신 7번 핀의 Select 신호에 따라서 A,Start 또는 B,C 버튼 상태가 출력되도록 되어있습니다.
7핀 LOW -> A 및 Start
7핀 HIGH -> B 및 C
이런식입니다.
만약 MD패드의 7,9번 핀을 개조하게 되면,
MSX에서 조이스틱을 읽을 때 8번 핀이 LOW로 출력이 되기 때문에 아래처럼 MD패드의 B,C 버튼이 동작합니다.
MSX 7핀 (트리거2) -> MD 9핀 (버튼C)
MSX 8핀 (LOW) -> MD 8핀 (GND)
MSX 9핀 (GND) -> 연결안함 (MD 7핀은 내부 풀업으로 HIGH로 동작함)
그럼, JoyMega 의 역할은 뭘까요?
MSX의 기존 BIOS 조이스틱 루틴과 충돌하지도 않고,
MD 패드의 4개 버튼을 쓸수도 있게 만드는 것입니다.
동작은 아래처럼 됩니다.
1. MSX BIOS에서는 조이스틱 값 체크 시, 8번핀 OUT을 항상 LOW로 출력
2. MD패드의 B,C 버튼이 MSX 조이스틱의 기본 1,2 트리거로 사용
3. MD패드의 A,Start 버튼은 MSX의 8번 OUT이 HIGH 상태에서 읽을 수 있음 (MSX BIOS 대신 별도 S/W가 필요)
사실 개조는 간단한데요.
74LS04 류의 인버터 하나만 있으면 됩니다.
1. MSX 7핀 -> MD 9핀, MSX 8핀 -> MD 7핀, MSX 9핀 -> MD 8핀
2. MD 7핀은 그대로 기판으로 연결하지 않고, 74LS04 를 이용해서 신호를 뒤집는다.
어제 밤에 납땜에서 테스트해봤는데, 잘 되더군요.
참고로 위의 JoyMega 관련 홈페이지에 가면, 패드 체크하는 프로그램 받을 수 있어요.
아주 간단하게 MD 3버튼(실제4버튼) 패드를 사용할 수 있게됩니다.
음... 그럼 추가된 2버튼을 어떻게 쓰냐고요?
기존 MSX 게임들은 당연히 2버튼 기준으로 되어있으니 활용처가 없구요.
새로 만드는 게임에서는 따로 코딩을 해서 JoyMega를 지원할 수 있겠습니다.
여기서 ASO도 포함됩니다. 버튼을 3개 쓰고 있어서요. ㅎ.ㅎㅋ
그럼, 6버튼(실제8버튼) 패드는 어떻게 쓸 수 있을까요?
요건 따로 사용법이 있더군요.
실제 MD에서도 6버튼은 SW 호환에 문제될수가 있어서, 3버튼 모드로 바꿀수가 있나보네요.
아래는 6버튼 패드를 사용하는 방법입니다.
TH out 이 7번핀 Select 를 의미하고, TL/TR은 트리거 핀, D0~D3은 방향키 입력 핀입니다.
Cycle TH out TR in TL in D3 in D2 in D1 in D0 in
1 HI C B Right Left Down Up
2 LO Start A 0 0 Down Up
3 HI C B Right Left Down Up
4 LO Start A 0 0 Down Up
5 HI C B Right Left Down Up
6 LO Start A 0 0 0 0
7 HI C B Mode X Y Z
8 LO Start A --- --- --- ---
보시면, Mode, X, Y, Z 네개 버튼이... 방향키 입력핀을 통해 읽히는걸 알수 있습니다.
대신 조건이 있죠.
Select 핀을 LOW/HIGH 3번 변경을 해줘야 읽을 수 있습니다.
그 전까진 그냥 방향키로만 읽을수 있고요.
홈페이지 설명을 보니, Select 핀 상태가 변한 후 1.5ms가 지나면 Cycle 이 초기화 된다고 하네요.
그러니까 빠르게 읽어야 나머지 4개 버튼 상태를 확인할 수 있겠습니다.
아직 JoyMega 8개 버튼 다 쓰는 게임을 본적이 없어서, 활용 가능성은 애매합니다. ㅎ.ㅎ;
누군가 Street Fighter 리메이크라도 한다면 쓸모있을까요?
2줄로 요약하면...
1. JoyMega 로 개조를 하면, 기존 MSX 게임에서는 B,C 버튼으로 동작한다.
2. SW 가 지원만 된다면, 8버튼 모두 MSX에서 사용이 가능하다.
입니다.
이번주 중에 6버튼 MD패드 몇개 사서 한번 테스트해보려고 합니다.
어제밤에 3버튼 패드 개조해보니, 잘 동작하더군요. ㅎ.ㅎ
일단 ASO에 JoyMega 처리 루틴 추가해보았습니다.
으흐... 잘되는군요. ㅎ.ㅎㅋ
옥션에서 6버튼 패드도 몇개 질렀는데, 오면 요것도 한번 개조해서 테스트해봐야겠습니다.