자유게시판에는 정말 오랜만에 글을 올려 드리게 되었습니다.


얼마전 xoxo 님의 요청으로 No Nag 및 화면 재생 빈도 60Hz 강제 고정 기능을 넣은 공식버젼을 올려 드리느라 오랜만에

자료를 올리느라 글을 올렸었습니다만 이번에 새로운 소스코드를 얻게 되어 잡담도 할겸 다시 글을 올려 드리게 되었습니다.


아... 그런데 뭘 드리지도 못하는데 자료를 테스트를 부탁드리는 글이군요... -_-;;    


다름이 아니라 얼마전에 다다달님께서 올려주신 변종 버젼인 groovyMAME 배포 소식을 통해  감사하게도 groovyMAME 측에서

소스코드를 공개한 것을 알게 되었습니다.

(그런데 이 변종버젼에 대해 공식 MAME 팀에서 저작권과 관련해서 별다른 말을 않하고 있나 보군요. 몇년전에 자유소프트웨어로

 저작권을 바꾸면서 변종 버젼을 만들려면 모든 기부자들의 허락을 맡아야 한다고 공표함에 따라 당시 이에 반발한 거의 모든

 변종버젼 제작자들이 제작을 중단하기에 이른 사태가 있었습니다만... 그러고 보니 MAMEUIFX 를 승계한 ARCADE 도 별 문제

 없이 버젼업되어 계속 나오고 있는걸 보면 특별히 제제를 가하고 있지는 않은 모양입니다. 알면서도 안하는 건지도 모르겠군요.)


소식란에서 다다달님의 groovyMAME 소개글을 보셨으면 아시겠습니다만 화면에 CRT 느낌을 나게 만들어 준다는 변종 MAME

인데 저는 여기서 눈에 띠는 글귀가 하나 있었습니다.


' 입력대기시간 감소 '   


에뮬레이터는 과거 실제 기기가 하던 동작을 흉내는 과정을 한 번 거친후 이를 PC 에서 구현시키기 때문에 소위 인풋랙(Input Lag)

이라는 것을 태생적으로 가지고 있을 수 밖에 없습니다. 즉, 내가 키를 눌렀을때 이것이 곧바로 처리되어 게임 화면에 적용되는

것이 아니라 모든 경우마다 실제 기판에서 했던 동작을 흉내내는 과정을 한번 거치게되기 때문에 이를 처리하느라 소모되는

시간만큼 (아주 미세한 시간일 지라도) 키를 누른 결과가 한박자 늦게 실제 게임 화면에 적용된다는 이야기가 됩니다.


심지어 예전 소스코드를 뒤적거려 보다가 0.25초의 입력 대기시간과 관련된 코드를 발견하기도 하였습니다.

(최신 버젼(글 쓰는 현재 0.201 버젼)에서는 몇 초의 대기시간을 두는지 찾지는 못하였습니다.)


이는 회원님들께서 추억의 게임을 MAME 를 통해 플레이 하시다가 생각한 대로 플레이가 되지 않으신다면 이는 나이가 드셔서

반사신경이 떨어지거나 해당 게임의 플레이 감을 잃어 버리셔서 그런것이 아닐지도 모른다는 이야기가 됩니다.

(그렇다면 여러분들은 아직 예전 실력이 죽지 않으신겁니다. ^^;)   

제가 컴파일하여 올려드린 Smooth 버젼을 찾으시는 이유가 발매 당시 화면 재생빈도가 60Hz 가 채 안되던 NEOGEO 와 CAPCOM

사의 격투게임들에서 소위 이 인풋랙(Input Lag)이라는 것 때문에  커맨드가 잘 들어 가지 않던 것이 Smooth 버젼에서 화면 재생

빈도를 60Hz 로 고정 시킴으로서 자연스레 특정 게임들에서는 기본 재생빈도가 올라가 게임이 약간 빠르게 구동되는데 이 때

인풋랙이 약간 해소되는 효과때문이신줄로 압니다만...


만일 groovymame 에서 입력 대기 시간 감소 기능과 관련된 코드만 따로 분리해 내어 Smooth 버젼에 함께 적용해 볼 수 있다면

이론상 인풋랙을 더 줄여 볼 수 있을것 같아 groovymame 의 코드를 살펴보고 해당 기능과 관련된 소스코드를 분리해서 많이들

사용하시는 변종 MAME 인 ARCADE 0.201 버젼의 소스코드에 적용해 봤는데 오류없이 컴파일이 잘 된것 같습니다.


이제 성능테스트를 부탁드려볼까 합니다.


ARCADE 0.201 64비트 버젼을 기본으로 하여 두 가지 형태의 테스트용 버젼을 준비했습니다.



● 노네그, 입력대기시간 감소기능만 적용한 버젼


    - 순수하게 입력대기시간 감소기능만을 테스트를 위해 Smooth(화면 재생 빈도 강제 60Hz 고정) 기능을 일부러 넣지 않았습니다.

      이에 따라 Sync to Monitor Refresh 옵션은 기본값인 ' 0 - 적용하지 않음 ' 으로 설정되어 있습니다.

    - 다른 버젼과의 구분을 위해 창의 제목표시줄에 ' ARCADE64 0.201  No Nag & R.I.L ' 이라고 표시됩니다.

      여기서 R.I.L 은 Reduced Input Latency 를 줄인것입니다. (풀어쓰니 너무 길어지는 것같아서...)

    - [ 해당 버젼 다운로드 링크 ] ← 클릭하세요.    



● 노네그, Smooth(화면 재생 빈도 60Hz 강제 고정), 입력대기시간 감소기능을 모두 적용한 버젼

    - 입력대기시간 감소기능이 Smooth(화면 재생 빈도 강제 60Hz 고정)과 함께 사용되었을 경우 나름 시너지 효과가 있는지를

      테스트하기 위해 노네그(No Nag) + Smooth + IRL(Reduced Input Latency) 형태로 모든 기능을 넣어 컴파일 하였습니다.

      이에 따라 Smooth 기능과 연계된 Sync to Monitor Refresh 옵션은 기본값이 ' 1 - 적용 ' 으로 설정되어 있습니다.

    - 다른 버젼과의 구분을 위해 창의 제목표시줄에 ' ARCADE64 0.201  No Nag & Smooth & R.I.L ' 이라고 표시됩니다.

    - [ 해당 버젼 다운로드 링크 ] ← 클릭하세요.    



글을 올리는 금일은 휴일인군요. 쉬고들 계실텐데 괜한 일거리 하나 던져드리는것 같아 송구스럽니다만
관심 있으신 회원님들의 참여를 부탁드려봅니다.