Commit Graph

38 Commits

Author SHA1 Message Date
Scott Stone
5e9f8529e9 Fixes a problem with r6177 which deleted a ROM_REGION from the source. This caused the game to fail to load or be audited properly. 2009-07-29 16:30:57 +00:00
Yasuhiro Ogawa
29ec8163d2 get rid of 8 character limitation for many clones 2009-07-24 16:47:50 +00:00
Brian Troha
48197fcc9d rom name "enhancement"... closer to actual rom name without putting in "smash_t.v." ect 2009-07-24 03:01:50 +00:00
Aaron Giles
7af2304c81 Removed PREDECODE_GFX compile flag, as the on-the-fly decoding seems
to be working reliably.

Deprecated the ROMREGION_DISPOSE flag, as 98% of the use of it no
longer is applicable with on-the-fly decoding, and the remaining
cases are difficult to identify among the others.
2009-07-09 08:03:31 +00:00
Brian Troha
e42e4fb9bc New clone added: High Impact Football (rev LA1 12/16/90)
New Clone Added
--------------------------------
High Impact Football (rev LA1 12/16/90) [K. Lee, M. Josephson, Smitdogg]
2009-06-19 22:33:13 +00:00
Brian Troha
22732330ea New clone added: High Impact Football (rev LA5 02/15/91)
New Clone Added
---------------------------------
High Impact Football (rev LA5 02/15/91) [Tormod, Smitdogg, Dumping Union]
2009-05-25 00:11:28 +00:00
Aaron Giles
0f1e0cc8e5 Removed second parameter from MDRV_CPU_PROGRAM_MAP, MDRV_CPU_DATA_MAP,
and MDRV_CPU_IO_MAP. For the remaining drivers that used multiple
address maps, converted them to use AM_IMPORT_FROM to import the base
map.
2009-05-09 04:11:55 +00:00
Aaron Giles
1dcd75d039 Removed device types from device queries that use tags, under the
assumption that all device tags are unique. Specifically, the
following no longer need to provide a device type:

   AM_DEVREAD/WRITE
   DEVCB_DEVICE_HANDLER
   devtag_get_device
   devtag_reset
   device_list_find_by_tag

as well as several device interfaces that referenced other devices.

Also fixed assertion due to overflow in the recent sound fix.
2009-03-02 10:59:37 +00:00
Aaron Giles
6edb0ce093 Add validity check warning to flag games with duplicate device names.
Cleaned up most instances, apart from the HuC6280 situation.
2009-02-25 17:05:09 +00:00
Aaron Giles
2388986295 Device tag renaming. Moving away from generic names like "main"
to names that capture the device type as well. Added validity
checks for the short-term to prevent the continuance of this
pattern (which I started :)

Changes:
  CPU/"main" -> "maincpu"
  CPU/"audio" -> "audiocpu"
  CPU/"sound" -> "soundcpu"
  SCREEN/main -> "screen" (since it's the only one)

Eventually, devices will be required to have unique tags within
a machine, regardless of type.
2009-02-25 06:28:42 +00:00
Aaron Giles
5cb6bf00e9 Ok, this is The Big One.
Please note: regression testing is in progress, but the first round 
of glaring regressions have already been taken care of. That said, 
there is likely to be a host of regressions as a result of this 
change.

Also note: There are still a few rough edges in the interfaces. I
will try to clean them up systematically once the basic system is
working.

All sound chips are now proper devices.

Merged the sound chip interface into the device interface,
removing any differences (such as the whole ALIASing concept).

Modified every sound chip in the following ways:
 * updated to match the device interface
 * reduced read/write handlers down to the minimal number
 * added the use of get_safe_token() for ensuring correctness
 * other minor cleanup

Removed the custom sound device. The additional work to just make
custom sound cases into full devices is minimal, so I just converted
them all over to be actual devices.

Vastly simplified the sound interfaces, removing the ghastly
sndti_* business and moving everyone over to using tags for
sound identity. sndintrf, like cpuintrf, is now just a header
file with no implementation.

Modified each and every driver that references a sound chip:
 * all memory maps explicitly reference the targeted device via
    AM_DEVREAD/AM_DEVWRITE/AM_DEVREADWRITE
 * 16-bit and 32-bit accesses to 8-bit chips no longer use
    trampoline functions but instead use the 8-bit AM_DEVREAD/WRITE
    macros
 * all references to sound chips are now done via tags
 * note that these changes are brute force, not optimal; in many
    cases drivers should grab pointers to devices in MACHINE_START
    and stash them away
2009-02-11 19:48:39 +00:00
Brian Troha
da74e4e36f New Mortal Kombat clone
New clones added
----------------
Mortal Kombat (prototype, rev 8.0 07/21/92) [Brian Troha]
2009-01-26 22:29:32 +00:00
Aaron Giles
e2ae5c7fa3 From: Atari Ace [atari_ace@verizon.net]
Sent: Tuesday, December 16, 2008 12:20 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Migrate CPU defines to cpu header files

Hi mamedev,

This patch migrates all the CPU definitions into the cpu header files.
The #defines and CPU_GET_INFO declarations were added by hand to the
cpu cores in the first patch, plus a few partly related fixes to the
non-DRC cores.  The second patch was produced by the attached script
which inserts all needed #includes, except for two that were added by
hand in the first patch.  The first patch also removed an extra define
of N2A03_DEFAULTCLOCK that would have caused problems with the second
patch.

~aa
2008-12-17 05:52:10 +00:00
Aaron Giles
3daeb4a050 Super High Impact (prototype, rev 6.0 09/23/91) [Smittdogg]
From: Smitdogg Jones [jcsmith23@yahoo.com]
Sent: Wednesday, December 10, 2008 4:51 PM
To: Dumping Project; submit@mamedev.org
Subject: Super High Impact (Prototype 6.0 9/23/91)
Most roms are labeled with LA1 stickers. U89 and 105 have small white square stickers stuck on top of what looks like LA1 stickers with "pro6" printed on them by a computer and are the only roms found to be different than ones in the LA1 revision. I added this as shimpap6 and changed the set name of the proto 5 version to shimpap5.

roms will be here temporarily when I can access it, it's currently down, I don't know what the issue is:
http://smitdogg.mameworld.info/random/shimpap6.zip

I'll e-mail the roms to Guru too. If anybody wants pics or anything else from it, let me know soon. I attached the diff.

Smitdogg
2008-12-11 18:15:37 +00:00
Derrick Renaud
4f0cddd1a5 Updated src\emu\sound headers from K-S, so they use latest naming/structure and re-inclusion support. Also lowercased the handler names.
What a PITA.  :)  I'll have to go back and do A-J to lower case the handlers to match the new structure names I already did.

Sorry Mess and other port developers, but the code should match what is stated on the official WIKI.  But don't worry, I don't plan on updating anything but the sound cores.
2008-08-10 02:23:43 +00:00
Aaron Giles
5dcdb1d1c3 NOTE: with this change, I have also removed PORT_START and renamed
PORT_START_TAG to PORT_START.


From: Fabio Priuli [mailto:doge.fabio@gmail.com] 
Subject: let's say goodbye to untagged input ports ;)

Hi,

enclosed please find a few patches against 126u3 source

* port01.diff -> port09.diff : these patches continues the 
cleanup of inputs in drivers starting with C (the remaining ones), 
D and E. No ambiguous situations this time, so I guess there should 
be no problem with the changes. Improvements include conditional dips 
added to dynduke and diplocations for chinagat, chqflag, circus, 
citycon, cloak, contra and dynduke

* tag01.diff -> tag09.diff : these patches add tag to EVERY input port 
in drivers starting with F->Z. Notice that only tags are added, no 
AM_READ_PORT, nor PORT_INCLUDE (and I saw a lot of drivers would need 
it ;) ), nor other cleanups contained in the patches above. I'll keep 
cleaning input next week, probably, but at least we can definitely 
remove the untagged version of PORT_START :) Notice I was able to 
compile the source commenting out the definition of PORT_START, so 
I guess every occurrence is covered...
2008-08-06 13:56:38 +00:00
Aaron Giles
4a6fc8d5e5 Region classes go bye-bye. 2008-07-28 16:22:20 +00:00
Aaron Giles
86022ddde4 Removed all instances of regions with different class but equal names. 2008-07-28 15:09:12 +00:00
Aaron Giles
27fed1ec97 Changed the way memory regions are referenced. Instead of a single
integer value, regions are now referred to by a region class and
a region tag. The class specifies the type of region (one of CPU,
gfx, sound, user, disk, prom, pld) while the tag uniquely specifies
the region. This change required updating all the ROM region
definitions in the project to specify the class/tag instead of
region number.

Updated the core memory_region_* functions to accept a class/tag
pair. Added new memory_region_next() function to allow for iteration
over all memory regions of a given class. Added new function
memory_region_class_name() to return the name for a given CPU
memory region class.

Changed the auto-binding behavior of CPU regions. Previously, the
first CPU would auto-bind to REGION_CPU1 (that is, any ROM references
would automatically assume that they lived in the corresponding
region). Now, each CPU automatically binds to the RGNCLASS_CPU region
with the same tag as the CPU itself. This behavior required ensuring
that all previous REGION_CPU* regions were changed to RGNCLASS_CPU
with the same tag as the CPU.

Introduced a new auto-binding mechanism for sound cores. This works
similarly to the CPU binding. Each sound core that requires a memory
region now auto-binds to the RGNCLASS_SOUND with the same tag as the
sound core. In almost all cases, this allowed for the removal of the
explicit region item in the sound configuration, which in turn 
allowed for many sound configurations to removed altogether.

Updated the expression engine's memory reference behavior. A recent
update expanded the scope of memory references to allow for referencing
data in non-active CPU spaces, in memory regions, and in EEPROMs.
However, this previous update required an index, which is no longer
appropriate for regions and will become increasingly less appropriate
for CPUs over time. Instead, a new syntax is supported, of the form:
"[tag.][space]size@addr", where 'tag' is an optional tag for the CPU
or memory region you wish to access, followed by a period as a 
separator; 'space' is the memory address space or region class you
wish to access (p/d/i for program/data/I/O spaces; o for opcode space;
r for direct RAM; c/u/g/s for CPU/user/gfx/sound regions; e for 
EEPROMs); and 'size' is the usual b/w/d/q for byte/word/dword/qword.

Cleaned up ROM definition flags and removed some ugly hacks that had
existed previously. Expanded to support up to 256 BIOSes. Updated
ROM_COPY to support specifying class/tag for the source region.

Updated the address map AM_REGION macro to support specifying a
class/tag for the region.

Updated debugger windows to display the CPU and region tags where
appropriate.

Updated -listxml to output region class and tag for each ROM entry.
2008-07-28 09:35:36 +00:00
Aaron Giles
5bb72fa08e Changed MDRV_CPU_ADD to require a tag. Removed MDRV_CPU_ADD_TAG.
Tagged all CPUs. Now I will take a break until my fingers stop
cramping. :)
2008-07-19 05:26:09 +00:00
Aaron Giles
73aaf0db7e Tagged all the first CPUs for drivers (mostly as "main").
Added validity checks to ensure no duplicate sound or CPU tags.
Fixed several duplicate sound tags from the last checkin.

-listxml now outputs the tag names for CPUs and sound chips.
2008-07-19 03:13:34 +00:00
Aaron Giles
023423726f Removed MDRV_SOUND_ADD. Renamed MDRV_SOUND_ADD_TAG to
MDRV_SOUND_ADD. All sound chips must now include a tag.

Laboriously changed all existing drivers to define a
unique tag for each sound chip.

CPUs are next, but will require a more hands-on manual
process to produce reasonable tags.
2008-07-18 17:08:58 +00:00
Aaron Giles
e5acd1aa3f From: Fabio Priuli [mailto:doge.fabio@gmail.com]
Subject: more indexed reads removed
Hi, 

attached please find a bunch of patches (against u6) to change input_port_read_indexed and AM_READ to their tagged counterparts. As in the case of the last patches I sent, I tested with mame_regtest the changes and no port is missing.

In details:

* midway.diff updates the whole mid*unit family of drivers + seattle & zeus which shared some input code. You may want to take a look at the fact that hyperdriv seems to have a redundant 9th analog port the driver never check (I added a comment about it in the source)

* namco.diff updates most namco systems + a couple of old drivers sharing the input handling. Notice I haven't modified system22 which seems to have problems with the new strict checks and I guessed it could have changed since the last release (I'll take a look to it later)

* patch1.diff -> patch9.diff update most of the M->Q drivers + finally removes indexed reads from megadriv.c (without breaking ssf2ghw)

Let me know if something fails to apply.

Regards,
     Fabio
2008-06-26 15:13:34 +00:00
Aaron Giles
12836eea2c Created new macro: AM_RAM_WRITE(handler) which specifies a memory
range to be RAM-like for reads but calls the given handler for writes.

Replaced AM_READWRITE(SMH_RAM, handler) with AM_RAM_WRITE(handler).
Also replaced AM_RAM AM_WRITE(handler) with AM_RAM_WRITE(handler).
2008-04-16 14:38:12 +00:00
Aaron Giles
0862cce453 Replaced the following macros (SMH == static memory handler)
MRA*_BANK*/MRA*_BANK* -> SMH_BANK*
   MRA*_RAM/MRA*_ROM     -> SMH_RAM
   MRA*_ROM/MWA*_ROM     -> SMH_ROM
   MRA*_NOP/MWA*_NOP     -> SMH_NOP
   MRA*_UNMAP/MWA*_UNMAP -> SMH_UNMAP

This removes the silly need for a bunch of redundant constants
with faux type definitions that didn't buy anything.

Moved some memory system constants into memory.c.
2008-03-10 02:29:15 +00:00
Zsolt Vasvari
198f401cf5 Changes TMS34010 to take a screen tag instead of the screen number
Everything appears to work, except X The Ball, which sets horz the resolution twice as wide as it should -- no clue why
2008-03-10 02:16:06 +00:00
Aaron Giles
b7c4a537cd Most important thing to note about this change:
ALL DRIVERS MUST NOW EXPLICITLY DECLARE THEIR SCREENS.

Read on for more detail....

Added device tag as a parameter to the start function for devices.
Updated MC6845 to accept this tag.

Added new functions for iterating through the device list and 
counting devices of a given type. Updated search and iteration
functions to accept DEVICE_TYPE_WILDCARD to work across all
devices.

Added new macro MDRV_DEVICE_CONFIG_DATA() which is used to set a
single item in an inline data structure.

Removed the per-screen palette_base. This was an idea that never
really worked out, nor have we really needed it.

Defined a new device type VIDEO_SCREEN. Currently this has no
live functionality, but merely serves as a placeholder/identifier
for video screens. Eventually some of the screen management code
may move into the start/stop/reset functions.

Changed MDRV_SCREEN_* macros to build up VIDEO_SCREEN devices
rather than storing values in the screen[] array.

Changed MDRV_SCREEN_ADD to specify a screen type (RASTER, VECTOR,
LCD for the moment).

Removed the older VIDEO_TYPE_RASTER and VIDEO_TYPE_VECTOR; this
information is now determined by walking the screen list.

Removed the screen[] array from machine_config. Modified all code 
referencing Machine->config->screen[] and changed it to iterate 
over the devices using the new video_screen_first() and 
video_screen_next() functions.

(The next step will be to add video_* functions that accept a tag
instead of screen index, and then move systems over to always
referencing screens by tag instead of index.)

Removed implicit screen #0. This means that ALL DRIVERS MUST
EXPLICITLY DECLARE THEIR SCREENS. Updated all drivers to do
so. While there, grouped all MDRV_SCREEN_* parameters together.
Also removed unnecessary VIDEO_TYPE_RASTER and VIDEO_TYPE_VECTOR.
Also removed VBLANK and bitmap format information from vector
games. This was painful and very tedious.

Changed game information to display info about all screens.
2008-02-21 08:50:36 +00:00
stephh
25f753aa76 Fixed some small errors I made in revision 630. 2008-02-07 19:36:43 +00:00
stephh
7a1667ef5e Used PORT_SERVICE and PORT_SERVICE_NO_TOGGLE macros when this was possible. 2008-02-07 18:39:54 +00:00
Aaron Giles
1b35fe1925 Fixed incorrect default screen size computations. 2008-02-05 07:57:36 +00:00
Aaron Giles
2299164694 Pushed CUSTOM_INPUT macro to all users.
Changed TMS0285 -> TMC0285.
Spacing cleanups for 0.122u6.
Version bump to 0.122u6.
2008-01-17 16:06:09 +00:00
Aaron Giles
25926f51b8 Documented the country "DIP switch" in Narc and removed it.
Fixes narc060gra
2008-01-14 00:56:25 +00:00
Aaron Giles
fe41f9bd01 Added CPUINFO_INT_CLOCK_MULTIPLIER to support CPU clock multipliers.
Updated all CPU cores to return a CPUINFO_INT_CLOCK_MULTIPLIER of 1.

Changed the core to actually respect both CPUINFO_INT_CLOCK_MULTIPLIER and CPUINFO_INT_CLOCK_DIVIDER.

Updated a number of drivers to use cpunum_get_clock() instead of Machine->drv->cpu[x].clock.

***** Raw input clock speeds should now be specified for all CPUs in the MACHINE_DRIVER. *****

Removed explicit divisors from all drivers using the following CPU types, 
which were already specifying non-1 values for CPUINFO_INT_CLOCK_DIVIDER:
 * COP4x0
 * I8039/8048 families
 * M68(7)05, HD63705
 * M6809E
 * PIC16C5X
 * TMS32010
 * TMS340x0

In a few cases, it appears that the divisor was not being used, so I guessed in those cases whether or not
the specified clock speed was raw.
2008-01-14 00:42:14 +00:00
Aaron Giles
bce2fa84b4 Cleanups and version bump to 0.122u4. 2008-01-07 17:14:05 +00:00
Aaron Giles
c828f95996 Fixed narc37b16yel.
Added talkback to narc sound boards and wired it up to the Z-unit board.
Connected Y-unit reset for various sound boards.
Added sound IRQ state detect to ADPCM board and wired it up to the Y-unit board.
Verified and documented XTALs on the Williams sound boards and Y/Z-unit PCBs.
2008-01-07 02:49:56 +00:00
Brian Troha
4e32b64aa4 Adds the Guru's readme / PCB layout to the driver 2008-01-01 18:50:49 +00:00
Aaron Giles
507ca2d275 Changes for MAME 0.121u4. 2007-12-17 16:41:39 +00:00
Aaron Giles
7b77f12186 Initial checkin of MAME 0.121. 2007-12-17 15:19:59 +00:00