Regen 0.93 Beta 4 + new Debuggers

AamirM's Regen forum

Moderator: AamirM

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Tue Oct 28, 2008 5:35 pm

Well, DX9 actually, since it'll still maintain XP compatibility AND it works fine on Vista in windowed mode since DX7 doesn't too well in windowed mode. VSync doesn't matter in this case either. With VSync on, it's actually way worse. With it off, it still stutters.

I really see no benefit from using DX10 yet though, at least until Windows 7 is released.
Last edited by King Of Chaos on Tue Oct 28, 2008 5:38 pm, edited 1 time in total.

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Tue Oct 28, 2008 5:38 pm

Hi,

With Vsync off, it can be a problem with sound card (or its drivers) because then regen uses that for timing.

stay safe,

AamirM

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Tue Oct 28, 2008 5:40 pm

Yeah, I know. I actually have to keep VSync off to play games, but I never notice any sound skips or anything as a result of it yet (thankfully).

But in the meantime, to any Vista users having issues with the FPS, use fullscreen mode and it'll work fine. :)

eighty5cacao
Interested
Posts: 15
Joined: Thu Sep 25, 2008 9:11 pm

Post by eighty5cacao » Thu Oct 30, 2008 12:23 am

Sorry for not paying closer attention to this thread, as I have been busy with homework.
Eke wrote:actually, this would be right if framerate was exactly 60hz for NTSC and 50Hz for PAL but it is not

What gives you the exact framerate is the number of lines per frame and the number of pixels per line, so, theorically, in line-based emulators, the number of CPU cycles per line should be related to the number of pixels per line, which means:
342 * 10 / 7 = 488.57 CPU clks
342 * 10 / 15 = 228 Z80 clks exacty
...
Anyway, I would like to clarify that my previous request stands regarding putting a checkmark into the menu next to the overclocking setting and providing some way to disable overclocking once it has been enabled (telling users to set the value back to 488 isn't really a clean solution).

When overclocking is disabled, does Regen make any attempt to take those fractional cycles into account, possibly by "dithering" the number of cycles/scanline in some regular pattern? (This is just a question, not a feature request.)

Also, a couple more bugs which have been present for several versions and are somewhat similar to things I've heard from other users; these have occurred on two different computers of mine:
1. On the second and subsequent games loaded in a Regen session, there is no sound until I click on one of the menu headings (such as "File" or "Help") and then either use a menu item or click away from the menu to remove the menu.
2. If the first game loaded in a Regen session is NTSC, then any later PAL games in the same session will try to refresh the screen at the NTSC frame rate, but since the emulation algorithms are thinking in terms of PAL, this results in crackly audio. A similar situation happens if the first game is PAL and a later game is NTSC.

Do you want reports of unlicensed games whose protection chips are not yet emulated? (I can't offer any help in emulating such chips.)

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Thu Oct 30, 2008 1:33 pm

Hi,
Anyway, I would like to clarify that my previous request stands regarding putting a checkmark into the menu next to the overclocking setting and providing some way to disable overclocking once it has been enabled (telling users to set the value back to 488 isn't really a clean solution).
Yeah, its still on my list of "things to do" :) .
When overclocking is disabled, does Regen make any attempt to take those fractional cycles into account, possibly by "dithering" the number of cycles/scanline in some regular pattern? (This is just a question, not a feature request.)
Regen 0.85 did actually took fractional part into account. For example, using my previous calculation (which Eke has told to be incorrect) of 487.9, Regen 0.85 would shorten the last line of every frame by 26 cycles (which apparently seemed to have fixed Zero the Kamikaze Squirrel) and would again shorten every 60th frame by 12 cycles. In latest Regen 0.93, the same behaviour is implemented but differently such that you can't say it takes fractional part into account.
Also, a couple more bugs which have been present for several versions and are somewhat similar to things I've heard from other users; these have occurred on two different computers of mine:
1. On the second and subsequent games loaded in a Regen session, there is no sound until I click on one of the menu headings (such as "File" or "Help") and then either use a menu item or click away from the menu to remove the menu.
2. If the first game loaded in a Regen session is NTSC, then any later PAL games in the same session will try to refresh the screen at the NTSC frame rate, but since the emulation algorithms are thinking in terms of PAL, this results in crackly audio. A similar situation happens if the first game is PAL and a later game is NTSC.
Strange, I tested this on 0.85 and 0.93 and it doesn't happen here. Are you using Vista? Is anybody else having the same problem (and confirm it)?
Do you want reports of unlicensed games whose protection chips are not yet emulated? (I can't offer any help in emulating such chips.)
Sure.

EDIT:
@King of Chaos:
Just so you know, I have started working on D3D9 support but it'll delay the release quite a bit. But I guess it'll be worth it.

stay safe,

AamirM

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Thu Oct 30, 2008 4:36 pm

Yeah, it'll be worth it. :)

eighty5cacao
Interested
Posts: 15
Joined: Thu Sep 25, 2008 9:11 pm

Post by eighty5cacao » Thu Oct 30, 2008 10:55 pm

AamirM wrote:
Also, a couple more bugs which have been present for several versions and are somewhat similar to things I've heard from other users; these have occurred on two different computers of mine:
1. On the second and subsequent games loaded in a Regen session, there is no sound until I click on one of the menu headings (such as "File" or "Help") and then either use a menu item or click away from the menu to remove the menu.
2. If the first game loaded in a Regen session is NTSC, then any later PAL games in the same session will try to refresh the screen at the NTSC frame rate, but since the emulation algorithms are thinking in terms of PAL, this results in crackly audio. A similar situation happens if the first game is PAL and a later game is NTSC.
Strange, I tested this on 0.85 and 0.93 and it doesn't happen here. Are you using Vista? Is anybody else having the same problem (and confirm it)?
Sorry I didn't just state my system specs up front - one of my two computers (which both experience the same symptoms IIRC) does use Vista.
1. Dell Inspiron 9300, 1.6 GHz Pentium M, 1GB DDR2 SDRAM, Nvidia GeForce Go 6800 (driver version 84.74 from www.laptopvideo2go.com ), Windows XP Home SP3, using built-in integrated sound chipset
2. Dell Inspiron 1720, 2.5 GHz Core 2 Duo, 4GB of RAM, Nvidia GeForce 8600M GT (driver is whatever Windows Update gave me - need to check on version number), Windows Vista Home Premium SP1, Creative Sound Blaster X-Fi Xtreme Audio Notebook sound card
Give me some time to check whether any of my system tweaks/security software/etc. are at fault here.
AamirM wrote:
Do you want reports of unlicensed games whose protection chips are not yet emulated? (I can't offer any help in emulating such chips.)
Sure.
I'm a little busy right now - give me a day or so to get back to you on this. I will mention that the games I have in mind are probably supported by Kega Fusion. (See the "Pirate ROM Hunt" series of videos by YouTube user CrashManEXE. I'm pretty sure he's been using Kega as his Genesis emulator.)

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Fri Oct 31, 2008 1:38 pm

Hi,
I'm a little busy right now - give me a day or so to get back to you on this. I will mention that the games I have in mind are probably supported by Kega Fusion. (See the "Pirate ROM Hunt" series of videos by YouTube user CrashManEXE. I'm pretty sure he's been using Kega as his Genesis emulator.)
Well there were quite many videos that came up so I only quickly looked at the Rockman X3 one. Yes, he is using Kega but I think he must've patched the ROM in some way to run it because otherwise it doesn't run on it. Regen does support this game correctly if you enable autofix checksum. For the sake of completeness here are the unlicensed game currently supported by Regen which require special handling:

Lion King 2
Mahjong Lover
Elf Wor
Super Bubble Bobble
Earth Defend
Whac a critter
Funny World and Ballon Boy
Squirrel King
Bugs life (don't fix checksum for this game)
Rockman X3
Soul Blade
Pocket Monsters
12-in-1
4-in-1
Smart Mouse
Lion King 3
Super King Kong 99

But you must enable autofix checksum for these to work in Regen (except the one listed).

About the problems, there doesn't seem to be anything wrong with your hardware. Delete regen.ini file and restart with a new config. Also make sure you are using at least Regen 0.85.

stay safe,

AamirM

Snake
Very interested
Posts: 206
Joined: Sat Sep 13, 2008 1:01 am

Post by Snake » Fri Oct 31, 2008 11:47 pm

AamirM wrote:@King of Chaos:
Just so you know, I have started working on D3D9 support but it'll delay the release quite a bit. But I guess it'll be worth it.
Nope.

The Vista desktop is running under D3D. Any app running under D3D is essentially 'emulated' by the desktop. To your code everything looks the same, it looks like you're doing vsyncs, running at 60fps, everything else. But Vista updates the screen when it feels like it, not when you want it to.

So, no. Not going to help at all.

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Sat Nov 01, 2008 5:55 am

Hi,
Snake wrote: Nope.

The Vista desktop is running under D3D. Any app running under D3D is essentially 'emulated' by the desktop. To your code everything looks the same, it looks like you're doing vsyncs, running at 60fps, everything else. But Vista updates the screen when it feels like it, not when you want it to.

So, no. Not going to help at all.
Thanks for the info. So is there any way around it?

stay safe,

AamirM

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Mon Nov 03, 2008 4:17 pm

Seems to me it could be a graphics drivers issue. I've updated the Nvidia drivers on this computer and the frame rates are better, near normal (nearly consistant 60.0 frame rate). The odd thing is, my other computer has Windows Vista and a ATI card and it has no problems with frame rates at all, it runs perfectly.

Snake
Very interested
Posts: 206
Joined: Sat Sep 13, 2008 1:01 am

Post by Snake » Wed Nov 05, 2008 11:19 pm

Yeah, the driver could well have an effect, it's probably the driver that decides when to do the real update.

There is probably a vista specific function you can call to request that it does an update, which might fix it. Note I say 'request that it does', not 'force it to do', because that's highly likely the case with this type of stuff. The OS/Driver will, without a doubt, be free to completely ignore you and do it when it feels like it anyway, but a half decent driver should cooperate at least most of the time.

No idea if such a thing exists or what it is yet, but I imagine Microsoft would have thought of this.

Gerrie
Interested
Posts: 16
Joined: Tue Dec 12, 2006 9:33 pm
Contact:

Post by Gerrie » Thu Nov 06, 2008 10:19 am

You might want to look into the following DWM API calls:

DwmSetDxFrameDuration
DwmSetPresentParameters

I have not done any testing, but it seems these functions will control how the DWM updates its screen.

tetsuo55
Newbie
Posts: 7
Joined: Mon Sep 29, 2008 12:03 pm

Post by tetsuo55 » Thu Nov 06, 2008 2:14 pm

Actually the move to DX9 (latest sdk update) can improve some of the stuttering.

I guess it depends on what calls are used.

The jump to the latest SDK solved microstutters in Media Player Classic for me.

Don't expect much though, the image rendering will be faster but the main bottleneck is not the image but the emulation. At least with dx9 you will be sure its not dx7 causing the problems and you can use the new calls to prevent tearing and do other cool stuff

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Thu Nov 06, 2008 3:49 pm

I think Gerrie's got it right. The stuttering issue on Windows Vista is to do with the Desktop Window Manager of Windows Aero. When you have the Aero theme turned off on Windows Vista, everything's fine once again.

Snake explained it to me like this, Windows Vista (when Aero is on) updates the screen when it feels like it, not when you wanted to (like he said above). While I was researching the DWM and looking into the DWM APIs, it certainly does seem *possible* to request it to update the screen, thus possibly making this issue go away, but there's no way to be sure until it's tried out. I'm not fully sure what the requirements are to use the DWM API (like with DX7, or forced to use DX9) but the DWM Wikipedia article states the Desktop Window Manager requires video cards that support DirectX 9 and Shader Model 2.0.

Ironically though, I believe this issue to be fixed on ATI cards/drivers (or some kind of workaround is added to the ATI drivers). My other computer has an ATI card, with Aero enabled and I don't get any stutters or anything when using it (with consistent frame rates of 60.0 and 59.9). My integrated Nvidia graphics on this computer had the issue badly until I updated the drivers for it, then it started to improve some.

If anyone makes any tests or anything and needs somebody to test them, I will since the issue is present with me.

In the meantime, here's some links about DWM:
http://en.wikipedia.org/wiki/Desktop_Window_Manager
http://weblogs.asp.net/kennykerr/archiv ... nager.aspx
http://blogs.msdn.com/greg_schechter/ar ... 53605.aspx
http://msdn.microsoft.com/en-us/library/aa969540.aspx
http://www.stoyanoff.info/blog/projects ... -overview/

Post Reply