|
|
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  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 
|
|
|
|
|
Joined: Sep 2001
Posts: 535
Senior Member
|
|
Senior Member
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.
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
Senior Member
|
|
Senior Member
Joined: Sep 2001
Posts: 535 |
Speaking of GCC 4.4. We still have some warnings in the MESS code with it:
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
Very Senior Member
|
|
Very Senior Member
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]](http://mamedev.emulab.it/etabeta/fast/files/074a.png) ![[Linked Image from mamedev.emulab.it]](http://mamedev.emulab.it/etabeta/fast/files/074b.png) Mapper 12 (a brand new pirate mapper for MESS) ![[Linked Image from mamedev.emulab.it]](http://mamedev.emulab.it/etabeta/fast/files/012a.png) ![[Linked Image from mamedev.emulab.it]](http://mamedev.emulab.it/etabeta/fast/files/012b.png) ![[Linked Image from mamedev.emulab.it]](http://mamedev.emulab.it/etabeta/fast/files/012c.png) ![[Linked Image from mamedev.emulab.it]](http://mamedev.emulab.it/etabeta/fast/files/012d.png) 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 
|
|
|
|
|
Joined: Apr 2004
Posts: 1,563 Likes: 12
Very Senior Member
|
|
Very Senior Member
Joined: Apr 2004
Posts: 1,563 Likes: 12 |
|
|
|
|
|
Joined: Mar 2001
Posts: 17,316 Likes: 280
Very Senior Member
|
|
Very Senior Member
Joined: Mar 2001
Posts: 17,316 Likes: 280 |
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
Very Senior Member
|
|
Very Senior Member
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.
|
|
|
|
1 members (nerd4gw),
1,004
guests, and
1
robot. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
Forums9
Topics9,399
Posts122,883
Members5,091
| |
Most Online3,327 Nov 10th, 2025
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|