소프트웨어

웹브라우저 도스박스(EM-DOSBOX)용 게임 패키지 툴 소스

heon2slow 2022. 12. 14. 00:25
반응형

EM-DOSBOX는 고전게임 에뮬레이터인 DOSBOX를 기반으로 하며 별도의 다운로드나 설치없이 웹페이지에서 바로 도스게임을 즐길 수 있도록 하는것을 목적으로 하고 있습니다.
EM-DOSBOX 구동파일을 웹사이트서버에 설치해두고 서비스 하고싶은 고전게임파일을 패키징해서 넣으면 사이트 방문자가 웹에서 바로 게임을 즐길 수 있게 됩니다.
예전 추고넷에서도 서버에 EM-DOSBOX를 설치하고 수십가지 고전게임을 패키징해서 서비스 한적이 있습니다.

지금은 웹사이트를 따로 운영하지는 않지만 만약 웹사이트를 또 만든다면 EM-DOSBOX는 무조건 서비스 하고 싶습니다.
그때를 대비하여 기록을 해두는 차원에서 포스팅합니다.
어려운 기술은 아니더라도 시간이 지나 막상 하려고 하면 기억이 잘 안나서 첨부터 다시 공부하느라 시간이 많이 허비되거든요.

EM-DOSBOX에도 여러 리포짓들이 있었는데 그중 파이썬을 이용해서 게임을 패키징 하는 방식을 제공하는 깃허브 리포짓이 있습니다.
사용해보니 하나의 게임을 패키징 하기 위해 CMD에서 명령어를 여러번 입력해야 했는데 그 과정이 상당히 번거롭기 때문에 배치파일을 짜서 간단하게 패키징 할 수 있도록 툴을 만들어봤습니다.
배치파일은 예전 DOS시절부터 컴퓨터를 했던 분들은 다들 많이 만들거나 뜯어 보셨을 겁니다.
저 역시 어렸을적 DOS게임을 하느라 배치파일을 많이 만들어 봤었는데 현시대에 다시 만들게 될 줄은 몰랐습니다.
배치파일에서 변수를 입력받을 수 있게 하는 부분에서 조금 고생했습니다.

실행하면 위와같이 간단한 화면이 뜹니다. 이후 단계별로 진행하면 패키징이 완료됩니다.



제가 만든 배치파일 코드는 아래와 같습니다.

 @echo off
 :step1
 cls
echo.
echo Choogo.net EM-DosBox  RePack Tool (made by Heony)
echo.
echo 주의사항 :
echo -----------------------------------------------------------------------------
echo 1. Python V2.7이 설치되어 있어야 하며 환경변수에 등록되어 있어야 합니다.
echo 2. 입력하는 모든 값은 대소문자를 구별해 주세요.
echo 3. 출력물인 html 과 data 파일은 output 폴더에 생성됩니다.
echo 4. input\게임폴더\실행파일 의 경로를 지켜주세요.
echo 5. [붙여넣기]는 cmd 창에서 마우스 우클릭을 이용해 주세요.
echo -----------------------------------------------------------------------------
echo.
:step2
echo 아래명령줄에 input 폴더에 들어있는 게임의 폴더명을 입력하세요
echo.
set /p input= - 폴더이름 : 
echo.
echo 아래 명령줄에 게임폴더에 들어있는 실행파일을 확장자 포함하여 입력하세요. 
echo [s] 나 [b]를 입력하면 첫화면으로 돌아갑니다.
echo.
set /p run= - 실행파일 : 
if %run%==s goto step1
if %run%==b goto step1
cls
echo.
echo 변수 입력 상태 확인
echo -----------------------------------------------------------------------------
echo 폴더이름 : %input%
echo 실행파일명 : %run% 
echo -----------------------------------------------------------------------------
echo.
echo python repackager.py output\"%input%" input\"%input%" "%run%"
echo.
echo 위의 명령어를 실행하려 합니다.
echo.
set /p proceed= 진행할까요? (y/n) : 
if %proceed%==b (goto step1) else if %proceed%==n (goto step1) else if %proceed%==y (goto step3) else (goto step3)
:step3
cls
echo 패키징 및 HTML작성중...
python repackager.py output\%input% input\%input% %run%
echo 모든 작업이 완료되었습니다.
pause
cls
goto step1