Page 3 of 5

Posted: Mon May 06, 2013 10:20 pm
by Huge
HardWareMan wrote:
Huge wrote:I imagine that would be limited by your drive speed, not cpu power. Have you tried it on a SSD?
OK, let's see. 5 threads for one channel. 6 channels and one master out. So we have 5*6+1=31 threads. Output format is 44100/16/2 that require 172,2KBytes/s. In result: 31*172,2=5340,2KBytes/s or 5,2MBytes/s. Do you still believe that is not enough the regular HDD? This speed is smaller than can done my UDMA33 HDD 10 years ago.
Try copying 31 files onto the same HDD simultaneously and then tell me you reach 5mbyte/sec. Or even 500k. SSD should have no problem with that though, that's the main reason they are better, not just the sequential reads.

The problem could be related to how the files are saved though, it might be "emulating" each channel separately for dumping purposes, so emulating the YM2612 30 times or something like that (I'm assuming that due to the nature of FM, you can't just do all channels ones and mix them together before outputting - so for channel dumping, you actually have to do all channels as their own device?).

Nah, I really have no idea.

Posted: Tue May 07, 2013 12:25 am
by neologix
YM2612 FM is time-multiplexed (at least, if I remember that bit from the authoritative reference thread correctly) - channel are processed sequentially at such a short latency that they sound simultaneous but aren't, but most emulators tend to process them all immediately then mixdown in the same period. I think operators are supposed to be time-multiplexed within their channels as well, but I could be wrong there.

Posted: Tue May 07, 2013 3:35 am
by Mamizou
The YM2612 still processes each channel fully, the time division only happens after everything is modulated and the bit depth is truncated.

The actual PG/EG parts process each sample and channel individually, but that's different from the output multiplexing because the channels are still outputted at ~50kHz sampling rate.

Posted: Tue May 07, 2013 10:05 am
by Nemesis
Firebrandx wrote:I get a white screen on the image window, though everything else (including sound) seems to work fine.
Do the VDP palette and VRAM windows work, or are they all white too?
Shadow wrote:Very odd, i just uncheck HT cores in task manager for Exodus and got big speedup on DirectColor-DMA test. (29-32fps)
You are a bit at the mercy of the Windows thread scheduler here. I've experimented with manually assigning thread affinity within Exodus, but I've never been able to gain a speedup by doing it manually.
Huge wrote:
HardWareMan wrote:
Huge wrote:I imagine that would be limited by your drive speed, not cpu power. Have you tried it on a SSD?
OK, let's see. 5 threads for one channel. 6 channels and one master out. So we have 5*6+1=31 threads. Output format is 44100/16/2 that require 172,2KBytes/s. In result: 31*172,2=5340,2KBytes/s or 5,2MBytes/s. Do you still believe that is not enough the regular HDD? This speed is smaller than can done my UDMA33 HDD 10 years ago.
Try copying 31 files onto the same HDD simultaneously and then tell me you reach 5mbyte/sec. Or even 500k. SSD should have no problem with that though, that's the main reason they are better, not just the sequential reads.

The problem could be related to how the files are saved though, it might be "emulating" each channel separately for dumping purposes, so emulating the YM2612 30 times or something like that (I'm assuming that due to the nature of FM, you can't just do all channels ones and mix them together before outputting - so for channel dumping, you actually have to do all channels as their own device?).

Nah, I really have no idea.
The sound logging output happens directly from the main render thread, just before the data is sent to the audio output buffer. The logging happens at the actual native internal sample rate, not the output sample rate, there's actually around 55000 samples per second being output.

That said, the slowdown is due to the way the logging is being done. Operator samples aren't buffered, they're just combined together into the output buffer, which is then resampled at the time it is being sent for audio playback. Since the operator samples aren't being buffered, they're written to the file stream one at a time. That wouldn't normally be a problem, except that in order to write wav files "properly" using the win32 API, I'm using a special file stream that uses mmioWrite to write samples to the output file, and I haven't implemented buffering over that, so it's literally hitting the file system for each and every sample. I'll implement some buffering over the top to fix that problem.

Posted: Wed May 08, 2013 5:41 am
by Firebrandx
Nemesis wrote:
Firebrandx wrote:I get a white screen on the image window, though everything else (including sound) seems to work fine.
Do the VDP palette and VRAM windows work, or are they all white too?
No, they work fine. Everything does as I said, except the image window is all white. I can hear the game running, I can see the Pattern viewer working and loading graphics, and I can see the palette changing and updating. I just can't see an actual image in the image viewer.

Posted: Sat May 11, 2013 11:28 am
by JayRayK
LOL! I ran this on a AMD Athlon X2 L310, 4GB Ram, 2GB Radeon 3200HD and got an average of ~7.52 fps

Wish I could experience it more but my laptop won't let me or even overclock for that matter xD

Posted: Sun May 12, 2013 5:07 am
by Nemesis
Firebrandx wrote:
Nemesis wrote:
Firebrandx wrote:I get a white screen on the image window, though everything else (including sound) seems to work fine.
Do the VDP palette and VRAM windows work, or are they all white too?
No, they work fine. Everything does as I said, except the image window is all white. I can hear the game running, I can see the Pattern viewer working and loading graphics, and I can see the palette changing and updating. I just can't see an actual image in the image viewer.
I've been looking into what could be causing this, but so far I haven't been able to figure out what could be going wrong. I might have to compile a special debugging build of the vdp core for you to run on your machine, to try and gather more information. I'll put that build up for you soon.

Posted: Mon May 13, 2013 3:30 am
by Firebrandx
Nemesis wrote:
Firebrandx wrote:
Nemesis wrote: Do the VDP palette and VRAM windows work, or are they all white too?
No, they work fine. Everything does as I said, except the image window is all white. I can hear the game running, I can see the Pattern viewer working and loading graphics, and I can see the palette changing and updating. I just can't see an actual image in the image viewer.
I've been looking into what could be causing this, but so far I haven't been able to figure out what could be going wrong. I might have to compile a special debugging build of the vdp core for you to run on your machine, to try and gather more information. I'll put that build up for you soon.
Cool, thanks. I turned off aero if that matters. Other than that, I don't understand what could be going wrong.

Posted: Mon May 13, 2013 5:36 am
by King Of Chaos
Have you tried updating your GPU drivers? Long shot, of course.

Posted: Thu May 16, 2013 1:38 am
by Nemesis
Can you try the following:
-Select "Settings->Mega Drive->VDP->Settings" from the main menu
-Enable the "Single Buffering" option
And tell me if you now see anything on the screen?

Posted: Fri May 17, 2013 6:20 pm
by Firebrandx
Nemesis wrote:Can you try the following:
-Select "Settings->Mega Drive->VDP->Settings" from the main menu
-Enable the "Single Buffering" option
And tell me if you now see anything on the screen?
I had already tried that before and nothing changed. Also, toggling full screen just fills the screen with white.

I've also already updated my graphics drivers to the latest versions from AMD.

Posted: Mon May 20, 2013 4:07 am
by domdec314
I'm running an AMD FX-4100 (3.6GHz quad core) with 8GB ram. I'm getting about 20-30 fps with Sonic 1.

Posted: Mon May 20, 2013 11:39 pm
by Nemesis
Firebrandx wrote:
Nemesis wrote:Can you try the following:
-Select "Settings->Mega Drive->VDP->Settings" from the main menu
-Enable the "Single Buffering" option
And tell me if you now see anything on the screen?
I had already tried that before and nothing changed. Also, toggling full screen just fills the screen with white.

I've also already updated my graphics drivers to the latest versions from AMD.
Do you see a white rectangle with black bars around the edges when you resize the image window, or does the entire window just remain white?

Posted: Wed May 22, 2013 5:27 pm
by Firebrandx
Nemesis wrote:
Firebrandx wrote:
Nemesis wrote:Can you try the following:
-Select "Settings->Mega Drive->VDP->Settings" from the main menu
-Enable the "Single Buffering" option
And tell me if you now see anything on the screen?
I had already tried that before and nothing changed. Also, toggling full screen just fills the screen with white.

I've also already updated my graphics drivers to the latest versions from AMD.
Do you see a white rectangle with black bars around the edges when you resize the image window, or does the entire window just remain white?
I see the status bar at the bottom of the screen, but the rest is white.

Posted: Thu May 23, 2013 3:17 am
by Unity311
Any preferred ROM for benchmarking?