Author Topic: At-The-Arcade Flex (multi-resolution / multi-aspect, MAME + pinball) [Release]  (Read 39354 times)

tsaylor

  • Full Member
  • ***
  • Posts: 58
    • View Profile
For my arcade cabinet, the theme "At-The-Arcade Multi-Cab" was nearly perfect! But then I ruined everything by getting into pinball games -- a problem because I turned my monitor vertical, but also because I needed to display pinball tables as well. With that, I undertook a months long project of learning how to write Attract-Mode layouts and shaders, and modified At-The-Arcade Multi-Cab to become: At-The-Arcade Flex! A flexible version of the original, supporting (in theory) every resolution and aspect ratio, and also adding support for the display of pinball cabinets.

First, a note of thanks! This layout is definitely standing on the shoulders of giants as they say, and it would not exist without the excellent work of:
Features added with this layout:
  • Render at "any" resolution or aspect ratio (tested at the most common aspect ratios 16:9, 16:10, 4:3, 1:1, 3:4, 10:16, 10:9)
  • Hotkey to cycle through various resolutions (useful for testing or simulating other screen sizes)
  • Change most everything to rely on formulas and a table of positioning rules, instead of hard-coded numbers/percentages
  • Add support for displaying pinball cabinet/snapshot/marquee images (in addition to the existing MAME arcade cabinet support)
  • Allow cabinet to be horizontally "squeezed" up to a point, to make things fit better
  • Beyond that point, resize the cabinet smaller (resulting in a mix of some squeezing and some shrinking, for portrait resolutions)
  • Synthesize a cabinet "top" for resolutions where the cabinet is not full-height (necessary because the cabinet images do not include a top)
  • "Wheel" logic is formula-based, using shaders for the wheel background
  • Color choice for wheel background
  • Rework bezel rendering to show entire side bezels (with some compression)
  • Don't show scanlines for vector-based titles, or over bezels
  • For portrait screens, extend game information to two lines
  • Box art location depends on screen aspect (portrait vs landscape)

Demo:
https://www.youtube.com/watch?v=8IdFfWR30RI

Download the theme (updated to v1.1 Dec-29-2021):
https://mega.nz/file/fkgHyAYZ#-6I4-cUdBert9jcnAStAwIbWHq1SM_oaSB3SMtFsp_I
For install instructions, please see the ReadMe.txt file in the download zip (thanks again to Yaron2019)

Download the updated cabs:
https://mega.nz/file/rA833QiL#dqhQFfdh608n1pAdJdNnngajGSFI1NktuBkc37bJzMw

If needed, download other art from Damonxxx's original post:
http://forum.attractmode.org/index.php?topic=3778.0

Download fanart (optional):
https://mega.nz/file/gQlkBKia#Hz87o3SeV2I8GmR52aFCF-etVmJO-kjPWEt1VzBbVk0

Download bezels (optional):
https://github.com/thebezelproject/bezelproject-MAME

Change log (changes now maintained at https://github.com/toddsay/AtTheArcadeFlex):
1.0 Initial release
1.1 Fix potential crashes, auto-rotate horizontal snap videos for non-FX3 pinball tables

Examples shown below for:
  • Landscape/widescreen MAME
  • Portrait MAME
  • Landscape/widescreen Pinball
  • Portrait Pinball
« Last Edit: December 31, 2021, 12:06:59 PM by tsaylor »

tsaylor

  • Full Member
  • ***
  • Posts: 58
    • View Profile
And one more screenshot showing a "square" resolution

Yaron2019

  • Guest
My name is Yaron2019 and I endorse this layout  :D

Now seriously - this is what At-The-Arcade was missing, a more dynamic approach to resolutions and aspect ratios. On the way tsaylor did an excellent job to also enhance other features. I love this, well done!
Community effort FTW!

tsaylor

  • Full Member
  • ***
  • Posts: 58
    • View Profile
Indeed, community and collaboration is where it's at! Go team! 8)

P47

  • Jr. Member
  • **
  • Posts: 10
    • View Profile
Fantastic theme, but works on PI4 ?

tsaylor

  • Full Member
  • ***
  • Posts: 58
    • View Profile
Honestly I've never tried running Attract-Mode on a PI at all, so I'm not sure what the platform differences are. I've only tested on a PC, but now I'm curious how it looks on other platforms.

Jontox

  • Jr. Member
  • **
  • Posts: 18
    • View Profile
Amazing contribution effort!
What a theme !

Just a quick question, how can we adjust the ambient music volume in comparison to videos snap volume ?
Attractmode volume settings ambient doesn’t seem to work.

Thanks a lot for your combined works

tsaylor

  • Full Member
  • ***
  • Posts: 58
    • View Profile
Thanks Jontox! I hadn't really experimented with that, but it seems like the global sound settings are the only control available. Doing some quick tests, the "Movie Volume" setting controls the snap volume, and the "Sound Volume" controls the ambient sound volume (or music) and wheel sounds. It seems that "Ambient Volume" doesn't control anything in this case.

Jontox

  • Jr. Member
  • **
  • Posts: 18
    • View Profile
Hi tsaylor,

Is there a way to fix the theme resolution to 320x240 P ?
Any settings in the layout.nut to modify? Would the theme be compatible?

I’m currently running an arcade computer box within a candy cab with a crt arcade monitor.
For now, attractmode seems to start at desktop resolution 640x480i of win10.

Interlaced mode is not suitable, visually speaking.

Many thanks in advance for your thoughts on this


tsaylor

  • Full Member
  • ***
  • Posts: 58
    • View Profile
Hi Jontox. I don't have experience with that type of monitor so I'm not really sure what the options are. As far as I know, AttractMode wants to run at the native Windows resolution. In theory you can force it in layout.nut by doing something like this:

Code: [Select]
fe.layout.width=320;
fe.layout.height=240;
fe.layout.preserve_aspect_ratio=true;

However I haven't had luck with that on my system, as it still seems to use a larger resolution than that. And I suspect it won't do what you want anyway since AM is still starting with that 640x480i resolution.

The other thing you can try is switching AM to windowed mode in the General options. That should allow you to size the window. Trying that I was able to get a 320x240 window, and this theme did look correct there. But in that case you'd just be using part of the screen so I don't think that is what you are looking for either.

Unfortunately I suspect that none of this will give you what you are looking for. Really it seems like you'd need to somehow configure the native Windows resolution at 320x240, but I'm not sure if that is even an option for your hardware.

Jontox

  • Jr. Member
  • **
  • Posts: 18
    • View Profile
Thanks for your reply tsaylor.
What you replied confirms what I found out on arcadecontrols forum.

Here the answer:

http://forum.arcadecontrols.com/index.php?topic=158043.0

I’ve read also on another thread on arcadecontrols, but don’t have the link right now that the way attractmode is coded it is dependent on the win7/10 desktop resolution chosen.

So thanks to crtemudriver, you can inject first with vmmaker an additional custom resolution below 640x480i thus 320x240p, and use it.
I’ll test it and report back here.

N.B.: From what I read, and these are the words from “substring” the nice guy behind GroovyArcade (Linux iso including all is needed Grovvyarcade, crtemudriver, ….for setting up a computer box in a arcade cabinet) the best progressive low res resolution would be 384x288 @ 50Hz.
http://forum.arcadecontrols.com/index.php/topic,160023.120.html
« Last Edit: June 06, 2021, 12:47:53 AM by Jontox »

cybermat

  • Jr. Member
  • **
  • Posts: 22
    • View Profile
Regarding Pinball, there are cabinets pack for Visual Pinball and similar ? I just found video snaps for pinball.

tsaylor

  • Full Member
  • ***
  • Posts: 58
    • View Profile
Hi cybermat. The images I found were at emumovies, and called a virtual machines pack, like this https://emumovies.com/files/file/3734-pinball-fx3-virtual-machines-pack. If you have such images you can put them in directory identified by "pincabs" in your emulator .cfg file.

This "flex" theme also includes a generic image of a machine, where the snaps and backglass (using the "marquee" images) can be rendered, so it should be possible to get the correct effect by supplying only the snaps and backglass images. I did notice that many pinball snaps are oriented sideways (horizontally wide rather than vertically tall). This theme does not currently try to rotate them so only vertical snaps will look correct.

Jontox

  • Jr. Member
  • **
  • Posts: 18
    • View Profile
Thanks for your reply tsaylor.
What you replied confirms what I found out on arcadecontrols forum.

Here the answer:

http://forum.arcadecontrols.com/index.php?topic=158043.0

I’ve read also on another thread on arcadecontrols, but don’t have the link right now that the way attractmode is coded it is dependent on the win7/10 desktop resolution chosen.

So thanks to crtemudriver, you can inject first with vmmaker an additional custom resolution below 640x480i thus 320x240p, and use it.
I’ll test it and report back here.

N.B.: From what I read, and these are the words from “substring” the nice guy behind GroovyArcade (Linux iso including all is needed Grovvyarcade, crtemudriver, ….for setting up a computer box in a arcade cabinet) the best progressive low res resolution would be 384x288 @ 50Hz.
http://forum.arcadecontrols.com/index.php/topic,160023.120.html

Some feedback after testing for all those that would be interested.

Definitely this theme is better in 640x480i @ 60Hz than lower progressive resolution.

My VMMaker refuse to use 384x288P @ 50 Hz on my Nanao MS9-29. Anyway, I won't get below the first mentioned resolution.




sosimple

  • Full Member
  • ***
  • Posts: 57
    • View Profile
Thanks for this amazing mod. But i have a small problem. I run it in a 4k 65 inch tv (3840 x 2160 pixel) ..  ;D
The original theme (the arcade multicub) is working perfectly. This one is extremely luggy in this resolution. If i first change tv resolution to HD then it works fine, without the lug. I can create an autoit script to change resolution before run attract mode, and restore it after but it isn't the best approach.. If you or anybody has any idea how to change the resolution to something lower (hd for example) it would be fine.
Thanks anyway.