2024년 9월 28일 토요일

TapTapRevolution 제작 #8 - 댄스 패드 개조

댄스 패드를 하나 구입했습니다. PC용 USB연결을 사용하구요, 알리산입니다 ㅎ.ㅎ



이걸 MSX에 연결해보아요~

TTR용 상하좌우 입력을 처리할 수 있도록 댄스 패드를 개조하면 되겠죠?


원래 MSX의 조이스틱(범용) 9핀 포트용 케이블은 오른쪽처럼 생겼습니다.

근데, 일부 MSX 기종에서는 왼쪽의 일반 DSUB 케이블도 연결할 수 있는데요.

A1WSX, A1GT 등의 후기형 파나소닉 기종이 여기에 해당됩니다.

X-II 등의 대우 기종은 단자가 깊어서 연결이 안돼요~~



RS-232C용 9핀 케이블입니다. 선배열을 바꿔야해서, 뚜따가 가능한 놈으로 하나 가져왔어요.



케이블 단자를 열어본 모습입니다.

1번, 6번, 8번핀의 신호가 서로 연결되어있군요.

실제 케이블에는 6개의 선들이 들어있습니다. (쉴드선도 포함해서요)



TTR에서 사용하는 상하좌우 및 공통출력(COM) 신호선 5개를 정리합니다.

1번,6번,8번 쇼트된 녹색선을 제거 후 노란선을 5번->8번으로 옮겼습니다.



파나소닉 기종의 본체와 간섭이 되지 않도록 철판과 덮개 일부를 잘라줍니다.



아래는 turboR에 연결한 모습입니다.



이제, 댄스 패드를 열어봅시다!

USB가 싸구려 케이블인지... 선이 4개 밖에 없네요.

만약 쉴드선까지 있었다면 선이 5개니까, 이걸 그대로 DSUB 단자에 연결해서 써도 됩니다.

암튼 멀티미터로 PCB의 상하좌우 신호를 찾아줍니다.



개조한 케이블을 여기에 연결해주면~ OK!

참고로, 노란색 공통(COM)신호는 PCB의 GND에 연결하면 되겠습니다.



선을 정리해서 케이스를 닫아주면 되겠네요.



잘 되네욤 ㅎ.ㅎ/



혹시 직접 개조하실 분들을 위해 제가 샀던 댄스패드의 링크도 남겨드려요~

https://ko.aliexpress.com/item/1005007514960644.html


PS.

개조하실 때 '무적의 380도' 이런거 쓰심 안됩니다. 필름이나 단자 접합용 스펀지가 녹아버릴거에요ㅋ


2024년 9월 13일 금요일

TapTapRevolution 제작 #7 - 완성판

 



기본 플레이 루틴을 완성하니까 동기부여가 확~ 떨어지네요.

몇 달 쉬었으니, 다시 진행해봅니다!


TTR에 사용되는 카트리지는 8MB 메모리(FlashROM 64Mbit)를 사용합니다.

2MB는 프로그램 및 오프닝 영상 및 각종 그래픽, 효과음 데이터로 사용되구요.

남은 6MB에 노래 3곡이 들어갑니다. 노래 한곡당 2MB가 소진된다고 보심 맞아요 ㅎ.ㅎ


오프닝 영상은 약 7초 정도로 편집한 MV 파일입니다.

구동 방식은 V3, V4에서 쓰이던 것과 거의 같습니다. 스크린2 + 팔레트 스위칭~


타이틀과 노래 선택 화면은 스크린8을 사용합니다.

타이틀 그래픽은 AI의 힘을 좀 빌려서...ㅋ


메인 플레이 영역은 기존에 보여드린대로 스크린5를 사용합니다.


스테이지가 끝나고 나오는 결과 화면과 게임오버 화면은 스크린8을 사용합니다.

기존 그래픽을 변환해서 그대로 넣어도 꽤 괜찮아보이더라구요.


효과음으로 쓰이는 사운드는 모두 PCM으로 들어갑니다. 노래 재생용 PCM player와 같은 동작구조입니다.


마지막으로,

타이틀 화면에서 일반 모드 또는 트레이닝 모드로 선택이 가능한데요.

트레이닝 모드는 체력(?) 게이지가 0이 되어도 게임오버가 되지 않습니다.


.

.

.


그럼, 동작 모습을 보시죠~ 백문이 불여일견 ㅎ.ㅎ

비트맵 그래픽을 그리고, 지우고, 스프라이트 뿌리느라 Z80, VDP가 미친듯이 삽질을 합니다만...

60FPS로 잘 동작하는 것을 보실 수 있습니다요. 이번엔 DOUBLE 모드 플레이로 찍어보았어요~




PS.

효과음을 PCM으로 처리하니까 편하고 좋네요.

이제 OPL4 (문사운드, 달소리 등) 사운드를 쓰시는 분이 많으니...

앞으로 DOS2용 게임을 만든다면, 그냥 OPL4 PCM으로 도배하는 쪽으로 생각해봐야겠습니다요ㅋㅋ


PS. 2024-09-18
옵션 메뉴을 따로 할당했습니다. 오디오 싱크 조절도 가능하고, 키맵도 확인할 수 있습니다요~ ㅎ.ㅎ


2024년 9월 6일 금요일

지난 20년 개발의 추억 #11 - T-Wave


월간 추억팔이 #11편이 나왔습니다~ ㅎ.ㅎ


지난 글은 아래 링크를 이용하세요!

https://sharksym.blogspot.com/2023/07/20-1.html

https://sharksym.blogspot.com/2023/08/20-2.html

https://sharksym.blogspot.com/2023/10/20-3.html

https://sharksym.blogspot.com/2023/10/20-4-mmcsd-drive-v3.html

https://sharksym.blogspot.com/2023/11/20-5-paramsx-r.html

https://sharksym.blogspot.com/2024/01/20-6-paramsx-r-v11.html

https://sharksym.blogspot.com/2024/03/20-7-audiofactory.html

https://sharksym.blogspot.com/2024/04/20-8-mmcsd-drive-v4.html

https://sharksym.blogspot.com/2024/06/20-9-xii-v.html

https://sharksym.blogspot.com/2024/07/20-10-slt-x-v1.html




V4에는 PSG 사운드를 씐나게 해주는 PSG2SCC 기능이 있습니다.

PSG의 구형파 소리에 SCC의 파형을 보태주면 꽤 재미난 소리가 나죠.

PSG만 쓰는 32KB 롬게임 또는 자낙EX 등의 메가롬에서 활용하면 GOOD!


2020년 어느날...

GameRunner BIOS 없이 H/W 단독으로 동작하는 PSG2SCC 카트리지가 있으면 좋겠더라구요.

이스 시리즈 처럼 PSG만 쓰는 디스크 게임에서는 GameRunner를 못 쓰니까,

H/W만으로 구동이 되면 모든 S/W에서 다 쓸 수 있어서 좋겠죠? ㅎ.ㅎ

.

.

.

근데 PSG2SCC 카트리지 하나 때문에 서브 슬롯 한개를 써버리기엔 좀 아깝다는 생각이 듭니다.

일단 비슷한 컨셉으로 쓸만한 기능들을 떠올려보아요~


PSG2SCC를 처리하려면 파형샘플로 출력해주는 기능이 필요한데,

그냥 SCC 기능을 그대로 구현해서 SCC 단독 또는 PSG2SCC로 전환하면 좋겠죠?

이왕이면 SCC보다는 SCC-I가 좋겠구요. 사운드 기능뿐만 아니라, SCC-I의 메가램도 그대로 구현합니다.


사실, 오리지널 SCC-I는 메가램이 64KB라서 사실 메가 BIT는 아닙니다만, 128KB로 증설이 가능해요.

아마 많은 분들이 128KB로 증설해서 쓰시는 걸로 알고 있습니다.

예전엔 코나미의 1메가 SCC게임들을 구동하는 용도로 요긴하게 썼습니다요.

일단 512KB를 때려넣고, 기본 설정을 128KB로 두면 기존 S/W 호환문제는 해결!


여기까지 해놓으니, 욕심이 생기네요.

SCC-I를 유저 선택으로 PSG2SCC 모드로 전환하는 게 아닌 별도의 채널로 구현하면?

그럼 사라만다, 메탈기어2 등의 기존 SCC를 쓰는 롬에서도 PSG2SCC와 SCC 사운드를 동시에 쓸 수 있겠네요.

특히 보이스 패치된 SCC롬들을 쓸 때에는 듀얼 SCC가 필수이니, 이 때도 유용하겠구요.

VS + T-Wave 조합이면, 보이스 SCC + PSG/SCC BGM + PSG2SCC를 한방에 해결!


여기까지 생각을 정리해보면...

- SCC-I 128KB/512KB RAM mode (5Ch. Sound)

- PSG2SCC Sound (3Ch. Sound)

되겠습니다.


.

.

.

그러던 어느날 또 다른 아이디어가 떠오르네요.

PSG2SCC의 채널을 2배로 늘려서 스테레오로 구현해보는거죠.

물론 채널 늘려서 좌우 다른 샘플 소리를 내주는 것도 중요하지만... 여기에 주파수 조절을 추가해봅니다.

원본 PSG에 어울리는 화음을 넣어주는거죠.

좌우 채널에 다른 주파수를 쓸 수 있도록, PSG2SCC를 6채널로 구현합니다.


실제로 구현해서 들어보니, 원래 PSG 채널이 노이즈를 출력모드가 될 때는 화음이 잘 안어울리네욤

V3의 PSG2SCC는 PSG와 같은 주파수라서 별로 거슬리지않았는데 말이죠. 으흠...

결국 T-Wave의 PSG2SCC는 노이즈 모드도 들어갑니다. 실제로 들어보면 차이가 꽤 나요 ㅎ.ㅎ


샘플 파형은 16가지를 롬에 내장해서 외부 스위치(카트리지 상단)로 쉽게 선택할 수 있도록 합니다.

주파수도 외부 스위치로 조절 가능하구요.

물론 파형과 주파수는 좌우 채널 각각 조절됩니다.


그리고, 샘플 파형에는 구형파도 있어서, 본체의 PSG 복제도 가능합니다.

본체의 사운드 출력을 MUTE하고, T-Wave의 출력만 스피커로 듣는 식으로 활용할 수 있어요.


여기에 PSG 2번째 포트를 쓰는 것도 옵션으로 추가합니다.

듀얼 PSG (포트 10H, 11H)를 쓰는 S/W에서 활용하면 좋겠죠?


기능이 많이 바꼈으니 PSG2SCC 대신 다른 이름을 붙여봅니다.

Wave Sound Generator - 줄여서 WSG!


WSG 기능을 요약하면 이렇게 됩니다.

- 샘플 파형 출력 (SCC와 같은 방식)

- 노이즈 모드

- 좌우 채널 분리 (3Ch. + 3Ch.)

- Sec-PSG 에뮬 모드



카트리지 상단에는 3단 스위치 2개와 조그 다이얼 2개를 넣었습니다.

설정이 귀찮은 분들을 위해 프리셋 모드(EASY MODE)도 넣었어요.

부팅 시 기본 설정되는 화음 모드 그대로 두어도 꽤 괜찮은 밸런스를 보여줍니다. 흐흐...


마지막으로 다른 사운드를 넣어봅시다.

카트리지 출력이 기본 스테레오니까, 세가에서 많이 쓰였던 DCSG(SN76489)를 2개 넣어서 스테레오로 들어보아요.

오락실 기판에서 듀얼 DCSG가 꽤 쓰였습니다. MSX에서 VGM파일이라도 스테레오로 들으면 잼납니다 ㅎ.ㅎ


최종 T-Wave의 스펙은 2x WSG + SCC-I + 2x DCSG가 되겠습니다.

3종류의 디지털 사운드의 조합이라서, 이름을 Tripple Wave로 붙였습니다. (제3의 물결?)


그리고, 디버깅 용으로 넣은 DAC 테스트 모드가 있는데요.

이 모드에서는 WSG + SCC 대신 스테레오 8BIT DAC으로 동작합니다.

MMCSD.COM 등에서 스테레오 WAV 파일을 출력하는 등의 용도로 쓸 수 있어요.


.

.

.


T-Wave를 5년째 쓰고 있는데, 이젠 WSG 화음이 없으면 귀가 허전하네욤.

아무리 생각해도 잘 만든 것 같아요 ㅎ.ㅎㅋ


그럼, 다음편에서 뵙겠습니다! ㅎ.ㅎ/