jump to navigation

Mamesaver April 29, 2007

Posted by Mladen in emulation, Games, mamesaver, open source, screen saver, sourceforge.
trackback

I’ve just released a little pet project of mine as an open source project on SourceForge. It is a windows screen saver which runs the MAME emulator. It runs random ROMs for specified intervals.

Check out the site. Try it. Let me know what you think or if you find any bugs.

UPDATE: I forgot to mention that you need to have the Microsoft .NET 2 Framework installed to run it.

Advertisements

Comments»

1. TheManuel - August 6, 2008

Hi Mika76.

I looked through several similar screensavers that would work well in conjunction with MaLa (a front-end) and yours is the one that worked the best. Thank you for sharing it.
I do have one question. Is there any way to set up mamesaver so that it allows actually playing the games? When you add a coin, and perform a few key presses, MAME eventually shuts down presumably responding to input events like a typical screensaver.
When you launch it in preview mode from the display configuration screen in Windows, it does not exit by any key press. It only exits when you hit Esc (MAME typicall behavior).

Thanks

2. mika76 - August 6, 2008

Hey TheManuel

At the moment Mamesaver quits as soon as it senses any keypress. If you want to tell me what features you’d like I’d be happy to add them.

3. TheManuel - August 6, 2008

Thanks for the reply, Mika.

I was hoping I could make it work without asking you to work more. I looked through the web and could not figure out if Windows can be set up so that the screensaver quits only with a specific key. Apparently this needs to be built into the screensaver.

Basically, the feature I was wishing your screensaver had was that when you see a MAME game being lauched by the screensaver, you could simply add coins and play. This way, if you have games you have never played and something that mamesaver launches catches your attention, you can spontaneously just start playing it.
The ideal way would be to add the option of only quitting the screensaver when the Esc key is pressed since this is also the key that makes MAME quit.

Besides that, the screensaver is already good enough that I can’t think of any other features I have seen in other similar screensavers that are worth implementing. One exception perhaps would be to allow cycling to the next game by pressing the space bar or some other key. This sounds relatively easy to implement (from a non-programmer’s standpoint).

This is just a suggestion. For now, I’m just happy that I got the screensaver to work on my setup.

Thanks for offering to add features…

4. TheManuel - August 8, 2008

I guess I did come up with one more feature if you don’t mind my suggesting it. If there is a way to minimize the MAME command line while loading, it would make for a more elegant launch.

Thanks!

5. mika76 - August 8, 2008

Well on mine it doesn’t show at all. What are you seeing?

6. TheManuel - August 8, 2008

After a few seconds of showing the black screen with the name of the game and the MAME logo (which looks very nice, by the way), it briefly shows the Windows taskbar and a command window loading the game. This lasts more or less depending on how big the rom is. It disrupts the flow going from the info screen to the MAME game.
I tried to get around this using a wrapper application that hides the command window but then mamesaver only shuts down the wrapper and MAME stays so when it cycles to another game, it creates a new instance of MAME so that did not work.

But I don’t want to come accross as a knit-picker. I’m already grateful that you are considering adding the feature to play games directly from the screensaver.

7. mika76 - August 8, 2008

Strange – doesn’t happen to me at all. I’ll have a look and see if I can come up with a solution. Ideally I would like to call MAME directly and not through the command line, but I cannot see how to do that yet.

8. TheManuel - August 8, 2008

Interesting. The front-end I am using, MaLa, hides the command lines of the emulator. I’ll ask the current developer how it does it.
It is rather strange that I get that and you don’t. I normally use an older version of MAME so, just in case, I tried a recent release of the official build and the same thing happens.

9. TheManuel - August 8, 2008

Here is the response I got from the original author of the front-end:

MaLa starts an emu with the function CreateProcess.
msdn.microsoft.com/en-us/library/ms682425.aspx

This function needs a StartupInfo structure and there is one field (wShowWindow) for the visibility of the window.
msdn.microsoft.com/en-us/library/ms686331(VS.85).aspx

Here you can find possible values for the visibility parameter.
msdn.microsoft.com/en-us/library/ms633548.aspx

MaLa is using SW_HIDE to hide the window.

I’m not a programmer myself but the information looks pretty helpful.

I hope it helps

10. TheManuel - August 8, 2008

The web addresses above are missing the “http://” because otherwise, my post was not going through..

11. mika76 - August 9, 2008

What I mean was that I’d like to call mame using COM calls or by using a DLL directly and not through the command line as a separate process, but thanks for the links – I’ll have a look at them.

12. TheManuel - August 9, 2008

Ah, I see.
One particular build of MAME called MAMEplus is distributed on a large dll along with two small executables for command line and MAME32 interface usage. This happens to be the build of MAME I use but I realize most people probably use the official one.
I think the work-around suggested above could be a secondary alternative…

13. mika76 - August 22, 2008

Just to let you know – I will definitely look at making those changes – but I’ve just hit a very busy moment at work which is keeping me away from my other interests.

14. TheManuel - August 22, 2008

I really appreciate it.
Work is more important.

Regards.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: