Commit Graph

10081 Commits

Author SHA1 Message Date
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
Aaron Giles
a9befd7970 Remove artificial SOUND_ prefix from sound device names.
[Atari Ace]

---------- Forwarded message ----------
From: Atari Ace <atari_ace@frontier.com>
Date: Tue, Aug 31, 2010 at 5:50 AM
Subject: [patch] Despecialize legacy sound devices
To: submit@mamedev.org
Cc: atariace@hotmail.com


Hi mamedev,

While poking around in the MAME source code, I came across the odd
type snes_sound_sound_device, which led me to the fact that legacy
sound devices are named a bit differently than other legacy devices,
probably a kludge intended to be changed later but forgotten.  Anyhow,
this patch fixes it.  The first patch goes part way, changing all but
the tag (which fixes the weird type issue).  It also changes type
names in the scsp and msm5232 cores to avoid a name collision if/when
the second patch is applied.  The second patch then touches a lot of
files, mostly removing the SOUND_ prefix from type asserts, but it
also needed to change the tags for the LASERDISC, S2636 and SPEAKER
sound cores to avoid collisions with other devices with the same name.

~aa
2010-09-02 08:14:41 +00:00
Aaron Giles
066e54b69f Changed driver_data objects to be devices. Replaced the driver_data_t
class with a new driver_device class, which is the base class for all 
driver_data objects now. The new driver devices are added as the
first device in the device list, with a tag of "root"; all other
devices are now owned by the driver device.

Moved core callbacks (machine_start/_reset, sound_start/_reset, 
video_start/_reset/_eof/_update, and palette_init) into device 
configuration parameters on these new devices. The driver_device
base class overrides device_start(), ensures all other devices have
been started, and then calls, in order, the following overridable 
methods:

  find_devices() - new, used to locate devices prior to DRIVER_INIT
  DRIVER_INIT function from the game driver
  palette_init() - by default calls the MDRV_PALETTE_INIT function
  driver_start() - new
  machine_start() - by default calls the MDRV_MACHINE_START function
  sound_start() - by default calls the MDRV_SOUND_START function
  video_start() - by default calls the MDRV_VIDEO_START function

Similarly, the driver_device class overrides device_reset() and then
calls these methods in order:

  driver_reset() - new
  machine_reset() - by default calls the MDRV_MACHINE_RESET function
  sound_reset() - by default calls the MDRV_SOUND_RESET function
  video_reset() - by default calls the MDRV_VIDEO_RESET function

To accommodate these changes, initialization order is slightly
altered from before. The tilemap, video, sound, and debug systems 
are now initialized prior to the devices' start. And the user
callbacks for DRIVER_INIT, PALETTE_INIT, MACHINE_START, SOUND_START, 
and VIDEO_START are all called back-to-back. The net effect should 
be similar, however.

Added methods (optional_device and required_device) to the new 
driver_device class to find devices, intended to be used from the 
find_devices() callback. See harddriv.h and beathead.h for examples 
of usage.

Changed device_t::subtag to only prepend a prefix if the device is
not the 'root' device, in order to keep compatibility with existing
tag searching.

Changed device startup to actively reorder devices when they report
missing dependencies. This ensures that the reset functions get
called in the same order that the start functions did.

Bulk updated drivers as follows:

First removed the old static alloc function from the driver_data_t:
S: [ \t]*static driver_device \*alloc *\( *running_machine *\&machine *\) *\{ *return auto_alloc_clear *\( *\&machine *, *[a-zA-Z0-9_]+_state *\( *machine *\) *\); *\}[\r\n]*
R: 

Then switched from driver_data_t to driver_device:
S: driver_data_t
R: driver_device

Then changed the constructors to pass the correct parameters:
S: ([a-zA-Z0-9_]+)_state *\( *running_machine *\&machine *\)([\r\n\t ]+): *driver_device *\( *machine *\)
R: \1_state\(running_machine \&machine, const driver_device_config_base \&config\)\2: driver_device\(machine, config\)
2010-09-02 07:57:50 +00:00
Fabio Priuli
1d194df33a aristmk4.c:
* Cashcade workaround for topgear [Frasher]
* Improved a few memory handlers [Palindrome]


out of whatsnew: the original patch contained more changes so probably someone might want to contact Palindrome & c. about these.
1. the way ticket output was handled has been rejected (MAME should not print out files like they did)
2. they changed a rom in autmoon and another PROM: since I'm not sure if the roms are available and the commit message did not mention them at all, I cannot judge if the change is fine
3. the way they implemented Robot Test is debatable, but I know nothing about the hardware, so someone should review that part
4. if they want to remap Jackpot inputs, they should choose a key not already in use ('I' is taken as well) and possibly use the common IPT_GAMBLE we have
2010-09-01 10:29:19 +00:00
Fabio Priuli
2436926dfe bfm_dm01 improvements: replaced the video screen hack used for the dotmatrix display with a more accurate, artwork-based version.
The BFM_DM01 clocks data in one byte at a time, and the new dotmatrix render object represents the 8 dots powered by each byte. [AGEMAME]
2010-09-01 10:17:16 +00:00
Fabio Priuli
4c0b712c8e timer.c: timers get rescheduled only if enable state has changed [Christophe Jaillet] 2010-09-01 10:13:45 +00:00
Miodrag Milanovic
dbf7afe106 Made options visible to device validate function when doing "-validate", this is used by MESS (example software list and messram devices) (no whatsnew) 2010-09-01 09:34:55 +00:00
Aaron Giles
f6b83b62c5 Changed the MACHINE_DRIVER_* macros, as follows:
1. Renamed MACHINE_DRIVER_* to MACHINE_CONFIG_* to match the name
    of the object it actually describes. The MDRV_* prefix may
    eventually be bulk updated at some point, but not now.

 2. MACHINE_CONFIG_START() now takes a driver_data_t-derived
    class as a required second parameter. This means that
    MDRV_DRIVER_DATA() is no longer required, and every "root"
    machine config *must* specify a driver data class (or driver_data_t
    itself if the driver has not yet been updated to use driver data).

 3. New MACHINE_CONFIG_DERIVED() macro defines a machine_config
    that is derived from another machine_config. This takes the place
    of the very typical MACHINE_DRIVER_START()/MDRV_IMPORT_FROM()
    combination.

 4. New MACHINE_CONFIG_FRAGMENT() macro defines a partial 
    machine_config that can only be included in another "root"
    machine_config. This is also used for machine_configs that are
    specified as part of a device.

 5. Changed MDRV_IMPORT_FROM() to MDRV_FRAGMENT_ADD() to more
    accurately describe what is happening.

 6. Added asserts to the above three macros to ensure they are
    properly used.

Updated all machine drivers to use the new macros. Search & replace
lists below cover 99% of the changes, with just a few manual fixups.

S: MACHINE_DRIVER_START\( *([a-zA-Z0-9_]+) *\)[\r\n\t ]*MDRV_DRIVER_DATA\( *([a-zA-Z0-9_]+) *\)
R: MACHINE_CONFIG_START\( \1, \2 \)

S: MACHINE_DRIVER_START\( *([a-zA-Z0-9_]+) *\)[\r\n\t ]*/\* driver data \*/[\r\n\t ]*MDRV_DRIVER_DATA\( *([a-zA-Z0-9_]+) *\)
R: MACHINE_CONFIG_START\( \1, \2 \)

S: MACHINE_DRIVER_START\( *([a-zA-Z0-9_]+) *\)[\r\n\t ]*MDRV_IMPORT_FROM\( *([a-zA-Z0-9_]+) *\)
R: MACHINE_CONFIG_DERIVED\( \1, \2 \)

S: MACHINE_DRIVER_START\( *([a-zA-Z0-9_]+) *\)[\r\n\t ]*/\* basic machine hardware \*/[\r\n\t ]*MDRV_IMPORT_FROM\( *([a-zA-Z0-9_]+) *\)
R: MACHINE_CONFIG_DERIVED\( \1, \2 \)\r\n\r\n\t/\* basic machine hardware \*/

For all files outside of mame/drivers....
S: MACHINE_DRIVER_START
R: MACHINE_CONFIG_FRAGMENT in all non-drivers

For all files within mame/drivers....
S: MACHINE_DRIVER_START\( *([a-zA-Z0-9_]+) *\)
R: MACHINE_CONFIG_START\( \1, driver_data_t \)

S: MDRV_IMPORT_FROM
R: MDRV_FRAGMENT_ADD

S: MACHINE_DRIVER_END
R: MACHINE_CONFIG_END

S: MACHINE_DRIVER_NAME
R: MACHINE_CONFIG_NAME

S: MACHINE_DRIVER_EXTERN
R: MACHINE_CONFIG_EXTERN

Final step: run mame -valid and fix the incorrect macros at the lines
where the asserts show up.
2010-09-01 05:03:27 +00:00
Wilbert Pol
ce3c3205cc mc6845.c: Rewritten to allow mid frame changes to the counter registers. This enables drivers to use advanced
split screen and scrolling effects using a regular mc6845. [Wilbert Pol]

Interface change:
The screen tag is no longer mandatory. If a screen tag is provided then the mc6845 device will resize
the screen and visible area based on the parameters set in the 6845 config and registers. If the screen
tag is not provided then the driver is supposed to be in charge of setting the proper screen configuration.

Warning: This breaks the relationship between the timing of a screen device and the signals generated
by the 6845.
2010-08-31 19:47:23 +00:00
Scott Stone
874eb8ae2a Fixed MT#04036: astrowar: [debug] Severe graphic corruption 2010-08-31 13:39:34 +00:00
Fabio Priuli
bc99cda953 Fix for MT04035: All sets in chihiro.c: Assert before OK 2010-08-30 23:14:55 +00:00
Aaron Giles
0e672ba6eb Cleanups and version bump. 2010-08-30 15:20:58 +00:00
Roberto Zandona
5248234004 lethalen: hooked up some k053244 register; [Roberto Zandona']
it's related to:
00171: lethalen: mask rom check they all come up bad.

in konicdev.c there's in READ8_DEVICE_HANDLER( k053244_r ):

addr = (k053244->rombank << 19) | ((k053244->regs[11] & 0x7) << 18) | (k053244->regs[8] << 10) | (k053244->regs[9] << 2) | ((offset & 3) ^ 1 );

for the A10 test and A8 test (GFX2 region of lethalen) we need:
........ | ((offset & 3) ^ 3 );

is there any doc about k053244?
2010-08-29 22:55:27 +00:00
Miodrag Milanovic
9d60dac435 Fix current code linking (no whatsnew) 2010-08-28 19:56:49 +00:00
Roberto Zandona
479d33551d removed obsolete comment 2010-08-28 18:07:55 +00:00
Ryan Holtz
e6af68eaa1 Reverting until I can figure out what's up. 2010-08-28 17:50:23 +00:00
Ryan Holtz
c675ce7df5 Fix for class derivation issues brought about by pain meds. No whatsnew. 2010-08-28 17:14:12 +00:00
Ryan Holtz
821814658f Correcting device names. No whatsnew. 2010-08-28 16:48:51 +00:00
Brian Troha
2778348e29 minor rom name correction for D2K 2010-08-28 16:38:04 +00:00
Roberto Zandona
ddbfba03e9 the right fix for combatscb 2010-08-28 15:34:28 +00:00
Roberto Zandona
5071f538d5 04026: combatscb: Experiences various graphics glitches. [Roberto Zandonà] 2010-08-28 15:26:56 +00:00
Roberto Zandona
93fe5a32e2 combatscb: fixed offset and priorities [Roberto Zandonà] 2010-08-28 14:29:44 +00:00
Ryan Holtz
3c302e1537 Updated the K033906 PCI Bridge device to no longer be legacy. [Harmony]
Updated the K056230 LANC device to no longer be legacy. [Harmony]

Non-whatsnew note: Tested gradius4 and gticlub, seem to still work.
2010-08-28 07:51:12 +00:00
Roberto Zandona
750ab5ed12 toaplan1: removed custum video update for demonwld; now it's the same of toaplan1 2010-08-27 21:32:06 +00:00
mariuszw1
010cb3a0ce Fixed rom mapping in Super Poker. Removed "bad dump" flag from e2 roms, they pass self test now. [Mariusz Wojcieszek] 2010-08-27 21:16:06 +00:00
mariuszw1
2eba34ef89 New clones added
--------------------------------
Super Poker (Version 10.15S) [anondumper]
2010-08-27 20:18:24 +00:00
Roberto Zandona
b85bf34e13 [toaplan1] modified the mix for the tilemaps (like rallybik and demonwld); this fix outzone bug and vimana bug 2010-08-27 19:23:27 +00:00
Angelo Salese
d4aa908f57 Bored about this message ... 2010-08-27 14:06:53 +00:00
Ryan Holtz
2c3b3b9d5e Similar issue as with ins8154. No whatsnew. 2010-08-27 12:17:06 +00:00
Ryan Holtz
44bbd47830 Turns out those 'redundant' NULL checks were there for a reason. Balls. No whatsnew. 2010-08-27 12:11:31 +00:00
Ryan Holtz
af0b52857b Killing debug text. No whatsnew. 2010-08-27 11:57:53 +00:00
Miodrag Milanovic
cf43f32176 m6800 - Fixed initial state of bit 7 and 6 of flag registers (according to documentation) [Miodrag Milanovic]
- Used lookup tables in opcode execution
m6809 - Used lookup tables in opcode execution
2010-08-27 09:12:49 +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
Miodrag Milanovic
ae3aadf53c Fixed error detected by compiler on win environment (no whatsnew) 2010-08-27 08:41:59 +00:00
Fabio Priuli
9c6f743089 Updated the PCI bus device so that PCI buses can be arranged in a tree like in real hardware [Samuele Zannoli]
Chihiro.c Improvements:  [Samuele Zannoli]
- Fixed the mapping of the bios at the top of the cpu addrsss space
- Updated the ram size to 128 megabytes
- Added some SMBus handling, to let the bios run
- Added placeholders for a few devices on the PCI bus
- Added the "jamdis StartAddress,Length" command to the debugger that lets you disassemble the "jam table" instructions used by the bios to do some basic hardware initialization.



This time it works for good ;)
2010-08-27 07:21:13 +00:00
Ryan Holtz
4cc59054e0 Updated the INS 8154 RAM I/O device to no longer be legacy. [Harmony]
Non-whatsnew note: For MESS.
2010-08-27 05:37:56 +00:00
Ryan Holtz
04aa0a09eb Updated the i8243 Port Expander device to no longer be legacy. [Harmony]
Non-whatsnew note: Requires a rebuild of driver/othello.c, driver/segas16a.c, and and audio/segag80r.c
2010-08-27 04:51:58 +00:00
Andrew Gardner
246b25b514 Various snk drivers now use driver_data. [Atari Ace] 2010-08-27 03:55:49 +00:00
Andrew Gardner
38129f3f9d Fixes the build tree. [no whatsnew]
This looks like the way to do it, but i could be wrong.
2010-08-27 03:19:00 +00:00
Ryan Holtz
5395f401ef Updated the Fairchild F3853 SMI device to no longer be legacy. [Harmony]
Non-whatsnew note: This is for MESS.  No idea how to work the Chess Champion, either, so I can't really test it, but hey, it builds.
2010-08-27 02:47:28 +00:00
Ryan Holtz
ccda15bbc0 Updated the Dallas DS2404 RTC device to no longer be legacy. [Harmony]
Non-whatsnew note: This requires either a clean build or a rebuild of drivers/seibuspi.c to eliminate crashing.
2010-08-27 02:13:09 +00:00
stephh
9c8564bac6 pachifev (pachifev.c) [stephh] :
- Fixed Dip Switches and Inputs (after verification of the TMS9995
    code)
2010-08-27 01:58:19 +00:00
Ryan Holtz
dee8d5cf23 Updated the Dallas DS1302 RTC device to no longer be legacy. [Harmony]
Non-whatsnew note: I tested crysking, seems to work properly and shows the correct date(s) in the bookkeeping screen.
2010-08-27 00:17:25 +00:00
Scott Stone
a8cf436d78 Revert of r10129 as it does not compile. I failed to buildtest this external submission. (no whatsnew)
Comment:  R. Belmont, this one is all yours to correct and apply.
2010-08-27 00:02:38 +00:00
Ryan Holtz
c00bcb3c47 Updated the i8257 DMA device to no longer be legacy. [Harmony]
Non-whatsnew note: I tested dkong, seems to still work properly with proper sound.
2010-08-26 22:00:49 +00:00
Angelo Salese
a9ebee2119 Fixed broken error.log offsets 2010-08-26 21:06:30 +00:00
Scott Stone
48282b5991 Updated the PCI bus device so that PCI buses can be arranged in a tree like in real hardware [Samuele Zannoli]
Chihiro.c Improvements:  [Samuele Zannoli]
- Fixed the mapping of the bios at the top of the cpu addrsss space
- Updated the ram size to 128 megabytes
- Added some SMBus handling, to let the bios run
- Added placeholders for a few devices on the PCI bus
- Added the "jamdis StartAddress,Length" command to the debugger that lets you disassemble the "jam table" instructions used by the bios to do some basic hardware initialization.
2010-08-26 20:39:50 +00:00
Angelo Salese
d5060616e8 Haze: refactored some video stuff in toaplan 1, not worth 2010-08-26 20:33:39 +00:00
Ryan Holtz
2eb8a58559 Updated the 8255 PPI device to no longer be legacy. [Harmony]
Non-whatsnew note: I tested iqblock, seems to still work properly.  Fun game, by the way, but tough as nails.
2010-08-26 19:09:29 +00:00
Ryan Holtz
2f94dc8966 Updated the i8237 DMA device to no longer be legacy. [Harmony]
Non-whatsnew note: I tested filetto, seems to still work properly.
2010-08-26 17:48:39 +00:00