Previous Thread
Next Thread
Print Thread
Page 10 of 44 1 2 8 9 10 11 12 43 44
Joined: Mar 2001
Posts: 17,284
Likes: 268
R
Very Senior Member
Very Senior Member
R Offline
Joined: Mar 2001
Posts: 17,284
Likes: 268
Performance on modern CPUs will be better with the code generated by newer GCCs though, so it's not optimal to have a public builder using the old compiler.

Joined: Jul 2007
Posts: 4,625
A
Very Senior Member
Very Senior Member
A Offline
Joined: Jul 2007
Posts: 4,625
I agree but it should exist alternatives by using older CPUs.

Joined: Apr 2008
Posts: 49
Z
Member
Member
Z Offline
Joined: Apr 2008
Posts: 49
I'm having a problem compiling.

I've updated to the latest svn, and ran make TARGET=mess -j4 PTR64=1, like I normally do and I get:

Quote
src/osd/sdl/sdl.mak:449: *** commands commence before first target. Stop.


src/osd/sdl/sdl.mak line 449 has
Quote
$(error Ubuntu 12.10 detected. Please install the gcc-4.6 and g++-4.6 packages)

I am running Ubuntu 12.10. After installing gcc-4.6 and g++-4.6, it compiles file, so I guess it's just a problem with the Ubuntu 12.10 detection.

Joined: Mar 2001
Posts: 17,284
Likes: 268
R
Very Senior Member
Very Senior Member
R Offline
Joined: Mar 2001
Posts: 17,284
Likes: 268
I'll check, it's possible the whitespace cleaner thingy did something bad to the makefile that prevents that from printing.

Joined: Apr 2008
Posts: 49
Z
Member
Member
Z Offline
Joined: Apr 2008
Posts: 49
Looks like the new psx analog stuff isn't compiling right:

Quote
src/mess/machine/psxanalog.c: In member function �UINT8 psx_analog_controller_device::pad_data(int, bool)�:
src/mess/machine/psxanalog.c:46:9: error: �data� may be used uninitialized in this function [-Werror=uninitialized]
At global scope:
cc1plus: error: unrecognized command line option "-Wno-narrowing" [-Werror]
cc1plus: all warnings being treated as errors
make: *** [obj/sdl64/mess/machine/psxanalog.o] Error 1
make: *** Waiting for unfinished jobs....

(edit: trying to compile with make TARGET=mess -j4 PTR64=1 after a make clean on Ubuntu 12.10)

(edit again: nevermind! Carl's svn commit r20305 fixes it! Thanks Carl!)

Last edited by zillion; 01/17/13 07:46 PM.
Joined: Jul 2007
Posts: 4,625
A
Very Senior Member
Very Senior Member
A Offline
Joined: Jul 2007
Posts: 4,625
r20719
Compile fix (no whatsnew)
[src/emu/cpu/es5510]

I have still a problem ...

Quote
Compiling src/emu/cpu/es5510/es5510.c...
cc1plus.exe: warnings being treated as errors
src/emu/cpu/es5510/es5510.c:140: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:140: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:140: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:141: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:372: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:373: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:374: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:375: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:376: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:377: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:427: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:447: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:449: error: integer constant is too large for 'long' type
src/emu/cpu/es5510/es5510.c:590: error: integer constant is too large for 'long' type
make: *** [obj/windows/emu/cpu/es5510/es5510.o] Error 1

However, I�ll make a clean compile again.

Joined: May 2008
Posts: 4,930
Likes: 24
Q
Very Senior Member
Very Senior Member
Q Offline
Joined: May 2008
Posts: 4,930
Likes: 24
This should fix it:

Code
rene@thunder:~/src/mame-svn> svn diff 
Index: src/emu/cpu/es5510/es5510.c
===================================================================
--- src/emu/cpu/es5510/es5510.c (revision 20723)
+++ src/emu/cpu/es5510/es5510.c (working copy)
@@ -137,8 +137,8 @@
 
 static inline INT32 SX(INT32 x) { return (x & 0x00800000) ? x | 0xff000000 : x & 0x00ffffff; }
 static inline INT32 SC(INT32 x) { return x & 0x00ffffff; }
-static inline INT64 SX64(INT64 x) { return (x & (0x0000800000000000)) ? x | 0xffff000000000000L : x & 0x0000ffffffffffffL; }
-static inline INT64 SC64(INT64 x) { return x & 0x0000ffffffffffff; }
+static inline INT64 SX64(INT64 x) { return (x & (0x0000800000000000LL)) ? x | 0xffff000000000000LL : x & 0x0000ffffffffffffLL; }
+static inline INT64 SC64(INT64 x) { return x & 0x0000ffffffffffffLL; }
 
 static inline const char * const REGNAME(UINT8 r) {
   static char rn[8];
@@ -369,12 +369,12 @@
     break;
 
     /* 0x03 to 0x08 INSTR Register */
-  case 0x03: instr_latch = ((instr_latch&0x00ffffffffff) | ((INT64)data&0xff)<<40); logerror("ES5510: Write INSTR latch[5] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
-  case 0x04: instr_latch = ((instr_latch&0xff00ffffffff) | ((INT64)data&0xff)<<32); logerror("ES5510: Write INSTR latch[4] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
-  case 0x05: instr_latch = ((instr_latch&0xffff00ffffff) | ((INT64)data&0xff)<<24); logerror("ES5510: Write INSTR latch[3] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
-  case 0x06: instr_latch = ((instr_latch&0xffffff00ffff) | ((INT64)data&0xff)<<16); logerror("ES5510: Write INSTR latch[2] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
-  case 0x07: instr_latch = ((instr_latch&0xffffffff00ff) | ((INT64)data&0xff)<< 8); logerror("ES5510: Write INSTR latch[1] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
-  case 0x08: instr_latch = ((instr_latch&0xffffffffff00) | ((INT64)data&0xff)<< 0); logerror("ES5510: Write INSTR latch[0] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
+  case 0x03: instr_latch = ((instr_latch&0x00ffffffffffLL) | ((INT64)data&0xff)<<40); logerror("ES5510: Write INSTR latch[5] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
+  case 0x04: instr_latch = ((instr_latch&0xff00ffffffffLL) | ((INT64)data&0xff)<<32); logerror("ES5510: Write INSTR latch[4] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
+  case 0x05: instr_latch = ((instr_latch&0xffff00ffffffLL) | ((INT64)data&0xff)<<24); logerror("ES5510: Write INSTR latch[3] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
+  case 0x06: instr_latch = ((instr_latch&0xffffff00ffffLL) | ((INT64)data&0xff)<<16); logerror("ES5510: Write INSTR latch[2] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
+  case 0x07: instr_latch = ((instr_latch&0xffffffff00ffLL) | ((INT64)data&0xff)<< 8); logerror("ES5510: Write INSTR latch[1] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
+  case 0x08: instr_latch = ((instr_latch&0xffffffffff00LL) | ((INT64)data&0xff)<< 0); logerror("ES5510: Write INSTR latch[0] = %02x -> %012" I64FMT "x\n", data, instr_latch); break;
 
     /* 0x09 to 0x0b DIL Register (r/o) */
 
@@ -424,7 +424,7 @@
     break;
 
   case 0x80: /* Read select - GPR + INSTR */
-    logerror("ES5510: Read INSTR+GPR %02x (%s): %012" I64FMT "x %06x (%d)\n", data, REGNAME(data & 0xff), instr[data] & 0xffffffffffffL, gpr[data] & 0xffffff, gpr[data]);
+    logerror("ES5510: Read INSTR+GPR %02x (%s): %012" I64FMT "x %06x (%d)\n", data, REGNAME(data & 0xff), instr[data] & 0xffffffffffffLL, gpr[data] & 0xffffff, gpr[data]);
 
     /* Check if an INSTR address is selected */
     if (data < 0xa0) {
@@ -444,9 +444,9 @@
 
   case 0xc0: /* Write select - INSTR */
     DESCRIBE_INSTR(buf, instr_latch, gpr[data]);
-    logerror("ES5510: Write INSTR %02x %012" I64FMT "x: %s\n",data, instr_latch&0xffffffffffffL, buf);
+    logerror("ES5510: Write INSTR %02x %012" I64FMT "x: %s\n",data, instr_latch&0xffffffffffffLL, buf);
     if (data < 0xa0) {
-      instr[data] = instr_latch&0xffffffffffffL;
+      instr[data] = instr_latch&0xffffffffffffLL;
     }
     break;
 
@@ -587,7 +587,7 @@
       if (mulacc.write_result) {
        mulacc.product = (mulacc.cValue * mulacc.dValue) << mulshift;
        mulacc.result = (mulacc.accumulate ? machl : 0) + mulacc.product;
-       INT32 tmp = (mulacc.result & 0x0000ffffff000000) >> 24;
+       INT32 tmp = (mulacc.result & 0x0000ffffff000000LL) >> 24;
        if (mulacc.dst & SRC_DST_REG) {
          machl = mulacc.result;
          write_reg(mulacc.cReg, tmp);


A mind is like a parachute. It doesn't work unless it's open. [Frank Zappa]
Joined: Jul 2007
Posts: 4,625
A
Very Senior Member
Very Senior Member
A Offline
Joined: Jul 2007
Posts: 4,625
Nice, thank you. smile

Joined: Mar 2001
Posts: 17,284
Likes: 268
R
Very Senior Member
Very Senior Member
R Offline
Joined: Mar 2001
Posts: 17,284
Likes: 268
That change will break MSVC; MAME provides the U64() wrapper macro for 64-bit constants. ETA: I've now committed a corrected version.

Last edited by R. Belmont; 02/04/13 02:34 PM.
Joined: May 2008
Posts: 4,930
Likes: 24
Q
Very Senior Member
Very Senior Member
Q Offline
Joined: May 2008
Posts: 4,930
Likes: 24
Thanks, RB!

That's a bit OT, but I'm actually surprised that MSVC has trouble with that?! I'm using some decimal "*ULL" constants successfully in QMC2, it also works fine with MSVC as far as I can tell. May be I'm missing something, though.


A mind is like a parachute. It doesn't work unless it's open. [Frank Zappa]
Page 10 of 44 1 2 8 9 10 11 12 43 44

Link Copied to Clipboard
Who's Online Now
2 members (2 invisible), 299 guests, and 2 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,372
Posts122,600
Members5,085
Most Online1,529
Jun 7th, 2025
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Powered by UBB.threads™ PHP Forum Software 8.0.0