컴퓨터 관련 글

DOSBox 에 대해서

Bret Hanson 2010. 9. 19. 17:52

어릴때 처음으로 접한게 바로 DOS 였는데, GUI 방식이 아닌 명령어로 입력해서 실행해야 하는 방식이라 초보자에게는 불편했습니다. 그래서 편리하게 프로그램을 실행하기 위해서 나온게 MDir 인데 486 시절에 이 프로그램을 처음 접하게 되었습니다. DOS 명령어에 m 을 치면 쉘방식으로 나왔을 때가 가장 기억이 남습니다. 그 후로 펜티엄 시절에 Windows 95 를 접하게 되었고, 후에 Windows 98 을 접하게 되었습니다. Windows 98 시절에 MS-DOS 로 DOS 게임을 돌렸던게 기억이 남습니다. DOS 를 한글모드로 할 때 게임을 돌리면 화면이 깨지는 문제를 겪었던 기억이 있었는데(아무래도 DOS4GW 를 쓰는 게임에서 그런걸로 추정됨), hcode 명령어로 영문을 바꾸고 게임을 돌리니까 화면이 제대로 나왔던게 기억이 납니다. 그 후 Celeron 시절에 Windows 2000 을 접하게 되었을때 인터페이스는 거의 기존이랑 동일하지만 한가지 차이점은 있었습니다. MS-DOS 프로그램이란게 없는데, 대신 명령어 프롬프트란게 존재합니다. 그렇지만 DOS 게임의 호환성은 기존의 9x 계열에 비해서 떨어질 수 밖에 없었고 왠지 낮선 느낌이 들더군요.

 

우리는 이 때까지 몰랐던게 Windows 9x 계열(Windows 1.x 부터)은 DOS 기반에서 작동하는걸 아실껍니다. 16비트 하위호환 때문에 불안정한 요인이 되고, 특히 CD 를 넣고 빼면 바로 블루스크린이 뜰정도로 불안정했었습니다. 툭하면 오류메세지가 나오니 불안정한 OS 라는 오명이 나올수 밖에 없는데, 안정성을 위해서 MS 가 어쩔수 없이 9x 커널을 포기하고 NT 커널을 대체하게 됩니다. 그래서 나온게 Windows XP 입니다. 따라서 9x 커널의 포기로 16bit 및 DOS 의 하위 호환성을 포기했지만, 대신 하위호환은 가상으로 NTVDM 으로 DOS 를 동작하게 됩니다. 그리고 16bit 응용프로그램은 전부 wowexec(NTVDM 밑에서 동작)에서 동작하게 됩니다. 그렇지만 DOS 게임은 그러저럭 돌아가긴 하지만 문제는 바로 사운드 출력부분입니다. 사운드에서 소리가 안나는 문제가 있었는데, 그 원인은 DOS 게임은 사운드 카드가 ISA 규격에 맞게 호환되어서 그런겁니다. 그래서 나온게 VDMSound 입니다. 이 프로그램은 NTVDM 에서 동작하는 DOS 게임에서 ISA 사운드 카드를 가상으로 구현해주는 역할을 합니다. 예전에 Windows 9x 시절에 PCI 사운드 카드가 등장으로 드라이버에서 DOS 기반에서 ISA 사운드 카드를 가상으로 구현되는 기능이 있었습니다.

 

그럼에도 불구하고 한계를 극복하기 위해서 나온게 DOSBox 입니다. 이 프로그램은 GNU 라이센스로 되어있으며 소스도 공개되어있어서 누구든지 쓸 수 있습니다. 왠만한 게임은 전부다 완벽하게 작동되지만 일부는 충돌이 생기거나 불안정하게 나오는 경우도 있습니다. 실제로 어릴때 해봤던 게임들은 왠만하면 다 되더군요. 그런데 Windows Vista/7 에서는 DOS 모드에서 풀스크린 미지원으로 어쩔 수 없이 DOSBox 로 돌려서 게임을 할 수 밖에 없습니다. 물론 VMWare 로 DOS 를 돌리는 방법도 있지만 아직 드라이버가 미흡(CGA 및 EGA 모드에서는 문제가 있음)해서 제대로 돌리기가 어렵습니다.