Coder Social home page Coder Social logo

Multi-monitor support about mamesaver HOT 13 CLOSED

mika76 avatar mika76 commented on May 23, 2024
Multi-monitor support

from mamesaver.

Comments (13)

mika76 avatar mika76 commented on May 23, 2024

Hey @andyvans, that's awesome. I don't think I've ever tried it with multiple monitors before. I see mame itself has a -numscreens x command line option, have you tried that to see what it does?

I think I have an extra screen available so I'll give your branch a try as soon as I can...

from mamesaver.

andyvans avatar andyvans commented on May 23, 2024

It's pretty alpha at the moment. The screen cloning works but needs optimisation.

The -numscreens x option works in two ways:

  • When using opengl it fills other screens with a clone of the image
  • When using directx it fills other screens with a black screen

The problem with the opengl version of mame is that it just doesn't look as good. The directx 9 shaders make the games (particularly vector games) look much better on large screens.

I will keep tweaking the code. It may work out, it may not.

from mamesaver.

nullpainter avatar nullpainter commented on May 23, 2024

The problem with the opengl version of mame is that it just doesn't look as good

A note on the OpenGL version - this can look okay, but you need to be using the GLSL shaders instead of the HLSL shaders which are Direct3D only. The GLSL shaders don't appear to come out of the box with the official Windows versions of MAME, and the only ones I could find at a quick Google no longer work.

That being said, I've tried raster GLSL shaders but not any vector ones. Your point may still stand.

from mamesaver.

mika76 avatar mika76 commented on May 23, 2024

Couple of thoughts I had:

  • what if you show a blank screen and only one mame, and then switch the screen it shows on every little bit? Ideally during a game session, but if that's not possible then at least when it re-loads a new game...
  • You could also just show screenshots of games or game titles (maybe dynamically download from somewhere like http://mamedb.org (seem you can easily just use the url http://mamedb.org/snaps/gunfight_K.png by replacing the game name)

After reading about the -numscreens argument it seems it's more meant for multi-monitor games anyway - so it would probably work much better for those (racing type games I guess) then for ones only developed for one screen.

from mamesaver.

mika76 avatar mika76 commented on May 23, 2024

Looking at http://wiki.mamedev.org/index.php/LAY_File_Basics_-_Part_I for #12 I notice that in the lay file you can control multi screens too - might be an option you could look into...

from mamesaver.

mika76 avatar mika76 commented on May 23, 2024

Hey @andyvans I just had a chance to try out the multi screen cloning - very very cool! 👍

from mamesaver.

andyvans avatar andyvans commented on May 23, 2024

The latest changes seem much faster as the graphics work is now all native win32 - hardware context to hardware context. It is no longer going via managed objects. It also supports monitors with different resolutions e.g. it will scale to the destination screen size. I will need to test a high DPI monitor.

Next, to improve speed of when exiting (mouse move/keystoke), I might force minimise the mame window to give the illusion of an instance shutdown.

from mamesaver.

andyvans avatar andyvans commented on May 23, 2024

The minimise of the mame window is really good. The screen saver exits instantly. No lag at all.

from mamesaver.

andyvans avatar andyvans commented on May 23, 2024

The layouts are interesting. Not quite for cloning, but for enhancing B&W games or adding a frame around the game. I guess game metadata could go into the layout if it was dynamically rendered per game.

from mamesaver.

mika76 avatar mika76 commented on May 23, 2024

The minimise of the mame window is really good.

Would you mind creating a pull request? Purely because I have an appveyor build server and then I don't have to recompile each branch myself - my multi monitors are on a separate laptop I don't use often :) I will only accept it once you are finished...

The layouts are interesting

Yeah they're not hugely useful in this scenario - although I notice that if you just add -numscreens 4 (it seems mame only supports up to 4 monitors) then the other screens go blank at least when a game is running and I thought layout could be used to at least show a game name by making a dynamic bezel image. Not useful here at all...

from mamesaver.

andyvans avatar andyvans commented on May 23, 2024

@mika76 The multi-monitor cloning works well. I have tried it with 2 & 3 monitors. It's hard to tell which is the original Mame screen. I will create a PR for you to look at.

from mamesaver.

mika76 avatar mika76 commented on May 23, 2024

The one I tried previous was already brilliant so I can just imagine - such a great PR thanks!

from mamesaver.

andyvans avatar andyvans commented on May 23, 2024

Cheers @mika76. I think I need to tweak the logic where the source and destination monitors don't have the same aspect ratio e.g. 16x9 vs 4x3.

from mamesaver.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.