libretro / mame2003-plus-libretro

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements
Other
189 stars 108 forks source link

WIP - Compatibility Table (dat magic) #963

Closed mahoneyt944 closed 3 years ago

mahoneyt944 commented 3 years ago

I've decided it would be beneficial to create a compatibility table for our supported roms list since most are not reliable to say the least.

While this list will never be perfect. My goal is to create a table that can give us a general idea of where a rom stands in the core. In order to keep this list from becoming quickly outdated I want to pull this data from a reliable source, our very own DAT file. We can easily find out the driver status, color, sound, samples, and bios files from this source. Since this will be generated from the latest dat file each time it should be relatively up to date. This will also flush out incorrectly labeled roms hiding in our drivers with users feed back.

Eventually it would be nice to add a notes section for each rom and users can submit a PR to add these notes. Since these will be approved from the mame2003-plus team we can weed out bad notations and correctly label directives if required for a rom to be played. This will hopefully get the mame2003-plus user base more active with the development team.

This table will be available from this repository eventually. I quickly threw together a "proof of concept" example. I'll include these files here for anyone who wants to play with it.

The included html file is not accurate. This is just to show an example of what it might look like. The final product will be generated from a provided xml file.

Also included is a quick batch file I made to skim the xml dat. I won't be using this to make the final product but it was useful for generating quick lists from the dat.

compatibilty.zip

Wilstorm commented 3 years ago

@mahoneyt944 - Sounds good, I like that it's one click vs. two into the properties -> Checksum. I haven't bought a new PC in years. I usually research the parts, buy all of them from Newegg or wherever, wait for everything to arrive and build it.

We buy a lot of HP and Dell here but we use custom images with all the software installed and then do a network deployment of the image. It's pretty slick.

I've put some serious thought into buying like an Alienware once just so I can buy it and go! Having everything working and tested from the get go with a set of reinstall disks or a reinstall partition would be perfect. I really dislike tracking down 25 drivers to correct all the device manager errors after a new install.

mahoneyt944 commented 3 years ago

@Wilstorm haven't looked into the sha1 menu yet. But I will.

I have the first beta compatibility table hosted from my personal github, this is still a wip so it's not the complete official version yet... After talking to the libretro team, we are going to setup a compatibility repo for all cores to use. This will build compatibility tables then host them somewhere for the public to view live.

At first this will be limited to mame2003, mame2003-plus, mame2010, mame2015 as well as any other mame once it's been tested for compatibility with dat magic. So far I have modified dat magic for compatibility and tested the above cores with success.

Here's the link to my repo with the beta table https://mahoneyt944.github.io/datmagic/

Wilstorm commented 3 years ago

@mahoneyt944 - That’s nice! I’m not sure if you planned it that way, but it’s very nicely formatted on my phone. There’s a few games that I wasn’t aware of that I’m gonna have to throw in my set up now.

Funny thing is is I was looking at some of them other core DATs and all them would be super easy to make shader cfgs for retropie. Instead of vertical and horizontal the list has rotate at 0, 90, 180, and 270. Which will be easy to translate. I could do all those quickly. The newer cores probably need a PC as the Pi isn’t quite there though.

The one that doesn’t have the info is mame2000. Is it hard to add the line that has that information like plus has or not worth the hassle? It’s basically one line that has the resolution, orientation, raster or vector and aspect ratio.

It’s a shame for FBNeo as I see no easy way to set up that DAT with the correct information. It’s a popular core for sure but I guess you can’t win them all.

mahoneyt944 commented 3 years ago

I haven't looked into the dat from mame2000. Does the core have a generate xml option? My first impression is if generating a dat is possible from 2000, anything could be added, But if they are hand written dats I'd have to port it all over which is more than I would want to do. From old commits it looks like mark had his hands in a lot of the mame cores dats and generation of. I'm not sure if that's the case with 2000 or not.

Wilstorm commented 3 years ago

@mahoneyt944 - Ok, not a big deal at all or worth the lock, stock and barrel. It’s based off of 0.37b5 (basically mame4all if you’ve heard of it—started by squid). I thought if it was easy to port the DAT info. for that Libreto core too. I think Grant lead the charge for most things DAT related. The generated DAT has always been in my top 5 list of 😎-est features! I’ve got info for the best core (m3plus) regardless! :)

Wilstorm commented 3 years ago

@mahoneyt944 - I was looking through the aspect ratio's and these 3 games seem like they might be wrong or at least worth taking a look. They have an aspect ratio close to 4:5. aspectx = 896 and aspecty = 1056.

House Mannequin (Japan 870217) House Mannequin Roppongi Live hen (Japan 870418) Bijokko Yume Monogatari (Japan 870925)

mahoneyt944 commented 3 years ago

@Wilstorm well, the dat gets these from what's currently being used by the driver. Though it is possible the driver is wrong. I guess we could compare it with other dat files?

mahoneyt944 commented 3 years ago

Ok so I loaded this game I think this is why it seems wrong. It displays the layer below the main screen. housemnq-210119-183511

Wilstorm commented 3 years ago

From what I can tell it's a multi-monitor game. Hence the strange aspect ratio?

Wilstorm commented 3 years ago

@mahoneyt944 - Not a big deal but it made me curious so I did some poking. I made a small Python script to pull any games that didn't have 3:4 or 4:3 aspect ratios and came up with 118 total. There are some worthy games in there.

I don't know if they are multi-monitor or very wide screen so there might be some messed graphics possibly. I would assume the 8:3 and 12:3 would be 2 or 3 monitors across horizontally or they were making very wide monitors back in the day. The 4:6 seem like it would have to be two monitors stacked vertically.

For those games that are 896:1056 ratios I have no clue what the hell they were doing.

I have no idea how multi-monitor games display on a single screen.

Here's the list if it's of any use. It's a basic list and nothing fancy as it was quick and dirty.

Game Name = housemnq | Aspect Ratio 896:1056
Game Name = housemn2 | Aspect Ratio 896:1056
Game Name = bijokkoy | Aspect Ratio 896:1056
Game Name = bijokkog | Aspect Ratio 896:1056
Game Name = punchout | Aspect Ratio 4:6
Game Name = spnchout | Aspect Ratio 4:6
Game Name = spnchotj | Aspect Ratio 4:6
Game Name = armwrest | Aspect Ratio 4:6
Game Name = pc_tenis | Aspect Ratio 4:6
Game Name = pc_mario | Aspect Ratio 4:6
Game Name = pc_bball | Aspect Ratio 4:6
Game Name = pc_bfght | Aspect Ratio 4:6
Game Name = pc_ebike | Aspect Ratio 4:6
Game Name = pc_golf | Aspect Ratio 4:6
Game Name = pc_kngfu | Aspect Ratio 4:6
Game Name = pc_1942 | Aspect Ratio 4:6
Game Name = pc_smb | Aspect Ratio 4:6
Game Name = pc_vball | Aspect Ratio 4:6
Game Name = pc_duckh | Aspect Ratio 4:6
Game Name = pc_hgaly | Aspect Ratio 4:6
Game Name = pc_wgnmn | Aspect Ratio 4:6
Game Name = pc_grdus | Aspect Ratio 4:6
Game Name = pc_grdue | Aspect Ratio 4:6
Game Name = pc_tkfld | Aspect Ratio 4:6
Game Name = pc_pwrst | Aspect Ratio 4:6
Game Name = pc_trjan | Aspect Ratio 4:6
Game Name = pc_cvnia | Aspect Ratio 4:6
Game Name = pc_dbldr | Aspect Ratio 4:6
Game Name = pc_rnatk | Aspect Ratio 4:6
Game Name = pc_rygar | Aspect Ratio 4:6
Game Name = pc_cntra | Aspect Ratio 4:6
Game Name = pc_goons | Aspect Ratio 4:6
Game Name = pc_mtoid | Aspect Ratio 4:6
Game Name = pc_radrc | Aspect Ratio 4:6
Game Name = pc_miket | Aspect Ratio 4:6
Game Name = pc_rcpam | Aspect Ratio 4:6
Game Name = pc_ngaid | Aspect Ratio 4:6
Game Name = pc_tmnt | Aspect Ratio 4:6
Game Name = pc_ftqst | Aspect Ratio 4:6
Game Name = pc_bstar | Aspect Ratio 4:6
Game Name = pc_tbowl | Aspect Ratio 4:6
Game Name = pc_drmro | Aspect Ratio 4:6
Game Name = pc_ynoid | Aspect Ratio 4:6
Game Name = pc_rrngr | Aspect Ratio 4:6
Game Name = pc_ddrgn | Aspect Ratio 4:6
Game Name = pc_gntlt | Aspect Ratio 4:6
Game Name = pc_smb2 | Aspect Ratio 4:6
Game Name = pc_smb3 | Aspect Ratio 4:6
Game Name = pc_mman3 | Aspect Ratio 4:6
Game Name = pc_radr2 | Aspect Ratio 4:6
Game Name = pc_suprc | Aspect Ratio 4:6
Game Name = pc_tmnt2 | Aspect Ratio 4:6
Game Name = pc_wcup | Aspect Ratio 4:6
Game Name = pc_ngai2 | Aspect Ratio 4:6
Game Name = pc_ngai3 | Aspect Ratio 4:6
Game Name = pc_pwbld | Aspect Ratio 4:6
Game Name = pc_rkats | Aspect Ratio 4:6
Game Name = pc_pinbt | Aspect Ratio 4:6
Game Name = pc_cshwk | Aspect Ratio 4:6
Game Name = pc_sjetm | Aspect Ratio 4:6
Game Name = pc_moglf | Aspect Ratio 4:6
Game Name = vstennis | Aspect Ratio 8:3
Game Name = wrecking | Aspect Ratio 8:3
Game Name = balonfgt | Aspect Ratio 8:3
Game Name = vsmahjng | Aspect Ratio 8:3
Game Name = vsbball | Aspect Ratio 8:3
Game Name = vsbballj | Aspect Ratio 8:3
Game Name = vsbbalja | Aspect Ratio 8:3
Game Name = iceclmrj | Aspect Ratio 8:3
Game Name = vsbbaljb | Aspect Ratio 8:3
Game Name = darius | Aspect Ratio 12:3
Game Name = dariusj | Aspect Ratio 12:3
Game Name = dariuso | Aspect Ratio 12:3
Game Name = dariuse | Aspect Ratio 12:3
Game Name = ninjaw | Aspect Ratio 12:3
Game Name = ninjawj | Aspect Ratio 12:3
Game Name = darius2 | Aspect Ratio 12:3
Game Name = darius2d | Aspect Ratio 8:3
Game Name = drius2do | Aspect Ratio 8:3
Game Name = warriorb | Aspect Ratio 8:3
Game Name = mt_beast | Aspect Ratio 4:6
Game Name = mt_shar2 | Aspect Ratio 4:6
Game Name = mt_stbld | Aspect Ratio 4:6
Game Name = mt_ggolf | Aspect Ratio 4:6
Game Name = mt_gsocr | Aspect Ratio 4:6
Game Name = mt_shnbi | Aspect Ratio 4:6
Game Name = mt_aftrb | Aspect Ratio 4:6
Game Name = mt_tfor2 | Aspect Ratio 4:6
Game Name = mt_astro | Aspect Ratio 4:6
Game Name = mt_lastb | Aspect Ratio 4:6
Game Name = mt_wcsoc | Aspect Ratio 4:6
Game Name = mt_tetri | Aspect Ratio 4:6
Game Name = mt_gng | Aspect Ratio 4:6
Game Name = mt_gaxe | Aspect Ratio 4:6
Game Name = mt_mystd | Aspect Ratio 4:6
Game Name = mt_revsh | Aspect Ratio 4:6
Game Name = mt_parlg | Aspect Ratio 4:6
Game Name = mt_tgolf | Aspect Ratio 4:6
Game Name = mt_tlbba | Aspect Ratio 4:6
Game Name = mt_eswat | Aspect Ratio 4:6
Game Name = mt_smgp | Aspect Ratio 4:6
Game Name = mt_mwalk | Aspect Ratio 4:6
Game Name = mt_bbros | Aspect Ratio 4:6
Game Name = mt_sonic | Aspect Ratio 4:6
Game Name = mt_fshrk | Aspect Ratio 4:6
Game Name = mt_gaxe2 | Aspect Ratio 4:6
Game Name = mt_kcham | Aspect Ratio 4:6
Game Name = backfire | Aspect Ratio 8:3
Game Name = tbowl | Aspect Ratio 8:3
Game Name = tbowlj | Aspect Ratio 8:3
Game Name = xmen6p | Aspect Ratio 8:3
Game Name = xmen6pu | Aspect Ratio 8:3
Game Name = subs | Aspect Ratio 8:3
Game Name = cyberbal | Aspect Ratio 8:3
Game Name = cyberba2 | Aspect Ratio 8:3
Game Name = cyberbap | Aspect Ratio 8:3
Game Name = cyberbt | Aspect Ratio 8:3
Game Name = cyberbt1 | Aspect Ratio 8:3

Total games with odd aspect ratios = 118
mahoneyt944 commented 3 years ago

I'd say 8:3 is going to be two 4:3 screens side by side and 4:6 is going to be two 4:3 screens top and bottom. Some maybe just odd sizes though.

Wilstorm commented 3 years ago

I'd say 8:3 is going to be two 4:3 screens side by side and 4:6 is going to be two 4:3 screens top and bottom. Some maybe just odd sizes though.

Yeah that's what I just wrote above! ;)

You're basically doubling or tripling the x or y axis depending on which way they extend.

I'll load a few and see how they display like Punchout, Super Punchout, Tecmo Bowl, The Ninja Warriors and I also see that xmen6p recently fixed in the list too. There are several staple games in the list.

mahoneyt944 commented 3 years ago

I know this is true for xmen6p and punchout because I play those lol.

Wilstorm commented 3 years ago

I suppose it makes sense that some great games are in that list as they probably wouldn't do multi-monitor setups on swill! :)

mahoneyt944 commented 3 years ago

we now have this being automatically built by CI. Adding more cores as well.

https://buildbot.libretro.com/compatibility_lists/

Wilstorm commented 3 years ago

@mahoneyt944 - Nice job on the whole project and putting it all together, I think it's going to be very useful!

mahoneyt944 commented 3 years ago

This project is now being maintained in its official repo

https://github.com/libretro/core-compatibility

Future discussions will be held there.