libretro / mame2003-plus-libretro

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

[New Game Request] Tang Tang (MAME 2010 Full Non-Merged Reference Set) #148

Closed ghost closed 6 years ago

ghost commented 6 years ago

Description

@arcadez @markwkidd There's a game from the MAME 2010 Reference Set that I'd really like to see playable on the MAME 2003 Plus core, called "Tang Tang" (rom name: tangtang). This game is not part of the MAME 2003 set as the game was first dumped in November 2005 and it's first MAME release was on December 1st, 2005 for Mame 0.102u2.

A MAME 2010 core / FBA core would be too slow for the devices I'd like to use this game on. Please make my dream of playing this game on MAME 2003 Plus come true.


Additional Info:

@markwkidd Advised me that I can help the process of support for this game being added by providing the following information from: http://adb.arcadeitalia.net/dettaglio_mame.php?game_name=tangtang&lang=en

First Release: Mame 0.102u2 released on Dec-01 2005

Info Readout:

Early Driver History:

ghost commented 6 years ago

Alright im on the case apart from Tang Tang another couple of games called Head Panic and Swat Police would be playable with the driver update, i have the code already done so hopefully it wont be too much trouble to backport it to this core.

Regards

ghost commented 6 years ago

Yay! Let me know when it's ready, I can't wait to play it again.

ghost commented 6 years ago

well gimmie a chance bigman all the prelim work is done i now have the very tedious and laborious task of rolling back all the memory maps to MAME78 standards then test all the games.

I should have a new commit ready later today or tommorow.

ghost commented 6 years ago

Your request has been fulfilled ;)

ghost commented 6 years ago

@arcadez I couldn't get the build needed in the Core Updater, so I attempted to compile it myself and got the following error:

src/vidhrdw/esd16_vidhrdw.c:44:1: error: C++ style comments are not allowed in ISO C90
 //extern data16_t *head_unknown1;
 ^
src/vidhrdw/esd16_vidhrdw.c:44:1: error: (this will be reported only once per input file)
Makefile:493: recipe for target 'src/vidhrdw/esd16_vidhrdw.o' failed
make: *** [src/vidhrdw/esd16_vidhrdw.o] Error 1

Later builds stop at this error instead:

src/mame2003/mame2003.c:1042:3: note: in expansion of macro ‘EMIT_RETRO_PAD_DIRECTIONS’
   EMIT_RETRO_PAD_DIRECTIONS(1),(options.retropad_layout = "modern" : EMIT_RETRO_PAD_MODERN(1) ? (options.retropad_layout = "snes" : EMIT_RETRO_PAD_SNES(1) ? EMIT_RETRO_PAD(1))),EMIT_RETRO_PAD_MOUSE(1),
   ^~~~~~~~~~~~~~~~~~~~~~~~~
src/mame2003/mame2003.c:1042:31: error: expected expression before ‘,’ token
   EMIT_RETRO_PAD_DIRECTIONS(1),(options.retropad_layout = "modern" : EMIT_RETRO_PAD_MODERN(1) ? (options.retropad_layout = "snes" : EMIT_RETRO_PAD_SNES(1) ? EMIT_RETRO_PAD(1))),EMIT_RETRO_PAD_MOUSE(1),
                               ^
Makefile:493: recipe for target 'src/mame2003/mame2003.o' failed
make: *** [src/mame2003/mame2003.o] Error 1
make: *** Waiting for unfinished jobs....

Looks like Tang Tang has to wait a bit more. :(

markwkidd commented 6 years ago

there's a little problem with dankcushion's controls PR - I didn't realize it didn't compile. fixing now, will be running again soon

markwkidd commented 6 years ago

@SapphireTactician should be ok now

ghost commented 6 years ago

@markwkidd Still no joy

src/vidhrdw/esd16_vidhrdw.c:44:1: error: C++ style comments are not allowed in ISO C90
 //extern data16_t *head_unknown1;
 ^
src/vidhrdw/esd16_vidhrdw.c:44:1: error: (this will be reported only once per input file)
Makefile:493: recipe for target 'src/vidhrdw/esd16_vidhrdw.o' failed
make: *** [src/vidhrdw/esd16_vidhrdw.o] Error 1
markwkidd commented 6 years ago

Ah. That's from @arcadez new code on this driver. @arcadez should I fix or do you want to?

markwkidd commented 6 years ago

@arcadez actually I'll do it. I'm set up for this kind of comment change project. I'll take you once the fix is commited

markwkidd commented 6 years ago

@SapphireTactician one more time now... I think things are straightened up now with this new driver

ghost commented 6 years ago

Building now, should only take about 7 minutes on this old dinosaur.

ghost commented 6 years ago

Yay! It works, just one minor issue, the BGM is too soft, SFX volume is fine though. In MAME 2010 this can be corrected in the "Tab" menu. Can these be added as game options or something?

2018-04-26--215733_1600x900

markwkidd commented 6 years ago

@arcadez I don't think we necessarily need this game's volume mixer in the GUI if there is a way to hardcode a good values for BGM. Is that possible?

ghost commented 6 years ago

@markwkidd Can try using the volumes in the screenshot. The highlighted one is BGM, the one below is SFX. Surprised the SFX are so loud at that low volume. I don't recall the starting values but I can probably get them by deleting the NVRAM or game options if you'd like to see them.

Meanwhile, I'm going to go hide before arcadez kills me. I'm sure I've been driving him nuts today.

ghost commented 6 years ago

@markwkidd it would be easy to raise up the volume level for the YM3812 sound it's at 40 just now it can go as high as 100.............

static struct YM3812interface esd16_ym3812_intf = { 1, 4000000, / ? / { 100 }, { 0 }, / IRQ Line / };

All the ESD16 games share it however so what might be good for Tang Tang might mess up the sound balance in the other games that's something maybe @SapphireTactician might like to test for..?? tell me a good balance to strike between the YM and OKI that works for all of the games then i'll make the change in the driver.

markwkidd commented 6 years ago

@SapphireTactician I checked the source file esd16 and it looks like 10 games share this driver. The question is: do they all have the same problem with background music too low? If so then the fix can be applied to everyone at once.

Would you consider expanding your process to try to investigate the games BGM volume? Here is where they are listed: https://github.com/libretro/mame2003-plus-libretro/blob/master/src/drivers/esd16.c#L938-L954

ghost commented 6 years ago

It's the least I can do. I'm on the case.

ghost commented 6 years ago

@markwkidd I tested out the other games, these are my findings:

The BGM volume appears to be the same or similar for all the esd16 games, however the SFX volume is significantly louder in Tang Tang than the other esd16 games. The other games' SFX volume varies slightly but generally sounds about equal to or slightly louder than the BGM volume.

However, when comparing the default volumes using MAME2010, the slider is in the same position for all of them despite the discrepancy.

tangtang 2018-04-27--205112_1600x900

swatpolc 2018-04-27--205215_1600x900

Also note how much louder I made the BGM volume in Tang Tang to compensate.

2018-04-26--215733_1600x900

markwkidd commented 6 years ago

Would you say that the volume for the games in these drivers is generally in line with games from other drivers?

In other words, do you think that the SFX in Tang Tang is the outlier, with all other sound in this driver about where it needs to be?

ghost commented 6 years ago

The SFX in general for the ESD games seems to be a bit higher to me on average than the rest of my collection, but Tang Tang is the worst offender in that regard by a noticeable margin imo. So in that sense, Tang Tang is an outlier among outliers. I examined these game both with my monitor's garbage built-in speakers, and a much more reliable pair of earbuds.

Part of me would almost want to suggest volume sliders like the MAME 2010 core menu does, as even outside of this driver, there are other outliers. toypop by Namco for example has much louder BGM in comparison to the rest of my collection for example. Although for some reason, I'm a lot less bothered by the BGM drowning out the SFX than the SFX drowning out the BGM.

ghost commented 6 years ago

MAME78 does support volume slider controls is there a problem with them in this core..?? i assume there must be or you would have just balanced out the bg music and sfx yourself so that just leaves us one option then create a new sound table just for tang tang i'll do this later on

markwkidd commented 6 years ago

I think it's going to be as easy as making a struct unique to tangtang in the driver with the right volume level for the SFX or the BGM. Then when it's tangtang loading, have the driver pass that tangtang struct in to the sound device rather than the generic struct.

Once we hear back on my question I think I can code up this idea in a minute or two. I may be wrong but I think we can just fix this in the driver transparently by setting the mixer different for just tangtang...

ghost commented 6 years ago

@markwkidd I answered your question here https://github.com/libretro/mame2003-plus-libretro/issues/148#issuecomment-385141166 I'm guessing it got lost in the fold somehow. Unless there's another question you asked that I missed.

@arcadez This is my TAB menu for Tang Tang as of commit c980547 2018-04-28--101645_1600x900

markwkidd commented 6 years ago

Ah sorry. I assume it wouldn't be too hard to implement the mixers as core options but somehow it seems so much better to code in a good default to begin with and forget the option.

SapphireTactician feel free to log other issues about sound balance -- I don't have the firsthand experience with these games that you do! It's great.

I'm glad you're who with experience in the practicalities of playing them.

ghost commented 6 years ago

@markwkidd @arcadez commit 96fad41 broke Tang Tang

Relevant Terminal Output

[libretro INFO] [MAME 2003+] Total MAME drivers: 4814. Matched game driver: [tangtang].
[INFO] Environ SYSTEM_DIRECTORY: "/home/drew/.config/retroarch/system".
[INFO] Environ SET_ROTATION: 0
[libretro INFO] [MAME 2003+] Succesfully loaded ROMs.
[libretro ERROR] cpunum_get_localtime() called for invalid cpu num!
[INFO] Environ SET_PIXEL_FORMAT: RGB565.
[libretro INFO] [MAME 2003+] game bpp: [16], system bpp: [16], color format [RGB565] : SUPPORTED, enabling it.
[libretro ERROR] [MAME 2003+] Unable to start audio emulation
[ERROR] Failed to load content.
markwkidd commented 6 years ago

I do enjoy seeing the new logging system output for mame2003-plus -- more or less working. It doesn't tell me specifically what to this time but there is a good clue.

I'll let @arcadez take a look at the error itself before I jump into this one.

ghost commented 6 years ago

The game is likely getting confused around what sound table to load i'll just create a whole new machine start for Tang Tang

markwkidd commented 6 years ago

@SapphireTactician it should be ready to try again if you dare :)

As are the new retropad default mapping core options !

ghost commented 6 years ago

MAME78 does support volume slider controls is there a problem with them in this core..?? i assume there must be or you would have just balanced out the bg music and sfx yourself so that just leaves us one option then create a new sound table just for tang tang i'll do this later on

@arcadez Yes, volume sliders don't exist on this core for as long as I can remember. Ditto with the regular MAME 2003 core; unless they are only present on specific games and not every game? Do you want me to file that as a separate issue?

As far as Tang Tang is concerned, the PR helps the BGM volume considerably, thank you. My only remaining suggestion would be to also lower the SFX by a bit if it's not a chore to do as I feel that'd be a good balance.

Once that's taken care of, we're pretty much done with this issue.

ghost commented 6 years ago

I noticed a commit to help with the SFX being too loud. Everything seems good here now. Thank you so much for all of this work!!!! This game has a lot of sentimental value to me.