카테고리

전체 (1262)
PC 게임 (1230)
오락실 게임 (13)
기타 (19)

최근에 달린 댓글


<dosbox-0.73.conf - [serial]>



serial1 - serial4
값 : dummy(serial1과 serial2의 기본값),
disabled(serial3과 serial4의 기본값),
modem, nullmodem, directserial
멀티플레이를 위한 com 포트의 장치를 지정합니다.


예전에는 지금처럼 잘 갖춰진 인터넷 환경이 없었기 때문에 도스 게임은 PC 간에 직접 연결된 케이블이나 IPX를 통해 멀티플레이를 지원했습니다. 도스박스는 발전한 현재 상황을 활용해서 공유기로 연결된 네트워크 환경이나 인터넷 환경을 그대로 이용하면서 도스 게임에는 마치 오래된 방법인 것처럼 인식하게 합니다.

IPX는 <[ipx]> 섹션에서 설명합니다.


값 중 modem은 지금은 거의 이용하지 않는 전화선을 이용하는 모뎀입니다. directserial은 실제 PC의 시리얼 포트를 그대로 사용합니다.

 

nullmodem은 추가 장치 없이 두 PC의 시리얼 포트에 케이블을 연결하는 방법으로 핵심이 되는 내용이며 이 글에서 설명합니다. 도스박스는 이 환경을 케이블 없이 가상으로 만들어 줍니다.

 

<워크래프트 2(Warcraft 2)의 널 모뎀 멀티플레이 메뉴>


<둠(Doom)의 널 모뎀 멀티플레이 메뉴>

 

도스박스의 설정에서 멀티플레이 환경을 만든 후에는 게임에서 이용하는 방법을 알아야 합니다. 여기서는 하드웨어 구성에 해당하는 부분만 알아보고 게임은 <워크래프트 2(Warcraft 2)의 널 모뎀/IPX 멀티플레이>와 <둠(Ultimate Doom)의 널 모뎀/IPX 멀티플레이>에서 설명합니다.

멀티플레이 게임을 위한 일반적인 구성은 두 대의 PC에서 도스박스를 하나씩 실행하는 것입니다. 하지만 도스박스는 PC를 에뮬레이션하는 프로그램이므로 테스트를 위해 한 대의 PC에서 두 개의 도스박스를 실행할 수도 있습니다. 이때는 도스박스 설정 파일을 하나 더 만들고 두 번째 도스박스는 새 설정을 참조하게 해야 합니다. 멀티플레이를 위한 설정이 두 도스박스에서 다르기 때문입니다.

 
한 대의 PC에서 두 번째 도스박스 준비하기
도스박스 0.72 이하의 버전에서는 아래의 방법을 따라도 되고 단순히 도스박스 폴더를 통째로 복사해도 됩니다. 0.73에서는 아래의 방법으로 합니다.

기존 설정 파일을 "C:\dosbox-0.73 second.conf"처럼 임의의 파일로 복사합니다. 기존 파일의 위치는 <도스박스의 캡쳐/설정(콘피그) 디렉토리>의 2번에 나와 있습니다. 또는 도스박스 실행 후 다음의 코드를 쳐도 현재의 설정 상태가 파일로 만들어집니다.


config -writeconf "C:\dosbox-0.73 second.conf"


두 결과는 같지만 코드로 쳐 넣었을 때는 기존에 사용자가 넣은 주석이 누락되는 등 모습은 달라집니다.

도스박스 바로 가기를 새로 만들어서 등록 정보에 그림과 같이 새 설정 파일을 참조시킵니다. 이제 기존의 바로 가기는 기존 설정 파일을, 새 바로 가기는 복사한 설정 파일을 읽게 됩니다.

 

두 개의 도스박스 중 아무 쪽이나 1이라고 부르고 나머지 하나를 2라고 부릅니다. 두 대의 PC를 이용하든 한 대를 이용하든 방법은 같습니다.

도스박스 1
serial1=nullmodem
serial2=dummy
serial3=disabled
serial4=disabled


도스박스 1의 설정 파일에서 네 개의 시리얼 포트 중 하나를 nullmodem으로 변경합니다. 시리얼 포트에 케이블을 꽂는 방식으로 설정한 것입니다.

도스박스 2 - 미완성
serial1=nullmodem
serial2=dummy
serial3=disabled
serial4=disabled


도스박스 2에도 한 곳을 nullmodem으로 변경합니다. 그런데 실제 PC였다면 케이블을 물리적으로 연결하기 때문에 꽂는 것만으로 대상이 정해지지만 지금은 도스박스 간에 연결된 상태가 아닙니다. 도스박스끼리 서로 연결해주는 무언가가 필요한데 도스박스는 현재의 발전한 네트워크 환경을 활용해서 IP로 접속을 하기 때문에 공유기로 연결된 PC나 멀리 떨어진 PC에도 연결할 수 있습니다.

도스박스 2 - 완성
serial1=nullmodem server:192.168.0.10
serial2=dummy
serial3=disabled
serial4=disabled


도스박스 2에는 추가로 server 옵션을 붙여서 도스박스 1 PC의 IP를 지정합니다. 이렇게 nullmodem같은 각각의 값에는 과거의 장치나 에뮬레이션을 위해 덧붙일 수 있는 옵션이 있습니다. 한 대의 PC에서 두 개의 도스박스를 실행했을 때도 똑같이 도스박스 1 PC 즉, 같은 PC의 IP를 지정하면 됩니다. 그리고 같은 PC상의 IP일 때는 자신의 PC를 지칭하는 특수한 IP와 키워드인 127.0.0.1 또는 localhost를 대신 사용해도 됩니다.

도스박스 1의 설정은 아무 옵션이 없었지만 외부로부터 접속이 들어오기를 기다린다는 의미이며 도스박스 2의 설정은 해당 IP로 접속을 시도하는 의미입니다.

 

IP 알아내기
IP를 알기 위해서는 윈도우의 명령 프롬프트 창에서 ipconfig라고 치면 확인할 수 있습니다. 여기서는 도스박스 1 PC에서 알아내고 도스박스 2의 server 옵션에 적어야 합니다.

인터넷상의 공유기 환경의 PC
위의 방법은 예를 들어 도스박스 1의 위치가 친구네 집이고 친구가 공유기를 사용한다면 사용할 수 없습니다. 친구가 위의 방법으로 알아낸 IP는 친구 집에서만 사용하는 내부 IP이기 때문에 바깥에서는 접속이 안 됩니다. 내부 IP는 보통 192.168로 시작합니다. FTTH, ADSL 등의 회선으로부터 직접 받는 외부 IP를 알기 위해서는 공유기 설정으로 들어가서 외부 IP란을 보거나 아래의 사이트 중 한 곳에 들어가도 큰 글씨로 나옵니다.

 

http://www.ip-adress.com/
http://whatismyipaddress.com/

TCP 통신은 포트 번호를 통해 데이터를 주고받는데 도스박스는 기본값으로 23번 포트를 사용합니다. 다른 P2P 프로그램과 마찬가지로 도스박스가 사용하는 포트 번호에 대해 공유기의 포트 포워드 설정도 해야 합니다.

친구 공유기의 포트 포워드 설정에 항목을 추가합니다. ipconfig를 쳐서 알아낸 내부 IP 입력, TCP 방식, 23번 포트를 지정해야 도스박스 2로부터 공유기까지 들어온 신호가 도스박스 1 PC에 전달됩니다.

포트 번호 기본값인 23번을 인터넷 업체가 막아놓은 경우 신호가 대상 회선으로 가지 않습니다. 이때는 port 옵션을 이용해서 도스박스가 다른 포트를 사용하도록 합니다.

도스박스 1
serial1=nullmodem port:35000


번호는 65535 이하에서 무작위로 결정합니다.

도스박스 2
serial1=nullmodem server:211.113.36.10 port:35000


도스박스 1과 2의 포트 번호는 일치해야 합니다. IP는 도스박스 1 PC의 외부 IP의 예입니다. 포트 번호를 변경했으면 포트 포워드 설정에서도 같은 포트를 열어야 합니다.

 

<23번 포트를 열고 대기하는 도스박스 1>

이제 설정이 끝났습니다. 도스박스 1을 실행하면 메인 창은 보통 때와 같이 동작하면서 내부적으로 널 모뎀 방식을 구현하기 위해 접속에 대기하며 Status 창에도 메시지가 나옵니다.

 

<도스박스 1(위쪽)과 도스박스 2>
 

도스박스 2를 실행하면 도스박스 1의 IP로 접속을 시도하고 연결됩니다. 도스박스 2가 접속을 시도하기 전에 도스박스 1이 먼저 대기 상태에 있어야 하므로 순서대로 실행해야 합니다.


이제 시리얼 케이블로 두 PC를 연결한 것과 같은 상태가 됐으며 게임에서 널 모뎀 방식의 멀티플레이를 할 수 있습니다.


<워크래프트 2(Warcraft 2)의 널 모뎀/IPX 멀티플레이>
<둠(Ultimate Doom)의 널 모뎀/IPX 멀티플레이>

 

Posted by Passing