본문 바로가기
카테고리 없음

윈도우11에서 고전 게임기 및 오락실 게임용 원본 해상도 출력을 위한 CRT emudriver 설치 및 이용기(윈도우11, AMD R7 250 및 R5 340)

by 월반장 2023. 1. 29.

최근에 Mister FPGA 나 라즈베이파이에 VGA666을 물려 콘솔기의 원본 해상도로 게임을 즐기면서 

 

윈도우11에도 뭔가 수를 써서 편하게 해보자 라는 마음을 먹고 이것저것 사고 설정하고 삽질도 해보았습니다.

(과정자체가 편하지는 않았습니다.)

 

이리 저리 정보를 알아보니 구형의 ATI/AMD의 카드가 있다면 커스텀드라이브를 통해 그 시절의 오락실 및 콘솔 게임기의 해상도(15khz, 320x240p, 640x480i 등)를 출력시킬 수 있고,

 

유틸을 이용해 복잡한 오락실과 콘솔기들의 수많은 해상도를 그래픽카드에 역시 커스텀해상도로 입력시켜서 

 

특정의 에뮬레이터 및 프런트앤드 프로그램 등 (그루비 마메, 레트로아크 등)에서 해당 게임기 혹은 게임의 원본해상도 혹은 최대한 가까운 대체 해상도로 출력시킬 수 있다는 것을 알게되었습니다.    

*이때 출력시킬 디스플레이는 그 시절의 브라운관 티비, 혹은 방송용 브라운관모니터, 2모드 혹은 3모니 멀티포맷 모니터와 같은 CRT(브라운관)이어야 합니다. 그리고 이런 종류중에서 RGB가 입력되는 종류여야 하며 최소한 컴포넌트는 (컨버터를 이용해 입력) 있어야 오락실에서 본 화질이 나오게 됩니다. 국내의 브라운관 티비는 RGB입력되는 것이 거의 없어서(외수가 아닌 이상 전무한게 아닌가 싶습니다.) 개조를 해야합니다. 물론 컴포넌트입력은 꽤 있으나 컴포넌트는 RGB입력을 다시 컨버팅해주어야 합니다.

 

정보를 얻는 와중에 최근에는 이러한 방법들이 리눅스가 메인이 되어 윈도우로는 문제가 많을 거다 라는 설명도 들었습니다. 특히 윈도우11의 CSM활성화 문제와 관련해서 CSM을 활용하지 못한다면 힘들거라는 정보도 있고, 리눅스쪽이 설정할 수 있는 modeline이 많으며(비디오 모드인데 해상도와 주사율, 화면 위치 등의 수치의 조합을 의미하더군요. 이걸 잘 조합하여 설정해야 픽셀퍼펙트하게 출력시키느냐 아니냐가 달라지는 것으로 보입니다.), 속도나 인풋렉, 편의성 등 여러면에서 유리하다라는 정보도 있었습니다.

*modeline는 아래 참조 

https://nircada.weebly.com/modelines.html

 

MODELINES

  Una volta forzato il nostro sistema con vga-scart e Crtemudrive abbiamo fatto una sorta di hack al nostro pc che ci permette di utilizzare delle risoluzioni mooooolto basse (anche 240x240 pixel)...

nircada.weebly.com

 

결론적으로는 이것저것 불리한 점과, 귀찮은 것은 있지만 윈도우11 에서 구동시켰습니다.

아직 해결해야할 문제는 좀 있긴합니다만 속도도 생각보다 느리진 않고(아마도 12세대 시피유의 파워겠지요.), modeline이 윈도우는 300개까지만 설정된다고 하나 이 정도면 제 기준에선 충분하다 못해 많은 수준이더군요. 일단 모든 것을 완전하게 호환시킨다는 것 보다는 최대한 맞춰주면 된다 정도의 목적이라 그런 것도 있습니다.

기본대로 따라해보니 거진 100개 넘게 추가가 되었는데 속도도 괜찮았습니다. 간헐적으로 처음 실행 시 뭔가 로딩을 하는지 버벅이는 느낌이 있습니다만 매번 나타나는 것은 또 아닌지라 무시할만한 수준이었습니다.

 

 

여러 욕망과 귀차니즘이 섞인 가운데 목적은 

저렴하게 구해서 메인으로 쓰는  윈도우 컴에 서브로 달아 다중디스플레이로 바탕화면확장으로 쓰되 플루이드모션도 좀 돌려보고 15khz 출력으로 RGB개조한 브라운관 티비에 옛날 게임도 돌려보자가 되겠습니다.  

 

 

먼저 하드웨어부터 구입했습니다.

 

CRT emudriver 라는 커스텀드라이브에 호환되는 것을 구해야 합니다.

http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1009#p1009 

 

CRT Emudriver 2.0 - Download thread (Page 1) — Calamity's application software — Eiusdemmodi

Pages 1 You must login or register to post a reply Pages 1 You must login or register to post a reply

geedorah.com

 

Please choose the right download for your GPU, test and report any issues:

- Download CRT Emudriver & CRT Tools 2.0 beta 15 (Catalyst 12.6) for Windows 7/8/10 64-bits

                 Desktop: AMD Radeon™ HD 2000, HD 3000, HD 4000 series

 

- Download CRT Emudriver & CRT Tools 2.0 beta 15 (Crimson 16.2.1 non-GCN* cards) for Windows 7/8/10 64-bits

                Desktop: AMD Radeon™ HD 5000, HD 6000 Series, HD 7000-7600, HD 8000-8400 Series
                              AMD Radeon™ R5 235X, R5 235, R5 230, R5 220 Series
             All-in-One: AMD Radeon™ HD 6350A, HD 6600A, HD 7450A, HD 7600A Series
                      APU: AMD Radeon™ HD 6000D, HD 7000D, HD 8000D, HD 6000G, HD 7000G, HD 8000G Series
                Mobility: AMD Radeon™ HD 5000M, HD 6000M Series

- Download CRT Emudriver & CRT Tools 2.0 beta 15 (Crimson 16.2.1 for GCN* cards) for Windows 7/8/10 64-bits

               Desktop: AMD Radeon™ HD 7700-7900, HD 8500-8900 Series
                             AMD Radeon™ R7 200, R7 300, R9 200, R9 300, R9 Nano, R9 Fury Series
                     APU: AMD A-Series APUs with Radeon™ R4, R5, R6, or R7 Graphics   
                             AMD Pro A-Series APUs with Radeon™ R5 or R7 Graphics   
                             AMD Athlon™ Series APUs with Radeon™ R3 Graphics   
                             AMD Sempron™ Series APUs with Radeon™ R3 Graphics   
                             AMD A-Series APUs with Radeon™ R3, R4, R5, R6, R7, or R8 Graphics
                             AMD Pro A-Series APUs with Radeon™ R5, R6, or R7 Graphics
                             AMD FX-Series APUs with Radeon™ R7 Graphics
                             AMD E-Series APUs with Radeon™ R2 Graphics
                             AMD Radeon™ HD 8180 - HD 8400 Series Graphics
               Mobility: AMD Radeon™ R9 M300, R7 M300, R9 M200, R7 M200, R5 M200 Series           
                             AMD Radeon™ HD 7700M-7900M, HD 8500M-8900M Series

 

- Download CRT Emudriver & CRT Tools 2.0 beta 15 (Adrenalin 18.5.1 for GCN* cards) for Windows 7/8 64-bits

- Download CRT Emudriver & CRT Tools 2.0 beta 15 (Adrenalin 18.5.1 for GCN* cards) for Windows 10 64-bits

                   Desktop: Radeon RX Vega Series Graphics
                                 Radeon™ RX 500 Series Graphics
                                 Radeon™ RX 400 Series Graphics
                                 AMD Radeon™ Pro Duo
                                 AMD Radeon™ R7 300 Series Graphics
                                 AMD Radeon™ R7 200 Series Graphics
                                 AMD Radeon™ R9 Fury Series Graphics
                                 AMD Radeon™ R5 300 Series Graphics
                                 AMD Radeon™ R9 Nano Series Graphics
                                 AMD Radeon™ R5 200 Series Graphics
                                 AMD Radeon™ R9 300 Series Graphics
                                 AMD Radeon™ HD 8500 - HD 8900 Series Graphics
                                 AMD Radeon™ R9 200 Series Graphics
                                 AMD Radeon™ HD 7700 - HD 7900 Series Graphics
                      Ryzen: AMD Ryzen 5 2400G
                                 AMD Ryzen 3 2200G
                   Mobility: AMD Radeon™ R9 M300 Series Graphics
                                 AMD Radeon™ R7 M200 Series Graphics
                                 AMD Radeon™ R7 M300 Series Graphics
                                 AMD Radeon™ R5 M200 Series Graphics
                                 AMD Radeon™ R5 M300 Series Graphics
                                 AMD Radeon™ HD 8500M - HD 8900M Series Graphics
                                 AMD Radeon™ R9 M200 Series Graphics
                                 AMD Radeon™ HD 7700M - HD 7900M Series Graphics
                        APU: AMD A-Series APUs with Radeon™ R4, R5, R6, or R7 Graphics
                                 AMD A-Series APUs with Radeon™ R3, R4, R5, R6, R7, or R8 Graphics
                                 AMD Pro A-Series APUs with Radeon™ R5 or R7 Graphics
                                 AMD Pro A-Series APUs with Radeon™ R5, R6, or R7 Graphics
                                 AMD Athlon™ Series APUs with Radeon™ R3 Graphics
                                 AMD FX-Series APUs with Radeon™ R7 Graphics
                                 AMD Sempron™ Series APUs with Radeon™ R3 Graphics
                                 AMD E-Series APUs with Radeon™ R2 Graphics
                                 AMD Radeon™ HD 8180 - HD 8400 Series Graphics

 

엔비디아카드는 없으므로 구형의 AMD 그래픽카드를 구해야 하는데

가지고 있던 R7 250(우)과 중고마켓에서 싸게 구한R5 340(좌)를 준비하였습니다.

 

R5 340은 OEM으로 들어가는 제품으로 사실상 이전 제품들의 리네임, R7 250도 이전의 HD8/7천번대의 리네임이라고 하더군요. --- 이 부분 정정 : 250x가 HD7770의 리네임이고 250은 아니라고 합니다.

여하튼 싱크합성 문제로 VGA(3열 15핀 디서브)가 달린 것으로 구하시는 것이 좋습니다.

제가 구한 R5 340은 DVI 단자로 VGA신호가 출력되는데 유틸을 통한 싱크합성이 되지 않더군요. 이와 관련된 건 후술

그리고 플루이드모션도 잘 되더군요.(카드 성능상 풀HD급 까지만..) 

 

 

그리고 메인으로 쓰는 윈도우11컴에 달았습니다. 이게 젤 힘들었네요.

사운드카드 및 캡쳐카드(2개) 그리고 구형 오디오인터페이스를 위한 IEEE1394카드, 기존의 그래픽카드 까지 

슬롯을 풀로 쓰고 있는데 이 와중에 크게 성능이 떨어지는 위의 그래픽카드들을 메인으로 쓸 수 없으니 서브로 끼워야하는데 그렇다고 다른걸 뺄 수는 없고....

 

하는 수 없이 아래 처럼 처참한 꼴이 되었습니다.

 

메인보드의 남는 M.2 슬롯을 PCIE 4x로 변경해주는 젠더를 꽂고 거기에 다시 PCIE 4x 연장 케이블을 꽂고, 거기에 캡쳐카드를 꽂아서 남는 슬롯을 만들어주었습니다.   

아래 사진처럼 이걸 꽂으면 바로 옆 그리고 위의 PCIE 카드의 길이에 큰 제한을 받기 때문에 카드 길이를 또 맞춰서 다시 배열해 설치하였습니다.(이런 경우를 대비한 것인지 옆으로 눕혀서 케이블화 시킨 젠더도 있더군요.)  

아래 처럼 근접한 슬롯의 카드길이에 큰 제한을 받습니다. 어지간하면 잘 알아보시고 간섭이 적은 제품으로 구입하세요. 

 

연장 케이블이 짧아서 고정시키지는 못하고 공중부양.... 크게 흔들지 않으면 접촉하지는 않아서 괜찮은데 ... 그래도 불안하니 나중에 커버 같은 것을 덮어야 겠습니다.

*공중부양하는 캡쳐카드가 인터레이스 신호를 모션어댑티브로 디인터레이스 해주는 보기 드문 카드라서 못 빼고, 다른 캡쳐카드는 고전 콘솔기, 도스 등 별의 별 해상도를 다 받아주는 캡쳐카드라 또 못빼고... 사운드카드와 IEEE1394도 역시 빼기가 어렵고 ... 이렇게 욕심부리면 처참하게 되는 것입니다.

 

그리고 CRT emudriver 를 설치해보았습니다.

 

저 위에 링크한 사이트에서 카드에 맞는 것을 골라 다운 받습니다. R5 250은 GCN 계열이므로

아드레날린 1.85.1 for GCN 윈도우10 64용으로 다운 받았습니다.

 

본체는 윈도우11(CSM는 OFF), 인텔 i7 12700kf 입니다. 

*해보니 CSM은 꺼두어도 상관 없더군요.

 

설치는 기본 상태에서는 드라이브서명 문제로 막히기 때문에 윈도우를 테스트모드를 변경해주어야 합니다. 

 

윈도우에서 명령프롬프트를 관리자 권한으로 실행하고, 아래 명령어 치고 리부팅시키면 되겠습니다.  

: 윈도우시작버튼에 마우스 오른쪽-터미널(관리자) 

그리고 아래 명령을 쳐서 실행합니다.

 

bcdedit.exe -set TESTSIGNING ON

 

테스트모드가 되었다면 드라이버를 다운 받은 압축을 풀고  설치합니다.

 

*2023년 10월 26일 기준으로 윈도우11 최신 업데이트를 한 상태에서 윈도우의 메모리 무결성을 해제해야 드라이버가 정상작동합니다.(설정 - 개인정보 및 보안 - 윈도우 보안 - 장치보안 - 코어격리세부정보 - 메모리 무결성 끔)

 

setup.exe를 실행하면 아래 화면이 뜹니다. 

호환 그래픽카드가 있을 경우 아래처럼 되겠지요.

인스톨 드라이버를 클릭라면 아래 경고화면이 뜹니다. 확인을 눌러줍니다.

 

설치가 완료되면 아래 처럼 됩니다. 그리고 리부팅

 

역시 같은 사이트에서 라데온 콘트롤 패널도 다운받아 설치해줍니다.(버전에 맞게 18.5.1) 

(이건 없어도 될 것 같은데 플루이드모션 확인용으로 설치했었습니다. 다만 의미는 없더군요.)

 

저의 경우 드라이버 설치후에는 AMD카드에 연결된 모니터로 알아서 윈도우의 바탕화면확장이 되었습니다.

연결은 위에서 언급한 VGA단자 혹은 DVI-I(디지털 아날로그 겸용)단자에 꽂아야 하며 어지간하면 VGA단자에 꽂으시기 바랍니다.

저는 VGA분배기를(모니터 분배기) 통해 일반 컴퓨터용 모니터 및 티비(15khz 전용 240p/480i)에 동시 연결해두었습니다.

 

초기 드라이버 설치 및 바탕화면 확장 후에는 컴퓨터용 모니터에는 화면이 나오지만 티비 혹은 콘솔기/오락실 해상도출력을 물릴 디스플레이(방송용 브라운관 모니터 등)에는 화면이 제대로 나오지 않습니다.

 

31khz 신호를 출력시키고 있으므로 아직 아래 사진처럼 티비가 받을 수 없습니다. 

      

이제 티비에 화면이 나오도록 작업해 줍니다.

 

먼저 출력에 사용할 AMD 그래픽카드에는 티비/모니터를 꼭 물려 두세요.

 

드라이버 압축을 풀면 나오는 파일 중에서 vmmaker.exe를 실행해 줍니다.

 

실행시 아래처럼 화면이 나옵니다. 디스플레이1~4는 지포스카드이고 5부터가 AMD카드인데 활성화된 곳(enabled,아래 사진상 DISPLAY25)은 모니터도 일반 Non-Pnp로 물려져있다고 나옵니다. 현새 디스플레이1(엔비디아)로 설정되어있어 호환되지 않는다고 나오는군요.  

Edit settings를 눌러줍니다.

 

 

그리고 나오는 화면에서 모니터 타입을 골라 줍니다. 제가 쓸 디스플레이는 일반적인 브라운관 티비이므로 NTSC TV로 골라주는 것이 맞는데 상황에 따라 이것보다는 다른 골라 주어도 됩니다. 바로 아래 후술

 

NTSC외에 타입 목록은 아래와 같습니다. 보통 Generic 15.7khz와 Arcade 15.7khz - standard resolution 을 골라준다고 하는데요. 왜냐하면 지원범위가(수평/수직의 타이밍 범위라고 해야하겠네요.) 좀 더 넓기 때문입니다. 물론 딱 맞게 골라주면 좋겠지만 테스트를 결과 NTSC로 고르고 해상도를 인식시켜보니 CRT_range라고 VMMAKER설정 이후 그루비마메에 추가되는 내용이나 아래 타이밍차트도 범위가 달라졌습니다. NTSC가 더 좁았습니다.

이런 것이 좀 걸린다면 Generic 15.7khz 혹 Arcade 15.7khz - standard resolution를 고르면 되겠습니다.

*내용 추가 : 일부 게임에서 스터터링과 비슷한 현상이 있어 가능하다면 Arcade 15.7khz - standard resolution를 선택하시기 바랍니다. 관련내용은 맨 마지막에 후술합니다.

 

타입선택란 아래에 Edit monitor presets를 눌러보면 여러 목록이 나오는데 디스플레이(티비, 모니터)의 종류에 따른 지원범위로 비디오타이밍이 포함되어 있습니다. 이것은 개별 해상도에 대한 modeline과는 약간 종류가 다른 디스플레이가 지원하는 범위라고 보시면 되겠습니다.

(NTSC에서 다른 것으로 변경해서 실제 적용해보니 제 티비에서는 화면의 센터위치가 달라졌습니다. 뭐 티비에서 맞추면 되는 것이라 딱히 문제는 없었습니다.)

지원 범위가 다른 멀티포맷모니터의 경우(15~31khz)의 경우 목록을 보고 맞는 것을 골라주어야 겠습니다.

 

 

타입을 골랐으면 옆의 탭인 Video card를 눌러줍니다.

디바이스가 디스플레이1 - 엔비디아카드로 골라져 있습니다.

드라이버가 비호환이라고 나오는 군요. 

이것을 amd카드로 골라주어야 합니다.

아까 확인한 AMD카드 중 활성화(enabled) 된 것을 골라주면 됩니다. 저의 경우 DISPLAY25였습니다.

골라주면 잠시 깜박이면서 아래처럼 스샷이 변하게 됩니다.

드라이버에 CRT 에뮬드라이버가 녹색으로 뜨게됩니다.

이 상태에서는 아래 체크된 것은 그대로 두고(안되어 있다면 동일하게 체크) EDID를 설정해주어야 합니다.

*EDIE정보에 아까 골라준 모니터 타입이 나타납니다. 아래 스샷들은 ntsc로 나타나있습니다만 자신이 골라준 것이 다른 것이라면 그것으로 나타납니다.

 

EDIE 에뮬레이션 설정에서 모니터와 연결된 아웃풋 단자를 골라줍니다. 저는 아날로그 VGA 단자에 꽂았으므로 그것을 골라줍니다. EDIE에뮬레이션이 비활성화 되어 있네요. 단자 선택후 우측의 Enabled EDIE emulation을 눌러줍니다.

 

Enabled EDIE emulation를 눌러주면 디바이스가 재설정 되면서 깜박이다가 완료됩니다. 완료되면 그 아래 

Composite sync란을 확인하고 Enabled Composite sync를 눌러줍니다. 역시 깜박이다가 완료됩니다.

 

Composite sync의 활성화는 브라운관 티비 혹은 RGBs 신호만 받는 방송용 모니터에는 큰 의미가 있는 설정입니다.

그래픽카드의 출력은 보통 RGBHV 신호로 싱크신호가 H와 V로 분리된 신호다 보니 HV 싱크가 합해진 것만 받는 RGBs 모니터들은 싱크신호를 합성하지 않으면 받을 수가 없습니다. 

 

물론 Composite sync이 비활성화 되어 있어도 젠더형식으로 싱크합성을 해주면 되긴합니다만 제한이 좀 있습니다.

젠더형으로 쉽게 만드는 합성장치로는 15khz 해상도는 가능하지만 고해상도에 제한이 발생합니다.

제가 테스트해본 결과 1024x768까지는 되는데 그 이상은 인식이 되지 않더군요.

 

준비한 R7 250의 경우 VGA단자에 물릴 경우 Composite sync를 활성화 하면 복합싱크신호가 나가는데, R5 340의 DVI-I 단자는 아날로그 신호는 출력되지만 Composite sync를 활성화 해도 싱크가 합성되지 않더군요. 이렇다보니 편의성면에서도 VGA 단자가 있는 제품으로 구하는게 좋겠습니다. 

*해외 자료들을 보니 편차가 있어서 VGA단자가 달려 있어도 싱크가 합성이 안되는 경우가 있다고 합니다.

 

CRT모니터에 1024x768면 충분하잖아? 하는 경우라면 상관없이 외부의 싱크합성 장치가 있으면 되므로 만드는 방법은 아래와 같습니다. 

74hc08칩을 이용해 1번과 2번에 VGA단자의 13번핀(H)와 14번 핀(V) 싱크 신호를 물리고 3번에 합성신호가 출력되므로 이 신호를 반대편 단자에 13번핀(H, RGBs의 경우 s=c에 해당)에 연결해줍니다. 74hc08에는 별도 전원(5v)는 필요가 없고 7번핀에 그라운드만 연결해주면 됩니다.

나머지 VGA핀은 아래를 보고 연결해줍니다.

*9번핀은 표준의 단자의 경우 5v가 출력되므로 그라운드(GND)와 접촉하면 안됩니다.)

암/수 단자는 서로 대칭

 

위의 74hc08를 이용하는 방법외에 다이오드나 트랜지스터를 이용하는 방법도 있습니다.

 

트랜지스터(2N3904)와 저항(100옴, 470옴, 1K옴, 10K옴) 을 이용한 방법은 아래 참조

주의점은 트랜지스터 다리를 잘 구분해야 합니다. 

https://www.cathoderayblog.com/converting-rgbhv-to-rgbs-for-the-gbs-control/

 

Converting RGBHV to RGBs for the GBS-Control - Cathode Ray Blog

The GBS-Control (GBS-C) is an amazing piece of affordable hardware. For around 30 bucks worth of parts, I have a good scaler which does the job for me. It also has excellent down-scaling to 240p which I was hoping to take advantage to hook up a more modern

www.cathoderayblog.com

다이오드(1n4148 2개) 저항(100~300옴 중 하나)을 이용한 방법은 아래 링크 참조

주의점은 다이오드의 띠방향이 복합싱크쪽으로 향하게 하면 됩니다.

 

http://painkilla.egloos.com/2708234

 

[X68K] X68000와 VGA, 21핀 RGB 멀티인풋 접속 방법

요청에 따라 케이블 제작법을 소개합니다.<X68000 RGB OUT → PC VGA MONITOR : 31KHz출력용>특별히 설명할 부분이 없습니다. 배선도에 따라서 그대로 연결해주시면 됩니다.사운드 출력은 RCA단자나 미니

painkilla.egloos.com

 

 

여하튼 여기까지 하였다면  옆의 탭인 User modes 에 들어갑니다.

아래 화면이 나오면 스샷처럼 체크해주고 브라우저를 눌러 user_modes.ini(드라이버 압축 푼 곳에 있습니다.)를 골라줍니다. 이것은 수많은 콘솔/오락실에서 사용하는 modeline(단순화 하자면 해상도, 이후 걍 해상도라고 부르겠습니다. ) 목록화 한 것으로 이것을 통해 커스텀 modeline 인식시켜줄 수 있습니다.

*직접 편집한 것을 추가할 수 있다고는 합니다만 관련지식이 부족해 저는 패스하였습니다.

user_modes.ini 외에 user_modes - super.ini 라는 것도 있습니다만 이것은 수평해상도가 2560으로 고정된 것으로 원본출력을 이용하는 예시다 보니 이런 슈퍼해상도(2560) 사용하지 않으면 필요가 없습니다. 하지만 제가 사용하는 여러 방법에는 필요하여 아래 처럼 복붙하여 설치해주었습니다.

복붙방법은 메모장으로 user_modes - super.ini의 내용을 복사해 user_modes.ini 에 붙여넣기 하시면 됩니다.

*이외에 레트로아크용으로 쓰이는 슈퍼해상도용 해상도도 있습니다. 아래 첨부하니 역시 복붙해서 사용하세요.

super retroarch.ini
0.00MB

*아니 기껏 15khz을 받는 브라운관에 2560x240같은 해상도가 된다고? 할 수 있겠습니다만 문송하게도 정확한 원리는 모르나 브라운관 디스플레이의 특성상 가능하다고 하는군요. 실제로도 잘 적용이 됩니다.

 

그리고 옆의 MAME탭에 들어 갑니다. 역시 마찮가지로 오락실의 수 많은 게임 해상도를 목록화한 것을 인식시켜주고 위한 곳입니다.

이것을 위해서는 먼저 그루비마메를 다운 받아야 합니다.(Groovymame)

https://github.com/antonioginer/GroovyMAME/releases  윈도우 용을 다운로드 받아 압축을 풀어둡니다.

 

Releases · antonioginer/GroovyMAME

GroovyMAME is a M.A.M.E. fork aimed at CRT monitors - antonioginer/GroovyMAME

github.com

압축을 풀어두고 

 

위의 MAME탭의 MAME executable file path에 브라우저를 눌러 Groovymame를 압축푼 곳을 찾아가 MAME.exe를 골라줍니다. 그리고 아래처럼 체크하고 OK를 눌러줍니다.

 

이후 나오는 화면에서 아래처럼 MAME.ini 메세지를  확인하고 위의 탭에서 Generate modes를 클릭해줍니다.

그럼 여러가지 비디오모드를 찾으면서 해상도/주사율 목록이 주루룩 뜨게 됩니다.

그 다음 위의 Install modes를 눌러줍니다. 경고메세지를 보고 확인을 눌러줍니다.

이후 몇번 깜받이다가 아래처럼 인스톨 완료 메세지가 뜹니다.

 

여기까지 했다면 VMMAKER은 종료시키고 역시 같은 곳에 들어있는 arcade_osd를 실행시킵니다.

실행시 아래처럼 뜨는데요. 현재 이 프로그램이 엔비디아쪽을 잡고 있어서 호환이 되지 않습니다 이것을 바꿔주어야 합니다.

*처음부터 AMD쪽에 제대로 뜨게 하려면 AMD에 물려진 모니터를 주모니터로 설정하면 됩니다.(윈도우 디스플레이 설정)

 

키보드의 '2' 를 눌러서 프로그램이 뜨는 디스플레이(모니터)를 변경할 수 있는데요 AMD카드에 물려진 모니터에 뜨도록 계속 '2'를 눌러줍니다.

해당 모니터에 arcade_osd가 뜨면 

Attach OSD to current monitor을 선택해 엔터를 쳐줍니다.

그럼 몇번 깜박이면서 아래처럼 녹색이 뜨면서 완료가 됩니다.

 

이후 Video modes를 선택해 엔터를 쳐 줍니다. 그러면 수많은 해상도가 뜹니다.

이 중 예를 들어 320x240p(혹은 640x480i) 고르고 '2'를 눌러줍니다.

*선택시 엔터를 누루지 마세요. 화면이 어디론가 사라져 버리는 경우가 있습니다. 잘못해서 화면이 사라진 경우 윈도우 작업표시줄에서 arcade_osd를 찾아 클릭한다음 esc를 연속으로 눌러 종료시켜줍니다.

 

 

 

이후 나오는 화면에서 Set as desktop mode를 선택하고 엔터를 눌러줍니다.

*모드 넘버가 등록된 modeline입니다. 스샷마다 좀 틀릴 수 있는데 테스트하느라 이것저것 재설정을 하여 그렇습니다. 보통 VMMAKER에서 설정한 대로 고정됩니다.

그러면 일반 컴퓨터용 모니터는 화면이 제대로 나오지 않으면서 함께 연결해둔 15khz지원 티비(혹은 15khz지원 모니터)에 화면이 나오게 됩니다. Keep를 선택해서 엔터를 눌러줍니다.

 

 

향후 AMD카드에 설정한 저해상도를 변경하기 위해서는 위의 과정을 통해 arcade_osd를 이용하면 됩니다.

arcade_osd에서 설정을 하면 윈도우 디스플레이 설정에서 커스텀해상도가 뜹니다. 다만 윈도우 디스플레이 설정에서 해상도를 설정하게 되면 다시 커스텀 해상도가 뜨지 않는데 이때는 다시 arcade_osd를 이용해주면 됩니다. 

*항상 arcade_osd 상단이 녹색으로 호환이 되는지 확인하고 아니라면 모니터 이동 및 Attach OSD to current monitor 과정을 거쳐야 합니다.

 

 

15khz화면 출력 준비는 여기까지 있고 AMD그래픽카드 관련 서비스를 하나 꺼 줍니다. 

해당 서비스는 화면을 두배가 되게 하거나 수직해상도를 절반으로 압축시켜버린다고 하는데 관련 링크는 아래와 같습니다.  

https://arcademvs.org/windows/crtemudriver-configure/

 

CRT-Emudriver Configure - ArcadeMVS Wiki

Some steam games might require a resolution other than the default 640 x 480 interlaced. In this example, we will add 640 x 360 interlaced and 320 x 240 progressive. We want to support lower interlaced lines. Edit monitor.ini. The format is the following:

arcademvs.org

 

 

윈도우11 기준으로 윈도우키+S 혹은 시작버튼을 마우스 오른쪽으로 클릭후 검색을 클릭

'서비스'로 검색하면 아래 화면이 뜨고 서비스를 실행합니다.

아래 화면이 나오면 목록중 AMD External Events Utility 를 더블클릭해서 열어줍니다.

시작유형은 '사용 안 함', 서비스상태는 중지를 눌러주고 적용 및 확인을 해 줍니다. 

 

 

그리고 AMD가 물려진 모니터의 속성에서 '이 모니터가 표시할 수 없는 모든 모드 숨기기' 를 체크하라고 하는데...

윈도우11이 본래 그런건지 체크할 수가 없게 되어 있더군요.

디스플레이설정에서  해당 모니터 클릭하고 아래로 내린 후 관련설정에서 고급디스플레이 클릭 - 어댑터 속성표시 - 모니터탭에서 나오는 부분인데 무엇이 문제인지 모르겠습니다. 아시는 분은 답변을 부탁드립니다. 

 

 

 


아래부터는 에뮬레이터 및 프런트앤드 프로그램 설정입니다.

 

CRT emudriver와 조합으로 많이 쓰는 것이 그루비마메가 있습니다. 

그외에 레트로아크와 다른 마메들을 테스트해보았습니다.

*리눅스는 그루비아케이드라는 것을 사용하는데 이건 단순 에뮬레이터나 프론트엔드가 아닌 리눅스(아치리눅스)기반 플랫폼(운영체제가 호함된)이라고 합니다. 레트로아크와 비슷하게 종합에뮬레이터로 쓸 수 있다고 하네요. 윈도우에 쓸 것이 주목적으로 이건 패스하였습니다.

 

그루비마메와 화면조정 등은 아래 링크와 함께 국내 여러 고수분들의 정보를 보며 테스트해보았습니다.

http://geedorah.com/eiusdemmodi/forum/viewtopic.php?id=433 

 

Groovy MAME: Installation and quick configuration (2019 guide) (Page 1) — Discussion — Eiusdemmodi

Pages 1 You must login or register to post a reply Pages 1 You must login or register to post a reply

geedorah.com

이건 아카이브

https://archive.md/6bw9B

 

archive.md

What can I do to prevent this in the future? If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware. If you are at an office or shared network, you can ask the network a

archive.md

 

그루비마메와 같은 마메는 먼저 AMD의 출력이 적용되는 모니터번호를 알아야 합니다. 

vmmaker.exe나 arcade_osd를 실행시켜보면 확인이 가능한데요. 위의 본문내용상 DISPLAY25였는데 어찌하다보니 DISPLAY57로 변해서 이를 기준으로 설명합니다.

이걸 확인 한 다음

그루비 마메 압축을 푼 곳에서 Meme.ini 파일을 메모장으로 엽니다.

 

나오는 화면에서 아래내용들을 수정합니다.

 

# CORE SEARCH PATH OPTIONS
rompath    d:\rom\

--- 롬폴더의 경로를 적어줍니다. 

 


# CORE ROTATION OPTIONS
#
rotate                    0

---게임 화면을 돌리는 용도인데 원본 혹은 그에 가까운 해상도를 출력시키려고 하므로 이것은 0(사용안함)으로 둡니다.


# CORE MISC OPTIONS
#
uifont                    uismall.bdf
ui                        cabinet

 

---uifont  는 마메 ui 화면의 폰트로 기존 디폴트로는 기본 240p화면에서 글꼴이 보기 불편해 uismall.bdf로 변경해주시면 됩니다. 기본을 480i로 둘 경우에는 디폴트대로 두시면 됩니다. 

---ui  테마형식은 기본이 cabinet인데 단순하게 바꿀경우에는 simple로 해두시면 됩니다. cabinet도 보기는 괜찮더군요.

 

uismall.bdf 적용 상태에서 240p(좌), 480i(우)

기본 폰트 상태에서 240p(좌), 480i(우), 브라운관 특성상 사진이 이렇게 나왔습니다. 다만 기본 폰트상태에서는 480i(인터레이스)가 적절하였습니다. 위의 uismall.bdf  적용 상태에서는 240p가 적당합니다.

아래는 ui를 simple로 변경

 


# OSD VIDEO OPTIONS
#
sync_mode                 2

---이 모드는 인풋렉과 관련되어 있더군요. 기본이 2이고 제 그래픽카드의 경우에 2번이 가장 좋다고 하여 그대로 두었습니다. 

아래 내용을 참조(링크 내용 중 하단)

http://forum.arcadecontrols.com/index.php/topic,164449.80.html

 

Groovymame 0.248 - Switchres 2.002m

You're the best. Maybe in a few years from now something like this triplebuffer (actually double? I still wonder) won't be needed at all anymore (thanks to a better software alternative from you guys or whomever, or a broader generalization of VRR hardware

forum.arcadecontrols.com

아래 내용에서 퍼펙트나 퍼펙트(1)이 좋다고 하네요.

 

라데온이 아닌 amdgpu로 잡히는 카드에 모드 2가 퍼펙트(1)으로 퍼펙트보다 좀더 좋은데 

GCN3.x에 해당하는 카드는 자동으로 amdgpu로 잡히지만 나머지 GCN은 라데온으로 잡혀서 강제로 amdgpu로 잡아주면 된다고 합니다.

다만 이부분은 리눅스의 경우라서 저는 해보지 않았습니다. 어찌되언든 라데온으로 잡힌 경우에도 모드2가 퍼펙트로 인풋엑이 적다고 나와 있어 모드2로 두면 되겠습니다.

강제로 잡는 것은 아래 링크 참조(저는 윈도우라서 해보지 않았습니다.)

https://wiki.archlinux.org/title/AMDGPU#Enable_Southern_Islands_%28SI%29_and_Sea_Islands_%28CIK%29_support

 

AMDGPU - ArchWiki

AMDGPU is the open source graphics driver for AMD Radeon graphics cards from the Graphics Core Next family. Selecting the right driver Depending on the card you have, find the right driver in Xorg#AMD. At the moment there is Xorg radeon driver support for

wiki.archlinux.org

 


# OSD PER-WINDOW VIDEO OPTIONS
#
screen                    \\.\DISPLAY1
aspect                    auto
resolution                auto

 

---screen, screen0 ~이 쭉 있습니다. 이것은 마메가 표시/실행되는 디스플레이를선택하는 것으로 아까 확인한 AMD카드로 출력되는 것을 골라적어주면 됩니다. 형식은 \\.\DISPLAY번호 입니다. 

*디스플레이 번호는 해당 디스플레이를 주 모니터(기본 모니터)로 변경하거나 재설정하면 번호가 바뀌는 경우가 있습니다. 설정 후 마메 실행시 화면이 제대로 나오지 않는다면 마메를 강제종료시키고 다시 번호를 찾은 다음(arcade_osd 이용) 수정해주면 됩니다. 이 글을 쓰는 과정에서 테스트겸 변경을 했었는데 57로 변경이 되었습니다. 즉 저는 \\.\DISPLAY57로 수정

---aspect는 자동으로 두어도 되고, resolution의 경우에는 상황에 따라 달리해야합니다. 자동으로 둘 경우 switchres이 바꿔주는 해상도로 자동으로 변환됩니다. 즉 원본이나 원본에 가까운 해상도로 맞춰주게 됩니다. 하지만 상황에 따라 원본해상도로 출력시키기 어려운 경우에는 슈퍼해상도를 쓰는 경우가 있는데요.

슈퍼해상도는  2560x240p 처럼 수평해상도가 2560으로 해상도의 범위가 큰 것을 의미합니다. 1920이나 3840같은 것도 있습니다.

이런 해상도가 있는 이유는 가변해상도를 가진 게임기나 게임이 있다보니 걍 수평크기를 최대한 늘려서 한번에 처리하자는 것인데 물론 정수배가 아니다보니 약간 차이가 있긴합니다만 어마무시한 크기로 늘려버리면 무시할만한 수준이 됩니다.

이런 이유를 대입해보면  VMMAKER로 만들어 둔 목록에 여러 게임기/오락실게임의 해상도 및 대체할 만한 해상도가 많으므로 보통 오토로 두면 알아서 잘 됩니다. 하지만 디스플레이(티비나 모니터)에서 제대로 받지 못하는 경우가 발생할 수도 있고, 화면에 출력되는 이미지의 수평크기나 위치를 게임별로 다른 해상도마다 조절하자니 힘들므로 수평해상도를 고정시키는 경우 가 있어 이런 경우에 필요합니다.

 

여하튼 여러 가지 사정 때문에 아예 범위자체를 엄청나게(슈퍼/울트라) 늘려서 문제를 방지한 것인데요. resolution을 2560x240으로 하는 경우 이 해상도를 넘어가지 않는 범위내에서 고정적으로 2560x240으로 출력시켜 줍니다.

(넘어가면 오류가 발생합니다.)

수직해상도의 경우 이런 슈퍼해상도를 원리상 만들 수 없어 고정적인 해상도로 출력시키기 원하는 경우 티비가 지원하는 범위내에서 넓게 잡아줄 필요가 있습니다. 240p로 잡아주면 되는데 사실 수직해상도는 수평해상도와 다르게 원본과 틀려지게 되면 화면이 잘린다 혹은 비율이 안맞아 보인다 등의 왜곡이 많이 보이는 편입니다. 이렇다 보니 실기재현을 위해서는 고정적인 해상도로 출력시키는 것은 민감할 경우 거슬리는 것이 많을 것이라 추측합니다.         

  

예를 들어 위에서 언급한 willow는 수직해상도가 224인데요. resolution에서 수직해상도를 220으로 설정해버리면 오류가 발생합니다. 특성상 240으로 대체를 해주어야 하는데 220으로 고정 해버려서 240을 쓸수도 없는 상황이 되어 버리는 것이지요. 때문에 수직해상도는 자동으로 두는 것이 좋습니다. 수치를 0으로 두면 자동으로 설정됩니다. 

예를 들어  resolution를 2560x0 으로 설정할 경우 수평해상도는 2560으로 고정되고 수직해상도는 원본에 따라 자동으로 조정됩니다. (반대로 0x240으로 할 경우 수평해상도는 자동, 수직은 240으로 고정됩니다.


# OSD FULL SCREEN OPTIONS
#
switchres                 1
interlace                 0

monitor                  generic_15

changeres                 1
screen_compositing        1

crt_range0                auto

 

--- switchres는 단어 그대로 게임별 해상도를 스위칭 해주는 옵션입니다. 원본 해상도나 그를 대체하는 해상도 출력을 원하고 있으므로 옵션을 켜야겠지요(1은 켜기, 0은 끄기)

*별도의 프로그램이었다가 여러 에뮬에 녹아들어 간 것라고 하는데 CRT emudriver 및 그 세트유틸과 더불에 핵심적인 역할을 합니다. CRT emudriver세트에서 구성한 여러 해상도를 게임에 맞게 스위칭해주는 것이지요. 이게 없다면 일일이....

최대한 원본 해상도로 맞춰주고 그게 안된다면 최대한 가까운 해상도로 매칭시켜주기도 합니다. 슈퍼해상도도 지원을 하구요.    

https://gitlab.com/groovyarcade/support/-/wikis/3-Post-Installation-and-Maintenance/3.9-Configure-System-Wide-Switchres

 

3.9 Configure System Wide Switchres · Wiki · GroovyArcade / support · GitLab

Read the GroovyArcade wiki and ask for support here

gitlab.com

Switchres.ini
0.01MB

---인터레이스는 마메의 ui화면을 인터레이스로 두느냐(480i), 오프시켜서 프로그레시브로 두느냐의 옵션입니다.(240p) 인터레이스로 둘경우 해상도가 커서 글자의 가독성이 좋지만 떨림이 있고, 프로그레시브로 두면 떨림이 없지만 가독성이 좋지 않습니다.(그래서 위에서 ui 폰트나 테마를 변경합니다.) 

아래 스샷에서 좌(240p), 우(480i)의 윈도우 화면

 

---monitor 는 출력시킬 모니터의 종류를 선택합니다. VMMAKER을 설정하는 과정을 거치게 되면 자동 수정되는 부분입니다.  VMMAKER에서 골라준 Mame.exe와 같은 폴더에 있는 mame.ini파일이 자동 수정되는 것이지요.

단 골라준 모니터 타입으로 이름이 들어가는 것은 아니고 커스텀으로 바뀌며 crt_range의 수치가 골라준 모니터 타입의 것으로 바뀌게 되고 switchres를 활성화 하고 이용 시 crt_range의 수치를 참조하여 출력이 되게 됩니다.

*VMMAKER의 모니터타입을 고르는 곳에서 Edit monitor preset을 눌러보면 수치가 나옵니다.

*crt_rang0 은15khz 디스플레이에 해당하며 3모드 멀티포맷모니터와 같이 24~31khz를 지원하는 경우  crt_rang1, crt_rang2까지 수치가 입력됩니다.(2모드는 crt_rang1까지 입력이 됩니다.)

자동 수정된 것이 딱히 문제가 없지만 나는 모니터 타입을 커스텀이 아닌 내가 고른 것으로 적고 싶다라면 아래 목록을 보시고 수정하시면 됩니다. 저의 경우 ntsc로 해두었습니다.혹은 generic_15, arcade_15 로 고르셨다면 역시 목록 보고 고르면 되겠지요. 두세요. 비슷한 범위내의 것을 고르면 문제는 없습니다.

그리고 이런 경우엔 crt_range가 자동수정된 부분은 auto로 두시면 되겠습니다.

 

# generic_15, ntsc, pal                    Generic CRT standards
# arcade_15, arcade_15ex                   Arcade fixed frequency
# arcade_25, arcade_31                     Arcade fixed frequency
# arcade_15_25, arcade_15_25_31            Arcade multisync
# vesa_480, vesa_600, vesa_768, vesa_1024  VESA GTF
# pc_31_120, pc_70_120                     PC monitor 120 Hz
# h9110, polo, pstar                       Hantarex
# k7000, k7131, d9200, d9800, d9400        Wells Gardner
# m2929                                    Makvision
# m3129                                    Wei-Ya
# ms2930, ms929                            Nanao
# r666b                                    Rodotron

 

모니터목록과 커스텀부분은 아래 참조

https://gitlab.com/groovyarcade/support/-/wikis/3-Post-Installation-and-Maintenance/3.5-Monitor-Definitions#built-in-monitor-definitions

 

3.5 Monitor Definitions · Wiki · GroovyArcade / support · GitLab

Read the GroovyArcade wiki and ask for support here

gitlab.com

 

---changeres 는 게임이 해상도를 동적전환시키는 경우 이것을 허용하는 옵션이라고 합니다. 게임 자체에서 해상도가 바뀌는 경우를 의미하는 것 같은데 켜 둡니다.(0이 오프)

---screen_compositing 이것은 실행화면을 고정시켜두는 옵션인데 윈도우에서는 적용이 되지 않는다고 합니다. 그대로 둡니다.

 

나머지 옵션들은 아래 링크를 참조하시고 혹은 그루비 마메 압축푼 폴더내 docs에 들어 있는 PDF를 참조하셔도 됩니다. 단 switchres 관련 내용이 없어 아래 링크와 함께 보시면되겠습니다.  

*switchres.ini를 읽어 대체하는 방법도 있는데 리눅스의 경우에는 파일의 경로나 방법이 가이드가 있지만 윈도우는 도저히 방법을 찾지 못했습니다. 경로를 못찾았는데 어디에 두어도 인식을 못하더군요...

 

https://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1545#p1545 

 

Groovy MAME: Installation and quick configuration (2019 guide) (Page 1) — Discussion — Eiusdemmodi

Pages 1 You must login or register to post a reply Pages 1 You must login or register to post a reply

geedorah.com

http://forum.arcadecontrols.com/index.php?topic=166180.0 

 

Groovymame ini file configuration for a CRT

Hi flybynight, I don't know where you have got this "information" but it's all wrong. To have the correct settings, download GM from my github site and unzip. That's all. The defaults are the correct settings. Use the frame delay slider from the ui to adju

forum.arcadecontrols.com

 

여기까지 설정하고

 

AMD로 출력되는 모니터를 윈도우의 디스플레이 설정에서 '주 모니터(기본모니터)'로 만들어 줍니다. 

 

이때 기본해상도는 480i이상으로 해주세요. 240p상태에서는 AMD쪽으로 나오는 윈도우를 제대로 다룰 수가 없습니다.

물론 작업은 고해상도의 다른 모니터에서 한다면 240p로 해도 상관은 없습니다. 

*AMD로 출력되는 모니터는 제대로 설정 되어 있다면 1280x1024와 같은 고해상도로 해두어도 상관 없습니다.(단 이경우 일반 컴퓨터 모니터에서는 화면이 나오고 티비에서는 나오지 않다가 마메 실행시 티비에 다시 화면이 나오고 모니터는 화면이 나오지 않게 됩니다.)

*주 모니터 설정을 하지 않으면 여러가지 문제가 발생합니다. 마메 혹은 레트로 아크 등을 실행시 실행창이 어디론가 사라져 보이지 않거나 전체화면이 취소되고 게임화면이 창모드로 강제전환되어 다른 모니터에까지 화면이 늘어져 있는 등의 문제입니다.(본래 해상도를 포기하고 고정해상도를 사용한다면 주모니터 설정을 하지 않아도 가능)

*특히 해상도가 480i와 240p가 전환되는 게임은 해상도 전환시 역시 전체화면이 깨지는데 이것은 주 모니터 설정에 더해서 주 모니터 외에 다른 모니터는 연결을 끊어야 합니다.(레트로아크에서 새턴이나 플스2를  사용하는 경우가 이런데 역시 본래 해상도를 포기하고 슈퍼해상도나, 고정해상도를 사용한다면 연결끊기가 없어도 가능)

마메의 오락실 게임의 경우에는 보통 240p를 기본으로 조금씩 해상도가 바뀌는데 이 경우에는 다행히 주모니터 설정만 하면 되더군요.

다른 모니터의 연결끊기 과정에서 주모니터로 설정한 AMD쪽 모니터의 해상도가 변경되는 문제가 있으므로 arcade_osd를 녹색으로 호환성 확인시킨 다음 마지막으로 종료시킬 모니터에 arcade_osd를 두시기 바랍니다.

*주 모니터 설정을 하기 싫다면 게임의 원본 해상도가 아닌 고정해상도 출력으로 설정해야합니다. 위에서 언급한 슈퍼해상상도 설정은 수평은 고정이지만 수직해상도는 게임에 따라 변경되는 설정이라 고정해상도라고 할 수 없습니다.   

 

아래 스샷이 문제가 발생한 장면입니다. 브라운관 티비쪽은 화면이 중앙만 보이고 위아래는 잘려있고, 다른 모니터에 본래 티비에 나와야할 프로그램이 쭉 늘어져서 나타나 있습니다.

 

 

여기까지 설정되었다면 

mame.exe를 눌러 실행합니다. 그러면 설정한 옵션에 따라서(위의 옵션중 인터레이스) 240p 혹은 480i로 마메 ui가 뜨게 됩니다.

 

그럼 아래 화면이 뜹니다.(240p 노인터레이스 옵션)

롬폴더 경로는 설정했지만 스캔은 설정하지 않았으므로 작업을 해 줍니다.

아래 화면에서 돋보기를 눌러 줍니다.

아래 나오는 메뉴 두개를 모두 눌러 롬을 탐색해줍니다.

*메뉴가 스캔이 아닌 audit(검사) 인데 단순 스캔메뉴는 별도로 없는지 모르겠네요.

 

탐색 후에는 게임을 골라 실행하면 되겠습니다.

게임을 고를 때는 별도 탐색메뉴 없이 알파벳을 숫자를 누르면 마메ui상단에 해당 글자가 쳐지면서 탐색이 됩니다.

 

아래는 실행 영상

AMD의 출력을 1280x1024 60hz 상태에서 마메 실행시 320x240 60hz로 전체화면 전환, 그 다음 320x224인 스트라이커즈 1945-3로 다시 전환되는 영상입니다.

 

 

위와 동일한 상태에서 스노우브로스(256x224)로 전환

 

 

아래는 기본 해상도를 320x240으로 둔 상태에서 마메 - 스노우브로스 실행

 

 

 

다른 마메도 테스트해보았습니다.

 

마메 변종 중 ARCADE와 HBMAME, EKMAME를 테스트

*반드시 윈도우의 주 모니터를 게임출력시킬 모니터로 바꿔두어야 합니다.(본문에서는 AMD 그래픽 카드에 물려진 곳)

*고정된 해상도로 출력시킬 경우에는 주모니터설정이 필요 없습니다. 이 부분은 후술

 

ARCADE는 INI 건들 건 없이 실행후 메뉴에서 모두 설정이 가능합니다.

실행 후 옵션 - 디폴트게임옵션 에서 제가 설정한 스샷입니다.

Display에서 쓰로틀과 비디오모드(다이렉트3D) 체크하고 나머지는 해제, 스케일링은 기본상태

Advanced에서 프레임스킵핑은 오토로 두고 나머지는 체크는 해제, 그외는 기본상태로 두었습니다.

Screen에서는 스크린에서 출력시킬 디스플레이번호를 해당되는 것으로 선택, 나머지는 오토로 두고

로우레이턴시 체크, 그리고 Switch resolutions to Fit을 체크합니다. 이것을 체크해야 본래 해상도 혹은 그에 가까운 해상도로 출력됩니다.  이 부분은 제가 착각을 했습니다. 이름만 비슷하고(switchres) 용도가 다르더군요.  꽉차도록 해상도를 스위칭하는 옵션으로 보이고 게임의 원해상도로 출력시키는 옵션이 아니었습니다. 이 옵션을 켜나 끄나 해당 모니터의 해상도를  따라갑니다.         

 

 

아래는 HBMAME 입니다. 위의 ARCADE와 거의 동일합니다.

실행 후 옵션 - 디폴트게임옵션 에서 제가 설정한 스샷입니다.

아래는 동일

HBMAME에서는 로우 레이턴시가 어드밴스드에 있네요.

역시 스크린은 자신의 것으로 선택하고 Switch resolutions to Fit를 체크해 둡니다.  역시 ARCADE와 동일하게 이 부분은 제가 착각을 했습니다. 이름만 비슷하고(switchres) 용도가 다르더군요.  꽉차도록 해상도를 스위칭하는 옵션으로 보이고 게임의 원해상도로 출력시키는 옵션이 아니었습니다. 이 옵션을 켜나 끄나 해당 모니터의 해상도를  따라갑니다.         

 

아래는 EKMAME 입니다.

실행 후 옵션 - 기본게임옵션 에서 제가 설정한 스샷입니다.

화면설정에서 게임가속, 60프레임고정(이건 취향것), 프레임넘김 자동체크, 화면늘리기설정은 기본상태 그대로 두었습니다. 나머지는 해제, 스크린에서 역시 자신의 번호를 골라주고 로우레이턴시에 체크

가장 중요한 것은 꽉찬 화면으로 전환 체크 이 부분이 본래 해상도 혹은 그에 가까운 해상도 출력입니다. 시 ARCADE와 동일하게 이 부분은 제가 착각을 했습니다. 이름만 비슷하고(switchres) 용도가 다르더군요.  꽉차도록 해상도를 스위칭하는 옵션으로 보이고 게임의 원해상도로 출력시키는 옵션이 아니었습니다. 이 옵션을 켜나 끄나 해당 모니터의해상도를  따라갑니다.         

아래에서는 비디오모드를 다이렉트3d로 설정하고 나머지는 그대로 두었습니다.

 

위의 설정들은 게임의 본래 해상도 혹은 그에 가까운 대체 해상도 출력으로 주모니터설정이 필요합니다. 본래 해상도 부분은  제가 착각한 부분이긴합니다만 아래 꿀렁이는 부분(티어링으로 추측) 문제와 연결이 됩니다. 게임을 이런 현상 없이 꽉 채운 화면으로 즐기려면 위의 Switch resolutions to Fit 혹은 꽉찬화면으로 전환을 체크해야 합니다. 그리고 이 설정을 위해서는 주모니터설정이 필요합니다. 주모니터설정없이는 화면의 위치가 틀어지게 됩니다.    

 

나는 320x240p나 640x480i 고정해상도로 어떻게든 브라운관티비 혹은 방송용 모니터에 출력시키면 되고, 주모니터설정은 귀찮다 라는 분은 아래 설정들을 체크해제하시면 됩니다.

Switch resolutions to Fit / 꽉찬 화면으로 전환

위의 옵션을 해제하면 주모니터 설정 없이도 화면의 위치가 틀어지지 않고 브라운관티비/방송용모니터쪽에 설정한 해상도  (240p 혹은 480i)로 무조건 출력이 됩니다. 다만 이런 경우 꿀렁임 생길수도 있어서 설정의 모니터주사율이나 동기화 설정을 좀 만져보세요.

*레트로아크도 이런식으로 주모니터 설정없이 플레이가 가능한데 메가드라이브나 스노우브로스같은 오락실 게임을 구동시켜보면 이동시 꿀렁이는 세로 티어링(?) 비슷하게 나타나는 경우가 있습니다. 레트로아크의 경우에는 후술로 설명하고 위의 마메들은 옵션을 만져주면 됩니다. 단 일부 게임은 조정시 화면의 좌우빈공간이 생기는 단점이 있기 때문에 이런 경우가 싫다면 Switcher를 이용해 네이티브 혹은 슈퍼해상도를 사용해야합니다.

 

해당 옵션은 테스트한 마메들을 기준으로 아래 스샷처럼 Integer scaling/화면늘리기 에서 Use non-integer scaling와 나머지 부분을 체크  해제 하시면 됩니다. Overscan scale factor을 체크하고 수동으로 수평크기를 늘려보았지만 스노우브로스 기준으로 울렁이지 않으면서 적당히 큰 값은 찾지 못했습니다. 주모니터 설정하지 않고 쓰는 경우에는 걍 단점을 감수하고 쓰려고 합니다.

*주모니터 설정없이 쓰고 싶고 꿀렁이는 것도 싫고 좌우 남는 공간도 싫다면 남은 방법으로 그 해상도를 맞춰서 티비/모니터의 해상도를 바꾸고 실행하면 됩니다. 가량 스노우브로스가 꿀렁거려서 위의  설정대로 했는데 좌우 빈공간이 나타난다면 이 게임의 해상도인 256x224에 맞춰서 티비/모니터의 해상도를 변경하고 실행시키면 됩니다. 꿀러이는 건 보기 싫고 빈공간이 보이는 게임인 경우 이런식으로 일일이 맞춰주어야 겠지요. 물론 주모니터설정 후 슈퍼해상도나 네이티브 해상도 Switch resolutions to Fit / 꽉찬 화면으로 전환는 이런 문제가 없습니다. 수평이 맞춰지거나 처음부터 광대하게 넓게 잡아버리니까요.    이 부분은 착각한 부분으로 취소선처리하였습니다. 

 

 

 

그루비마메의 경우 주모니터 설정없이 구동... 설정을 찾기 어려웠습니다.

위의 Switch resolutions to Fit / 꽉찬 화면으로 전환을 오프시키는 것은 다른 마메에서도 mame.ini 에서 switchres의 값을 0으로 두는 것인데(비활성화) -- 서로 기능이 다릅니다. 제각 착각한 부분입니다.

그루비마메의 경우 switchres를 끄게 되면  Unable to create the direct3d device (8876086C) 오류가 발생합니다. 비디오랜더 옵션을 변경해도 동일한데 예전에 관련 이슈로 글이 있는걸 봐서는 뭔가 버그로 보이더군요.  이 문제가 해결되면 고정 해상도로 주모니터 설정없이 제대로 가능할텐데 아쉬운대로 아래의 방법을 사용해야 합니다. 

 

일단 억지로 방법은 찾았는데 이것이 제대로된 방법은 아닐거라고 봅니다.

왜냐하면 주모니터 설정없이 게임 자체는 되기는 합니다만 모니터에 설정한 해상도에 고정되지는 않습니다. 이것은 방법을 설명하면서 언급하겠습니다.

 

먼저 출력해상도를 320x240으로 설정한다음 아래처럼 그루마메설정을 수정합니다.

이렇게 하면 마메를 실행하면 수평해상도 320 고정, 수직해상도는 스위칭 되는 출력으로 게임을 할 수 있습니다.

# OSD PER-WINDOW VIDEO OPTIONS 에서 출력되는 모니터의 리솔루션을 아래처럼 수정  

screen                    \\.\DISPLAY57 --- 자신의 것으로 수정
aspect                    auto
resolution                320x0

 

# OSD FULL SCREEN OPTIONS 에서 인터레이스를 0으로 해두고 실행합니다. 

interlace                 0

changeres                 1

 

*위의 설정에서 resolution를 320x240로 하면 되는거 아니냐 할 수 있는데 이러면 오류메세지를 내더군요. 하지만 진행자체는 되면서 해상도가 320x240로 고정됩니다. 이게 본래 의도이긴 합니다.(다만 오류메세지가 뜨므로 패스하였습니다.)

*오류메세지는 Switcher 관련오류입니다. 당신의 사양에 맞는 비디오모드를 찾을 수 없다는 내용입니다.

 

 

아래는 480i 설정입니다.(반만 성공)

출력해상도를 720x480i로 설정한 다음 아래처럼 그루비마메설정을 수정합니다.

# OSD PER-WINDOW VIDEO OPTIONS 에서 출력되는 모니터의 리솔루션을 아래처럼 수정 

screen                    \\.\DISPLAY57 --- 자신의 것으로 수정  
aspect                    auto
resolution                720x0

 

# OSD FULL SCREEN OPTIONS 에서 인터레이스를 1으로 해두고 실행합니다.

interlace                 1

changeres                 1

이러면 수직해상도가 실기와 동일한 것을  Switcher가 찾을 수 있는 게임은 찾은 수직해상도로 출력되어 프로그레시브가 되어 버리고(통틀어서 240p), 찾을 수가 없어 대체되어야 하는 게임(예 - Willow) 480i 인터레이스로 출력 됩니다....   

*위의 설정에서  resolution를 720x480으로 변경해두면 480i 고정 출력을 시킬수 있습니다 다만 위의 320x240과 동일한 오류메세지가 나타납니다.   

*이 설정은 가끔 전체화면이 제대로 안뜨는 경우가 있는데 esc 연타로 종료시키고 다시 실행해보면 제대로 나타납니다.

 

 

 

 

아래부터는 레트로아크 입니다. 

 

아래 링크의 내용을 많이 참조하였습니다.

https://gist.github.com/Monroe88/dbd3e01252afa5c50690

 

RetroArch fullscreen video mode config template

RetroArch fullscreen video mode config template. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

https://www.retroarch.com/

 

RetroArch

PX68K PX-68K is a Sharp X68000 emulator. This is a Japanese home computer from the late '80s/early '90s that was used by Capcom as devkits for their arcade games. It played host to many popular games from the likes of Namco, Konami and Capcom. Core availab

www.retroarch.com

위의 링크에서 윈도우 버전을 다운로드하고 압축을 풀어줍니다.

한번 실행을 하고 

메인메뉴 - 온라인업데이트-코어다운로드에서 마메나 파이널번네오 등 사용할 에뮬레이터 코어를 다운로드 받아줍니다.

이후 설치된 코어 모두 업데이트, 에셋업데이트-데이터베이스 업데이트 까지 해주었습니다.

아래 스샷들 참조

 

 

이후 종료시키면 retroarch.cfg가 나타납니다. 메모장으로 열어줍니다.

 

crt_switch_resolution = "1"  ---  그루비아케이드에도 있는 switchres 과 동일한 것입니다. 1로 설정합니다.

 

GUI로 보면 0은 끔. 1부터 15khz입니다. 4는 ini로 위에 업로드한 switchres.ini을 불러오는 설정입니다.

문제는 제가 아직도그루비마메나 레트로아크나 switchres.ini를 집어넣을 경로를 찾지 못했습니다. 아무리 검색해도 리눅스쪽만 설명되어 있더군요.... ini를 넣는 점은 포기 

제가 주로 필요로 하는 것은 240p/480i 기준의 15khz를 이용할 것이므로 1을 선택합니다. 

아래 스샷의 끔은 '0' 입니다. 15khz로 설정해 줍니다. 



crt_switch_resolution_super = "2560"  혹은 "NATIVE"

---이 부분은 일단 NATIVE로 해둡니다. 다른 메뉴는 3840/2560/1920/DYNAMIC 으로 게임 본래의 해상도나 그에 가까운 대체해상도 출력을 원하므로 NATIVE설정, 2560등은 수평해상도를 고정시킬 때 사용합니다.(수직은 본래 해상도 혹은 그에 가깝게 자동 조정됩니다.)

 

아래 설정들도 동일하게 해 줍니다.

 

menu_driver = "rgui" 

menu_show_advanced_settings = "true"

video_driver = "d3d11"

video_frame_delay = "0"

video_fullscreen = "true"

video_fullscreen_x = "0"
video_fullscreen_y = "0"

---위의 두 수치는 0으로 두면 레트로아크가 출력되는 디스플레이의 윈도우 해상도를 따라갑니다. 단 아래 다른 설정에서 후술할 메뉴의 고해상도 메뉴 옵션을 켜게되면 위의 두 수치를 0으로 두어도 480i로 출력됩니다. 

---이 수치는 crt switch가 활성화된 경우에는  레트로아크의 게임실행전 화면의 해상도로 보시면 되는데요. 0으로 두게 되는 경우에 화면이 흐릿해지는 경우가 있는데 윈도우의 디스플레이 설정과 뭔가 충돌하는지 주모니터가 AMD쪽이 아니면 이럽니다.  뭔가 해상도가 뒤틀린 것인데 이때는 디스플레이의 해상도와 일치시키면 됩니다.

예를 들면 아래 처럼 수정하면 되겠습니다.  

video_fullscreen_x = "320"
video_fullscreen_y = "240"



video_monitor_index = "0" --- 이 부분이 출력되는 디스플레이를 설정하는 곳인데 레트로아크에서 가장 꼴때리는 곳입니다. 위의 마메에서 설정하였던 번호, 윈도우 디스플레이 설정의 번호와 일치하지 않더군요. 게다가 설정들을 수정하기 전에는 레트로아크 실행후 옵션에서 만져주어도 화면이 이동하지 않습니다.... 이부분은 일단 0으로 두고 이후에 다시 설정해주어야 합니다. 

 

video_rotation = "0"

video_smooth = "false"

video_swap_interval = "auto" --- 본래 해상도가 아닌 고정해상도로 출력시킬 경우 수직으로 일어나는 꿀렁임(티어링?) 방지용입니다. 
video_vsync = "true"  --- 이부분도 위와 동일한이유로 설정

video_windowed_fullscreen = "true"

 

설정후 메모장을 저장하고 다시 실행합니다.

 

이렇게 하면 레트로아크의 예전 GUI로 실행되게 됩니다.

(왜 이렇게 바꾸냐면 15khz 화면에서는 최근의 GUI테마로는 보기가 힘들더군요.)

 

이제 레트로 아크를 실행하고 위에서 그냥 두었던 모니터인덱스를 설정합니다. 

(버튼설정이 기본상태라면 z(확인) x(취소, 뒤로), 방향키로 수정입니다.)

메인메뉴가 나오면 설정 - 비디오

비디오에서 출력 - 모니터인덱스 부분에서 방향키를 이용해 번호를 변경합니다. 

 

번호를 변경하면 레트로아크 화면이 각 모니터로 이동하는데요. 출력시킬 AMD에 물린 디스플레이에 위치하면 뒤로가기를 눌러서 메인메뉴 - 구성 - 현재환경설정 저장을 합니다. 그리고 다시 메인메뉴로 나가 레트로아크를  종료 합니다.

왜냐하면 모니터를 일치시켰는데 아직 완전한 것이 아니기 때문입니다. 위의 출력에서 주사율이 0.000hz로 뜨는데요. 이부분이 문제가 되어서 이상태로 게임을 실행해봐야 화면이 제대로 나오지 않습니다.  

 

레트로아크가 종료된 상태에서 AMD쪽 해상도가 320x240인지 확인합니다. 아니면 변경을 해야합니다.

확인되었다면 레트로아크를 실행합니다. 그러면 주사율이 정상적으로 뜨면서 실행됩니다.  

*해상도가 일치하지 않거나(AMD쪽과 레트로 아크 설정) 다른 문제가 있다면 레트로아크 창이 이상하게 뜨거나 주사율이 정상적으로 뜨지 않습니다. 해상도 설정을 맞추어보고 그래도 안된다면 AMD에 물려진 모니터를 주모니터로 변경하고 시도해보세요. 이때는 레트로아크를 바로 실행 할 수 있는 준비는 해두어야 합니다 240p에서 윈도우 조작이 어렵기 때문에 레트로아크 바로가기를 바탕화면 최상단에 두는 방법이 있습니다. 

*이 설정으로 레트로아크를 켰는데 전체가 아닌 창으로 뜨거나 흐릿하게 보이면

video_fullscreen_x = "320"

video_fullscreen_y = "240"

으로 작성하고 다시 실행해보세요.

 

이 상태에서는 그대로 게임을 실행해서는 안됩니다. 아래 후술할 문제가 발생하는데요.

AMD에 물려진 모니터를 주모니터로 변경하고 게임을 실행해야 합니다.

다시 종료하고 AMD에 물려진 모니터를 주모니터로 변경하고 게임을 해봅니다. 

이러면 메가드라이브나 슈퍼패미컴, 파이널번/마메와 같은 보통 해상도가 320x240p 근처인 게임들은 정상적으로 실행이 됩니다.

 

문제는 자체적으로 480i와 240p가 전환되는 게임인데요. 전환이 될 때 화면이 괴상하게 변하게 됩니다. 다른 모니터로 화면이 넘어가건, 가로로 길쭉하게 되거나, 아예 사라지거나...(이것은 주모니터가 아닌 경우에도 이럽니다. 물론 주모니터가 아닐 경우에 설정하는 방법이 별도로 있습니다만 이건 고정해상도가 되기 때문에 나중에 후술합니다.)

 

예를 들어 그란디아1이 있습니다. 이 게임은 세가 로고는 240p, 게임 오프닝 영상이 480i 인데요. 오프닝 끝나고 본 게임화면인 240p로 전활될 때 위의 문제가 발생합니다.

480i이 먼저 출력되는 게임도 처음 실행시에는 정상적으로 나오는데 종료시 화면이 역시 괴상해집니다....

실행시 처음부터 480i로 실행되도록 설정해 둘 수 있습니다만 역시 차이가 없습니다.

 

아래부터는 해결방법입니다.

먼저 480i로만 출력되는 게임입니다. 

먼저 레트로아크의 retroarch.cfg를 메모장으로 열어줍니다.

그리고 crt_switch_hires_menu = "true" 로 수정합니다.

GUI에서는 아래 옵션이 활성화 됩니다.

 

이렇게 하면 게임실행전 메뉴화면은 480i가 됩니다.   

AMD쪽 해상도를 640x480i로 맞추고 주모니터 설정을 한다음 레트로 아크를 실행하면 480i 게임들은(플스2의 대부분 게임) 정상적으로 실행됩니다.

다만 이 설정상태에서 메뉴를 crt_switch_hires_menu 오프시켜서 240p로 실행시키는 경우, 240p 게임을 구동시키는 경우에 역시 화면에 문제가 나타납니다.

 

그렇다면 480i - 240p가 전환되는 게임은.... 몇가지 방법이 있습니다.

 

먼저 주 모니터를 AMD쪽으로 하되 다른 모니터는 연결을 끊습니다.

끊는 방법은 윈도우의 디스플레이 설정에서 가능합니다. 

아래 스샷에서 4가 AMD고 나머지가 엔비디아 인데요. 4번을 주모니터로 설정하고 나머지를 모두 끊어줍니다.

4번을 단독으로 쓰기 위해서는 해상도가 480i 이상은 되어야 조작이 가능합니다. 

현재 저의 경우에는 AMD쪽은 티비외에도 CRT모니터가(컴퓨터용 일반 모니터)가 분배기로 물려져 있으므로 1280x1024와 같은 고해상도도 가능했었습니다.

위의 스샷처럼 주모니터를 설정하고 끊어주다보면 주모니터로 설정한 AMD쪽의 해상도가 강제로 변경되거나 주모니터가 바뀌는 등 희한한 일이 나타납니다. 

변경하다보면 240p가 되어서 조작이 힘든 경우까지 간혹 생기니 마지막 모니터를 끊기 직전에  arcade_osd.exe를 미리 실행시켜서 480i 이상의 해상도를 유지시켜 줍니다.

이렇게 하면 480i-240p의 전환 게임도 문제가 없습니다.

 

출력되는 모니터가 AMD쪽만 남게 되면 레트로아크를 실행시켜서 설정-비디오-출력-모니터인덱스를 다시 설정해야 합니다. 레트로 아크가 마메처럼 디스플레이 번호로 지정하거나 윈도우의 디스플레이 설정상의 번호로 되면 좋은데... 제멋대로라서 이렇게 다른 모니터의 연결 끓기를 하면 또 인덱스번호가 변경됩니다 보통 1번으로 변경되니 이것으로 해두시면 되고 설정후 저장 및 종료시키고 다시 레트로 아크를 실행합니다.(1이 아니라면 일일이 변경하면서 찾아야 합니다.) 여기까지 하면 설정이 끝납니다.   

 

AMD로 출력되는 기본해상도는 티비/모니터에 보이기만 한다면 어떤 해상도이든 관계가 없고, 480i 게임을 위해 설정한 crt_switch_hires_menu = "true" / 고해상도 메뉴 사용도 오프시켜도 됩니다.(그대로 사용해도 괜찮습니다.)

단 설명한대로 240p는 윈도우상에서 조작이 너무 힘들어서 패스하세요. 480i 이상으로 해두고 레트로아크를 실행하면 됩니다. 이때도 물론 고해상도 메뉴는 사용은 오프시켜도 무방합니다.  

 

아래 영상은 다른 모니터를 모두 끊고 AMD쪽만 남겨두고 실행한 영상입니다.

AMD의 해상도는 1280x1024로 해두었습니다.

아래는 기본 해상도 480i 에서의 실행

 

해상도를 240p로 두고 쓰기에는 다른 모니터가 다 끊긴 상태에서 조작이 너무 힘듭니다. 오로지 240p를 쓰겠다고 하는 경우에는 바탕화면 맨 상단에 레트로아크와 arcade_osd.exe의 바로가기를 만들어 두면 되겠습니다.

 

 

또 다른 방법은 본래 해상도를 포기하고 슈퍼해상도로 내보내는 것입니다.

다른 모니터의 연결을 끊을 필요가 없고 주모니터만 AMD로 설정하면 되는 설정입니다. 

방법은 아래와 같습니다.

먼저 AMD쪽 해상도는 240p 외에 티비/모니터에 화면이 나오는 다른 해상도로 하셔도 됩니다. 

필수적인 것은 VMMAKER에서 슈퍼해상도를(2560) 미리 추가해주어야 합니다. (VMMAKER 설명에서 언급한 슈퍼해상도 복붙하기)

retroarch.cfg를 메모장으로 부르고 

crt_switch_resolution_super = "2560" 으로 변경합니다. 이 수치는 1920, 3840도 가능합니다만 제가 설명한 부분의 복붙한 해상도에는 없을 터라 2560으로 해두시면 됩니다. 물론 해상도를 별도 추가하신 경우라면 변경시 아래의 2560수치도 동일하게 변경시면 됩니다.
crt_switch_hires_menu = "false" 아니면 "true" 로 고해상도 메뉴 사용은 해도 좋고 안해도 좋습니다.

아래 수치는 0으로 그대로 두시면 됩니다. 흐릿해지거나 그렇다면 320x240으로 한 번 해보시기 바랍니다. 

video_fullscreen_x = "0"
video_fullscreen_y = "0"

 

이렇게 하면 수평해상도는 2560으로 고정되고 수직해상도는 콘솔/게임에 따라 자동 전환되면서 사용할 수 있습니다.

그루비마메에서 2560x0 으로 설정한 것과 동일한 것이지요. 

*레트로아크의 주사율메세지가 0.000이렇게 나오면 인식이 제대로 안된 것으로 모니터인덱스가 제대로 되어 있더라도 다른것으로 변경 후 레트로아크를 재시작하고, 다시 맞는 번호로 수정하고 레트로아크를 재시작을 해보시기 바랍니다. 이래도 문제가 나타난다면 슈퍼해상도/혹은 설정한 다른 해상도를 제대로 VMMAKER을 통해 인식시키지 못한 경우이니 다시 작업을 해야 합니다.

 

 

아래는 주모니터 설정도 귀찮을 경우 고정해상도로 사용하는 방법입니다.

단점은 본래 해상도가 아니고, 게임의 해상도가 고정해상도보다 높은 경우, 예를 들어 480i 게임인데 240p로 고정시켜 출력시키는 경우에 폰트가 좀 이상해지는 부분이 있습니다. 480i은 그 자체로 떨림이 있다는 단점이 있지요.

 

retroarch.cfg를 메모장으로 열고 crt_switch_resolution = "0" 으로 해 줍니다. 이렇게 하면 게임별 해상도를 조절해주는 기능이 꺼집니다.

그리고 아래 수치를 조정합니다. 주모니터 상태가 아니라서 0으로 두면 흐릿해지더군요. 

video_fullscreen_x = "320" 
video_fullscreen_y = "240" 

설정을 마쳤으면 AMD에 물려진 모니터의 해상도도 변경합니다.

240p로 할경우 해상도를 320x240 60p, 480i로 할경우 640x480 60i 로 해둡니다.

480i의 경우에 위의 320/240을 수정해야 하는 것 아닌가? 할 수 있는데 딱히 수정할 필요는 없습니다.

(고해상도 메뉴 사용도 수정할 필요 없습니다.)

 

이렇게 고정해상도로 굴릴 경우에 일부 게임기/게임에 따라서 세로로 뭔가 울렁이는 티어링 비슷한 것이 나타납니다. 잠시 언급을 했었는데 주로 메가드라이브 코어인  genesis plus gx에서 악마성을 구동해보니 나타나더군요. 이런 경우 게임실행상태에서 F1키를 눌러 빠른 메뉴를 부르고 코어옵션에 들어가 비디오-코어제공화면비에서 4:3 혹은 고정 안됨으로 선택해줍니다.

설정을 하였으면 뒤로 돌아가 빠른메뉴 상태에서 상태저장을 누르면 적용이 됩니다.

 

이외에 한가지 더 방법이 있습니다. 레트로아크의 화면비를 수정하는 것인데요. 

위의 방법으로도 안되거나 파이널번/마메와 같이 자체셋팅으로 어떻게 되지 않는 경우에 사용합니다.(예 - 스노우 브로스)

게임을 보면서 해야 편하기 때문에 먼저 게임을 실행시키고 F1키를 눌러 빠른메뉴를 부릅니다.

그리고 x키를 눌러 전체메뉴로 돌아갑니다.(뒤로가기 키는 기본상태라면 x 키입니다.)

거기서 설정-비디오-크기에 들어갑니다.

크기에서 정수 단위 화면 크기 활성화를 하고 아래 화면비에 들어갑니다. 

화면비에서 적절한 비율을 찾아야 하는데 스샷의 스노우브로스는 1:1PAR(8:7 DAR)을 골라주니 해결되었습니다.

단점이라면 게임기/게임에따라  좌우화면에 빈공간이 발생하는군요.

메가드라이브에서 굴린 악마성의 경우에는 괜찮은데 위의 스노우브로스는 좌우에 빈공간이 발생합니다.

 

위의 경우는 고정해상도로 굴렸을 때의 것으로 본래 해상도/가장 가까운 대체 해상도 혹은 슈퍼해상도로 구동시키는 경우에는 나타나지 않습니다.

 

 

그리고 파이널번/마메와 같이 오락실 게임의 경우 세로화면 게임이 회전되어 나오는 경우가 있습니다. 레트로아크에서 회전을 막아두어도 이런 게임은 비율이이상해져 있는 경우가 있습니다. 이럴 때는 에뮬레이터 자체에서 돌려주어야 합니다.

파이널번은 1945-3를 예시로 들어 보면 게임실해 후 역시 F1키를 눌러 코어옵션에 들어갑니다.

단 이런 세로게임을 강제로 돌려버린 게임은 메뉴가 찌그러져 나옵니다

.  

이 부분은 게임실행 전에 미리 아까 비디오-크기 메뉴에 있던 정수 단위 화면 크기 활성화를 해주면 해결 됩니다.

이후 다시 게임 실행 후 F1을 눌러 메뉴를 부르고 코어옵션-버티컬 모드로 들어갑니다.

버티컬 모드를 켜주면 화면이 정상적으로 돌아갑니다.

 

  

 

이렇게 게임별 코어별로 설정이 변한다면 환경설정이 개별로 존재할 필요가 있습니다. 아래 내용입니다.

 

각 설정의 저장은 2가지로 구분됩니다. 할 때마다 다시 설정할 수 없으니 코어별 게임별로 설정할 필요가 있습니다.

일단 레트로아크의 전체메뉴-설정과 코오옵션에서 설정한 것이 구분됩니다.(빠른메뉴-코어옵션)

 

게임실행 후 레트로아크의 전체메뉴-설정을 변경하였다면

 빠른메뉴로 - 기존설정덮어쓰기로 해당 설정을 저장하는데요 

해당 메뉴에 들어가보면  코어우선설정저장과 게임우선설정저장이 있습니다.

코어우선설정은 코어실행시 우선적용되는 설정, 게임우선설정은 그 게임에 우선적용되는 것으로

게임별로 저장된 것이 코어우선설정 보다 우선순위가 높습니다.

즉 레트로아크 기본설정, 코어우선설정 저장한 것, 게임우선설정저상이 있다면 역순으로 우선순위가 됩니다.

저장된 파일은 레트로아크 기본설정(retroarch.cfg)은 실행파일과 같은 폴더

코어우선설정 저장은 레트로아크의 config폴더에 에뮬레이터 코어명 폴더에 코어명.cfg에 저장

게임우선설정저장은 역시 config폴더 구동시키는 코어명폴더에 게임롬파일명.cfg로 저장됩니다.

 

가령 파이널번네오[의 스노우브로스의 울렁이는 화면을 고치기 위해 정수단위화면크기를 활성화한 후

빠른메뉴 - 기존설정덮어쓰기-게임우선설정저장을 했고,

다른 게임에선 필요가 없어 정수단위화면크기를 비활성화하여 코어우선설정저장을 하였습니다.

 

이렇게 되면  레트로아크의 config폴더에 FinalBurn Neo폴더가 있으면 그 안데 코어우선설정은 FinalBurn Neo.cfg로 저장, 게임우선설정저장은 snowbros.cfg로 저장이 됩니다.

코어우선설정의 경우 저장이 안되는 경우가 있는데 기종설정덮어쓰기는 레트로아크의 기본설정파일과 동일한 경우에는 저장이 별도로 되지않습니다. 의미가 없기 때문이지요. 물론 레트로아크의 전체메뉴-설정에서 변경사항이 있는 경우 파일로 저장이 됩니다.    

*컨텐츠 폴더 우선 설정 저장을 할 경우  컨텐츠 즉 롬파일이 있는 폴더명으로 파일이 저장됩니다. 가량 스노우브로스가 c:\FB\roms\ 에 있다면 바로 윗 폴더명인 roms.cfg로 저장이 됩니다. 저장파일은 다른 cfg파일과 같은 곳에 저장됩니다. 우선순위는 코어보다는 순위가 높고 게임보다 낮습니다.

*구글링을 해보니 레트로아크 전체메뉴-설정에서 입력부분은 이런식의 개별저장은 안된다고 하는군요.

 

 

다음은 코어옵션의 변경사항 저장입니다.

이것은 레트로아크-전체메뉴의 설정이 아닌 코어별로 존재하는 옵션입니다.

게임실행 후 빠른메뉴-코어옵션에서 설정하는 것으로 위의 것과 구분되어 저장이 됩니다.(확장자가 opt)

가령 파이널번네오로 1945-3를 구동시켰고 화면을 돌리기 위해 버티컬모드를 활성화 했습니다.

이렇게 설정을 변경시키고 역시 코어옵션에 있는 코어옵션관리에 들어갑니다. 거기서 게임옵션저장을 했다면 

config폴더에 FinalBurn Neo폴더에 1945iii.opt 로 저장이 됩니다.(게임롬파일명.opt)

 

가장 기본이 되는 코어 옵션 저장파일은 코어로 한번이라도 게임을 실행시킨 후 게임옵션저장을 하지 않고 종료시키면 자동생성됩니다.

단 기본이라도 고정된 설정은 아닙니다. 코어옵션에서 설정을 변경후에 코어옵션관리를 이용하지 않고 종료시킨 경우 해당 설정이 자동으로 코어옵션저장파일로 저장됩니다. 파일명은 역시 위의 cfg와 동일한 방식으로 저장이 됩니다.

파이널번네오이라면 config폴더에 FinalBurn Neo폴더에 FinalBurn Neo.opt로 저장

*단 이때 실행한 게임은 게임옵션저장을 한번도 하지 않은 게임이어야 합니다.

 

나머지 컨텐츠폴더설정저장, 옵션초기화가 보입니다.

컨텐츠폴더설정저장 또한 위의 cfg와 동일한 것이고

옵션초기화는 실행할 경우 코어옵션의 설정이 FinalBurn Neo.opt 으로 돌아가게 됩니다.

초기화하자마자 적용은 안되기 때문에 빠른메뉴-상태저장을 해야 적용이 됩니다.

옵션초기화를 실행한 경우 적용을 시키지 않아도 그냥 종료시키면 활성옵션파일에 그대로 저장이 됩니다.

무슨 말이냐면 예시의 1945-3와같이 게임옵션저장을 한 게임의 경우에는 해당 게임을 실행시키면 활성옵션파일이 1945iii.opt가 됩니다. 이 상태에서 옵션초기화 실행 후 그냥 종료시키면 1945iii.opt의 설정사항이 FinalBurn Neo.opt의 것으로 덮어집니다.

그리고 1945iii.opt가 적용되는 상태에서 코어옵션을 변경 후 그냥 종료시켜도 해당 사항이 자동 저장이 됩니다. 위의 FinalBurn Neo.opt의 예시와 동일한 부분으로 FinalBurn Neo.opt 또한 별도 게임옵션저장을 한번도 하지 않은 게임을 실행하고 코어옵션 변경 후 그냥 종료시키면 FinalBurn Neo.opt에 수정사항이 저장됩니다. 

 

이외에 바이오스 저장경로 같은 기초적인 설정법은 아래 링크를 참조하시기 바랍니다.

https://docs.libretro.com/guides/install-windows/  

 

Windows 7/8/8.1/10/11 - Libretro Docs

Downloading, Installing and Updating RetroArch for Windows 7 and Later Downloading First decide if you want a stable release or a nightly. Both options provide you with the latest RetroArch, the only difference is that one is a self extracting installer, a

docs.libretro.com

 

레트로아크 외 테스트한 다른 마메들은 딱히 저런 설정 없어도 잘 되었습니다. 

 

 

 

 

에뮬레이터들의 게임실행기는 여기까지이고 아래부터는 화면의 위치조종 삽질기 입니다.

 

 

콘솔기나 오락실의 경우 해상도가 많다보니 화면의 위치나 크기가 모니터/티비에 따라서 틀려지게 되는데요.

이걸 맞추는 방법입니다.

문제는 티비나 모니터에서 크기/위치를 변경하는 것이 더 쉽더군요. 관련지식이 전무하다보니... 

 

검색을 해보니 방법이 여럿 있더군요.

당연하겠지만 디스플레이(티비/모니터) 자체에서 조정하는 것이 있고,

에뮬레이터자체의 조정(그루비마메),  arcade_osd를 이용하는 방법이 있었습니다.

 

 

 

예시로 레트로아크의 파이널번네오로 돌린 스트라이커즈 1945-3 화면입니다. 

이 게임은 해상도가 아래 스샷처럼 320x224 입니다. SR 해상도 수치도  동일 

*본래 해상도 아래에 있는 SR 해상도가 다르다면 이 SR해상도를 골라 조정해주어야 합니다. SR은 아마도 switchres 의 약자로 보이며 기능은 등록된 게임기/오락실의 해상도를 에뮬레이터가 출력시킬때 본래 해상도, 최대한 가까운 혹은 설정된 해상도로 자동 변환해주는 역할을 합니다. 실제로 wiilow같은 게임은 본래 해상도는 384x224입니다만 SR은 384x240으로 출력시킵니다.(384x224는 위의 VMMAKER로는 없어서 검색해보니 384x240로 대체되는 것이 맞다고 하더군요.)

아래가 willow입니다. 본래 해상도와 SR해상도중 수직해상도가 약간 다릅니다. 이럴 때는 SR쪽 해상도를 조정해주어야합니다.

*CPS1 게임이 죄다 이런데 수직해상도가 틀리게 표현되면 수평보다 왜곡되어 보이는 것이 심하다고 하는 터라 왜 384x224가 제외되어 있는지는 ...  검색을 해보니 CPS1 게임의 경우 기술적으로는 384x224이나 실제 화상의 지오매트리는 384x240이라는 말도 있고,  상하8라인씩 블랙바로 채우면 되어서 뺏다는 말도 있고 그렇습니다.    

*이외에 슈퍼해상도(2560x240)으로 실행하는 경우에 역시 SR의 해상도도 이것을 따라가기 때문에 화면조정 시 슈퍼해상도를 찾아 조정해주어야 합니다. 

 

제 티비에서는 1945-3 실행 시 아래스샷처럼 우측 공간에 남습니다. 이걸 이동시켜 보겠습니다.

 

arcade_osd 에서 상단 녹색으로 호환이 뜨는 것을 확인하고 Video modes를 선택한 다음 320x224를 선택해 '2'를 눌러줍니다. (엔터치지 마세요.)

그러면 나오는 화면에서 수평위치를 조절할 것이므로 Horizontal geometry를 선택하고 엔터를 눌러줍니다.

그러면 나오는 화면은 다음과 같습니다.

H center은 무시하시고

아래의 H front porch와 H back porch, 그리고 H sync pulse를 확인합니다.

화면의 우측의 빈공간이 있으므로 빈공간으로 위치를 이동시켜주어야 합니다. 

H front porch와 H back porch의 합이나 차이의 비례/반비례에 따라서 크기와 위치가 변한다고 합니다.

두 수치의 합의 반비례 크기, 차이의 비례가 위치인데요. 문과인 저로서는 힘들므로 무식하게 걍 조절해보았습니다.

H back porch을 조절해보니 왼쪽의 공간이 변하고, H front porch를 조절해보니 우측의 공간이 변합니다. 

그리고 H sync pulse를 건들여보니 화면의 좌우 크기가 변하더군요.

정보를 살펴보니  H sync pulse 는 어지간하면 건들지 말라는 것이 있어 최대한 포치값을 조절해 맞추봅니다.    

각 수치의 의미는 아래 링크를 참조하세요.

https://projectf.io/posts/video-timings-vga-720p-1080p/

 

Video Timings: VGA, SVGA, 720p, 1080p - Project F: FPGA Dev

To work with standard monitors and TVs, you need to use the correct video timings. This how to includes the timings for four standard display modes using analogue VGA, DVI, HDMI, or DisplayPort: 640x480 (VGA), 800x600 (SVGA), 1280x720, and 1920x1080 all at

projectf.io

 

단 너무 크게 수치를 조절하면 화면이 나가버리므로 이런 경우에는 티비/모니터에서 위치나크기를 조절해야 합니다. 

수치를 변경하고 엔터를 치면 아래 스샷처럼 전체화면으로 테스트장면이 뜨게 됩니다. 이것으로 보고 변경합니다.

수치를 조정해 위치 중앙으로 잘 잡고 esc를 누르면 아래 스샷이 뜹니다.

빨간색의 세이브 체인지를 눌러 설정을 저장해줍니다.

위치는 중앙으로 잡았는데 크기가 커서 화면이 좌우로 잘립니다. 

 

같은 방법으로 H sync pulse를 조정해줍니다. 아래 처럼 완료되었습니다.

 

위아래(수직)도 Vertical geometry를 통해 조절하면 되겠습니다.

*정보를 검색해보니 수직은 진폭수정이 소프트웨어로는 안된다는 정보가 있습니다. 확실히 위치는 어떻게 되던데 크기는 잘 안되는것 같더군요.

 

이런 조정 시 약간 불편한 점이라면 직접 게임화면을 보면서 조절하기가 어렵습니다.

게임을 전체화면으로 켜두어야 원본해상도로 나가게 되는데 arcade_osd설정을 위해 알트+탭을 누르면 해상도가 기본으로 설정해둔 것으로 전환이 되고 게임화면서 창으로 내려가게 됩니다. 이렇다보니 조절하고 다시 알트+탭을 눌러 게임화면을 불러 확인하는 식이 되겠습니다.

 

아래 좌측의 스샷이 좀 극단적으로 조절한 예시인데 기본 해상도를 1280x1024(우측의 일반 모니터로 맞춘 것)으로 한 상태에서 1945-3를 구동했었습니다. 게임 구동시에는 해상도가 게임의 해상도로 변경되므로 반대로 티비에는 나오고 모니터는 나오지 않습니다. 

이 상태에서 arcade_osd을 실행하면 다시 기본해상도로 돌아가므로 아래 좌측 스샷 처럼 되어 버리는 것이지요.

물론 기본해상도를 320x240이나 640x480i 정도로 잡아두면 티비가 아래우측스샷 처럼 깨지는 것은 방비할 수 있습니다. 다만 일반모니터에서는 화면이 나오지 않겠지요. 어차리 화면조정은 티비가 우선이므로 굳이 아래 좌측스샷처럼 할 필요는 없겠습니다.

기본 해상도를 320x240이나 640x480i 로 잡아둔 상태에서  arcade_osd을 실행하세요.

 

 

 

위의 사례를 본다면 해상도별로 다 해줘야 하나? 할 수 있겠습니다만 그런건 또 아닙니다.

윈도우 바탕화면이나 에뮬레이터들의 실행화면과 같은 동일 해상도는 이런식으로 해도 되지만 

여러 해상도가 있는 오락실 게임이나 일부 콘솔기의 게임같은 경우에는 해상도가 가변되기 때무에 일일이 하기에는 너무 힘듭니다. 그렇기 때문에 전체적인 지원 범위에서 맞춰줄 필요가 있습니다. 

위에서 VMMAKER로 그루비마메의 mame.EXE를 불러 작업한 부분이 있는데요. 이렇게 하면 같은 폴더의 mame.ini에 커스텀 해상도가 자동작성이 됩니다. 

모니터 타입 선택하는 곳의 Edit monitor presets를 눌러보면 나오는 수치가 작성되는 것인데 이것은 개별 해상도의 modeline이 아닌 해당 모니터의 지원범위라고 할 수 있습니다.

작성은 crt_range0에 되면 이 부부은 15khz의 범위, 24khz나 31khz 까지 지원하는 3모드 라면 crt_range1, crt_range2까지 작성됩니다만 저는 15khz하나만 되는 브라운관 티비 이므로 crt_range0 에만 작성이 됩니다. 그리고  mame.ini에 있는 모니터타입은 커스텀으로 수정됩니다.(ntsc로 작성될줄 알았는데 아니더군요.) 

아래는 자동작성된 부분입니다.

 

# OSD FULL SCREEN OPTIONS

monitor                   custom

crt_range0                15734-15734, 59.94-59.94, 1.500, 4.700, 4.700, 0.191, 0.191, 0.953, 0, 0, 192, 240, 448, 480

 

crt_range0를 보시면 되는데 1.500과 4.700, 4700이 보이는데요 순서대로 H front porch/H sync pulse/H back porch 입니다.(수평)

그리고 0.191, 0.191, 0.953이 V front porch/V sync pulse/V back porch 입니다.(수직)

 

여기서 눈치를 채셨겠지만 이 수치들을 조정하면 그루비아케이드에서 switchres를 통해 실기해상도 혹은 그를 대체하는 해상돌 자동 전환되어 나가는 경우 이 수치들이 반영되어 출력이 됩니다.

모니터 타입을 수정된 것이 아닌 본래의 옵션으로 선택할 경우(ntsc 등) 그루비마메 자체적으로 ntsc타입에 대한 crt_range를 적용시켜 반영합니다. 즉  arcade_osd에서 적용한 수정부분이 그루비마메에서는 반영이 안되는 것입니다. 

*고정해상도로 출력시키는 방법도 있는데 이건이 수치를 반영하지 않게 되고 위의 개별적으로 수치조정된 것을 따라 가게 됩니다.   

이 수치들을 H쪽은 0.4~0.6, V는 0.064 정도로 조정해가면서 조정하고 실행해보고 하는식으로 맞춰주면 됩니다. 다만 저는 이렇게 하기 싫어서 

위의 arcade_osd를 이용하였습니다. arcade_osd를 불러서 오락실 게임에서 많이 사용할것으로 개인적으로 추측하는 320x224p에서 수치들을 조정해 중간을 맞춘 다음 그 수치를 crt_range0에 적고 이후 실행하고 수치조정하는 하는 식으로 하였습니다.

 

 

arcade_osd의 수정된 수치를 보고 crt_range0 의 수치를 수정하면 그루비마메에 반영 되며, 개별해상도가 아닌 VMMAKER에서 지정한 모니터타입의 지원범위내의 해상도들은 모두 적용이 됩니다. 

*24khz나31khz는 역시 같은 방법으로 crt_range1 crt_range2를 수정하면 됩니다.

 

그리고 다시 그루비마메에서 개별게임별 조정도 가능합니다.

일단 게임 자체의 해상도를 알아야 하는데요. 마찮가지 SR수치를 보면 됩니다. 처음시작시 나오는 정보를 봐도 되고, 명령프롬프트(파워쉘 말고, 명령프롬프트로 열어야 합니다. 윈도우시작버튼을 마우스 오른쪽 버튼클릭-검색-명령 이라고 검색하면 나옵니다.

 

명령프롬프트가 실행되면 아래 처럼 그루비마메가 있는 폴더로 들어가(저는D:\mame\ 폴더에 두었습니다.)  

mame 게임롬파일명 -v 로 실행

실행후 주루룩 정보가 뜹니다. 게임에 동전 하나 넣어보고 마메를 종료시킵니다.

맨 마지막 Switchers 정보를 확인합니다. 이부분이 이 게임을 Switchers가 실기의 해상도정보를 바탕으로 출력시킨 modeline입니다. 테스트한 1945-3의 경우에는 게임의 본 해상도와 동일하지만 cps1 게임인willow와 같은 경우에는 실해상도와 Switchers 가 골라준 해상도가 약간 다르기 때문에 Switchers가 골라준 해상도를 조절해야 합니다.   

수치를 전부 기억할 필요는 없고 앞에 320x224를 확인하고  arcade_osd를 실행합니다.

arcade_osd에서 해당 해상도를 찾아 들어가 2를 눌러줍니다.(엔터치지마세요.)

그럼나오는 화면에서 Edit modeline에 엔터를 쳐서 들어갑니다. (arcade_osd가 인식하는 모니터는 반드시 AMD쪽에 물린  디스플레이여야 합니다.) 

들어가면 아래 화면이 나오는데 지오메트리의에서 보던 포치 등이 아닌 다른 형식으로 나옵니다. 일단 원리는 동일합니다.

수평의 경우 HSyncStart, HSyncEnd을 건들이는데

오른쪽이 빈다면(오른쪽에서 떨어져 있으면) HSyncStart, HSyncEnd 두개에 각기 같은 값을 더해서 조정

왼쪽이 비어져 있다면(왼쪽에서 떨어져 있으면)  HSyncStart, HSyncEnd에 각기 같은 값을 빼서 조정입니다.

이띠 조정하는 값은 8배수여야 한다고  합니다.

HSyncStart, HSyncEnd에 각각 8을 단위로 더해주면서 테스트하면 되겠지요.

좌우폭은HTotal 이며 넓으면 더하기 좁으면 빼기입니다. 역시 8의 배수를 더해줍니다. 

 

수직도 조정하면 됩니다만 이건 8의배수 이런건 없고 

상단이 비면(낮으면)  VSyncStart, VSyncEnd 두개에 각기 같은 값을 더하기

하단이 비면(높으면) VSyncStart, VSyncEnd에 두개에 각기 같은 값을 빼기

VTotal도 동일한데 스포트웨어로 이 수치를 조정해봐야 안된다고 하더군요. 

 

수치를 조정하면 위에 Dot-Clock도 조정이 됩니다. 이 변경된 수치까지 적용이 되어야 Refresh rate이 변하지 않습니다.

 

조정을 하였으면 이 값을 복사해야 합니다. 아래 스샷 처럼 Copy modeline to clipboard를 선택해주면 복사가 되고

메모장에 붙여넣기를 하면 됩니다.

*복사할 때 조정한 값을 세이브하지 않아도 됩니다.

 

제가 테스트한 것으로 아래 처럼 내용이 복사가 됩니다.  

modeline "320x224_60 15.69KHz 59.88Hz" 6.79 320 329 357 433 224 235 238 262 -hsync -vsync
crt_range 15678.31-15698.31, 50.00-60.00, 1.325, 4.122, 11.188, 0.701, 0.191, 1.530, 0, 0, 224, 276, 448, 552

 

필요한 것은 modeline 부분으로 crt_range은 지우고 게임롬파일명.ini로 저장합니다.

스트라이커즈 1945-3를 테스트한 것인 롬파일명은 s1945iii 입니다. s1945iii.ini 로 저장

이 파일은 마메폴더의 ini폴더에 복사합니다. 그럼 적용이 된 것을 볼 수 있습니다.

 

위의 방법들은 일단 Switchers가 실기해상도 혹은 그를 최대한 대체하는 해상도, 슈퍼해상도를 스위칭해줄때 의미가 있습니다. 고정해상도를 이용할 경우에는 이렇게 번거롭게 하기 보다는 걍 디스플레이에서 직접 조정하는 것이 좋겠지요.

 

 

 

여기까지가 암드 그래픽카드를 이용한 15khz 출력 삽질기였습니다.

 

 

번외적으로 이번에 서브로 단 AMD 그래픽카드인 R7 250이 플루이드모션을 지원하다보니 한번 테스트 해보았습니다.

인터넷에 널리 알려진 정보대로 Bluesky Frame Rate Converter 를 다운받고 아래처럼 체크한 뒤에 리부팅 

 

리부팅 뒤에 라데온 설정에 들어가서 비디오탭을 보면 플루이드모션 활성화칸이 뜬다고 하는데 저는 안뜨더군요.

커스텀 드라이브인 CRT emudriver 라서 그런가 추측하다가 

이것 저것 정보를 알아보니 GCN1 세대가 정식지원이 아니다보니 막은거다 혹은 아니다 활성화칸만 안뜨는 거지 적용은 되어 있다 등 여러 가지 의견이 많았습니다. 그래서 그대로 영상을 돌려보기로 하였습니다.

 

먼저 팟플레이어 실행시켜서 환경설정에 들어가 내장코덱, DXVA 등을 손봐야 한다더군요. 하지만 복잡하면 걍 초기화 하라는 깔끔한 정보가 있어 초기화를 하였습다. 

그리고 다시 환경설정 - 코덱/필터 - 전역필터우선순위에 들어가 시스템코덱 추가를 클릭 - 나오는 목록에서  Bluesky Frame Rate Converter 를 찾아 확인, 그리고 아래 스샷 처럼 체크해주고 우선순위를 최우선 사용을 해주었습니다.

뭔가 안되는 경우에는 코덱/필터-비디오코덱-내장 코덱/DXVA 설정에 들어가 아래 처럼 하드웨어 가속(DXVA) 설정에서 하드웨어 가속을 사용하는 것으로 체크, 아래 DXVA2 Copy-Back에 AMD그래피가드를 선택 으로 설정해보시기 바랍니다.

그리고 영화를 돌려보았습니다. 풀HD 영상입니다.

비디오 코덱이 라데온이 잡히고 아웃풋에 프레임이 2배가 되고 랜더러는 엔비디아가 보입니다.

정상구동되는 스샷들과 다행히도 일치되더군요.

(내장코덱, 오픈코덱으로 뜨는 경우가 있는데 프레임이 증폭되는 것을 확인하면 된다는 군요.)

가지고있는 풀hd급 영상 중 일부는 50초중반을 기록하기도 하는데 이런건 압축코덱이 엄청 빡센 것이 아닌가 싶네요. 

 

호기심에 4k 영상을 돌려보니 비행기 이륙하는 소리가 납니다. R7 250이 너무나 힘들었던 것이지요. 프레임이 46정도로 나오는데 심하면 20대까지 떨어집니다. 

잘 되는 영상들도 뭔가 잘 구분은 안되었는데 한참을 이렇게 보다가 해제하고 다시보니 차이가 있긴하네요.

 

다행히 풀hd급 영상까지는 그래도 60프레임으로 돌려주는 터라 활용도가 괜찮은 것 같습니다.

*베가나 RX500시리즈도 되는 모양입니다만 이런걸 서브로 달면 컴이.... 거기에 아날로그출력이 없어서 15khz 출력에 애러사항이 많아집니다. 비추천을...

 

 

윈도우로 편하게(?) 15khz 출력시켜서 옛날 게임기와 오락실 게임도 원판과 비슷하게 돌려보고, 플루이드모션도 풀hd까지이지만 한번 해보면 좋겠다 하시는 분은 지금도 싸게 구입이 가능하니 서브로 달아 쓰면 좋겠다는 의견입니다. 

 

 

*2023년 2월 18일 내용 추가 : VMMAKER에서 NTSC를 선택하였을 때 그루비마메 기준으로 본래 해상도/주사율로 출력시키지 못하는 게임이 있습니다.(예 - 스노우브로스)  물론 대체해상도와 주사율로 출력이 되지만 캐릭터가 움직일 때 미묘하게 툭툭 걸리는 스터터링같은 문제 있더군요. 이게 고정적인 간격으로 실시간으로 일어나는 것이 일반적인 스터터링은 아닌 것 같습니다. 추측하기로는  스터터링과 동일하게 게임과 모니터의 주사율의 차이로 발생하는 것 같은데요. 예를 들어 스노우브로스의 출력 주사율이 57.5hz인데 이걸 지원못하는 NTSC 지원범위 설정은 59.94정도로 대체되어 출력되는데 이런 차이가 원인이 아닌가 추측합니다. -- 안타깝게도 녹화물로는 이게 표현이 안되어서 여러번찍다가 포기하였습니다. 

 이 현상은  마메에서 THROTTLE를 해제하고, 모니터 주사율로 싱크를 맞추도록 설정하면 되지만(Sync to monitor refresh 혹은 Wait for vertical sync) 이러면 인풋렉이 발생합니다. 이 문제는 지원범위가 넓어야 해결이 되더군요. VMMAKER에서 Arcade 15.7khz - standard resolution로 골랐을때 스노우브로스의 주사율과 모니터의 주사율이 일치되면서 걸리는 문제가 없어졌습니다.(그루비마메 기준)  

*위의 스터터링 비슷한 현상의 문제는 본문에서 테스트한 Arcade, HBMAME 그리고 레트로아크에서도 나타납니다. 하지만...

 Arcade와 HBMAME는 지원범위를 넓혀서 57.5hz로 모니터와 일치시켜주었는데도 위의 현상이 발생하더군요. 이 부분은  제가 착각한 부분으로 테스트한 에뮬레이터 중에 그루비마메와 레트로아크 외에는 게임의 본해상도로 자동스위칭해주지 않았습니다. 옵션의 이름이 비슷해 착각을 한 것이었습니다.         

이 마메들은 뭔가 더 설정이 있나 모르겠습니다만 해결책을 찾을 때 까지는 THROTTLE 해제, Sync to monitor refresh 혹은 Wait for vertical sync 둘 중하나를 체크하여 쓰는 수 밖에 없겠습니다.

 레트로아크는 기본적으로 수직 동기화가 켜져 있습니다. 때문에 이 현상이 없어보입니다만 이 동기화를 끄는 순간 동일 현상이 발생하며 지원범위를 넓혀 일치시키고 마메기준으로 설정 하나를 해주어야 합니다.

먼저 아래 스샷처럼 설정-비디오-동기화에서 수직동기화를 끕니다.

    

그리고 마메로 게임을 실행시킨 다음 F1을 눌러 빠른메뉴를 부른 다음 코어옵션에 들어가 아래 처럼 throttle를 활성화 합니다.  (코어옵션을 설정하였다면 게임별 저장하고 레트로아크를 다시 시작합니다.)  

레트로아크의 마메는 이런식으로 하면 됩니다만 파이널번네오 같은 경우에는 쓰로틀 설정이 없더군요. 강제 60hz를 설정하면 일부분만 사라지고 간헐적으로 또 나타납니다. 제가 찾지 못한 뭔가 있을지는 모르겠으나 저로서는 스터터링이 발생하는 게임의 경우 파이널번네오에서는 수직동기화를 켤 수 밖에 없네요.    

  

 EKMAME는 지원범위와 관련 없이 위의 현상이 나타나지 않습니다. 주사율 동기화, 수직 동기화 관련 없이 잘되는데요.  예전에 EKMAME가 강제 60프레임 옵션을 지원하는 코드를 넣었다는 정보를 본적이 있습니다. 스무스마메의 기능인데 이것이 더이상 업데이트되지 않지만 EKMAME에 다행히 기능이 들어가 있다는 정보였는데요. 이런 좋은 기능들을 넣은 덕분인가 싶습니다. 다만 이 기능을 껐는데도 잘 되는걸 봐서는 이것과 별개로 이런 게임에 제작자께서 신경을 쓰신 건가 싶기도 하네요.

 

아래는 캡쳐카드로 잘되는 상황, 잘 되지 않는 상황을 캡쳐해보았습니다.

좌측의 것이 Arcade 15.7khz - standard resolution로 지원범위를 넓혀서 그루바마메로 구동시킨 것입니다. 스터터링 현상이 없이 잘 돌아갈 때의 상황입니다. 주사율을 보시면 스노우브로스의 57.5에 거의 일치하고 있습니다.

우측의 것은 지원범위가 NTSC일 경우인데요. 일치하는 해상도/주사율이 없어 대체해상도로 굴러가는데 이 때는 그루비마메도 스터터링현상이 발생합니다. 지원범위와 관련없이 Arcade와 HBMAME가 우측의 스샷에 나타나는 해상도/주사율로 출력이 됩니다. 그루비마메의 원본해상도 스위칭 기능이 작동하지 않는 것이지요.     

레트로아크도 그루비마메와 동일하게 좌측 처럼 해상도가 나타납니다. 이 경우는 스위칭 기능이 작동하고 있는 것입니다.  

단 EKMAME는 우측의 스샷과 동일하게 출력이 되는데도 스터터링 현상이 없습니다. 역시 신경을 많이 쓴 것인가 싶습니다.     

*이 외에 VMMAKER에서 설정하면  그루비마메의 ini파일에 추가되는 모니터종류와 지원범위에 해당하는 옵션이 테스트한 다른 마메에는 없습니다. VMMAKER를 이용해 ini 해당 옵션을  추가하더라도 작동하지 않았습니다.   

 

 

위의 내용들은 처음 시도 하면서 여러 시행착오를 거쳤습니다. 이렇다보니 틀린 정보나 그런게 있을 수 있습니다. 언제든 관련 내용은 답변 주시고, 글 읽어주셔서 감사합니다. 

 

 

 

댓글