1) When I ran vmmaker, it created 42 resolutions, if my memory is correct. I notice when running ArcadeOSD, there's still a bunch of really low resolutions in the list, then a greyed out block of resolutions, followed by the 1234 x whatever "magic" resolutions. Is this what I should be seeing?
This is correct. All MAME resolutions pass through the *_XML set of options, which we defined as "magic". But on the other hand the resolutions defined in ReslList.txt pass through the *_Custom set of options, and as we defined ModeTableMethod_Custom = 0 they are preserved as defined.
So we can use these resolutions for the rest of emulators that don't support "magic" resolutions.
In my cab, as I'm only using GroovyUME now, I just have the desktop resolution and a bunch of "magic" resolutions for everything.
On a related note, are there any "problem" games that you know of that I can run to really be sure that this is working as intended?
I remind Spy Hunter crashing with magic resolutions, due to its odd 480x480 size, I haven't figured this one out. Apart from that, what I do is to go testing games by height, that's the relevant value, pay special attention to vertical games:
256 - 1942
280 - contra
288 - dspirit
...make sure you see no stretching at all. Then I go for some interlaced ones: donpachi, twincobr, aerofgts (this one is useful because it allows testing resolution switching).
2) When I exit a game that was launched from hyperspin, pacman for example, hyperspin is smooshed up on the left side of the screen. I think that Hyperspin is trying to re-size itself to the MAME resolution or something. I recall having similar issues when I was trying to use Windows 7 (before I gave up on that), but I don't think XP ever did this. I think there's an option to always run Hyperspin at a fixed resolution though. I may have to try that and see if it makes any difference.
This is odd because in a normal situation HS should not be aware of what resolution we're using inside MAME. I wonder if HS is shutting GroovyMAME by its own means which could be catastrophic as it would prevent GroovyMAME from restoring the registry settings it has previously modified. I mean that if HS would let GroovyMAME terminate normally the resolution should always be the same: the desktop resolution.
3) I can no longer use DDRAW. It only works with D3D. I saw you mention that some people have this issue in one of your posts. Are there any drawbacks to using D3D these days?
Direct3D is actually faster than DirectDraw and thus it's recommended for "magic" resolutions because the actual frame buffer is 1234 wide. D3D has only 2 drawbacks AFAIK:
- It stretches the frame if the resolution is not *exactly* the one of the frame. This is not a problem thanks to CabMAME's -cleanstretch patch (included in GroovyMAME).
- Some resolutions might become disabled if Windows determines they're not supported by the monitor. This is only a problem for monitors with a valid EDID, not the case of arcade monitors.
Do you have any idea why it's happening and/or why it only happens to some people?
Is it tied to specific versions of windows?
64 vs 32 bit?
Certain versions of your CRT_EmuDriver?
Possibly linked to the type of video card?
I wish I knew. I spent a whole week last summer doing tests and patches for MAME until I got it working here for Cat 6.5/9.3 - Windows 32/64 - ddraw/d3d. My initial tests where done using 9.3/32, and it was beautiful because I could use a single "magic" resolution for everything. But then when testing it in 6.5/32 I got constant blue screens until I found that the vertical resolution couldn't be modified. That's why I ended up using a list of resolutions by height for all systems. It's interesting that in 6.5/64 there weren't blue screens but just garbled displays. When I got everything working for each possible combination of 6.5/9.3, 32/64, ddraw/d3d I was so exited that I made a pompous release just hours before going out for holiday on a cruise. I bought an internet card on board to follow the "success" of the creature with a cup of porto just to discover that it wasn't working for anybody... Fortunately before trashing it completely we found that it does work for Direct3D even when it doesn't for DirecDraw.
So I don't have a clue why it works here with DirectDraw while it doesn't work for other people. I'm inclined to think that it has to do with the DirectX version, because the driver files are exactly the same. Only an intensive testing campaign would help to find an answer.
However we must keep in mind that after all this is a hack, we're just using a hole in ATI drivers, so it's a miracle that it even works.
I'm using an ATI Radeon HD 4550, Windows XP x64, and the CRT_EmuDriver based on Catalyst 9.3.
I also have an ATI Radeon X600XT that I could try to see if it behaves differently. Though I'll have to scrub the old drivers off the machine first so I can install the 6.5 drivers.
The X600XT should also be supported by the 9.3 version. Any test is welcome, if you ever have the time or energy.
This may or may not be related, but when I installed the CRT_EmuDriver, and right at the end of the installation, I'm getting that error about copying a file again... http://forum.arcadecontrols.com/index.php?topic=110905.msg1185604#msg1185604
I don't think this is related but it does worry me. Driver's installation is incredibly problematic.