2026년 10월 27일 화요일

21세기 DOS 프로그래밍 #11 - DW의 지하실

이번 'DW의 지하실'이 마지막 DOS 프로그래밍 소개가 되겠습니다!


이번에는 게임의 메인화면을 스크린8로 구현해보았습니다.

사양은 MSX2 V9938 기준으로, 스크롤 없이 화면 한장씩 표시하는 방식입니다.

메탈기어 같은 게임화면을 생각하시면 되겠죠!


주인공 캐릭터를 16 x 24 사이즈의 비트맵으로 처리합니다.

배경 타일과 아이템 등의 동적으로 그려지는 부분도 모두 비트맵이구요.

적 캐릭터만 스프라이트를 사용합니다.


스프라이트는 2개를 겹쳐서 표시하니까, 적 캐릭터는 가로로 4개까지 출력가능합니다.

실제 게임 내에서도 적 캐릭터는 4개만 나와요 ㅎ.ㅎ


이번 게임 구현에서 중요한 부분은,

스크린 8에서 가능한 VDP 커맨드(비트맵 복사), 스프라이트 처리만으로 60fps 유지가 가능할까? 인데요.

비트맵으로 처리되는 캐릭터, 아이템, 주변 레이더 표시 등의 VDP 부하를 잘 분산해서 구현을 했습니다.


사운드는 기본 PSG용 BGM,효과음 라이브러리를 그대로 사용했습니다.

적당한 클래식 음악들의 MML 데이터를 넣으면 OK


그리고 저의 자작 게임에서는 처음으로 한글 입력기도 넣어보았어요.

스테이지 마지막에는 한글을 입력해야 클리어 되도록 한글입력을 강제해놨습니다.

플레이 하셨던 분들에게도 재미가 되었는지 궁금하네요.

사실 RPG를 만들어도 한글 입력기가 쓰일 경우가 잘 없는데 말이죠ㅋㅋ


마지막으로 이 게임은 세이브 시, 데이터 전체를 모두 저장합니다.

맵에 뿌려진 아이템, 적들의 위치 포함해서 16KB 정도가 됩니다.

보통 DOS 프로그램이면 파일로 데이터를 저장하게 되는데요.


기존 Flash Drive에서 재기록 가능한 파일을 FlashROM에 배치하는 방식으로 구현이 되었지만,

'DW의 지하실'은 롬 빌드 모드를 사용해서, 디스크 액세스가 되지 않습니다.

대신 FlashROM의 특정 영역을 세이브 공간으로 활용하고 있어요.


구현된 부분은 요약하면,

- DOS 프로그램용 롬빌드 모드

- 플래쉬롬 세이브/로드

- 스크린8에서 60fps 처리

- 한글 입력기 활용

- 인게임 데모로 플레이 방법 표시


심심하시면 아래의 실제 플레이 영상도 구경하셔요~ ㅎ.ㅎ


.

.

.


IMS 플레이어, M 파일매니저,... DW의 지하실까지, 제가 MSX로 해보고 싶던 것들은 다 해봤네요.

Z80, R800, DOS2, 메모리매퍼, 디스크 스트리밍, 각종 VDP 트릭, PSG, OPLL, Y8950 등,

MSX 표준 장비는 올 클리어입니다! ㅎ.ㅎ


국,중,고딩 시절에도 아이큐2000으로 재밌게 놀았지만,

21세기에 MSXturboR로 이렇게 신나게 놀아보게 될 줄이야...


사실 이건 전부 마소의 MS-DOS, MSX-DOS와 ASCII의 MSX-DOS2의 덕분입니다.

그리고 FAT16 패치를 제작한 Okei씨에게도 감사 200%를 드려야죠! ㅎ.ㅎ/


- END -


2026년 10월 25일 일요일

WAU - BIOS & Tool v1.02

Download: 20261025_WAU_BIOS_Tool_v1.02.zip


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

WAU(tm) - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v1.02 ]


- RTC 설정 시 10월(Oct) 값이 0으로 입력되는 문제 수정



[ 업데이트 가이드 ]


1. WAU.COM, WAU_BIOS.ROM 두개 파일을 디스크에 복사.

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


2. WAU WAU_BIOS.ROM 명령 실행.


3. 다운로드 완료 후 재부팅.


4. 끝


21세기 DOS 프로그래밍 #10 - TapTapRevolution

탭-탭-레볼루션 (TTR)

이름만 봐도 알 수 있는 짭 DDR입니다.

메인 프로그램은 DOS 코드이구요. 메가롬 빌드로 출력된 결과물이 되겠습니다.


지난번 Ponpoko에서는 스크린2,4의 212라인 모드 출력을 주로 사용했는데요.

TTR에서는 스크린5,8을 사용합니다.


화살표 노트가 스크롤되는 게임의 메인 화면은 스크린5를 사용하구요.

속도와 팔레트 애니메이션 때문이라는 건 당연히 아시죠? ㅎ.ㅎ

그 외는 모두 스크린8을 사용합니다.


노래는 원곡 그대로 출력할 수 있도록, 8bit PCM 출력(로컬 DMA + DAC)을 H/W로 넣었구요.

화살표 노트 데이터는 원본 게임영상에서 데이터를 추출하는 프로그램을 자작해서 사용했습니다.


개발 초기에는 주로 에뮬레이터에서 테스트를 하구요.

PCM 사운드와 동기를 맞춰야 하는 부분은 실기에서 확인하는 방식이죠.


실기 테스트는,

MSX2에 PCM 출력 사운드 카드 환경에서 DOS 프로그램(TTR 게임)을 구동하는 방식입니다.


최종 카트리지에는

프로그램도 ROM 빌드로 들어가니까, 카트리지 한개에 S/W + H/W가 모두 포함됩니다.


지난번에 "TTR을 일반 DOS2 프로그램과 외부 사운드 카트리지 처리로, TTR 스테이지를 늘려주세요."

정도로 얘기하신 분이 있었는데요.

요즘에는 OPL4 샘플램 2MB를 쓰는 분들이 있으니까, OPL4 용으로 만들어도 가능하긴 할 겁니다요.


이건 관심있는 다른분들이 만들어주시면 좋겠습니다.

짭-DDR은 제가 만들어봤으니, 짭-비트매니아 게임이 나오면 재밌겠네요! ㅎ.ㅎ


심심하시면 아래 플레이 영상도 ㄱㄱ



그럼, 다음 편에서 이어집니다요~