Advertisement
KyaDash

PC Emulation on CRT TV

Jul 8th, 2013
1,739
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.22 KB | None | 0 0
  1. >GroovyArcade liveCD / liveUSB
  2. http://code.google.com/p/groovyarcade/
  3. http://code.google.com/p/groovyarcade/wiki/USB_installation
  4.  
  5. >GroovyMAME/GroovyUME 0.149 SwitchRes v0.014b
  6. http://code.google.com/p/groovyarcade/downloads/list?can=2&q=
  7. http://forum.arcadecontrols.com/index.php/topic,128879.0.html
  8. http://forum.arcadecontrols.com/index.php?board=52.0
  9.  
  10. >CRT_EmuDriver
  11. http://mame.3feetunder.com/windows-ati-crt-emudriver/
  12. When using CRT_EmuDriver, your arcade monitor must be connected to the primary port on the video card.
  13. I don't know if this is always the case, but if your card has two ports, the primary port is usually (but not always) the "bottom" (closest to the motherboard) port.
  14. On newer video cards, the primary port is usually a DVI port. This means that to connect to an arcade monitor, you'll have to use a DVI-to-VGA adapter dongle.
  15.  
  16. PLEASE NOTE: Soft-15KHz is a Windows application and will only function once Windows has loaded. Any resolutions that a computer outputs before Soft-15KHz kicks in may be harmful to standard arcade monitors.
  17. http://wiki.arcadecontrols.com/wiki/Custom_display_modes_%28Windows%29_-_Soft-15khz
  18. http://wiki.arcadecontrols.com/wiki/Custom_display_modes_%28Windows%29_-_Powerstrip
  19.  
  20. >Soft-15KHz / QuickRes / SwitchRes (different one?)
  21. http://files.arianchen.de/?x=soft15khz
  22.  
  23. >PowerStrip
  24. http://www.entechtaiwan.com/util/ps.shtm
  25.  
  26. ---------------------------------------
  27.  
  28. The systems emulated accurately by MESS as part of GroovyUME 0.148u2 at the moment are as follows:
  29.  
  30. Alice32 (Computer)
  31. Apple IIGS (Computer)
  32. Aquarius (Computer)
  33. Arcadia 2001 (Console)
  34. Atari 400/800 Series (Computer)
  35. Atari 2600 (Console)
  36. Atari 5200 (Console)
  37. Atari 7800 (Console)
  38. ColecoVision (Console)
  39. CPS Changer (Console)
  40. CreatiVision (Computer)
  41. Dreamcast Visual Memory System (Handheld)
  42. Game Boy (Handheld)
  43. Game Gear (Handheld)
  44. Genesis (Console)
  45. Instructor 50 (Computer)
  46. Intellivision (Console)
  47. Lynx (Handheld)
  48. Macintosh (Non-PowerPC)
  49. Master System (Console)
  50. MC-10 (Computer)
  51. MO Series (Computer)
  52. MSX Series (Computer)
  53. Neo Geo AES (Console)
  54. Neo Geo CD (Console)
  55. Odyssey2 (Console)
  56. Othello Multivision
  57. Pico (Handheld)
  58. PIPBUG-based Systems (Computer)
  59. PocketStation (Handheld)
  60. RX-78 (Computer)
  61. Sega Computer 3000 (SC-3000) (Computer)
  62. Sega Game 1000 (SG-1000) (Console)
  63. Sega Super Control Station (SF-7000) (Computer)
  64. Studio II (Console)
  65. SuperGrafx (Console)
  66. SuperVision (Handheld)
  67. TO Series (Computer)
  68. TurboGrafx 16 (Console)
  69. TurboGrafx CD (Console)
  70. Vectrex (Handheld)
  71. WonderSwan (Handheld)
  72. X1 (Computer)
  73. X68000 (Computer)
  74. ZX Spectrum (Computer)
  75.  
  76. ------------------------------------------------------
  77.  
  78. GroovyMAME is a custom M.A.M.E. build mainly aimed at CRT monitors, as we are convinced CRT technology is a must when it comes to enjoying emulation in its full glory. However you can use GroovyMAME to alliviate some of the annoyances associated to emulation on LCD displays, specially for those models which are capable of refreshing at custom rates.
  79.  
  80. GroovyMAME's main features as compared to official MAME:
  81.  
  82. - Improved video and audio synchronization that achieves truly smooth scrolling, tearing-free video and hiccup-free sound.
  83.  
  84. - Automatic generation of custom video timings for CRT monitors.
  85.  
  86. While the improved synchronization feature is system independent, you are going to need a special hardware and software setup in order to get the full potential out of GroovyMAME.
  87.  
  88. As for the hardware part, do yourself a favour and grab an old ATI Radeon card, any model from Radeon 7000 to the HD 4xxx family should work, both AGP and PCIe models. As far as we know, there is nothing that can remotely compare to these cards in terms of flexibility.
  89.  
  90. On the software side of things, you need to be aware that operating systems are not designed to deal with hundreds of video modes as we are going to need here, so some degree of hacking is required. You can use one of these two options:
  91.  
  92. - GroovyArcade Linux. This is currently the best OS to run GroovyMAME.
  93.  
  94. - Windows XP-32/64-bit + a hacked version of ATI Catalyst named CRT_EmuDriver.
  95.  
  96. Either one of these operating systems combined with one supported ATI card is the preferred environment to run GroovyMAME in. However, since SwitchRes v0.014, GroovyMAME can also generate custom timings under Windows for virtually any card supported by PowerStrip, by making use of its API. In theory, this should work for Windows 7 too. Anyway, keep in mind that this method is way more limited and unreliable than the standard one.
  97.  
  98. ------------------------------------------------------------
  99.  
  100. What's new in SwitchRes v0.014b
  101.  
  102. - First version with native Windows 7 support, getting things ready for the advent of CRT Emudriver for Windows 7.
  103. - Workaround for progressive/interlaced mode switching in Windows 7 and DirectDraw.
  104. - Changed DirectDraw to use flipping surfaces with -waitvsync too, to allow bilinear filtering in Windows 7. Also fixes the problem of -waitvsync resulting in double speed in Windows 7. However, it may cause tearing on LCD displays when using DirectDraw, so make sure to use Direct3D with LCD monitors.
  105. - Fixed crash on exit for 32-bit builds on Windows 7.
  106.  
  107. What's new in SwitchRes v0.014a
  108.  
  109. - Fixed bug that made some games appear mirrored or upside-down.
  110. - Fixed incorrect monitor presets: ms2930, k7000
  111. - Added two new settings for the -orientation option: rotate_r, rotate_l. Use either one of those in case you have a vertically mounted monitor so to specify its correct rotation direction.
  112. - Improved filtering of system resolutions to avoid triplicated enumeration in some systems.
  113. - Now the GroovyMAME version is prompted after the main version so we no longer create conflicts with frontends which grab the version of MAME from the credits text.
  114.  
  115. What's new in SwitchRes v0.014
  116.  
  117. - Fully rewritten modeline engine. Redesigned algorithm for resolution picking, now each resolution reported by the system is evaluated individually according to your monitor specs.
  118.  
  119. - Full PowerStrip integration, so at least in theory many more cards are now supported (i.e NVidia).
  120.  
  121. - Support for VESA generalized timing formula (GTF), this is to provide quick support for multisync PC CRT monitors (not for the ancient fixed-frequency ones!). Use the monitor presets labeled as "vesa".
  122.  
  123. --------------------------------------------------------------
  124.  
  125. - New monitor presets added. Check the most suitable for you:
  126. custom Define your own custom by means of -crt_range lines
  127. pal PAL TV - 50 Hz/625
  128. ntsc NTSC TV - 60 Hz/525
  129. generic_15 Generic 15.7 kHz
  130. arcade_15 Arcade 15.7 kHz - standard resolution
  131. arcade_15ex Arcade 15.7-16.5 kHz - extended resolution
  132. arcade_25 Arcade 25.0 kHz - medium resolution
  133. arcade_31 Arcade 31.5 kHz - high resolution
  134. arcade_15_25 Arcade 15.7/25.0 kHz - dual-sync
  135. arcade_15_25_31 Arcade 15.7/25.0/31.5 kHz - tri-sync
  136. m2929 Makvision 2929D
  137. d9200 Wells Gardner D9200
  138. d9400 Wells Gardner D9400
  139. d9800 Wells Gardner D9800
  140. k7000 Wells Gardner K7000
  141. k7131 Wells Gardner 25K7131
  142. m3129 Wei-Ya M3129
  143. h9110 Hantarex MTC 9110
  144. polo Hantarex Polo
  145. pstar Hantarex Polostar 25
  146. ms2930 Nanao MS-2930, MS-2931
  147. ms929 Nanao MS9-29
  148. vesa_480 VESA GTF
  149. vesa_600 VESA GTF
  150. vesa_768 VESA GTF
  151. vesa_1024 VESA GTF
  152.  
  153. - New format for defining custom monitor specs, now the -crt_range0-9 options are used. This is the most important change in this version from the user's point of view, as the existing custom definitions will need to be modified. Not big deal however, but make sure you understand how this works as it will guarantee your success with GroovyMAME. The usual timing values remain the same, but the line limiters are replaced by four values: ProgressiveLinesMin, ProgressiveLinesMax, InterlacedLinesMin, InterlacedLinesMax. These are used to easily define the upper and lower limits of the total logical resolutions GroovyMAME should allow, both for the progressive and the interlaced range. You may leave either one of the two ranges set as zero in case you do not want progressive or interlaced modes to be generated. So the current format is as follows:
  154.  
  155. -crt_range 0-9 HfreqMin-HfreqMax, VfreqMin-VfreqMax, HFrontPorch, HSyncPulse, HBackPorch, VfrontPorch, VSyncPulse, VBackPorch, HSyncPol, VSyncPol, ProgressiveLinesMin, ProgressiveLinesMax, InterlacedLinesMin, InterlacedLinesMax
  156.  
  157. --------------------------------------------------------------------
  158.  
  159. - Automatic LCD timings generation. This is useful in combination with PowerStrip. Your current timings will be read from PowerStrip and used to recalculate modelines from them. You just need to define the range for the vertical refresh your monitor supports.
  160. - Improved rotation detection, now you can rotate the screen from the internal UI and the video mode will be recalculated properly.
  161.  
  162. - New priority system for option setting. GroovyMAME will set most of its required options automatically (-syncrefresh, -triplebuffer, -resolution, etc.), overriding the values in mame.ini. However, any other ini you create (rom, driver, orientation, etc.), as well as command line settings, will have higher priority than GroovyMAME's option setting, so you can always force something different if you feel GroovyMAME is not doing things right.
  163.  
  164. - Resolution forcing. As opposite to previous versions, now you can force the resolution that GroovyMAME picks. GroovyMAME will do its best to acommodate the game's resolution into the one you suggest.
  165.  
  166. --------------------------------------------------------------------------
  167.  
  168. - SwithRes video mode is shown in the Game Information screen. You're gonna love this.
  169.  
  170. - Automatic syncrefresh/triplebuffer selection. If you leave both options disabled in mame.ini, GroovyMAME will decide which one to use automatically. If the target refresh is achieved, GroovyMAME will select -syncrefresh. On the other hand, if we cannot achieve the desired refresh, due to monitor limitations, triplebuffer is used instead, so that speed is kept at 100% rennouncing to smooth scrolling. You can control how off the obtained refresh must be in order to trigger triplebuffering, by means of the new option -sync_refresh_tolerance. The default value is 2 Hz.
  171.  
  172. - Frequency scaling. Now GroovyMAME can use a multiple of the target vertical refresh if allowed by the monitor. This can be used in combination with PC CRT monitors which allow frequencies of 120 Hz, in order to achieve low resolution modes with true hardware scanlines. You need to create a custom crt_range for this. By now, -triplebuffer is used automatically for this mode. However, in order to achieve perfect scrolling you will need to use -syncrefresh in combination with -frame_delay 5, provided your system can deal with it.
  173.  
  174. - Interlace/doublescan modes can now be effectively disabled by means of their respective options. Be aware that SwitchRes does not support doublescan modes in Windows.
  175.  
  176. - Positive/negative sync polarity support under Windows.
  177.  
  178. -------------------------------------------------------------------------------
  179.  
  180. - New option -lock_system_modes for mode filtering. In order to limit the possibility of selecting a potentially dangerous mode, the new option -lock_system_modes will prevent any mode not created by us from being picked. This will enforce GroovyMAME to use custom modes previously generated by CRT_EmuDriver. For non-ATI cards this option will block all modes actually since none of them is recognized as custom. This is the case of NVidia cards in combination with PowerStrip, or the ArcadeVGA 3000, where its custom modes are actually reported by the system as standard modes. So for these cases you should disable this option.
  181.  
  182. - New option -lock_unsupported_modes. You should only disable this option if you are possitive your system, based on your monitor's EDID, is filtering some modes that you actually created. Otherwise leave it enabled. This option only has effect in combination with -video ddraw.
  183.  
  184. - New option -refresh_dont_care. The new algorithm will filter resolutions that are out of your monitor specs. Old versions of the ArcadeVGA, as well as the Soft-15kHz program, label all resolutions as 60 Hz. This means that if this value were to be taken seriously, resolutions above 240 lines would be out of range for most arcade monitors. This option is provided in order to cope with this peculiarity, and it basically tells the algorithm to ignore refresh for range checking.
  185.  
  186. - New option -frame_delay. Delays the start of the emulation of each frame by an amount of time defined in tenths of the frame period length (0-9), in order to give a chance to the emulator to have the most possible updated input for that frame, as an attempt to minimize input lag. A value of 0 corresponds to standard behaviour. This option is experimental, and is known to produce tearing in LCD screens.
  187.  
  188. ---------------------------------------------------------------------------
  189.  
  190. #
  191. # CORE SWITCHRES OPTIONS
  192. #
  193. -modeline Generate modelines for arcade monitors
  194. -monitor Monitor type, e.g.: generic_15, arcade_15, lcd, custom, etc.
  195. -orientation Monitor orientation (horizontal|vertical|rotate)
  196. -connector [Linux] video card output (VGA-0|VGA-1|DVI-0|DVI-1)
  197. -interlace Enable interlaced scanning when necessary
  198. -doublescan Enable double scanning when necessary (unsupported under Windows)
  199. -cleanstretch Force integer scaling, 0 means automatic selection
  200. -changeres Enable dynamic in-game video mode switching
  201. -powerstrip Use Powerstrip API for dynamic setting of custom video timings
  202. -lock_system_modes Lock system (non-custom) video modes, only use modes created by us
  203. -lock_unsupported_modes Lock video modes reported as unsupported by your monitor's EDID
  204. -refresh_dont_care Ignore video mode's refresh reported by OS when checking ranges
  205. -dotclock_min Lowest pixel clock supported by video card, in MHz, default is 0
  206. -sync_refresh_tolerance Maximum refresh difference, in Hz, allowed in order to synchronize
  207. -frame_delay Delays the start of each frame to minimize input lag (0-9)
  208. -lcd_range Add custom LCD range, VfreqMin-VfreqMax, in Hz, e.g.: 55.50-61.00
  209. -crt_range0 Add custom CRT range, see documentation for details.
  210. -crt_range1 Add custom CRT range
  211. -crt_range2 Add custom CRT range
  212. -crt_range3 Add custom CRT range
  213. -crt_range4 Add custom CRT range
  214. -crt_range5 Add custom CRT range
  215. -crt_range6 Add custom CRT range
  216. -crt_range7 Add custom CRT range
  217. -crt_range8 Add custom CRT range
  218. -crt_range9 Add custom CRT range
  219.  
  220. -----------------------------------------------
  221. >SwithRes video mode is shown in the Game Information screen. You're gonna love this.
  222. http://i.imgur.com/GbqdMGS.jpg
  223.  
  224. ------------------------------------------------
  225.  
  226. http://imgur.com/GDEtAPY
  227.  
  228. -----------------------------------------------
  229.  
  230. Here's a sample post from arcadecontrols.com detailing custom modelines for Sony Trinitron TVs with component input.
  231.  
  232. I'm running a similar setup as you. I'm using a TC1600 with a Sony KV-20FS120 which utilizes the same BA-6 chassis as your TV. I use these monitor specs in VMMaker:
  233.  
  234. monitor_specs0 15625-16200, 55.50-61.00, 3.766, 4.842, 6.456, 0.192, 0.192, 1.024, 0, 0, 240, 480
  235.  
  236. monitor_specs1 15625-16200, 55.50-61.00, 3.766, 4.842, 6.456, 0.960, 0.192, 0.512, 0, 0, 256, 480
  237.  
  238. My TV can display about 238 lines (not the full 240 lines). The first monitor spec centers resolutions up to 240 lines and the second monitor spec centers resolutions up to 256 lines. So, if I were to play a game with 240 lines such as Captain America and the Avengers, I would lose 1 line at the top of the display and 1 line at the bottom. If I were to play a 256 line game like R-Type II, I would lose about 9 lines at the top and 9 lines at the bottom. If I were to play a game with 224 lines such as Street Fighter 2, I wouldn't lose any lines and there would be black borders at the top and bottom of the display.
  239.  
  240. These monitor specs center the picture horizontally and vertically based on the settings I've made in my TV's service menu. I use the default values as indicated in the service manual with the exception of: HSIZ 26; HPOS 44; VSIZ 30; VPOS 38; and PAMP 22. These settings may not be right for your TV.
  241.  
  242. I would first try these monitor specs in VMMaker, reboot, launch ArcadeOSD, display 720x480@60i (need to have added to ReslList.txt) and adjust your TV's HSIZ, HPOS, VSIZ, and VPOS until you can get the image centered as best possible. If your TV is like mine and does not display the full 240 lines, you will not see the full top and bottom borders, but you should see most of the horizontal borders.
  243.  
  244. -----------------------------------------------------
  245.  
  246. If that doesn't seem to work, I would try the different "H center" presets in ArcadeOSD at 720x480@60i in conjunction with your TV's HSIZ and HPOS. You can then plug the "H front porch," "H sync pulse," and "H back porch" into your monitor spec line in VMMaker. The VfrontPorch (0.192), VSyncPulse (0.192), and VBackPorch (1.024) should center resolutions of 240 lines vertically. Often a VfrontPorch of one line (0.064) is used, but I found that three lines (0.192) is necessary for my TV.
  247.  
  248. Also, in VMMaker make sure to set ModeTableMethod_XML = 2 to utilize magic resolutions in GroovyMAME. In GroovyMAME, I use these lines:
  249.  
  250. crt_range0 15625-16200, 55.50-61.00, 3.766, 4.842, 6.456, 0.192, 0.192, 1.024, 0, 0, 240, 240, 480, 480
  251.  
  252. crt_range1 15625-16200, 55.50-61.00, 3.766, 4.842, 6.456, 0.960, 0.192, 0.512, 0, 0, 240, 256, 480, 512
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement