Joined: 5/15/2006
Posts: 15
Location: Paris, France
Thanks for your answers, guys. I'll keep everything in mind.
I'm very busy so I don't expect to add those features so soon, but whenever possible I'll consider this and will keep you tuned.
I think we need to decide which SMS emu to use before we go further.
Meka
Pros:
* Excellent Compatibility
* Supports multiple systems (SG-1000,SC-3000,SF-7000,Sega Mark III,SMS/GG,ColecoVision,Othello Multivision)
* Joystick & Mouse support
* Memory Viewer already exists
Cons:
* "unique" graphical interface
* Source code is a mess
* convoluted build process
* Linux and dos versions not updated as recently as windows version.
* No gamepad support (unless it emulates a joystick)
Dega
Pros:
* Standard interface
* Current Linux build
* Good source code organization
Cons:
* Compatibility issues on certain games
* Only supports SMS/GG
* No support for control configuration. (No support for gamepads/joystics)
* No DOS version
Gens+
Pros:
* Centralization -- Gens rerecording support could be ported here, and there would be no need to modify a second emulator
* Move recording framework already exists
* Standard interface
* Buttons are remappable
* Gamepad support
* Theoretically easily portable to linux because it's based on Gens
Cons:
* Compatibility issues on certain games
* Only supports SMS/GG Genesis/Megadrive (plus addons)
* Source code is a mess
* No DOS version
* No current Linux version
How fleeting are all human passions compared with the massive continuity of ducks.
I'm not an expert, so I'd show 2 main criterias :
- chance that the emu gets accepted on the site/submission system
- time needed for the coder (you atm) to convert the emulator's source code and maintain it
Meka's GUI and source code both fail those criterias (in that respective order), so unless Bock helps you or do it for us, I believe it's out of the course.
since you're already kind enough to give us your time to make the modifications for us, I'd suggest you take the emulator basis you like most.
if dega's source code is easier (for you) to read/alter, then there is no problem you take it. ok some games won't work as soon as they would with meka, but it's certainly something we can live with.
if importing gens-9f modifications into gens+ is easier for you, then go with it.
I frankly believe that we're lucky enough that someone is nice enough to do it, and we're desperately waiting for a sms/gg rerecording emulator, so I wish you good luck with either choice you make, and thank you in advance.
I never sleep, 'cause sleep is the cousin of death - NAS
Joined: 5/15/2006
Posts: 15
Location: Paris, France
I don't understand the first criteria, what acceptance are you looking for?
Upthorn:
What do you means? What's the difference between a gamepad and a joystick?
tasvideos (fomerly known as nesvideos) is a site where players can submit TAS, that is, inputs recordings of oldschool consoles emulators.
the site works as a community : everyone has the right to create those movies, but there are rules.
I'll pass on the submission/workbench/vote/judge/publishing system (I suggest you read the faq), but to prevent the movies from being accused of cheating, one rule says that the emulator the movie was recorded with, must be accepted by the admin (Bisqwit) of the site. he has written very specific conditions so that an emu can get accepted and added to the publishing system.
there are 2 kinds of features :
- needed features, IE what an emulator and the movie format it generates must do (example : savestates, record from reset, tell if pal/ntsc, only record inputs and other stuff)
- confort features : often required by players to allow them to create movies more easily, like frame search
short answer : your emulator must obey the rules of this site, so that movies made by it can be accepted to.
about the joystick support : I don't know, maybe the facility to use actual PC pads/sticks ?
I never sleep, 'cause sleep is the cousin of death - NAS
The major difference between a gamepad and a joystick is that a gamepad doesn't have a stick, instead it has four buttons underneath a directional-pad. Which, I think, would return boolean "is pressed" values, rather than integer axis values.
I may be wrong, though.
How fleeting are all human passions compared with the massive continuity of ducks.
Joined: 5/15/2006
Posts: 15
Location: Paris, France
SXL wrote:
short answer : your emulator must obey the rules of this site, so that movies made by it can be accepted to.
OK then, considering all emulators mentionned above (Meka, Dega...) have zero of those features, I don't understand why above is was mentionned that "Meka's GUI and source code both fail those criterias". Is the GUI causing any problem with your set of rules?
Joined: 5/15/2006
Posts: 15
Location: Paris, France
upthorn wrote:
The major difference between a gamepad and a joystick is that a gamepad doesn't have a stick, instead it has four buttons underneath a directional-pad. Which, I think, would return boolean "is pressed" values, rather than integer axis values.
This is supported by MEKA.
What MEKA doesn't support yet are analog axises (those would certainly be useful to emulate Sports Pad or the Paddle Control controllers).
Here's the deal. A rerecording SMS emulator doesn't exist. If you add this feature to yours, people will use it. Other people are always going to complain and moan about spaghettified code or the lack of a windowed GUI or whatever ... I say do what you can, if you feel like doing it, and ignore the naysayers. People WILL use Meka if you add this feature, it's a fact.
Joined: 2/28/2006
Posts: 2275
Location: Milky Way -> Earth -> Brazil
I think that FreezeSMS is the best SMS emu, but I don't think it's open source...
And, why would anyone use analog sticks in a Master System??? You could use an ATARI controller to play that thing...
About the the emus, use the one which has the best compatibility (so it would allow more than only SMS games), memory viewer is desirable too.
DOS & Linux versions are welcome, but not required.
Meka seems to be the obvious choice, if it's possible to accomplish the task.
"Genuine self-esteem, however, consists not of causeless feelings, but of certain knowledge about yourself.
It rests on the conviction that you — by your choices, effort and actions — have made yourself into the
kind of person able to deal with reality. It is the conviction — based on the evidence of your own volitional
functioning — that you are fundamentally able to succeed in life and, therefore, are deserving of that success."
- Onkar Ghate
Bisqwit wrote:
Joined: 5/15/2006
Posts: 15
Location: Paris, France
Xebra: Thanks. That pretty much sum it up, and I have to agree. I'm one to talk more than I work nowadays, so I'd rather just shut the hell up and take the time to do this sometimes. It's just that MEKA has gazillions of things to do.
Pirate: FreezeSMS is pretty outdated and not being worked on anymore, AFAIK. MEKA has the best compatibility of all Sega 8-bit emulators considering it supports more known mapper and peripherals. KEGA Fusion is greatness but its author is pretty closed and don't expect sources for that. SMS Plus is also good, free software and well ported (more than MEKA). MEKA has a memory editor and powerful debugging tools which can certainly help in order to figure out game engines particularly and abuse them. Paddle Control and Sports Pad are two analog devices for the Master System.
Kyrsimys: MEKA works on Linux except for sound which is jerky if even working, which is a big drawback for most games players (I hope it can be improved).
short answer : your emulator must obey the rules of this site, so that movies made by it can be accepted to.
OK then, considering all emulators mentionned above (Meka, Dega...) have zero of those features, I don't understand why above is was mentionned that "Meka's GUI and source code both fail those criterias". Is the GUI causing any problem with your set of rules?
1st criteria : getting accepted on the site. ok, if you add the needed features, it will be accepted, but as Frenom suggested in another thread, Meka's GUI isn't the most practical to use for movie making purposes. people are used to the windows-style GUI, so my argument was that they'd prefer emus having it. but as xebra mentionned, the first working rerecording SMS emu will be used anyway.
2nd criteria : the source code. I have the regret to say that it's not enough to include the needed features ; there will be bugs and the emu will have to be improved over the future. comparing to Dega's source, it seems that Meka's source does not look as easy and as pratical to read/alter. you might not always be there for us, and if you leave afterwards, and that there are still bugs to be fixed, no one will be able to take the task over. the more complicated/spaghettified the code is, the less chance we have it will happen.
please take those lightly. they're just an opinion. I know that it might not look like it, but whatever the contribution you'll give, the community will be thankful. take your time.
also, I was just trying to help upthorn chose among the propositions he made, and the pros-cons he advanced. sorry if you felt directly concerned.
I never sleep, 'cause sleep is the cousin of death - NAS
ok, upthorn didn't mention it there, so I'll post it for you, Bock, if you're still with us. hope I didn't scare you.
it seems Meka will be the best candidate after all. mainly because it supports much more games than the others. and yeah the code is a mess, but as far as I could understand, upthorn counts on you about it :)
(it seems he's still into Gens but to improve the file format, see other discussions)
so we hope you'll work on Meka ; you're our last hope, obiwan kenobi !
I never sleep, 'cause sleep is the cousin of death - NAS
Joined: 5/15/2006
Posts: 15
Location: Paris, France
I'll be working on it!
Sure MEKA isn't perfect, but AFAIK, I'm the only SMS emulator author to have kept his project updated for such a long time, and I intend to continue to.
I'm very busy and can't make any promise, but feel free to harass me periodically for such feature. :)
Joined: 5/15/2006
Posts: 15
Location: Paris, France
Sorry guys. It's been a busy year for me, and I expect to be busy for a bit more. Still not ETA as for when I can do anything related to this, but it's still in my mind and in the pipeline.
Never hesitate to post or e-mail me, always serve as a reminder.
I need to clean out part of MEKA code and ensure determinism. As a first step, I thought about implementing game-play rewinding. While it's not exactly what you're requesting, technically it would be a decent chunk of the related work done.
Does many emulators have a rewinding feature? (can you list some if so). I thought it would be nice feature, looking a bit "magical". Say, you press Backspace and the game goes back in the past at accerelated rate.
I need to clean out part of MEKA code and ensure determinism.
I was so desperate that you would not come back that I started looking in the source code. full C, with very little documentation, and many speed optimizations/obfuscation (hint : hexadecimal/binary calculus) made me give up after 5 minutes (no emulation programming knowledge :(). so yeah it might need some cleaning, maybe try object oriented programming ?
Bock wrote:
Does many emulators have a rewinding feature? (can you list some if so). I thought it would be nice feature, looking a bit "magical". Say, you press Backspace and the game goes back in the past at accerelated rate.
no, as it seems like a gadget, a cool gadget though.
znes and vba win support it, but it's a feature desired by players, not by the admins here. you'd need to implement their requests first to have a chance to let Meka accepted here.
for Meka's case, I'm not sure but it would need to do those first :
- record input into a decent movie file format. you can find some examples in the FAQ. some additional info must be recorded too : pal/ntsc, starts by a hard reset, etc.
- rerecording (if possible, bullet-proof*) : ability to use savestates to redo parts of the movie. try other emulators to look out how they do.
- avi dump of a movie.
and keep all of those compatible with at least win and linux, if possible mac.
kelesis and mecha dragon will wait... good luck pal !
hope it helps.
*bullet-proof rerecording : to avoid desynchs with unmatching savestates, each savestate must record the whole movie up to this point. hence, when you reload the savestate, you're always sure that your movie is coherent with the savestate.
I never sleep, 'cause sleep is the cousin of death - NAS
*cough* so I guess Bock's option is dead now, and xebra left.
upthorn, I know this sounds a bit heavy for your shoulders, but would you take on the infamous task now ? you proposed to add sms support to the rerecording version of gens. what basis would you take ? Meka's, as you said it gave good emulating results ? from scratch ?
do you have plans to, say, find time to code this during this year ? please keep us in touch.
to the other people : if you really want to see sms tas, please post your interest in this topic and try to encourage coders to create that missing emulator for us. (yeah it does look desperate.)
let's keep hope and sms ftw ! :D
I never sleep, 'cause sleep is the cousin of death - NAS
Joined: 5/15/2006
Posts: 15
Location: Paris, France
SXL wrote:
Bock wrote:
I need to clean out part of MEKA code and ensure determinism.
I was so desperate that you would not come back that I started looking in the source code. full C, with very little documentation, and many speed optimizations/obfuscation (hint : hexadecimal/binary calculus) made me give up after 5 minutes (no emulation programming knowledge :(). so yeah it might need some cleaning, maybe try object oriented programming ?
I'm sorry but "hexadecimal" and "binary calculus" are not particularly optimizations neither obfuscation, this is basic programming. I know MEKA code is not brilliant everywhere (most of the code was written in 1998-1999), but OOP has nothing to do with it.
I'm pretty confident about the fact that not everyone can hack into MEKA today, but I'll help anyone who feel has the knowledge to do something on it. Right now, my friend is taking the afternoon to port MEKA to MacOsX and I'm answering his questions.
- rerecording (if possible, bullet-proof*) :
*bullet-proof rerecording : to avoid desynchs with unmatching savestates, each savestate must record the whole movie up to this point. hence, when you reload the savestate, you're always sure that your movie is coherent with the savestate.
Can you elaborate on that? I'm not sure to understand. What's an "unmatching savestate" ?
*cough* so I guess Bock's option is dead now, and xebra left.
I'm not dead yet! :P Just extra busy with my other project. Feel free to harass me, I like it as a motivator (I'm going to do the change on savestate systems now, that'll be a first step :)