Author Topic: Error generating MAME romlist: std::out_of_range  (Read 5590 times)

filler

  • Newbie
  • *
  • Posts: 3
    • View Profile
Error generating MAME romlist: std::out_of_range
« on: November 03, 2015, 10:24:15 AM »
Hi all,

For reference I'm running Debian 8 (Jessie) and using MAME 0.167, and Attract-Mode 1.6.0 on a Dell Optiplex 780, though the details of the CPU/RAM escape me at the moment.

I keep running into an issue generating my MAME romlist from within the Attract Mode GUI. It'll get to about 10% of the way through all 28,000-ish rom files before exiting to the terminal with the following output:

Quote

$ attract
Starting Attract-Mode 1.6.0 (Linux)
Config: /home/arcade/.attract/attract.cfg
*** Generating Collection/Rom List
 - Found 28738 files.
 - Obtaining -listxml info... 10%terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::substr: __pos (which is 155487840) > this->size() (which is 103)
Aborted

I've tried using the command line to generate the romlist, and it seems to complete successfully:

Quote

$ attract -b mame
*** Generating Collection/Rom List
 - Found 28738 files.
 - Obtaining -listxml info... 99%
 - Discarded 85 entries based on xml info: 3dobios acpsx airlbios aleck64 alg_bios allied ar_bios aristmk5 aristmk6 atarisy1 atluspsx atpsx awbios bubsys cdibios chihiro cpzn1 cpzn2 crysbios decocass f355bios galgbios gp_110 gq863 gts1 gts1s hikaru hng64 hod2bios isgsm iteagle konamigv konamigx kviper lindbios macsbios maxaflex megaplay megatech mk6nsw11 naomi naomi2 naomigd neogeo nss pgm playch10 psarc95 pyson sammymdl sfcbox shtzone skns stvbios su2000 sys246 sys256 sys573 taitofx1 taitogn taitotz tourvis tps triforce v4bios vspsx mie qsound saa5050 bsmt2000 ldv1000 namco51 namco50 namco52 namco54 pr8210 midssio tms32032 tms32031 simutrek namco53 22vp931 namco62 ym2608 m50458
[Import /home/arcade/.mame/catver.ini] - found info for 7266 entries.
 - Removing any duplicate entries...
 + Writing 28653 entries to: /home/arcade/.attract/romlists/mame.txt

But then running Attract Mode and attempting view the launch screen/picker view results in the following (rather unhelpful) message:

Quote

$ attract
Starting Attract-Mode 1.6.0 (Linux)
Config: /home/arcade/.attract/attract.cfg
Segmentation fault

I have successfully completed the romlist generation within the application with a very small subset of roms, but attempting to find the offender(s) through trial-and-error will take a very long time and would rather instead attempt to find a more systematic approach.

Any direction would be greatly appreciated.

Thanks!

akafox

  • Hero Member
  • *****
  • Posts: 985
    • View Profile
Re: Error generating MAME romlist: std::out_of_range
« Reply #1 on: November 05, 2015, 08:08:04 PM »
After failing on making your first list delete the list manually. Also you can use romlister to make a batch file to remove games that you do not want...thus making your list shorter.
People want life easy..then complain about it

filler

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Error generating MAME romlist: std::out_of_range
« Reply #2 on: November 06, 2015, 11:55:28 AM »
Thanks for the response. I have more or less decided to go the ROMLister route since there's no way I want all 28k games in my list anyway.

I just wasn't sure if there would be interest in figuring out which title was generating the error since it could easily happen again to someone else, and it's causing an application crash from an unhandled exception.

It'd be cool if I could spit out some debug information to help figure out which rom was causing it--which I suppose I could do, since the source is on GitHub. I may do that, just as an informational exercise. If I do, I'll post my results here.

mondaiji

  • Full Member
  • ***
  • Posts: 46
    • View Profile
Re: Error generating MAME romlist: std::out_of_range
« Reply #3 on: November 06, 2015, 01:18:19 PM »
Just our of curiosity did you audit your mame rom set (clrmamepro,romvault)? Perhaps there is a fix that will lead you to the rom that is the culprit.

filler

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Error generating MAME romlist: std::out_of_range
« Reply #4 on: November 06, 2015, 01:52:48 PM »
Not sure what you mean by "audit," unless you're suggesting I review the source of my roms to see if there's an updated version of the list? In that case, no, I haven't done anything like that, but I'll look into it.

edit: I looked up clrmamepro. I haven't done anything with that, but I'll check it out. Maybe it'll provide some insight. Thanks for the tip!

I was able to spit out each rom name as the rom list generator processed them, and the offending rom appears to be "d9final." I haven't ever really written any C++ before, so I'm on pretty unfamiliar ground here. I get a segmentation fault when calling


(*itr).get_info( FeRomInfo::Romname )


...on that d9final entry. I was hoping to dig into that "get_info" method call, but I don't think I know enough about C++ to know how that works.

In any case, there doesn't seem to be anything remarkable about its XML entry outside of it being the first entry with a D.
« Last Edit: November 06, 2015, 02:40:59 PM by filler »

akafox

  • Hero Member
  • *****
  • Posts: 985
    • View Profile
Re: Error generating MAME romlist: std::out_of_range
« Reply #5 on: November 06, 2015, 10:56:20 PM »
People want life easy..then complain about it