Previous Thread
Next Thread
Print Thread
Page 13 of 15 1 2 11 12 13 14 15
Joined: Dec 2005
Posts: 443
Senior Member
Senior Member
Joined: Dec 2005
Posts: 443
Nice nes_mmc changes. The new format is good, and encourages a mapper system closer to being savestate friendly!

Joined: Jan 2006
Posts: 3,695
Likes: 1
Very Senior Member
Very Senior Member
Joined: Jan 2006
Posts: 3,695
Likes: 1
wait for the next update and you'll see it being even friendlier wink

the final goal is to move all the mapper related variable to a mmc struct so that they can be saved properly with no effort.
however, MMC1/MMC3/MMC5 makes life harder, so we are still not there wink

Joined: Sep 2001
Posts: 535
F
Senior Member
Senior Member
F Offline
Joined: Sep 2001
Posts: 535
I updated to GoodNES 3.14 and ran the test again. Results have been updated:
http://mess.redump.net/tools:mame_regtest:results:mess:nes

I should note, that I am running a 32-bit MinGW binary on Windows XP x64.
Here's a backtrace of the .unf crash using "Shadowgate (E) [U][!].unf". I had to compile it with GCC 4.4.0 as the official one will not show a proper backtrace on x64.

Code
Program received signal SIGSEGV, Segmentation fault.
0x0091d67f in read_byte_generic (space=0x125e1348, byteaddress=65532)
    at src/emu/memory.c:472
472                     result = (*handler->bankbaseptr)[byteoffset];
(gdb) bt full
#0  0x0091d67f in read_byte_generic (space=0x125e1348, byteaddress=65532)
    at src/emu/memory.c:472
        handler = (const handler_data *) 0x126110c0
        byteoffset = 8188
        entry = 4
        result = 0 '\0'
#1  0x009255cf in memory_read_byte_8le (space=0x125e1348, address=65532)
    at src/emu/memory.c:3901
No locals.
#2  0x00a61b10 in cpu_reset_m6502 (device=0xa4a1f75)
    at src/emu/cpu/m6502/m6502.c:190
        cpustate = (m6502_Regs *) 0x12bc1764
#3  0x0092ba14 in device_reset_cpu (device=0xa4a1f75) at src/emu/cpuexec.c:567
        classdata = (cpu_class_data *) 0x12bc17b8
        config = (const cpu_config *) 0xa4a1fdd
        reset = (cpu_reset_func) 0xa61ae6 <cpu_reset_m6502>
        line = 131074
#4  0x0093ece3 in device_reset (device=0xa4a1f75) at src/emu/devintrf.c:736
        reset = (device_reset_func) 0x92b979 <device_reset_cpu>
#5  0x00688b8e in machine_reset_nes (machine=0xa441efc)
    at src/mess/machine/nes.c:211
        state = (nes_state *) 0xa491ff4
#6  0x00929d6b in soft_reset (machine=0xa441efc, ptr=0x0, param=0)
    at src/emu/mame.c:1601
        mame = (mame_private *) 0xa461f68
        cb = (callback_item *) 0x0
#7  0x0092819c in mame_execute (options=0x7301e58) at src/emu/mame.c:342
        settingsloaded = 0
        driver = (const game_driver *) 0x1103780
        machine = (running_machine *) 0xa441efc
        mame = (mame_private *) 0xa461f68
        cb = (callback_item *) 0x7301e58
        gamename = (astring *) 0xa441f00
        exit_pending = 0
        error = 0
        firstgame = 0
        firstrun = 0
#8  0x009e4b6f in cli_execute (argc=7, argv=0x7251fe4, osd_options=0x123a420)
    at src/emu/clifront.c:172
        options = (core_options *) 0x7301e58
        gamename = (astring *) 0x72e1f00
        exename = (astring *) 0x72f1f00
        gamename_option = 0x7331f08 "nes"
        driver = (const game_driver *) 0x1103780
        result = -1
#9  0x00892753 in utf8_main (argc=7, argv=0x7251fe4)
    at src/osd/windows/winmain.c:259
        ext = 0x350fa90 ".map"
#10 0x00511293 in mame_main (argc=7, a_argv=0x3f4360)
    at src/osd/windows/main.c:74
        i = 7
        rc = 8
        utf8_argv = (char **) 0x7251fe4
        argv = (TCHAR **) 0x3f4280
        wenviron = (WCHAR **) 0x3f5790
        startupinfo = 2008856237
#11 0x00511318 in mess_cli_main (argc=7, argv=0x3f4360)
    at src/mess/osd/windows/messlib.c:25
No locals.
#12 0x0040135a in main (argc=7, argv=0x3f4360)
    at src/mess/osd/windows/climain.c:17
No locals.

Update:
The crash might be related to bad INIT_FAIL handling of cart loading as changing the logerror() in DEVICE_IMAGE_LOAD( nes_cart ) in machine/nes.c to fatalerror() will cause MESS to just exit on UNIF files.

Last edited by Firewave; 10/02/09 11:02 AM.
Joined: Sep 2001
Posts: 535
F
Senior Member
Senior Member
F Offline
Joined: Sep 2001
Posts: 535
Speaking of GCC 4.4. We still have some warnings in the MESS code with it:

Code
src/mess/machine/dc.c: In function 'dc_mess_g1_ctrl_w':
src/mess/machine/dc.c:707: warning: unknown conversion type character 'l' in format
src/mess/machine/dc.c:707: warning: format '%x' expects type 'unsigned int', but argument 4 has type 'UINT64'
src/mess/machine/dc.c:707: warning: unknown conversion type character 'l' in format
src/mess/machine/dc.c:707: warning: too many arguments for format

I know I can fix it using core_i64_hex_format(), but I am not sure what the second parameter would be.

Joined: May 2009
Posts: 2,234
Likes: 410
J
Very Senior Member
Very Senior Member
J Offline
Joined: May 2009
Posts: 2,234
Likes: 410
I was under the impression that GCC 4.4 is crap and not considered ready for prime time in MAME yet. Has this changed?

Joined: Jan 2006
Posts: 3,695
Likes: 1
Very Senior Member
Very Senior Member
Joined: Jan 2006
Posts: 3,695
Likes: 1
the GCC issue should be fixed now (I copied Aaron's solution for a similar problem in MAME last August)

on the NES side, I cleaned up MMC1 and MMC3 and I'm adding some MMC3 clones. The clean up fixed a few Final Fantasy 3 scrolling glitches reported by Shoegazer on IRC (maybe also other small MMC3 problems, I dunno) and it allowed me to greatly simplify MMC1 code.

Time for some daily snap

Mapper 74 (previously, no chinese text was displayed in the menus)
[Linked Image from mamedev.emulab.it][Linked Image from mamedev.emulab.it]

Mapper 12 (a brand new pirate mapper for MESS)
[Linked Image from mamedev.emulab.it][Linked Image from mamedev.emulab.it]
[Linked Image from mamedev.emulab.it][Linked Image from mamedev.emulab.it]

Currently, I'm trying to fix two x-in-1 mappers which regressed at a certain point (mapper 45 and 49). I should anyway commit the current progresses later tonight smile

Joined: Apr 2004
Posts: 1,563
Likes: 12
J
Very Senior Member
Very Senior Member
J Offline
Joined: Apr 2004
Posts: 1,563
Likes: 12
Nice work

Joined: Mar 2001
Posts: 17,316
Likes: 280
R
Very Senior Member
Very Senior Member
R Offline
Joined: Mar 2001
Posts: 17,316
Likes: 280
Originally Posted by Just Desserts
I was under the impression that GCC 4.4 is crap and not considered ready for prime time in MAME yet. Has this changed?

Only on 32-bit MinGW. MinGW64 and Mac/Linux are fine.

Joined: Feb 2004
Posts: 2,651
Likes: 371
Very Senior Member
Very Senior Member
Joined: Feb 2004
Posts: 2,651
Likes: 371
BS - GCC 4.4 is rubbish on any platform. The optimiser is buggy as hell, and don't even try to use it on PowerPC or SPARC.

Joined: Mar 2001
Posts: 17,316
Likes: 280
R
Very Senior Member
Very Senior Member
R Offline
Joined: Mar 2001
Posts: 17,316
Likes: 280
I dunno, I find it works much better than any compiler Apple ships, all of which continue to mangle machine/model1.c. And Red Hat's 4.4.1 is even nicer.

Page 13 of 15 1 2 11 12 13 14 15

Link Copied to Clipboard
Who's Online Now
1 members (nerd4gw), 1,004 guests, and 1 robot.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,399
Posts122,883
Members5,091
Most Online3,327
Nov 10th, 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