资源说明:
More project information and help can be found on the MAMEoX website
http://mameox.sourceforge.net or the MAMEoX sourceforge project page
http://sourceforge.net/projects/mameox
---------------------------------------------------------------------------
Compilation requirements:
Visual Studio .NET 2003
ZLIB source (http://www.gzip.org/zlib/)
---------------------------------------------------------------------------
Installation:
1) Unzip ZLIB to the ZLIB directory. You only need the following files:
adler32.c
compress.c
crc32.c
deflate.c
deflate.h
gzio.c
infblock.c
infblock.h
infcodes.c
infcodes.h
inffast.c
inffast.h
inffixed.h
inflate.c
inftrees.c
inftrees.h
infutil.c
infutil.h
maketree.c
trees.c
trees.h
uncompr.c
zconf.h
zlib.h
zutil.c
zutil.h
(Also the project files, and any license text files)
ZLIB can be downloaded for free off the web, the homepage is currently
http://www.gzip.org/zlib/
2) Open the MAMEoX.sln file and build the solution for Release mode
(or Debug mode if you're doing actual development).
This can be done via the following steps:
a) Build menu -> Configuration Manager...
Change the "Active Solution Configuration" field to "Release"
Click "Close"
b) Build menu -> Build solution
Note: You may have to change the include/link paths, depending on where
you placed MAME and the SDK files. This can be done via the "properties"
submenu of the MAMEoX (and possibly the MAME) project.
Note: You may also have to patch the resulting XBE file if your
set does not execute debug files.
3) Create a directory for the program on your Xbox. The default directory
structure is:
-
- Media
> All of the resource files from the MAMEoX\Media directory in the source
package, including help.txt and Resource.xpr (created during the build
process)
default.xbe : The Launcher executable file
MAMEoX.xbe : The helper executable file
- roms : This is where you should put all of your ROM files/directories.
NOTE: There is currently a speed hack that _requires_ all ROMs
to be zipped! Unzipped files will not be read at all!
- backup : Directory where "deleted" ROMs are stored
- artwork: This is where you put bezels, overlays, etc...
- samples : This is where you should put all of your audio sample zips
- hdimages : This is where you should place your CHD hard disk image
directories
- general : This is where cfg files, cheat file, and other general files
are stored. When in doubt as to where to put a 3rd party file,
this is probably the place.
NOTE: You shouldn't have to actually create any of the sub directories (except
roms, roms/backup, and other directories with data you provide (hdimages, audio
samples, etc...)) as of v0.5a. They will be automatically created when you
first run MAMEoX.
NOTE: Starting with version 0.64b, if you are playing MAMEoX off of a CD/DVD,
most of these directories will be created on the U:, which is probably
mapped from E:\UDATA\4d414d45 (MAME in hex)
!!!IMPORTANT!!!
DO NOT RENAME OR MOVE EITHER OF THE XBE FILES! MAMEoX (as, I believe,
any XBOX executable) is _very_ picky about where its files are and
what they are named. Renaming or moving either file will cause MAMEoX
to fail!
---------------------------------------------------------------------------
Compilation Errors:
NOTE: If you use the SourceForge distribution you shouldn't get any compiler
errors. If you do, please submit them as a bug.
Compilation errors that I've dealt with in the past:
a) png_get_info is defined multiple times: You can safely #ifdef this
function out of the MAME source, it is not called.
b) Internal compiler errors
i) You may see errors on switch( offset<<1 ) statements. To fix this,
you'll have to rewrite the switch statement as "switch( offset )"
and divide all of the case values by two. Hopefully this will be
fixed in future versions of MAME, as switching on offset<<1 has
no practical value.
ii) I've seen at least one error in the x86 cpu code where the compiler
choked trying to build up a value via bitwise or's (|) and pass it
immediately to a function/macro. To fix this, I delcared a temporary
variable, assigned to the value that had to be passed to the function,
then passed the temp var to the function. Unlike (4.b.i), there's no
reason not to build up a variable while passing it to a function, and
it's such a common operation that it's somewhat surprising to see an
error here. Therefore the kludge has not been reported, and may or may
not have to be reimplemented in the future, depending on where and
when the compiler feels like barfing.
iii) Other internal errors: Try reordering header files :) If this does
not fix your problem, feel free to post a bug, and it will be looked
into.
c) Normal compiler errors:
i) I've encountered some compiler errors where driver writers have not
produced fully ANSI compliant code. For the most part, these are simple
cases where a variable is declared after the first non-declaration
statement. They may be fixed (with some care) by moving the declaration
to the top of the function.
ex:
int blah;
blah = 1;
int foo; <= Compiler error
int foo; <= Move it before the first non-declaration
int blah;
blah = 1;
ii) Symbol redefinitions in multi32.c: Several global variables are
defined in both multi32.c and system32.c (drivers). They can be
fixed (probably, I've not tested any ROMs that use these files)
by making the declarations in multi32.c "extern"
extern data16_t *system32_mixerregs_monitor_a; // mixer registers
extern data16_t *sys32_tilebank_external;
extern data16_t* sys32_displayenable;
extern int system32_temp_kludge;
extern data16_t *sys32_spriteram16;
extern data16_t *sys32_txtilemap_ram;
extern data16_t *sys32_ramtile_ram;
extern data16_t *scrambled_paletteram16;
extern int system32_palMask;
extern int system32_mixerShift;
extern int system32_use_default_eeprom;
d) Crashes:
i) There's a known (and reported) 0.67 crash bug in tilemap.c in the
tilemap_dispose function. This bug will cause the system to crash
if it runs out of memory when creating the graphical tilemaps. To fix
it, replace the while loop and the following line with:
while( prev && prev->next != tilemap ) prev = prev->next;
if( prev ) prev->next = tilemap->next;
This ensures that the system will not mind if a tilemap is freed that
has not been added to the linked list.
e) Missing files:
i) If your XDK is installed to a directory other than default (and
sometimes even if it's in the default) you may see build errors
about missing files: xbutil.cpp, xbfont.cpp, xbresource.cpp
If this happens, delete these files from the MAMEoX and MAMEoXLauncher
projects, then re-add them from the correct directory
---------------------------------------------------------------------------
Usage Help:
Read the help screen from within the MAMEoX launcher (press START to
bring up the menu from which you can read the screen)
---------------------------------------------------------------------------
Contributions:
- Any reports of bugs, crashes, etc... that you can file would be great.
Just be sure never to send any copyrighted materials (ROMs, compiled
XBE images). The more detailed the report, the better. Bugs will most
likely be handled in the order of legibility, reproducibility, and general
"niceness" of the report. That is to say, if you report "ROM x doesn't
wurk u fag, u suk", the report will likely be sent to the circular file.
However, if you don't have the technical background to give a really
detailed report, just saying "ROM x crashed my machine when booting" or
"ROM x crashed my machine on level 3" w/out any flames is enough. If you
can, please try to reproduce the problem and be sure to mention whether
or not you can consistently reproduce it.
---------------------------------------------------------------------------
If this guide is not complete please report your problems. The intent
of this project is to make it easier for anybody w/ the right tools and
a little bit of coding experience to compile and run this port of MAME.
---------------------------------------------------------------------------
Special thanks to Klaus of www.wolfsoft.de for donating 128 meg upgrade
chips to allow me to profile and test larger ROMs!
---------------------------------------------------------------------------
Licensing:
The contents of the MAME directory (other than the MAME.vcproj, MAME.plg,
and MAME.dsp files) and the c_m68000 directory are protected under the
MAME licensing agreement. A copy of this agreement may be found in the
MAME/Docs directory, as "mame.txt". This license may also be found
online at www.mame.net/readme.html
All other files distributed with this project are protected by the GNU Public
License, unless otherwise noted within the file.
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。
English
