Retro Game & PC/Emulator

MESS apple2e - 옵션 설정 및 화면 조정

smores 2014. 9. 19. 05:10

지난번 포스팅에서 MESS의 apple2e 에뮬레이션을 설명하였습니다. 이번 글에서는 MESS 옵션 설정에 대해 살펴보겠습니다.

 

시작하기에 앞서서 MESS apple2e 에뮬레이션의 장점을 몇가지 정리하자면 

 

1. 색감/화질을 상당히 유연하게 조절할 수 있습니다. 특히 hlsl 옵션을 사용한 화면은 마치 실기를 보는 느낌입니다. (물론 실기보다야 못하겠지만...)

2. 화면 크기를 자유자재로 조절 가능합니다. 특히 LCD 모니터 상에서 타 에뮬레이터에서는 보여주지 못하는 4:3 가로세로비율도 만들 수 있습니다.

3. 조이스틱의 키보드 에뮬레이션이 AppleWin 보다 낫습니다. 

4. 상태저장 가능 (이것은 타 에뮬레이터, ApplePC, AppleWin 도 되므로 상대적으로 큰 장점이라고 까지는 하기 그렇지만)

5. 실행 도중 쉽게 고속모드로 빨리 지나가고 싶은 부분의 skip 가능 (단순히 간단한 키보드 조작만으로... AppleWin에서는 일일히 메뉴에 들어가서 속도 조절 스크롤바를 조정한 후 되돌아 와야 함)

6. UI 가 마우스 없이도 가능. (사람에 따라서는 이것이 불편할수도...)

 

단점이라면

 

1. HGR 화면에서의 하단 4줄의 텍스트 색번짐이 없다. 이것을 감안하고 쓸려면 정말 마음에 듭니다.

2. 기본 렌더링이 조금 너무 퍼지게 만드는 듯한 느낌 (적절한 shadow mask 등으로 커버)

 

 

먼저 에뮬레이션을 원하는 시스템(예를 들어 apple2e)의 시스템명은 앞에서 설명한 바와 같이 supported system 리스트를 확인해서 하는 방법도 있지만 MESSUI 의 맞는 버전을 찾아서 인스톨(이라봤자 실행파일 messui.exe 하나 MESS 디렉토리에 복사해 넣으면 끝입니다)한 후 이것을 실행시켜서 All Systems view를 보면  Directory 라는 컬럼에 옵션으로 넣어줄 시스템 이름이 나옵니다.

 

 

 

앞서 설명한 방법처럼 messui 시스템명 -w [ENTER] 해서 필요한 바이오스를 찾아서 넣어줍니다. 다음으론 이 시스템에서 다룰수 있는 저장매체 (플로피 디스크, 하드디스크, 롬팩 등) 리스트를 다음과 같은 명령으로 볼 수 있습니다. 

 

mess -w apple2e -listmedia [ENTER]

 

일반적으로 롬팩은 -cart1, -cart2 식이 되고, 플로피 디스크는 -flop1, -flop2, 하드디스크는 두개 이상 지원할 경우 -hard1, -hard2, cd-rom 의 경우는 -cdrm, 카세트테잎의 경우는 -cass 식으로 media의 이름이 되고, 각각에 해당하는 지원하는 이미지 파일의 확장명을 주욱 보여줍니다. apple의 경우 hard는 7번 슬롯에 장착한 scsi 인터페이스를 통해 하나만 연결 가능합니다. 때문에 -hard 라는 미디어명이 되고, 이것은 내부 UI 메뉴에서 7번 슬롯에 scsi 를 장착해 놓아야만 리스트에 나타납니다.

 

 

 

앞의 글에서 -writeconfig 옵션을 잠시 언급한 바 있습니다. 이 명령으로 시스템명.ini 파일이 생성되고 그 안을 들여다 보면 많은 옵션들이 보입니다. 그룹별로 대략적으로 살펴보도록 하겠습니다.

 

CORE CONFIGURATION OPTIONS 에서 writeconfig 가 1로 설정되어 있으면 내부 UI 또는 커맨드라인 옵션 인자로 바뀐 옵션값들이 파일에 저장되어 다음번에 다시 일일히 옵션 명령을 주지 않아도 그 설정값을 사용 가능하게 해 줍니다.

 

CORE SEARCH PATH OPTIONS  과 CORE OUTPUT DIRECTORY OPTIONS 카테고리에 있는 옵션들은 여러가지 필요한 파일을 저장하거나 읽어들일때 찾는 디렉토리를 설정하는 곳으로 별도로 수정할 일이 거의 없습니다.

 

CORE STATE/PLAYBACK OPTIONS 카테고리에 있는 것들도 그냥 두어도 됩니다. 여기서 한가지 관심있는 옵션으로는 speed 옵션이 있는데, MESS 설명서를 읽어보면 최대 3.0 까지 속도를 가변할 수 있는 듯 합니다. 오리지널 에뮬레이션은 호스트 컴퓨터의 사양만 충분히 받쳐주면 가능한 원래의 실기 속도를 충실히 재현하게끔 개발되어 있다 합니다. 헌데 조금 빨리 돌리고 싶거나 느리게 하고 싶은 경우, 예를 들면 구형 486 PC - at486 - 에뮬레이션을 할 경우 옛날 도스 게임은 시스템 속도에 따라 동작 속도가 변하는 것들이 간혹 있는데 이 경우 유용하게 쓸 수 있을 것입니다. 본 강좌에서는 나중에 at486 에뮬레이션 도스머신에서 applepc 를 돌려볼 예정인데 이때 에뮬레이션 속도 조절을 이것으로 하는 것이 applepc 자체의 delay 조절보다 나은 것 같습니다. MESS 실행시 도스 프롬프트의 인자로 -speed 0.8 식으로 바꿀 수 있습니다.

 

CORE ROTATION OPTIONS, CORE ARTWORK OPTIONS 내의  항목들은 특별한 일이 없으면 역시 수정할 일이 없으므로 여기선 패스...

 

이제 화질 조절과 관련하여 중요한 내용들이 나옵니다.

 

CORE SCREEN OPTIONS 에 나오는 내용들은 저희가 자주 사용하게 될 옵션들입니다.

-brightness, -contrast, -gamma  값들은 말 그대로 이미지의 밝기, 대비비, 감마 조절에 사용합니다. 나중에 다시 언급하지만 apple2e 드라이버로 에뮬레이션 할 경우라면 default 값 (1.0 1.0 1.0) 을 그냥 사용하거나 스캔라인을 넣을 경우 조금 밝게 (1.2 1.0 1.0 정도) 해도 될 것입니다. 게임에 따라서도 조금 조절해서 본인이 보기 편한 상태로 맞추면 됩니다. 헌데 D3D post processing 이라는 기능 (hlsl_enable, 뒤에 나옵니다) 를 켜게 되면 화면이 많이 뭉게지면서 마치 CRT TV 화면을 보는 것 처럼 부드럽게 만드는데, 이때는 기본값으로 하면 조금 너무 밝게 나옵니다. 저의 경우는 0.75 0.8 1.2 정도에서 원하는 화면을 맞추는 식으로 값 조절을 합니다. 커맨드 프롬프트에서 -brightness 0.75 -contrast 0.8 -gamma 1.2 식으로 overriding 되는데, 간혹 잘 안 먹을때가 있는것도 같습니다. 이 경우 mess apple2e -brightness 0.75 -contrast 0.8 -gamma 1.2  만으로 소프트웨어 수행 안하고 한번 돌렸다가 끝내서 바뀐 내용이 ini 파일에 저장되게 한 후 다시 수행하거나, 아니면 아예 .ini 파일 내에서 이 부분을 바꾸어서 저장한 후 사용합니다. 확실한 방법으로는 원하는 값을 가진 ini 파일을 별도로 만들어서 batch 파일 내에 이것을 복사해서 사용하게 하는 트릭이 있겠습니다. 예를 들어  apple2e_nohlsl.ini 와 apple2e_hlsl.ini 를 별도로 만들어 두고 batch 파일 apple2e.bat, apple2ehlsl.bat 등을 만들어서 내용을 다음과 같이 넣어 둡니다.

 

copy apple2e_nohlsl.ini apple2e.ini

mess apple2e -flop1 game.dsk %*

 

-effect 옵션은 화면위에 aperture grill 을 overlay 하는 효과를 주는데 기본으로 주어진 aperture grill (PNG 비트맵 파일입니다) 들이 artwork 폴더 내에 들어있습니다. 저는 몇가지 수정해서 수평, 수직 scanline 파일들을 색상 진하기 별로 몇개 (scanlineH3.png, scanlineV4.png 식으로) 만들어서 사용하고 있습니다.

 

artwork.zip
다운로드

 

 

CORE VECTOR OPTIONS 은 벡터 그래픽이 쓰이는 경우에 필요한 것 같은데 apple2e 에서는 별 상관 없을 것 같습니다. 패스...

 

CORE SOUND OPTIONS 역시 별로 바꿀 필요는 없을 것 같습니다. 다만 여기서 한가지 알아둘 것은 일부 옵션은 1로 값이 주어진 것이 ON 상태를 나타내는데 이 옵션을 해제하려면 -1 값을 주는 것이 아니라 옵션 이름 앞에 no 를 붙이는 경우들이 있다는 점입니다. 예를 들어 소리가 아예 안나게 하려면 추가 인자 없이 -nosound, 소리가 나게 하려면 -sound 식으로요. 이런 것이 저희가 나중에 자주 쓸 -filter, -nofilter, -hlsl_enable, -nohlsl_enable 이나 (아직은 쓰는방법을 몰라서 항상 꺼 놓기만 할) -noyiq_enable 같은 것들이 있습니다.

 

CORE INPUT OPTIONS, CORE INPUT AUTOMATIC ENABLE OPTIONS, CORE DEBUGGING OPTIONS, CORE MISC OPTIONS, WINDOWS DEBUGGING OPTIONS, 

WINDOWS PERFORMANCE OPTIONS 들은 저도 아직 별로 신경쓰지 않아서 설명을 패스...

 

WINDOWS VIDEO OPTIONS 역시 기본으로 D3D 사용 가능한 호스트 컴퓨터를 쓴다는 가정하에 설명 생략.

 

DIRECTDRAW-SPECIFIC OPTIONS 에는 -hwstretch 1 로 되어 있는데 MESS의 경우 어느정도 성능이 뒷받침되는 PC로 돌려야 원하는 그래픽 효과들을 얻을 수 있습니다. 따라서 이 부분도 하드웨어가 이미지 streching 해 주는 그래픽 카드를 가지고 있다고 가정하고 그냥 기본값으로 사용합니다. 요즘 컴퓨터는 인텔칩 코어에 있는 그래픽 카드 (HD4000 같은..) 정도만으로도 충분히 이런 기능 다 지원합니다.

 

DIRECT3D-SPECIFIC OPTIONS 항목에 유일하게 있는 -filter 옵션은 그래픽 화면을 bilinear smoothing filter 로 부드럽게 만들어 주느냐 마느냐(-nofilter)를 정해주는 것인데, 특별히 텍스트 모드의 application에서 칼같이 딱 떨어지는 픽셀 매칭을 원하는 것이 아닌 이상은 항상 켜 놓고 사용한다고 생각하시면 됩니다. -nofilter 의 경우는 그래픽 화면 사이즈도 실기의 픽셀 해상도와 정확히 맞추어 주어야 찌그러지는 모습 없이 이미지를 볼 수 있습니다. 이에 대해서는 별도의 글에 나중에 다루겠습니다. 이런 상태로 쓰길 원한다면 차라리 AppleWin 등을 쓰는 것을 권장합니다. 제 개인적인 관점에서 MESS를 쓰는 가장 큰 장점은 에뮬레이트된 화면의 사이즈를 임의로 바꿀 수 있다는 점이고, 이 경우에는 당연히 bilinear filter (MESS에서 유일하게 제공하는 filter 이기도 합니다) 를 사용하여야 제대로 부드럽게 찌그러지지 않는 픽셀들을 볼 수 있습니다.

 

다음으로 DIRECT3D POST-PROCESSING OPTIONS 은 오로지 D3D 사용 가능한 윈도우즈 PC 에서만 쓸 수 있는 무척 강력한 기능입니다. 옵션 내용을 깊이 있게 이해하기 쉽지 않아서 저의 경우 일단은 기본값이 아닌 다음과 같은 값으로 바꾸어 놓고 (ini 파일 내의 내용들을 아래의 값으로 바꾸어 저장하세요) 사용하기 시작했고 여기서부터 조금씩 바꾸어가며 나름대로 제가 원하는 수준의 화질을 얻고 있는 상태입니다.

 

hlsl_enable               0

hlslpath                  hlsl

hlsl_ini_read             0

hlsl_ini_write            0

hlslini                   %g

hlsl_prescale_x           2

hlsl_prescale_y           2

hlsl_preset               -1

hlsl_write                

hlsl_snap_width           2048

hlsl_snap_height          1536

shadow_mask_alpha         0.0

shadow_mask_texture       none

shadow_mask_x_count       320

shadow_mask_y_count       240

shadow_mask_usize         0.09375

shadow_mask_vsize         0.109375

curvature                 0.0

pincushion                0.0

scanline_alpha            0.0

scanline_size             0.1

scanline_height           0.1

scanline_bright_scale     0.0

scanline_bright_offset    0.0

scanline_jitter           0.0

defocus                   0.0,0.0

converge_x                0.0,0.0,0.0

converge_y                0.0,0.0,0.0

radial_converge_x         0.0,0.0,0.0

radial_converge_y         0.0,0.0,0.0

red_ratio                 1.0,0.0,0.0

grn_ratio                 0.0,1.0,0.0

blu_ratio                 0.0,0.0,1.0

saturation                1.0

offset                    0.0,0.0,0.0

scale                     0.9,0.9,0.9

power                     0.8,0.8,0.8

floor                     0.0,0.0,0.0

phosphor_life             0.0,0.0,0.0

 

실험을 통한 Direct3D hlsl 옵션 조절에 대한 감을 간략히 정리하자면

 

hlsl 을 끈 상태에서는 -filter 를 세팅한 상태에서 -brightness -contrast -gamma (여기서부터는 BCG 값이라고 간단히 부르겠습니다)만 가지고 화면 밝기 등을 조절할 수 밖에 없습니다.

 

hlsl 을 켜는 순간 제가 위에 정의한 값들의 의미는

 

저는 hlsl에서 정의하는 shadow mask나 스캔라인을 사용하고 싶지 않았습니다. 그래서 

shadow_mask_alpha         0.0

shadow_mask_texture       none

scanline_alpha 0

로 정의하였습니다.

 

그리고 이 이상 화면을 blurry 하게 하고 싶지 않아서 defocus 값들은 0

 

convergence는 바꿔도 효과를 잘 모르겠네요.

 

curvature 는 스캔라인, 보더의 휨, pincushion 은 오리지널 이미지의 볼록이 정도입니다. 둘 다 0.03 정도면 그런데로 볼만한 볼록이 CRT 느낌이 납니다.

 

floor 값을 주기 시작하면 백그라운드가 너무 떠버립니다. (저는 대비비가 높은것을 원합니다.)

 

이런 식으로 hlsl 값을 적당히 조절하여 자신이 원하는 화면을 만들게 되면 apple2 에뮬레이션 화면이 더 이상 단순히 도트를 찍어서 만든 에뮬레이션 화면같지 않고 상당히 CRT/TV 화면에서 보는듯한 느낌이 살아납니다. 이 정도 화면이면 단순한 Galaxian이라도 꽤 할 맛이 나더군요. 

 

 

 

 

각 파라메터별 더 자세한 내용을 알고 싶은 분은 이곳으로...

 

http://mamedev.org/source/docs/hlsl.txt.html

 

 

 

NTSC POST-PROCESSING OPTIONS 은 아직도 잘 사용할줄 몰라서 disable 해 놓고 있으므로 설명은 패스.

 

VECTOR POST-PROCESSING OPTIONS, BLOOM POST-PROCESSING OPTIONS 역시 패스.

 

PER-WINDOW VIDEO OPTIONS 는 여러 스크린에 화면을 보내는 경우인 것 같은데 저의 경우는 하나의 스크린만 다루므로 그냥 auto 로 사용합니다. -aspect 나 -resolution은 auto 로 하면 무방하고, -w 옵션으로 전화면이 아닌 윈도우 화면으로 시작하면 스크린 사이즈를 마우스로 윈도우 사이즈를 조절해서 바꿀 수 있으므로 특별히 값을 지정하지 않아도 무방합니다만, 저의 경우 시작부터 화면 가득한 사이즈는 싫고 해서 보통 -resolution 560x384 -nokeepaspect 로 해서 시작은 타 애뮬레이터와 같은 사이즈로 하고 -nokeepaspect 옵션 덕에 임의의 사이즈/가로세로비율로 바꿀 수 있게 하고 사용합니다.  -keepaspect 옵션으로 사용하면 주어진 해상도보다 작은 범위 내에서 기본 aspect ratio를 지키면서 윈도우 사이즈가 조절되는 것 같습니다.

 

 

다음으론 알아두면 유용한 몇가지 UI 단축키입니다.

 

먼저 UI enable 모드로 들어간 상태에서

 

F10, INS - 빨리 넘어가고 싶은 부분이 있을때 유용합니다. 

Shift+F7/F7 - 상태 저장, 불러오기

F3, Shift+F3 - soft/hard reset

p - pause

F12 - screen capture

 

MESS 매뉴얼에 더 자세히 나옵니다.

 

 

http://www.mess.org/mess/howto

 

이정도로 정리하고 제가 주로 사용하는 ini 및 batch 파일을 함께 올리며 이번 글을 마칩니다.

 

apple2e-ini-bat.zip
다운로드