Previous Thread
Next Thread
Print Thread
Page 6 of 7 1 2 3 4 5 6 7
#89685 - 07/29/13 08:08 PM Re: The VC++ compilation thread [Re: Anna Wu]  
Joined: Sep 2004
Posts: 384
AaronGiles Offline
Senior Member
AaronGiles  Offline
Senior Member

Joined: Sep 2004
Posts: 384
Issaquah, WA
MSVC isn't going to be nearly as fast a gcc inherently because gcc uses hand-tweaked delegates, while MSVC has to go through the generic path. That means every delegate call on MSVC goes through a thunk, while on gcc it's a direct call, and that's going to slow everything down.

It is possible to make the delegate code "smart" and add MSVC-specific logic to the delegate implementation, but it's never been worth the effort since the main reason to use MSVC for MAME is to debug crashes.

#89688 - 07/30/13 04:22 PM Re: The VC++ compilation thread [Re: qmc2]  
Joined: Sep 2001
Posts: 534
Firewave Offline
Senior Member
Firewave  Offline
Senior Member

Joined: Sep 2001
Posts: 534
Originally Posted By qmc2
Yes, it just ended, printing the amount of seconds it ran and the avg. speed... it runs fine for me as well, only with vmame (32-bit VC++ build) it does that, and the number of seconds may vary.


I am not able to reproduce this behavior with an optimized VS2012 32-bit binary...

Also on my system it averages 104% smile

#89689 - 07/30/13 05:17 PM Re: The VC++ compilation thread [Re: Anna Wu]  
Joined: Mar 2001
Posts: 15,585
R. Belmont Online content
R. Belmont  Online Content

Very Senior Member

Joined: Mar 2001
Posts: 15,585
USA
Rene was using VS2010 express, I believe, so that may be the difference.

#89697 - 07/31/13 10:20 AM Re: The VC++ compilation thread [Re: Anna Wu]  
Joined: May 2008
Posts: 4,797
qmc2 Offline
qmc2  Offline

Very Senior Member

Joined: May 2008
Posts: 4,797
Germany
Yes, RB is correct... seems there has been real progress in VS2012 then smile.


A mind is like a parachute. It doesn't work unless it's open. [Frank Zappa]

We're searching for QMC2 translators and support for existing translations. Interested? See here!
#89771 - 08/08/13 07:38 AM Re: VC++ compilation thread- 32 bit compile script [Re: Anna Wu]  
Joined: Apr 2012
Posts: 148
Bavarese Offline
Senior Member
Bavarese  Offline
Senior Member

Joined: Apr 2012
Posts: 148
Germany
This 32 bit compile script (with parts from http://www.colinkraft.com/mame/mame.php) helped me to overcome the nasty C2061 / C2059 warnings Annna Wu noted.

Got the LNK4221 errors on 'rgbutil.o', 'rsp.o', 'mips3.o' and 'sh2.o' mentioned by Qmc2 (which can be ignored).

Script has to be started from the Visual Studio 2010 (Service Pack 1) command prompt.

Tested on Windows 7 64 Bit (Administrator, UAC disabled) with DirectX - SDK from August 2007.

Using the Windows 7.1 SDK with VS 2010 is especially troublesome. Even after Service Pack 1, a compiler upgrade named VC-Compiler-KB2519277.exe is necessary (haven't tried though)...

Code:
cls
rem 32 bit compile with VS 2010 (Express) patched to SERVICE PACK 1
REM    + WINDOWS SDK 7.0A 
REM    + DirectX - SDK from August 2007
rem *****************************************************************************
SET vsbase=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC
SET SDKBASE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
SET DXBASE=C:\Program Files (x86)\Microsoft DirectX SDK (August 2007)
REM
call "%VSBASE%\vcvarsall.bat" x86
call "%DXBASE%\Utilities\bin\dx_setenv" x86
REM
SET PATH=C:\Users\Public\mingw64-w32\bin;%SDKBASE%\Bin;%PATH%;
SET INCLUDE=%SDKBASE%\Include;%DXBASE%\Include;%vsbase%\include;
SET LIB=%SDKBASE%\Lib;%dxbase%\lib\x86;%vsbase%\lib;
cd  C:\Users\Public\source0149s
rd /s /q obj
del /q vmess.exe
del /q vmess.pdb

REM  MAKE : 2 CPUs (CPUs+1) - Direct X SDK :
make -j3 TARGET=mess MSVC_BUILD=1 DIRECT3D=9 DIRECTINPUT=8
REM  DEBUG:
REM  make -j3 TARGET=mess MSVC_BUILD=1 DIRECT3D=9 DIRECTINPUT=8  DEBUG=1 SYMBOLS=1 

Last edited by Bavarese; 08/08/13 10:51 AM.
#90034 - 08/21/13 09:31 PM Re: VC++ compilation thread- DEVFIND.* troubles [Re: Bavarese]  
Joined: Apr 2012
Posts: 148
Bavarese Offline
Senior Member
Bavarese  Offline
Senior Member

Joined: Apr 2012
Posts: 148
Germany
DEVFIND.H causes problems when trying to compile with Visual C++ 2010 (setup as described in my post above).

Haze confirmed - more or less - there IS in fact a problem. It started with the Atari changes by Aaron ...

The specific error is C2680 and is described by MS here
MSDN Library entry: C2680

Error does occur with current SVN (not with 149u1, where DEVFIND.* is absent). Cannot be reproduced with GCC.

Does anybody know a solution? smile

--- LOG (with partial translations of the error messages, hopefully correct)
c:\users\public\newer\src\emu\devfind.h(127) : error C2680: 'i8089_channel *': Invalid target type for dynamic_cast
"i8089_channel": class has to be defined before it can be used in dynamic_cast.
c:\users\public\newer\src\emu\devfind.h(125): when compiling the class template of
bool device_finder<_DeviceClass,_Required>::findit(bool)-member function
with
[
_DeviceClass=i8089_channel,
_Required=true
]
...

Last edited by Bavarese; 08/21/13 09:39 PM.
#90042 - 08/22/13 12:52 PM Re: VC++ compilation thread- DEVFIND.* troubles [Re: Anna Wu]  
Joined: Sep 2001
Posts: 534
Firewave Offline
Senior Member
Firewave  Offline
Senior Member

Joined: Sep 2001
Posts: 534
The problem is, that dynamic_cast<> in Visual Studio needs to know the whole object. I had to move the whole i8089_channel class (and some defines) into the header to get it to compile. It will be committed/fixed it at some point. Just didn't get to it yet.

#90362 - 09/06/13 03:10 PM 32 bit Windows XP anyone? [Re: Anna Wu]  
Joined: Apr 2012
Posts: 148
Bavarese Offline
Senior Member
Bavarese  Offline
Senior Member

Joined: Apr 2012
Posts: 148
Germany
Oops, anyone out there who still uses Windows XP 32 bit to compile?

I can't compile on my older Pentium-M (Dothan) based laptop. It only has SSE,SSE2 and 2 GB of RAM. Is that below minimum requirements?

It doesn't matter which source i try!

No matter which MINGW version i have, i always get:

(... mkdir omitted...)
mkdir.exe -p obj/windows/osd/windows
mkdir.exe -p obj/windows/tools
Compiling src/osd/windows/vconv.c...
<built-in>:0:0: internal compiler error: Illegal instruction
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [obj/windows/osd/windows/vconv.o] Error 1

The setup is the same as in my previous postings, and the MINGW versions i tried are from Mamedev.org:

(tried first) mingw-mame-w32-20121207.exe
(tried also ) mingw-mame-20121207.exe (32 & 64 bit in one package)

Thank you very much for any hints.

Last edited by Bavarese; 09/06/13 03:12 PM.
#90363 - 09/06/13 03:42 PM Re: 32 bit Windows XP anyone? [Re: Anna Wu]  
Joined: Mar 2001
Posts: 15,585
R. Belmont Online content
R. Belmont  Online Content

Very Senior Member

Joined: Mar 2001
Posts: 15,585
USA
Both the Pentium M and XP are problematic for building MAME/MESS. You may have better luck with a Visual Studio Express build, but those run slower than MinGW binaries (on GCC our delegates compile down to a direct function call, on MSVC it inserts a trampoline function, as I understand it).

#90364 - 09/06/13 03:50 PM Re: 32 bit Windows XP anyone? [Re: R. Belmont]  
Joined: Jul 2007
Posts: 4,588
Anna Wu Offline
Very Senior Member
Anna Wu  Offline
Very Senior Member

Joined: Jul 2007
Posts: 4,588
Quote:
Compiling src/osd/windows/vconv.c...
<built-in>:0:0: internal compiler error: Illegal instruction
Please submit a full bug report


I get the same compile error if I use the official MAME tools on my older Notebook (WinXP SP3 32-bit, Mobile Pentium 4-M).
See the discussion here.

@Bavarese
If you are able to compile MESS by using Visual Studio Express on your older Notebook with Pentium-M + WinXP SP3 32-bit, please contact me. smile

Page 6 of 7 1 2 3 4 5 6 7

Who's Online Now
3 registered members (R. Belmont, Sune, 1 invisible), 15 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,339
Posts107,774
Members4,738
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.0
Page Time: 0.031s Queries: 15 (0.010s) Memory: 5.0272 MB (Peak: 5.2558 MB) Zlib enabled. Server Time: 2017-05-27 19:18:18 UTC