Commit Graph

2999 Commits

Author SHA1 Message Date
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
Couriersud
a10dfb942d Removed GAME_IMPERFECT_GRAPHICS from Phraze Craze
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Pit Boss, [Couriersud]
2008-09-30 22:51:36 +00:00
Couriersud
227dccde00 merit.c:
* Hooked up 6845
* Hooked up lscnblk line
* Fixed Phraze Craze gfx rom ordering
* Clocks from schematics
* Ram palette moved to static var. This should not be in RAM.
* Added save state support
2008-09-30 22:45:10 +00:00
davidhay
c44a5d3d1c adds new Csclub set
New Clones
----------

Capcom Sports Club (EURO 971017) [Corrado Tomaselli]

This is newer than any of the other sets, it probably fixes the euro specific crash in the special extended bonus round (at a guess)
2008-09-30 16:54:34 +00:00
Aaron Giles
e3dd5224c0 Converted Z80 SIO to device. Updated drivers accordingly. 2008-09-30 05:29:59 +00:00
Brian Troha
b91c8e11e2 adds include to Z80ctc interface. Fixes compile issue 2008-09-29 22:47:20 +00:00
Brian Troha
fa978eb229 by DITraI4D0
expro02.c
- fixed DIPSW
- added graphics decode routine (probably it can be simpler)

video/kaneko16.c
- tilemap scroll position is different for expro02, so added new
function (is it better to fix current one?)

TODO
- in gfx data banking function (newly added), some strange gfx are shown.
Timing issue?



New games added or promoted from NOT_WORKING status
---------------------------------------------------
Gals Panic (US, EXPRO-02 PCB)
2008-09-29 21:42:19 +00:00
Brian Troha
34a21d3cff New Clone: 20 Year Reunion (V1.04)
New Clones Added
------------------------------
20 Year Reunion (V1.04) [Johan Samuelsson]
2008-09-29 21:30:11 +00:00
Couriersud
8f094e3d0f merit.c: Fix colours
* implemented palette & colour decoding from crt 200 schematics.
2008-09-29 19:58:25 +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
Aaron Giles
ef2fa89e44 Compile error fix. 2008-09-29 07:01:55 +00:00
Aaron Giles
ce7edb155d ldverify improvements:
- uses back-end decoding for CHDs directly to bitmaps
 - changed min/max detection to only check 0/255
 - fixed off-by-one bug in min/max computation
 - separated white code detection from frame number detection
 - track cadence with frame numbers as well as white codes
 - use vbiparse.h constants where appropriate
2008-09-29 02:26:20 +00:00
Couriersud
4021930758 Verified watchdog behaviour in schematics. 2008-09-28 18:08:43 +00:00
Andrew Gardner
889a589849 Fixes build with official dev tools. 2008-09-28 16:43:13 +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
stephh
490823b1aa Updated warpwarp.c driver :
- fix Mantis bug ID 02323 (this might not be the best way though).
  - reworked 'geebee', 'navarone' and 'warpwarp' INPUT_PORTS definitions by using conditional Dip Switches.
  - added 'geebeeb' INPUT_PORTS definition (this game has specific "Replay" settings).
2008-09-28 14:22:02 +00:00
Couriersud
197085900b 01090: invadpt2, sicv: Watchdog reset. 2008-09-28 12:07:27 +00:00
Couriersud
841649ee4c 02440: abcop, gprider1, rachero: abcop just shows a black flickering screen, rachero gives an error and crashes on exit 2008-09-28 11:03:24 +00:00
R. Belmont
a51c28697d Minor NSS/SNES cleanups [Fabio Priuli] 2008-09-28 01:13:07 +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
Couriersud
3959354577 02441: rdft22kc: rdft22kc just shows a black screen and fails to boot 2008-09-27 20:51:36 +00:00
Couriersud
e2e042dc14 02194: All Sets in othunder.c: Black screen, game does not start 2008-09-27 20:37:39 +00:00
Aaron Giles
9766dc2367 Changed MAKE_RGB macro to set the alpha to 255 instead of 0. Updated
palette.c to preserve the alpha when transforming palette values.
These changes should be transparent to almost all drivers and rendering
(ha-ha), but there may be an occasional instance where a driver relied
on the alpha being 0 in the system palette. This also means that the
palette_set_color() function preserves any alpha value that is set.

Changed Firefox to RGB32 to allow for mid-screen palette changes. Because
of the above change, the hacky alpha manipulation that was previously
required is no longer necessary; the alpha is set directly in the palette
entry.
2008-09-27 20:36:04 +00:00
Aaron Giles
c391ab646f 02410: -aviwrite: files over 2 gigs sometimes get cut off 2008-09-27 20:04:01 +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
davidhay
448984121f remove obsolete function in neocrypt.c 2008-09-26 21:12:43 +00:00
davidhay
c423c47d14 NeoGeo Update from Johnboy
(Guru, can you check that ms5pcb you have, the roms in MAME are now marked as NO DUMP)

Updated Neo-Geo game pcb infos
2020bba: Marked MVS and AES version
sonicwi2: Added correct sized v2
kof95 / kof95a:
	. Renamed kof95 to kof95h
	. Renamed p1 to correct chip label
	. Added note
	. Renamed kof95a to kof95
	. Renamed p1
samsho3 / samsho3a:
	. Renamed samsho3a to samsho3
	. Renamed samsho3 to samsho3h
	. Renamed p1 to correct chip label
	. Marked AES version
kof98 / kof98n:
	. Renamed m1 in kof98 to correct chip label
	. Renamed m1 in kof98n to correct chip label
	  (kof98n should be latest revision, cart had very high SN 1xx.xxx)
kof97: Marked MVS version
samsho5 / samsho5h:
	. Correct text layer size
	. Marked samsho5h AES version
neogeo:
	. Updated system set to what is found on NEO-MVH MV1FS
	. Added note
ms5pcb:
	. Hooked up bios dip
	. Renamed bios to correct chip label
	. Renamed p1 / p2 to correct chip label, marked NO_DUMP
	. Added note
2008-09-26 20:41:47 +00:00
davidhay
ef10dec73f para2dx rom should be good now. 2008-09-26 20:24:12 +00:00
Aaron Giles
229d598989 Cleanups and version bump. 2008-09-26 13:42:51 +00:00
Aaron Giles
6d7ed9b573 Reverted change 2915. 2008-09-26 13:31:31 +00:00
davidhay
d67de02bda getting there. 2008-09-26 08:10:28 +00:00
Couriersud
d9988a4f21 01187: gseeker: In attract mode, there is a priority error where a stealth bomber is coming out of a hanger. 2008-09-26 07:48:21 +00:00
davidhay
3e245f35a9 new game
--------

Paradise Deluxe 2 [Chris Hardy]

(redump of incorrect size roms pending)
2008-09-26 06:54:44 +00:00
Aaron Giles
8a78b0252d Hi,
compared to other emulator (i.e. kawak), mame does not perform very well in
terms of speed of emulation against Neo Geo games.

Looking at profiling data for these neo geo games, we can see :
---------------------------------------------------------
  %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
 18.40     18.80    18.80   971070     0.00     0.00  video_update_neogeo
 10.42     29.45    10.65     4416     0.00     0.00  texture_set_data
 10.06     39.73    10.28  1144463     0.00     0.00
sprite_line_timer_callback
  6.24     46.10     6.37 187970965     0.00     0.00  astring_cmpc
  3.77     49.95     3.85 35732143     0.00     0.00  memory_region
---------------------------------------------------------

I was wondering why functions like 'astring_cmpc' and 'memory_region' where
in the top 5 of the most time consuming functions.

The answer is found in the function 'draw_sprites' from
'mame/video/neogeo.c' where 'memory_region' is called for each sprites for
each VIDEO_UPDATE.
I patched mame in order to keep track of this 'memory_region'. This is done
in VIDEO_START via a global variable (region_zoomy) just like in some other
drivers.
2008-09-26 05:38:40 +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
0f775dc84e From: Christophe Jaillet [mailto:christophe.jaillet@wanadoo.fr]
Sent: Wed 9/24/2008 2:00 PM
To: submit@mamedev.org
Subject: Speed up fillbitmap
Hi,

there are many places in mame which make use of "fill_bitmap" or the
equivalent "fillbitmap"

An optimisation is done when the depth of the bitmap is 16 or 32 bpp and
when the UINT16 or UINT32 corresponding to the color is composed of same
bytes (i.e 0xffff for example). This is usefull because most of the calls
are for color 0 (black).

In all other cases, the bitmap is filled one pixel at a time using a loop
with a code like :
================
    for (y = fill.min_y; y <= fill.max_y; y++)
    {
     UINT16 *destrow = BITMAP_ADDR16(dest, y, 0);
     for (x = fill.min_x; x <= fill.max_x; x++)
      destrow[x] = (UINT16)color;
    }

================


However, each rows of the final bitmap will be the same. So I modified this
simple assigned to work as follow :
    1) fill the first row one pixel at a time
    2) fill all the other rows by copying the first one.
This makes us use memcpy instead of a hard coded loop for most of the
filling process.
2008-09-26 05:31:34 +00:00
Aaron Giles
07d208cbbd From: Samuele Zannoli [mailto:samuele.zannoli@airmachine.it]
Sent: Tue 9/23/2008 1:16 PM
To: submit@mamedev.org
Subject: More naomi ...
Hi.

This patch shows the contents of the framebuffer if the 3d accelerator is
not used so that now the atomiswave logo and messages are shown (if you
wait enough).
Removes a maple bug (no more strange messages in cvs2gd).
Improves documentation of the communication registers with the dimm board.
And if DEBUG_VERTICES is defined as 1 the vertices sent to the tile
accelerator are collected and then drawn connected by a segment to give a
wireframe-like view of the scene.

Bye,
 Samuele Zannoli
2008-09-26 05:27:40 +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
390e9f007c From: abcd efgh [mailto:cix_999@yahoo.it]
Sent: Mon 9/22/2008 3:15 PM
To: submit@mamedev.org
Subject: Better Input clean in system1
I've re-made the job better than last time (i hope), clean up the inputs in system1, next time i'll fix all dips location.
Bye Sonikos.
2008-09-26 05:26:15 +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
Couriersud
f82a2aa779 Move memory_region calls into initialization routines. 2008-09-25 23:07:50 +00:00
davidhay
55f42eed2c copy + paste error in geebeeg romset? 2008-09-25 22:19:38 +00:00
Aaron Giles
4ef4716752 Changed indytemc to use the new BIOS stuff. 2008-09-25 16:28:57 +00:00