Commit Graph

1150 Commits

Author SHA1 Message Date
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
smf-
3297ac117d identified compatible timekeeper used by midway zeus ii.
removed all the timekeeper memory handlers, except for 8 bit & changed the drivers to use the conversion built into the memory system.
2008-08-17 11:47:26 +00:00
smf-
5c5337424a Added unit mask to all memory installs that override the bus width. You couldn't install a handler with a different width before, as it complained about the lack of the unit mask. So I've assumed it's safe for all current calls to be changed to the one that picks up the cpu bus width. 2008-08-17 10:15:22 +00:00
R. Belmont
f118954dc5 Split out SH-4 non-interpreter-specific stuff to sh4comn.c. 2008-08-17 04:44:02 +00:00
R. Belmont
a6210713da SH-2 DRC updates:
- Moved IRQ handling front-end into recompiled code
- Added TSTM/ANDM/XORM instructions
- Added SH-1 CPU support, including lower precision on MAC.W and locking out SH-2 only instructions
2008-08-16 16:50:41 +00:00
R. Belmont
9c671d6ecf 64-bit GCC fix. 2008-08-16 16:47:03 +00:00
R. Belmont
d8a88c5084 Added save states to 65816 CPU. 2008-08-16 16:46:24 +00:00
smf-
bd3ba85c50 changed at28c16 memory handlers to 8 bits and perform the conversion in the memory mapping. 2008-08-15 20:11:15 +00:00
Roberto Zandona
9c68b61e38 implemented read operation of MRA and MRB in 68681 device (this command is necessary for adp games) 2008-08-14 19:12:47 +00:00
R. Belmont
4303262b04 Another 64-bit GCC fix. 2008-08-14 13:14:46 +00:00
R. Belmont
06c0d541ed Another one... 2008-08-14 13:13:40 +00:00
R. Belmont
841c0ce03a Another 64-bit GCC fix. 2008-08-14 13:10:34 +00:00
Aaron Giles
224eb1f58b Cleanups and version bump. 2008-08-14 08:05:35 +00:00
Aaron Giles
2e7d262931 02113: xymg: xymg title mispelled
02110: All sets in cps3.c: video from a DV cam proves the refresh rate of CPS3 in MAME is wrong 
02095: chqflag, chqflagj, -listxml: memory leaks
2008-08-14 07:36:27 +00:00
Aaron Giles
2ec0fea9c2 From: Atari Ace [mailto:atari_ace@verizon.net]
Subject: [patch] Collapse timer callbacks

Hi mamedev,

The following patch collapses timer callbacks in some cases to avoid
duplicating code.  In the case of crystal.c, it also refactors two DMA
handlers and shuffles the init/reset code around a bit.  I noticed
while doing this that h8_itu_read8 is missing cases 0x96,0x97 which is
almost certainly a bug, but I left it alone.

~aa
2008-08-14 06:27:52 +00:00
Aaron Giles
0921968934 From: Atari Ace [mailto:atari_ace@verizon.net]
Subject: [patch] Fix i386 bsr implementation

Hi mamedev,

The i386 cpu emulator will return the wrong result for bsr when the
highest bit is set (0 instead of 15 or 31).  The attached patch fixes
this.

~aa
2008-08-14 06:21:31 +00:00
Aaron Giles
51c1079953 From: Atari Ace [mailto:atari_ace@verizon.net]
Subject: [patch] Fix 1802 cybrcomm, raveracw, raveracj, raveraja,
ridgerac, ridgerab, ridgeraj, acedrvrw, victlapw: No sound in games
after reloading via the MAME UI

Hi mamedev,

The problem with namcos22 games losing sound when running multisession
is actually an m37710 cpu initialization bug.  The attached patch
fixes it, and also collapses all the timer callbacks together as an
unrelated code cleanup.

Note: namcos22 has a lot of uninitialized state, so I wouldn't be
surprised if there are other multisession issues.
2008-08-14 06:13:56 +00:00
Aaron Giles
15893eeed0 Fixed includes of rescap.h. 2008-08-14 04:51:04 +00:00
Aaron Giles
a0574bb473 Moved several include files from mame/ to emu/, as they were
included by generic components in emu/ and thus should have no
dependencies on the MAME code.

Added new target ldplayer, which is based on MAME but serves as
a standalone laserdisc player for CHDs. Right now only the
Pioneer LD-V1000 is connected, and limited commands are available.
Each player type is a driver, so you specify the player type on
the command-line. The driver then opens the first CHD it finds
in your ROM path and uses that as the laserdisc. The intention is
that you specify the -rompath each time on the command-line, so
a typical approach might be:

   ldplayer ldv1000 -rompath j:\mach3

where it will pick up the mach3.chd lurking in your j:\mach3
folder. Several basic commands are supported:

   Space = play/pause
   Alt   = toggle frame display
   Left  = scan forward (when playing) or step forward (when paused)
   Right = scan backward (when playing) or step backward (when paused)
   0-9   = enter numbers for search
   Enter = execute search to frame
2008-08-13 15:09:08 +00:00
Aaron Giles
480df37d02 Added new flag to menu items: MENU_FLAG_DISABLE, which means the
item will be visible but not selectable.

Fixed bug that prevented the cheat engine from working when the
debugger was disabled.

Modified xmlfile.c to accept integer values in decimal or hex. The
default is decimal. Numbers may be prefixed by '#' for decimal
values, or by '$' or '0x' to indicate hexadecimal values. Also
added function xml_get_attribute_int_format() to return the format
of the attribute, so that it can be later replicated.

Updated cheat parser to preserve the format of attribute values
used for cheat parameters and items.

Added support for information-only cheat items, which will be
displayed in the menu but which are not selectable and have no
action associated with them. Empty information-only items are
automatically converted to menu separators.
2008-08-13 04:55:42 +00:00
R. Belmont
04239409b0 SH2DRC: Allow delay slot of a BSR to trash the PR if it wants. (Manis 2059) 2008-08-13 03:58:02 +00:00
Derrick Renaud
1daf41e218 Final CPU header updates. Mostly just re-naming the re-inclusions.
The structures/names were getting too complex for my macros to handle.  They would require hand editing and my computer is too slow to keep re-compiling.

Passes a clean compile.
2008-08-13 02:48:52 +00:00
davidhay
216a0b5c3b fix broken compile. 2008-08-12 22:28:40 +00:00
Aaron Giles
111a34fea5 Added video level detection and reporting to ldverify.
Removed channels parameter from avcomp decode configuration.

Fixed incorrect test in winwork that led to spinning instead
of using the nicely allocated events we had on hand.

Forced a sound synchronization on each vsync in the laserdisc
playback. This prevents overwriting the tail end of the
buffer which was fouling up the MACH 3 audio decoding.

Removed obsolete size check for uncompressable audio data.
2008-08-12 17:37:53 +00:00
Nicola Salmoria
82494e9da3 updated Alpha 8302 MCU simulation to match newly dumped internal ROM.
Added the ROM to Champion Baseball 2.
2008-08-12 14:50:34 +00:00
Aaron Giles
a85c4c754d Rejiggered huffman.c to support multiple interleaving
streams and a delta-RLE pre-encoding. Added optimized
case for the Y/Cb/Y/Cr video encoding case. Cleaned up
the code.

Updated avcomp.c to use the new huffman.c functions.
Reworked configuration options to allow for both input
and output of naturally aligned data streams. Updated
chdman and laserdsc to use the new interfaces. New
compression gives an additional 3-7% over previous
attempt and compresses the dummy CHDs down significantly.
2008-08-12 09:24:22 +00:00
Derrick Renaud
d5d5d9449b structure, lower-casing functions and re-inclusion updates of the src\emu\cpu headers J - M. 2008-08-12 03:40:09 +00:00
Derrick Renaud
3c2b00d332 structure, lower-casing functions and re-inclusion updates of the src\emu\cpu headers up to I.
It's mostly just re-inclusion renaming, but there are few other re-nameings.
2008-08-11 03:06:59 +00:00
Derrick Renaud
3710253aa7 This (mostly - see below) completes the structure, lower-casing functions and re-inclusion updates of the src\sound\emu headers.
I did not do much to the following files because I did not know the best way to name them.
aicadsp.h
sid.h
sidenvel.h
sidvoice.h
ymdeltat.h

I did not update structures only used in the src\emu\sound\*.c files.  They are only used locally in the file so they were not worth the effort.
2008-08-11 00:32:08 +00:00
R. Belmont
3fd8c0941b More FM OPN fixes [Eke, R. Belmont]
- Pass chip type around and restore Jarek's original behavior for YM2203/YM2610
- Always recalculate attack rate in set_ar_ksr, fixes Megadrive/Genesis "Batman & Robin"
2008-08-10 04:00:31 +00:00
Derrick Renaud
4f0cddd1a5 Updated src\emu\sound headers from K-S, so they use latest naming/structure and re-inclusion support. Also lowercased the handler names.
What a PITA.  :)  I'll have to go back and do A-J to lower case the handlers to match the new structure names I already did.

Sorry Mess and other port developers, but the code should match what is stated on the official WIKI.  But don't worry, I don't plan on updating anything but the sound cores.
2008-08-10 02:23:43 +00:00
Derrick Renaud
629498ef38 more sound core structure/renaming updates.
You may have to do a clean compile, or delete the affected driver object files.

struct C140interface       to c140_interface
struct cem3394_interface   to cem3394_interface
struct ES5503interface     to es5503_interface
struct ES5505interface     to es5505_interface
struct ES5506interface     to es5506_interface
struct ssg_callbacks       to ssg_callbacks
struct gaelcosnd_interface to gaelcosnd_interface
struct ics2115_interface   to ics2115_interface

I'll stop until my posted question about chip names and upper case is answered.
2008-08-09 05:28:19 +00:00
Derrick Renaud
e6cf588405 Some more structure/naming updates of sound cores.
FWIW, I first check for variables named name_interface and rename them as name_cofig, so they don't conflict with the new interface names.

struct YMF262interface  to ymf262_interface
struct YM2151interface  to ym2151_interface
struct YM2203interface  to ym2203_interface
struct YM2608interface  to ym2608_interface
struct YM2610interface  to ym2610_interface
struct YM2612interface  to ym2612_interface
struct YM3812interface  to ym3812_interface
struct Y8950interface   to y8950_interface
struct YM3526interface  to ym3526_interface
struct TMS5110interface to tms5110_interface
struct TMS5220interface to tms5220_interface
struct AICAinterface    to aica_interface
2008-08-09 00:55:07 +00:00
Derrick Renaud
7ea948666a lower cased sn76477_interface and ay8910_interface 2008-08-08 16:32:55 +00:00
Derrick Renaud
cc94c8207d Updated structure and naming conventions of the following sound interfaces.
struct CustomSound_interface to custom_sound_interface
struct Samplesinterface to samples_interface
struct SN76477interface to SN76477_interface
struct AY8910interface to AY8910_interface
2008-08-08 01:50:00 +00:00
R. Belmont
eec9dab98d Fix GCC warning. 2008-08-07 16:51:31 +00:00
Aaron Giles
b40a4f5531 Cleanups and version bump. 2008-08-07 16:02:05 +00:00
Aaron Giles
9df01a2896 Added expression validation callback to verify names for CPUs and
memory regions. Extended error codes to report incorrect memory 
spaces, memory names, or memory sizes. Added verification callback
to the debugger to validate CPU and memory region names, as well
as verifying that a requested address space exists for a given
CPU.

Added support for oneshot cheats (those with only an "on" script).
They are activated via UI_SELECT in the cheat menu, and pop up a
message when activated. Also added a "Reset All" item in the cheat
menu to reset all cheats back to their default state, and added
support for UI_SELECT on a non-oneshot cheat so that it resets that
cheat to its default value.

Restored previous behavior that allowed popmessage() messages to
overlay menus and other UI.
2008-08-07 15:53:58 +00:00
Aaron Giles
ce00409cce Added word alternates for operators in expressions:
+   plus
  -   minus
  *   times or mul
  /   div
  %   mod
  !   not
  ~   bnot
  &&  and
  &   band
  ||  or
  |   bor
  ^   bxor
  lt  <
  le  <=
  gt  >
  ge  >=
  eq  ==
  ne  !=

Changed cheat escaping to automatically escape && & < and <=
to and band lt and le.
2008-08-07 06:48:04 +00:00
Couriersud
c81b2cb24d Added module profiling to discrete sound core
* added DISCRETE_PROFILING macro to discrete.h
* Upon discrete_stop, the worst performing modules will be listed
2008-08-06 19:31:39 +00:00
Aaron Giles
d3c7e67622 This also includes a fix for the bug reported at the bottom.
From: Fabio Priuli [mailto:doge.fabio@gmail.com] 
Subject: to simplify cischeat inputs

Hi,

the enclosed diff has a twofold effect on cischeat.c:

on one side: it adds diplocations to bigrun, scudhamm, 
cischeat & f1gpstar

on the other side: it removes the current hacky handling of 
f1gpstar coinage dips (check video/cischeat.c to see what I 
mean with hacky!) to use conditional ports instead. BUT in 
order to do this, I had to add more possible values for the 
PORTCOND in iptport.c. The problem is that f1gpstar has a set 
of coinage settings when you set the region to JPN or USA and 
another one when you set the region to EUR or FRA. To implement 
this I added the following self-explanatory new PORTCOND: 
ISLARGER (>), ISNOTLARGER (<=), ISSMALLER (<), ISNOTSMALLER (<=). 
Only two were really needed to implement f1gpstar dips, but 
the other two seemed costless to me while offering even more 
flexibility to the PORT_CONDITION macro.


Also notice that the handling of conditional ports in 'TAB>Dip 
Switches' menu doesn't work well (in the current source, not 
affected by my patch) with contracted expressions like 
PORT_DIPUNKNOWN_DIPLOC: the wrong items remain listed in the 
UI menu even when you change the condition! If you leave the 
DEF_STR( Unknown ) with ON/OFF cases, everything is displayed 
correctly in the menu. However, I was not able to track down 
what part of code is responsible for this bug.

Regards,
    Fabio Priuli
2008-08-06 14:35:45 +00:00
Aaron Giles
6cad3b3231 Added support for DEL as well as BS for backspacing in the
game select menu. Also limited input to ASCII characters.
2008-08-06 14:04:16 +00:00
Aaron Giles
5dcdb1d1c3 NOTE: with this change, I have also removed PORT_START and renamed
PORT_START_TAG to PORT_START.


From: Fabio Priuli [mailto:doge.fabio@gmail.com] 
Subject: let's say goodbye to untagged input ports ;)

Hi,

enclosed please find a few patches against 126u3 source

* port01.diff -> port09.diff : these patches continues the 
cleanup of inputs in drivers starting with C (the remaining ones), 
D and E. No ambiguous situations this time, so I guess there should 
be no problem with the changes. Improvements include conditional dips 
added to dynduke and diplocations for chinagat, chqflag, circus, 
citycon, cloak, contra and dynduke

* tag01.diff -> tag09.diff : these patches add tag to EVERY input port 
in drivers starting with F->Z. Notice that only tags are added, no 
AM_READ_PORT, nor PORT_INCLUDE (and I saw a lot of drivers would need 
it ;) ), nor other cleanups contained in the patches above. I'll keep 
cleaning input next week, probably, but at least we can definitely 
remove the untagged version of PORT_START :) Notice I was able to 
compile the source commenting out the definition of PORT_START, so 
I guess every occurrence is covered...
2008-08-06 13:56:38 +00:00
Aaron Giles
4a36b515ed Changes to the cheat.xml format:
- new tag <comment> (within <cheat>) is read and preserved 
    when saved
 - removed variable attribute from <parameter>; it is now 
    assumed to be 'param'
 - added default attribute for <parameter>

Added new variable 'frame' accessible from cheat scripts. This
can be used in the conditional to prevent execution on every
frame, or for other effects (like displaying temporary messages).

Added new variable 'argindex' which is the index when processing
an <argument> with a count attribute greater than 1. Can be used
in expressions like:

  <argument count="3">main.pb@(1000+argindex)</argument>

Reinstated the cheat menu. It now displays all loaded cheats and
allows for them to be activated. All known cheat behaviors should
be working now.
2008-08-06 05:24:31 +00:00
Aaron Giles
2d165fe1c3 Fixed I/O watchpoints. 2008-08-06 05:04:05 +00:00
R. Belmont
661aae28dc Changes to avoid collisions with system globals on OpenSolaris. (qmc2) 2008-08-06 03:25:58 +00:00
R. Belmont
ebbd232ba3 Fix GCC 4.3 "array bounds overflow" error. This is obviously a bug, Couriersud please take a look :) 2008-08-06 03:19:52 +00:00
Jarek Burczynski
1bb6adec56 Forced synchronization (stream_update()) before the status is actually read. 2008-08-05 21:30:33 +00:00
Couriersud
8146898f14 Discrete sound core optimizations
* moved a couple of exp(x) from _step into _reset where appropriate
* use tabulated function values for the transfer function in DSS_INVERTER_OSC

==> 40% speed increase in dkong - from 520% to
$ ./mame64 -noautosave -nothrottle -str 30 -video none dkong -nomt -nosleep 
Average speed: 722.48% (29 seconds)
2008-08-05 20:25:44 +00:00
Aaron Giles
5e3764d0a0 Removed obsolete makemeta tool. Replaced it with new ldverify
tool which walks through either an AVI or CHD capture from a
laserdisc and ensures that there are no anomalies lurking in
the VBI data.

Added new option to chdman, where if you use -createav with
a special filename (either 2:2 or 3:2) it will create a fake
laserdisc files with the equivalent cadence. This can be used
for testing until full captures are available. Most games used
2:2 apart from Dragon's Lair and Space Ace, which were 3:2.
Note that even though these files are essentially blank, they 
are Huffman-compressed, meaning that the maximum compression
ratio you will get is 8:1, so they still end up ~5GB.

Moved error strings from chdman.c to chd.c, where they can be
fetched from any caller via the new chd_error_string()
function.

Updated vbiparse to improve Manchester code decoding. It now
assigns a confidence level per bit based on how solid the
data is. Also added a new function vbi_parse_all which parses
the white flag and all three lines of metadata from a 
laserdisc frame. It then compares line 17 and 18 against each
other and selects the most likely candidate based on per-bit
confidence and other factors.

Added frame number display to laserdsc.c. It is off by
default, though most players can be configured to turn it on
(not sure if any actually do). It can be manually toggled via
the backslash key during playback.
2008-08-05 16:30:35 +00:00
Wilbert Pol
0f20ccdc1e Set the initial timer output to 2 to indicate that it is undetermined. 2008-08-04 17:44:56 +00:00
Wilbert Pol
1c0a7fce3a Fix compile errors. 2008-08-04 15:41:01 +00:00
Aaron Giles
95e3753dd2 Added proper laserdisc support for MACH 3, Us vs. Them, and Cobra
Commander (MACH 3 hardware). Old laserdisc hacks are now removed.
The code now talks to the standard Pioneer PR-8210 interface. Also
removed hacky "target list" from the MACH 3 ROMs; this information
is now decoded on the fly from the right channel laserdisc audio.
 
Other Gottlieb cleanups:
 - moved sound inputs to audio/gottlieb and included them in
    all relevant drivers
 - ordered input ports and ROM definitions consistently
 
Other laserdisc changes:
 - changed PR-8210 interface to work consistently for both Gottlieb
    and Stern games
 - added audio callback mechanism to allow drivers to peek at the
    raw audio streams
 - extended the VBI parser to be even more lenient
2008-08-04 15:26:41 +00:00
Andrew Gardner
d20e6b6151 Improved Dsp56k CPU interrupt handling. Polygonet Commanders now advances past its first dsp handshake. 2008-08-04 04:07:29 +00:00
Couriersud
82eff3f75c Revert accidentially commited changes. Sorry! 2008-08-03 19:02:28 +00:00
Couriersud
54da9f29bd 8257dma and z80dma devices now require device callback handlers instead of machine handlers.
Updated affected drivers accordingly.
2008-08-03 18:54:39 +00:00
R. Belmont
86c919a2d7 Backported a bunch of FM OPN (YM2608/2612) fixes from Genesis Plus GX. All of
this was verified on real hardware.  [Eke-Eke, Nemesis, Alone Coder, AamirM]

- implemented PG overflow, aka "detune bug" (Ariel, Comix Zone, Shaq Fu, Spiderman...)
- fixed SSG-EG support
- modified EG rates and frequency
- fixed EG attenuation level on KEY ON (Ecco 2 splash sound)
- fixed LFO phase update for CH3 special mode (Warlock, Alladin)
2008-08-02 22:05:24 +00:00
Aaron Giles
6d5941e085 Disks opened by the romload module are no longer identified by index.
Instead, they are identified by the region they were loaded in. This
generally means one disk per region. get_disk_handle() now takes a
region name in place of an index. Updated all callers to do this.
The SCSI modules in particular posed a challenge to make this work,
so watch out for potential bugs there.

Changed the IDE interfaces to default to choosing the region with the
same tag as the device for its master disk (assuming no slave). Added
support for specifying explicit master/slave disk regions as part of
the configuration, though slave disks are still not supported yet.

Change the laserdisc interface to no longer require a disk number or
a custom sound device. Both are now assumed to be tagged the same as
the laserdisc device. Updated all drivers accordingly.
2008-08-01 23:11:08 +00:00
Aaron Giles
a0c9cf2939 More gottlieb cleanup. Fixed rev 2 sound again, fleshed out memory
maps and behaviors according to the schematics. Hooked up coin
counters.

Added new functions cputag_set_input_line() to assert input lines
via CPU tag instead of index.
2008-08-01 16:39:12 +00:00
Nathan Woods
6ddfa127af Minor MESS compilation fix 2008-08-01 10:59:32 +00:00
Aaron Giles
444cde4388 Added cropping of the VBI data. 2008-08-01 02:36:23 +00:00
Aaron Giles
776b251aa2 Removed per-frame metadata support from chdman. Creating an A/V
now simply requires an AVI file input.

Relaxed VBI Manchester code clocking to allow for a little bit
of wiggle when finding the clock.

Changed laserdisc support to parse white flags and other data
from the VBI data directly, rather than relying on the textual
metadata. Expanded video frame cache to 3. Changed the way
frames are assembled to decrease the likelihood of getting an
interlaced weave. Fixed sound creation so that it is done at
reset time instead of device start, when the sound devices aren't
yet live.

Fixed bug in winwork that caused the creation of single work 
items to return NULL, and thus lead to massive memory leaks when
using A/V CHDs.
2008-08-01 02:23:26 +00:00