Welcome To Australia's No.1 Media Center Community!
You Are Currently Viewing As A Guest - you'll need to register in order to participate in our community and make this annoying message disappear!
By registering you'll be able to post & reply to questions, set up your own image gallery & blog, communicate privately with other members, create & respond to polls, access downloads and other "members only" features.
Registration is fast, simple and absolutely free so why not join our community today - you'll be glad you did!
For any problems with the registration process or your account, please contact support.
My experience
* These days mostly a PHP developer, though I've made a few simple C#.NET apps recently at work, just ones like using two different ODBC drivers to test records in seperate systems and saving differences to a text file etc. Basically I have an okay grasp of C#.NET syntax and C related syntax in general, but really really hate VB style syntax.
I wish to develop a plugin for media center to launch games, be they regular PC games or emulation games (I will use it for Project64 Nintendo 64 emulator mostly).
I would wish the plugin to look much like the My Movies plugin, with categories such as 'PC Games', 'Nintendo 64', 'Super Nintendo' etc. Each category then has thumbnail pictures of the cover art of games, and when clicking ok on these the game would be launched.
I realise that the MAME frontend exists, but I really really don't like it. I don't like that it's an external application, that it doesn't look *exactly* like MCE, and that the MCE remote can't be used to save games and exit the game and all that nice stuff. I also really hate the extra bloat, I'm not sure why they're trying to make it into a total frontend rather than a specific game launching app.
I have a few questions that could be deal breakers if the answer is no so if anyone knows these answers please provide them so I don't waste any time!
1) When I run the MCE GUI and Project64 at the same time, it doesn't work. It seems like MCE locks up a part of the video card or something like that. Because of this would it be possible for a plugin to load, which then kills MCE, but still listens to the MCE remote, and when exiting the plugin can reload the MCE GUI?
2) Would it be possible for this same plugin to map MCE remote buttons to keyboard buttons? For example the 'quick save' hotkey in Project64 may be the F6 keyboard key. If I wanted the 'record' button of the MCE remote to be used as a 'quick save' button when using PJ64 by making it send F6 to the computer, would this be possible?
Also is it possible to get a blank canvas to work with that has the look and feel of MCE? I downloaded the SDK some time ago and remember it had some horrid black skin.
I'm proposing my plugin to roughly work in the following way: A hosted HTML plugin shows what games you have loaded and their cover art etc. Clicking the games opens up a 'middle man' executable which tries to standardise everything so that different emulators can work and it all appears consistant. So in the HTML plugin there may be a launch exe command depending on the language it's written in. Let's say for example the function was exec(). If that were the case it would probably be like: exec('C:\path\to\middlemanapp.exe -emupath="C:\path\to\emu.exe" -recordkey="F6" -backkey="F12" -rompath="C:\path\to\rom.n64"');
The middle man is told what emu to use, what buttons to map, and what rom to load. Basically each 'game' in the plugin would only really be launching any dos command you want, be it a PC game or the middle man app useful for emulation.
Anyway these are my thoughts. Would anyone else find this useful? At the moment the best solution I've found is the MAME frontend but it requires me to use my DVICO remote as well for me to record etc (the DVICO remote can map to keyboard commands). So I've got my MCE remote, DVICO remote, and Logitech cordless rumblepad all needed just to play a simple game.
Short answer - MCE plugins suck ****. MS really let developers down in this department, the SDK is abismal and after looking at writing a few plugins myself and not bothering due to the unnecessarily complex architecture, my recommendation is do the same. Sorry to be such a stick in the mud, I am hoping vista MCE which is "just around the corner" will be much improved in this area in particular, but it could turn out to be not worth the wait.
EDIT: just to clarify, the **** you see above was a.r.s.e which apparently if filter worthy, just in case you were wondering if i wrote something far more sinister which is also a four letter word
I think some are being a bit harsh. As Glinda the Good Witch said "the best place to start is at the beginning". The would be obtaining a copy of the SDK, reading the doco and working through some examples.
Some may find the SDK overly complicated but I think the real issue is that developing plugins for MCE is not something that is meant to be sone by a casual MCE programmer. In otherwords, if you do it alot, then just as any other framework there is less referring to the doco and more work that gets done.
Years ago, when I first started using C# and VS Studio .Net the vast framework and class library was rather daunting. Now it is second nature since virtually all my development is done in it.
Ok, maybe I am being a little harsh, but the obvious lack of numbers of plugins available for MCE, given its userbase is a pretty good indication of the challenges.
Its just that making us develop in hosted html means plugins do not integrate well into the interface, and doesn't give the users a consistent look and feel, and makes doing trivial tasks a real effort. It is obviously not something which got much thought or time from redmond.
If we haven't discouraged you too much, by all means check out some of these resources to get you started...
Being a virgin at MCE programmer I have the following to add.
I’m reasonable fluent in five of the major programming languages including JavaScript, vbscript and xml which are recommended for best integration with MCE.
Currently I’m working on three MCE applications (Fishing/weather, VideoRedo interface and live movie guide applications). It has been both fun and extremely frustrating.
At the best of times integrating with Microsoft programs is difficult but MCE takes the cake.
For example you may or may not know the following:
a) There are reserved buttons on the MCE remote that can not be accessed nor reprogrammed (without a very serious registry hack of the main program). And of course these are the buttons you’re more likely want to reprogram (i.e. FF, FR, Play, Stop, Record, Power, Teletext buttons and the list goes on.
b) Also you have very limited control of playing media. For example the buttons you can program are rendered useless if media is played in full screen mode.
And the list go on……
But there is nothing better then developing a program that you can easily be accessed from your armchair. It’s just a shame that M$ has made MCE so difficult to interface with.
Cheers
Markham
Last edited by mppa; 18th January 2006 at 01:39 PM.
If MCE wasn't running and you theoretically wrote a program to just log all of the button presses on the MCE remote, what ones would it be possible to log? Obviously the green button is going to be N/A, same with ones that have the ability to launch MCE like 'Live TV' etc.
Theoretically you could use them all but that would be a serious hack of the MCE remote controller (or rewrite your own controller .dll), that’s somewhere I personally wouldn’t like to go. I’m having enough problems with normal windows interfacing then to add that level of complexity.
I would suggest using a different remote control if you’re not using the MCE environment.
In the MCE environment, from memory the available keys are Up, Down, Left, Right, Enter, Skip Back/Forward, key pads 0-9, # & Clear. I think there might be one other but that's about it.
I don't know where to tell you to start but I joined this forum just to tell you how long I've been looking for this EXACT plugin. Please write it. I use NES, SNES, MAME, N64 AND SEGA (Sega,Dreamcast,SegaCD) emulators and want to be able to do exactly as you suggest. Scroll to the Console - I pictured it as the name of the console and a picture of the console w/ the controllers - and a display of my game's cover art. Click on the cover art and the game loads into the emulator.
Have you started working on this? How can I follow it. I'm definitely interested in trying it.
Well someone in another thread made a little application that will launch external games and gracefully kill the MCE GUI before doing so, then when the game itself is closed it will reload the MCE GUI.
To me that's one of the hard parts already done. There's two other parts that need doing.
1) A 'file browser' style interface that takes a dir of a folder and then lists the games with the launch command being the location of the emu based on extension. Seems easy.
2) Something to make the controller work in the desired way. Seems hard.