part. Some shared systems still exist with globals, but this
tackles the atarigen module and the variables local to each
driver.
Also added validity check that AM_BASE_MEMBER and AM_SIZE_MEMBER
items point within the bounds of the driver_data structure.
Added driver data struct to jackal.c
out of the whatsnew, a couple of remarks:
- rallyx and nrallyx might require a separate driver data struct to deal with namco_soundregs, but I'll take care of this eventually (if really needed)
- jackal does not properly save the work ram banks atm, hence no SUPPORTS_SAVE flag, but I keep looking for a clean solution to the problem
Added driver data struct to pipedrm.c and added devices to gameplan.c driver data struct (to remove a few cputag calls)
Also, removed a couple of memory_set_bankptr that I had forgotten (buggychl.c & homedata.c)
marked non-exported functions as static and removed cases of #include "deprecat.h" [Atari Ace]
---------- Forwarded message ----------
From: Atari Ace <atari_ace@verizon.net>
Date: Sat, Dec 5, 2009 at 7:18 AM
Subject: [patch] Header cleanups
To: submit@mamedev.org
Cc: atariace@hotmail.com
Hi mamedev,
This patch improves the quality of the mame driver headers, by adding
missing prototypes and source comments, removing dead prototypes, and
marking some non-exported functions as static within the drivers. It
also eliminates about a dozen cases of #include "deprecat.h".
~aa
(Update of r7501)
---------- Forwarded message ----------
From: Atari Ace <atari_ace@verizon.net>
Date: Sun, Dec 6, 2009 at 5:51 PM
Subject: [patch] srcclean bugfix
To: submit@mamedev.org
Cc: atariace@hotmail.com
Hi mamedev,
My srcclean changes to track C-style quotes didn't handle all the
special cases correctly (for instance, '\"' and "\\\""). This fixes
it, and adds some /* ... */ to m68k_in.c so that src2html.exe does a
better job on it.
~aa
memory_install_ram() to assign a un-named bank to a region and specify
a pointer to where the RAM lives. If this is called in the DRIVER_INIT
function or MACHINE/SOUND/VIDEO_START functions, then it is permissible
to specify NULL, in which case the memory system will allocate memory
and register it for save states.
memory_install_rom() is like the above except that it only installs a
read handler.
memory_install_writeonly() is like the above except that it only installs
a write handler.
Updated several instances in the code that were assigning banks to these
sorts of static RAM regions and simplified the code.
Also fixed several regressions reported by Tafoid.
The AM_SHARE() macro now takes a tag parameter. All existing
shares have been bulk renamed to "share##". However, the name
does not matter, so please use descriptive tags going forward.
Also added tag validation for bank and share tags.
Added flag to tagmap_add functions that optionally will
replace existing objects if a duplicate is found.
* Added new technical notes.
* Added Kimble Z80 hardware support.
* Added Prologic-Noraut hardware support.
* Added proper discrete sound support to Kimble games,
and Prologic-Noraut Joker Poker.
* Slightly adjusted the visual area.
This can be wrong and must be rechecked.
* Relocated the hardware notes and layouts to ROM_LOAD section,
so can be seen/maintained in a cleaner way.
* Fixed the default lamps state.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Noraut Joker Poker (Prologic HW) [Roberto Fresca, Alan Griffin]
New games marked as GAME_NOT_WORKING
------------------------------------
Kimble Double HI-LO (z80 version) [Roberto Fresca, Alan Griffin]
their place are a series of expanded macros and new memory
installation helpers. Some mappings below (not all are new):
AM_READ(SMH_RAM) -> AM_READONLY
AM_WRITE(SMH_RAM) -> AM_WRITEONLY
AM_READWRITE(SMH_RAM, SMH_RAM) -> AM_RAM
AM_READ(rhandler) AM_WRITE(SMH_RAM) -> AM_RAM_READ(rhandler)
AM_READ(SMH_RAM) AM_WRITE(whandler) -> AM_RAM_WRITE(whandler)
AM_DEVREAD(tag, rhandler) AM_WRITE(SMH_RAM)
-> AM_RAM_DEVREAD(tag, rhandler)
AM_READ(SMH_RAM) AM_DEVWRITE(tag, whandler)
-> AM_RAM_DEVWRITE(tag, whandler)
AM_READ(SMH_ROM) -> AM_ROM
AM_WRITE(SMH_ROM) -> (was a no-op)
AM_READ(SMH_NOP) -> AM_READNOP
AM_WRITE(SMH_NOP) -> AM_WRITENOP
AM_READWRITE(SMH_NOP, SMH_NOP) -> AM_NOP
For dynamic memory handler installation of the various types,
use the new functions:
memory_unmap_read()
memory_unmap_write()
memory_unmap_readwrite() -- unmaps a section of address space
memory_nop_read()
memory_nop_write()
memory_nop_readwrite() -- nops a section of address space
Cleaned up the internals of the address_map_entry structure, and
also normalized the way the address map macros work to remove a
lot of redundancy.