mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support
-
@markwkidd is there a list of games that use the OST samples? or do all MK games and all FF and all Outrun and all NBA Jam games use these samples?
-
@robertvb83 said in mame2003-plus: 250 new games, new input system, new features, new bugs:
@markwkidd is there a list of games that use the OST samples? or do all MK games and all FF and all Outrun and all NBA Jam games use these samples?
I don't have a list yet -- although in regards to the samples I am still playing catch-up with @Riverstorm who has been tracking this more closely than me.
-
@robertvb83 - You only need the parent. All the clones use the parent samples in this scenario. So you shouldn't need to duplicate or link any samples. If you do (duplicating) you're going to have a few gigabyte in samples vs about 285MB.
Once complete you should have 4 samples in your directory. ffight.zip, mk.zip, nbajam.zip and outrun.zip. If these 4 samples have the correct ROMs it should correct all ClrMamePro errors.
I was able to only find the 8-bit mono for ffight.zip. I think this was done for size reasons as the samples are 60MB. So I a missing all track02-02, track03-02, track04-02, etc. There is no track01-02 for some reason it starts with track02-02. These tracks would allow for 8-bit mono-stereo mix pack.
The thing with samples is there's no hash so we have no way to know for sure what we are using unless you can find the original 3 sample packs (for ffight only):
8-bit mono 8-bit mono/stereo mix 8-bit mono/stereo mix (non-usb mod)
I think Big Blue Frontend adapted the original for 0.185 and then gpstar backported them to mame2003 and KMFDManic packaged it all up nice and neat.
Remember audio plays fine without the samples as it has for years and will fall back to the original (ROM based) audio when the new OST samples are not present.
I believe this list is pretty through for the games that use these samples.
fight - Final Fight (World) ffightu - Final Fight (US 900112) ffightj - Final Fight (Japan set 1) ffightj1 - Final Fight (Japan set 2) mk4 - Mortal Kombat (rev 5.0 T-Unit 03/19/93) mkr4 - Mortal Kombat (rev 4.0 T-Unit 02/11/93) mk1a4 - Mortal Kombat (rev 4.0 09/28/92) mk1a3 - Mortal Kombat (rev 3.0 08/31/92) mk1a2 - Mortal Kombat (rev 2.0 08/18/92) mkla1 - Mortal Kombat (rev 1.0 08/08/92) mkprot9 - Mortal Kombat (rev 4.0 T-Unit 02/11/93) nbajam - NBA Jam (rev 3.01 04/07/93) nbajamr2 - NBA Jam (rev 2.00 02/10/93) outrun - Out Run (set 1) outruna - Out Run (set 2) outrunb - Out Run (set 3) toutrun - Turbo Outrun (set 1) toutruna - Turbo Outrun (set 2)
-
Here's some interesting information on the ffight samples. That might explain it better.
The audio formats that mame2003 will handle is as follows:
8-bit mono wav
16-bit mono wavThe Soundtrack can be run a few different ways! These include 8-bit mono,
8-bit mono-stereo non-usb host, and 8-bit mono-stereo mix.To recreate a stereo effect of the original music, i extracted the sega cd
music, opened up each track, split the stereo channels separate, and convert
each channel to a mono track and save them out. If you take a look inside
the ffight.zip samples you will see track02-01.wav and track02-02.wav.
01 is the left channel converted to mono, and track02-02.wav is the right
channel converted to mono. The updated cps code will play back both files
together, and mixes the track02-01.wav into the left speaker and
track02-02.wav into the right speaker, thus simulating the original
stereo track.I also built in hooks, so if only one of the 2 channels play, it will
default the playing one into both speakers, it'll be a mono effect but
it'll still work, and is another option for people to cut down on file
size. So for example if in the ffight.zip, track02-02.wav is missing,
the cps system will play track02-01 into both speakers. Or if
track02-01.wav is missing, it will play track02-02.wav into both speakers.You can run without ALL of them. But, if you decide to remove any...due to
space limitations, remove from 26 and go backwards. if track02-01.wav and
track02-02.wav are missing, the system will fall back and default to the
original music from the game! Keep that in mind. If installing samples via
Hakchi2, invalid kernel size may trigger if too big! So, you will have to
either cut some of the files out, or use FTP to transfer them. USB-HOST
will not have any issue running the Full Soundtrack, since there is no
kernel size limit, other than internal NAND Flash Memory Limit, in installing
HMODS using hakchi/transfer folder! -
I must say that in the year 2018 I am personally not a fan of this approach of having variations on the samples with different audio quality levels but the function is there. It's already complicated enough without mono options or cutting out some of the songs. Oh well! Not my code :)
-
@riverstorm wow thanks for clarifying! this is great news acutally and i think this is how it should be! only one sample.zip for all the versions. and its nice that all the versions can use the cd quality samples.
i am also missing the second channel files for ffight.zip.
@markwkidd i hear you man! it is sometimes insanly overly complicated. normal people who just want to play will just give up on trying to get a working romset i am afraid...
-
I agree I am a bit of purist but it's nice to have options as he made things quite flexible. If you can live with the sample errors in ClrMamePro it works great without them too. It drives some folks crazy seeing set errors! ;)
@robertvb83 - I think in time the right channel will surface somewhere to see if we can hear the difference between mono and simulated-stereo.
@markwkidd - We have a long weekend coming for the holiday and we have plans to go out of town but I hope to get a chance to do some more Unibios testing toward the end of the weekend. I built the set last night and I am going to merge the FBA BIOS also. Thanks for the new BIOS options, it's some good stuff. :)
-
@riverstorm said in mame2003-plus: 250 new games, new input system, new features, new bugs:
agree I am a bit of purist but it's nice to have options as he made things quite flexible. If you can live with the sample errors in ClrMamePro it works great without them too. It drives some folks crazy seeing set errors! ;)
@robertvb83 - I think in time the right channel will surface somewhere to see if we can hear the difference between mono and simulated-stereo.I think I probably should add a core option to toggle the CD soundtrack samples, so when you are playing Outrun you can select whether to use the original music or the CD tracks. TODO added!
-
A considerable amount of the time that I put into working on the core is spent on learning, documenting, improving, and sometimes adding to the internal "systems" that provide the basic functionality of the core. Some examples of what I mean by systems are the hiscore functions, file loading and paths, input (re)mapping, core options, etc.
Today's update to the input system falls under this heading. I'll get back to that.
As of this week we now have preliminary support for making core options and control systems behave in ways customized to the game that is being played. (FBA is famous for having similar functionality.)
This new freedom allowed me to set the Neo Geo BIOS core option to display and be available only when Neo Geo games are being played. That core option implementation is a prototype which will eventually let us do things like only display vector-related core options when vector games are loaded, only display the DCS Speedhack option for games that support the speedhack, etc.
Bringing me back to today's minor update. As a proof-of-concept and with some help from radius, one of the RetroArch developers, I've added custom control labels for Neo Geo games and Street Fighter 2 and its clones. This means that when you are looking at the Controller remapping options for those titles, you will see something like
BTN 1: Neo Geo A
orBTN 2: Weak Punch
where before you would have just seenButton 1
andButton 2
.There is still a fair amount of work needed to get new systems in place that would make it practical to create these content-specific control labels on a large scale, but having these two implemented means that as I'm working on the new code I can always be sure that my changes are compatible with the custom labels.
In conclusion, the last couple of days have not been producing any more cool screenshots or new games added but there is plenty of fun stuff rolling forward towards implementation.
-
@markwkidd this is so f****** awesome! this would be a very big step for user friendly control adjustment. it would make game specific configuration so much easier. Does this work together well with the new input system of latest RA?
to be honest at the moment this is the main reason for me to prefer fbalpha and only use mame2003-plus for games not working in fba.
Is there a basis like a database or xml-file containing that information that you can use for information exchange with the core?
another thing: you have built this new input schemes in mame2003-plus where we can chose from 3 different input types (modern/SNES/classic). This is cool, but I think it still needs improvement. Changing this option is always global but there are games fitting better to different input types even if you always control with your joystick control pad. Chances are good that you only have to change the control scheme and everything is setup right. so when switching between different games I always need to switch to the corresponding scheme and change it again for another game...
For me it would make more sense if the change of this option behaves the same like button input changes only per game (without saving a game options file). Games for which this option has not specifically been changed can still use the global value in main core-options.cfg
second: could you make this option per player? because many people use 2 arcadesticks and 2 usb controllers (snes) for 4player games. would be great to allow input scheme per player depending of the players actual controller.
-
@robertvb83 said in mame2003-plus: 250 new games, new input system, new features, new bugs:
@markwkidd this is so f****** awesome! this would be a very big step for user friendly control adjustment. it would make game specific configuration so much easier. Does this work together well with the new input system of latest RA?
The button naming feature is focused on on how the core communicates to the frontend (RetroArch in this case). Once the frontend has the name for a control, whether its generic like
Button 1
or specific likeBTN1: Neo Geo A
that name should be used consistently for that control throughout the frontend.The short answer is yes, it should dovetail with the new RA button remapping and all other frontend features. If it doesn't I would like to know, please!
For me it would make more sense if the change of this option behaves the same like button input changes only per game (without saving a game options file). Games for which this option has not specifically been changed can still use the global value in main core-options.cfg
second: could you make this option per player? because many people use 2 arcadesticks and 2 usb controllers (snes) for 4player games. would be great to allow input scheme per player depending of the players actual controller.
The second thing you're asking, per-player setting per-player controller types, is something I'm working to to by adapting dankcushion's code with advice from radius.
I believe that once per-player controller types is implemented that may inherently work like your first question, that changing the controller type changes per game without saving a game options file. I'm not as sure about that answer, so you might want to ask it again if and when the new controller type code is workin.
-
@markwkidd
Can't remember if I already asked this and I absolutely don't want to abuse your kindness (your're making already so much good stuff) but, as you're working on backdrop support... is there any possibility to implement also "LED" support? I mean emulating physical leds ,that were lit on some games' marquee or bezel, thru activation of "led on" specific graphic overlays.According to Mr Do:
"Games that support lamps or LEDs are a little trickier, as additional programming in the driver for that game is also necessary. Some games that now have these features didn't have them added until after 0.107. For any of these games, whichever version of MAME that was out the day the artwork was last updated fully supports that artwork (e.g. Seawolf is fully working in any version of MAME released since 2007-01-28)."
I fear that this functionality also requires support for the newer .LAY overlay format that seems not possible backport to mame2003. -
@udb23 said in mame2003-plus: 250 new games, new input system, new features, new bugs:
Can't remember if I already asked this and I absolutely don't want to abuse your kindness (your're making already so much good stuff) but, as you're working on backdrop support... is there any possibility to implement also "LED" support? I mean emulating physical leds ,that were lit on some games' marquee or bezel, thru activation of "led on" specific graphic overlays.
I don't think we've talked about this before. I don't know anything about the LEDs -- I agree the text on the Mr. Do site is not encouraging but this will need to be researched. Could you create a github issue so that someone can look into it?
-
@markwkidd Will check for more docs on this topic and then open the issue. In this way you'll have more info already available.
-
@udb23 said in mame2003-plus: 250 new games, new input system, new features, new bugs:
@markwkidd Will check for more docs on this topic and then open the issue. In this way you'll have more info already available.
That is what I love to hear! Thank you
Edit: New Backport! Lethal Enforcers
arcadez has just filled a backport request that I think many people will find interesting. The DAT on github isn't updated yet but in the meantime you can generate your own DAT or just try the mame 0.139 romset for this game, which is what I'll be doing soon!
-
@robertvb83 I spoke too soon yesterday about when I would finish an implementation of the "fancy" button naming system that would be viable long-term and at full scale.
I found that I could not seem to make headway on my other input project without the naming system squared away. Sooo I went ahead and refactored everything for the third time. Now I think it's ready for mass production.
Would you -- or anyone else -- be interested in taking a role in testing this and helping submit a few more sets of button names to make sure everything is indeed working?
Right now the button names still only appear in Neo Geo and Street Fighter 2 & clones.
Adding new button names
In anticipation of eventually opening this up to users to submit button names I have written a doc outlining what information is necessary to add button names. It's not too onerous: https://github.com/libretro/mame2003-plus-libretro/wiki/Submitting-Button-Names
For people who know how to submit PRs on github or are willing to learn, it's also not very difficult IMO to add code for button names yourself now.
-
@markwkidd what do you mean in the wiki
Naming standard
The standard we use for determining the proper text to use for the name is to refer to current MAME. That is considered the canonical reference.For example the button names for Street Fighter 2 would be submitted as:
BUTTON1: "Jab Punch"
BUTTON2: "Strong Punch"
BUTTON3: "Fierce Punch"
BUTTON4: "Short Kick"
BUTTON5: "Forward Kick"
BUTTON6: "Roundhouse Kick"Where do i get this information about the naming standard?
i just made a PR with an example for stonebal. is this like you indended this to be submitted? or is there a better way. i never did this before so it might look strange to you :-)
i have only very limited time right now. we are preparing for a 2month europe road trip this summer... i do my best for testing and contributing but mainly will continue in September again
-
@markwkidd said in mame2003-plus: 250 new games, new input system, new features, new bugs:
Lethal Enforcers
WOAW LETHAL ENFORCERS !!! so excellent <3
Really wish we will have more shooter like it on our PI, i love them :p
I don't remember if Mad Dog McCree is working too or not ?
Not working on Daphne for now ... -
@robertvb83 said in mame2003-plus: 250 new games, new input system, new features, new bugs:
i just made a PR with an example for stonebal. is this like you indended this to be submitted? or is there a better way. i never did this before so it might look strange to you :-)
What you submitted looks viable to me, it should be straightforward to convert to a code patch.
Thank you for also testing out the docs, and providing feedback. I will add some language about how to find MAME's button names.
I'm glad I asked for your help before your trip -- that sounds awesome! I'll try to code your
stonebal
button names ASAP in hopes you can see that in effect before you go :) -
@markwkidd said in mame2003-plus: 250 new games, new input system, new features, new bugs:
Thank you for also testing out the docs, and providing feedback. I will add some language about how to find MAME's button names.
also how do we know the button order, e.g. why is it 1,2,3 for punch and 4,5,6 for kicks in sf? could also be vice versa, is there a general rule for that?
I'm glad I asked for your help before your trip -- that sounds awesome! I'll try to code your
stonebal
button names ASAP in hopes you can see that in effect before you go :)hey cool thanks. i will test this today. i'll be leaving around second week in june so there still is some time...
i have one additional thought about this. please tell me your opinion. i have the feeling that the way of implementing all button schemes is s lot of work and can almost never be finished plus you always have to deal with it again for new games added to mame2003-plus. i thought more of a more generic approach like coding the module for button naming only once (for up to 8 buttons) and for each game apply this generic module filled with the button naming metadata of a general or per game cfg (i would prefer a general cfg)
sf_button1="Jab Punch" sf_button2="Strong Punch" sf_button3="Fierce Punch" sf_button4="Short Kick" sf_button5="Forward Kick" sf_button6="Roundhouse Kick" stonebal_button1="Shoot/Fight" stonebal_button2="Push" stonebal_button3="Pass/Tackle" stonebal2_button=stonebal_button
this way you can finish this whole coding approach applied for all games and if there is an entry in the cfg it will show the respective values in the menu. This database can than be filled from various people and reviewed/released by you.
does this make sense?
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.