Commit Graph

2011 Commits

Author SHA1 Message Date
Jonathan Gevaryahu
08d73411f0 case and whitespace consistency fix for last commit to xtal.h 2008-12-29 05:30:10 +00:00
smf-
e819aa7556 changed divide to throw out negative numerators. 2008-12-28 22:37:26 +00:00
Jonathan Gevaryahu
aac7116ca2 add 14.118MHz xtal for TS2068 in MESS 2008-12-28 20:09:36 +00:00
smf-
091c3814d8 A write isn't allowed to start if there is one in progress and a write isn't started if the data is already correct. This allows my dream horse to boot again. Further investigation is needed. 2008-12-28 15:33:50 +00:00
smf-
d0a5273861 Implemented GTE divider using reciprocal table derived by pSXAuthor, this should allow the results to be calculated as inaccurately as the real hardware. 2008-12-28 14:56:15 +00:00
Phil Bennett
9655d61dec Fixed crash when mouse-clicking without a valid mouse_target set (typically after startup when no mouse movement events have occurred). 2008-12-26 14:01:14 +00:00
Aaron Giles
ee9f02668c 02758: linking ldplayer fails
Cleaned up mcs48 to be dependent on a single makefile define, rather than
separate defines for each CPU which didn't really buy us anything in terms
of code size or performance.
2008-12-26 07:31:44 +00:00
Aaron Giles
2a4df134e0 02765: all naomi.c sets: Assertion 2008-12-26 07:16:09 +00:00
Aaron Giles
4ed7452ceb From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Monday, December 22, 2008 8:04 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Update sound core header files

Hi mamedev,

This patch updates all the sound core header files to declare their
SND_GET_INFO functions, which will be needed once the sound cores
become proper devices.  It also makes a handful of other header
declaration fixes in emu/sound, and makes one SND_RESET routine
static.  Note: votrax.h is a new include file altogether.

~aa
2008-12-26 06:40:58 +00:00
Aaron Giles
70f3194097 02770: aceattac: Interger Overflow
Cleaned up cycle handling in the 68k core.
2008-12-26 06:37:19 +00:00
Phil Bennett
d984fa551b Correctly setup the MC6845 device in the carrera driver. 2008-12-25 09:58:00 +00:00
Andrew Gardner
e7ec9c0df6 Adds extremely preliminary i860 disassembler and hooks it up to the vcombat driver. [Jason Eckhardt, Andrew Gardner]
(We're not even decoding args yet, but it's on its way).
2008-12-25 03:03:30 +00:00
Aaron Giles
7cb99192f0 02747: Compile error on openSUSE 11.1 / gcc 4.3.2 with OPTIMIZE=3
Appease the compiler. There is no actual bug here, but it is tricky for the
compiler to understand that.
2008-12-25 01:39:55 +00:00
Phil Bennett
6497510da6 Fix 02766: topgunnr: Hangs
Corrected cpu_attomtime_to_clocks() calculation.
2008-12-24 21:40:36 +00:00
Wilbert Pol
ebf81feae7 Update to a bit of MESS-only code. 2008-12-24 20:00:55 +00:00
Aaron Giles
aa161c426b Converted 68000 to state tables. 2008-12-24 09:11:03 +00:00
Wilbert Pol
b6f61fbd07 Cleaned up the sid interface. 2008-12-23 23:00:26 +00:00
Wilbert Pol
f4530bf179 Added f3853 to src/emu/emu.mak 2008-12-23 20:24:13 +00:00
Wilbert Pol
da128743fb Changed the F3853 implementation into a device. 2008-12-23 20:14:57 +00:00
Aaron Giles
a70fdf00a1 CPU interface organization shuffle. The file cpuintrf.h now merely
describes the interface, but does not contain any implementation.
All remaining bits of implementation have been migrated either to
cpuexec.c or to debugcpu.c. Specifically, cpu_dasm() is now
debug_cpu_disassemble(), and cpu_set_dasm_override() is now
debug_cpu_set_dasm_override(). Also moved memory_address_physical()
to debug_cpu_translate(), since it was only ever used for
debugging.

Changed all CPU and sound cores to use memory_find_address_space()
instead of cpu_get_address_space(). The former is reliable even
during early initialization when the CPU cores generally need it.

Removed the dummy CPU core and cpuintrf.c.

Changed the core execution loop to directly call the execute
function instead of using the inline helper (which has been removed).
2008-12-22 17:35:27 +00:00
Phil Bennett
9f76d751c0 New games added or promoted from NOT_WORKING status
---------------------------------------------------
Turbo Sub (prototype rev. TSCA) [Phil Bennett]
Turbo Sub (prototype rev. TSC6) [Phil Bennett]
2008-12-22 13:19:01 +00:00
Aaron Giles
bf20e586d1 Significantly optimized the inner execution loop. arknoid2 is ~2.5x
faster with maximum interleave now.
2008-12-22 10:28:20 +00:00
Aaron Giles
6c4013134f Fixed validity checks for MC6845. 2008-12-22 05:38:43 +00:00
Aaron Giles
c0ca96b075 Cleanups and version bump. 2008-12-22 04:01:51 +00:00
Aaron Giles
64c7591175 From: Oliver Stoeneberg [mailto:oliverst@online.de]
Sent: Sunday, December 21, 2008 3:28 AM
To: submit@mamedev.org
Subject: minor stuff

Hi,

just a small one:
- adds a ATTR_PRINTF in inptport.c
- removes an unnecessary memset in emu/sound/rf5c68.c

So long
Oliver
2008-12-22 03:34:54 +00:00
Aaron Giles
8213a7af4f Rewrote 8080/8085 interrupt handling so that it makes sense.
Changed 8080/8085 callbacks to be specified in a config structure.
Converted 8080/8085 core to cpu_state_table.
Changed to a single HAS_808X define for both cores.
Fixed several drivers that used interrupts in odd ways.
Converted warpwarp driver to raw video parameters.
2008-12-22 03:18:03 +00:00
Andrew Gardner
44a99ed738 Rewrite of the Motorola DSP56k CPU core. (Andrew Gardner)
* Fixed flag calculation and sign extension for numerous ops.
* Added rnd, mpysuuu, and dmac ops.
* Fixed do loop behavior to skip empty loops.
* Added stack underflow exception handling.
2008-12-21 19:07:44 +00:00
Andrew Gardner
c17377e8a9 Fixed update_handler for the dsp56k and polygonet. [Andrew Gardner]
(The driver more or less works again.  And holy moly is this thing fast with my crazy interleave values!)
2008-12-21 08:21:34 +00:00
Aaron Giles
dc63238265 From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Friday, December 19, 2008 8:50 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Add machine/space to some callbacks

Hi mamedev,

This patch widens some machine callbacks to include an object (either
machine or space).  I didn't convert these earlier since MAME didn't
explicitly need them, but some of these will be needed by MESS now
that Machine is gone and in general all callbacks need to pass an
object.

~aa
2008-12-21 03:07:52 +00:00
Aaron Giles
d617d4369d Minor code simplification. 2008-12-21 00:41:10 +00:00
Aaron Giles
5279595eee Removed MDRV_INTERLEAVE(x), which specified the minimum scheduling
quantum in terms of "frames" (a dubious concept now with multiple
screens and changing refresh rates). Replaced it with a new
MDRV_QUANTUM_TIME(x) which specifies the minimum scheduling quantum
as a time value. Time can be specified as HZ(x), NSEC(x), USEC(x),
etc. Updated all drivers to use this, assuming 60 was the frame
rate (this is not perfect but should work for almost all cases).

Changed MDRV_WATCHDOG_INIT_TIME(x) to automatically prepend
UINT64_ATTOTIME_IN_ to the parameter, ensuring there is no
improper use of this macro and bringing it in line with the
MDRV_QUANTUM_TIME() macro. Updated all callers.

Added new MDRV_QUANTUM_PERFECT_CPU(x) to specify that the minimum
quantum should be enough to ensure that the specified CPU tag
only ever executes a single instruction at a time. This can be
used to explicitly require "perfect" synchronization for drivers
that have multiple CPUs with shared memory. Turned this on for
the arknoid2 driver for now as a test (the interleave on that
driver was already very close to perfect anyway).
2008-12-20 21:17:53 +00:00
Wilbert Pol
0b6b3886cc Added running_machine parameter to the callback in the sid interface. 2008-12-20 20:00:25 +00:00
Wilbert Pol
8850e49309 Added running_machine parameters to the f3853 callbacks. 2008-12-20 19:10:31 +00:00
Roberto Zandona
fd26606354 removed unused variable "result" 2008-12-20 13:18:09 +00:00
Aaron Giles
446f13607f Memory view fixes:
* Fixed bug that computed the wrong total size if the address
  space was a full 32 bits
* Improved display to show unmapped memory with *s
* Disabled enumeration of disk and 0-length regions
2008-12-20 07:25:39 +00:00
Aaron Giles
9be5d30f20 More cleanup. Added address-space-specific constants for the various
bus width and shift CPU interface constants. Changed all the cores
to use them.

Minor spacing cleanup in Z80, Z180, TMS34010, ADSP21xx cores.

Changed ADSP21xx cores to accept a configuration struct instead of
using set_info to specify serial port callbacks. Simplified the
ADSP21xx get/set info significantly. Removed support for only
including certain variants of the chips; they are now either all
supported or all unsupported.
2008-12-20 02:57:13 +00:00
Aaron Giles
165be1ee47 Z180 uses new cpu_state_table 2008-12-19 23:04:42 +00:00
Aaron Giles
63a6f364f8 Fixed registers view to only show those entries valid for the
CPU type.
2008-12-19 22:34:19 +00:00
Aaron Giles
d2d5def542 Oops, swapped import/export on the R register. 2008-12-19 22:29:14 +00:00
Aaron Giles
320097d9fe Renamed CPUINFO_PTR_* to CPUINFO_FCT_* for function get infos.
Changed Z80 over to the new cpu_state_table mechanism.
2008-12-19 22:26:25 +00:00
Aaron Giles
f36fc8641e This update is the below two patches, plus the remaining changes
necessary to remove 12 of the final 14 references to the global
Machine. The remaining 2 are in fatalerror() and logerror(), which
are both local to mame.c, so Machine is now fully static.

--

From: Atari Ace [mailto:atari_ace@verizon.net] 
Sent: Thursday, December 18, 2008 5:47 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Make Machine static followup

Hi mamedev,

This incremental patch to my last patch undoes the change that caches
the ppu2c0x videorom.  I changed the code back to how it behaved
originally, using an existing machine on the chip struct to eliminate
the one troublesome Machine reference.

~aa

--

From: Atari Ace [mailto:atari_ace@verizon.net] 
Sent: Thursday, December 18, 2008 2:54 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Make Machine static!

Hi mamedev,

This large patch completes the removal of the use of Machine
throughout MAME.  It does so primarily by adding machine, device or
space to various apis and modifying the callers, but for some
remaining cases it adds a new api, mame_get_running_machine(), which
will be called instead.  There are only 14 uses of this api currently,
and that number should drop over time.

There are a few changes of note:
1.  6821pia.c.  I attached machine to the 'device' structure.  I'm
working on converting this to a proper device, but that change isn't
ready.
2.  fddebug.c.  I added a proper header so that the apis won't get
accidentally converted to static again.
3.  scsi.c.  I added a machine to SCSIInstance.
4.  system16.c.  I modified sys16_patch_code to take an array of
patches.
4.  custom.h.  I added the owning sound device to the reset/stop
routines as well as the token.  Note that passing only the device
would require exposing the internals of custom_sound, as the token
passed is not the device token, but the token returned from the
CUSTOM_START routine.  Better ideas here are welcome.
4.  ppc2c0x.c.  To avoid changing more interfaces, the init routine
saves the videorom location rather than looks it up each time.

I tried to choose what I felt was the natural parameter for an api,
rather than always pass machine, but in some cases I used machine to
limit the number of additional changes.  Some additional cleanup here
is probably warranted, I'll look into that later once I'm recovered
from this two-week project.

~aa
2008-12-19 19:40:22 +00:00
Aaron Giles
42c9aeff39 Cleaned up device and sound interfaces to match the CPU
interfaces when handling strings. Namely, the generic
get_info functions allocate a temporary string and the
device in question copies its string to the target,
instead of assigning a const char *. Updated all device
and sound cores to operate this way.

Added the concept of a cpu_state_table, which is
supplied by the CPU cores and which describes all the
register state accessible to the debugger and other
subsystems. The format of the table is such that most
data can be simply fetched from memory without the
further involvement of the CPU core, including the 
display of common formats. Extensibility points are
available for custom display and for importing/exporting
the data to intermediate variables for more complicated
scenarios. Updated the ADSP21xx, TMS340x0, and i86 cores
to use this.

Removed the old debugger register list, which was never
used. Replaced it with using ordering from the
cpu_state_table.

Renamed REG_PC -> REG_GENPC, REG_SP -> REG_GENSP, and
REG_PREVIOUSPC -> REG_GENPCBASE. Updated a few spots
that were using these directly. Moved these definitions
into the end of the register area rather than leaving
them outside which put them in a weird range.
2008-12-19 06:46:17 +00:00
Wilbert Pol
4830ff3e28 Some PIC8259 updates:
- Fixed operation of edge-triggered interrupts
- INT output line is now cleared when an IRQ is acknowledged
- Implemented basic OCW3 features
2008-12-18 20:23:45 +00:00
Aaron Giles
72b283a0d1 Removed index and clock parameters from CPU_INIT function. 2008-12-18 10:11:10 +00:00
Aaron Giles
aa7e2482e2 CPU header cleanups....
i86/i286/i386/nec/v30mz:
 * renamed i86.h -> i86priv.h
 * renamed i86intrf.h -> i86.h
 * consolidated i88intrf.h, i186intf.h, i188intf.h, etc into i86.h

m6805:
 * moved memory read/write macros out of public header

m37710:
 * moved memory read/write macros out of public header

spc700:
 * moved many structs/functions/macros out of public header

tms32010:
 * moved memory read/write macros out of public header

sm8500:
 * pointer-ified the core (apparently never had get/set context!)

g65816:
 * moved memory read/write macros out of public header

pic16c5x:
 * moved memory read/write macros out of public header

t11:
 * moved memory read/write macros out of public header
2008-12-18 09:38:12 +00:00
Aaron Giles
785b6a50c6 From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Wednesday, December 17, 2008 9:03 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] STREAM_UPDATE update

Hi mamedev,

This patch modifies the parameters of the stream_update_func callback.
The first two patches go through and changes all the callbacks to use
a consistent set of parameters (the larger patch was mechanically
generated, the smaller second patch are hand edits where review or
compilation showed issues with the automatic conversion).  The third
patch then macroizes all the callbacks to STREAM_UPDATE, and was done
mechanically except for the change to streams.h.  The fourth patch
then adds device to the callback, and eliminates Machine in a handful
of callbacks by referencing the device.  deprecat.h -= 8.

~aa
2008-12-18 08:32:50 +00:00
Aaron Giles
cf9fc58618 Made the concept of a "clock" native to devices. The clock is now
specified when the device is added, and the clock is available in
the device_config directly via device->clock. Updated all devices
that have a clock to specify it when adding the device, rather than
as part of their configuration. As part of this work, also created
device-specific _ADD and _REMOVE macros to simplify configuration.

Dfined a generic device execute function callback, though it
is not used yet. The long term plan is that any device with an 
execute callback will be scheduled along with the CPUs. Now that
CPUs are devices, their scheduling will be moved over to this
logic eventually.

Changed various NVRAM devices to fetch their default memory region
from the device->region rather than specifying it in the 
configuration.

Moved a number of CPUINFO_PTR_* constants to CPUINFO_FCT_*.

Fixed several drivers that manually created their own gfx_elements
to fill in the machine object, so they no longer crash.

Fixed incorrect CPU display on info screen (recently broken).

Moved device startup to *before* the DRIVER_INIT is called. This
is to allow the DRIVER_INIT to configure devices that have been
properly allocated. So far I don't see any negative effects, but
be on the lookout if something weird shows up.

Rewrote the device iteration logic to make use of the typenext
field and the newly-introduced classnext field for iterating more
efficiently through devices of a given type or class.

Fixed behavior of MDRV_CPU_REPLACE so it does not delete and then
re-add a CPU (causing the order to change).
2008-12-18 08:28:50 +00:00
Wilbert Pol
d9fbf0dba5 Removed unneeded segment base changes from the 80286 core. 2008-12-17 19:15:14 +00:00
Aaron Giles
2ed5fee4bb Fix compile error. 2008-12-17 15:15:21 +00:00
Aaron Giles
804860a75c Added the concept of device "owner", for devices owned by other devices.
Modified laserdisc players to walk back to their global device state
via the owner, rather than brute-force searching for the first instance
and hoping that is the right one.
2008-12-17 06:12:58 +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
R. Belmont
ab8b93e1d1 Improved 64-bit fix. 2008-12-17 05:42:57 +00:00
R. Belmont
84afc85712 Fix fatal pointer truncation on 64-bit builds. 2008-12-17 02:48:17 +00:00
Aaron Giles
4f266b6da4 Hi mamedev,
More deprecat.h cleanup in the core, notably changing the apis for
poly_alloc. I also made cpu_get_index_slow fatalerror on failure 
since no one is checking the return value.

deprecat.h -= 14, Machine -= ~55

~aa
2008-12-16 16:32:05 +00:00
Aaron Giles
5630547540 More device normalization:
cpu_get_info_* -> device_get_info_*
  cpu_set_info_* -> device_set_info_*
  cpu_reset      -> device_reset

Removed the cputype_get_* macros as they are not necessary.

Removed cpuintrf_init() which is no longer necessary.
2008-12-16 16:30:28 +00:00
Aaron Giles
98c40f06db Made CPUs into proper devices. CPUs are now added in the
machine configuration just as any other device, and the
standard CPU configuration is performed via the inline
configuration macros.

Change cpu_type from an enumeration into a pointer to the
CPU's get_info function, very similar to device behavior.
For now all CPUs are declared in cpuintrf.h, but 
eventually they should be declared in the CPU's header
file, and the driver should #include that header.

Added function cpu_get_type() to return the CPU type.

Changed several cpu_* functions into macros that call
through to the equivalent device_* function.

The device system now maintains a parallel list of devices
based on type, for faster iteration through all devices
of a given type.

Cleaned up code that looped over CPUs via the machine->cpu
array to now loop using the type-based device list.

Removed start/stop/reset/nvram functions from the 
device_config in favor of grabbing them as needed.

Cleaned up the generic interrupt_enable code to work with
CPU devices instead of numbers.

Mapped the devtag_* functions to device_* functions via
macros instead of parallel implementations.
2008-12-16 15:02:15 +00:00
Aaron Giles
54db8f077b Cleanups and version bump. 2008-12-15 01:46:32 +00:00
Aaron Giles
68bca19400 Fix all obvious regressions based on screenshots. 2008-12-15 00:55:07 +00:00
Aaron Giles
60b43c1d69 Removed hack for setting mcs51 serial callbacks. Updated micro3d to use
new functions. Fixes regression.
2008-12-14 23:47:30 +00:00
Aaron Giles
04fbf4f825 Removed unnecessary masking in disassembly view.
Changed console subview computations to leave the registers portion
fixed.
2008-12-14 21:34:02 +00:00
Couriersud
4ffa2901ce Fix raster effects in nbbatman - as far as I can judge.
I was not able to dig out information about the V33 prefetch
timing and the prefetch cache size. Anybody has more 
information?
2008-12-14 18:47:33 +00:00
Roberto Zandona
046ef441d9 i960: fixed nor opcode and added notor opcode 2008-12-14 16:55:49 +00:00
Aaron Giles
a7db377c87 From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Saturday, December 13, 2008 5:07 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Add machine to allocgfx

Hi mamedev,

This patch eliminates the #include "deprecat.h" from drawgfx.h.  It
does so in a fashion similar to my recent tilemap patch, adding the
machine pointer to gfx_element, changing allocgfx to take a machine,
and then adjusting the internals to use the machine field as needed.
The changes outside of drawgfx.[ch] were done with the attached
script.

~aa
2008-12-14 08:45:12 +00:00
Aaron Giles
9830575ad0 From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Saturday, December 13, 2008 1:34 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Add machine parameter to tilemap_create()

Hi mamdev,

This set of patches eliminates the #include "deprecat.h" from
tilemap.c.  The main change is to require callers of tilemap_create to
provide a machine pointer.  This pointer is then attached to the
tilemap and used when needed inside tilemap.c.

The first patch simply adds running_machine *machine to some driver
functions that will soon need them.  The second patch makes the needed
changes to tilemap.[ch].  The (large) third patch adds machine to all
the tilemap_create calls, and was generated entirely by the attached
script.

~aa
2008-12-14 08:34:41 +00:00
Aaron Giles
98b3cf37e7 From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Saturday, December 13, 2008 6:58 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] additional sound core deprecat.h removal

Hi mamedev,

This patch removes most of the remaining deprecat.h includes in the
sound cores.  deprecat.h -= 8.

~aa

--

From: Atari Ace [mailto:atari_ace@verizon.net] 
Sent: Saturday, December 13, 2008 10:14 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] final sound core deprecat.h cleanup

Hi mamedev,

This patch removes the last three deprecat.h includes from the sound
cores.

~aa
2008-12-14 08:20:09 +00:00
Aaron Giles
af1273c18d From: Atari Ace [atari_ace@verizon.net]
Sent: Friday, December 12, 2008 9:28 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] yet another small Machine cleanup

Hi mamedev,

This patch modifies the tms34010.h, pc16552.h, and tms34061.h
interfaces to eliminate some more global Machine variables.  Six more
deprecat.h includes eliminated.

FYI, 128u5 had 523 deprecat.h includes and ~1400 Machine variables,
now were down to 374 and ~420 respectively, so progress is being made.

~aa
2008-12-14 08:15:01 +00:00
Aaron Giles
9acb30bcbe From: Micko [mailto:mmicko@gmail.com]
Sent: Saturday, December 13, 2008 2:15 AM
To: Aaron Giles
Subject: Re: Another 8080/85 change from me

Hi Arron,
 
Here is the patch.
 
Problem was in EI handling and not clearing of interrupt enable flag, as I did in previous. So now EI is done as in Z80 since it is working same way. I have tried a invaders clone having problem, now they work, also MESS machine for which I initialy did this works.
 
Hope this will be in u6.
 
Micko
2008-12-14 08:11:42 +00:00
Nathan Woods
f2c32190ea Changed the 6522 VIA implementation to be a device 2008-12-14 01:08:14 +00:00
Aaron Giles
ed2768338f Changed attotime_to_ticks/ticks_to_attotime to use UINTs and the eminline
functions where possible.
2008-12-14 00:34:14 +00:00
Nathan Woods
8917ad4f41 6522 interface cleanups 2008-12-13 16:56:09 +00:00
Aaron Giles
e643a688b3 Fixed remaining crash regressions from recent changes. 2008-12-13 07:01:40 +00:00
Aaron Giles
59975ceb55 Expanded cpuexec cycles <-> attotime functions to handle UINT64s. 2008-12-13 06:41:29 +00:00
R. Belmont
8823bb9ba0 Re-order SCSP init to fix crash. 2008-12-13 04:20:19 +00:00
Andrew Gardner
e1f9347f0d Pointer-ified the dsp56k cpu core. [Andrew Gardner]
(There are still a couple of global memory arrays that i've gotta' move into the cpu struct.  Will do that soonish.)
2008-12-12 16:18:42 +00:00
Curt Coder
63a5cd896a I8085
- added INTE and state word callbacks

N8080.c
- rewrote interrupt handling according to schematics
- added interrupt acknowledge
2008-12-12 10:37:25 +00:00
Aaron Giles
b400e7978b From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Thursday, December 11, 2008 6:52 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] deprecat.h cpu cleanup

Hi mamedev,

This patch purges the last few uses of deprecat.h from the cpu cores,
plus a handful of other Machine cases elsewhere that were found by
script inspection.

~aa

--

Hi mamedev,

This patch eliminates most uses of deprecat.h in the sound cores by
attaching the device to the state object and using it where
appropriate.  Given that all the cpu objects use this convention, and
three sound cores already do this, this seemed an appropriate
approach.

~aa
2008-12-12 06:11:15 +00:00
Aaron Giles
9dc4966109 From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Thursday, December 11, 2008 10:56 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] verboselog changes for future Machine removal

Hi mamedev,

Several mame files use an inline verboselog definition which saves
typing the cpuexec_describe_context repeatedly.  While this is a nice
feature, each case introduces a then hard to remove deprecated Machine
variable.  One way to fix this would be to add machine to the
parameter list for each verboselog call.  Another way would be to
change them to include the context call explicitly inside a typical
logging macro (e.g. decocass.h).  Not knowing which would be more
acceptable to mamedev, I've included patches for both.

~aa

(I chose to pass the machine to the verboselog function.)
2008-12-12 06:03:37 +00:00
R. Belmont
2c7aed307a Fix Altivec RGB primitives on newer GCCs. [budge, Vas Crabb] 2008-12-12 04:20:19 +00:00
Aaron Giles
70aabcb6de From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Thursday, December 11, 2008 7:13 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Remove deprecat.h from rendlay.c

Hi mamedev,

This patch squashes another deprecated use of Machine from the mame
core by plumbing machine_config into rendlay.c

~aa
2008-12-11 17:59:22 +00:00
Aaron Giles
e26c70d35b Fixed crash bug in DCS games.
Updated the fcompress APIs to allow for specifying a compression level.

Removed the concept of state saving tags, which was a hack to get save states
to work with multiple CPU cores. Simplified the state saving system as a
result, performing the operation in a single pass and without allocating
a full blob of memory. Also enabled minimal compression.
2008-12-11 17:03:13 +00:00
Quench
4ee312ca39 Pointer-ified the TMS32025 core. 2008-12-11 16:55:11 +00:00
Wilbert Pol
4f0f80255a Writes to a pit8253 timer control word always restart the timer. 2008-12-11 11:41:37 +00:00
Aaron Giles
7eaa676d90 Fixed compile error, and fixed crash when handling an exception when the
debugger is disabled.
2008-12-11 11:03:11 +00:00
Aaron Giles
9ff9434146 Removed safe_cpu_get_pc() which doesn't really make sense anymore.
Moved cpu_execute() to be an inline function.
2008-12-11 10:49:25 +00:00
Aaron Giles
04ae2d8bc7 Removed get context/set context calls from the CPU interface entirely.
Pointer-ified the TMS99xx core (missed that one!)
2008-12-11 10:21:52 +00:00
Aaron Giles
d87ef8f79b Here's the big one....
Added new function cpuexec_describe_context(machine) which can be
used in logerror() and other printf-style functions to return a
description of the current CPU/PC given only the machine. Changed
several dozen sites to use this instead of directly interrogating
the activecpu.

Removed all other uses of activecpu throughout the system. Removed
activecpu from the machine structure to prevent future abuse.

Removed cpu_push_context() and cpu_pop_context(), and all call
sites.

Voodoo devices now require a CPU to be defined in the configuration
in order to know whom to steal cycles from or stall when FIFOs get
full. Updated all voodoo users to specify one.

CPD1869 devices now also require a CPU to be defined in the
configuration, in order to know which CPU's registers to fetch.
Updated all cdp1869 users to specify one.

Many other small changes to make this all work.
2008-12-11 09:40:22 +00:00
Nicola Salmoria
c8944548df relax oki 6295 command validity check 2008-12-11 08:47:15 +00:00
Quench
922ea8052f Pointer-ified the PIC16C5x core. 2008-12-11 06:52:59 +00:00
Quench
51ea0b3e29 Pointer-ified the TMS32010 core. 2008-12-11 06:29:44 +00:00
Aaron Giles
506da3c432 From: Atari Ace [atari_ace@verizon.net]
Sent: Wednesday, December 10, 2008 9:27 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Add machine to some emu/machine init methods

Hi mamedev,

This patch widens some machine init interfaces to pass the machine
parameter, allowing more Machine global references to be eliminated.
Eventually most of these need to be converted to devices, but this
change reduces the deprecation surface in the meantime.  I also
attached the script I used to do the initial changes to the drivers,
which handled about 90% of the cases without further editing.

~aa
2008-12-11 03:39:20 +00:00
Aaron Giles
bf7875e7ee Pointer-ified the sc61860 core. 2008-12-10 18:37:47 +00:00
Aaron Giles
dcdfd96f1a Pointer-ified the saturn core. 2008-12-10 18:24:50 +00:00
Aaron Giles
864cc4513b Pointer-ified the PDP1 core. 2008-12-10 18:04:15 +00:00
Aaron Giles
ebaf684f2e Enabled all CPU cores/variants. Fixed compile issue revealed as a result. 2008-12-10 17:55:49 +00:00
Aaron Giles
540f1eefb4 Pointer-ified the lr35902 core. 2008-12-10 17:50:50 +00:00
Aaron Giles
5f39c19227 Fix compile error. 2008-12-10 17:41:30 +00:00
Aaron Giles
258b16c5d1 Pointer-ified the lh5801 core. 2008-12-10 17:40:54 +00:00
Aaron Giles
92602c58d5 Pointer-ified the cp1610 core. 2008-12-10 17:29:27 +00:00
Aaron Giles
953465543b Fatalerror in non-debug builds too. 2008-12-10 17:16:16 +00:00
Aaron Giles
b0136c9952 Pointer-ified the MC68HC11 core. 2008-12-10 17:16:04 +00:00
Aaron Giles
eadc13bd94 Pointer-ified the TMS32051 core. 2008-12-10 17:06:51 +00:00
Aaron Giles
29d3c3c033 Pointer-ified the upd7810 core. 2008-12-10 16:52:52 +00:00
Aaron Giles
9824c667e4 Pointer-ified the sh4 core. 2008-12-10 16:40:57 +00:00
Aaron Giles
b5705a5322 Pointer-ified the sh2drc. 2008-12-10 16:07:34 +00:00
Aaron Giles
8b670ddddd Pointer-ified the tms7000 core. 2008-12-10 14:55:39 +00:00
Aaron Giles
8aea6e2b4f s/cpustate->([ch])/filename.\1/ 2008-12-10 14:37:44 +00:00
Wilbert Pol
de1c2646c2 Added missing address space lookups. 2008-12-10 09:00:14 +00:00
Aaron Giles
e2a760bcbd From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Tuesday, December 09, 2008 8:13 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Add device parameter to stream_create()

Hi mamedev,

This patch adds the sound device to the parameters passed to
stream_create so that the global Machine can be removed from
streams.c.  It assumes my previous patch which added CUSTOM_START and
SAMPLES_START has been applied.

~aa
2008-12-10 06:31:23 +00:00
Aaron Giles
b98c709380 Pointer-ified the mb86233 core. 2008-12-10 06:15:38 +00:00
Aaron Giles
0dcdc62b8d Pointer-ified the MB88 core. 2008-12-10 06:07:41 +00:00
Aaron Giles
bb8b6609b6 Pointer-ified the RSP core. 2008-12-10 06:04:18 +00:00
Aaron Giles
942a56edb9 Pointer-ified the apexc core (whatever that is :) 2008-12-10 05:51:37 +00:00
Aaron Giles
b99f7aef26 Pointer-ified the 8085 core. 2008-12-10 05:47:19 +00:00
Aaron Giles
9de8dad60d Pointer-ified the alpha-8201 2008-12-10 05:29:29 +00:00
Aaron Giles
36d63663d3 Pointer-ified the i386. 2008-12-10 05:14:09 +00:00
Aaron Giles
89e14c632f Pointer-ified the i86/i286 cores.
Removed unused v20/v30 implementation.
2008-12-09 15:39:20 +00:00
Aaron Giles
12415fcdcb Pointer-ified the cubeqst CPUs. 2008-12-09 14:49:16 +00:00
Wilbert Pol
5bbd1b8e1c Added MDRV_DMA8237_ADD macro. 2008-12-09 10:13:33 +00:00
Wilbert Pol
a32c38ad02 Added MDRV_PIT8353_ADD and MDRV_PIT8254_ADD macros. 2008-12-09 09:41:24 +00:00
Wilbert Pol
e7a63caaec Added MDRV_PIC8259_ADD macro. 2008-12-09 09:21:07 +00:00
Aaron Giles
e62a46a8ee generic_pulse_line() now takes into account clock scaling and minimum cycles. 2008-12-09 07:31:46 +00:00
Aaron Giles
b319755f9e Added wrappers for ADSP21xx callbacks. Added device parameters to them.
Updated IRQ setters to use generic_pulse_irq_line().
2008-12-09 07:13:21 +00:00
Aaron Giles
13bdc84fff Compile fix. 2008-12-09 06:50:18 +00:00
Aaron Giles
ec8caea251 Completed pointer-izing the 6502 cores. Removed h6280 SET_CONTEXT calls. 2008-12-09 06:36:30 +00:00
Aaron Giles
b164c8a260 From: Atari Ace [atari_ace@verizon.net]
Sent: Monday, December 08, 2008 6:21 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Pointerify f8/tlcs90 cores

Hi mamedev,

Two more cores converted to pointers.  f8 was very straightforward,
tlcs90 had some extra state that needed to be merged into the register
struct, and needed adjustments to its timers and read/write handlers
which might warrant some scrutiny by the experts.

~aa
2008-12-09 06:26:02 +00:00
Aaron Giles
901d4fc796 Updated z8000 tables [Juergen Buchmueller] 2008-12-09 06:24:15 +00:00
Aaron Giles
eb43d34725 Re-routed empty get/set context calls to the dummy CPU's, and removed them
from the CPU cores.

Disabled the use of PULSE_LINE for any input lines except NMI and RESET.
Added a helper function generic_pulse_irq_line() for doing a single-cycle
assert/deassert for those few drivers remaining that were trying to use
PULSE_LINE directly.
2008-12-09 06:21:15 +00:00
Andrew Gardner
183b7c9de7 Pointer-ified the h6280 cpu core. [Andrew Gardner]
(Next is the dsp56k)
2008-12-09 05:25:35 +00:00
Aaron Giles
4eb774a033 Minor cleanup for empty SET_CONTEXT handlers. 2008-12-09 04:13:29 +00:00
Wilbert Pol
abb8a04a10 Pointer-ified the PDP1/TX0 core. 2008-12-08 21:49:26 +00:00
Aaron Giles
9369daac34 Fix disassembler compile. 2008-12-08 16:02:40 +00:00
Aaron Giles
0ba81aad17 Pointer-ified the V30MZ core. Untested as nobody is using it. 2008-12-08 11:03:40 +00:00
Aaron Giles
c33c60485b Pointer-ified the V810 core.
Added OG's z8000 fix.
2008-12-08 10:44:00 +00:00
Aaron Giles
5b64c00674 Added logic to track OSD updates separately from internal view updates in the
debugger. In order to get the OSD to update, a new function 
debug_view_flush_updates() must be called. Currently this is automatically
called before osd_wait_for_debugger(), and during the periodic updates while
executing. The OSD code may occasionally need to call it under other
circumstances (for example, the Windows code calls it explicitly while
tracking scrollbar thumbs to get live scrolling).
2008-12-08 10:11:29 +00:00
Aaron Giles
fb25927452 Pointer-ified the Z180 core.
Fixed compile issue with the Z8000 disassembler.
2008-12-08 09:40:44 +00:00
Aaron Giles
d4e2eb2472 Pointer-ified the Z8000 core. 2008-12-08 08:41:51 +00:00
Curt Coder
b4470a0bd7 [M6800] Removed the extraneous cpu_pop_context(). 2008-12-08 08:19:37 +00:00
Aaron Giles
b24198a1cd Hi mamedev,
This is a reworked/expanded version of the patch I sent yesterday.
This one is split into three parts:

1.  This introduces function macros for SAMPLES_START,
CUSTOM_{START,STOP,RESET}, and ANTIC_RENDERER.
2.  This introduces running_machine *machine throughout MAME.
Principally it adds running_machine *machine = Machine to the top of
functions, but in some static functions the parameter is added
directly.  Some similar changes in 99xxcore.h, v9938.c, v9938mod.c,
galaxold.c, psx.c, taito_l.c are also made to eliminate Machine
params.  No global API is changed.
3.  This changes the APIs introduced in the first part to pass device
or space as appropriate.  A few similar changes in some other global
apis are made as well.

The net result of this sequence of patches is to remove 40% of the
Machine references and 27 deprecat.h includes.

~aa
2008-12-08 06:53:40 +00:00
Aaron Giles
60febeb3d9 Pointer-ified the v60 core. 2008-12-08 06:35:28 +00:00
Aaron Giles
f0849513d0 From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Sunday, December 07, 2008 1:48 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Pointerify sharc core

Hi mamedev,

The attached patch pointerifies the sharc core.  If this has already
been done, no great loss, it only took about an hour and a half to do
this.

~aa
2008-12-08 05:07:54 +00:00
Aaron Giles
65f9ee3d3a From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Sunday, December 07, 2008 9:43 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Introduce KONAMI_SETLINES_CALLBACK

Hi mamedev,

Aaron indicated the KONAMI_SETLINES_CALLBACK change from my previous
patch overlapped with work already committed but was otherwise a
desired change, so this patch submits just that change relative to the
committed work.

~aa
2008-12-08 05:03:46 +00:00
Nathan Woods
bb2061763c Updates from MESS 2008-12-08 03:53:26 +00:00
Andrew Gardner
96d40d8969 PPointer-ified the arm. [Andrew Gardner]
(Next cpu I'll look at is the H6280.)
2008-12-07 17:57:18 +00:00
Aaron Giles
872ec20658 From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Saturday, December 06, 2008 4:52 PM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Deprecat.h cleanup

Hi mamedev,

This patch changes some global Machine references to use machine,
device->machine, ... instead, and removes any unneeded #include
"deprecat.h" lines as well (about 10% of them in fact).  It was
generated using the attached script, and then reverting some cases
where it was overzealous.

~aa
2008-12-07 14:51:36 +00:00
Couriersud
96321d328f Fixed 64bit compile 2008-12-07 13:43:57 +00:00
Aaron Giles
c5f3e70c14 Made the PCI bus a device. The bus is declared in the machine
config, and the devices attached to it are enumerated there.
Eventually, the PCI config read/write functions should be moved 
to well-known functions within the device, but for now they are
kept separate.

activecpu -= 138
2008-12-07 06:14:33 +00:00
Aaron Giles
63f26b610b Pointer-ified the konami CPU core. Changed setlines callback to
pass a device. Updated and de-deprecat-ed the drivers that used
it. Fixed interrupt handling to follow more recent behavior
expectations (no PULSE_LINE on non-NMI lines).
2008-12-06 21:24:38 +00:00
Aaron Giles
c023001a86 Pointer-ified the PPC DRC. 2008-12-06 20:18:05 +00:00
Aaron Giles
554f86eb65 Pointer-ified the mips3drc. 2008-12-06 19:55:22 +00:00
Andrew Gardner
490880419a Pointer-ified the m6805. [Andrew Gardner]
(Used cpustate naming convention.  Moved iCount into state struct.)
(Tested with arkanoid, bootleg bubble bobble, etc.)
(Next cpu I'll look at is the ARM.)
2008-12-06 19:47:14 +00:00
Aaron Giles
7f9c6cb81f Pointer-ified the DSP32 core. 2008-12-06 19:28:48 +00:00
Aaron Giles
d92a2e0c4e Cleanups/version bump/added missing drivers. 2008-12-06 17:54:42 +00:00
Aaron Giles
fbdff39c21 Fix compile errors. 2008-12-06 17:15:23 +00:00
Aaron Giles
389b25c281 02638: various cpu cores don't compile anymore
(mostly fixed before)
2008-12-06 17:09:02 +00:00
Aaron Giles
282c1db110 activecpu_count -= 133
Removed mostly silly uses of activecpu from the CPU cores.
2008-12-06 16:56:22 +00:00
Aaron Giles
f57ab32404 Removed mame_find_cpu_index(). Use cputag_get_cpu() instead.
Updated all drivers calling this to the newer function, and
generally simplified their code as a result.
2008-12-06 07:25:48 +00:00
Aaron Giles
d8e17c4e86 Removed cpunum_get_active().
Main important change is that IDE controllers with bus mastering (DMA)
need to specify the target address space in the IDE device configuration.
2008-12-06 06:40:40 +00:00
Aaron Giles
e2c9b10241 Fixed some memory view-related issues:
* select correct memory region by default when created
   (should be first address space of visible CPU)
* when created, default bytes/chunk is correct
* when changing width, cursor no longer moves around
* memory regions display more than all 0xff now

Also fixed:

* qword big-endian memory reads no longer call little-endian handlers
* memory regions are tracked in creation order (show up in order
   in the menu now)
* ROMREGION_DISPOSE memory regions are not disposed if the debugger
   is enabled
2008-12-05 16:02:22 +00:00
Aaron Giles
12f71dac82 m68_state -> cpustate 2008-12-05 15:17:40 +00:00
Nathan Woods
d85a03d9ad Added differentiation between the r1 and r2 versions of the 6526; not acting
on it yet
2008-12-05 12:28:40 +00:00
Nathan Woods
b7da4d6684 Added device paramter to 6526 callbacks 2008-12-05 12:09:35 +00:00
Nathan Woods
3125b5e60e Removed unused variables 2008-12-05 12:08:49 +00:00
Aaron Giles
3c6eacc96f Changed save state system to accept machine parameters where
appropriate, and to keep all global variables hanging off the
machine structure. Once again, this means all state registration
call sites have been touched:

  - state_save_register_global* now takes a machine parameter
  - state_save_register_item* now takes a machine parameter
  - added new state_save_register_device_item* which now uses
     the device name and tag to generate the base name

Extended the fake sound devices to have more populated fields.
Modified sound cores to use tags from the devices and simplified
the start function.

Renumbered CPU and sound get/set info constants to align with
the device constants, and shared values where they were perfectly
aligned.

Set the type field in the fake device_configs for CPU and sound
chips to a get_info stub which calls through to the CPU and sound
specific get_info functions. This means the device_get_info()
functions work for CPU and sound cores, even in their fake state.

Changed device information getters from device_info() to
device_get_info() to match the CPU and sound macros.
2008-12-05 08:00:13 +00:00
Nathan Woods
9c88aa96d0 Made the 6526/8520 CIA implementations be devices 2008-12-05 03:59:56 +00:00
Jonathan Gevaryahu
89b03aba17 Update comments 2008-12-04 20:19:10 +00:00
Aaron Giles
35dfc8bad2 From: Micko [mailto:mmicko@gmail.com]
Sent: Tuesday, December 02, 2008 10:14 AM
To: Aaron Giles
Subject: Another 8080/85 change from me

Hi Aaron,
 
I have noticed that there are some problems in interrupt handling in 8080 implementation. Thing is that there are some cases that made a problem while implementing one 
computer emulation. Thing is that there is same computer with Z80 and 8080 cpu and ROM's are same, but interrupts were not triggered. So I have searched and found 
two problems fixed with this patch.
1. previous implementation cleared interrupt enable bit on interrupt trigger which is wrong since interrupts should stay enabled 
2. serve interrupt number was not cleared after interrupt is executed, so if same one is triggered it will not be catched.
 
I have tested with 8080 MESS drivers, and picked some of MAME drivers using 8080 and 8085, and there were no bad things found.
 
Regards,
Micko
2008-12-04 10:48:35 +00:00
Aaron Giles
f7a80ad726 From: Edward Swiftwood [mailto:payphoneed@gmail.com]
Sent: Tuesday, December 02, 2008 8:18 AM
To: submit@mamedev.org
Subject: UI Yellow patch part 2

Enjoy?
2008-12-04 10:47:26 +00:00
Aaron Giles
78622af0eb This patch furthers the process of aligning the sound cores with the
recent cpu core changes.  Specifically, it adds a fake device
implementation similar to the one the cpu cores were using in 128u3
(i.e. it only provides the machine pointer and the token), and makes
some interface adjustments aligned to 128u4 (i.e. adding
snd_class_header, adding get_ to various getter functions).  The
primary benefit of this change is the removal of "deprecat.h" from 23
sound cores.  I also adjusted ui.c to stop calling sndnum_clock and
access the clock data similarly to how it does the cpu clock data.

[AtariAce]
2008-12-04 10:44:15 +00:00
Aaron Giles
60bc02ae1b Removed fillbitmap() macro in favor of direct calls to bitmap_fill().
Note that the parameters to the latter are in a different order
(bitmap, clip, color). [Atari Ace]
2008-12-04 10:17:17 +00:00
Aaron Giles
2c3a713213 Minor comment fix. 2008-12-04 10:06:25 +00:00
Aaron Giles
9dd0f760aa 02673: All Sets with HuC6280 as Audio Device (PCE-Based titles): Fatal Error after OK 2008-12-04 10:04:22 +00:00
Aaron Giles
2bce10291f 02680: carnevil: -verifyrom fails to consider if a CHD is a BAD_DUMP 2008-12-04 09:58:01 +00:00
Aaron Giles
8169eeefca 02687: emuopts.c: CORE INPUT AUTOMATIC ENABLE OPTIONS
02683: Pressing F5 while running debugger causes access violation 
02669: pandoras: music tempo is too fast 
02691: Some drivers with z80/ay8910 Audio: Audio tempo has changed 

Also fixed debugger memory leak.

Added a number of new cputag_* macros to cpuexec.h.
2008-12-04 09:34:38 +00:00
Aaron Giles
013e6eff00 02688: DIP switch settings are not being stored in INP files.
To fix this, I had to break old INP files. While I was in there,
I added corefile support for compressing/decompressing data on
the fly, and enabled it for INPs, meaning the newer format INPs
are output and processed compressed.
2008-12-04 08:34:30 +00:00
Aaron Giles
85b961f5af CPU_IS_LE -> ENDIANNESS_LITTLE
CPU_IS_BE -> ENDIANNESS_BIG

Also fixed help for step over/in to specify correct keys.
2008-12-04 06:08:32 +00:00
Aaron Giles
0309522e87 Re-enabled the OSD key for master volume control. All other
sliders are still only accessible via the menus.
2008-12-04 06:07:16 +00:00
Aaron Giles
30aa31f163 More debugger changes.
Added the concept of 'subviews' to the debugger views. The core
now creates a list of possible subviews, and the OSD can select
between them. This removes code from the OSD that was previously
required to find all possible memory and disassembly views.

Added machine parameters to debugger console output functions.

Fixed some oddities in the memory view.

Moved globals to hang off of the machine structure.

Fixed bug where the visiblecpu was not updated immediately upon
a break.
2008-12-03 17:31:20 +00:00
Nathan Woods
e1c8b38b66 Made the 6850 ACIA a device 2008-12-03 12:54:32 +00:00
Aaron Giles
d924407859 Big debugger cleanup.
Important note for OSD ports: the get/set property functions have 
been retired for debug_views. Instead, there are specific functions
to perform each get/set operation. In addition, the format of the
update callback has changed to pass the osd private data in, and
the update callback/osd private data must be passed in at view
allocation time. And osd_wait_for_debugger() now gets a CPU object
instead of the machine.

Removed extra debugger tracking for address spaces and added some
of the useful data to the address_space structure. Updated all
debugger commands and views to use CPU and address space objects
where appropriate.

Added new memory functions for converting between bytes and
addresses, and for performing translations for a given address
space. Removed debugger macros that did similar things in favor
of calling these functions.

Rewrote most of the memory view handling. Disasm and register views
still need some additional tweaking.
2008-12-03 06:35:34 +00:00
Nicola Salmoria
9e13b67faf Changed oki 6295 to use a reasonable volume table derived from the manual. Added popmessages to notify of invalid commands so we can investigate them if some game uses them.
It should also be noted that many games using this chip are clipping at the moment. This is something that might date back to when sound mixing was upgraded to 32-bit. It is sensible for the 6295 emulator to output at this level because it ensures that bits of precision are not lost, so the mixing levels in the drivers should be adjusted to avoid clipping.
2008-12-02 08:17:21 +00:00
Andrew Gardner
d801cf44b3 Moves empty brackets to the same line as CPU_(GET|SET)_CONTEXT calls.
This makes it easy to grep the CPU code to figure out which cores still need pointer-ification.
2008-11-30 16:25:09 +00:00
smf-
2bede4d1ce Makes sure uint is defined. 2008-11-29 08:32:58 +00:00
R. Belmont
cdd72b00bd ARM7 updates
- Pointer-ified ARM7 core
- Added disassembler and execution support for ARMv5 LDRD/STRD instructions.
  39in1 now makes it until it needs the MMU.
2008-11-29 02:59:53 +00:00
R. Belmont
86e9b479bd Fixed stepping in the debugger. 2008-11-29 00:51:04 +00:00
R. Belmont
fdc7c5b358 Pointer-ified the SPC700. 2008-11-28 23:29:21 +00:00
R. Belmont
1962ffeaf9 Pointer-ified the 65816. 2008-11-28 22:43:37 +00:00
Nathan Woods
d52f52c27d Added ATTR_NONNULL to various declarations 2008-11-28 18:41:36 +00:00
Jonathan Gevaryahu
2de5e9e396 S14001a: Update notes a bit to clarify speech bus stuff, mostly completed the state map in the comments 2008-11-28 06:05:55 +00:00
Nathan Woods
00cf5ec718 F3853 changes from MESS 2008-11-28 00:14:22 +00:00
Aaron Giles
0142411b98 Move cpunum_get_active() removal. 2008-11-27 05:22:51 +00:00
Curt Coder
c35dcd695c Normalized CDP1802 state variables to 'cpustate'. 2008-11-26 20:54:18 +00:00
Curt Coder
4094a61f7a Added macros to access ROM and MACHINE_DRIVER by name. 2008-11-26 20:45:18 +00:00
Aaron Giles
0df0ba2bc4 Removed more cpunum_get_active(). 2008-11-26 20:07:20 +00:00
Aaron Giles
c2ca1ef0cb PowerPC DRC no longer references active CPU. 2008-11-26 19:49:42 +00:00
Aaron Giles
5cfad18a84 Normalized m37710 local CPU state pointers to to 'cpustate'.
Removed need for cpunum in the timers.
2008-11-26 19:42:33 +00:00
Aaron Giles
593e334f08 Normalized mcs48 state variables to 'cpustate'. 2008-11-26 19:39:12 +00:00
Aaron Giles
98b88c617b Removed cpunum_get_active() calls from a number of CPU cores.
Normalized 6502 state variable to the generic 'cpustate' which
makes the macros work more cleanly.
2008-11-26 19:35:58 +00:00
Aaron Giles
e1f5ed6caf Pointer-ified the hyperstone core, and removed all activecpu refs. 2008-11-26 16:23:41 +00:00
Aaron Giles
6924ad8120 Changed timer_alloc, timer_set, timer_pulse, timer_call_after_resynch,
and timer_get_time to pass the machine parameter. Moved timer globals
to hang off of the running_machine.
2008-11-26 06:38:08 +00:00
Aaron Giles
185771534c 02672: Most Sets using MCS48/51.C (intel 80xx family): Fatal Error when using -cheat trigger 2008-11-25 23:06:29 +00:00
Curt Coder
3ef9cb7919 [Z80DMA] Added placeholders for interrupt callback and Z80 daisy chain functions. Mario was broken even before this update. 2008-11-25 20:06:40 +00:00
Curt Coder
a60b88b141 Silenced Z80 SIO by default. 2008-11-25 15:23:51 +00:00
Aaron Giles
ca3478a1fc Removed globals from cpuexec.
Removed ATTOTIME_TO_CYCLES() and ATTOTIME_IN_CYCLES(). Replaced them
with functions in cpuexec: cpu_clocks_to_attotime() and
cpu_attotime_to_clocks(), both of which take CPU devices instead of
indexes. Updated all callers, many of which were using the functions
dubiously.
2008-11-25 06:23:14 +00:00
Aaron Giles
dd87df6926 CCPU and T-11 pointer-ification. 2008-11-25 05:13:20 +00:00
davidhay
57c9bd0a87 make non-critical UI warnings yellow instead so that they stand out [BarnacleEd]
(was posted on Mametesters, I quite like it myself, although obviously it's open for debate)
2008-11-24 20:13:01 +00:00
Aaron Giles
9fd286c6da Fixes subtle timing calculation problems that affected SH-2 timers. 2008-11-24 14:24:08 +00:00
Aaron Giles
1d05ea6089 Cleanups and version bump for 0.128u4. 2008-11-24 04:10:18 +00:00
Aaron Giles
cb10461ed1 From: Barry Rodewald [mailto:bsr@xnet.co.nz]
Sent: Sunday, November 23, 2008 12:17 AM
To: submit@mamedev.org
Subject: Oki MSM6258 ADPCM core

Hi,

I have attached the Oki MSM6258 ADPCM sound core, which is intended for 
use with the MESS Sharp X68000 driver.  This code was written by Phil 
Bennett, so he ought to be the one getting the credit for it.  I have 
mostly worked on the MESS X68000 driver and HD63450 (DMA controller) 
code to get the ADPCM working for most X68000 software.  I am unaware as 
to if Phil has already submitted this or not yet.

I've tested compiling and running MAME itself (including a debug build) 
with the MSM6258 core in it, and experienced no issues.  Although there 
is nothing in MAME to test it specifically with, it doesn't cause any 
problems with MAME use in general.

The current MESS X68000 driver code with the MSM6258 enabled is 
available for those that want to test that out - 
http://mahlemiut.marpirc.net/msm6258-211108.zip

Thanks,
Barry Rodewald
mailto:bsr@xnet.co.nz
2008-11-24 03:22:29 +00:00
Aaron Giles
fa2204019f From Luigi30:
Clocks derived from crystals in in ace.c, asteroid.c, avalnche.c, blockade.c, boxer.c, bzone.c, cosmic.c, firetrk.c, galaga.c, lazercmd.c, meadows.c, missile.c, orbit.c, skydiver.c, sprint2.c, warpwarp.c, williams.c

Added diplocations to meadows.c, mugsmash.c, orbit.c

Unified sprint2.c memory map

Unified galaga.c CPU4 memory maps
2008-11-24 03:12:56 +00:00
Aaron Giles
513011179d change_pc? What change_pc? 2008-11-24 02:40:16 +00:00
Aaron Giles
f86d66dc97 Removed NO_LEGACY_MEMORY_HANDLERS defines. 2008-11-24 01:42:27 +00:00
Aaron Giles
e117cf26a2 Removed cpu_num info from SH2 in favor of just keeping the device object. 2008-11-24 01:32:29 +00:00
Aaron Giles
5e980fa67b Removed memory context switch. Let the fun begin. 2008-11-24 00:00:18 +00:00
Couriersud
80991da900 Pointer-"ified" the s2650 core
* Used s2650c to identify the state variable. This is unique within the 2650 core and may be renamed using simple replace.
2008-11-23 16:58:41 +00:00
R. Belmont
f778678e3d Removed unused global tokens. 2008-11-23 16:04:49 +00:00
Aaron Giles
feaae49a0d Some more driver conversions to new functions. 2008-11-23 15:46:31 +00:00
Aaron Giles
61347380f2 Began removal of program_* calls from drivers. 2008-11-23 03:16:04 +00:00
R. Belmont
987696750a Pointer-ified the M377xx. 2008-11-23 02:55:26 +00:00
Aaron Giles
2b5f8f5f0e Removed cpu_read_byte/cpu_write_byte. Fixed a few lingering compiler
issues. Fixed Z8000 crash.
2008-11-23 02:06:51 +00:00
Aaron Giles
3601d8880c Remaining CPU cores updated to new functions. 2008-11-23 01:24:32 +00:00
Aaron Giles
6885dcc750 TMS* CPUs conversion ... almost there. 2008-11-23 00:40:10 +00:00
Aaron Giles
cf2bb4f315 More memory conversions. 2008-11-23 00:05:00 +00:00
Aaron Giles
2d5bd758de More conversions, plus tested CPU cores that were previously disabled. 2008-11-22 23:01:08 +00:00
Aaron Giles
cd5d467fc8 NEC core converted. 2008-11-22 22:50:58 +00:00
Aaron Giles
7fbd73c60c A few more conversions. 2008-11-22 22:45:11 +00:00
R. Belmont
e1c619230f Un-deprecat'ed the H8. 2008-11-22 20:16:52 +00:00
Aaron Giles
0dcc155498 And the 6805 core. 2008-11-22 20:08:41 +00:00
Aaron Giles
5ca71f2d98 Missed a couple in the 68000 core. 2008-11-22 20:06:27 +00:00
Aaron Giles
8b675335b5 More conversion to the new memory functions.
And I will resist the urge to personally throttle those responsible
for copying and pasting the m6502 core 4 times. What a disaster.
2008-11-22 19:29:29 +00:00
Aaron Giles
9ee2f770aa Converted a bunch of CPU cores over to the new memory functions. 2008-11-22 18:38:41 +00:00
Aaron Giles
5d89160f3b Further debugger cleanup. Symbol tables now have a global ref
as well as a per-symbol ref. Debugcpu is now clear of active
CPU references and global Machine references.
2008-11-22 16:50:00 +00:00
Curt Coder
c08dc3127e [MC6845] Hsync needs to toggle on every scanline. 2008-11-22 13:13:23 +00:00
davidhay
7f2d2d85cc pointer work on se3208 (although I haven't touched the disassembler..) 2008-11-22 12:51:57 +00:00
Couriersud
42c87ed6c8 Reverted case shifts 2008-11-22 11:55:51 +00:00
davidhay
8ad71d3e2a converted ssp1601 to pointers (still works, tested virtua racing genesis) 2008-11-22 11:53:14 +00:00
Couriersud
8ea1ea748c Optimized two more switch/case 2008-11-22 00:52:29 +00:00
Couriersud
7e59b0b348 Switched adsp21xx to new memory functions
* simplified a few case statements
2008-11-22 00:26:31 +00:00
Couriersud
a0e6e5a2b0 Pointer-ified cpu/nec (V30) 2008-11-21 23:49:08 +00:00
Couriersud
783035dd88 Fix some missing "("s - Aaron, please check 2008-11-21 21:38:29 +00:00
Couriersud
1192928c0c Fix 64bit compile 2008-11-21 21:35:08 +00:00
Aaron Giles
5816061f8e Debugger interfaces cleanup. Still more to do but this compiles and
works. Added callback parameters to the expression engine. Improved
CPU parsing so you can use a CPU tag or index in most commands that
take one. Switched to passing CPU and address space objects around
where appropriate. Lots of other minor tweaks.
2008-11-21 16:53:48 +00:00
R. Belmont
c522d198ac Converted H8 CPUs to the new memory functions. 2008-11-21 04:58:27 +00:00
Aaron Giles
9a0493f14a Pointer-ified the TMS32031 core. 2008-11-20 18:20:59 +00:00
smf-
fae2eb291a changed bios call logging to read registers directly & all other accesses to Machine have been removed. 2008-11-20 17:29:11 +00:00
Aaron Giles
bc79dad8bd Removed global Machine references as well. 2008-11-20 17:09:17 +00:00
Aaron Giles
0bf352e5e8 Pointer-ified the jaguar CPU core. 2008-11-20 17:07:08 +00:00
Aaron Giles
e23c6d6676 Fixed drc-based games. 2008-11-20 11:33:25 +00:00
Aaron Giles
ba6a03d734 Memory banking now requires a machine object. This makes the memory
system fully global-free, apart from the "active_address_space"
which will eventually go away.

Also fixed compiler errors from last checkin.
2008-11-20 11:14:38 +00:00
smf-
3dcbbe190e pedantic, probably should number from 1 instead of 0... 2008-11-20 10:18:05 +00:00
smf-
6d15316659 removed excessive casts and fixed mvmva bug introduced in last commit. 2008-11-20 10:13:45 +00:00
Aaron Giles
371cd0a56d Another big one.
Moved memory global state into a struct hanging off of the machine.
Updated almost all memory APIs to take an address_space * where
appropriate, and updated all callers. Changed memory internals to
use address spaces where appropriate. Changed accessors to point
to the memory_* functions instead of the address space-specific
functions. Improved internal handling of watchpoints.

Added cputag_* functions: cputag_reset(), cputag_get_index(),
cputag_get_address_space(). These just expand via macros to an
initial fetch of the CPU via cputag_get_cpu() followed by the
standard CPU call.

Added debugger_interrupt_hook() and debugger_exception_hook() calls
which intelligently look at the debugger flags before calling.

Did minimal cleanup of debugger, mainly moving CPU-specific data
to hang off of the CPU classdata for more direct access.
2008-11-20 09:50:31 +00:00
smf-
24022b72ca pointerified the psx cpu core & switched it to the new memory functions. Changed some MIPS_* to PSXCPU_* 2008-11-19 19:32:44 +00:00
Couriersud
2cd2454c39 Switched m6809 and hd6309 to new memory functions
* cleaned up some macros
* aligned code a bit more
* interrupts now checked in cpu_execute instead of set_context
2008-11-19 19:27:04 +00:00
R. Belmont
b95877564a Fixed "H8/3344" to "H8/3334" as per Guru. 2008-11-19 18:00:00 +00:00
Curt Coder
49a90686e8 Refactored the COP400 CPU cores to use the new memory functions. 2008-11-19 17:47:38 +00:00
Curt Coder
e0d6d1323d Refactored the CDP1802 CPU core to use the new memory functions. 2008-11-19 17:46:39 +00:00
R. Belmont
3ac959ef71 Fixed GCC compile errors in h6280 and m6509.
Also fixed the read/write handlers in m6509 to use space->cpu->token instead of the global token.
2008-11-19 14:35:26 +00:00
Nicola Salmoria
2e97ff9c21 02641: strider and clones: Problem with graphics layer 2008-11-19 09:14:29 +00:00
Aaron Giles
0801d1254c Converted change_pc() into a no-op. Changed memory_set_direct_region() to
return a boolean indicating whether the given address was successfully
located in a bank. Change raw/decrypted access to look at this result, and
if the given address is not in a bank, calls through to the standard read
handlers.

In theory, this should prevent crashes when accessing opcodes. It does in
fact prevent mp_col3 from crashing.

Fixed address space mapping handlers to invalidate direct access regions
if a change is made to the mapping. This is needed to prevent the Sega
dynamic memory mapping chips from falling over.
2008-11-19 06:36:01 +00:00
R. Belmont
6c1655976f Big H8 update
H8:
- Added support for 8-bit H8 family MCUs, starting with the H8/3344
- Pointer-ified all H8 cores
- Some cleanup and renames toward additional future work

System 23:
- Added extremely preliminary support for I/O boards with the H8/3344
- Added new game: Motocross Go! (MG3 Ver. A) [credit Guru]
2008-11-19 03:29:10 +00:00
Couriersud
13bd16a090 Switched m68000 core to new memory functions 2008-11-19 00:32:54 +00:00
Couriersud
3a068d3dfb Switched mcs48 core to new memory functions 2008-11-18 22:45:35 +00:00
Couriersud
56a34c2e5b Switched mcs51 to new memory functions 2008-11-18 21:19:44 +00:00
Couriersud
4c415d118b Added check "#ifndef NO_LEGACY_MEMORY_HANDLERS" to memory.h
Defining NO_LEGACY_MEMORY_HANDLERS before the first include will identify all references to [program|data|io]_[read|write]_* in a source file.
2008-11-18 21:02:53 +00:00
Curt Coder
a8475e4c1e Pointerized the COP400 CPU cores. 2008-11-18 17:15:40 +00:00
Aaron Giles
09da237dcd Pointer-ified the ASAP core. 2008-11-18 16:33:33 +00:00
Aaron Giles
1c386d0958 Oops. 2008-11-18 14:22:56 +00:00
Aaron Giles
0e44db781f evilngt regressions. 2008-11-18 06:50:30 +00:00
Aaron Giles
d83c8320da Cleaned up macro mess in the Z80 core. Switched to using
generic memory calls instead of program_* and io_*.
2008-11-18 06:16:30 +00:00
davidhay
a088d32b1b fix compile 2008-11-17 22:05:39 +00:00
Curt Coder
ce73844036 Pointerized the CDP1802 CPU core. 2008-11-17 21:42:56 +00:00
Couriersud
29d45a2410 Add proper cpu_push_context to callbacks in m6800.c
* fixes crash in namcos1.c drivers
2008-11-17 21:20:13 +00:00
Aaron Giles
e7c418ef0f Generalized the concept of opbase access into "direct" access.
Removed opbase globals to the address_space structure.
Cleaned up names of pointers (decrypted and raw versus rom and ram).
Added inline functions to read/write data via any address space.
Added macros for existing functions to point them to the new functions.
Other related cleanups.
2008-11-17 18:33:10 +00:00
Nicola Salmoria
f8fcbc764c changed 6809 disassembler to work with kram3 2008-11-17 10:34:44 +00:00
Aaron Giles
5a9c7e2d2d Significantly pared down the 68k core. Merged outer MAME shell
into the core proper and removed unused macros. Changed all
external interfaces to pass the CPU device. Enabled 64-bit
operations by default. Re-derived the interface functions to
cascade and share code more aggressively.

These changes also seem to have cured the taito_f3 issues as
far as I can tell (at least pbobble3 seems right now).
2008-11-17 09:39:11 +00:00
Aaron Giles
a5bf427929 Added "tag" parameter to state_save_register_item_* calls. Removed
state_save_combine_module_and_tag() function in favor of passing
the tag when registering. Revisited all save state item registrations
and changed them to use the tag where appropriate.
2008-11-17 06:21:26 +00:00
Couriersud
8aa46743d1 Some -literally- code alignment 2008-11-16 23:40:12 +00:00
Couriersud
8fd2054a6f move ea into state struct 2008-11-16 23:12:23 +00:00
Couriersud
13f4eec454 Fix icount
* m68_icount ==> m68_state->icount
* move ea into state struct
2008-11-16 23:07:17 +00:00
Couriersud
ad3179a0e2 Fix icount: m68_icount ==> m68_state->icount 2008-11-16 22:53:45 +00:00
smf-
ea20c30175 added device_config to the disassembler. 2008-11-16 21:59:16 +00:00
Aaron Giles
893b21cb33 Disassemblers now get the CPU object. 2008-11-16 15:40:41 +00:00
Nicola Salmoria
6aabfb37cb added m6809 config option to control where opcodes 10 and 11 fetch the second byte.
The disassembler needs to respect the setting too but I don't know how to inform it.
2008-11-16 12:21:58 +00:00
Aaron Giles
f326c2c29e More disentangling of the 68000 core. Removed old unused CPS2
encryption junk. Changed encryption interfaces to pass the
CPU core object. Unwound several levels of macros for accessing
memory. Still more to do.
2008-11-16 07:02:39 +00:00
Aaron Giles
1794cfa5a1 Terminology cleanup. "Machine" handlers are now "space" handlers. 2008-11-15 21:36:21 +00:00
Aaron Giles
41b8e37e3d Added generic read/write callbacks. 2008-11-15 21:04:15 +00:00
Aaron Giles
d10a7cccd5 God forbid, neogeo doesn't work.... 2008-11-15 20:02:40 +00:00
Aaron Giles
6ace92f89a Sega/Williams compile and crash fixes. 2008-11-15 07:43:42 +00:00
Aaron Giles
fd5b836964 Const-ified the return from cpu_get_address_space.
Fixed a few errors.
2008-11-15 03:29:32 +00:00
Couriersud
050b0d8cf2 Fix 8042kbdc.c and pci.c warnings 2008-11-14 20:31:42 +00:00
Couriersud
838a729328 Fix mc146818 warnings 2008-11-14 20:28:36 +00:00
Couriersud
4f71d0aa98 Fix compile error #2 2008-11-14 19:59:04 +00:00
Couriersud
7749448b1f Fix compile error 2008-11-14 19:54:03 +00:00
Aaron Giles
537c9becf6 WARNING: this compiles, but not fully cleanly, and a number of drivers
are broken.

Changed READ/WRITE handlers to accept an address_space * instead of a
machine *. The address_space object was enhanced to contain a machine
and a pointer to the relevant CPU object.

Fixed a number of errors found by the compiler, mostly in the core and
CPU/sound handlers, but there is a lot remaining to fix.

Added new function cpu_get_address_space() to fetch the address space
for calling in manually to these functions. In some instances, code
which should eventually be converted to a device is hard-coding fetching
the program space of CPU #0 in order to have something valid to pass.
2008-11-14 16:43:46 +00:00
Couriersud
9ad6fe0049 Pointer-ified the 6800, 6809 and hd6309 cpu cores
* temporarily named the state var m68_state in the 68xx cores
* reorganized some code for simpler comparison of 68xx cores
2008-11-14 07:49:20 +00:00
Couriersud
a036befa08 Remove a #if 1 2008-11-13 21:52:38 +00:00
Aaron Giles
62a2f2fba0 This patch:
- removed unnecessary deprecat.h includes
- replaces Machine with existing running_machine* instances
- re-adds a peroid I accidentally removed when changed a message to
use defines
- adds a running_machine* to win_window_info and debugwin_info to get
rid of most Machine occurances and clean up the running_machine*
parameters I added in the past

[Oliver Stoeneberg]
2008-11-13 07:33:00 +00:00
Aaron Giles
cbd240d0de This patch replaces the Machine parameter where an running_machine *
is available and removes the deprecat.h where unnecessary.

[Oliver Stoeneberg]
2008-11-13 07:23:50 +00:00
Aaron Giles
4af530d9e8 Hooked up disconnected reset functions. 2008-11-13 07:11:52 +00:00
Aaron Giles
eb08400613 From AtariAce:
With Aaron's change to macroize the cpu apis, the cpu/sound interfaces
are now using different idioms.  This patch fixes that.  It uses the
prefix SND_ instead of SOUND_, to avoid changing SOUND_START,
SOUND_RESET in driver.h.  While working on it, I noticed that the
reset routines for k053260, msm5205, upd7759 and vlm5030 aren't hooked
up, but I decided this was an oversight and macroized the functions
anyways (but left them unhooked).
2008-11-13 07:07:54 +00:00
Aaron Giles
63d10ee9bf Massive API cleanup/change. The primary goal is that all CPU-
related APIs now take a device pointer instead of an index.
All functions that take a CPU device are prefixed with cpu_*
All functions that are globally related to cpu execution
are prefixed with cpuexec_*. Below is a list of some of the 
mappings:

  cpu_boost_interleave     -> cpuexec_boost_interleave
  cpunum_suspend           -> cpu_suspend
  cpunum_resume            -> cpu_resume
  cpunum_is_suspended      -> cpu_is_suspended
  cpunum_get_clock         -> cpu_get_clock
  cpunum_set_clock         -> cpu_set_clock
  cpunum_get_clockscale    -> cpu_get_clockscale
  cpunum_set_clockscale    -> cpu_set_clockscale
  cpunum_get_localtime     -> cpu_get_local_time
  cpunum_gettotalcycles    -> cpu_get_total_cycles
  activecpu_eat_cycles     -> cpu_eat_cycles
  activecpu_adjust_icount  -> cpu_adjust_icount
  cpu_trigger              -> cpuexec_trigger
  cpu_triggertime          -> cpuexec_triggertime
  cpunum_set_input_line    -> cpu_set_input_line
  cpunum_set_irq_callback  -> cpu_set_irq_callback

In addition, a number of functions retain the same name but
now require a specific CPU parameter to be passed in:

  cpu_yield
  cpu_spin
  cpu_spinuntil_time
  cpu_spinuntil_int
  cpu_spinuntil_trigger
  cpu_triggerint

Merged cpuint.c into cpuexec.c. One side-effect of this
change is that driver reset callbacks are called AFTER the
CPUs and devices are reset. This means that if you make
changes to the CPU state and expect the reset vectors to
recognize the changes in your reset routine, you will need
to manually reset the CPU after making the change (since it
has already been reset).

Added a number of inline helper functions to cpuintrf.h for
managing addresses

Removed cpu_gettotalcpu(). This information is rarely needed
outside of the core and can be obtained by looking at the
machine->cpu[] array.

Changed CPU interrupt acknowledge callbacks to pass a CPU 
device instead of machine/cpunum pair.

Changed VBLANK and periodic timer callbacks to pass a CPU
device instead of machine/cpunum pair.

Renamed all information getters from cpu_* to cpu_get_* and
from cputype_* to cputype_get_*.
2008-11-13 06:59:57 +00:00
Couriersud
00ac825a67 Fix state save in discrete sound
* sndindex now considered as well in state save
* expose discrete_sound_n_r(void *chip, ...) to enable accessing multiple discrete sound cores

Curt Coder, is this sufficient?
2008-11-12 22:12:44 +00:00
Couriersud
6fae8bbbfa abc_step and abc_reset now declared as DISCRETE_STEP( abc ) and DISCRETE_RESET( abc ) 2008-11-12 00:27:42 +00:00
Couriersud
08f0fa3f6c Transparent mc6545 phi1/pi2 addressing
* implemented support for phi1/phi2 transparent addressing
* added callback to communicate address back to driver

Implementation is not and can not be "clock" accurate since the timing is totally up to the hardware implementation. It is the main cpu and hardware which determines phi clocking and when data is written to video ram. The only support in the 6545 is that the update address is latched out to the ma lines during phi2.
2008-11-11 22:23:08 +00:00
Nathan Woods
2f64840531 Sync with MESS 2008-11-11 03:58:52 +00:00
Aaron Giles
c3d385fddd Converted TMS340x0 cores to be pointer-based. 2008-11-10 16:49:10 +00:00
Aaron Giles
5b96808e6d Fix compile error. 2008-11-10 16:01:18 +00:00
Aaron Giles
b5f1e96c98 Removed save_device pattern if favor of just accepting the
device from the reset.
2008-11-10 08:56:38 +00:00
Aaron Giles
6f4ee44948 Added CPU device parameters to all CPU callbacks except for the
context ones (which are going away), the disassembler (which should
have no dependencies on the live CPU), and the validity check.

Removed global token from all pointer-ified CPU cores that don't
have internal read/write callbacks (which still need to reference it).
2008-11-10 08:51:06 +00:00
Aaron Giles
92f3053105 Major cpuintrf changes:
* added a set of cpu_* calls which accept a CPU device object;
  these are now the preferred means of manipulating a CPU

* removed the cpunum_* calls; added an array of cpu[] to the
  running_machine object; converted all existing cpunum_* calls
  to cpu_* calls, pulling the CPU device object from the new
  array in the running_machine

* removed the activecpu_* calls; added an activecpu member to
  the running_machine object; converted all existing activecpu_*
  calls to cpu_* calls, pulling the active CPU device object
  from the running_machine

* changed cpuintrf_push_context() to cpu_push_context(), taking
  a CPU object pointer; changed cpuintrf_pop_context() to
  cpu_pop_context(); eventually these will go away

* many other similar changes moving toward a model where all CPU
  references are done by the CPU object and not by index
2008-11-10 07:42:09 +00:00
Couriersud
ce58dbba34 * Renamed mcs51_regs to mcs51_state_t
* Renamed mcs51 to mcs51_state

Shouldn't the state struct just be called cpu_state?
2008-11-09 22:39:33 +00:00
Couriersud
819a970684 Fix deleted CHECK_IRQ_LINES() 2008-11-09 22:38:41 +00:00
Couriersud
e7d938fa2b Formatting, identation
* the hd6309 is very similar to the m6809, cleaned up a bit for windiff & friends.
2008-11-09 22:18:17 +00:00
Couriersud
b8ae0cadbe i960 core switched to pointer state access 2008-11-09 21:51:12 +00:00
Couriersud
d6dedbdedf Converted i8x41 to use pointers for state access
Separated opcodes into i8x41ops.c
2008-11-09 20:38:33 +00:00
Jonathan Gevaryahu
bc72141598 s14001a.c: added chip pinout and operation notes. 2008-11-09 08:51:47 +00:00
Aaron Giles
9407fecd2d Populated tag and static_config parts of fake CPU device. Removed 'config'
parameter from CPU_INIT. Modified CPU cores to pull config from the device
static_config.
2008-11-09 07:12:24 +00:00
Roberto Zandona
70365a3886 i8x41: fixed missing space at the end of file 2008-11-09 06:23:36 +00:00
Couriersud
a65a044779 UPI-41/42 (still I8x41.c) changes:
* cpu/i8x41 should be renamed to UPI-4x, since UPI-41/42 was an intel chip family
  postponed for now until core moved to pointers.
* removed I8041 definition from mcs48
* removed I8x41 cpu definition and config struct
* added I8041, I8741, I8042, I8242 and I8742 cpus to i8x41.c
* added internal memory maps
* internal ram now uses DATA memory space
* updated drivers
* increased interleave to 70 in decocass. This fixes decocass hanging in countdown around 13
  No idea when this bug was introduced.
2008-11-09 02:09:40 +00:00
Aaron Giles
1e16c45212 Cleanups/version bump. 2008-11-09 01:04:37 +00:00
Aaron Giles
096529d2d8 From: Atari Ace [mailto:atari_ace@verizon.net]
Sent: Wednesday, November 05, 2008 8:22 AM
To: submit@mamedev.org
Cc: atariace@hotmail.com
Subject: [patch] Add ADDRESS_MAP_NAME macro

Hi mamedev,

In theory, MAME's interface macros should completely hide the naming
conventions from the drivers and sound/cpu cores.  So as an
experiment, I renamed all the core apis and looked to see what broke.
The most common api coupling was with address maps in the CPU cores,
which this patch addresses by introducing a new macro,
ADDRESS_MAP_NAME (mimicing what is done in devintrf.h).  There were a
handful of related problems in some drivers which this patch also
fixes.  Some remaining issues I left alone (laserdisk apis reference
rom, video_update, machine_config, ksys573 use of nvram_handler,
megadriv use of ipt), in principle all the apis need _NAME variants to
encode the conventions.

~aa
2008-11-08 21:06:35 +00:00
Aaron Giles
2ba1a99283 Added macros for all CPU callbacks to ease future changes.
Updated all CPU cores to use them.
2008-11-08 09:20:43 +00:00
Andrew Gardner
e8ec5637ac Rewrite of the Motorola DSP56k CPU core. (Andrew Gardner, PhilB, RBelmont)
* Added proper clock speed to plygonet.c and internal divider to dsp56k.c
* Fixed up disassembler add/sub, 05xx, and bsr ops.
* Handle mysterious uuuuF instruction found in plygonet add op.
* Partially implemented add, sub, mac, mpy, inc, cmpm, macr, asr16, jscc, lea, and movec ops.
* Added dual X memory read and data move with short displacement parallel moves.
2008-11-08 07:18:03 +00:00
Couriersud
eed3bdac15 Merged DS5002FP into MCS51
* Merged DS5002FP
* Disassembler now uses type specific memory names
* Merged DS5002FP disasm
* added 83C751 memory names to disassembler
* delete DS5002FP specific files
* removed unnecessary cpu callback in wrally
* DATA_MAP ==> IO_MAP in wrally
2008-11-07 22:44:14 +00:00
Aaron Giles
e1aca15f22 More 68000 cleanup. 2008-11-07 14:46:20 +00:00
Aaron Giles
127f85b517 Fixed 68020+ 2008-11-07 14:30:45 +00:00
Aaron Giles
c9d4c8dad4 Minor fixes. 2008-11-07 06:17:58 +00:00
Couriersud
e6b9dd6ef7 Fix a reg-ex replace issue - Thx Andrew Gardner! 2008-11-07 00:37:41 +00:00
Couriersud
e4550f0b66 "Pointer"-ified the 6502
* a perfect candidate for a code merge. Replication all over the place.
2008-11-07 00:07:57 +00:00
davidhay
42c486632b i386 seems to already be defined by the compiler? changed to _i386 2008-11-06 22:59:43 +00:00
Couriersud
bc35b2d9e9 Some more gcc 64bit tranquilizers 2008-11-06 22:53:42 +00:00
Couriersud
552fc58ce5 Fix 64 bit compile
* Aaron, please review my change.
2008-11-06 20:44:41 +00:00
Aaron Giles
b44da3b748 WARNING: This is a significant change. If you are risk-averse and
working on something, hold off syncing.

Defined macros for core CPU functions: CPU_INIT, CPU_RESET, CPU_EXIT,
CPU_EXECUTE, along with macros for the name and for calling, in the
spirit of the devintrf.h macros. More will come later.

Changed init, reset, exit, and execute interfaces to be passed a
const device_config * object. This is a fake object for the moment,
but encapsulates the machine pointer and token. Eventually this will
be a real device.

Changed the CPU IRQ callbacks to a proper type, and added a device
parameter to them.

Updated all CPU cores to the new macros and parameters.

Note that this changes the way we "pointer"-ify cores. I'll send an
update shortly.
2008-11-06 18:42:37 +00:00
Aaron Giles
1228d0ad9e Fixed a few issues caught by an MSVC compile (why doesn't gcc complain??) 2008-11-06 15:44:58 +00:00
Aaron Giles
bf2501e3b7 Removed a bunch of useless macros. Consolidated several others.
Standardized on MAME types. Defined uint/sint to be 32-bits
rather than all this target platform guessing about how many
bits are in an int.
2008-11-06 10:38:54 +00:00
Aaron Giles
67db279bb2 Fixed compilation issues with 68000 changes.
Began the process of pruning options from the 68000 core, hard-coding it
for MAME's needs. We've hacked on it sufficiently that it is no longer
generic, so this is a good opportunity to simplify the code so that it
can actually be followed.
2008-11-06 10:17:31 +00:00
Aaron Giles
31ae2af798 "Pointer"-ified the 68000. What a mess!
There are a few remaining globals; we'll get them later.
2008-11-06 09:32:27 +00:00
Aaron Giles
cfad1bef05 Re-added suspend/resume synchronization to fix a few games. 2008-11-06 07:08:18 +00:00
Aaron Giles
2e8af3ea7e "Pointer"-ified the ADSP-21xx core. 2008-11-06 07:01:14 +00:00
Aaron Giles
28d48b383c Fixed bug in new quantum code that could result in an invalid
interleave of 0 being used. Fixes problems with stv games.
2008-11-06 06:05:44 +00:00
Aaron Giles
c0770e14ce Changed core cycle computations to use div_64x32 instead of full 64-bit
divides. This involves tossing a few bits of resolution at divide time,
but should make no real difference in practice.
2008-11-05 16:52:52 +00:00
Aaron Giles
94233e688d Fix bad bug in scheduler quantum code. 2008-11-05 16:37:40 +00:00
Aaron Giles
a33640f46d Added concept of scheduling quanta to the timer system. Also added
means of setting the minimum useful scheduling quantum, and clamping
all quanta to that value.

Changed interleave/boost handling to use scheduling quanta instead
of timers.

Added machine parameter to cpu_boost_interleave.

Updated cpuexec to compute the "perfect" interleave value taking into
account the minimum number of cycles per instruction specified by the
CPU core. Updated Z80 core to indicate that the minimum cpi is 2. Fixed
incorrect minimum cpi in the 68020+ cores.

Simplified a bit of logic in cpuexec_timeslice.
2008-11-05 16:04:56 +00:00
Couriersud
82c3ffc153 "Pointer-ified" the mcs51 core 2008-11-05 00:10:21 +00:00
Couriersud
94e16603c5 "Pointer-ified" the mcs48 core 2008-11-04 23:19:16 +00:00
Aaron Giles
62d7168295 Pointer-ified the R3000 core. 2008-11-04 15:24:49 +00:00
Aaron Giles
d060c4694b "Pointer-ified" the Z80 core as an example for testing. 2008-11-04 14:57:03 +00:00
Curt Coder
7d4023e2c4 [MC6845] Reverted all changes. 2008-11-04 11:52:42 +00:00
Aaron Giles
79f8cc1cf8 From: Micko [mailto:mmicko@gmail.com]
Sent: Sunday, November 02, 2008 1:04 AM
To: Aaron Giles
Subject: Z80 CPU change

Hello Aaron,
 
For a long time there was undiscovered internal register (MEMPTR) inside Z80 CPU which was visible by using BIT n,(HL) instruction in undocumented bits of flag, in
last few months lot of things have been discovered by team of Russian programmers. There was a test on real machine which showed status of flags after each instruction.
I am sending you now patch for Z80 with MEMPTR implemented, there is also one more bug fixed (BIT 6,(XY+o) was not implemented good it used BIT 4,(XY+o) code).
 
As a proof that things are now valid, I am sending screens before patch on Z80 cpu core, and after with compare of results on real machine.
I am also sending you a TZX file (for ZX Spectrum) since tests are done inside that driver.
 
Please inform me about status. Hope this could fix some issues in drivers using Z80, since some games used this flags.
 
Regards,
Miodrag Milanovic
2008-11-04 06:10:20 +00:00
Aaron Giles
7d291c792f Re-inlined core attotime functions. This makes a significant difference
when running with high interleaves (~2x speed running Dig Dug at perfect
interleave).
2008-11-04 05:45:54 +00:00
Couriersud
bf4bfe8b86 Removed some printf debugging and added some more DS5002FP code 2008-11-03 23:08:38 +00:00
Aaron Giles
c6a7299b4e 02544: Dip Condition / Port Include limitation 2008-11-03 10:01:43 +00:00
Curt Coder
086cc0d047 [MC6845] Fixed display enable. 2008-11-03 09:56:09 +00:00
Aaron Giles
abf8eafc47 02607: frogs: Taking a screenshot in Frogs (Gremlin) exits the game with an error. 2008-11-03 08:31:39 +00:00
R. Belmont
8d3e0e1ba2 Small Naomi update
AICA: fix missing instruments in DTPK driver games [R. Belmont, Deunan Knute, kingshriek]

Naomi: unmapped words in the AICA address range must read as zero [R. Belmont]

With these changes Toy Fighter's music is much better.
2008-11-03 02:58:59 +00:00
Couriersud
17b6c56de9 74123 Fixes:
* Clear behaviour to follow datasheet.
* Avoid recursive calls when setting a/b/clear lines from callback
2008-11-03 01:16:39 +00:00
Couriersud
ec60d29846 Changed 74123 into a device 2008-11-02 21:55:06 +00:00
Aaron Giles
ffc97bd35d Cleanups and version bump. 2008-11-02 03:11:19 +00:00
Aaron Giles
4e80367366 Here's another MAME tidy patch. This one adds missing const/statics,
adds/removes entries in header files, and fixes a few potential
multisession issues by explicitly adding initializers.  asic65.c has
significant changes to accomodate using a struct instead of 16
variables, otherwise the changes in this patch are modest and obvious.

[Atari Ace]
2008-11-02 02:40:46 +00:00
Aaron Giles
d08215d8ee [Pugsy]
There's an issue with the debugger handling of the 6502 instructions as
there's a mismatch between the core and what the debugger shows.
The changes are detailed in the spreadsheets that I've attached that
compares the core to the dasm.


Attachments:

m6502fix.zip contains the diff file
6502 debugger disassembly changes.zip   contains an excel spreadsheet
(in both xls and xml formats) detailing the reasons/changes.
2008-11-02 02:38:50 +00:00
Aaron Giles
1763eae62b Fix NES APU to work with high sample rates (don't know the bug #) 2008-11-02 02:36:52 +00:00
Roberto Fresca
e03868c87a Ruleta RE-900:
Use pre-defined crystals. Added with notes to xtal.h.
Added missing layout file.
2008-11-01 01:17:55 +00:00
Couriersud
10b85f1efe More changes to timer 0 split mode 3 and how timer 1 operates than
* Quotes from the documentation added to the source as well
* Started DS5002FP integration
2008-10-31 22:49:33 +00:00
Andrew Gardner
c33d3a4f52 Rewrite of the Motorola DSP56k CPU core. (Andrew Gardner)
* Partially implemented move, asr4, and mpy ops.
2008-10-30 05:21:45 +00:00
Couriersud
7dd6c89221 Finally move cpu/i8051 to cpu/mcs51, rename files and some constants 2008-10-29 23:41:31 +00:00
Couriersud
e60a8d7bfe Fixed INT0 & INT1 interrupt line handling 2008-10-29 21:58:19 +00:00
Couriersud
a9afec7df4 More NEC V30 changes
* improved prefetch timing calculation
* prefetch timing now also used by V20 and V33
* moved some static variables into cpu context
* nec_reset now explicitly clears context variables
* all cpus now share nec_execute
2008-10-29 21:52:51 +00:00
R. Belmont
99b29738b8 Fix GCC 4.3 "array bounds exceeded" error in disc_flt.c.
Would whoever checked this in double-check my change?  I believe I got the intent of the code (which is not how it was written ;-) but I could be wrong.

--This line, and those belo

M    disc_flt.c
2008-10-29 03:42:33 +00:00
Couriersud
ed56a340c0 Prefetch timing
* currently only for V30
* necessary to get lohtb2 working - somebody virtually counted cycles here
2008-10-29 03:11:17 +00:00
Derrick Renaud
65d187ecf2 More Discrete module optimizations.
Added optimized custom mixer to Donkey Kong.
2008-10-29 01:59:44 +00:00
Couriersud
0a82f62644 Removed another speed hack and renamed "FETCH" to "FETCH()"
* Macros used as functions should look like functions
* Preparation for opcode prefetch timing
2008-10-29 01:22:59 +00:00
Curt Coder
342fa7a26c [MC6845] Fixed skewing and display area. 2008-10-28 16:05:54 +00:00
Andrew Gardner
5b5edd9eb9 Rewrite of the Motorola DSP56k CPU core. (Andrew Gardner)
* Partially implemented tfr op.
* Polygonet now allows test mode to be run for a few seconds.  Most IO is now known, though coin2 is still a mystery.
2008-10-28 14:44:07 +00:00
R. Belmont
eb91a91308 YM2608/2612: applied latest fixes/discoveries [Eke-Eke, Nemesis]. 2008-10-27 13:39:01 +00:00
Andrew Gardner
db51d2ca3c Rewrite of the Motorola DSP56k CPU core. (Andrew Gardner)
* Partially implemented inc24, asl4, bcc, brkcc, and doForever ops.
* Added code for parallel address register update.
2008-10-27 03:53:23 +00:00
Couriersud
76182c3f9c MCS51 additions
* Implemented cmos features: powerdown & idle
* Added comments about special function registers on Philips 80C52
* cleaned up reset routines
2008-10-26 12:35:47 +00:00
Couriersud
9be049b4b2 According to Philips, 80C31 is a 80C52 family member with 128K internal ram and no rom 2008-10-24 21:53:09 +00:00
Couriersud
b1e8ff0a3e Implemented 80C52 interrupt handling
* mcs51 core now supports 4 interrupt levels depending on cpu type
2008-10-24 21:23:41 +00:00
Wilbert Pol
d64bda5e94 Updated nes pcm dma to read data through the cpu address map. 2008-10-24 21:15:49 +00:00
Couriersud
a4059f19ad Fixed split timer mode
* Credit: Jim Stolis
* No interrupts for timer 0 modes 0,1,2 while timer 1 in mode 3
2008-10-24 17:45:42 +00:00
Aaron Giles
7f39a3503c Cleanups and version bump. 2008-10-23 09:15:58 +00:00
Aaron Giles
410a99b10d From: Phill Harvey-Smith [mailto:afra@aurigae.demon.co.uk]
Sent: Fri 10/17/2008 11:45 AM
To: submit@mamedev.org
Subject: 65c02 core bugfix
Hi,

This patch fixes a subtle bug in the 65c02 emulation where the result of
the BIT instruction  differs on the 65c02 (from the 6502), when executed
in immediate mode.

Cheers,

Phill.
2008-10-23 08:47:52 +00:00
Aaron Giles
c97fe8b6bb 01722: sokonuke: Game hangs after you choose stage 2008-10-23 08:44:21 +00:00
Aaron Giles
a882bc8050 Silenced an annoying log message. 2008-10-23 08:22:49 +00:00
Curt Coder
dab7aa732b Added crystal value. 2008-10-22 18:10:57 +00:00
Andrew Gardner
40a5d0c543 Rewrite of the Motorola DSP56k CPU core. (Andrew Gardner)
* Implemented tst, or, jsr, rti, tst2, and 2 new movec ops.
* Added opbase handler to plygonet.c
2008-10-22 04:15:30 +00:00
Phil Bennett
40520a87cd Fix MT 02140: "cube quest crashes mame when saving state" 2008-10-21 20:42:56 +00:00
Couriersud
8eecd6745c More mcs51 updates
* Remaining games checked and adapted to changes in cpu core 
 * Cardline still broken. I need the exact and complete cpu name.
 * Added more variants 803X, 80CXX, AT89C4051
 * Fix segas18.c (segaic16.c) mcu maps. 
 * Fix sslam.c 
 * Fix limenko.c videopkr.c : Issue with core allocation of ram (duplicate savestate)
2008-10-20 23:42:09 +00:00
Couriersud
3b0ee27f97 mcs51/i8051 - please credit Jim Stolis as well
* fix timer 2 interrupts
* implement serial mode 2/3 rx and tx clock handling
2008-10-20 19:23:58 +00:00
Curt Coder
daea45ca62 [MC6845] Hsync should be pulsed even when vsync is active. 2008-10-20 17:42:38 +00:00
Aaron Giles
13ad68bca4 New games added: Grudge Match (Yankee Game Technology)
Yet another 8-bit Incredible Technologies board. Different in several
significant ways from previous models:
 * YM2608B for audio, replacing YM3812+OKI6295
 * TMS34070 for palettes instead of PC RAMDAC
 * Different video memory layout
2008-10-20 15:34:27 +00:00
Couriersud
a7da02e00e MCS51/I8051 overhaul, micro3d improvements and full m72 protection emulation for lohtb2
* improved serial port timing (f15se (micro3d.c) sound board now works)
 * better infrastructure for adding more variants like DS5002
 * Fixed port reading
 * Rewrote Macros for better readibility
 * Fixed and rewrote Interrupt handling
 * Now returns INTERNAL_DIVIDER, adjusted cycle counts
 * Remove unnecessary and duplicated code
 * Remove unnecessary functions
 * Rewrite to have sfr-registers stored in int_ram. 
 * Debugger may now watch sfr-registers as well.
 * implemented interrupt callbacks (HOLD_LINE now supported)
 * Runtime switch for processor type - remove ifdefs
 * internal memory maps for internal rom versions (internal ram now displayed in debugger)
 * more timer cleanups from manual
 
micro3d:
 * serial port communication between main cpu and sound board works
 * sound board now works
 
m72 - lohtb2:
 * full emulation of protection device
 * Samples are now piped through the mcu
2008-10-19 22:06:47 +00:00
Andrew Gardner
9014e91a62 Rewrite of the Motorola DSP56k CPU core. (Andrew Gardner)
* Added additional branch, move and bitfield ops.
* Plygonet now passes its memory test and uploads a new program.


[[Next step is to install an opbase handler and let the dsp56k run further into its new proggie.]]
2008-10-19 17:14:14 +00:00
R. Belmont
9fc7f46095 AICA: fix sample addressing for the full 8 MB [kingshriek]. 2008-10-19 15:06:20 +00:00
davidhay
84dd8639d8 cleaned up STV rom loading a bit 2008-10-18 22:07:30 +00:00
Andrew Gardner
e138837002 Rewrite of the Motorola DSP56k CPU core. (Andrew Gardner)
* Complete rewrite focusing on legibility and extensibility.
* 27/121 opcodes (mostly) implemented.
* Bugfix for reset status of interrupt priority bits.
* Bugfix for disassembly of register-to-register parallel data move.


[[These changes bring the driver up to the point where the plygonet hardware begins banking memory.  The behavior is understood, so I should have the driver back to where it was before the rewrite soon.  Then real progress can be made.]]
2008-10-18 18:10:59 +00:00
davidhay
090ab6fe44 Removed per-game hacks from CPS3 (moved to DMA callback in SH2 core)
(also added a to-check note, 16-bit wide DMA is currently using 32-bit functions, is this correct?)

Removed Speedups from CPS3 / PsikyoSH, while they do still give a decent speed boost they're not really needed with the DRC and just clutter the code.
2008-10-18 14:44:20 +00:00
Curt Coder
298dd21606 MC6845:
- added cursor and display enable skewing
- added preliminary support for SY6545-1's transparent addressing mode
2008-10-16 17:09:58 +00:00
Aaron Giles
7d3221dcf3 Cleanups and version bump. 2008-10-16 08:59:25 +00:00
Aaron Giles
5bcb95dff7 From: Phill Harvey-Smith [mailto:afra@aurigae.demon.co.uk]
Sent: Saturday, October 11, 2008 12:01 PM
To: submit@mamedev.org
Subject: 6821 PIA changes

Hi,

Can this change be added to the 6821 pia code, it adds a function that 
allows the client code to get the status of CA2, taking account of the 
internal pull up resistor. This code only adds a function and does not 
change any existing code so should not have any impact on existing
drivers.

This change is needed for a couple of the mess drivers.

Thanks.

Phill.

-- 
Phill Harvey-Smith, Programmer, Hardware hacker, and general eccentric !
2008-10-16 07:19:16 +00:00
Angelo Salese
f4e0931b93 Fixed the colors of Yumefuda.
Added two new palette functions in generic.c: paletteram_xRRRRRGGGGGBBBBB_split1_w() and paletteram_xRRRRRGGGGGBBBBB_split2_w() (used by Yumefuda)
2008-10-14 18:31:05 +00:00
Aaron Giles
85e3077616 Connected firefox audio enables. 2008-10-13 17:17:07 +00:00
Curt Coder
3d85b66c5e Added pinout, not worth mentioning in whatsnew. 2008-10-13 14:16:07 +00:00
Aaron Giles
0fddfa1a44 Cleanups and version bump. 2008-10-13 08:38:32 +00:00
Aaron Giles
cbc146d0a9 Minor tweak to fix initial attract mode timing. 2008-10-12 05:37:42 +00:00
R. Belmont
864820d8ad Fix Mantis #02211
PsikyoSH: hook up VBL IRQ ack
SH2: fix DRC's handling of internally generated IRQs
SH2: fix compiling in interpreter mode
2008-10-12 00:05:13 +00:00
Aaron Giles
1a720bdf32 Changed Cube Quest laserdisc override logic. It's still a little hacky but
this works better than the previous attempt.
2008-10-10 14:41:22 +00:00
Aaron Giles
fa433938c0 02512: dkong: Artwork and gameplay area are getting squished/distorted
02511: dkong: Donkey Kong crashes after quiting
2008-10-10 05:25:45 +00:00
Aaron Giles
d3ab17e0e3 Cleanups and version bump. 2008-10-09 15:29:22 +00:00
Aaron Giles
ca7e069f29 02479: Various: Memory leak 2008-10-09 09:14:07 +00:00
Aaron Giles
0329403bae 02488: All sets with using 2+ monitors: Crash to desktop on second play
02439: tx1: TX1 quits out on second launch
02266: tceptor: Thunder Ceptor crashes out when run as the second game
2008-10-09 09:11:42 +00:00
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
R. Belmont
dae4b631d7 SH4, Naomi, and Hikaru updates [Samuele Zannoli]
- Fixed SH-4 core to support multiple SH-4s
- Fixed LDCSR instruction
- Fixed SH-4 I/O ports
- Skeleton Hikaru driver with memory maps and both SH-4s
- Fixed JVS/Maple translation so Naomi 2 BIOS runs
2008-08-27 02:22:58 +00:00
Aaron Giles
cd299d9f8e Significant cleanup/rewrite of the MCS-48 CPU core:
* removed redundant and unused definitions from header file
 * renamed constants and functions to be MCS48* prefixed
 * re-verified all opcode behaviors and timing
 * changed illegal opcodes to count 1 cycle to avoid infinite loops
 * changed EA behavior so that it is a push from the driver instead of a pull on each opcode fetch 
    (this may change further in the future). 
 * reimplemented IRQ generation and timer behavior according to documentation
 * updated all drivers accordingly
 * fixed several uses of PULSE_LINE, which no longer works
2008-08-26 22:58:45 +00:00
Nicola Salmoria
4ecbf842e9 Added new function tilemap_set_pen_data_offset().
While this isn't 'free' as tilemap_set_palette_offset() is (when the offset changes, the pixmap cache needs to be invalidated), it helps removing some redundant code from drivers.

Updated snk.c and snk68.c to take advantage of the new function.
2008-08-26 18:40:12 +00:00
Aaron Giles
7f8e52388e 02147: Annoying behaviour of highlighted entries in minimal UI 2008-08-26 04:43:47 +00:00
Aaron Giles
ba60161f97 i8039 -> mcs48 2008-08-26 04:38:50 +00:00
Couriersud
96d622b677 rendersw.c: Added more comments
* fix clamping bug introduced by my last update
2008-08-25 20:10:08 +00:00
Roberto Zandona
58be08f089 fix TSY instruction in M4510 cpu (used in MESS) 2008-08-25 19:32:46 +00:00
Aaron Giles
3d339e51f7 Changed i8039 core to use the data address space for internal RAM.
Register access is still performed using direct memory accesses,
but the pointers are fetched through the memory system. Now you can
see i8039 RAM in the debugger. Added internal memory maps of the
appropriate size so that drivers don't need to declare this RAM.

Added a number of variants from the MCS-48 family as it was not
clear which variants had what capabilities. All documented variants
now have internal memory maps for internal ROM and RAM. Removed
memory maps from drivers using embedded ROM/EPROM/OTPROM since
they are defined by the core now.

Added some initial logic to boot and run the PR-8210 ROM (i8049)
in ldplayer.c. Currently this is disabled behind a compile-time
switch. Once this is working, the plan is to incorporate this into
the existing PR-8210 emulation, but we're not there yet.
2008-08-25 15:32:14 +00:00
Aaron Giles
4db67471be MSVC fixes. MSVC cannot handle offsetof(struct, member[index]); once an
array is involved, it seems to think it is not a constant expression.

Added MDRV_DEVICE_CONFIG_DATA32_EXPLICIT() macro which takes an explicit
size and offset. Changed MDRV_DEVICE_CONFIG_DATA32() to be built off of
this macro. Added MDRV_DEVICE_CONFIG_DATA32_ARRAY() and
MDRV_DEVICE_CONFIG_DATA32_ARRAY_MEMBER() which do explicit computations
of the offset to work around MSVC's problems.

Replicated these changes for DATA64 and DATAPTR macros. Updated latch8.h
to use the new macros.
2008-08-25 15:13:48 +00:00
smf-
8fc5baaaab Improved dip switch emulation in zn.c, ram hacks to get games booting are no longer required.
Added gun emulation for judge dredd.
Fixed judge dredd ide emulation when building with visual studio.
Mapped primal rage 2 inputs
Mapped player 3 & 4 inputs for 1 on 1 government, these are now the default with the 6 button inputs only mapped for games that need them.
Converted AT28C16 to a device.
Added preliminary support for devices to load/save nvram.

New games added or promoted from NOT_WORKING status

Super Football Champ (Ver 2.5O)
Super Football Champ (Ver 2.4J)
Magical Date / Magical Date - dokidoki kokuhaku daisakusen (Ver 2.02J)
Fighters' Impact (Ver 2.02O)
Judge Dredd (Rev C Dec. 17 1997)
Judge Dredd (Rev B Nov. 26 1997)
2008-08-25 09:52:26 +00:00
Couriersud
5e6fdaec16 Slight optimization of ycc_to_rgb 2008-08-24 23:41:46 +00:00
Couriersud
4d444b5b4a latch8: Renamed MDRV_LATCH8_MASK and added MDRV_LATCH8_INVERT
* renamed MDRV_LATCH8_MASK to MDRV_LATCH8_MASKOUT to clarify meaning
* Added MDRV_LATCH8_NOSYNC to specify which lines do not reed a cpu sync
* Updated drivers

The MDRV_LATCH8_NOSYNC is not used in dkong.c. All latches need synchronization
because at least one line does need a cpu synchronization.
2008-08-24 17:39:06 +00:00
Roberto Zandona
65a96e4f7a some fix for m4510 core 2008-08-24 11:55:22 +00:00
Roberto Zandona
bfc0c6a5b2 some fix for m4510 core:
- banking in read and write operations
- jsr and jsrx instruction
2008-08-23 10:00:59 +00:00
Couriersud
d8d031e8d3 Adds new generic latch device
8 bit latch interface and emulation
    
    Generic emulation of 74LS174/175, 74LS259 and other latches.
    Apart from providing synched latch operation, these
    latches can be configured to read their input bitwise from other
    devices as well and individual bits can be connected to
    discrete nodes.
    
    Please see audio/dkong.c for examples.
2008-08-22 21:25:49 +00:00
Couriersud
9ff05871dc discrete.c: Added save state for node->output
* Ensures that input nodes survive save states
2008-08-22 11:05:21 +00:00
Derrick Renaud
8a8e197eae added Discrete Sound for Starship 1. I still need to properly emulate the MC3340. 2008-08-22 03:51:26 +00:00
Aaron Giles
7521888dd7 Added PR-8210 support to the ldplayer. Fixed step forward command on the PR-8210.
02136: cubeqst: from minimal UI cubeqst requires the optional CHD 
02127: xymg: The game name should be Xing Yun Man Guan and "Pin Yin:"should be omitted 
02138: flamegun: Debugger/Cheat System upper case cpu tag of MAIN doesn't work 
02139: In audio/system16.c, there is a reference to REGION_SOUND1 
02133: chindrah: The title of Zhong Guo Long?(Hong Kong,V011H) is Dong Fang Zhi Zhu(Hong Kong, V011H) 
02126: corrupt CHDs are reported as missing
2008-08-22 02:43:32 +00:00
Nathan Woods
ef062182ce Fixed problem that would cause the "Return To Prior Menu" menu item to not stick
if one is calling ui_menu_reset() with UI_MENU_RESET_REMEMBER_POSITION, and that
menu item is selected
2008-08-21 11:26:37 +00:00
Couriersud
772082e0b8 devintrf.c: add devtag_get_device(machine, type, tag) to retrieve the device_config for (type, tag)
* This is needed, if you need to read a device or device status outside a AM_DEVREAD context.
2008-08-20 21:15:01 +00:00
Nicola Salmoria
12269d8aa7 added 8303 ROM to the games using it and updated MCU simulation to match the new findings 2008-08-20 12:00:14 +00:00
Nathan Woods
57d3cb91e3 MESS-specific fixes 2008-08-20 11:31:21 +00:00
Aaron Giles
0941eb004e Fix m68k irq line support.
Before this patch a:
      cpunum_set_input_line(5, ASSERT_LINE);
      cpunum_set_input_line(3, ASSERT_LINE);
      cpunum_set_input_line(3, CLEAR_LINE);
    
    loses the state of line 5.  This patch fixes it by adding an explicit
    but optional "virtual irq line" support to the 68k interface.

    Fix m68k interrupt handling by some drivers.
    
    Clearing the NMI line to clear all the IRQ lines worked, but it just
    doesn't make sense.  Now that the irq lines are really independant,
    the handling can be simplified.
2008-08-20 02:11:14 +00:00
Derrick Renaud
384422ee09 Discrete cleanups and fixed discrete logging. 2008-08-20 01:02:57 +00:00
Wilbert Pol
38a811b727 Some MESS specific fixes. 2008-08-19 19:18:43 +00:00
Nathan Woods
15969c0428 Readded generic calls to install memory handlers that were in long before
0.126u5 - these are useful on the MESS side for things like the PC driver
2008-08-19 11:13:43 +00:00
Aaron Giles
0523e9feb7 Cleanups and version bump. 2008-08-19 07:31:55 +00:00
Aaron Giles
8b8585328c From: Christophe Jaillet [mailto:christophe.jaillet@wanadoo.fr]
Subject: Profiler related
Hi,

here is a smalll patch that :
   - remove include "profiler.h" to files that do not use profiling function
        * emu/machine/laserdsc.c
        * osd/windows/video.c

    - use PROFILER_USER2 instead of PROFILER_USER1 in mame/video/tx1.c
      USER1 was used twice, USER3 once. I guess that USER1 should be used
only once and USER2 used in the 2nd place

   - remove unused MACRO in emu/memory.c

Best regards,
Christophe JAILLET
2008-08-19 06:13:26 +00:00
Aaron Giles
13a3d3fb89 From: Oliver Stoeneberg [mailto:oliverst@online.de]
Subject: Various cleanups

A couple of minor cleanups sitting on my disk for a while:
- removed obsolete ENABLE_DEBUGGER occurance
- removed more unprintable characters in SH-2 disassembler
- memset() usage cleanups
- removed duplicated TMS5110 entry in sound.mak
- use machine in uigfx.c where it's already available
2008-08-19 06:10:43 +00:00
Aaron Giles
de5cd6e5a8 Added cheat functions frombcd() and tobcd() to convert numbers to/from
BCD format. Changed "Activate" to "Set" in the menus.
2008-08-19 06:08:24 +00:00
Aaron Giles
719eca9c82 Added validity check to ensure that ports referenced by a condition
actually exist. Fixed a case where this was violated.
2008-08-19 05:12:45 +00:00
Aaron Giles
6c21097922 Added validity check to ensure that AM_READ_PORT() macros reference
valid ports. Fixed several cases where the check failed.
2008-08-19 04:33:19 +00:00
R. Belmont
7d762634aa Reduce YM2612 DAC level relative to FM. This better matches real hardware. 2008-08-19 02:21:37 +00:00
Aaron Giles
2e422e5b72 Final SHA1 for Cube Quest. 2008-08-19 02:13:32 +00:00
smf-
e334a63782 reverted unit mask changes and removed the unused & unsafe memory_install functions. 2008-08-18 12:08:08 +00:00
Roberto Zandona
3d33c20559 modified 68681 to return 0xff if input port is NULL 2008-08-18 06:31:15 +00:00
Aaron Giles
284b5a0d95 Added new generic laserdisc VIDEO_UPDATE handler to the laserdisc code.
This handler works for both disc-only games and those with overlays. 
For disc-only games, the base macro is sufficient. For games with 
overlays, an additional set of configuration macros are provided:

   MDRV_LASERDISC_OVERLAY - specifies update function, width, height,
      and bitmap format of the overlay
   MDRV_LASERDISC_OVERLAY_CLIP - specifies the visible area of the
      overlay bitmap
   MDRV_LASERDISC_OVERLAY_POSITION - specifies default x,y position
   MDRV_LASERDISC_OVERLAY_SCALE - specifies default x,y scale factors

The update function provided to MDRV_LASERDISC_OVERLAY is identical to
a normal VIDEO_UPDATE callback, so a standard one can be used. All
existing laserdisc drivers have been updated to support this new
rendering mechanism, removing much duplicated code.

Added the ability to configure the overlay position and scale 
parameters at runtime. Added OSD menus to control them. Added logic
to save/restore the data in the game's configuration file.

Added new macros MDRV_LASERDISC_SCREEN_ADD_NTSC and _PAL, which
defines a standard screen with the correct video timing characteristics
and update function for laserdiscs. Updated all drivers to use these
macros instead of defining their own screens.

Added DISK_REGIONS to all laserdisc drivers.

Added DISK_IMAGE_READONLY_OPTIONAL to support games (like Cube Quest)
where the disk is non-essential to the game's operation.

Fixed bug in identifying the custom sound driver for the laserdisc.

Updated ldverify to identify blank regions of the disc for post-
processing.

Fixed rendering 16bpp with alpha using bilinear filters (fixes
screenshots of laserdisc games with overlays).

Included support for parsing .gdi files in chdman. [ElSemi]

Added new driver for Cube Quest. This includes CPU cores for the three
bitslice processors, as well as laserdisc support for the hacked
laserdisc that was used to drive the games. 
[Philip Bennett, Joe Magiera, Warren Ondras]

Note that the SHA1/MD5 for the laserdisc will likely undergo at least
one more change before being finalized.
2008-08-18 04:31:08 +00:00
Roberto Zandona
0a0a3ef383 fixed INT_ACK initialization 2008-08-17 17:24:55 +00:00
Wilbert Pol
ab1030258c Some MESS specific changes 2008-08-17 15:02:15 +00:00