mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
merge release branch
This commit is contained in:
commit
76a3336c91
@ -4,8 +4,8 @@
|
||||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.mamedev.mame"
|
||||
android:versionCode="179"
|
||||
android:versionName="0.179"
|
||||
android:versionCode="180"
|
||||
android:versionName="0.180"
|
||||
android:installLocation="auto">
|
||||
|
||||
<!-- Android 5.0 -->
|
||||
|
@ -10,4 +10,4 @@ Advanced configuration
|
||||
bgfx
|
||||
hlsl
|
||||
glsl
|
||||
devicemap
|
||||
devicemap
|
||||
|
@ -27,7 +27,7 @@ Inside the *spyhunt.cfg* file, you will find the following for the input. The ac
|
||||
| JOYCODE_1_RYAXIS_NEG_SWITCH OR JOYCODE_1_RYAXIS_POS_SWITCH
|
||||
| </newseq>
|
||||
| </port>
|
||||
|
|
||||
|
|
||||
|
||||
The line you need to edit will be the port line defining the actual input. For Spy Hunter, that's going to be *P1_BUTTON2*. Add **toggle="no"** to the end of the tag, like follows:
|
||||
|
||||
@ -36,6 +36,6 @@ The line you need to edit will be the port line defining the actual input. For S
|
||||
| JOYCODE_1_RYAXIS_NEG_SWITCH OR JOYCODE_1_RYAXIS_POS_SWITCH
|
||||
| </newseq>
|
||||
| </port>
|
||||
|
|
||||
|
|
||||
|
||||
Save and exit. To disable this, simply remove the **toggle="no"** from each desired .CFG input.
|
||||
|
@ -7,11 +7,11 @@ All Platforms
|
||||
-------------
|
||||
|
||||
* Whenever you are changing build parameters, (such as switching between a SDL-based build and a native Windows renderer one, or adding tools to the compile list) you need to run a **make REGENIE=1** to allow the settings to be regenerated. Failure to do this will cause you very difficult to troubleshoot problems.
|
||||
|
||||
|
||||
* If you want to add various additional tools to the compile, such as *CHDMAN*, add a **TOOLS=1** to your make statement, like **make REGENIE=1 TOOLS=1**
|
||||
|
||||
|
||||
* You can do driver specific builds by using *SOURCES=<driver>* in your make statement. For instance, building Pac-Man by itself would be **make SOURCES=src/mame/drivers/pacman.cpp REGENIE=1** including the necessary *REGENIE* for rebuilding the settings.
|
||||
|
||||
|
||||
* Speeding up the compilation can be done by using more cores from your CPU. This is done with the **-j** parameter. *Note: the maximum number you should use is the number of cores your CPU has, plus one. No higher than that will speed up the compilation, and may in fact slow it down.* For instance, **make -j5** on a quad-core CPU will provide optimal speed.
|
||||
|
||||
* Debugging information can be added to a compile using *SYMBOLS=1* though most users will not want or need to use this.
|
||||
@ -21,12 +21,12 @@ Putting all of these together, we get a couple of examples:
|
||||
Rebuilding MAME for just the Pac-Man driver, with tools, on a quad-core (e.g. i5 or i7) machine:
|
||||
|
||||
| **make SOURCES=src/mame/drivers/pacman.cpp TOOLS=1 REGENIE=1 -j5**
|
||||
|
|
||||
|
|
||||
|
||||
Rebuilding MAME on a dual-core (e.g. i3 or laptop i5) machine:
|
||||
|
||||
| **make -j3**
|
||||
|
|
||||
|
|
||||
|
||||
|
||||
Microsoft Windows
|
||||
@ -36,7 +36,7 @@ Here are specific notes about compiling MAME for Microsoft Windows.
|
||||
|
||||
* Refer to `the MAME tools site <http://mamedev.org/tools/>`_ for the latest toolkit for getting MAME compiled on Windows.
|
||||
|
||||
* You will need to download the toolset from that link to begin. Periodically, these tools are updated and newer versions of MAME from that point on will **require** updated tools to compile.
|
||||
* You will need to download the toolset from that link to begin. Periodically, these tools are updated and newer versions of MAME from that point on will **require** updated tools to compile.
|
||||
|
||||
* You can do compilation on Visual Studio 2015 (if installed on your PC) by using **make vs2015**. This will always regenerate the settings, so **REGENIE=1** is *not* needed.
|
||||
|
||||
@ -96,12 +96,12 @@ It's possible to get MAME working from 10.6, but a bit more complicated:
|
||||
* You'll need to install clang-3.7, ld64, libcxx and python27 from MacPorts
|
||||
* Then add these options to your make command or useroptions.mak:
|
||||
|
||||
|
|
||||
|
|
||||
| OVERRIDE_CC=/opt/local/bin/clang-mp-3.7
|
||||
| OVERRIDE_CXX=/opt/local/bin/clang++-mp-3.7
|
||||
| PYTHON_EXECUTABLE=/opt/local/bin/python2.7
|
||||
| ARCHOPTS=-stdlib=libc++
|
||||
|
|
||||
|
|
||||
|
||||
|
||||
Emscripten Javascript and HTML
|
||||
|
@ -10,4 +10,4 @@ You simply have to download the latest binary archive available from http://www.
|
||||
Other Operating Systems
|
||||
-----------------------
|
||||
|
||||
In this case, you can either look for pre-compiled (SDL)MAME binaries (e.g. in the repositories of your favorite Linux distro) which should simply extract all the needed files in a folder you choose, or compile the source code by yourself. In the latter case, see our section on :ref:`compiling-mame`.
|
||||
In this case, you can either look for pre-compiled (SDL)MAME binaries (e.g. in the repositories of your favorite Linux distro) which should simply extract all the needed files in a folder you choose, or compile the source code by yourself. In the latter case, see our section on :ref:`compiling-mame`.
|
||||
|
@ -18,10 +18,10 @@ Systems Emulated by MAME
|
||||
========================
|
||||
|
||||
|
||||
ProjectMESS contains a complete list of the systems currently emulated. As you will notice, being supported does not always mean that the status of the emulation is perfect. You may want
|
||||
ProjectMESS contains a complete list of the systems currently emulated. As you will notice, being supported does not always mean that the status of the emulation is perfect. You may want
|
||||
|
||||
1. to check the status of the emulation in the wiki pages of each system, accessible from the drivers page (e.g. for Apple Macintosh, from the page for the mac.c driver you can reach the pages for both **macplus** and **macse**),
|
||||
2. to read the corresponding **sysinfo.dat** entry in order to better understand which issues you may encounter while running a system in MAME (again, for Apple Macintosh Plus you have to check this entry).
|
||||
2. to read the corresponding **sysinfo.dat** entry in order to better understand which issues you may encounter while running a system in MAME (again, for Apple Macintosh Plus you have to check this entry).
|
||||
|
||||
Alternatively, you can simply see the status by yourself, launching the system emulation and taking a look to the red or yellow warning screen which appears before the emulation starts, if any. Notice that if you have information which can help to improve the emulation of a supported system, or if you can directly contribute fixes and/or addition to the current source, you can follow the instructions at the contact page or post to the MAME Forums at http://forum.mamedev.org/
|
||||
|
||||
|
@ -5,4 +5,4 @@ MAME is not intended or designed to run in secure sites. It has not been securit
|
||||
|
||||
**We do not suggest or condone the use of MAME as administrator or root and use as such is done at your own risk.**
|
||||
|
||||
Bug reports, however, are always welcome.
|
||||
Bug reports, however, are always welcome.
|
||||
|
@ -28,11 +28,17 @@ Use that method at machine config time to provide an address map for
|
||||
the bus to connect to. It has priority over a rom region if one is
|
||||
also present.
|
||||
|
||||
| **MCFG_DEVICE_ROM**\ (tag)
|
||||
|
||||
Used to select a rom region to use if a device address map is not
|
||||
given. Defaults to DEVICE_SELF, e.g. the device tag.
|
||||
|
||||
| **ROM_REGION**\ (length, tag, flags)
|
||||
|
||||
If a rom region with a tag identical to the device tag is provided in
|
||||
the rom description for the system, it will be automatically picked up
|
||||
as the connected rom. An address map has priority over the region if
|
||||
If a rom region with a tag as given with **MCFG_DEVICE_ROM** if
|
||||
present, or identical to the device tag otherwise, is provided in the
|
||||
rom description for the system, it will be automatically picked up as
|
||||
the connected rom. An address map has priority over the region if
|
||||
present in the machine config.
|
||||
|
||||
| void **set_rom**\ (const void \*base, UINT32 size);
|
||||
|
@ -115,7 +115,7 @@ Once the cell data stream is extracted decoding depends on the encoding. In the
|
||||
|
||||
2.3.2. Sector-level organization
|
||||
''''''''''''''''''''''''''''''''
|
||||
|
||||
|
||||
Floppies have been designed for read/write random access to reasonably sized blocks of data. Track selection allows for a first level of random access and sizing, but the ~6K of a double density track would be too big a block to handle. 256/512 bytes are considered a more appropriate value. To that end data on a track is organized as a series of (sector header, sector data) pairs where the sector header indicates important information like the sector number and size, and the sector data contains the data. Sectors have to be broken in two parts because while reading is easy, read the header then read the data if you want it, writing requires reading the header to find the correct place then once that is done switching on the writing head for the data. Starting writing is not instantaneous and will not be perfectly phase-aligned with the read header, so space for synchronization is required between header and data.
|
||||
|
||||
In addition somewhere in the sector header and in the sector data are pretty much always added some kind of checksum allowing to know whether the data was damaged or not.
|
||||
@ -154,7 +154,7 @@ Then for each sector:
|
||||
|
||||
The track is finished with a stream of '1' cells.
|
||||
|
||||
The 125KHz pulse trains are used to lock the PLL to the signal correctly. The specific 16-cells streams allow to distinguish between clock and data bits by providing a pattern that is not supposed to happen in normal FM-encoded data. In the sector header track numbers start at 0, heads are 0/1 depending on the size, sector numbers usually start at 1 and size code is 0 for 128 bytes, 1 for 256, 2 for 512, etc.
|
||||
The 125KHz pulse trains are used to lock the PLL to the signal correctly. The specific 16-cells streams allow to distinguish between clock and data bits by providing a pattern that is not supposed to happen in normal FM-encoded data. In the sector header track numbers start at 0, heads are 0/1 depending on the size, sector numbers usually start at 1 and size code is 0 for 128 bytes, 1 for 256, 2 for 512, etc.
|
||||
|
||||
The CRC is a cyclic redundancy check of the data bits starting with the mark just after the pulse train using polynom 0x11021.
|
||||
|
||||
@ -209,7 +209,7 @@ Similarly two write splices are created when a sector is written at the start an
|
||||
|
||||
3. The new implementation
|
||||
-------------------------
|
||||
|
||||
|
||||
3.1. Floppy disk representation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@ -234,7 +234,7 @@ The last cell implicit end position is of course 200,000,000.
|
||||
|
||||
Unformatted tracks are encoded as zero-size.
|
||||
|
||||
The "track splice" information indicates where to start writing if you try to rewrite a physical disk with the data. Some preservation formats encode that information, it is guessed for others. The write track function of fdcs should set it. The representation is the angular position relative to the index.
|
||||
The "track splice" information indicates where to start writing if you try to rewrite a physical disk with the data. Some preservation formats encode that information, it is guessed for others. The write track function of fdcs should set it. The representation is the angular position relative to the index.
|
||||
|
||||
3.2. Converting to and from the internal representation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -281,7 +281,7 @@ A number of methods are provided to simplify writing the converter classes.
|
||||
| **UINT8 \*cell stream,**
|
||||
| **int cell count,**
|
||||
| **floppy image)**
|
||||
|
|
||||
|
|
||||
|
||||
Takes a stream of cell types (0/1), MSB-first, converts it to the internal format and stores it at the given track and head in the given image.
|
||||
|
||||
@ -344,7 +344,7 @@ A number of methods are provided to simplify writing the converter classes.
|
||||
| **sector size,**
|
||||
| **sector count,**
|
||||
| **UINT8 \*sector data)**
|
||||
|
|
||||
|
|
||||
|
||||
Extract what you'd get by reading in order 'sector size'-sized sectors from number 1 to sector count and put the result in sector data.
|
||||
|
||||
|
@ -11,4 +11,4 @@ This section covers technical specifications useful to programmers working on MA
|
||||
floppy
|
||||
nscsi
|
||||
luaengine
|
||||
m6502
|
||||
m6502
|
||||
|
@ -24,19 +24,19 @@ The nscsi subsystem leverages the slot interfaces and the device naming to allow
|
||||
|
||||
First you need to create a list of acceptable devices to plug on the bus. This usually comprises of **cdrom**, **harddisk** and the controller chip. For instance:
|
||||
|
||||
|
|
||||
|
|
||||
| static SLOT_INTERFACE_START( next_scsi_devices )
|
||||
| SLOT_INTERFACE("cdrom", NSCSI_CDROM)
|
||||
| SLOT_INTERFACE("harddisk", NSCSI_HARDDISK)
|
||||
| SLOT_INTERFACE_INTERNAL("ncr5390", NCR5390)
|
||||
| SLOT_INTERFACE_END
|
||||
|
|
||||
|
|
||||
|
||||
The **_INTERNAL** interface indicates a device that is not user-selectable, which is useful for the controller.
|
||||
|
||||
Then in the machine config (or in a fragment config) you need to first add the bus, and then the (potential) devices as sub-devices of the bus with the SCSI ID as the name. For instance you can use:
|
||||
|
||||
|
|
||||
|
|
||||
| MCFG_NSCSI_BUS_ADD("scsibus")
|
||||
| MCFG_NSCSI_ADD("scsibus:0", next_scsi_devices, "cdrom", 0, 0, 0, false)
|
||||
| MCFG_NSCSI_ADD("scsibus:1", next_scsi_devices, "harddisk", 0, 0, 0, false)
|
||||
@ -46,7 +46,7 @@ Then in the machine config (or in a fragment config) you need to first add the b
|
||||
| MCFG_NSCSI_ADD("scsibus:5", next_scsi_devices, 0, 0, 0, 0, false)
|
||||
| MCFG_NSCSI_ADD("scsibus:6", next_scsi_devices, 0, 0, 0, 0, false)
|
||||
| MCFG_NSCSI_ADD("scsibus:7", next_scsi_devices, "ncr5390", 0, &next_ncr5390_interface, 10000000, true)
|
||||
|
|
||||
|
|
||||
|
||||
That configuration puts as default a CD-ROM reader on SCSI ID 0 and a hard drive on SCSI ID 1, and forces the controller on ID 7. The
|
||||
parameters of add are:
|
||||
|
@ -5,7 +5,7 @@ Imgtool - *A generic image manipulation tool for MAME*
|
||||
|
||||
Imgtool is a tool for the maintenance and manipulation of disk and other types of images that MAME users need to deal with. Functions include retrieving and storing files and CRC checking/validation.
|
||||
|
||||
Imgtool is part of the MAME project. It shares large portions of code with MAME, and its existence would not be if it were not for MAME. As such, the distribution terms are the same as MAME. Please read the MAME license thoroughly.
|
||||
Imgtool is part of the MAME project. It shares large portions of code with MAME, and its existence would not be if it were not for MAME. As such, the distribution terms are the same as MAME. Please read the MAME license thoroughly.
|
||||
|
||||
**Some portions of Imgtool are Copyright (c) 1989, 1993 The Regents of the University of California. All rights reserved.**
|
||||
|
||||
@ -22,9 +22,9 @@ Imgtool is a command line program that contains several "subcommands" that actua
|
||||
|
||||
Example usage:
|
||||
imgtool dir coco_jvc_rsdos myimageinazip.zip
|
||||
|
||||
|
||||
imgtool get coco_jvc_rsdos myimage.dsk myfile.bin mynewfile.txt
|
||||
|
||||
|
||||
imgtool getall coco_jvc_rsdos myimage.dsk
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ Imgtool Subcommands
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
* <imagename> is the image filename; can specify a ZIP file for image name
|
||||
|
||||
|
||||
|
||||
Creates an image
|
||||
|
||||
**dir**
|
||||
@ -59,7 +59,7 @@ Imgtool Subcommands
|
||||
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
* <imagename> is the image filename; can specify a ZIP file for image name
|
||||
|
||||
|
||||
Gets a single file from an image
|
||||
|
||||
**put**
|
||||
@ -68,7 +68,7 @@ Imgtool Subcommands
|
||||
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
* <imagename> is the image filename; can specify a ZIP file for image name
|
||||
|
||||
|
||||
Puts a single file on an image (wildcards supported)
|
||||
|
||||
**getall**
|
||||
@ -77,7 +77,7 @@ Imgtool Subcommands
|
||||
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
* <imagename> is the image filename; can specify a ZIP file for image name
|
||||
|
||||
|
||||
Gets all files off an image
|
||||
|
||||
**del**
|
||||
@ -86,7 +86,7 @@ Imgtool Subcommands
|
||||
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
* <imagename> is the image filename; can specify a ZIP file for image name
|
||||
|
||||
|
||||
Deletes a file on an image
|
||||
|
||||
**mkdir**
|
||||
@ -95,7 +95,7 @@ Imgtool Subcommands
|
||||
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
* <imagename> is the image filename; can specify a ZIP file for image name
|
||||
|
||||
|
||||
Creates a subdirectory on an image
|
||||
|
||||
**rmdir**
|
||||
@ -104,7 +104,7 @@ Imgtool Subcommands
|
||||
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
* <imagename> is the image filename; can specify a ZIP file for image name
|
||||
|
||||
|
||||
Deletes a subdirectory on an image
|
||||
|
||||
**readsector**
|
||||
@ -113,11 +113,11 @@ Imgtool Subcommands
|
||||
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
* <imagename> is the image filename; can specify a ZIP file for image name
|
||||
|
||||
|
||||
Read a sector on an image and output it to specified <filename>
|
||||
|
||||
**writesector**
|
||||
|
||||
|
||||
**imgtool writesector <format> <imagename> <track> <head> <sector> <filename>**
|
||||
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
@ -129,7 +129,7 @@ Imgtool Subcommands
|
||||
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
* <imagename> is the image filename; can specify a ZIP file for image name
|
||||
|
||||
|
||||
**imgtool identify <imagename>**
|
||||
|
||||
**listformats**
|
||||
@ -145,7 +145,7 @@ Imgtool Subcommands
|
||||
**imgtool listdriveroptions <format>**
|
||||
|
||||
* <format> is the image format, e.g. coco_jvc_rsdos
|
||||
|
||||
|
||||
Lists all format-specific options for the 'put' and 'create' commands
|
||||
|
||||
|
||||
@ -170,7 +170,7 @@ Filters are a means to process data being written into or read out of an image i
|
||||
**macbinary**
|
||||
|
||||
Processes Apple MacBinary-formatted (merged forks) files
|
||||
|
||||
|
||||
**vzsnapshot**
|
||||
|
||||
[todo: VZ Snapshot? Find out what this is....]
|
||||
@ -198,7 +198,7 @@ Filters are a means to process data being written into or read out of an image i
|
||||
**bm13bas**
|
||||
|
||||
Basic Master Level 3 Tokenized Basic Files
|
||||
|
||||
|
||||
Imgtool Format Info
|
||||
===================
|
||||
|
||||
@ -1672,5 +1672,5 @@ Option Allowed values Description
|
||||
|
||||
|
||||
|
||||
|
||||
[todo: fill out the command structures, describe commands better. These descriptions came from the imgtool.txt file and are barebones]
|
||||
|
||||
[todo: fill out the command structures, describe commands better. These descriptions came from the imgtool.txt file and are barebones]
|
||||
|
@ -9,7 +9,7 @@ On Microsoft Windows, ledutil.exe can take control of your keyboard LEDs to mirr
|
||||
|
||||
Start **ledutil.exe** from the command line to enable LED handling. Run **ledutil.exe -kill** to stop the handler.
|
||||
|
||||
On SDLMAME platforms such as Mac OS X and Linux, **ledutil.sh** can be used. Use **ledutil.sh -a** to have it automatically close when you exit SDLMAME.
|
||||
On SDLMAME platforms such as Mac OS X and Linux, **ledutil.sh** can be used. Use **ledutil.sh -a** to have it automatically close when you exit SDLMAME.
|
||||
|
||||
|
||||
Developer-focused tools included with MAME
|
||||
@ -45,7 +45,7 @@ ldresample
|
||||
This tool recompresses video data for laserdisc and VHS dumps. Most users will not need to work with this.
|
||||
|
||||
|
||||
ldverify
|
||||
ldverify
|
||||
--------
|
||||
|
||||
This tool is used for comparing laserdisc or VHS CHD images with the source AVI. Most users will not need to work with this.
|
||||
@ -53,4 +53,4 @@ This tool is used for comparing laserdisc or VHS CHD images with the source AVI.
|
||||
unidasm
|
||||
-------
|
||||
|
||||
Universal disassembler for many of the architectures supported in MAME. Most users will not need to work with this.
|
||||
Universal disassembler for many of the architectures supported in MAME. Most users will not need to work with this.
|
||||
|
@ -36,7 +36,7 @@ MAME is extremely versatile about where ROM data is located and is quite intelli
|
||||
|
||||
A **non-merged set** is one that contains absolutely everything necessary for a given game to run in one ZIP file. This is ordinarily very space-inefficient, but is a good way to go if you want to have very few sets and want everything self-contained and easy to work with. We do not recommend this for most users.
|
||||
|
||||
A **split set** is one where the parent set contains all of the normal data it should, and the clone sets contain *only* what has changed as compared to the parent set. This saves some space, but isn't quite as efficient as
|
||||
A **split set** is one where the parent set contains all of the normal data it should, and the clone sets contain *only* what has changed as compared to the parent set. This saves some space, but isn't quite as efficient as
|
||||
|
||||
A **merged set** takes the parent set and one or more clone sets and puts them all inside the parent set's storage. To use the existing Pac-Man example, combining the Puckman, Midway Pac-Man (USA) sets, along with various bootleg versions-- and combining it all into ((PUCKMAN.ZIP**, would be making a merged set. A complete merged set with the parent and all clones is the most common format MAME sets are stored in as it saves the most space.
|
||||
|
||||
@ -70,4 +70,4 @@ ROMs and CHDs
|
||||
|
||||
ROM chip data tends to be relatively small and gets loaded to system memory outright. Some games also used additional storage mediums such as hard drives, CD-ROMs, DVDs, and Laserdiscs. Those storage mediums are, for multiple technical reasons, not well-suited to being stored the same way as ROM data and won't fit completely in memory in some cases.
|
||||
|
||||
Thus, a new format was created for these in the CHD file. **Compressed Hunks of Data**, or CHD for short, are designed very specifically around the needs of mass storage media. Some arcade games, consoles, and PCs will require a CHD to run. As CHDs are already compressed, they should **NOT** be stored in a ZIP or 7Z file as you would for ROM images.
|
||||
Thus, a new format was created for these in the CHD file. **Compressed Hunks of Data**, or CHD for short, are designed very specifically around the needs of mass storage media. Some arcade games, consoles, and PCs will require a CHD to run. As CHDs are already compressed, they should **NOT** be stored in a ZIP or 7Z file as you would for ROM images.
|
||||
|
@ -11,7 +11,7 @@ Why does my game show an error screen if I insert coins rapidly?
|
||||
|
||||
This is not a bug in MAME. On original arcade hardware, you simply could not insert coins as fast as you can mashing the button. The only ways you could get credit feeding at that kind of pace was if the coin mech hardware was defective or if you were physically trying to cheat the coin mech.
|
||||
|
||||
In either case, the game would display an error for the operator to look into the situation to prevent cheating them out of their hard-earned cash. Keep a slow, coin-insert-ish pace and you'll not trigger this.
|
||||
In either case, the game would display an error for the operator to look into the situation to prevent cheating them out of their hard-earned cash. Keep a slow, coin-insert-ish pace and you'll not trigger this.
|
||||
|
||||
|
||||
Why is my non-official MAME package (e.g. EmuCR build) broken?
|
||||
|
@ -9,12 +9,12 @@ This following list is not an endorsement of any of these frontends by the MAME
|
||||
|
||||
| QMC2 (multiple platforms)
|
||||
| Download: http://qmc2.batcom-it.net/
|
||||
|
|
||||
|
|
||||
| IV/Play (Microsoft Windows)
|
||||
| Download: http://www.mameui.info/
|
||||
|
|
||||
|
|
||||
| EmuLoader (Microsoft Windows)
|
||||
| Download: http://emuloader.mameworld.info/
|
||||
|
|
||||
|
|
||||
|
||||
The MAME team will not provide support for issues with frontends. For support, we suggest contacting the frontend author or trying any of the popular MAME-friendly forums on the internet.
|
||||
|
@ -13,4 +13,4 @@ This section describes general usage information about MAME. It is intended to c
|
||||
aboutromsets
|
||||
commonissues
|
||||
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
MAME Menus
|
||||
==========
|
||||
|
||||
If you started MAME without any command line parameters, you'll be shown the game selection menu immediately. While the keys listed above will let you navigate the menus, you can also use a mouse.
|
||||
If you started MAME without any command line parameters, you'll be shown the game selection menu immediately. While the keys listed above will let you navigate the menus, you can also use a mouse.
|
||||
|
||||
[todo: This needs SERIOUS expansion. Waiting on answer to a few questions..]
|
||||
|
||||
|
@ -5,7 +5,7 @@ MAME originally stood for Multiple Arcade Machine Emulator.
|
||||
|
||||
MAME's purpose is to preserve decades of software history. As electronic technology continues to rush forward, MAME prevents this important "vintage" software from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the software is usable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully?). Over time, MAME absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video games that were its initial focus.
|
||||
|
||||
|
|
||||
|
|
||||
| **MAME(R), the Multiple Arcade Machine Emulator**
|
||||
| **Copyright (c) 1997-2016 by Nicola Salmoria and the MAME team**
|
||||
| **MAME is a trademark owned by Nicola Salmoria**
|
||||
|
4
makefile
4
makefile
@ -1527,14 +1527,14 @@ endif
|
||||
|
||||
ifeq (posix,$(SHELLTYPE))
|
||||
$(GENDIR)/version.cpp: $(GENDIR)/git_desc | $(GEN_FOLDERS)
|
||||
@echo '#define BARE_BUILD_VERSION "0.179"' > $@
|
||||
@echo '#define BARE_BUILD_VERSION "0.180"' > $@
|
||||
@echo 'extern const char bare_build_version[];' >> $@
|
||||
@echo 'extern const char build_version[];' >> $@
|
||||
@echo 'const char bare_build_version[] = BARE_BUILD_VERSION;' >> $@
|
||||
@echo 'const char build_version[] = BARE_BUILD_VERSION " ($(NEW_GIT_VERSION))";' >> $@
|
||||
else
|
||||
$(GENDIR)/version.cpp: $(GENDIR)/git_desc
|
||||
@echo #define BARE_BUILD_VERSION "0.179" > $@
|
||||
@echo #define BARE_BUILD_VERSION "0.180" > $@
|
||||
@echo extern const char bare_build_version[]; >> $@
|
||||
@echo extern const char build_version[]; >> $@
|
||||
@echo const char bare_build_version[] = BARE_BUILD_VERSION; >> $@
|
||||
|
@ -79,6 +79,7 @@ seibu_sound_device::seibu_sound_device(const machine_config &mconfig, const char
|
||||
m_ym_write_cb(*this),
|
||||
m_sound_cpu(*this, finder_base::DUMMY_TAG),
|
||||
m_sound_rom(*this, finder_base::DUMMY_TAG),
|
||||
m_rom_bank(*this, finder_base::DUMMY_TAG),
|
||||
m_main2sub_pending(0),
|
||||
m_sub2main_pending(0),
|
||||
m_rst10_irq(0xff),
|
||||
@ -92,6 +93,11 @@ void seibu_sound_device::static_set_cpu_tag(device_t &device, const char *tag)
|
||||
downcast<seibu_sound_device &>(device).m_sound_rom.set_tag(tag);
|
||||
}
|
||||
|
||||
void seibu_sound_device::static_set_rombank_tag(device_t &device, const char *tag)
|
||||
{
|
||||
downcast<seibu_sound_device &>(device).m_rom_bank.set_tag(tag);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
@ -101,16 +107,16 @@ void seibu_sound_device::device_start()
|
||||
m_ym_read_cb.resolve_safe(0);
|
||||
m_ym_write_cb.resolve_safe();
|
||||
|
||||
if (m_sound_rom.found() && membank(":seibu_bank1") != nullptr)
|
||||
if (m_sound_rom.found() && m_rom_bank.found())
|
||||
{
|
||||
if (m_sound_rom.length() > 0x10000)
|
||||
{
|
||||
membank(":seibu_bank1")->configure_entries(0, (m_sound_rom.length() - 0x10000) / 0x8000, &m_sound_rom[0x10000], 0x8000);
|
||||
m_rom_bank->configure_entries(0, (m_sound_rom.length() - 0x10000) / 0x8000, &m_sound_rom[0x10000], 0x8000);
|
||||
|
||||
/* Denjin Makai definitely needs this at start-up, it never writes to the bankswitch */
|
||||
membank(":seibu_bank1")->set_entry(0);
|
||||
m_rom_bank->set_entry(0);
|
||||
} else
|
||||
membank(":seibu_bank1")->set_base(&m_sound_rom[0x8000]);
|
||||
m_rom_bank->set_base(&m_sound_rom[0x8000]);
|
||||
}
|
||||
|
||||
m_main2sub[0] = m_main2sub[1] = 0;
|
||||
@ -205,7 +211,8 @@ WRITE8_MEMBER( seibu_sound_device::ym_w )
|
||||
|
||||
WRITE8_MEMBER( seibu_sound_device::bank_w )
|
||||
{
|
||||
membank(":seibu_bank1")->set_entry(data & 1);
|
||||
if (m_rom_bank.found())
|
||||
m_rom_bank->set_entry(data & 1);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( seibu_sound_device::coin_w )
|
||||
|
@ -38,6 +38,7 @@ public:
|
||||
|
||||
// static configuration
|
||||
static void static_set_cpu_tag(device_t &device, const char *tag);
|
||||
static void static_set_rombank_tag(device_t &device, const char *tag);
|
||||
template<class _Object> static devcb_base &set_ym_read_callback(device_t &device, _Object object) { return downcast<seibu_sound_device &>(device).m_ym_read_cb.set_callback(object); }
|
||||
template<class _Object> static devcb_base &set_ym_write_callback(device_t &device, _Object object) { return downcast<seibu_sound_device &>(device).m_ym_write_cb.set_callback(object); }
|
||||
|
||||
@ -72,6 +73,7 @@ private:
|
||||
// internal state
|
||||
required_device<cpu_device> m_sound_cpu;
|
||||
optional_region_ptr<uint8_t> m_sound_rom;
|
||||
optional_memory_bank m_rom_bank;
|
||||
uint8_t m_main2sub[2];
|
||||
uint8_t m_sub2main[2];
|
||||
int m_main2sub_pending;
|
||||
@ -170,6 +172,9 @@ extern const device_type SEIBU_ADPCM;
|
||||
#define MCFG_SEIBU_SOUND_CPU(_audiocputag) \
|
||||
seibu_sound_device::static_set_cpu_tag(*device, "^" _audiocputag);
|
||||
|
||||
#define MCFG_SEIBU_SOUND_ROMBANK(_banktag) \
|
||||
seibu_sound_device::static_set_rombank_tag(*device, "^" _banktag);
|
||||
|
||||
#define MCFG_SEIBU_SOUND_YM_READ_CB(_devcb) \
|
||||
devcb = &seibu_sound_device::set_ym_read_callback(*device, DEVCB_##_devcb);
|
||||
|
||||
|
@ -292,12 +292,12 @@ static ADDRESS_MAP_START( airraid_sound_map, AS_PROGRAM, 8, airraid_state )
|
||||
AM_RANGE(0x4013, 0x4013) AM_READ_PORT("COIN")
|
||||
AM_RANGE(0x4018, 0x4019) AM_DEVWRITE("seibu_sound", seibu_sound_device, main_data_w)
|
||||
AM_RANGE(0x401b, 0x401b) AM_DEVWRITE("seibu_sound", seibu_sound_device, coin_w)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("seibu_bank1")
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( airraid_sound_decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, airraid_state )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_DEVREAD("sei80bu", sei80bu_device, opcode_r)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("seibu_bank1")
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("audiocpu", 0x8000)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -411,7 +411,7 @@ static MACHINE_CONFIG_START( airraid, airraid_state )
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu") //_ENCRYPTED_LOW("audiocpu")
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym2151_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2151_device, write))
|
||||
|
||||
|
@ -519,6 +519,7 @@ static MACHINE_CONFIG_START( bloodbro, bloodbro_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -198,7 +198,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cabal_state )
|
||||
AM_RANGE(0x401b, 0x401b) AM_DEVWRITE("seibu_sound", seibu_sound_device, coin_w)
|
||||
AM_RANGE(0x6005, 0x6006) AM_DEVWRITE("adpcm2", seibu_adpcm_device, adr_w)
|
||||
AM_RANGE(0x601a, 0x601a) AM_DEVWRITE("adpcm2", seibu_adpcm_device, ctl_w)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("seibu_bank1")
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, cabal_state )
|
||||
@ -237,7 +237,7 @@ static ADDRESS_MAP_START( cabalbl2_sound_map, AS_PROGRAM, 8, cabal_state )
|
||||
AM_RANGE(0x401b, 0x401b) AM_DEVWRITE("seibu_sound", seibu_sound_device, coin_w)
|
||||
AM_RANGE(0x6005, 0x6006) AM_DEVWRITE("adpcm2", seibu_adpcm_device, adr_w)
|
||||
AM_RANGE(0x601a, 0x601a) AM_DEVWRITE("adpcm2", seibu_adpcm_device, ctl_w)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("seibu_bank1")
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cabalbl2_predecrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, cabal_state )
|
||||
|
@ -296,6 +296,7 @@ static MACHINE_CONFIG_START( dcon, dcon_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
@ -340,6 +341,7 @@ static MACHINE_CONFIG_START( sdgndmps, dcon_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym2151_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2151_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -302,6 +302,7 @@ static MACHINE_CONFIG_START( deadang, deadang_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ym1", ym2203_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ym1", ym2203_device, write))
|
||||
|
||||
|
@ -349,6 +349,7 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -667,6 +667,7 @@ static MACHINE_CONFIG_START( goodejan, goodejan_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -1196,6 +1196,7 @@ static MACHINE_CONFIG_START( legionna, legionna_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
@ -1248,6 +1249,7 @@ static MACHINE_CONFIG_START( heatbrl, legionna_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
@ -1301,6 +1303,7 @@ static MACHINE_CONFIG_START( godzilla, legionna_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym2151_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2151_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
@ -1353,6 +1356,7 @@ static MACHINE_CONFIG_START( denjinmk, legionna_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym2151_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2151_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
@ -1405,6 +1409,7 @@ static MACHINE_CONFIG_START( grainbow, legionna_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym2151_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2151_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
@ -1448,18 +1453,18 @@ static MACHINE_CONFIG_START( cupsoc, legionna_state )
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", 14318180/4)
|
||||
MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||
MCFG_SOUND_ADD("ymsnd", YM3812, 14318180/4)
|
||||
MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", 1320000, OKIM6295_PIN7_LOW)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym2151_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2151_device, write))
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( cupsocs, cupsoc )
|
||||
|
@ -3979,6 +3979,7 @@ static MACHINE_CONFIG_START( mustangb, nmk16_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
@ -4165,6 +4166,7 @@ static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -839,6 +839,7 @@ static MACHINE_CONFIG_START( nzerotea, r2dx_v33_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -338,6 +338,7 @@ static MACHINE_CONFIG_START( raiden, raiden_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -1456,6 +1456,7 @@ static MACHINE_CONFIG_START( raiden2, raiden2_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym2151_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2151_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
@ -1523,6 +1524,7 @@ static MACHINE_CONFIG_START( zeroteam, raiden2_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -605,6 +605,7 @@ static MACHINE_CONFIG_START( sengokmj, sengokmj_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -486,6 +486,7 @@ static MACHINE_CONFIG_START( kothello, shanghai_state )
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym2203_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2203_device, write))
|
||||
|
||||
|
@ -523,6 +523,7 @@ static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu *
|
||||
|
||||
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
|
||||
MCFG_SEIBU_SOUND_CPU("audiocpu")
|
||||
MCFG_SEIBU_SOUND_ROMBANK("seibu_bank1")
|
||||
MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
|
||||
MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -441,7 +441,7 @@ void mac_state::set_memory_overlay(int overlay)
|
||||
}
|
||||
}
|
||||
else if ((m_model == MODEL_MAC_PORTABLE) || (m_model == MODEL_MAC_PB100) || (m_model == MODEL_MAC_IIFX))
|
||||
{
|
||||
{
|
||||
address_space& space = m_maincpu->space(AS_PROGRAM);
|
||||
space.unmap_write(0x000000, 0x9fffff);
|
||||
mac_install_memory(0x000000, memory_size-1, memory_size, memory_data, is_rom, "bank1");
|
||||
@ -497,7 +497,7 @@ READ32_MEMBER(mac_state::rom_switch_r)
|
||||
{
|
||||
set_memory_overlay(0);
|
||||
}
|
||||
|
||||
|
||||
//printf("rom_switch_r: offset %08x ROM_size -1 = %08x, masked = %08x\n", offset, ROM_size-1, offset & ((ROM_size - 1)>>2));
|
||||
|
||||
return ROM_data[offset & ((ROM_size - 1)>>2)];
|
||||
|
Loading…
Reference in New Issue
Block a user