SVN470 Download & Infos

spacy51
Senior Member
Posts: 371
Joined: Tue Mar 18, 2008 4:59 pm

SVN470 Download & Infos

Post by spacy51 »

Download Link:

http://visualboyadvance-m.googlecode.com/files/VisualBoyAdvance470.7z

 

DLL package:

http://visualboyadvance-m.googlecode.com/files/dll.7z

 

 

Changes:

  • Direct3D + Pixel Filter now profits from multi-core CPUs

 

 

The number of threads to create is detected automatically on first run or when the option is not present or invalid in the ini.

To manually change the number of threads to create, change the value after "maxCpuCores" in the ini file.

 

Big thanks go out to chrono for making the asm filters thread safe.

 

 

It would be great if someone with a quad-core or octa-core PC could post some benchmarks for different thread numbers. HQ2x/3x/4x filters are most interesting.

Last edited by spacy51 on Tue Jan 27, 2009 7:29 am, edited 1 time in total.
Squall Leonhart
Posting Freak
Posts: 1223
Joined: Tue Mar 18, 2008 9:21 am

SVN470 Download & Infos

Post by Squall Leonhart »

Spacy, an integer divide by zero crash occurs when trying to load a rom using D3D + Filtering.

LazerTag
Junior Member
Posts: 2
Joined: Sat Mar 29, 2008 9:15 am

SVN470 Download & Infos

Post by LazerTag »

I have a Q6600 CPU I'd be happy to post some benchmarks, but not sure how to perform it or what game works best at whcih part, etc.. etc.. ?

 

 

If you can let me know I'll report back for you. Nice job with VBA btw. I had not even realized until this morning that work continued on it by anyone. nice surprise.

Last edited by LazerTag on Sat Mar 29, 2008 8:55 pm, edited 1 time in total.
spacy51
Senior Member
Posts: 371
Joined: Tue Mar 18, 2008 4:59 pm

SVN470 Download & Infos

Post by spacy51 »

Use Direct3D & enable speed info message. Disable VSync, Throttle, Frame Skip, Triple Buffering & Audio Sync.

I recommend a static image in any game, for example a title screen or an ingame scene, sothat the emu core does the same amount of work all the time.

 

Select for example the HQ4x filter and write down the average fps.

Then close the emu, open the ini and decrement the value behind maxCpuCores.

Start VBA again and write down the average fps you get now.

 

It would also be interesting to see the total amount of CPU power VBA uses (look in the Task-Manager). The higher the percentage, the more does VBA make use of all your cores. 100% is ideal, 100%/NCORES is worst case (app only uses one core).

LazerTag
Junior Member
Posts: 2
Joined: Sat Mar 29, 2008 9:15 am

SVN470 Download & Infos

Post by LazerTag »

It's kind of hard to gauge an average as it simply jumped to much. I'm just giving the lowest I would see and the highest in each test.

 

HQ2x, HQ3x, and HQ4x all seemed no different in numbers. And not once did it use more than 25% of the CPU no matter what number of cores I used.

 

Advance Wars 2 on the first battle scene of training

 

1 core - 355% to 375%

2 core - 370% to 375%

3 core - 375% to 400%

4 core - 375% to 400%

 

 

Completely impossible to play like this, lol.

Squall Leonhart
Posting Freak
Posts: 1223
Joined: Tue Mar 18, 2008 9:21 am

SVN470 Download & Infos

Post by Squall Leonhart »

yes, well, while it works on multicores, its going to bork on single and hyperthreaded cores.

Last edited by Squall Leonhart on Sun Mar 30, 2008 6:32 am, edited 1 time in total.
spacy51
Senior Member
Posts: 371
Joined: Tue Mar 18, 2008 4:59 pm

SVN470 Download & Infos

Post by spacy51 »

I just uploaded a patch for it. It can only be caused if your CPU returns 0 as the number of CPU cores. Probably a behaviour of single core CPUs? I also restricted the maximum number of core to use to 16, since image Quality might get worse if more cores are used.

 

 

@Squall:

Until the next binary is released, you should manually set the value in the ini file.

Last edited by spacy51 on Sun Mar 30, 2008 9:27 am, edited 1 time in total.
Squall Leonhart
Posting Freak
Posts: 1223
Joined: Tue Mar 18, 2008 9:21 am

SVN470 Download & Infos

Post by Squall Leonhart »

indeed, on all systems the first core is 0, second is 1, and so on.

 

if you look at CPU Affinity it confirms this [img]<fileStore.core_Emoticons>/emoticons/tongue.png[/img]/emoticons/tongue@2x.png 2x" width="20" height="20" />

 

argh, since this sites playing up a tad,

 

a use multithreading tick box in the filters section would go down well, its strange, since multicore cpu's also return the first core as Core 0. most apps just read it wrongly as core 1, theres only a few apps which actually do report it right, windows task manager being one of them.

chrono
Junior Member
Posts: 32
Joined: Tue Mar 18, 2008 9:23 pm

SVN470 Download & Infos

Post by chrono »

Code: Select all

int VBA::detectCpuCores()
{
       int CPUInfo[4];

   __cpuid( CPUInfo, 1 );

   int processor_count = ( CPUInfo[1] & 0x00FF0000 ) >> 16;

   // some CPUs probably do not support this instruction properly
   if( processor_count < 1 ) processor_count = 1;

   return processor_count;
}

is probably Intel-specific code

 

 

try

Code: Select all

int VBA::detectCpuCores()
{
       SYSTEM_INFO info;

   GetSystemInfo(&info);
   return info.dwNumberOfProcessors;
}
Squall Leonhart
Posting Freak
Posts: 1223
Joined: Tue Mar 18, 2008 9:21 am

SVN470 Download & Infos

Post by Squall Leonhart »

is there a reason you haven't been given developer access on source forge? lol.

Post Reply