• HomeBoards
  • RulesRules
  • HelpHelp
  • WikiWiki
  • Donate

Author Topic: Porting AdvanceMESS to Dingux - Anyone want to assist?  (Read 2634 times)

dhalsimrocks (OP)

  • Posts: 9
Porting AdvanceMESS to Dingux - Anyone want to assist?
« on: April 07, 2011, 08:26:17 pm »
One of the things I like about the dingoo is its ability to show video game history.  I thought it would be cool to emulate some more old systems like the Fairchild Channel F, Odyssey 2 (which does emulate nicely in native) and Bally Astrocade.  I looked into Channel F emulators and found only one: the MESS emulators (Multi Emulator Super System), which is a collection of console and computer emulators bundled together like MAME.  In fact, it's built using some MAME source and its structure.

For the last few days I've worked on porting AdvanceMESS (http://advancemame.sourceforge.net) and I've had some success.  It built fine and with a little configuration assistance from Ayla, I was able to get it running in Dingux.  There's good and bad to report.

The good is that a number of emulators have worked, some without any available alternatives on the dingoo.  I've only tested a handful so far, but MESS supports quite a few.   One bit of good news is that Fairchild Channel F emulation appears to work pretty well, as does the Bally Astrocade.  Colecovision, NES, GameGear, SMS and Atari 2600 all worked, but slowly.  You see, the MESS project focuses on accurate emulation, rather than fast emulation, which is not in our favor.  Before I move on, here are some screenshots:

Alien Invaders - Fairchild Channel F

Galaxian - Bally Astrocade

Burgertime - Colecovision

Shining Force - Sword of Hajya - GameGear

Phantasy Star - Master System

As you can see, colors are a little messed up on SMS and GameGear (GG looks worse on the screen... there are 1 pixel green outlines around everything).  Everything else looks fine.  Sound is good, but as with the emulators, very slow.  I didn't have much luck with Vectrex, Odyssey2, Intellivision or VC4000.

I was able to improve speed by overclocking and rebuilding with profiling (thanks again Ayla).  I was also able to build binaries that support only one emulator, which dropped the size of the executable from 12MB to 3.5MB., so that's a win as well.  I also improved speed by increasing the sync_speed option, but sound suffered greatly.  I haven't played with frameskip yet, but there's that as well.  Still, you shouldn't need to use frameskip on Pitfall.  :P

What I'm wondering now is if it's possible to streamline and optimize some of these emulators, perhaps sacrificing some accuracy for the sake of playability.  At this point I don't see much point in focusing on the emulators that have alternatives.  But it would be nice to have those that don't.  Already I'd say Channel F and Astrocade are playable and close to normal speed.

It's also possible that I could find some configuration options that help improve performance as well, both in build configuration and the AdvanceMESS configuration.  I'm still learning more about it as I go.

Thing is, while I'm a programmer with a lot of Linux experience, I don't have much experience with emulator code.  So any assistance with this would be really appreciated, even if it was just to see what may be possible.


  • Posts: 213
Re: Porting AdvanceMESS to Dingux - Anyone want to assist?
« Reply #1 on: April 07, 2011, 10:14:15 pm »
I think tackling the emulators which already have alternatives might be good as well. Some of those emus available for Dingux could use an update (like the NES ones). Of course working with them one by one might be better than working on all of them at the same time (though I suspect some of them may share code, like CPU interpreter\recompiler if both emulated machines have the same CPU).

I can't offer you much help, because I don't have much experience with writing emulators (nor with linux - though this isn't that big of an obstacle in writing stuff for Dingux). The only thing remotely related to emulation which I ever did (except using emulators ;)) was writing an implementation of Core Wars in VS2k5 (a very buggy one*). I do know how emulators work more or less (or at least I think I do), but I'm sure there are folks on this board who can help you more.

I bet you already did what I'm going to suggest, but have you been to the dingoonity IRC channel?

*That Core Wars displayed memory cell occupation in a Neon Genesis Evangelion Magi Supercomputer style diagram :D (stuff inspired by the hack attacks on Nerv's computers)