2020년 9월 30일 수요일

[분석]오락실 해킹롬의 요람,HBmame(메탈슬러그,킹오파 핵롬설명)

[본 게시글은  2020. 4. 9. 21:30에 작성된 글을 아카이브화를 목적으로 하였음을 분명히 밝힙니다]


 오래전, 중국의 오락실 게임 서비스 중포루(arclive), GOTVG등의 여러 플랫폼에서 처음으로 오락실의 해킹롬을 봤을때 신선한 충격을 받았었다. 당시에 해킹롬의 정의도, 방법도, 존재조차도 몰랐던 필자에게 당시 메탈슬러그에 미쳐있던 나로선 당시에 만연하던 모바일게임의 메탈슬러그 디펜스의 아성에 조금은 유저들을 PC에서 메탈슬러그를 키게 만들 수 있지 않았을까 기대하여 소개했었으나, 결과는 그리 썩 좋진 않았었다. 그렇게 해킹롬이 있다 한들, 그렇게 대중들에게 관심을 끌만한 요소는 아니었나보다 하면서 필자 나름대로 관심있게 보던 것이라 이것저것 정보를 모았었다.


최근에 블로그 분석을 보니, 모바일 에뮬레이터와 메탈슬러그 시리즈등의 해킹롬에 관심을 가진 사람들이 많았나보다.

분석한 게시글들이 통계적으로 높은 수치를 기록하고 있어서 언제 이렇게 관심을 가졌는지는 모르나, 블로그들을 돌아본 결과 핵롬의 개요까지는 대부분 건드렸으나 어느 한 부분을 전문적으로 분석해놓은 블로그는 아직 보이지 않아, 사람들이 찾아다니기에는 아직은 많이 힘든 환경이라고 생각이 든다. 만약 이 블로그에 이 글을 읽고 있는 사람이 메탈슬러그, 킹오파 핵롬의 대해 정보를 찾고 있던 사람이었다면, 조금은 도움이 되었다면 의미없는 게시글은 아닐것이다.


단 이 게시글의 수준은 기본적인 마메의 사용법이 숙지된 상태의 유저들에게 맞춰져 있을 것이다.

만약 네오지오 게임이나 마메를 구동하는 데 있어서 롬파일과 바이오스의 개념을 아예 모르는 생초보 유저들이라면 본 게시글의 난이도가 조금은 높게 나올 수도 있을 것이다.


해킹롬의 시작,그리고 hbmame

사실 해킹롬의 시작은 에뮬레이터 붐이 일으키게되면서 필연적으로 일어날 수 밖에 없었을 것이다.

당장 필자가 인생에서 처음으로 봤던 해킹롬은 바로 더 킹오브 파이터즈 97의 보스패치 핵롬으로, 대전격투 게임의 보스를 한번 골라보기 위해 엄청난 작업들을 했을 것이다.

파생된 마메 버전 및 기타 오락실 아케이드 에뮬레이터들은 이러한 해킹롬들의 수요를 알고 있었고 이를 패치하기 위해 거진 노력을 했지만 그 수많은 핵롬들을 어떻게 다 관리할 수 있겠는가. 결국 모든 에뮬레이터들이 모든 핵롬을 지원하지는 못하고 결국 HBmame를 제외한 나머지 에뮬레이터들은 요청이 들어오는 핵롬들만 작업을 하기 시작했고 핵롬들의 데이터베이스를 축적하는 개념으로 작업되는 것은 hbmame만 남게 된다.


https://hbmame.1emulation.com/


The HBMAME Place - HBMAME

You can compile your own binary by accessing the listed github repository, and using the tools and options listed above. This is provided as a license requirement only. Compile issues are not supported. You're on your own. HBMAME artwork and source.

hbmame.1emulation.com

HBMAME(HomeBrew Mame)

아예 개발된 목적 자체가 홈브류의 개조된 버전들을 담아내기 위해 만들어진 버전이라고 이름에 솔직하게 박혀있는 녀석이다.

실제로 다운받아서 조사한 핵롬들이 한 게임당 수십가지씩 박혀있다면 여러분은 무슨 생각을 할 것인지 궁금하다.


역사등은 여러분들이 원하는 정보가 아니니 가볍게 넘어가겠다.


우선 핵롬을 구동하고 관리하는 데 있어서 필요한 정보들을 빠르게 스캔해보자면


1. 핵롬의 구성형태(부모롬과 부분롬)

2. 아케이드 롬파일의 구동과정 + 핵롬의 구동과정

3. 관리


우리가 일반적으로 마메를 보유하고 관리를 하게 되면 우리는 다음과 같은 roms폴더를 가지게 된다.

각 게임의 rom파일과 바이오스 또한 용량은 100mb를 넘어가는 경우가 거의 없다

그러나 hbmame의 파일들을 살펴보자.(본 게시글의 hbmame버전은 0.217버전을 활용하였음을 밝힌다.)

메탈슬러그3 롬파일의 용량은 100을 넘어가지 않는 70~80mb의 용량이다.

그러나 hbmame 0.217버전의 용량은 400mb를 훌쩍 넘는 괴물같은 상태인 것이다.

그러나 저 400mb를 통해 구동할 수 있는 "메탈슬러그3만의 개조롬"은 120가지 이상이라면 여러분은 믿겠는가?


그렇다면 여기서 일반적인(?) 발상의 질문이 가능하다.


"메탈슬러그3 핵롬만 120가지가 있다면, 메탈슬러그3의 용량은 80mb라고 했는데

그럼 120*80 = 9600mb = 9.6GB의 용량이 되어야 하는데 400mb밖에 안나온다는 건데 너무 과장한 것 아닌가?"


충분히 나올 수 있는 질문이다. 이것은 다른 초기 개발자들 또한 머리를 굴려서 나온 기법으로,

바로 부모롬과 클론롬의 분할이다.


부모롬, 말그대로 모체가 되는 롬

클론롬, 모체와 겹쳐지는 부분을 뺀 차이가 나는 부분만을 가지고 있는 자식같은 롬파일(ex해킹개조롬)


마메를 프로그래밍을 하여 컴파일을 하는 과정중에서 게임을 추가하는 작업을 하게되는데 이것을 "드라이버 추가"라고 표현을 한다.

이 "드라이버 추가"작업을 할때, 해킹롬을 추가해주는 작업을 하게 되면, 부모롬을 지정해주는 작업을 하는데,


ex) 메탈슬러그3 해킹롬 <mslug3h01.zip>을 추가하면서 부모롬을 mslug3.zip으로 지정을 한다고 가정한다면,

이렇게 되면 마메에게 이렇게 명령을 하는 것으로 간주된다.


"mslug3h01을 로드하는데, 만약 mslug3h01에 필요한 파일들이 없으면, mslug3.zip에서 끌어다가 써라."


이렇게 되면 mslug3h01이 다음과 같이 모든 롬파일들이 없을경우,

없는 롬파일 구성들을 모체가 되는 mslug3.zip에서 끌어다가 쓰는 방식이 부모롬,클론롬 방식이다.


즉, 파일들을 중복해서 관리하지 않도록 구성하여 시스템을 돌아가도록 구성했는데 이러한 방식으로 관리되는 롬을

merge,즉 병합되었다 하여 <merge방식>으로 구분하여 현재도 핵롬을 취급하는 에뮬레이터들이 널리 사용하는 방식이다.


그리고 이러한 merge방식으로 하여 원롬에서 패치된 핵롬파일들만 로드하여 불러내면 게이머들은 개조된 핵롬 데이터를 볼 수 있게 되므로, 해킹롬을 즐길 수 있게 되는 방식인 것이다.


본 게시글과 HBmame의 소개 시리즈는 다음과 같은 목적아래 진행될 예정이다.

1. HBmame의 사용설명서

2. 메탈슬러그 시리즈의 핵롬의 대한 정보 아카이브화(롬파일 배포한다는 의미가 아님)

3, 앞으로 사용할 본 블로그에서 배포된 GGPOP2P emulator의 롬셋 정리(조만간 hbmame의 기준으로 업데이트예정)


앞으로도 질긴 여행이 될 것이다. 본 내용들을 이해하면서, 간단한 다과를 즐기면서 머리를 식힌뒤, 다음 게시글을 찾아보는 것을 추천한다.

댓글 없음:

댓글 쓰기