2024년 2월 19일 월요일

TapTapRevolution 제작 #1 - DDR을 해보셨나요?




[서론]


예전에 오락실에서 비트매니아, 댄스댄스레볼루션 같은 리듬게임이 유행하던 시절이 있었는데요.

저는 이쪽엔 그닥 소질이 없어서 가끔 DDR, Ez2Dj의 쉬운 곡들만 눌러서 좀 해봤었네요.

결혼 초기에는 플스2에 DDR장판을 연결해서, 와이프랑 방방(?) 뛰면서 씐났던 기억도 나구요.

...벌써 18년전의 추억으로ㄷㄷ


갑자기 리듬게임 얘기는 왜 꺼냈냐구요?ㅋ


작년에 Ponpoko Remake를 만들 때, Oraksil이라는 이름으로 PCB를 만들었습니다.

대용량 플래쉬롬(8MB)과 PCM 출력을 활용하려고 만든건데요.

너구리 게임에는 PCM 출력이 없으니, 그닥 유용하게 쓰이진않았네요.

(첫 부팅 시 동영상이 나오도록 했는데, 여기도 일부러 PCM을 제거했다는 소문이...조용한 동영상ㅋ)


그 후 PCM 사운드를 활용하는 게임을 한번 만들어보자~ 라며 이런저런 생각을 해봤습니다.

.

.

역시나 아이디어 고갈ㅋ 사운드 PCM -> 음악 -> 리듬게임?

그냥 DDR 비슷한 게임(짭DDR)을 만들기로 결론을 냈습니다요~

이름은... TTR (TapTapRevolution) 입니다 ㅎ.ㅎ



[본론]


혹시 DDR을 안해보신 분은 아래 게임스샷을 한번 보시죠.




노래가 흐르고, 화면 아래에서 화살표(노트)들이 위로 올라갑니다.

타이밍 맞춰서 상,하,좌,우 발판을 눌러주면 됩니다.


먼저 게임이 구동될 사양을 정해야하는데요.


사운드의 경우는 H/W로 노래(PCM 데이터)를 출력하게 될테니, CPU쪽의 부담은 전혀 없습니다.

게임 로직은 플레이어 입력과 노트 타이밍을 확인하는게 대부분이죠?

CPU 부담은 적지만, 그래픽 부하(VDP 액세스)는 꽤 있을테니...

turboR 고속모드 보다는 일반 Z80 3.58MHz 모드가 더 효과적이겠습니다.


화면에는 많은 화살표 노트들이 나오게 될테니, 이건 스프라이트로 구현하면 좀 힘들겠네요.

물론 컬러를 단순하게 입혀주면 스프라이트 갯수 문제는 없을 수 있겠지만...

이왕이면 이쁜 그래픽이 좋지않겠습니까요? ㅎ.ㅎ

V9938의 비트맵 그래픽과 수직 스크롤을 활용하면 되겠습니다.


화살표들의 위로 올라가면서 색깔이 변하게 되는데요.

이건 팔레트 애니메이션으로 쉽게 처리가 되니 별문제 안되겠네요.

그래픽은 스크린5 모드(VDP G4 mode)로 결정합니다.


일단 도트부터 찍어보아요~

비트맵의 영원한 친구인 DD구락부와 blueMSX로 화살표를 그려보았습니다.




화살표의 크기는 24 x 24 픽셀입니다. 큼지막하니 비율도 좋고 모양도 이쁘네요.

우후~ 화살표만 봐도 게임의 절반은 완성한 듯한 기분입니다!! ㅎ.ㅎ


시작은 여기까지이구요. 다음편에서 이어지겠습니다.


그럼, 이만~ ㅎ.ㅎ/~


2024년 1월 26일 금요일

지난 20년 개발의 추억 #6 - paraMSX-R v1.1 마무리

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

지난 12월말에 글을 썼어야했는데 까먹었네요ㅋ


이전글을 보시려면, 아래 링크를 눌러주세요!

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



12.4 구조 변경


때는 2017년, 확장슬롯을 피기백으로 쓰는 구조를 결국 포기합니다.

물론 특정 확장슬롯에 최적화해서 제작하더라도 쓸모가 있겠습니다만...

결과적으로 paraMSX-R과 해당 확장슬롯이 한세트가 되어버리면, 쓰일 귀회를 많이 잃게 되겠죠.

paraMSX-R과 확장슬롯을 통합해서 만드는 방법뿐이라는 얘기가 되겠습니다.

이 방식은 수년 후 SLT-Turbo에서 쓰이게됩니다만,

paraMSX-R은 이 방식을 포기하고, 단독 카트리지의 형태로 제작하기로 결정했습니다.


뭐, 당연한 얘기가 되겠지만...

실제 사용 시, SLOT 1 = paraMSX-R, SLOT 2 = 확장슬롯 따로 연결이 되니까,

paraMSX-R에서 확장슬롯에 꽂혀있는 기기들을 직접 액세스하는게 불가능해집니다.


에뮬모드에서 주변기기를 어떻게 활용할 것인가? 이게 가장 큰 문제가 되겠어요.



12.5 우회 처리


그럼, 외부 기기들 중 필수가 되는 것들을 우회해서 활용할 수 있는 방법이 필요한데요.

지원되는 기기는 FMPAC (OPLL 제외), MSX-Audio (Y8950 제외), FontPack (폰트롬 제외)입니다.


정확히 말하면 우회 처리는 아니구요.

슬롯의 I/O로 동작가능한 부분은 기존 기기 그대로 구동하고,

메모리 영역(롬, 램, 매퍼 등)만 구현해서 넣은 것입니다요~

따라서 SCC-I, MPX 같은 메모리맵 I/O를 쓰는 사운드 칩은 활용이 불가능합니다.



12.6 기본 내장 기능


그 외 시스템 Flag, Kanji 폰트, 대우 한글폰트, PAC, 재미나 딜럭스박스 등, 자주 쓰이는 H/W도 구현해줍니다.

구동되는 본체(호스트)가 일제든 국산이든 상관없이, paraMSX-R의 내장 I/O와 충돌하지 않도록 구동됩니다.


따라서,

V9958 개조된 X-II에서 A1WSX 에뮬모드로 구동 후 Kanji 폰트롬 출력,

A1GT에서 X-II 에뮬모드로 구동 후 대우 데모 프로그램 실행

등의 상황을 연출할 수 있습니다.



12.7 가상 디스크


본체에 내장된 FDD를 연결하거나 외부 슬롯의 디스크를 연결해주는 가상의 디스크입니다.


원래 디스크롬은 마스터 디스크롬에서 슬레이브 디스크롬을 호출하는 방식인데요.

여기서는 가상의 마스터롬이 실제처럼 보이도록 만들어줍니다.

아래처럼 런처에서 슬롯을 선택할 수 있어요.




MSX에서 최대 4개의 디스크롬을 쓸 수 있는데, paraMSX-R에서는 일단 하나의 디스크롬만 매핑하도록 했습니다.

나중에 필요하면 기능을 추가할까 했는데, 6년이 흐른 지금도 딱히 떠오르는 활용 시나리오가 없네요. 그냥 패스~ㅋ


실제 동작은 아래 영상으로 구경하셔요!



12.8 롬디스크 부팅


요즘 실기를 쓰시는 분들은 보통 주변기기를 주렁주렁 달고 계시겠지만... (아니라구요?)

아무것도 없는 MSX2에 paraMSX-R을 쓰는 경우도 한번 생각해봤습니다.


디스크 드라이브가 없는 환경에서는 CALL PARAMSX 명령으로, paraMSX-R의 내장 롬디스크로 부팅이 가능합니다.

재부팅하면 PARAMSX.COM 프로그램이 자동으로 실행됩니다.


아래는 FS-A1에 paraMSX-R 하나만 꽂고, 대우 아이큐1000 모드를 구동 후 디럭스박스에 카세트로 로딩하는 모습입니다.

데이터레코더 대신 휴대폰으로 WAV파일을 재생했네요 ㅎ.ㅎ



12.9 보너스 기능


paraMSX-R은 오랫동안 고민해서 만든 결과물이긴한데, 조금 문제가...ㅎ.ㅎ

이게 실기를 켤때마다 사용하는 기기가 아니잖아요.

보통은 카트리지를 서랍에 보관하다 필요할 때 꺼내서 쓰는 상황이 되겠죠?

.

.

.

"Out of sight, out of mind"라는 말이 있습니다요.

카트리지가 안보이면 잘 안쓰이게 됩니다ㅋ


그래서 'paraMSX-R을 평상시에도 활용하고 싶다'라는 생각이 들더라구요.

어떤 기능이 좋을까 고민을 해봤는데, 그냥 램 2048KB를 몽땅 메모리매퍼로 구동하는 거였습니다. 단순! 간단!


H/W 특성 상, paraMSX-R을 기본슬롯에 꽂아야만 에뮬모드를 활용할 수 있으니...

확장슬롯에 꽂아서 부팅하면 자동으로 메모리매퍼 전용 모드로 바뀌도록 해놨습니다.

그리고, 카트리지의 EXIT 버튼을 누른채로 리셋하면 메모리매퍼 모드로 강제전환도 가능하구요.


나중에는 SLT-X 확장슬롯에서 기본슬롯 전환 기능을 넣어서, 좀 더 편하게 쓸 수 있도록 되었네요.

뭐, 그렇게 paraMSX-R은 확장슬롯에 붙박이로 자리잡게 되었습니다요~ ㅎ.ㅎ



paraMSX v1.1에서 최종완성이 되었네요.


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


2024년 1월 18일 목요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.73

Download: 20240118_MMCSD_Drive_V3_V4_BIOS_Tool_v573.zip


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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.73 ]


- MegaROM


  ASCII 8K (SRAM) 매퍼 지원 개선

  -> 태양의 신전, Dires, Deep Dungeon II, Elslid,

     Heroes of the Lance, Kisei Shogi, Shougi Shinan 2,

     Syougun, Ultima Exodus, 사령전선, Wizardry, Xanadu


  ASCII 16K (SRAM) 매퍼 지원 개선

  -> A-Train, 대전략, Harry Fox Special, Hydlide 2,

     Jyansei, Mahjong Goku, 수퍼 대전략


- GameRunner


  V4에서 사용 시, 내장 SCC로 구동하도록 변경 

  -> V3의 '/G' 옵션 호환 용




[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD573.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD573.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝