Commit Graph

591 Commits

Author SHA1 Message Date
R. Belmont
893c1f3e81 Add skeleton Apple Sound Chip device (no whatsnew) 2010-09-17 02:42:13 +00:00
Aaron Giles
266ad848cf Removed obsolete code detected by the dependency analyzer. 2010-09-14 01:16:38 +00:00
Aaron Giles
db797ba791 New build tool makedep.c, derived from src2html.c (really!).
Does basic dependency analysis and supports excluding paths.

Makefile now supports a depend target which will run makedep
on the src/$(TARGET) tree and create dependencies. It deliberately
excludes the root of src/emu as well as the osd directories in
order to keep the dependency file down to a reasonable size, so
if a core header file changes, you still need to clean and build
all.
2010-09-14 01:15:26 +00:00
Roberto Fresca
01136a7d31 New driver for Golden Games / C+M Technics AG hardware. [Roberto Fresca, Tomasz Slanina]
New games marked as GAME_NOT_WORKING
------------------------------------
Swiss Poker ('50 SG-.10', V2.5) [Roberto Fresca, Tomasz Slanina, Team Europe & Housi]
2010-09-13 01:38:45 +00:00
Phil Bennett
fdc0db7e26 Merged ssgbl.c into megadrvb.c and moved bootleg input definitions
out of megadriv.c [Sonikos]


---------- Forwarded message ----------
From: abcd efgh <cix_999@yahoo.it>
Date: Thu, Sep 2, 2010 at 8:50 PM
Subject: megadrvb.c - ssgbl
To: submit@mamedev.org


Hi

This is the finished work for megadrvb.c:
Merge ssgbl into megadrvb
Moved inputs game from megadriv.c to megadrvb.c
if you use R2 diff i change also the roms names for a better fit the
drive in ending with "mdb" wich means "mega drive bootleg" so the
result is:
aladbl     -> aladmdb
mk3ghw -> mk3mdb
ssf2ghw  -> ssf2mdb
ssgbl       -> srmdb

The R2 diff is the better way but you choose the best for you.

Bye Sonikos
2010-09-10 22:55:22 +00:00
smf-
acaf942e31 added missing file from Atari Ace's submission 2010-09-08 19:45:06 +00:00
Aaron Giles
06e995de5f Removed generic.videoram and generic.videoram_size. These generics
have no core use, they are simply there for the convenience of drivers.  
Now that drivers are required to have devices, the data should move there.
[Atari Ace]

---------- Forwarded message ----------
From: Atari Ace <atari_ace@frontier.com>
Date: Sun, Sep 5, 2010 at 4:45 PM
Subject: [patch] Eliminate generic.videoramm generic.videoram_size
To: submit@mamedev.org
Cc: atariace@hotmail.com


Hi mamedev,

This set of patches removes generic.videoram and
generic.videoram_size.  These generics have no core use, they are
simply there for the convenience of drivers.  Now that drivers are
required to have devices, the data should move there.

The first patch sets the stage for the rest of the patch.  It includes
several changes.
1.  It replaces all the uses of generic.videoram_size with appropriate
constants.
2.  It eliminates the write handlers from pc_video.c.  These are
unused in MAME and MESS appears to have a private copy.
3.  It splits some drivers:
 a.  It separates mcr68 from the mcr driver, mostly by dividing
machine/mcr.c.
 b.  It separates naughtyb from the phoenix driver by introducing an
audio/pleiads.h include.
 c.  It replaces video/system1.h with includes/system1.h.
4.  It fixes some videoram related bugs.
 a.  balsente, mole didn't need videoram.
 b.  sbowling has a dangling reference to videoram from an earlier
driver_data conversion
5.  It expands some namcona functions to multiple lines so that later
scripted-edits look sensible.

The second patch is generated by vram01_1.pl.  It introduces videoram
local variables in function that use videoram read-only and removes
AM_SIZE_GENERIC(videoram).

The third patch is generated by vram01_2.pl.  It replaces all
occurances of generic.videoram with state->videoram,
introducing/modifying driver_device classes as needed.

The fourth patch then actually removes the generics, and fixes one
issue the scripts didn't handle.

~aa
2010-09-08 15:45:46 +00:00
Aaron Giles
6fe9fe53f4 Integrated comments into debugcpu.c, and removed debugcmt.c. Modernized
the code and updated so it actually works with the modern debug classes.
2010-09-05 06:12:47 +00:00
Roberto Fresca
d5f94fa913 New driver for Jubilee's Double-Up Poker. Decoded graphics and colors
properly. Hooked the correct TMS9980 CPU, added a preliminary memory
map and some technical notes. [Roberto Fresca]


New games marked as GAME_NOT_WORKING
------------------------------------
Jubilee Double-Up Poker [Roberto Fresca]
2010-09-05 05:20:43 +00:00
Aaron Giles
5b6c078aeb Added templates required_shared_ptr<> and optional_shared_ptr<> which
work just like required_device<> and optional_device<> for retrieving a
pointer by tag from an address space that specifies AM_SHARE("tag").
Also added templates required_shared_size<> and optional_shared_size<>
for retrieving the size of the AM_SHARE region.

Created a new generic NVRAM device. It can be configured to default to
0-fill, 1-fill, random-fill, or custom fill. In all cases, a same-named
memory region overrides the default fill. The address range where the
NVRAM can be found is now identified by an AM_SHARE() region of the
same tag as the NVRAM device. Drivers can also explicitly configure a
separately-allocated NVRAM region via nvram_device::set_base().

Replaced all instances of MDRV_NVRAM_HANDLER(generic_*) with
MDRV_NVRAM_ADD_*("nvram"). Replaced all AM_BASE_GENERIC/AM_SIZE_GENERIC(nvram)
with AM_SHARE("nvram"). For all remaining drivers that referenced the
generic.nvram directly, changed them to hold a required_shared_ptr<UINTx>
to the NVRAM in their driver state, and use that instead. Removed
nvram and nvram_size from the generic_ptrs.
2010-09-04 17:01:46 +00:00
Aaron Giles
420e1e0ad5 Added include files for all remaining drivers with multiple source files.
[Atari Ace]

---------- Forwarded message ----------
From: Atari Ace <atari_ace@frontier.com>
Date: Sun, Aug 29, 2010 at 10:35 PM
Subject: [patch] Add missing include files for multi-file drivers
To: submit@mamedev.org
Cc: atariace@hotmail.com


Hi mamdev,

Converting a driver to use driver_data requires that multi-file
drivers have a common include file to host the driver_data class. Thus
this patch, which gets ahead of the curve and adds missing include
files to all multi-file drivers (minus ones covered by my last
driver_data patch).  The first patch is include-related cleanup of the
existing drivers.  The second patch then adds ~100 files to
mame/includes.

~aa
2010-09-02 09:13:01 +00:00
Aaron Giles
a7313263b3 Converted sauro, scotrsht, segald, seicross, senjyo, shangha3,
shaolins, shisen, skyraid, solomon, spcforce, speekatk, splash, 
sprcros2, ssozumo, suna16, suna8 to driver_data. [Atari Ace]


---------- Forwarded message ----------
From: Atari Ace <atari_ace@frontier.com>
Date: Sat, Aug 28, 2010 at 9:39 PM
Subject: [patch] Convert various s drivers to driver_data
To: submit@mamedev.org
Cc: atariace@hotmail.com


Hi mamedev,

Another round of driver_data conversions...

sauro, scotrsht, segald, seicross, senjyo, shangha3, shaolins, shisen,
skyraid, solomon, spcforce, speekatk, splash, sprcros2, ssozumo,
suna16, suna8

~aa
2010-09-02 09:04:26 +00:00
Miodrag Milanovic
5319902394 Made MAME compile by adding missing H files restored from files Atari Ace sent (no whatsnew) 2010-08-27 09:03:57 +00:00
Ryan Holtz
e2f6e9c473 Added a set of macros to minimize the amount of copy/pasting necessary to convert a device to the new style. [Harmony] 2010-08-26 01:56:46 +00:00
R. Belmont
65425075d3 New games added as GAME_NOT_WORKING
-----------------------------------
Savage Quest [TrevEB]
2010-08-25 01:11:26 +00:00
Aaron Giles
e38adf825e Added mask-free versions of read_word/read_dword/read_qword to
address_space. Also added unaligned variants that can read
unaligned values. Rewrote the core handler as a template that
handles all cases, along with a simple unit test to verify that
everything is correct.

Updated 68k, v60, i86, and nec cores to use unaligned read/
write instead of their own stubs for handling misalinged reads.

Fixed memory management of ga2 decryption.
2010-08-21 18:40:01 +00:00
Curt Coder
d303a4f17d Imported the Hitachi HCD62121 CPU core from MESS. 2010-08-20 17:32:03 +00:00
Aaron Giles
dd19e512c0 Massive memory system change. This is another step along the path toward
supporting cleaner implementations of drivers in the explicitly OO world.
Expect a follow-on of several more changes to clean up from this one, which
deliberately tried to avoid touching much driver code.

Converted address_space to a class, and moved most members behind accessor
methods, apart from space->machine and space->cpu. Removed external references
to 8le/8be/16le/16be/32le/32be/64le/64be. All external access is now done via
virtual functions read_byte()/read_word()/etc. Moved differentiation between
the endianness and the bus width internal to memory.c, and also added a new
axis to support small/large address spaces, which allows for faster lookups
on spaces smaller than 18 bits. 

Provided methods for most global memory operations within the new address_space 
class. These will be bulk converted in a future update, but for now there are
inline wrappers to hide this change from existing callers.

Created new module delegate.h which implements C++ delegates in a form that 
works for MAME. Details are in the opening comment. Delegates allow member 
functions of certain classes to be used as callbacks, which will hopefully 
be the beginning of the end of fetching the driver_data field in most 
callbacks. All classes that host delegates must derive from bindable_object.
Today, all devices and driver_data do implicitly via their base class.

Defined delegates for read/write handlers. The new delegates are always
passed an address_space reference, along with offset, data, and mask. Delegates
can refer to methods either in the driver_data class or in a device class.
To specify a callback in an address map, just use AM_READ_MEMBER(class, member).
In fact, all existing AM_ macros that take read/write handlers can now accept
delegates in their place. Delegates that are specified in an address map are
proto-delegates which have no object; they are bound to their object when
the corresponding address_space is created.

Added machine->m_nonspecific_space which can be passed as the required
address_space parameter to the new read/write methods in legacy situations 
where the space is not provided. Eventually this can go away but we will
need it for a while yet.

Added methods to the new address_space class to dynamically install delegates
just like you can dynamically install handlers today. Delegates installed this
way must be pre-bound to their object.

Moved beathead's read/write handlers into members of beathead_state as an
example of using the new delegates. This provides examples of both static (via
an address_map) and dynamic (via install_handler calls) mapping using delegates.

Added read/write member functions to okim6295_device as an example of using
delegates to call devices. Updated audio/williams.c as a single example of
calling the device via its member function callbacks. These will be bulk
updated in a future update, and the old global callbacks removed.

Changed the DIRECT_UPDATE_CALLBACKs into delegates as well. Updated all users
to the new function format. Added methods on direct_read_data for configuring the
parameters in a standard way to make the implementation clearer.

Created a simple_list template container class for managing the common
singly-linked lists we use all over in the project.

Many other internal changes in memory.c, mostly involving restructuring the code
into proper classes.
2010-08-19 06:57:51 +00:00
Angelo Salese
9000eb69e3 Improved video emulation to the Aristocrat MK-5, added bare-bones VIDC DMA transfer and timings, added 8bpp mode [Angelo Salese] 2010-08-18 20:37:01 +00:00
Phil Bennett
9ddee4ab77 Merged topshoot into the megadrvb driver (formerly genesisb) [Sonikos]
---------- Forwarded message ----------
From: abcd efgh <cix_999@yahoo.it>

- Hide quoted text -
Date: Sat, Aug 14, 2010 at 8:41 PM
Subject: topshoot/genesisb
To: submit@mamedev.org


Hi

I merge topshoot into genesisb driver.

bye sonikos
2010-08-16 12:16:19 +00:00
Angelo Salese
4201afbb6d new NOT WORKING
----------------
Olympic Hot Stuff [Ogoun]
2010-08-13 09:59:00 +00:00
mariuszw1
793c0fd358 Added sound support to Signetics S2636 (by using VC4000 sound support from MESS). Hooked up sound to Malzak, Galaxia and Astro Wars [Mariusz Wojcieszek] 2010-08-12 19:45:01 +00:00
Phil Bennett
f3581568d8 Merged aladbl.c and ssf2md.c to create genesisb.c [Sonikos]
---------- Forwarded message ----------
From: abcd efgh <cix_999@yahoo.it>
Date: Mon, Aug 9, 2010 at 7:51 PM
Subject: genesisb.c
To: submit@mamedev.org


Hi everybody !
I made just a little work, i moved ssf2md  in to aladinb.c driver and
renamed this one genesisb.c for create a new driver for all the
Genesis\Megadrive bootleg.

Bye Sonikos.
2010-08-11 19:12:32 +00:00
Angelo Salese
d310259357 More refactoring to the Toaplan 2 / GP9001 VDP device [David Haywood] 2010-08-09 10:48:14 +00:00
Andrew Gardner
26d3ec3244 plygonet.c : Updates Polygonet driver to use driver_data class. [Atari Ace] 2010-08-08 07:07:15 +00:00
Andrew Gardner
0946c173cb dsp56k : Hooked up new execution engine. [Andrew Gardner] 2010-08-07 18:42:59 +00:00
Phil Bennett
cf66ab4463 New games added or promoted from NOT_WORKING
--------------------------------------------
The Last Starfighter (prototype) [Phil Bennett, Ken Van Mersbergen]
Air Race (prototype) [Phil Bennett, Ken Van Mersbergen]
2010-08-07 17:32:54 +00:00
Aaron Giles
ff3f202d0a Convert seta.c, seta2.c, and ssv.c to driver_data. [Atari Ace]
--

From: Atari Ace <atari_ace@frontier.com>
Date: Tue, Aug 3, 2010 at 3:03 PM
Subject: [patch] Convert seta/seta2/ssv to driver_data
To: submit@mamedev.org
Cc: atariace@hotmail.com


Hi mamedev,

This patch removes all global variables from seta.c, seta2.c and
ssv.c.  The number of AM_BASE() macros drops by 4% from 3111 to 2989.

Note: ssv.h and seta2.h are new files.

~aa
2010-08-04 15:58:29 +00:00
Andrew Gardner
7543a1a9a4 The dsp561xx CPU core now generates accurate disassembly for Konami Polygonet hardware
(verified against Motorola's reference disassembler). [Andrew Gardner, Stiletto]
2010-08-04 05:11:00 +00:00
Aaron Giles
fe47da274e Return to type safety. Changed address maps back into functions that build
up the definition, rather than the whole tokenizing system, which lost type
checking. Added a new module addrmap.c which implements the address map
classes, and changed the macros to call methods on the address_map and
address_map_entry classes which are strongly typed.

Fixed a few incorrectly specified memory map entries along the way. Please
double-check to make sure the behavior is expected in: twincobr.c, lordgun.c,
galaxold.c.

This change also means that since the address_maps are now constructor
functions, they are detected when not used, so a number of #ifdef UNUSED_CODE
were added around dangling address map definitions.

Also included with this change:
- removed cputag_clocks_to_attotime() and cputag_attotime_to_clocks() in
   favor of just expanding the class
- same for cputag_suspend() and cputag_resume()
2010-08-01 21:04:03 +00:00
Roberto Fresca
811ee9874e New driver for Mega Double Poker, from Blitz System Inc. [Roberto Fresca]
* Initial release.
 * Preliminary memory map.
 * Hooked both PIAs, but need more analysis to confirm the offsets.
 * Accurate graphics and color decode.
 * Added main PCB and daughterboard layouts.
 * Added partial docs and diagrams about the CPU/MCU/ROMs addressing.
 * Added debug and technical notes.


New games marked as GAME_NOT_WORKING
------------------------------------
Mega Double Poker (conversion kit) [Roberto Fresca, ChrisQC, Smitdogg]
2010-07-30 21:06:28 +00:00
Quench
08c2ad802e Added Ameri Darts internal DSP dump and TMS32015 support to the
Amerdart driver. Also added savestate support to the game.
[Dr Decapitator, Quench]
2010-07-20 16:11:46 +00:00
Phil Bennett
e848cb8bb7 Various improvements to polepos.c [Alex Jackson]:
* Corrected the way the steering wheel is hooked up, fixing the jittery
   steering in the sets with MCUs.
 * Added a new layout file for the bootleg sets without MCUs (topracern and polepos2bi).
 * Converted clock frequencies to crystal values from xtal.c.
 * Added correct ROM names for the Namco-manufactured sets (polepos and polepos2).
 * Completely removed the unused global variable polepos_gear_bit.
 * Fixed a couple of bootleg ROMs that were very likely bit-rotted.
2010-07-15 11:05:38 +00:00
R. Belmont
018a21fa53 Add *IX man pages for MAME and utils [wallyweek] 2010-07-08 14:18:07 +00:00
smf-
c13eb4d193 turned i2cmem into a c++ device & ditched the unused legacy device. 2010-07-07 13:05:02 +00:00
Nicola Salmoria
0664448c9d divided segacrpt.c in two files, one for the old encryption and one for the new one. 2010-07-05 19:38:55 +00:00
Miodrag Milanovic
c14878e59a Imported image related utils from MESS into /lib/util [Miodrag Milanovic] 2010-07-05 10:19:05 +00:00
Aaron Giles
733b797a3d Split mame.c into mame.c and machine.c, the latter containing the
running_machine definition and implementation.

Moved global machine-level operations and accessors into methods on the
running_machine class. For the most part, this doesn't affect drivers
except for a few occasional bits:

  mame_get_phase() == machine->phase()
  add_reset_callback() == machine->add_notifier(MACHINE_NOTIFY_RESET, ...)
  add_exit_callback() == machine->add_notifier(MACHINE_NOTIFY_EXIT, ...)
  mame_get_base_datetime() == machine->base_datetime()
  mame_get_current_datetime() == machine->current_datetime()

Cleaned up the region_info class, removing most global region accessors
except for memory_region() and memory_region_length(). Again, this doesn't
generally affect drivers.
2010-06-30 03:46:21 +00:00
Phil Bennett
6fa25e5c9a aristmk4: various improvements: [FrasheR, Palindrome]
* Fixed VIA for good. 5010 - 501F
* Hooked up push button inputs
* Hooked up ports for the PML 2852 U3
* Implemented coin input
* Lamp output and button layout
* NVRAM backup
* Connected SW7 for BG colour map select
* Added LK13. 3MHz or 1.5 MHz CPU speed select
* Added sound sample for mechanical meter pulse
* Replaced custom RTC code with MC146818
2010-06-27 14:42:45 +00:00
Phil Bennett
b94bf9156b Hooked up Daikaiju no Gyakushu 68705 MCU and removed MCU simulation code [Phil Bennett, Dr. Decapitator] 2010-06-26 20:34:51 +00:00
Aaron Giles
29b6b0de41 C++-ified the debugger views. Not quite architecturally where I would
like them, but it's a start. Split implementation of individual view
types out to separate files. Updated all callers.

Also:
 * fixed okim6295 memory view
 * changed emualloc to free resource pools from earliest to latest
    so that early objects can safely clean up stuff they allocated
2010-06-25 05:11:42 +00:00
Miodrag Milanovic
ea8dd94677 - Moved ioproc implementation from MESS [Miodrag Milanovic]
- Implemented more image device calls, and did some cleanup (no whatsnew)
2010-06-23 19:35:49 +00:00
Miodrag Milanovic
cbe7260a59 - Moved softlist implementation from MESS [Miodrag Milanovic]
- Moved image related UI from MESS to emu core
- Reimplemented filename related image device calls
2010-06-20 18:48:02 +00:00
Ryan Holtz
834b1badde Added a skeleton driver for Philips CD-i-based arcade series, Quizard [Harmony]
New gamse marked as GAME_NOT_WORKING
------------------------------------
Quizard (1.7) [ANY, The Dumping Union, Harmony]
Quizard (2.2) [ANY, The Dumping Union, Harmony]
Quizard (3.2) [ANY, The Dumping Union, Harmony]
Quizard Rainbow (4.1) [ANY, The Dumping Union, Harmony]
2010-06-19 20:58:26 +00:00
Miodrag Milanovic
826dba5923 - removed MESS dependency from config.c
- moved image legacy device implementation to devimage.c
- created image.c implementation with initialization of devices/configuration for image devices, used those calls from mame.c
- some minor cleanup of legacy device and initial implementation of some calls

(no whatsnew for now, this is just for log,will put more info on final commit)
2010-06-17 20:06:54 +00:00
Miodrag Milanovic
d2a7b5f332 hashfile moved from MESS to emu section (needed for now in image support until softlist implementation is finished), this doesn't affect mame side (no whatsnew) 2010-06-17 06:57:05 +00:00
Miodrag Milanovic
848bf53c3d - moved opresolv and zippath into /lib/util from MESS [Miodrag Milanovic]
- removed ifdef MESS from osd part since calls are needed by zippath
2010-06-16 18:04:30 +00:00
Miodrag Milanovic
791a3515b9 devlegacy.c,clifront.c,info.c [Miodrag Milanovic]
- Created legacy image device
- Moved opresolv implementation from MESS
- listmedia is option is available in MAME too
- listxml output now contains image devices
2010-06-15 09:16:05 +00:00
Angelo Salese
4a7156c0a0 Dumped internal ROM for Janshi [Charles MacDonald] 2010-06-13 16:45:41 +00:00
Aaron Giles
100564d412 WARNING: There are likely to be regressions in both functionality and
performance as a result of this change. Do not panic; report issues to the
list in the short term and I will look into them. There are probably also
some details I forgot to mention. Please ask questions if anything is not
clear.

NOTE: This is a major internal change to the way devices are handled in
MAME. There is a small impact on drivers, but the bulk of the changes are
to the devices themselves. Full documentation on the new device handling
is in progress at http://mamedev.org/devwiki/index.php/MAME_Device_Basics

Defined two new casting helpers: [Aaron Giles]

  downcast<type>(value) should be used for safe and efficient downcasting
  from a base class to a derived class. It wraps static_cast<> by adding
  an assert that a matching dynamic_cast<> returns the same result in 
  debug builds.
  
  crosscast<type>(value) should be used for safe casting from one type to
  another in multiple inheritance scenarios. It compiles to a 
  dynamic_cast<> plus an assert on the result. Since it does not optimize
  down to static_cast<>, you should prefer downcast<> over crosscast<>
  when you can.
  
Redefined running_device to be a proper C++ class (now called device_t).
Same for device_config (still called device_config). All devices and
device_configs must now be derived from these base classes. This means
each device type now has a pair of its own unique classes that describe
the device. Drivers are encouraged to use the specific device types
instead of the generic running_device or device_t classes. Drivers that
have a state class defined in their header file are encouraged to use
initializers off the constructor to locate devices. [Aaron Giles]

Removed the following fields from the device and device configuration
classes as they never were necessary or provided any use: device class,
device family, source file, version, credits. [Aaron Giles]

Added templatized variant of machine->device() which performs a downcast
as part of the device fetch. Thus machine->device<timer_device>("timer")
will locate a device named "timer", downcast it to a timer_device, and
assert if the downcast fails. [Aaron Giles]

Removed most publically accessible members of running_device/device_t in
favor of inline accessor functions. The only remaining public member is
machine. Thus all references to device->type are now device->type(), etc.
[Aaron Giles]

Created a number of device interface classes which are designed to be mix-
ins for the device classes, providing specific extended functionality and
information. There are standard interface classes for sound, execution,
state, nvram, memory, and disassembly. Devices can opt into 0 or more of
these classes. [Aaron Giles]

Converted the classic CPU device to a standard device that uses the
execution, state, memory, and disassembly interfaces. Used this new class
(cpu_device) to implement the existing CPU device interface. In the future
it will be possible to convert each CPU core to its own device type, but 
for now they are still all CPU devices with a cpu_type() that specifies
exactly which kind of CPU. [Aaron Giles] 

Created a new header devlegcy.h which wraps the old device interface using
some special template classes. To use these with an existing device,
simply remove from the device header the DEVICE_GET_INFO() declaration and
the #define mapping the ALL_CAPS name to the DEVICE_GET_INFO. In their
place #include "devlegcy.h" and use the DECLARE_LEGACY_DEVICE() macro.
In addition, there is a DECLARE_LEGACY_SOUND_DEVICE() macro for wrapping
existing sound devices into new-style devices, and a 
DECLARE_LEGACY_NVRAM_DEVICE() for wrapping NVRAM devices. Also moved the
token and inline_config members to the legacy device class, as these are
not used in modern devices. [Aaron Giles]

Converted the standard base devices (VIDEO_SCREEN, SPEAKER, and TIMER) 
from legacy devices to the new C++ style. Also renamed VIDEO_SCREEN to
simply SCREEN. The various global functions that were previously used to
access information or modify the state of these devices are now replaced
by methods on the device classes. Specifically:

  video_screen_configure()             == screen->configure()
  video_screen_set_visarea()           == screen->set_visible_area()
  video_screen_update_partial()        == screen->update_partial()
  video_screen_update_now()            == screen->update_now()
  video_screen_get_vpos()              == screen->vpos()
  video_screen_get_hpos()              == screen->hpos()
  video_screen_get_vblank()            == screen->vblank()
  video_screen_get_hblank()            == screen->hblank()
  video_screen_get_width()             == screen->width()
  video_screen_get_height()            == screen->height()
  video_screen_get_visible_area()      == screen->visible_area()
  video_screen_get_time_until_pos()    == screen->time_until_pos()
  video_screen_get_time_until_vblank_start() == 
                                 screen->time_until_vblank_start()
  video_screen_get_time_until_vblank_end() == 
                                 screen->time_until_vblank_end()
  video_screen_get_time_until_update() == screen->time_until_update()
  video_screen_get_scan_period()       == screen->scan_period()
  video_screen_get_frame_period()      == screen->frame_period()
  video_screen_get_frame_number()      == screen->frame_number()

  timer_device_adjust_oneshot()        == timer->adjust()
  timer_device_adjust_periodic()       == timer->adjust()
  timer_device_reset()                 == timer->reset()
  timer_device_enable()                == timer->enable()
  timer_device_enabled()               == timer->enabled()
  timer_device_get_param()             == timer->param()
  timer_device_set_param()             == timer->set_param()
  timer_device_get_ptr()               == timer->get_ptr()
  timer_device_set_ptr()               == timer->set_ptr()
  timer_device_timeelapsed()           == timer->time_elapsed()
  timer_device_timeleft()              == timer->time_left()
  timer_device_starttime()             == timer->start_time()
  timer_device_firetime()              == timer->fire_time()

Updated all drivers that use the above functions to fetch the specific
device type (timer_device or screen_device) and call the appropriate
method. [Aaron Giles]

Changed machine->primary_screen and the 'screen' parameter to VIDEO_UPDATE
to specifically pass in a screen_device object. [Aaron Giles]

Defined a new custom interface for the Z80 daisy chain. This interface
behaves like the standard interfaces, and can be added to any device that
implements the Z80 daisy chain behavior. Converted all existing Z80 daisy
chain devices to new-style devices that inherit this interface.
[Aaron Giles]

Changed the way CPU state tables are built up. Previously, these were data
structures defined by a CPU core which described all the registers and how
to output them. This functionality is now part of the state interface and
is implemented via the device_state_entry class. Updated all CPU cores
which were using the old data structure to use the new form. The syntax is
currently awkward, but will be cleaner for CPUs that are native new 
devices. [Aaron Giles]

Converted the okim6295 and eeprom devices to the new model. These were
necessary because they both require multiple interfaces to operate and it
didn't make sense to create legacy device templates for these single cases.
(okim6295 needs the sound interface and the memory interface, while eeprom
requires both the nvram and memory interfaces). [Aaron Giles]

Changed parameters in a few callback functions from pointers to references
in situations where they are guaranteed to never be NULL. [Aaron Giles]

Removed MDRV_CPU_FLAGS() which was only used for disabling a CPU. Changed
it to MDRV_DEVICE_DISABLE() instead. Updated drivers. [Aaron Giles]

Reorganized the token parsing for machine configurations. The core parsing
code knows how to create/replace/remove devices, but all device token
parsing is now handled in the device_config class, which in turn will make
use of any interface classes or device-specific token handling for custom
token processing. [Aaron Giles]

Moved many validity checks out of validity.c and into the device interface
classes. For example, address space validation is now part of the memory
interface class. [Aaron Giles]

Consolidated address space parameters (bus width, endianness, etc.) into
a single address_space_config class. Updated all code that queried for
address space parameters to use the new mechanism. [Aaron Giles]
2010-06-08 06:09:57 +00:00