151

(7 replies, posted in Support)

No problem! Please post your links here.

152

(7 replies, posted in Support)

Hi bisus,

Thanks for your comments and interest. If my understanding is correct the site you're planning to open is in Italian. I'm happy with the idea of a reference site for this material in Italian. Feel free to post any links or translations, even mirror our files if that's what you like. Remind the work in this site is not only mine but also due to Recap's documentation effort.

Recap wrote:

Nice. Thanks to everyone involved. I'll wait a couple of versions before properly updating the guide just in case, but does this still apply?

Groovy MAME will choose Direct 3-D when leaving this option in auto except for the case of the games using interlaced modes, where Groovy MAME will automatically pick Direct Draw.

Yes, it's still the same. You need to force -video d3d9ex specifically. Interlaced modes still require DirectDraw by now, although this will change in the future.

Starting with GM 0.167, some improvements have been done to the frame delay mechanism that make it more stable.

GroovyMAME 0.167 is out (Switchres v0.015j).

What's new in SwitchRes v0.015j

- Direct3D9ex support [koopah, intealls] (new option: -video d3d9ex): now GroovyMAME supports Direct3D9ex, which is present in all versions of Windows starting with Vista. This allows the application to take control of the frame latency and force it to the minimum allowed by the driver, avoiding the dreaded frame queues. This is specially useful in the situations where frame_delay can't be used reliably without tearing (LCDs, high resolutions). Besides, Direct3D9ex seems to perform better for certain hardware (Nvidia, Intel), so it may be preferred to plain Direct3D9 in general.

- Frame delay (improved) [intealls, Calamity]: now frame_delay polls the video driver for absolute scanline values, totally bypassing the default vertical synchronization functions. Some of the advantages are:

  · Improved stability of the vertical synchronization mechanism, that finally makes it possible to extend GroovyMAME's audio/video synchronization to the frame delay use case.
  · Awareness of the raster position and notification of missed retraces.
  · Allows for anticipating the vertical retrace accurately (see vsync_offset, below).


- Vsync offset [intealls] (new option: -vsync_offset): forces render to happen a certain number of lines before the vertical blank (e.g. -vsync_offset 200). At high resolutions (LCD, etc.), the time it takes the GPU to scale a frame starts being longer than the blanking period itself. This is specially true when HLSL is used. This appears as static tearing when frame_delay is used. To compensate this issue, vsync_offset forces the render code to be called a number of lines ahead of time. Ideally, using a proper value realigns the render completion with the end of the blanking period, cleanly removing all tearing, even on LCDs with frame_delay and HLSL enabled. In practice, you need a fairly fast card in order to fully remove tearing. The higher the tearing line appears on the screen initially, the faster your card is, and the more chances of completely hiding tearing through -vsync_offset. Notice that you'll need to lower your frame_delay value proportionally to the amount of lines you set in -vsync_offset.

There are some important implications to these changes also for CRT users. Now it's no longer necessary to enable frame delay in order to bypass the frame queue. Just switching to Direct3D9ex already removes the frame queue in an ortodox way. This frame queue is the most important source of input latency in modern systems. Notice that Direct3D9ex is not available in Windows XP.

There's still one remaining frame of latency that can't be removed through Direct3D9ex alone: the one caused by double buffering. The reason for frame delay is to remove this last frame of latency and achieve next frame input response, matching real hardware behaviour.

Because the frame queue can usually involve 3 frames of lag or more, most users will find it good enough to simply remove it by switching to Direct3D9ex, as compared to the relatively minor improvement and important hassle of adjusting frame delay in a per game basis. However, the next frame response nirvana is reserved to frame delay users. Be aware that you'll need a powerful machine in order to reliably apply high values of frame delay.

For Windows XP users, however, Direct3D9ex is not an option, so you'll need to stick with Direct3D + frame delay in order to remove the frame queue + the last frame due to double buffering, as we did before and is explained in Recap's guide above.

155

(1 replies, posted in En español)

Bienvenido Vlad, vamos por partes:

La discrepancia con el refresco original no se traduce en "tearing" sino en saltos o "hipos" en el scroll. En principio, teóricamente un emulador debería ajustar la velocidad de emulación al refresco de pantalla cuando activamos la opción de sincronización vertical. De esta manera se podría llegar al caso extremo de correr un juego NTSC (60 Hz) sobre un modo de vídeo PAL (50 Hz) manteniendo un scroll totalmente suave, a costa de modificar la velocidad original del juego. Lo que ocurre es que la gran mayoría de emuladores tratan de mantener la velocidad original además de esperar al refresco vertical, lo que hace que la sincronización sea problemática y aparezcan hipos intermitentes.

Hago esta introducción para subrayar que no es necesario buscar una precisión obsesiva con los refrescos hasta el tercer decimal, porque un emulador bien programado debería poder absorber estos pequeños errores, además de que hablamos de valores nominales que con toda probabilidad ni siquiera serán los realmente existentes en el hardware original, ya que los cristales de cuarzo a fin de cuentas están expuestos a variaciones de temperatura que alteran sus propiedades.

Respecto al problema que expones, si lo que observas es "tearing", es que la sincronización vertical no está funcionando en absoluto. Para lograr la sincronización vertical, el emulador recurre a OpenGL o DirectX, que por su parte se comunican con el driver del fabricante de la tarjeta, que es el que en última instancia proporciona las funciones de hardware correspondientes. Si algo falla en la cadena, la sincronización vertical no funcionará, y lo que es peor: el emulador ni siquiera lo "sabrá". Los diferentes fabricantes no implementan OpenGL de la misma manera, desgraciadamente. En mi experiencia con OpenGL y tarjetas ATI, la sincronización vertical sólo funciona correctamente si se fuerza externamente desde el panel de control de la tarjeta. Con tarjetas Nvidia esto no es necesario. Los resultados con DirectX son mucho más predecibles que con OpenGL. En tu caso, probaría a usar DirectX (Direct3D) en las opciones de Retroarch.

Habría que decir que las opciones de sincronización de Retroarch son algo extravagantes. Que el usuario tenga que introducir el refresco del monitor como dato conocido no deja de ser pintoresco. Dicho esto, hasta donde yo sé, Retroarch sí que permite absorber una cierta desviación del refresco, ajustando la velocidad de emulación y el audio. Si bien inicialmente había un límite pequeño a la desviación permitida, creo haber leído en algún sitio que ahora ya permite una desviación arbitraria.

Finalmente, si quieres mejorar la exactitud de los refrescos, mejor hacerlo manualmente que con la opción "iterations", ya que puede haber variaciones incluso entre las 9250 (rizando el rizo uno podría crearse su propia tabla de dotclocks para su tarjeta específica). Lo que te sugiero es que cargues la resolución que usas para Higan en Arcade OSD, y desde ahí midas el refresco (botón "5"). Prueba tras ello a desactivar la opción "lock vfreq" para poder modificar el valor de dotclock, en principio usa los valores inmediatamente superior e inferior al que tengas, y realiza de nuevo la medición del refresco. Por último, puedes añadir líneas en blanco al "vertical back porch": esto rebajará el refresco de golpe, lo que te obligará a incrementar el dotclock para compensar y volver al valor original. En muchas ocasiones, tras añadir una o más líneas y compensar el dotclock, el refresco resultante es más exacto que el original (esto es lo que hace la opción "iterations"). Yo, francamente, no me calentaría la cabeza.

156

(7 replies, posted in En español)

Hola,

Entiendo que sacas los 12V del cable amarillo del molex, ¿es así?

157

(2 replies, posted in Support)

That's odd. Was your card flashed with ATOM-15?

I've occasionally heard of compatibility problems but it's not common.

Hi R-Typer,

This bug is finally fixed in version 1.4a, download the separate updated package from the link at the bottom of this post.

V e r s i o n   H i s t o r y

[04/10/2015][CRT Emudriver 1.2b][VMMaker + Arcade OSD 1.4b]

- [VMMaker]    XML processing adapted to MAME v.0162


[01/03/2015][CRT Emudriver 1.2b][VMMaker + Arcade OSD 1.4a]

- [Arcade OSD] Fixed error when setting desktop resolution in Windows XP. Windows 7/8 not affected.


[10/10/2014][CRT Emudriver 1.2b][VMMaker + Arcade OSD 1.4]

- [Emudriver]  Windows 7 version promoted from beta. Based on Catalyst 13.1 "reloaded", by kevsamiga1974.

- [Emudriver]  Removed timing cache from versions 6.5 & 9.3 for XP. Now you no longer need to create a minimum number of custom modes in order to get dynamic modelines.

- [Emudriver]  Version 9.3 for XP-32/64. Added lots of missing of PCI IDs, including the "Mobility Radeon" ones. It should fix most problems with not recognized hardware.

- [Arcade OSD] Fixed bug affecting Windows 7 where the desktop mode wouldn't be properly detected.

- [VMMaker]   
  [Arcade OSD] Full support for super resolutions. Fixed bug with dotclocks above 100 MHz. Fixed font aspect ratio with ultra-wide modes.

- [VMMaker]   
  [Arcade OSD] Full Windows 7 support.


[16/06/2012][VMMaker 1.3c][Arcade OSD 1.3b]

- [VMMaker]    XML processing adapted to MAME v.0146 (reported by genius77).

- [VMMaker]    New list of video modes for emulation (ReslList.txt). By Recap.

- [VMMaker]    New list of main systems for MAME (MameMain.txt). By Recap.

- [VMMaker]    Main system selection based on rom name.

- [VMMaker]    New option "OnlyListMain", allows listing only video modes from games included in MameMain.txt

- [VMMaker]    New option "YresRound", allows asigning a rounding factor to the vertical resolution, rationalizing the mode table.

- [VMMaker]    Now options ModeTableMethod, XresMin, YresMin and YresRound have two suffixes: _XML and _custom. Each one applies to a different source: xml (MAME/MESS) or custom (ReslList.txt), making it possible to use different criteria for each group.

- [VMMaker]    Automatic creation of "magic" mode table (ModeTableMethod_XML/custom = 2). Creates a table of dummy resolutions, in the form 1234 x (yres), allowing a great reduction of the mode table size. This option can only be used with GroovyMAME and Windows XP. It is meant as a workaround for a bug in Hypersping that makes it crash when the mode list exceeds a certain number of modes.

- [VMMaker]    Important improvements in the generation of the mode table for multi-frequency monitors.

- [VMMaker]
  [Arcade OSD] Added support for sync polarities.

- [Arcade OSD] Support for multiple monitors. The new option "Attach OSD to current monitor" allows selecting the active monitor by drag-and-dropping the program's window over the desired monitor.

- [Arcade OSD] The new option "Lock unsupported modes" blocks the video modes which Windows considers as not supported by our monitor. Arcade monitors and CRT TVs don't have an EDID, so when using these Windows will show all video modes as supported, including those that are potentially dangerous. Thus this option can't be used to filter out unsupported modes. It's function is quite the opposite: to unlock those video modes that Windows might consider as unsupported, in those monitors that have a valid EDID,


[16/04/2011][CRT Emudriver 1.2][VMMaker 1.3][Arcade OSD 1.2]

- [Emudriver]  New version based on Catalyst 6.5 for Windows x64

- [VMMaker]    New version 1.3, support for multi-frequency monitors (beta).


[06/03/2011][CRT Emudriver 1.2][VMMaker 1.2][Arcade OSD 1.2]

- [Emudriver]  New version based on Catalyst 9.3 para Windows x64

- [VMMaker]    New options VerticalAspect, ModeTableMethod, DotClockMin, AnyCatalyst (view VMMaker.ini for details).

- [Arcade OSD] Fixed problem that prevented from preserving the changes applied to the desktop video mode.


[24/12/2010][CRT Emudriver 1.2][VMMaker 1.1][Arcade OSD 1.1]

- [Emudriver]  New version based on Catalyst 9.3

- [VMMaker]    New method for mode labelling, in order tell modes from others with similar refresh. Based on using three figures to label the vertical refresh, e.g. 320x256@55.5 Hz would be labelled as 320x256_555. To restore old labelling system use VFreqLabelx10 = 0 in vmmaker.ini.

- [VMMaker]    Improvements to the modeline generator, so monitor timing can be stablished more accurately (new options VFrontPorch, VSyncPulse, VBackPorch).

- [Arcade OSD] Solved problen with Arcade OSD and DDraw in Catalyst 9.3.

- [Arcade OSD] Solved problen with Arcade OSD when showing interlaced modes timing.


[05/10/2010][CRT Emudriver 1.1][VMMaker 1.0][Arcade OSD 1.0]

- [Emudriver]  Solved problem of driver installation in cards different from the Radeon 9250, due to an error in .inf file error.

- [Emudriver]  Added support to Ati Radeon X1950 Pro (tested by ConanR).

- [Emudriver]  Pre-installed video modes for MAME v.139


[08/09/2010][CRT Emudriver 1.0][VMMaker 1.0][Arcade OSD 1.0]

- First full version.

Hi R-Typer,

This is a bug that's been introduced with the support for Windows 7. I'll need to look into this. Please let me know the exact version of Arcade OSD that works (rather than the Emudriver one), so I can check it too.

Thanks,

Calamity

161

(6 replies, posted in En español)

Hola,

Yo también pensé que DISPLAY0.dec sería nuestro archivo pero no lo es. Si te fijas en el último enlace, es el archivo OPROM04 el que muestra una bios ATI normal. Esa bios, por ejemplo, sí que la aceptaría ATOM-15. El problema es que el descompresor de SNIPAC no llega a descomprimir los archivos OPROM, salvo el primero de ellos. Creo que le falta por descomprimir parte de la bios porque no la reconoce. Es decir, que para poder entrar en el editor de bios Phoenix primero habría que modificar de alguna manera el descompresor de SNIPAC para que procesara toda la bios (¿sabes Pascal?), luego habría que confiar en que el editor reconociese el formato (creo que la bios es más moderna que el editor y no lo hará), y como último acto de fe intentar que el archivo compilado funcione sin problemas junto con el resto de archivos que había en tu enlace y que probablemente harán referencia a aquel de una u otra forma, cosa que veo casi imposible porque habremos removido la compresión. De todos modos seguro que se me escapa algo. Yo no quiero ser cenizo pero lo veo bastante negro.

162

(6 replies, posted in En español)

Más: http://forum.notebookreview.com/threads … rk.729560/

163

(6 replies, posted in En español)

Actualizo. He hecho como indican aquí. Descomprimo el archivo de la bios original así:

e_snipac ..\bios\D2703_A1.OCF futro.rom

Al archivo resultante le quitamos los primeros 70h bytes y el último. Una vez hecho, ya lo coge phoedecw:

phoedecw futro.rom

PHOEDECO * V.K. * 1998.04.02..2006.01.13
futro.rom 
Position packed   C  unpacked type         target      filename
-------- -------- -- -------- ------------ -------- -- ------------
000EC003 00008FDA 00 00008FDA ROMExec      -        => ROMEXEC0.dec 
000EBBA8 00000440 00 00000440 DeCompCode   00044B20 => DECOMPC0.dec 
000EB32C 00000861 05 00000C80 Display      00044F60 -> DISPLAY0.dec 
000E7FEC 00003325 05 000070F3 Strings      -        -> STRINGS0.str 
000E7F77 0000005A 05 00000074 ACPI.1       -        -> ACPI___1.fac 
000E7F19 00000043 00 00000043 *            -        => MOD__2A0.fix 
000E7DE0 0000011E 05 00006D28 BIOSCode     000F92D8 +
000C4CAE 00004708 05                                -> BIOSCOD0.dec 
000E0005 00007DC0 00 00007DC0 ROMExec.1    -        => ROMEXEC1.dec 
000DC796 00003854 05 00007BC0 Template     -        -> TEMPLAT0.dec 
000D95D8 000031A3 05 00004B00 Suspend      -        -> MISER__0.dec 
000D4AF1 00004ACC 05 0000B1E0 Q            -        -> MOD__510.dec 
000CF161 00005975 05 00007EC0 USB          -        -> MOD__480.dec 
000CE1A9 00000F9D 05 00002875 ACPI         -        -> ACPI___0.dsd 
000CD7FF 0000098F 05 00001132 Y            -        -> MOD__590.dec 
000C93BF 00004425 05 0000868A K            -        -> MOD__4B0.dec 
000BB67C 00009617 05 0000D210 BIOSCode.1   000631F0 -> BIOSCOD1.dec 
000B2C3A 00008A27 05 0000C0F0 BIOSCode.2   000E42D0 -> BIOSCOD2.dec 
000B2978 000002A7 05 00000390 BIOSCode.3   00044790 -> BIOSCOD3.dec 
000AAE9B 00007AC2 05 0000B2F0 BIOSCode.4   0004CBE0 -> BIOSCOD4.dec 
000A606A 00004E16 05 0000B320 BIOSCode.5   00057ED0 -> BIOSCOD5.dec 
000A53E2 00000C6D 05 00001370 BIOSCode.6   00045BE0 -> BIOSCOD6.dec 
000A216A 0000325D 05 00005C90 BIOSCode.7   00046F50 -> BIOSCOD7.dec 
0009BDE7 00000850 00 00000850 CPU          -        => UPDATE_0.dec 
00097851 000044CC 05 00009F90 Setup        -        -> SETUP__0.dec 
Found an error in modules chain list! (00095836)
FFF95836 00002000  - 00002000 Logo         FFF95836 => LOGO___0.dec 
FFF80000 0000F000  - 0000F000 OpROM        FFF80000 => OPROM__0.dec 
FFF8F01B 00006800  - 00006800 OpROM        FFF8F01B => 00000027.unq 
FFFF5000 00001000  - 00001000              FFFF5000 => MOD__200.dec 
FFFF7000 00001000  - 00001000              FFFF7000 => 00000029.unq 
-------- -------- -- -------- ------------ -------- -- ------------
000F6000 00002000 -- 00002000 NAPI                     000F6000.nap 
000F84F5 000033D0 00 000033D0 BIOSCode     000F8510 => 00000031.unq 
000FDFF0 00002010 -- 00002010 noncompressed            noncomp.rom 
000F4FF8 00008FF8 -- 00008FF8 remaining unprocessed    remain.rom

Aun así da un error como se puede ver, y ya indicaban en el enlace que he puesto arriba. Esto por lo que veo es a lo que ha llegado la gente por ahí, a partir de aquí entramos en terreno inexplorado.

164

(6 replies, posted in En español)

Hola D_Skywalk,

Te cuento lo que he podido ver.

Por lo que parece es una bios Phoenix. Hay un programa para editar estas bios que se llama Phoenix Bios Editor, aquí tienes un enlace. Pero ojo, aquí dicen que tiene un troyano... pienso que puede ser un falso positivo, de todos modos no estaría de más instalarlo en una VM.

Pero de todos modos, las bios de Fujitsu parece que llevan una compresión adicional que se llama SNIPAC. Hay un programa para descomprimirlas aquí.

He probado y no he logrado que el Bios Editor acepte los archivos descomprimidos, me da error en el tamaño de archivo.

La idea, de funcionar, sería localizar el módulo correspondiente a la bios de vídeo, parchearlo, y volver a compilar la bios con el editor. Pero de momento no lo veo nada claro.

I can't remind anyone testing one x2 card. Theoretically it should work. Their PCI identifiers are included in the driver's .inf, at least for Windows 7. But you never know. My advice is to stay away from those monster cards and keep in the safe entry/medium level (43xx-46xx).

Regarding DVI-I->VGA, it has actually zero issues and it's the way to go indeed.

Hi pintris,

pintris wrote:

I would rather have it run in the native resolution like you tested but for that I assume I need interlaced modes. Vm maker marks those as invalid. Any suggestions as to how this can be fixed?

VMMaker is not marking your interlaced modes as invalid. Windows 7 does. Windows 7 uses a different driver model than XP (WDDM). WDDM is designed to support monitor hot plug detection. Arcade monitors connected through a JPAC are not detected by Windows 7, so it thinks you have no monitor connected. As a measure of caution, Windows 7 filters out the modes which it considers 'dangerous'. Interlaced modes whatever their frequency is and everything above 1600x1200 get filtered out.

GroovyMAME is clever enough to bypass this situation. Other emulators aren't.

The perfect solution is to force the detection of your arcade monitor, as it was explained a few posts above:

While it is possible to use the workarounds described in those posts, my recommendation for a long term solution is to force monitor detection by adding 75 ohm resistors to your cable, which connect each of the three color lines to ground.

I've contacted someone who has experience building custom devices for arcade use, maybe he will come up with a ready-made dongle we can purchase to get the job done in a clean way.

167

(10 replies, posted in Support)

How do you make M2 emulator to pick another resolution than your desktop resolution?

You need to edit the full screen resolution options in the emulator's .ini file. Then in the emulator itself, full screen options, select the "custom" one.

You probably won't be able to pick an interlaced mode however, because these are marked as unsupported when monitor detection fails (your case, as far as I see).

What I'd do is to create a progressive mode with the maximum height that's possible for 57.52 Hz. 256p will be good, it's 0.6666 x 384, and it will keep H-freq below 16.2 kHz, so  try: 496 x 256 @ 57.52

168

(10 replies, posted in Support)

Recap wrote:

That's good to know. Though I'm not sure about its overall accuracy against MAME. Both are uncompleted, that's for sure.

Oh, I forgot to mention, MAME can't even run these games yet ("not working" status).

169

(10 replies, posted in Support)

I've been testing the M2 Emulator today and it works flawlessly here with W7 + CRT Emudriver.

At first it complained about d3dx9_42.dll being missing. Installing "DirectX End-User Runtimes (June 2010)" fixed the problem.

I launched Daytona to test, first using the default desktop resolution of 640x480@60i. Then created its native 24 kHz mode with VMMaker, 496x384@57.52, selected it in the emulator's ini and working great.

Thanks for testing. Your chipset was already included but due to duplicated labels it was ignored. I'll have to look through the .inf files to fix all the duplicated labels.

Download the package again, I've made a change, let's see if it's recognized now.

Yes.

You need to add the PCI ID to several files (not only the .inf). Please post your card's PCI ID here so I can add it to the files. I'm decided to get the packages to support all existing HD 4xxx cards, in fact I thought it they already did.

174

(5 replies, posted in Support)

It's likely to be just a problem with Atom-15 not being able to balance the checksum properly. Although you can force Atiflash to do the flash by adding the -f param to the command line, I recommend you to test it first with the "load" tool. You can also send me both images so I can check them: calamity15khz at gmail dot com.

175

(5 replies, posted in Support)

Just a suggestion. Make sure Windows is NOT hiding the file extensions.