Edit: Weird.. I edited this message and then came back to it just now (an hour later) and my changes seem to be gone! hmm.. Let's se if I can remember what they were.
This isn't a final list, by any means, it's just a starting point.
BYOFE has very close to the framework needed for most of this stuff and implementing these features should be relatively easy (at least I had all these in mind while I was programming it back 6+ months ago).
Implementing these features in any FE is no easy task, especially one that is just starting out like BYOFE. It will be much more productive if we all got together to build it instead of just one person. If you have any interest in helping out, please PM me! You've seen the code, you know what I've got.
Also, if you have any opinions on this list I'll be happy to hear constructive thoughts. Are there features you like/dislike? Maybe some that are more useful than others? Do you have any wishes that are not on this list?
BYOFE planned features
-----------------------------------------
- Main program
- The list scrolling should be capable of "MAMEWAH speeds". You know, fast.
- 3D cabinet models, in addition to standard artwork.
- WAV, MP3 support
- Speech engine for on-the-fly announcements: "Get ready for... MOON PATROL!"
- 3D support, for fancy layouts like wheels.
- ROBUST gamelist filtering. Having "easy" gamelist filtering is secondary, but no matter what the average user will have basic needs, and game list filtering should be easy for these people, at least.
- Should be knowledgeable in that it knows about the majority of the popular emulators out there and compensate for their lack of cabinet-friendlyness. Automatic "exit key" always exits the emulator, for example. No need for wrappers.
- Knowledge of controls.dat project, including integrated layout viewer.
- Have LED support.
- Have a "plugin" architecture, as to remain extensible. Possibilities include a python/javascript/ruby/vbscript interpreter or compiled plugins that use BYOFE's API. Plugins could be used for things like fancy lighting, internet communication (updating a "now playing" tag, for example), etc.
- Animated layouts
- Layouts should have the capability to be mouse driven (for touchscreens).
- MNG, animated GIF support
- Low-res monitor support
- Integrated pause feature. If I press the pause key, I want certain features (cp layout, custom message, etc) to be available no matter which emulator I'm running. This is a toughy. I don't know how this would work globally and might be restricted to certain emulators.
- Should be fairly self contained. MAME is the most popular emulator around here so it should be the most supported (incidentally, it's the one that changes the most :/). When BYOFE and DLLs are dropped inthe the MAME folder, it should know about this and configure itself for MAME (yes, automatically).
- Config program
- Should be internet enabled. I want to download config files, layouts, and plugins on the fly without leaving the config program.
- Should be knowledgeable about the different popular emulators and configure for them automatically. "Daphne has seperate movie and index files? no problem! The directory structure is in its config file." "Oops, it looks like your daphne is a little misconfigured. BYOFE recommends __________."
- Wizard interface to start with, with an "advanced mode" to access all the nitty gritty options.
- Should conform to and recognize some sort of layout specifications. The idea is that for the most part, people have thier emulators and emulator support files (cabinet shots, screen shots, etc) in 2 different "layouts". The config program should automatically recognize, and configure for these:
<ROOT>
|- emus
|- <EMULATOR>
|- <EMULATOR.exe>
|- <EMULATOR>
|- <EMULATOR.exe>
|- artwork
|- <EMULATOR>
|- <ARTWORK TYPE (cabinets, marquees, etc)>
|- <ARTWORK.jpg>
|- <EMULATOR>
|- <ARTWORK TYPE (cabinets, marquees, etc)>
|- <ARTWORK.jpg>
and
<ROOT>
|- <EMULATOR>
|- <EMULATOR.exe>
|- <ARTWORK TYPE (cabinets, marquees, etc)>
|- <ARTWORK.jpg>
|- <EMULATOR>
|- <EMULATOR.exe>
|- <ARTWORK TYPE (cabinets, marquees, etc)>
|- <ARTWORK.jpg>