mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support
-
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
@Ashpool - One other thought (sorry to make assumptions), was the target hardware is the Pi 4 or some similar low power device. I always assume RetroPie (thanks to their grace for an amazing piece of software) targets a niche demographic, well a pretty large one. Due to it's multi-faceted, multi-platform, arcade, console, DOS, porting, retro-gaming support all-in-one game--jack knife utility! Whew...they're gonna have to steal the Nethack slogan, "the devs thought of everything"...
Ok, You've got me there... I was still building up my reply to some former posts... but your wording here is somewhat in grip of what I was trying to express ;>
@Riverstorm Yup, that spreadsheet was new to me and a good resource added in my bookmarks ;) My intention instead was not based on a use case for a specific system/install, but instead somewhat more general - I am not interested in best performance/or whatsoever on a certain system, but instead I want(ed) to check the (min. version of emulator) for the most accurate emulation for now (even if that would mean that I cannot run it on a Pi 3/4, or even my desktop pcs, nor in current mame) available for that rom. As history has shown driver/emulation/color/graphic/whatsoever states within the listxml changed from greed to yellow or red and for some they still remain on ~not_good...
And here I noticed your reply whilst I was typing my answer... so shortcut: I am just a metadata hungry junky, I am not asking about a certain environment/system/whatsoever for a certain game... it is just my interest to get a personal mind map of what game/what system/what state to be played (if at all or wait) on what emulator/simulator/hardware and therefore the question where m2k3+ roms may be located... and sadly there are still many where I am not sure if any emulator will perform like the machine I played in my childhood (Indytemp, Astron Belt (ok, that is not MAME for now), etc.)...
-
@Ashpool - Ok that makes sense. One quick question. Are you saying the mame2003-plus DAT has incorrect metadata on the game status? If so I think the devs over on Github would find it useful. They try and keep the DAT correct and current and have done a decent job. If I read it wrong or if you meant "generally speaking" of DATs, disregard.
https://github.com/libretro/mame2003-plus-libretro
and sadly there are still many where I am not sure if any emulator will perform like the machine I played in my childhood (Indytemp, Astron Belt...
Sadly no game performs like nostalgia! ;)
-
@Ashpool said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
there are still many where I am not sure if any emulator will perform like the machine I played in my childhood
As said elsewhere, MAME2003+ is about performance/accuracy compromises.
Current MAME and FBNeo are more likely to be faithful to the original hardware if that's what you are specifically looking for. -
@barbudreadmon said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
As said elsewhere, MAME2003+ is about performance/accuracy compromises.
Current MAME and FBNeo are more likely to be faithful to the original hardware if that's what you are specifically looking for.@barbudreadmon - I don't know if you agree with that or just quoting but could you clarify a question if you do?
I always think mame2003+ is based on MAME 0.78 official code. A majority of the code and 95% of the ROMs are original. Why is mame2003+ less faithful than FBNeo? I know with the additions some are hacky to get them running and others backport seamlessly and seem to play perfectly but mostly it's original.
I would consider current MAME the benchmark and they always seem to be perpetually tweaking, adding, changing and improving drivers.
Does FBNeo follow the MAME in similar coding? Does it go back and add the updates and tweaks that MAME adds in every revision to stay current as to be lumped into the same class as official MAME or maybe FBNeo just does things better than official MAME?
I know of some very specific examples but beyond cherry picking examples and focusing on the bigger picture of 5,000+ ROMs. I basically load up ROMs in mame2003+ and just enjoy them and find they play reasonably well. I just don't see a big enough difference for a majority of games. There's some games in the mame2003+ that aren't in FBNeo and vice versa so I use both cores. On low spec hardware it's a winning combo (or trio if you count AdvMAME ;) for a majority of my needs.
When it comes to vector games I just prefer AdvMAME. I think it can fine tune the vector lines a bit better than mame2003+. I don't know if RP ever fixed AdvMAME (I think it was slow) but I found a commit prior, made some minor tweaks, loaded all my ROMs and made an image. That is mainly what I use when I play vector games.
I'm not trying to challenge you because I know what you do (I've opened an issue or two with broken games on Github and you/the group always get them fixed) but anyway I was hoping for a better understanding if there's a reasonably straight forward answer because every time you write something similar I ask myself why would that be true.
-
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
Why is mame2003+ less faithful than FBNeo?
FBNeo's goal is to be just as accurate as current MAME, and it's sometimes better, it'll rarely make compromises about accuracy. MAME2003+ is more performance oriented and usually won't include fixes that would have a major negative impact on performance.
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
Does FBNeo follow the MAME in similar coding?
It doesn't, FBNeo's framework has less overhead, hence why it's usually faster.
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
Does it go back and add the updates and tweaks that MAME adds in every revision to stay current
If an update is necessary and we are aware of it, and it goes both ways.
-
@barbudreadmon - Ah, ok, thanks for explaining. I wasn't aware FBNeo strove for accuracy as a fundamental. I know I always think of clones that's for sure. :)
I am a heavy m3plus user but I learned a few new things about FBNeo and know where you're coming from a bit better now when I read your posts.
I poke through the FBNeo code quite a bit and use some python scripts to pull info. and did notice it's definitely structured differently then MAME. I prefer it. Easier to work with.
I was curious in your DATs. Will ever add a display/video type to the status line like video type="raster" vs. "vector"? The information is very complete in the current status line except that one tidbit of info. It would make it accurate/complete. I think newer MAME DAT's contain it. ;)
I also noticed minor things like some tabs vs. spaces in the front of some lines, some resolution*2 on the resolution/ratio line in the drivers and some minor capitalization like Akatana vs akatana or Pinkswtsx vs pinkswtsx under the BurnDrv. I was going to open issue on Github but thought maybe some this stuff is intentional and/or minor things like that are not really what you like to focus on.
Regardless have a great evening and thanks again for the additional info on FBNeo. It's a great core and your time and effort spent improving it is very much appreciated!
-
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
I wasn't aware FBNeo strove for accuracy as a fundamental.
With some freedom, some things wouldn't be accepted in MAME, like improvements over the original game, or fixing a game through an approach which is more HLE than LLE, or using speedhacks that won't change the game in any known way, hence why we often say we have a "playability" focus.
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
maybe FBNeo just does things better than official MAME?
I wouldn't say that, MAME is focused on preservation and is doing that job perfectly. Without their detailled information a lot of emulators (like ours) would struggle improving things.
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
I prefer it. Easier to work with.
Me too, MAME has too much abstraction, it became very hard to read their code.
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
Will ever add a display/video type to the status line like video type="raster" vs. "vector"?
Hmm that information isn't available right now without launching the actual game, which is why i omitted it when i added the line about game geometry. Is it very important to have it ?
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
minor things like that are not really what you like to focus on.
Indeed, don't bother reporting issues for this :), drivers are cleaned up from time to time anyway.
-
@barbudreadmon - That's great information. I figured the core developers are the best folks to direct that question at because...well, they develop them! :) I definitely have a different point of view about FBNeo. Thanks!
As for the geometry information it helps create shaders for Libretro cores. Basically it was a project Dankcushions started several years ago. Over this past year or so I corrected several things, added a few features like pulling horizontal or vertical games only, argparse() input (every parameter has a default and you can run the script with no parameters), restructured the output and basically added in all the Libretro cores that RetroPie supports to create shaders.
All official MAME DAT's have the same geometry so it's easy to extract all the info and create a shader. Raster vs. vertical is used in the fact vector games don't use shaders so discard that game, in regards to shaders.
Sorry long story short is the FBNeo doesn't contain that one piece of info. so basically I have to read the DAT and extract every game ROM name, then open every driver file searching for information related to the game and build a shader file.
It works flawlessly but it takes time as I read one game then it loops through every driver file. After it finds it and writes a shader file (or not), it reads the next game and starts over. If the game is a (or not) found I write out to different files on the status, like what info. is missing. I think some drivers for example like Dig Dug, Galaga, Xevious drivers are setup a little differently and not in the BurnDrv(gameName) format.
Speaking overall FBNeo code is very clean and consistent which makes it much--much easier to work with. I do have to use regex to get around some of the anomolies like space vs. tab or capitalization etc.
With mame2003, mame2003+, mame2010, mame2015, mame2016 they are super fast because complete geometry info. is contained in the DAT but FBNeo is missing that one piece of info. hence the long way.
I don't know when the geometry info. was added to FBNeo (or maybe it's been there for years) but I don't think it was all there, I'm not 100% sure. Then one day I was like shoot everything is here but the display type...I wasn't sure if it was easy to add as it's useful for other projects, as well as, set building. For me DAT's are my holy grail path to building a proper set. I'm a hard core DAT user. Sorry that was a bit long.
-
@barbudreadmon - The other piece is FBNeo is the most actively developed (in regards to adding new games) followed by mame2003+ so I need to run it regularly to keep those two cores shader files up to date.
-
Another new playable one......
Fantasy Zone II The Tears Of Opa Opa (Sega System C Version)
-
@arcadez2003 said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
Another new playable one......
Fantasy Zone II The Tears Of Opa Opa (Sega System C Version)
Awesome, thanks! Confirmed working. On FBNeo it is too demanding for my ancient Pi 3B+, so this is great news. Will high score saving be implemented as well? (doesn't seem to save scores right now for me)
-
@WeirdH said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
@arcadez2003 said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
Another new playable one......
Fantasy Zone II The Tears Of Opa Opa (Sega System C Version)
Awesome, thanks! Confirmed working. On FBNeo it is too demanding for my ancient Pi 3B+, so this is great news. Will high score saving be implemented as well? (doesn't seem to save scores right now for me)
It hangs off the same code as all the other Sega System 16 games it should save if they do.?? and equally if they dont save then neither
will this one :) -
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
As for the geometry information it helps create shaders for Libretro cores. Basically it was a project Dankcushions started several years ago. Over this past year or so I corrected several things, added a few features like pulling horizontal or vertical games only, argparse() input (every parameter has a default and you can run the script with no parameters), restructured the output and basically added in all the Libretro cores that RetroPie supports to create shaders.
Wow! that sounds great! Is this a public repository that could be shared? Or maybe just the updated resolution_db files for the different libreto cores so that generated shaders can cover the latest additions?
Thanks!
-
@arcadez2003 Just tested with Alien Syndrome and that DOES save scores. Do I need a newer hiscore.dat or something else externally for Fantasy Zone 2?
EDIT: First Fantasy Zone also saves correctly, btw.
-
@janderclander14 said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
Wow! that sounds great! Is this a public repository that could be shared? Or maybe just the updated resolution_db files for the different libreto cores so that generated shaders can cover the latest additions?
Yes, you're more than welcome. You can find it here. mame2015 and mame2016 are exponentially larger so I tried to clean them up a bit. I removed entries by driver. For example any entry tagged with xbox, xerox820, zaurus, etc. are skipped. I can also add back any that are erroneously removed etc. Basically it's a work in progress.
fba2012 is still supported in RetroPie but it's list is not 100% accurate. I used the DAT supplied in the RetroPie docs and then did some manual cleanup. If an accurate list of games that are supported in the build ever popups I can easily build the database.
For the most part they should be accurate and current. mame2003+ and FBNeo are the two that are updated with new games regularly. I updated them last week.
-
@janderclander14 - Also the resolution_db files are sorted alphabetically. I find it easier to search for games that way.
There are some bat files with different parameters to see some good examples of using it. Every value has a default, the only required value is the core, such as 2003plus = mame2003+. You can take a look, it's all documented.
-
@Riverstorm Great, thanks! The coverage difference with respect to the older version is massive.
-
@janderclander14 - Yeah, I was on a roll and decided to add them all!
-
A couple more Sega games which can now be played using MAME2003+
Bullet
Cotton
-
Another Sega System 16 game which can now be played in MAME2003+
Action Fighter
Sega's take on Spy Hunter i suppose not a bad wee game though
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.