Previous Thread
Next Thread
Print Thread
Page 1 of 2 1 2
#110532 - 08/06/17 07:34 AM Generic bezel  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
In the past I've created generic (cocktail) bezels for my arcade setup, but I had to add the definition to the horizont.lay and vertical.lay files, and then (re)compile MAME. Is it possible do simply do this from the artwork directory in stead, e.g. by creating a horizont.zip and vertical.zip file containing the artwork and .lay files? If not, would it be possible to add such a feature so people can add their own generic screen definitions?

#110533 - 08/06/17 08:33 AM Re: Generic bezel [Re: phulshof]  
Joined: Feb 2004
Posts: 1,819
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,819
Sydney, Australia
Same answer as every time this comes up - yes an option for fallback artwork would be nice to have, but it isn't implemented at this time. It's on my (very long) TODO list.

#110534 - 08/06/17 08:36 AM Re: Generic bezel [Re: phulshof]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
Sorry, I wasn't aware this had come up before. Would it be helpful if I had a look at implementing it, and provided the code changes?

#110535 - 08/06/17 09:00 AM Re: Generic bezel [Re: phulshof]  
Joined: Feb 2004
Posts: 1,819
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,819
Sydney, Australia
It's a kind of "here be dragons" thing, especially at the moment with options system in flux. If you do want to try, remember that you have to consider the possibility of multi-screen systems, and not break things by default. You definitely don't want to do something that will cause it to choose an unsuitable view when a person launches an unfamiliar system. Consider Nichibutsu mahjongs with private player LCDs, dual-screen Cave games, punch-out, etc. You need to ensure that whatever you do won't make it easy to cause one of these to come up with important stuff hidden.

#110536 - 08/06/17 10:16 AM Re: Generic bezel [Re: phulshof]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
Thanks for the warnings; you raise valid points here that I'll keep in mind when having a crack at this. I figure that when/if I manage to figure out how best to do it, I can easily do it again on the next code base, and create a patch for the current code. smile

#110561 - 08/09/17 09:01 PM Re: Generic bezel [Re: phulshof]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
I think I'm getting somewhere... smile What I currently have:
- Load explicit file (UNCHANGED)
- Load driver name (UNCHANGED)
- Load parent driver (moved up; e.g. internal neogeo layout had preference over parent artwork)
- Load parent of parent (will find neogeo for clone of neogeo games)
- For single screen: load horizont or vertical
- Load internal default views (UNCHANGED)
- For single screen: load internal horizont or vertical (UNCHANGED)
- If no layout has been found, load internal defaults based on number of screens (0, 2, 3, 4) (UNCHANGED)

As an example: lastblad
- Load lastblad
- Load neogeo
- Load horizont
- Load internal neogeo
- Load internal horizont

As an example: lastbladh
- Load lastbladh
- Load lastblad
- Load neogeo
- Load horizont
- Load internal neogeo
- Load internal horizont

As an example: darius
- Load darius
- Load internal darius

I'll do a lot more testing, but I'm reasonably happy so far. smile

Any remarks/change requests/additional features?

#110563 - 08/10/17 12:29 AM Re: Generic bezel [Re: phulshof]  
Joined: Feb 2004
Posts: 1,819
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,819
Sydney, Australia
No, that's not at all what I was talking about. Adding an implicit search path is just going to be confusing. It requires additional options:
* Something like -fallback_artwork NAME that will make that artwork get loaded if there is no internal layout for the driver and no external artwork for the driver
* Something like -override_artwork NAME that will force loading specified artwork, overriding internal layout and external artwork for the driver

Then if you want generic artwork for horizontal games as a fallback, you add "fallback_artwork horizontal" to your horizontal.ini (or whatever it's called these days), etc.

#110566 - 08/10/17 06:24 AM Re: Generic bezel [Re: phulshof]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
Ok, no problem. smile So far the changes were intended to make the internal and external artwork selection consistent. I will have a look at adding these options as well. Any other remarks/suggestions?

#110567 - 08/10/17 01:40 PM Re: Generic bezel [Re: Vas Crabb]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
Originally Posted by Vas Crabb

* Something like -fallback_artwork NAME that will make that artwork get loaded if there is no internal layout for the driver and no external artwork for the driver


In accordance with the current implementation, there's always an internal layout for the driver, assuming no game uses more than 4 screens. It could be a fall back in case no external artwork exists, but the user would need to make sure that the fallback artwork matches the screen setup (number of screens, orientation, etc.), since that information is not directly available in the artwork itself.

Your thoughts?

#110568 - 08/10/17 01:45 PM Re: Generic bezel [Re: phulshof]  
Joined: Feb 2004
Posts: 1,819
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,819
Sydney, Australia
There's a difference between internal layouts for drivers (these come from MCFG_DEFAULT_LAYOUT or GAMEL) and the default layouts for for screen count/orientation.

#110569 - 08/10/17 02:00 PM Re: Generic bezel [Re: Vas Crabb]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
Originally Posted by Vas Crabb
There's a difference between internal layouts for drivers (these come from MCFG_DEFAULT_LAYOUT or GAMEL) and the default layouts for for screen count/orientation.


Ok, then I'll use that as the base for this option. Thanks for the information. smile

Btw: kudos on the well structured code; so far it's been relatively easy to work on this issue.

#110570 - 08/10/17 02:34 PM Re: Generic bezel [Re: phulshof]  
Joined: Mar 2001
Posts: 15,677
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,677
USA
Yeah, structure's been a long time coming to that code, but Vas and Nathan have done great work getting it banged out.

#110579 - 08/11/17 11:26 AM Re: Generic bezel [Re: Vas Crabb]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
Originally Posted by Vas Crabb

* Something like -override_artwork NAME that will force loading specified artwork, overriding internal layout and external artwork for the driver


Should in this case the default internal layouts for horizont/vertical still be loaded as well (if number of screens = 1)?

#110598 - 08/14/17 01:13 PM Re: Generic bezel [Re: phulshof]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
My current status:
- If -override_artwork set: load override artwork, and return when successful
- Load explicit file, return when single file is set (UNCHANGED)
- Load driver name (UNCHANGED)
- Load parent driver (UNCHANGED, but moved up; e.g. internal neogeo layout had preference over parent artwork)
- Load parent of parent (will find neogeo for clone of neogeo games)
- For single screen: load horizont or vertical
- Load internal default views (UNCHANGED)
- If -fallback_artwork set, and no artwork found yet: load fallback artwork
- For single screen: load internal horizont or vertical (UNCHANGED)
- If no layout has been found, load internal defaults based on number of screens (0, 2, 3, 4) (UNCHANGED)

Any thoughts?

#110599 - 08/14/17 01:32 PM Re: Generic bezel [Re: phulshof]  
Joined: Feb 2004
Posts: 1,819
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,819
Sydney, Australia
Take out the load horizont or vertical - that's not helpful. If someone wants that kind of behaviour they can specify -fallback_artwork in horizontal.ini or vertical.ini. Consider something like intlc44/intlc440 where you'll lose the switch/LED panel if you do that, rendering it completely unusable. Also, the gamblers (slots/poker) very much benefit from illuminated, clickable buttons. I already said this earlier in the thread. Also, you're probably going to want to make the -fallback_artwork option fall through if it can't find a view that makes all screens visible. Otherwise it's going to render housemnq etc. unplayable.

#110602 - 08/15/17 09:18 AM Re: Generic bezel [Re: phulshof]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
Ok, if horizontal/vertical can be handled via the .ini files that's fine by me. I just wanted the option to have similar behavior for external and internal layouts.

In the current code, none of the artwork checks if the layout matches the game's layout. I understand that you would like to have that added for the fallback artwork though? That will be quite difficult I fear, especially since some games may have multiple screens, but those screens may be meant to be separated to prevent players from seeing the other players' cards/stones/etc. I'm not aware of any flags that would handle this. I will need to give this some serious thoughts, and a list of games that might cause problems would be helpful in that regard, so I can test how each game reacts, and if incorrect see how it can be corrected. I will certainly have a look at the games already mentioned.

#110603 - 08/15/17 09:31 AM Re: Generic bezel [Re: phulshof]  
Joined: Feb 2004
Posts: 1,819
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,819
Sydney, Australia
Also, loading external artwork for parent before loading internal artwork for game will screw up gamblers - often the lamp assignments are different in clones. Internal artwork supplied by driver should be preferred over external artwork for parent. It's very important to ensure it won't do something stupid or surprising in a bad way by default. Software should not be surprising - it should be straightforward. Anything that makes it in any way likely to start in an unusable state is not acceptable.

#110604 - 08/15/17 04:21 PM Re: Generic bezel [Re: phulshof]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
Under the conditions you stated though, fallback artwork for e.g. NeoGeo games will never be loaded since there's an internal layout defined for NeoGeo, and fallback artwork should only be loaded when no internal or external artwork is found. Is that what you intend?

#110607 - 08/16/17 12:58 AM Re: Generic bezel [Re: phulshof]  
Joined: Feb 2004
Posts: 1,819
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,819
Sydney, Australia
Well, tell me a way to make it work that won't render systems completely unusable. I don't want to have to be fielding support for this if it's done in a way where the default behaviour makes stuff hard to use.

That aside, yes, due to the 304/320 thing, you really do need a special layout for NeoGeo and a generic bezel won't cut it.

#110608 - 08/16/17 06:36 AM Re: Generic bezel [Re: phulshof]  
Joined: Sep 2014
Posts: 69
phulshof Offline
Member
phulshof  Offline
Member

Joined: Sep 2014
Posts: 69
Netherlands
I understand, and agree, though a fallback NeoGeo layout would do the trick. I'll give it some more thought; at least now I know how to get things working, so next is figuring out how I WANT things working. smile I'll be back...

Last edited by phulshof; 08/16/17 08:37 AM.
Page 1 of 2 1 2

Who's Online Now
5 registered members (palindrome, Duke, Luca Elia, Reznor007, B2K24), 20 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,400
Posts108,700
Members4,754
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.0
Page Time: 0.031s Queries: 14 (0.007s) Memory: 5.1120 MB (Peak: 5.4208 MB) Zlib enabled. Server Time: 2017-08-16 22:06:41 UTC