이번 '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 -