Commit Graph

1150 Commits

Author SHA1 Message Date
Aaron Giles
8a0b803ec4 02321: mpu4utst, mpu4tst2, mpu4met0: Screenless systems crash due to problems in some display core functions 2008-10-09 08:58:09 +00:00
Aaron Giles
2d6453c98a Made the Z80 daisy chain aware of referencing device-specific devices.
Added preliminary LD-V1000 emulation. Not fully working yet, but mostly
there.

Cleaned up and normalized the three existing laserdisc emulations.
Removed obsolete code from the laserdisc core.
2008-10-09 05:31:15 +00:00
Couriersud
7494be5525 Removed speed hack - this would break the protection for lohtb2 2008-10-07 23:07:09 +00:00
Roberto Fresca
c6ec8026bc Fixed the i8051 AJMP opcode to take 2 bytes instead of 3.
Please also credit Grull Osgo.
2008-10-06 21:57:27 +00:00
Roberto Fresca
d3cc1b9742 Fixed timers in i8051 core. [Grull Osgo] 2008-10-06 21:36:30 +00:00
Aaron Giles
e9dd491777 Added correct overlay positioning, font, and behavior to PR-8210 emulation. 2008-10-06 08:34:48 +00:00
Aaron Giles
099373081e Added new functions for building device-relative tags. Changed machine
configuration builder to use these functions. Also changed the laserdisc
player devices to use them. Updated Z80 CTC/SIO code to assume that the
CPU provided for the clock is relative to the device that the CTC/SIO
belong to. Updated memory code to assume that regions and devices
referenced by the memory map are relative to the device the associated
CPU belongs to.
2008-10-03 16:29:33 +00:00
stephh
fc54f63a09 Removed unneeded keys by removing the constants.
Readded UI_ON_SCREEN_DISPLAY to be changed again in the "Inputs" menu as per Aaron's request.

A clean build is required and cfg/default.cfg has to be deleted !
2008-10-03 04:00:41 +00:00
Nathan Woods
17b9549fef Fixed broken prototypes 2008-10-03 03:27:37 +00:00
Aaron Giles
f90a19f2bc MSVC compiler error. 2008-10-02 15:05:46 +00:00
Aaron Giles
5123b07115 Cleanups and version bump. 2008-10-02 05:34:21 +00:00
Aaron Giles
cf63e2baa8 Fixed handling of interrupts when the CPU was in the STOP state. 2008-10-02 05:31:24 +00:00
Aaron Giles
adaaf55595 From: Matt Ownby [mailto:matt.ownby@gmail.com]
Sent: Fri 9/26/2008 10:15 AM
To: submit@mamedev.org
Cc: Philip Bennett
Subject: fix for Cube Quest Line CPU emulation
I found a bug in the emulation of the Cube Quest Line CPU.

Proof of bug:
After looking at .diff,
Assume 'ci' is 1, and assume 'r' and 's' are both 0xFFF 
(0xFFF equals -1, as these numbers are 12-bit signed).
The result should be mathematically equivalent to -1 - (-1) 
which is 0.
~0xFFF is 0xF000, so you'd have 0xF000 + 0x0FFF + 1 which equals 
0x10000 but since 'res' is 16-bits this is truncated to 0x0.  
'C' then becomes 0 and 'V' becomes 1 (as I recall).  The result of 
0 is correct, but the flags are wrong; V should be 0 and C should 
be 1.

Under my proposed fix, you'd have 0x000 + 0x0FFF + 1, which equals 
0x1000, so the lower 12 bits are 0 (correct) and C is 1 and V is 0 
(correct).

I discovered this bug while disassembling the line CPU's ROM.
2008-10-02 05:04:06 +00:00
Aaron Giles
4e9364ded5 Stupid compiler. 2008-10-01 17:12:04 +00:00
Aaron Giles
ce465cb509 Changed 68000 interrupts to only trigger during execution. This
means that multiple changes without any execution will be seen as
atomic. It also means that PULSE_LINE no longer works for signalling
IRQs.

Added checks in the debug build to catch people who try to use
PULSE_LINE for non-NMI and non-RESET input lines on CPUs that no
longer support direct interrupt generation. Over time expect this
list to increase.
2008-10-01 17:09:11 +00:00
Aaron Giles
34cd80a8e5 Added mechanism to generically specify input port tags in place of
machine/device handlers. Unfortunately, the implementation relies on
sentinel values to distinguish a port tag versus a pointer to function
code. However, since this is a very common situation, it will hopefully
be worth the slight grossness. New macros are defined in inptport.h:

   DEVICE8_PORT(name) - use this to specify the name of a port to read
     wherever a read8_device_func would normally be used

   MACHINE8_PORT(name) - same as DEVICE8_PORT except it can be used
     wherever a read8_machine_func would normally be used

   IS_HANDLER_PORT(ptr) - accepts a read8_device_func or read8_machine_func
     and determines if it is an actual function or a reference to a port;
     intended for use by devices that accept DEVICE8_PORT-style functions

   CALL_DEVICE8_READ(ptr,device,offset) - either calls through the given
     read8_device_func, or calls input_port_read with the appropriate
     tag, depending on the result of IS_HANDLER_PORT; intended for use 
     by devices that accept DEVICE8_PORT-style functions

   CALL_MACHINE8_READ(ptr,machine,offset) - same as CALL_DEVICE8_READ
     except for read8_machine_func

Note that in order for these to be useful, the consumer of the function
pointer must be enhanced to use the CALL_* macros above instead of directly
calling through the function. So far, only the 8255 PPI is set up to do
this, as part of the cleanup below. Also note that the sentinel value is
currently 4 consecutive 0 bytes; this may need to change in the future, in 
either length or value, so it is important to stick to the macros above.

8255 PPI interface cleanup:
 - added MDRV_PPI8255_ADD, MDRV_PPI8255_RECONFIG and
    MDRV_PPI8255_REMOVE macros; updated all drivers to use them
 - changed callbacks to device read/write handlers intead of
    machine read/write handlers; updated all drivers accordingly
 - normalized function and variable names to be lower_under
 - removed a number of redundant interfaces from the galaxian/
    scamble line of games

LD-V1000: added some (compile-time removed) information about the
ROM and memory map
2008-10-01 16:36:04 +00:00
Andrew Gardner
8515504a7b Added additional Motorola DSP56k reset behavior. (Andrew Gardner) 2008-10-01 04:24:46 +00:00
Aaron Giles
e3dd5224c0 Converted Z80 SIO to device. Updated drivers accordingly. 2008-09-30 05:29:59 +00:00
Aaron Giles
f4dc7a2f36 Converted Z80 CTC to a proper device. Updated all drivers.
Added new item to the interface which is the tag of a CPU
to take the base clock from. Are there any known cases
where the base clock does NOT come from the CPU directly?

Changed Z80 daisy chain interface to simply be a list of
devices in the chain. Interrupt callback functions are now
fetched via the standard device interface and referenced by
the daisy chain code.

Changed Z80 PIO interrupt callback to pass a device instead
of the machine. All device callbacks should provide the
device.
2008-09-29 17:20:58 +00:00
Aaron Giles
3355357ffc Simplified core deinterlacing logic based on availability of pre-
decoded VBI data. Added plumbing for allowing for overall brightness/
contrast/gamma corrections on laserdisc video. Fixed bug when combining
brightness values in the palette logic.
2008-09-29 09:23:22 +00:00
Aaron Giles
296347baab Plumbed machine parameters through the renderer. Removed need for
deprecat.h.

Changed render_texture_set_bitmap() to accept a palette object 
instead of a palette index. The renderer remains optimized for the 
system palette but will work if objects have their own palette as 
well.

Changed renderer to permit palettes for RGB and YUY textures. If
specified, these palettes specify a 32-entry (RGB15) or 256-entry
(others) lookup for applying additional brightness/contrast/gamma
on a per-texture basis.

Removed rescale notification. It never really worked that well and 
violated proper layering.

Renamed palette_set_brightness() to palette_set_pen_contrast() for 
clarity.

Changed palette objects to support global brightness/contrast/gamma
in addition to per-group and per-entry controls.
2008-09-29 08:02:58 +00:00
Wilbert Pol
08e57e7e28 Converted the z80pio implementation into a device. 2008-09-28 15:32:18 +00:00
stephh
e8896b0416 Removed unneeded keys :
- UI_ON_SCREEN_DISPLAY (there is now a "Slider Controls" menu)
  - UI_ADD_CHEAT, UI_DELETE_CHEAT, UI_SAVE_CHEAT, UI_WATCH_VALUE, UI_EDIT_CHEAT, UI_RELOAD_CHEAT (these keys belonged to the old cheat engine)

A clean build is required and cfg/default.cfg has to be deleted !
2008-09-28 14:56:17 +00:00
Aaron Giles
6c05b835a2 02442: -aviwrite produces faulty files 2008-09-27 22:48:52 +00:00
Aaron Giles
2a3301d0b9 Removed render_container_set_palette_alpha() hack. Now the alpha value
can be set directly in the palette entry and will be respected for
laserdisc overlays.
2008-09-27 22:05:30 +00:00
Nicola Salmoria
9ff6c5bb96 added pen_mask tile attribute to the tilemap system.
implemented dynamic tile & sprite bit depth in the Taito F3 driver.
02024: pbobble3, pbobble4, ringrage and clones: Color Regression
2008-09-27 17:30:17 +00:00
Aaron Giles
229d598989 Cleanups and version bump. 2008-09-26 13:42:51 +00:00
Aaron Giles
decc35b5f2 From: Oliver Stoeneberg [mailto:oliverst@online.de]
Sent: Thursday, September 25, 2008 3:15 AM
To: submit@mamedev.org
Subject: using macros in UI message

This patch changes the message, that appears when no roms have been 
found, to use the macros instead of hard-coded strings
2008-09-26 05:32:29 +00:00
Aaron Giles
3d65b57f77 From: Micko [mailto:mmicko@gmail.com]
Sent: Tuesday, September 23, 2008 4:46 AM
To: Aaron Giles
Subject: 8080 bug

To fix this bug : http://mametesters.org/mantis/view.php?id=2322
 
a part of my code should be removed.
 
It seams that this feature I have added is only available on KP580BM80A (Russian clone of this processor).
 
So until I make a new patch (that support this clone processor)  please apply this to fix MAME drivers.
 
Thanks,
Miodrag
2008-09-26 05:27:00 +00:00
Aaron Giles
0f3e79564d From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Sunday, September 21, 2008 10:45 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] More static qualifiers

Hi mamedev,

Another static function update from yours truly, almost entirely
affecting code added in the last few months to MAME.  The fixes are
the usual lot, changing enum definitions so they aren't declared,
decorating dead code/declarations with #if...#endif, and of course,
adding static where appropriate.  In addition, I fixed a bunch of
UNUSED_FUNCTON symbols to be spelled correctly (I didn't introduce
this).

~aa
2008-09-26 05:25:11 +00:00
Aaron Giles
844dca9402 -listroms knows about device-specific ROMs now. 2008-09-26 05:00:14 +00:00
Aaron Giles
9b72b5abc4 Added 22VP931 emulation, which is mostly working. Communication works
fine and basic searching/playback/skipping is functional. Still a bit
glitchy.

Firefox improvements:
 - removed need for deprecat.h
 - memory map is complete from schematics
 - gutted laserdisc hacks in favor of actual laserdisc implementation
 - fixed all CPU and sound clocks
 
Removed old laserdsc.c implementation.

Added generic timer devices, which simply allocate a timer but don't
prime it. This is the preferred method for allocating timers, and may 
eventually be the only mechanism for doing so in the future.
2008-09-25 16:21:35 +00:00
Wilbert Pol
e4dc04a323 rescale_notifier() changed to always allow rescaling for screenless drivers. 2008-09-25 10:02:46 +00:00
Aaron Giles
fad77cb08e Fixed AF calculation in mcs48. 2008-09-24 15:54:13 +00:00
R. Belmont
8e3cd1573d 65816/377xx: fix disassembly of BRL [ShimaPong] 2008-09-24 03:25:11 +00:00
Aaron Giles
990ef98b53 02280: any set with multiple CPUs: Disassembler freezes when doing a Run on any CPU other than CPU 0 2008-09-22 06:06:23 +00:00
Andrew Gardner
49c8293fd9 Rewrite of the Motorola DSP56k disassembler. (Andrew Gardner)
(Same changelog as before - found another couple - not worth adding to whatsnew)
2008-09-19 02:49:18 +00:00
Andrew Gardner
66954044d1 Rewrite of the Motorola DSP56k disassembler. (Andrew Gardner)
* Fixes branch relative offset decoding.
2008-09-19 02:28:20 +00:00
Andrew Gardner
e5efb8a895 Rewrite of the Motorola DSP56k disassembler. (Andrew Gardner)
* Removes arbitrary opcode groupings in favor of flat decode model.
* Fixes a number of small issues with unknown opcodes.
* Added the final ALU parallel move ops.
2008-09-19 02:07:52 +00:00
Aaron Giles
7f819dbfef Cleanups and version bump. 2008-09-18 16:17:42 +00:00
Aaron Giles
5f597be8b1 From: Corrado Tomaselli [mailto:corrado.to@tiscali.it]
Sent: Wednesday, September 17, 2008 10:31 PM
To: submit@mamedev.org
Subject: Shadow Force clocks

Verified cpu clocks and corrected/verified OKI M6295 frequencies and pin

7 status. Updated Xtal.h file
2008-09-18 16:09:58 +00:00
Aaron Giles
db3e968a6d CPU-internal regions now have priority again. Fixed mario by
installing a handler in the SOUND_START function.

02249: All Sets in zn.c: Game Hangs 
02248: All sets in m58.c: No sound in game 
02241: kncljoe, kncljoea: Missing AY-3-8910A sound effects. 
02240: All Sets in namcos12.c: Game Freeze 
02239: stunrun: No OKI6295 sound.
2008-09-18 15:54:25 +00:00
Aaron Giles
eab7222f92 Fix compile error. 2008-09-18 15:35:44 +00:00
Aaron Giles
1eb3c2d964 Changed requirements for laserdisc CHDs to require a new chunk of
metadata with pre-decoded frame information. Modified chdman to
automatically produce this for CHDs that are of the appropriate
parameters. To fix up existing CHDs, use chdman -fixavdata on the
CHD.

Modified the laserdisc core to leverage the pre-decoded frame
metadata, which is now required. This improves seek times when
searching and allows the player-specific emulation access to the
VBI data as soon as it would really be available. Changed update
callback timing to fire just before the first line of VBI data
would be read; at that point, the frame selection is assumed to
be committed. 

Converted PR-8210 emulation over to using the actual MCU from the
laserdisc player. This MCU controls low-level functions such as
slider position and laser on/off, and receives decoded vertical
blanking data in order to make decisions. Removed old HLE behavior.
Note that the overlay text is displayed via the UI; this is
temporary and will be fixed shortly.

Converted Simutrek-hacked laserdisc emulation to using the actual
MCU from the game, which in turn hands off commands to the PR-8210
MCU. This is still not 100% but is pretty close at this point and
achieves the correct behaviors in most cases.

Fixed Cube Quest overlay scaling to cover the whole screen.

Changed laserdisc video parameters to position the screen area at
the bottom rather than the top, since this corresponds more closely
to standard line numbering.

Extended the vbiparse code to support pack/unpack, and to more
fully document all the meanings of the VBI codes.

Updated ldplayer to support slow/fast forward movement, frame/chapter
display, and separate controls for scanning/stepping.

Added new built-in variable "frame" to the debugger.

Fixed device-based ROM loading to support loading ROMs from the
game's ZIP as well.
2008-09-18 15:17:42 +00:00
Phil Bennett
6ff2372d8c Namco NA-2: Use real C70 BIOS. Removed sound and input simulation code. Changed the NA-1/2 MCU type to M37702. 2008-09-14 17:51:01 +00:00
smf-
75e68187dc preliminary firefox emulation. 2008-09-13 07:58:39 +00:00
Aaron Giles
fc453dc652 Fixed crash when hitting watchpoints on static handlers. 2008-09-13 06:36:29 +00:00
Aaron Giles
aa2b6bd29a Cleanups and version bump. 2008-09-11 16:25:46 +00:00
Aaron Giles
ae2d1ed21a Ok, I submit. Maximum tag length is 15. Be good. 2008-09-11 16:04:35 +00:00
Aaron Giles
3d1dbafcc2 From: Oliver Stoeneberg [mailto:oliverst@online.de]
Subject: Machine -> machine

This is a big patch adding running_machine* parameters and using 
"machine" where available.
2008-09-11 15:57:52 +00:00
Aaron Giles
0b3ae8f72d C352 cleanups
Remove an unused volume table dating from before the volume was
    (correctly) implemented as linear.
    
    Add a tab where appropriate.
2008-09-11 15:38:20 +00:00
Aaron Giles
9b94257dc8 In addition to this patch, I fixed up the Atari System 1 BIOS handling
and added an empty BIOS driver for it.

Here is a patch file with the following changes:

* Added new Atari System 1 Motherboard BIOS dump from a LSI motherboard
* Added a new ROM dump from a Marble Madness LSI Cartridge
* Changed the hardcoded MHz values in the Cave driver to the XTAL
equivalents
* Updated the Cave driver for the game Guwange with gals that need to be
dumped
* Updated the Jail Break driver with the dip locations
* Corrected the Jail Break driver sound chip from a SN76496 to a SN76489
* Corrected the Jail Break rom names
* Redumped the Jail Break VLM rom dump
* Corrected the Super Basketball Revision H rom dump
* Updated the Super Basketball driver with the dip locations
* Corrected the Super Basketball VLM XTAL
* Corrected the Super Basketball parent/child relationships by making
the
Revision H the parent
* Turned on save state support for the Super Basketball driver
* Updated the Sega System 1 driver with more board information on the
Choplifter bootleg and updated the placeholders for the pals that need
to be
dumped
* Updated the WWF Wrestlefest driver rom names
* Added save state support to the WWF Wrestlefest driver
2008-09-11 15:37:34 +00:00
Aaron Giles
b10a182054 From: Atari Ace [mailto:atari_ace@verizon.net]
Subject: [patch] Even more reset/multisession cleanup

Hi mamedev,

These two patches try to reduce the amount of variable in .data, which
usually point to multisession/reset bugs or missing const qualifiers.
The first patch just adds const to a number of items, moving them from
.data to .rdata.  The second patch sets other items to zero (moving
them to .bss), adding reset/init code where appropriate.

~aa
2008-09-11 15:14:39 +00:00
Aaron Giles
746ab44148 Hello,
Found few things not right in 8080/8085 implementation.
 
1. ANA/ANI instruction, HF flag was not set right because error in calculation of it (missing brackets)
2. 8080 have NF flag always set (it is not used flag but bit is always set)
3. On unused ports/not connected memory values from status word were readed not 00 or FF, that is why I add it as a new internal register, it can also be buffered by some external hardware, so this could help other implementations too.
 
Regards,
Miodrag Milanovic
2008-09-11 15:10:41 +00:00
Aaron Giles
c48c851c8d 02206: cubeqst: Cubequest now missing narrator and music during attract mode 2008-09-11 15:07:38 +00:00
Aaron Giles
2398d51941 Fixed memory handling of internal banks. They should be LOWER priority than
the driver's memory maps.

Reverted recent changes to MCS-48 core that were very hacky and which crashed
many games. You can now properly override the internal memory map and do
your own banking.

Also fixed 02204: masao: Memory bank error.
2008-09-11 14:33:52 +00:00
Wilbert Pol
a004308575 Fix stupid compile error 2008-09-10 19:31:41 +00:00
Wilbert Pol
815cf5f076 MESS specific update. 2008-09-10 19:14:18 +00:00
Aaron Giles
a9b7f2d1a4 Further reduced the maximum tag length to 10 characters, since
there were only a few cases where longer tags were in use.
2008-09-10 06:29:24 +00:00
Aaron Giles
e647d9be1a Adjusted tags in drivers to meet conformity checks. Promoted checks to
full errors.
2008-09-10 06:24:46 +00:00
Aaron Giles
e5ec7b2687 Fixed memory leak due to recent input changes. 2008-09-10 06:02:22 +00:00
Aaron Giles
ec2639d221 OSD notice: you now need to report separate mouse up/mouse down events
for this new support to work.

Clickable input support. Mostly by Nathan. A few changes from the
proposal:

* as far as the layout is concerned, states are 0 (off) or 1 (on) and
   aren't impacted by the port's ACTIVE_HIGH or ACTIVE_LOW

* instead of checking each individual field for a hit, we look to see
   what is hit once per frame and then just check against that; this
   is faster, but does limit us to a single hit item

* added function input_field_by_tag_and_mask() to look up a particular
   input_field_config by tag and mask; this makes it possible to easily
   get the port default value or other information as necessary
2008-09-09 17:11:52 +00:00
Aaron Giles
9b4e46fad5 Changed DEVICE_START functions to return an error code. Currently this
is either DEVICE_START_OK or DEVICE_START_MISSING_DEPENDENCY. The latter
should be returned by a device if there is another device it depends on
which hasn't been started yet. Added new flag in the device interface to
indicate whether a device has been started.

Changed laserdisc interface to explicitly specify the screen and sound
devices it should route to. Drivers no longer have to manually call
laserdisc_vsync(). Instead, the laserdisc code connects up to the routed
screen device and works based on that screen's VBLANK timing. Removed
all existing calls to laserdisc_vsync().

Changed laserdisc behavior so that it completes the previous video read
and initiates the next read at the end of VBLANK instead of the beginning.
This gives player logic time during VBLANK to alter the slider position
prior to fetching the next frame.

Added new laserdisc callback for vsync begin and changed the update
callback to be called at the end of VBLANK. Also added functions to set
the slider speed, advance the slider, and directly control the video/
audio squelch. In addition, there is a new status function to get the
slider position in general terms.

Added parameter to the VBLANK callbacks supported in emu/video.c. Updated
all callers to provide a callback value.

Fixed bug that would cause watchpoints to trigger if you had a memory
window open to the watchpoint address.

Further updates to the PR-8210 ROM simulation. Still not quite there but
the system is much better understood now. Added layout to the PR-8210
which displays the state of the front-panel LEDs.
2008-09-09 16:10:11 +00:00
Nathan Woods
30dcca1594 Created a hook for populating MESS-specific main menu items 2008-09-08 03:34:15 +00:00
Aaron Giles
f5d90dac56 CPUs, sound chips, devices, and ROM-regions which are specified by devices
now have their tags auto-prefixed with the device's tag. This allows for
multiple instances to be present. For example, the PR-8210 laserdisc player
has a CPU with a tag of "pr8210". When it is included as a device by a
driver, the driver may tag the device "laserdisc". The resulting final
CPU tag name will be "laserdisc:pr8210". Also updated the debugger
expression engine to support names with embedded colons.

Added warnings to ensure that tags used for CPUs, sound chips, regions, and
devices follow some basic rules: they should be less than 12 characters long,
be all lower-case, and only contain letters, numbers, underscores, or dots
(no spaces). This is to ensure that they can be used properly in debugger
expressions and don't get too long or unwieldy to type (even 12 chars is a
bit long).
2008-09-08 03:05:09 +00:00
Aaron Giles
c0b1419a96 Added concept of rom sources to the rom loader. Updated auditing,
CLI utilities, validity checks, and ROM loading to use these new
functions so that device-specific ROMs are handled properly.
2008-09-06 22:17:37 +00:00
Aaron Giles
20bbc6726f Fixed potential crasher when the player-specific info was not found
for a laserdisc player.
2008-09-06 07:03:42 +00:00
Aaron Giles
a6c3d9b671 Moved reset to default behavior in the cheat menu to IPT_UI_CLEAR. 2008-09-06 06:59:35 +00:00
Aaron Giles
89730e4d28 Added built-in "Off" states to the cheats with parameters. This is
also the default state, obviating the need for a default value. Removed
the "default" attribute as a result. Switching from "Off" to another
state first executes the "on" script followed by the "change" script.
Switching to "Off" from another state executes the "off" script. While
not off, the "run" script is executed each frame.
2008-09-06 06:57:47 +00:00
Aaron Giles
8c9f7cbc76 Added new device interface selector: DEVINFO_PTR_ROM_REGION. This allows a
device to provide a set of ROM regions to be loaded along with the game
ROMs. It is expected that most regions defined for devices will use the
ROMREGION_LOADBYNAME flag to enable the ROMs to live in a central location.

Added new device interface selector: DEVINFO_PTR_MACHINE_CONFIG. This allows
a device to specify a partial machine driver which is appended to the end of
the machine driver for any game using that device. The intention for this is
to allow devices which have their own BIOS logic to specify CPUs and other
characteristics common to all systems using the device.

Added new ROMREGION flag: ROMREGION_LOADBYNAME, which means that if the ROMs
in that region are not found in the usual driver files, then the name of the
region will be used as a driver filename for loading.

Extended the ldcore interface structure to allow each player type to provide
its own ROM region and partial machine driver.

Moved preliminary PR-8210 emulation code from ldplayer.c to ldpr8210.c. It
is currently disabled behind the EMULATE_PR8210_ROM compile time flag.
2008-09-06 06:36:32 +00:00
Aaron Giles
4c8f0225a7 Added missing include. 2008-09-04 16:52:36 +00:00
Aaron Giles
a4bca37f81 Cleanups and version bump. 2008-09-04 15:31:56 +00:00
Aaron Giles
05915406d0 Missing include. 2008-09-04 15:11:10 +00:00
Aaron Giles
a50feca332 From: Barry Rodewald [mailto:bsr@xnet.co.nz]
Subject: Update to MC146818 RTC

Hi,
Here's a small patch to the MC146818 code, which gives a basic 
implementation of the "update ended" interrupt flag.

The code is based on the behaviour of the Aleste 520EX (Russian Amstrad 
CPC clone) BIOS, which periodically (about 7 or 8 times a second) checks

the flag to see if the date and time display on the BIOS setup screen 
needs to be updated.  Without the flag implemented, the date and time 
are static on the setup screen, or if the time hasn't been initialised 
(blank NVRAM) it is blank.

The BIOS function that does this basically checks bit 4 of register 
0x0c, and if 0, ends there, otherwise it will read register 0x0b, sets 
bit 7 of the result and writes it back to register 0x0b (presumably, 
this resets the interrupt flags).  Then it continues on to the display 
refresh function.
(Disassembly attached)
2008-09-04 09:07:03 +00:00
Aaron Giles
8831895bae From: Fabio Priuli [mailto:doge.fabio@gmail.com]
Subject: a few patches

Hi,

enclosed please find a few patches that finally conclude my 
input_port cleanups. I will still probably change some bit 
here and there, but there will be no more massive changes 
which could collide with current developments. 

Notice that, after applying these patches, indexed input reads 
remain only present in CPU interfaces (e.g. all the yamaha 
interfaces when the sound cpu is used to read inputs) and no 
more 16bit/32bit indexed read are present at all in MAME or 
MESS source. Therefore, you may consider the removal of 
input_port_N_word_r & input_port_N_dword_r, if you think you 
don't need them anymore.

More in detail:

* patch01.diff & patch02.diff: conclude the cleanup for 
drivers W -> Z

* primrage.diff: changes the start buttons with input buttons 
in primrage, as per the test mode (no start button is reported) 
and the control panel (see 
http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=161107 )

* drivedge.diff: makes drivedge ports fully 32bit and removes 
the protection bit (which seems not to be used in this game, or 
at least not in the port where it was tested since at least MAME 
0.100)

* duplicate.diff: introduces a PORT_CUSTOM which returns a tagged 
input (like a input_port_read). this could be useful for those 
games which require to read the same 8bit (resp. 16bit) input in 
both the upper and lower half of a 16bit (resp. 32bit) port. you 
can see its use for this purpose in the modified drivers (fuukifg3, 
dreamwld, cojag etc.)

Regards,

     Fabio Priuli
2008-09-04 09:02:10 +00:00
Nicola Salmoria
7c90a0cd38 fixed emulation of the "SNK Wave" custom sound used by Marvin's Maze and Vanguard II and made it into a proper sound core
fixed palette decoding of early SNK games (from marvins to athena + fitegolf). The least significan bits were assigned incorrectly.
merged marvins.c into snk.c, with all resulting fixes (removed hacks, correct shadows, scroll offsets etc)
2008-09-04 08:57:02 +00:00
Aaron Giles
cffe201094 From Oliver Stoeneberg [oliverst@online.de]
This contains three different patches:

20080829.patch
Introducing the running_machine* parameter in a few more places. Next 
step would be to make the execute_* function aware of it, if that's 
OK. Also used the machine parameter in memory.c were it's available.

20080829_1.patch
The already discussed and probably being rejected removal of 
dreprecat.h from debugger.h. I think this is a low-risk patch (we had 
worse cleanups) and it lowers the risk of new code using deprecated 
function beign introduced in MAME/MESS, because there is no invisible 
inclusion of deprecat.h anymore (I think one driver - kofball.c - got 
it with deprecated code).

20080829_2.patch
The last Machine -> machine conversion I had sitting in my local 
tree. I know the proper way is to turn them into devices, but I still 
haven't looked into that.
2008-09-04 08:55:01 +00:00
Aaron Giles
c1f0164f5d Split core laserdisc functionality into separate file ldcore.c.
Each player now gets its own source file, along with new hooks
which enable more precise control over the behavior. Updated the
PR-8210 and LD-V1000 implementations to the new spec. Other 
players will come online shortly.

Changed scan behavior so that it requires a constant stream of
signals to continue scanning. Updated ldplayer accordingly.
2008-09-04 08:48:57 +00:00
Aaron Giles
95aec1fffb Changed refreshspeed target to 0.25Hz below rate provided, in order to guarantee that
inexact timings do not lead to sound stuttering.
2008-09-03 17:44:08 +00:00
Curt Coder
960126c596 [COP410] Enabled internal program map. 2008-09-01 19:37:46 +00:00
Aaron Giles
2c888574b1 Changed all MCS-48 chips to have a 12-bit address space, regardless
of internal ROM size.
2008-09-01 16:50:45 +00:00
smf-
2bccf6a3b0 commented out debug code that mingw didn't like because it was wrong. 2008-09-01 13:12:26 +00:00
smf-
b258d93893 converted timekeeper to a device, all default contents are loaded from disk. slapshot & opwolf3 read/write memory map have been merged. 2008-09-01 12:41:32 +00:00
Jonathan Gevaryahu
bc1c78a5b9 update TMS5100 LPC tables based on mathematical analysis of 1st and 2nd derivatives of the values and comparison to the best quality patent image, which nearly always showed which values were in error. Some off-by-one issues may remain, but it is now nearly perfect. Further perfection will require PROMOUT dumping, which is planned. 2008-09-01 06:53:39 +00:00
R. Belmont
2db405979c [ARM7] Remove unnecessary hooks so MRC and MCR disassemble properly. 2008-08-31 20:30:29 +00:00
R. Belmont
ea2944f2a4 [M377xx] - Fixed: 8-bit I/O port reads no longer cause bogus reads of neighboring ports. 2008-08-31 20:29:08 +00:00
Couriersud
287bc79dfc mcs48.c: Use banking to handle ea line.
* Adds MCS48_INTERNAL_ROMBANK define to header
* Drivers which need to control the ea line have to initialize banking for internal/external rom

This is not yet optimal but works as expected with existing drivers and modified mario.c
2008-08-30 17:59:06 +00:00
Roberto Fresca
9af87ebaf3 New working driver for older InterFlip gambling games. [Grull Osgo, Roberto Fresca] 2008-08-30 17:08:26 +00:00
Couriersud
7d6a80c480 mcs48: EA line / MB8884
* MB8884 is a I8035 ==> 12 addr, no internal rom map
* EA line high: external access - this is "default"

The whole EA implementation is as Aaron named it, cheeky. EA=1 external rom access, EA=0 internal rom access.
But all variants are treated the same, i.e. for i8035, MB8884, I8039, the external rom is used in the same
way as the internal.
2008-08-30 00:36:56 +00:00
Couriersud
299fc7ec1a mcs48.c: Write p1 and p2 on reset
These ports are actually ports which sink current on logical 0. With a logical 1, they are in high impedance mode and may be read. The high impedance is treated as logical 1 by TTL gates connected to them.
2008-08-29 22:52:26 +00:00
Derrick Renaud
bd39d9e8c9 Started removing extraneous enable lines from the discrete modules. Most modules are always enabled anyways. 2008-08-29 20:38:31 +00:00
Derrick Renaud
d900cdd023 Optimized DISCRETE_555_CC
Fixed bug in my recent DISCRETE_MIXER update.

Note: the DISCRETE_MIXER bug caused most of the speed increase of its optimization and caused some games to crash.  Donkey Kong is now at 14% faster on my machine then when I started.  Better then nothing.
2008-08-29 06:22:12 +00:00
Aaron Giles
c3f7d110df 02174: dkongjr and clones + mario and clones + pestplce: Music speed regression 2008-08-29 06:01:09 +00:00
Derrick Renaud
70d2f4ebff Optimized DISCRETE_555_ASTABLE_CV and DISCRETE_MIXER.
For those keeping score dkong was at 268% on my computer before I started optimizing.  It now runs at 342%.  The 555 and mixer changes also speed up just about every current discrete game.
2008-08-29 01:10:24 +00:00
Derrick Renaud
ae10d3987a Optimized DISCRETE_RCINTEGRATE and DISCRETE_555_ASTABLE. 2008-08-28 20:58:05 +00:00
Derrick Renaud
e5fbac92cf Optimized DISCRETE_RCDISC_MODULATED.
Added X_TALs to circus.

Donkey Kong now runs 10% quicker on my machine.
2008-08-28 17:40:49 +00:00
Aaron Giles
a2caa558e2 Cleanups and version bump. 2008-08-28 15:26:11 +00:00
Aaron Giles
f8f9678387 From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Monday, August 25, 2008 8:16 AM
Subject: [patch] Remove useless backslashes

Hi mamedev,

I've been using pmd 4.2.2 to analyze the MAME codebase for duplicate
code, and it's C parser complains about useless backslashes and
dangling defines in #if...#endif sections.  Here's a patch that fixes
this, and additionally fixes one real bug, a string in djmain.c was
malformed, it's curious it compiled.

~aa
2008-08-28 08:50:34 +00:00
Aaron Giles
951ab24aaa From: Christophe Jaillet [mailto:christophe.jaillet@wanadoo.fr]
Subject: Profiler related #2 (v2)
Hi, this a revised version of a patch I sent yesterday.

This one is much more cleaner, and the speed improvement is now significant
enough to come out of the profiling noise.
More over, this one compiles correctly... ;-)

Best regards,
Christophe Jaillet
2008-08-28 08:41:56 +00:00
Aaron Giles
c71fbfc625 Changed slider controls into a menu. For now, removed the old direct access
mechanism; instead, you must access the sliders via the main menu. While in
the menu, you can use the ~ key to turn off the menu display and leave only
the bar display, in order to see more of the screen.
2008-08-28 08:25:06 +00:00