2012년 2월 7일 화요일

JoyMega - 메가드라이브 3버튼 패드

메가드라이브(이하 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버튼 패드도 몇개 질렀는데, 오면 요것도 한번 개조해서 테스트해봐야겠습니다.



 

2012년 2월 5일 일요일

ASO remake #14 - AREA1 완성!!! (2012.02.05)

드디어 AREA1 이 완성되었습니다. ㅜ.ㅜㅋ



작년 봄부터 만들던 것이 해가 바껴서야 빛을 보게 되네요.

원작을 100% 구현하지는 못했지만...

MSX turboR의 성능을 최대한 살려~서 비슷한 느낌이 나도록 했습니다. (진짜로...ㅋ)


아래 파일을 다운로드 하시면, 실행해볼수 있겠습니다.

일반 파일 압축과 에뮬레이터용 DSK 이미지 두개로 업로드합니다.

ASO_remake_20120205.zip

ASO_remake_20120205_dsk_image.zip


----------------------------------------------------------------

    ASO remake (2012.02.05)

        By 서영만 (E-mail:sharksym@hitel.net)

----------------------------------------------------------------



* ASO remake


본 프로그램은 1985년 SNK에서 제작된 ASO를

 MSX용으로 리메이크한 것입니다.


현재 ASO의 AREA1만 구현이 되어있습니다. ^^



* 요구사항


실기: MSXturboR GT & MSX-AUDIO(또는 MoonSound 호환 카드)

에뮬: blueMSX FS-A1GT 컨피그



* 실행방법


압축 파일을 MSX용 디스크(IDE,MMC/SD등의 빠른 디스크 추천)에 놓는다.

(에뮬레이터에서는 DSK 파일을 마운트하면 끝)


DOS2로 부팅후 ASO.COM 파일을 실행


사운드 옵션은 기본 MoonSound로 설정되므로,

MSX-AUDIO 계열은 ASO /A 로 실행하면 소리를 들을 수 있습니다.



* 키입력


이동  : 커서 키

레이져: SPACE 키 또는 N 키

미사일: 취소 키 또는 B 키

아머  : GRAPH 키 또는 V 키

종료  : ESC 키



* 히스토리


2012.02.05

  스크롤 및 아머 처리 개선

  키입력 추가 (N,B,V)


2012.02.04

  AREA1 릴리즈


2012년 1월 28일 토요일

ASO remake #13 - AREA1 BOSS 완성

커피 한잔하면서 글 하나 올려봅니다~ ㅋ

지난 연휴때, 여가시간을 full 활용해서 구현해보았습니다.

아래는 오리지날 ASO의 보스 모습인데, 한번 보시죵...




다리가 셋 달린 놈이 나옵니다.

흐느적거리는 다리가 포인트라고 할수 있습지요. ㅋ


MSX 리메이크판에서는 100% 똑같이 만드는건 불가능했고요...

CPU,VDP가 버텨주는 정도에서 타협을 해보니,

좌우 다리는 관절 4개씩, 뒷다리(꼬리?)는 관절 3개로 만들수가 있었네요.


사진은 퇴근 후, 추가하겠습니다.

참고로 동영상은 정식 릴리즈(물론 AREA 1만.. ㅋ)할때 올릴 생각입니다.

(기대치를 높이기 위한 뭐..그런 ㅡ.ㅡ;;;)


보스 몸통 및 다리 관절은 스프라이트가 아닌 모두 비트맵 그래픽입니다.

두개의 색은 팔레트 애니메이션으로 보스의 체력 상태(빨강/노랑 점멸) 표시도 됩니다.

원판과 거의 비슷한 느낌이에요.


이제 남은건 점수판이랑 주인공 죽었을 때, 리셋 지점부터 다시 시작하는 루틴인데...

주말에 잘하면 완성할 수 있을 듯 하네요. 아... TITLE 화면도 그려야겠네요.ㅋ


지난 5월부터 계획하고 조금씩 만드느라 시간이 꽤 걸렸네요.

비록 터보알 전용이지만, 원판이랑 비슷하게 구현이 되서 아주 즐겁습니다. ㅎ.ㅎ


PS. 실기에서 구동되는 모습입니다.

디카 플래쉬 켜면 어둡게 나오고, 끄면 잔상이 생기네요. ㅎ.ㅎㅋ

대충 보셔요...