Sourceforge upgraded their MySQL servers to 4.1.x, and we neglected to move our database over to it. However, the nice folks at sf.net have provided a database dump, and the forums (http://mameox.sourceforge.net/forums/) are back up and running.
My apologies for the delay in having the source uploaded and available. I was on a buisness trip for the last couple of weeks can could not make the release. Better late than never, right?
Enjoy, and major thanks to Xport for all of his hard work on this!
MAMEoX - MAME/Arcade Emulator for XBox v0.84.b1
What's new :
- Virtual memory - practically everything that runs in MAME/Windows should run
on MAMEoX now
- MAME 0.84 sources merged
- Lightguns should work pretty well now
=========================================================
Important Notes - Read EVERYTHING here before complaining
=========================================================... read more
MAMEoX is a port of the popular MAME (Multi Arcade Machine Emulator) system to the XBOX. The main goals of the project are to provide a well documented port with a consistent coding style. The 0.79.1b release incorporated the 0.79 MAME core and fixed a small bug for warning message when clock is not set.
MAMEoX 0.76.1b Release notes:
+ Incorporated 0.76 MAME core
+ Incorporated 0.75 MAME core
(.76 came out too quickly to release)
Release notes:
+ Incorporated .74 MAME core
+ Some fixes for vector games
+ Analog input for pedals is fixed
+ Now uses a graphical progress bar
+ Fixed some problems with vector games
+ Now warns you if the XBOX clock isn't
set (this screws up neogeo games)
+ Fixed screensaver bug (disabling the
screensaver caused a infinite
'input-eating' loop
+ Fixed problem with 2 bpp paletted PNG
files (monochrome screenshots)
+ Many game-specific fixes (thanks to
Xboxed and users of the rom status
reporting system) ... read more
Yesterday I threw in write buffering for write operations, which fixes the problem w/ exiting games taking forever for some people (still not sure why it didn't take long for some of us, but did for others, but it should be good for all now). That's enough to warrant a minor release (nothing super major has changed unless you happen to have 128 megs of RAM).
As a side note, this is the first release done by Noodle & Falz, I actually didn't touch it at all, which saves me pretty much an entire weekday's worth of time for development. I'd like to say "thank's again" to them for their hardwork and quick learning ability :)... read more
New release time, (it'll go up within the next couple of hours) notable changes follow:
- Integrated MAME core 0.71
- Switched to a more aggressive handling of silent XBE
dependencies. This change frees up almost another megabyte of
RAM, which will hopefully get a couple more games working. This
will undoubtedly break games that used to work until they are
reported and thrown into the new families, but it gives up about
a meg of RAM.
To anyone who just read through that paragraph, please pardon the
yelling:
THERE IS A VERY GOOD CHANCE THAT THIS BUILD WILL BREAK SOME
ROMS THAT WORKED BEFORE! THIS IS A CONSEQUENCE OF AN AGGRESSIVE
STRATEGY TO RECLAIM A LITTLE MORE RAM. PLEASE, PLEASE, PLEASE
REPORT ANY ROMS THAT HANG/CRASH!!
Just had to make sure that everybody gets at least that part, if
you guys don't report the bugs, I don't find them and can't fix
them for you :)... read more
Changes worth mentioning:
- Better lightgun support. The calibration screen which works perfectly, but the MAME core code does not seem to work reliably for lightguns. I've currently hacked it such that the lightgun acts like a standard analog controller, so it's sometimes usable, but still needs work (I'd say it's 85-90% there now).
- Fixed it so that you can use a normal gamepad for lightgun games, if you don't have a lightgun attached (and pointing at the screen). ... read more
0.70.3b should go out tomorrow night (I had hoped to put it out today, but there are still a few things I want to clean up first).
Changes worth mentioning:
- Better lightgun support (this is what I'm still working on). Right now I have a calibration screen which works perfectly, but for some reason games seem to get incorrect values.
- Fixed it so that you can use a normal gamepad for lightgun games, if you don't have a lightgun attached (and pointing at the screen).... read more
I figure I'll break this one into a timeline, seeing as there was only a single day of development between 0.70.1b and 0.70.2b:
- I received some more reports of more games that were verified working in older versions of MAMEoX that didn't work in 0.70.1b.
- Started looking (again) into ways to free up more memory.
- During my search, I tried merging all the various driver code/data/bss/const sections into one section per driver. I tested it, and realized that apparently it had actually hurt the amount of memory available.
- This prompted me to look into why concatenating sections would use up so much more memory. During testing, I found that unloading the driver sections did _nothing_.
- Started wondering why that was, realized that you could theoretically have more than one section on a single page in RAM. Therefore there would have to be refcounting to ensure that you didn't free up a page just because one of the sections within it were free'd.
- Realized that MAMEoX immediately loads all the driver sections, even though they should be preloaded when the XBE is booted up. This sets the refcount on _every_ driver to 2, so they don't get unloaded.
- Took out the call to load the sections, watched memory go from 32 megs free to 50 megs free.
- Jumped up and down
- Enabled code to sectionize CPU's
- Tested Golden Axe 2 (xdelusion's post reminded me that I used to play and enjoy Golden Axe at a bowling alley when I was a kid. The fact that it didn't work, but had worked in the past prompted me to do all this testing). GA2 failed.
- Debugged trying to figure out WTF was wrong. Found out that I was unloading the CPU section just before I loaded it, but after some initialization was done by MAME. Therefore, anything malloc'd by the CPU code was free'd back to the heap and invalidated, causing everything to go to hell.
- Fixed it by incrementing the refcount of the used CPU's before unloading the unused CPUs
- Tested in debug mode, works fine.
- Started a build in retail mode, got some food.
- Tested GA2, and some other titles in Retail mode (removing the code to load the driver sections was what broke the 0.66b release). Seemed to work fine, so I made a release.
- Release mode crashed just like 0.66b did, so I looked at all of the optimization options trying to figure out what could be wrong. Tried turning off String Pooling, as I figured it could cause additional dependencies between XBE sections. Tested, and this seems to be the case.... read more
0.70.1b is out.
Major changes:
Proper analog support
Option for screen rotation
Option for different D3D filtering
Virtual Keyboard support for Options screen
Fixed a couple of places where games would exit due to lack of memory w/out reporting that to the user.
It has come to my attention that MAMEoX has been violating the MAME licensing agreement in at least one or two ways:
1) "The version number must also match the
number of the official MAME version from which you derived your version."
To correct this, the next release of MAMEoX (and the current CVS image) will be versioned either 0.69.1b, or 0.70.1b, depending on how motivated I am to integrate the new core.... read more
The 0.66b release seems to be screwed up, any release images built from a totally clean download produce a binary which is unable to load any ROMs. This has been verified by all of the developers, and I apologize for the screwup.
0.67b will go out as soon as we get everything working again (it's turning out to be somewhat difficult). In the meantime there is a workaround for anybody really eager to screw w/ 0.66b. You can disable optimization for the MAME library, which seems to make everything work (though slowly and with some extra cost size-wise).
0.66b is out. The main changes are many stability fixes, a fix to the cheat feature (it was broken in 0.65b), and some other small changes.
So Lightgun support (and MAMEoX in general) has hit a small snag: The Transportation Security Administration (www.tsa.gov) has apparently stolen all of my XBOX controllers, my lightgun, all of my CDs and games, and my friend's iPOD. I opened up my luggage to find a "Notification of Baggage Inspection" lying where most of my stuff should've been. It doesn't mention anything about them taking stuff out, just that they carefully rifled through everything.
As it turns out, I have the breakaway part of one of the controllers (the short part cable that goes to the XBOX), so I guess that's not a total fucking loss.
Needless to say, the only thing I can do is fill out a damage claim and watch as I get no money and no equipment back. I'm just lucky that I decided to take the XBOX itself as carry on, otherwise I would've been really screwed.... read more
Good news and bad news:
First the good news:
I've just noticed that the MAME core team has released version 0.69, looks like all it adds are a bunch of new drivers, so it should be a half-hour integration.
Now the bad news:
Apparently some of the features of version 0.65 (on CVS now) are not supported by the older VC6 SDK. The team has decided that it would not be worth it to release stripped down versions for VC6, so the older SDK will no longer be supported at all. The VC6 project files will not be included in future releases.... read more
Version 0.64b is now more or less ready. Major features include an integrated INI file editor, a bunch of bug fixes, and the inclusion of MAME core 0.68.
Unfortunately we've run into some problems with the Visual C++ 6 portion of the project, so compiling with that setup is not currently possible.
Just noticed that a new MAME core version (0.68) has been released, and I'm now updating MAMEoX.
Expect a new release (0.64b) including the latest MAME core by Monday or Tuesday at the latest.
Split the ROM listing off into a separate XBE file. This leaves us with some room to make major interface improvements (beautifications) without affecting the MAME core. More importantly, this insulates us from any memory leaks in the MAME core (when some ROMs ran out of memory during bootup, they wouldn't release everything back to the system, which kept other ROMs from running).
Other changes are fairly minor:
cheats are (theoretically) enabled, by request :)
Sound popping may be slightly improved, there are still buffer underruns, but I kludged it by clearing ahead 1 frame's worth of samples to 0 so its at least not old data.
Included support for VC6 & the older SDK
Bug fixes for vector graphics games
Sound subsystem improvements
MAMEoX is now open for C/C++ developers, send me an email if you're interested.
Stupid mistake, some functions of gamepad 3 were mapped to gamepad 4 and vice versa.
Grab xbox_JoystickMouse.c to fix.
There won't be a new full release for this, as I don't feel it's a critical bug.
Other news:
I plan to open development to interested parties by Tuesday, I'm just writing up some guideline docs and stuff. Anybody interested in doing development should email me.
Question of the day:
What's the best way to do a changelog keeping track of all of the files that have changed and why they were modified?... read more
There was a pretty annoying bug in v0.6b that has now been fixed. The best way to fix it would be to check out "InputManager.h" from CVS, though a new source release is currently in the works.