Skip to content

Commit 4546ea6

Browse files
committed
MAME 0.146 tag
1 parent 643d0e9 commit 4546ea6

File tree

5,361 files changed

+3082738
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

5,361 files changed

+3082738
-0
lines changed

.gitattributes

Lines changed: 5360 additions & 0 deletions
Large diffs are not rendered by default.

trunk/artwork/aperture.png

271 Bytes
Loading

trunk/artwork/white.png

122 Bytes
Loading

trunk/docs/config.txt

Lines changed: 1014 additions & 0 deletions
Large diffs are not rendered by default.

trunk/docs/hlsl.txt

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
HLSL-Related Enable Switches
2+
----------------------------
3+
4+
Name Values Description
5+
hlsl_enable 0/1 Enables HLSL post-processing in Direct3D 9 modes.
6+
yiq_enable 0/1 Enables YIQ-colorspace post-processing. Causes a
7+
performance drop but gives a much more authentic
8+
NTSC TV appearance on TV-based systems when configured
9+
properly.
10+
hlslpath [path] Path to the .fx files that are in use. (default: hlsl)
11+
hlsl_ini_read 0/1 Enable HLSL INI reading.
12+
hlsl_ini_write 0/1 Enable HLSL INI writing.
13+
hlslini %g HLSL INI file name for running game. (default: %g)
14+
hlsl_prescale_x [horizontal] HLSL pre-scale override factor for X (0 for auto).
15+
hlsl_prescale_y [vertical] HLSL pre-scale override factor for Y (0 for auto).
16+
hlsl_preset 0-3 HLSL preset to use.
17+
hlsl_write 0/1 Enable HLSL AVI writing (huge disk bandwidth suggested).
18+
hlsl_snap_width [width] HLSL upscaled-snapshot width. (default: 2048)
19+
hlsl_snap_height [height] HLSL upscaled-snapshot height. (default: 1536)
20+
21+
22+
Surface/Color Processing Parameters
23+
-----------------------------------
24+
25+
Name Values Description
26+
shadow_mask_alpha 0.0 to 1.0 The ovearll darkness of each shadow mask pixel.
27+
shadow_mask_texture [filename] A PNG that defines the shadow mask for each pixel.
28+
shadow_mask_x_count 1+ The count of shadow mask elements, X (usually 640-ish)
29+
shadow_mask_y_count 1+ The count of shadow mask elements, X (usually 480-ish)
30+
shadow_mask_usize 0.0 to 1.0 These parameters define the *in-use* pixel count on the
31+
shadow_mask_vsize 0.0 to 1.0 X and Y axes of the shadow mask texture.
32+
curvature 0.0 to 1.0 Screen curvature. Affects borders and shadow mask.
33+
pincushion 0.0 to 1.0 Image curvature. Affects the source image only.
34+
scanline_alpha 0.0 to 1.0 The overall darkness of each scanline furrow.
35+
scanline_size 0.0 to 4.0 The overall height of each scanline.
36+
scanline_height [height] Individual height scaling value for scanlines.
37+
scanline_bright_scale 0.0 to 2.0 The overall brightness multiplier for each scanline.
38+
scanline_bright_offset 0.0 to 1.0 The overall brightness additive value for each scanline.
39+
scanline_jitter 0.0 to 2.0 The relative scanline movement per field.
40+
defocus [xval,yval] This defines the overall defocus radius for the three
41+
post-converged beams. Values allowed range from 0.0 to
42+
32.0.
43+
converge_x [r,g,b] Convergence in screen-relative X direction.
44+
converge_y [r,g,b] Convergence in screen-relative Y direction.
45+
radial_converge_x [r,g,b] Radial convergence in screen-relative X direction.
46+
radial_converge_y [r,g,b] Radial convergence in screen-relative Y direction.
47+
Allowed values for convergence: -150 to 150 for each color.
48+
red_ratio [r,g,b] These parameters define a 3x3 matrix which is multiplied
49+
grn_ratio [r,g,b] by the incoming RGB signal. This can be used for any
50+
blu_ratio [r,g,b] standard matrix convolution, including H/S/V or simply
51+
affecting the TV-style tint.
52+
saturation 0.0 to 4.0 This parameter defines the amount each color channel is
53+
raised above said channel's baseline grayscale value.
54+
A value of 0.0 gives a gamma-correct grayscale image,
55+
whereas 1.0 is full saturation, with each channel being
56+
oversaturated equally beyond that.
57+
offset [r,g,b] These parameters define a value for each color channel
58+
that is added to said channel after scaling and after
59+
matrix convolution. (-2.0 to 2.0)
60+
scale [r,g,b] These parameters define a value for each color channel
61+
that is multiplied with said channel after matrix
62+
convolution. (-2.0 to 2.0)
63+
power [r,g,b] These parameters define the exponent for each color
64+
channel that is applied after scaling, offsetting,
65+
saturation and matrix convolution. (-4.0 to 4.0)
66+
floor [r,g,b] These parameters define the lower limit of each final
67+
color channel value; 0.05, for example, raises the
68+
minimum to 0.05 but re-scales to leave the max at 1.0.
69+
phosphor_life [r,g,b] These parameters define the phosphor lifetime for each
70+
channel, with 0.0 representing no phosphorescence and
71+
1.0 leaving the channel on indefinitely. Values allowed
72+
range from 0.0 to 1.0.
73+
74+
75+
NTSC Processing Parameters
76+
--------------------------
77+
78+
Name Default Values Description
79+
yiq_cc 3.59754545 Color Carrier frequency for NTSC signal processing
80+
yiq_a 0.5 A value for NTSC signal processing
81+
yiq_b 0.5 B value for NTSC signal processing
82+
yiq_o 0.0 Outgoing Color Carrier phase offset for NTSC signal processing
83+
yiq_p 1.0 Incoming Pixel Clock scaling value for NTSC signal processing
84+
yiq_n 1.0 Y filter notch width for NTSC signal processing
85+
yiq_y 6.0 Y filter cutoff frequency for NTSC signal processing
86+
yiq_i 1.2 I filter cutoff frequency for NTSC signal processing
87+
yiq_q 0.6 Q filter cutoff frequency for NTSC signal processing
88+
yiq_scan_time 52.6 Horizontal scanline duration for NTSC signal processing (in usec)
89+
yiq_phase_count 2 Phase Count value for NTSC signal processing (3 for NES, else 2)

trunk/docs/license.txt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
Unless otherwise explicitly stated, all code in MAME is released under the
2+
following license:
3+
4+
Copyright Nicola Salmoria and the MAME team
5+
All rights reserved.
6+
7+
Redistribution and use of this code or any derivative works are permitted
8+
provided that the following conditions are met:
9+
10+
* Redistributions may not be sold, nor may they be used in a commercial
11+
product or activity.
12+
13+
* Redistributions that are modified from the original source must include the
14+
complete source code, including the source code for all components used by a
15+
binary built from the modified sources. However, as a special exception, the
16+
source code distributed need not include anything that is normally distributed
17+
(in either source or binary form) with the major components (compiler, kernel,
18+
and so on) of the operating system on which the executable runs, unless that
19+
component itself accompanies the executable.
20+
21+
* Redistributions must reproduce the above copyright notice, this list of
22+
conditions and the following disclaimer in the documentation and/or other
23+
materials provided with the distribution.
24+
25+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35+
POSSIBILITY OF SUCH DAMAGE.

trunk/docs/mame.txt

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
MAME(tm), the Multiple Arcade Machine Emulator
2+
Copyright (c) 1997-2007 by Nicola Salmoria and the MAME team
3+
MAME is a trademark owned by Nicola Salmoria
4+
5+
6+
----------
7+
I. Purpose
8+
----------
9+
MAME is strictly a non-profit project. Its main purpose is to be a
10+
reference to the inner workings of the emulated arcade machines. This is
11+
done both for educational purposes and for preservation purposes, in
12+
order to prevent many historical games from disappearing forever once the
13+
hardware they run on stops working. Of course, in order to preserve the
14+
games and demonstrate that the emulated behavior matches the original,
15+
you must also be able to actually play the games. This is considered a
16+
nice side effect, and is not MAME's primary focus.
17+
18+
It is not our intention to infringe on any copyrights or patents on the
19+
original games. All of MAME's source code is either our own or freely
20+
available. To operate, the emulator requires images of the original ROMs,
21+
CDs, or hard disks from the arcade machines, which must be provided by
22+
the user. No portions of the original game code are included in the
23+
executable.
24+
25+
26+
--------
27+
II. Cost
28+
--------
29+
MAME is free. Its source code is free. Selling either is not allowed.
30+
31+
32+
----------------
33+
III. Image Files
34+
----------------
35+
ROM, CD, and hard disk images are all copyrighted material. They cannot
36+
be distributed without the explicit permission of the copyright owner.
37+
They are not "abandonware", nor have any of the games supported by MAME
38+
passed out of copyright.
39+
40+
MAME is not intended to be used as a tool for mass copyright
41+
infringement. Therefore, it is strongly against the authors' wishes to
42+
sell, advertise, or link to resources that provide illegal copies of ROM,
43+
CD, or hard disk images.
44+
45+
46+
--------------------
47+
IV. Derivative Works
48+
--------------------
49+
Derivative works are allowed under the MAME license. However, you are
50+
discouraged from providing specific functionality that goes against the
51+
philosophy of the MAME team. Specifically:
52+
53+
* Do not add games which are more recent than 3 years old, or which are
54+
still being sold new by the company that produced them. MAME is not
55+
intended to be a platform that competes with arcade games that are still
56+
being actively sold.
57+
58+
* Do not provide a means of generating a list of games that specifically
59+
identifies those games for which the user does not have image files. This
60+
only encourages users to seek out sources for illegal ROM, CD, and hard
61+
disk images in order to "complete" their collection.
62+
63+
* Do not remove the startup screen that contains information about why
64+
certain non-working games don't work. This only serves to generate a
65+
bunch of useless email traffic to the developers asking why the games
66+
don't work.
67+
68+
Because the name MAME is trademarked, you must abide by the rules of the
69+
trademark usage if you wish to use "MAME" as part of the name your
70+
derivative work. In general, this means you must request permission,
71+
which requires that you follow the guidelines above.
72+
73+
The version number of any derivative work should reflect the version
74+
number of the MAME release it was derived from.
75+
76+
77+
-------------------------------
78+
V. Official Contact Information
79+
-------------------------------
80+
For questions regarding the MAME license, trademark, or other usage, go
81+
to http://www.mamedev.org/

trunk/docs/newvideo.txt

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
This article originally appeared in a slightly different form at
2+
http://aarongiles.com. You should read this if you are used to how
3+
MAME's video system worked prior to 0.107 and you want to understand
4+
how you should configure MAME with the new rendering system in place.
5+
6+
7+
The New Video Landscape
8+
9+
Since its inception 9 years ago, MAME's video system has defaulted to
10+
a mode where it tries to change resolutions on you. And since the
11+
first port of the core to Windows 5 years ago, it has defaulted to
12+
using your graphics card to stretch the video to that resolution.
13+
14+
I'm sure a lot of you out there have taken a lot of time to tweak the
15+
current set of video options to make them work the way you like. But
16+
every once in a while, you need to take a step back and re-evaluate
17+
the situation. The current video system has been in place for 5 years
18+
now without much substantial change. And with the recent rewrite,
19+
you're almost certainly going to want to rethink the way you have
20+
things configured.
21+
22+
At the highest level, there are really three different ways you can
23+
configure the new system. Placing yourself into one of these three
24+
categories will help you get the initial settings right. From there,
25+
you can tweak with the settings to figure out what works best.
26+
27+
28+
Category 1: Bells and whistles. People who fall into this category
29+
would include anyone with a modern system and a decent video card
30+
(decent in this context means at least 16MB of VRAM and built in the
31+
last 5 years or so -- we're not talking cutting edge here). Any decent
32+
video card will be able to render the simple MAME graphics at pretty
33+
much any resolution without breaking a sweat. Configure your desktop
34+
to the video mode you want (preferably something high like 1024x768
35+
or greater with a high refresh rate, unless you are running on a
36+
fixed-mode LCD, in which case just match what your LCD panel is),
37+
and tell MAME to leave the resolution alone. In this day and age,
38+
there is little reason to switch resolutions at all, unless you
39+
fall into Category 3, below. In this mode, you will have full access
40+
to artwork options, and you'll get your artwork scaled to full
41+
resolution and with full alpha blending effects. Vector games will
42+
look crisp, you can use decent fonts, and you can see a whole lot
43+
more of the world when using the graphics/tilemap viewer. This mode
44+
uses Direct3D, so you should configure yourself like this:
45+
46+
-video d3d -noswitchres [-triplebuffer] [-nofilter]
47+
48+
The -noswitchres option tells MAME to just run at the current
49+
resolution. Although you can let MAME pick a resolution for you, it
50+
doesn't really make much sense in D3D mode, and in fact I may even
51+
remove that feature altogether. To avoid tearing artifacts, I
52+
recommend using the -triplebuffer option as well. Just make sure your
53+
monitor's refresh rate is higher than the game you are running. If
54+
you dislike the blurry look of the graphics, you can specify the
55+
-nofilter option to disable bilinear filtering, though that will
56+
produce blocky artifacts. Alternatively, you can use the -prescale
57+
option which is described at the end of this article.
58+
59+
60+
Category 2: Like the old days. I really didn't even want to support
61+
this mode at all, but certain vocal MAMEdevs would have skinned me
62+
alive otherwise. People who fall into this category include those who
63+
have weak systems that worked fine with previous versions of MAME,
64+
but who don't run well with Direct3D rendering. (Note that just
65+
because Space Invaders runs unthrottled at 2000fps with DirectDraw
66+
and 1000fps with Direct3D doesn't mean that Direct3D is going to be
67+
a serious issue when playing at a regular 60fps, so if you're unsure,
68+
give the Direct3D route a try for a while.) In this mode, MAME will
69+
draw the game screen and artwork at the game's resolution, just like
70+
it did in MAME 0.106 and earlier; however, some artwork options,
71+
such as -artcrop, won't work as you might expect, and some alpha
72+
blending artwork modes (specifically overlays) will operate with a
73+
performance penality. MAME will then use your video card to stretch
74+
the video to the proper aspect ratio.
75+
76+
-video ddraw -hwstretch [-switchres] [-triplebuffer]
77+
78+
The -switchres is optional here. If your video card is really ancient
79+
and struggles expanding the screen to fit your desktop resolution,
80+
you might want to turn it on. Again, to avoid tearing artifacts, I
81+
recommend using the -triplebuffer option as well, but make sure your
82+
monitor's refresh rate is higher than the game you are running
83+
(-switchres will do that for you if you use it). If your video card
84+
produces blurry pixels which you don't like, try the -prescale option
85+
described at the end of this article.
86+
87+
88+
Category 3: Anal video mode types. These are the guys who have
89+
generally built their own cabinets and set them up with a CRT display
90+
where they have several dozen carefully hand-tweaked video modes that
91+
approximate the original video modes the games ran at. They want MAME
92+
to pick that hand-tweaked mode and use it, drawing one pixel on the
93+
screen for each pixel in the original game. They don't give a whit
94+
about artwork or anything other than the raw pixels going to the
95+
right place. Fortunately, you can still configure MAME for this case
96+
as well:
97+
98+
-video ddraw -nohwstretch -switchres [-triplebuffer]
99+
100+
Obviously in this case, the -switchres is required. You also want to
101+
disable hardware stretching, otherwise you won't get that "perfect"
102+
1:1 pixel mapping. Triple buffering may or may not help.
103+
104+
105+
So, I recommend starting with these initial options and then tweaking
106+
from there. One additional option you might want to try in
107+
combination with the above is the -prescale option. -prescale takes
108+
an integer parameter from 1 to 8, and specifies a magnification
109+
amount by which the screen pixels are expanded before they are drawn
110+
to the screen. Why is this useful? And how much of a performance
111+
impact does it have? Well, that depends on the mode you are running
112+
in.
113+
114+
If you are running in Category 1 (-video d3d), then -prescale will
115+
use your video card to scale the game graphics up before rendering
116+
them to the screen. Depending on the video card, this is usually a
117+
small performance hit, but not too significant. The benefit is that
118+
each prescale factor reduces the blurriness of the pixels.
119+
-prescale 1 is the default, which does no scaling. -prescale 2 will
120+
double each pixel, -prescale 3 will triple each pixel, etc. For my
121+
money, -prescale 2 is sufficient, but people with super high
122+
resolution displays claim that larger -prescale factors work even
123+
better.
124+
125+
If you are running in Category 2 (-video ddraw -hwstretch), then
126+
-prescale will cause MAME to compose the screen graphics at the
127+
specified scale factor. This is unfortunately done in software, but
128+
carries the benefit that artwork, fonts, and the graphics viewer can
129+
take advantage of the additional resolution to produce nicer results.
130+
The end effect is that you will get less blurry pixels, just like the
131+
Category 1 case, plus higher quality artwork, fonts, and more visible
132+
area in the graphics viewer.
133+
134+
If you are running in Category 3 (-video ddraw -nohwstretch), then
135+
-prescale will cause MAME to pick a video mode that is the prescale
136+
factor times the raw screen resolution, and then MAME will, in
137+
software, compose the screen graphics at the specified scale factor.
138+
This has all the advantages of the Category 2 case, except that since
139+
there wasn't any pixel blurring to begin with, there is no additional
140+
crispness that comes about as a result.
141+
142+
Finally, you may be wondering about effects (and yes, scanlines are
143+
an "effect"). Effects are no longer hard-coded into the system.
144+
Rather, you can provide a PNG file in the artwork directory that will
145+
be loaded and overlaid on top of screen bitmaps. See the description
146+
of -effect in windows.txt for more details.

0 commit comments

Comments
 (0)