Commit Graph

7744 Commits

Author SHA1 Message Date
Angelo Salese
f3d1842bcb Fixed a bogus protection check in Victor 21 [Angelo Salese] 2010-01-12 15:30:52 +00:00
Paul Priest
945a98f0bd Typo, no whatsnew. Thanks Fabio. 2010-01-12 14:40:27 +00:00
Paul Priest
a9baa7b23d Fix for MT00111 - rom region overrun in YMF278B core on loop j=0 of SAMPLE_UPDATE(). Fixes sporadic crashes in many psikyosh games which had been worked around with the exception of gunbird2 which is now also fixed [PsikyoFan]
RB: Feel free to help me correct it if you believe this isn't correct.
2010-01-12 14:31:13 +00:00
Curt Coder
5cdcb8ab63 Added xtal for MESS. 2010-01-12 14:11:14 +00:00
Aaron Giles
1f1672d6cc Enforce that numbers are all the same exact width when loading fonts. 2010-01-12 07:03:11 +00:00
Aaron Giles
470f843262 Within src/emu, basic conversions:
devtag_get_device ... machine->device()
  memory_find_address_space ... device->space()
2010-01-12 06:54:57 +00:00
Aaron Giles
46b81c390e Explicitly allow PAIR and PAIR64 in save states. 2010-01-12 03:32:07 +00:00
Angelo Salese
92db7e71a9 Converted Gunpey to use RGB pens instead of hardcoded palette table 2010-01-11 22:33:01 +00:00
Angelo Salese
30d7972c6a Implemented basic blitter support in Gunpey [Tomasz Slanina] 2010-01-11 21:09:55 +00:00
Aaron Giles
a9c5a5a27e Fixed memory freeing so that is it released in the opposite order
it was originally allocated.

Changed machine->region() to return a pointer to the now-public
region_info class.

Added new member function space() to the device_config, along with
shorter constants to be used (AS_PROGRAM, AS_DATA, AS_IO). With no 
parameters, space() returns the first address space, which is 
commonly the only space present. Updated a few devices that referenced 
the old space[] array to call the new function instead.

Added #define to emualloc to ensure delete can't be freely used.
2010-01-11 18:02:38 +00:00
Angelo Salese
2441940e7a Implemented inputs and sound in Gunpey [Luca Elia] 2010-01-11 17:45:36 +00:00
Angelo Salese
968ef7b835 03649: gekisha: Unknown DIP 4-2 toggles Auto Tsumo after Reach. If it is enabled and declare Reach, MAME crashes. 2010-01-11 13:33:43 +00:00
Phil Bennett
d51770b70f Added the mameconfig version to the -listxml output [Oliver Stoneberg]
---------- Forwarded message ----------
From: Oliver Stöneberg <oliverst@online.de>
Date: Thu, Dec 31, 2009 at 2:45 PM
Subject: mameconfig version in -listxml
To: submit@mamedev.org


This patch adds the mameconfig version to the -listxml output
2010-01-11 12:55:43 +00:00
Phil Bennett
508c8ad7df galaxold update: [stephh]
- Renamed set kkgalax to ckongmc
 - Changed descriptions for ckongg and ckongmc
 - Fixed dip switches and inputs for ckongg and ckongmc
 - Updated ckongmc memory map
2010-01-11 12:36:46 +00:00
Phil Bennett
7304faaece Added a PCM sample end/loop callback to the RF5C68 core [Barry Rodewald]
---------- Forwarded message ----------
From: Barry Rodewald <bsr@xnet.co.nz>
Date: Sat, Jan 2, 2010 at 10:13 AM
Subject: RF5C68 addition
To: submit@mamedev.org


Hi,

Here is a small update for the RF5C68 PCM core.  For the FM Towns MESS
driver, there needs to be some way to tell when a PCM sample has ended
or looped, as the system can generate an interrupt at this point,
usually to end the sample playback on the specified channel.  From the
RF5C68(A) datasheet, there appears to be no obvious way for an IRQ
signal to be sent, so I figure the PCM IRQ setup must be external to
the PCM chip itself.

Thus, I've added a simple callback, which should be called when the
end of a sample is reached, and with a parameter for the device
itself, and the channel on which the sample has ended.

Example of the result, with callback implemented:
http://mahlemiut.marpirc.net/mess_raiden.mp3  (sound effects are done
by the RF5C68, music is CD-DA).

Thanks,
Barry Rodewald
mailto:bsr@xnet.co.nz
2010-01-11 12:24:53 +00:00
Aaron Giles
317da101d8 Try using type_traits for detection of valid save types. 2010-01-11 09:53:25 +00:00
Aaron Giles
51e6cbf6cd Fixed bogus empty ROM region warnings. 2010-01-11 08:42:05 +00:00
Aaron Giles
d51551f303 Fix cheat crash and comment display. 2010-01-11 02:37:17 +00:00
Paul Priest
6605a2e3e5 Fix crash if exit scheduled before cpus ready.e.g. clicking close on window. No whatsnew. 2010-01-10 23:40:01 +00:00
Aaron Giles
bec93ce35b Fix a few stray delete's that didn't pair with global_alloc/auto_alloc.
Fixes "attempt to free untracked memory" in several games.
2010-01-10 22:57:03 +00:00
Aaron Giles
c845d1c4fd sprintf -> vsprintf, oops. Requires a recompile, but at least
fatalerrors will have the right text.
2010-01-10 21:48:28 +00:00
Aaron Giles
567ab7c3c8 Fix typo causing crash in laserdisc games. 2010-01-10 21:32:09 +00:00
mariuszw1
44356408cd New games added or promoted from NOT_WORKING
--------------------------------------------
Multi Game (Tung Sheng Electronics) [Mariusz Wojcieszek]
2010-01-10 20:59:09 +00:00
Aaron Giles
2b23d7c017 Bulk driver.h -> emu.h switch. 2010-01-10 18:00:42 +00:00
Fabio Priuli
ade4b98d4c on behalf of Pierpaolo Prazzoli:
Fix for MT03653: crzrally, crzrallya, crzrallyg: Default high scores are incorrect
2010-01-10 12:52:12 +00:00
Aaron Giles
4498faacd9 First round of an attempted cleanup of header files in the system.
- Created new central header "emu.h"; this should be included
    by pretty much any driver or device as the first include. This
    file in turn includes pretty much everything a driver or device
    will need, minus any other devices it references. Note that
    emu.h should *never* be included by another header file.
 - Updated all files in the core (src/emu) to use emu.h.
 - Removed a ton of redundant and poorly-tracked header includes
    from within other header files.
 - Temporarily changed driver.h to map to emu.h until we update
    files outside of the core.

Added class wrapper around tagmap so it can be directly included
and accessed within objects that need it. Updated all users to
embed tagmap objects and changed them to call through the class.

Added nicer functions for finding devices, ports, and regions in
a machine:

   machine->device("tag") -- return the named device, or NULL
   machine->port("tag") -- return the named port, or NULL
   machine->region("tag"[, &length[, &flags]]) -- return the
      named region and optionally its length and flags
      
Made the device tag an astring. This required touching a lot of 
code that printed the device to explicitly fetch the C-string
from it. (Thank you gcc for flagging that issue!)
2010-01-10 00:29:26 +00:00
Scott Stone
43d93150b5 New Not Working
---------------
Track & Field (NZ Bootleg?) [Siftware, Tafoid]

Comments:  I've set up the roms in the order I believe they should be.  Everything but the maincpu roms mirror that of Track and Field and I have to assume the decryption used for T&F is not the same for this game.
2010-01-09 22:57:47 +00:00
Angelo Salese
a137208ba2 Minor clean-up, no credit wanted 2010-01-09 17:27:53 +00:00
Angelo Salese
f415e6a251 new not working
---------------

Computer Quiz Atama no Taisou [Chack'n, Team Japump]
2010-01-09 13:54:00 +00:00
Fabio Priuli
a55a6af5d8 Fix for suprmrio regression in 0.135u2. goonies seems due to some other issue (I'll investigate this later)
I also made MMC3 emulation the same as MESS, but this is not enough to fix bug 03579 (vsskykid).
2010-01-09 12:37:03 +00:00
Fabio Priuli
cbfecc9d6b Added driver data struct + save states to darius.c & othunder.c
Added driver data struct to ninjaw.c, slapshot.c, warriorb.c, wgp.c

There is still some TC0100SCN issue when reloading, which corrupts tilemap2, hence no save states in the latter drivers atm
2010-01-09 08:36:34 +00:00
Aaron Giles
e338ba361a Compile fix. 2010-01-08 21:57:29 +00:00
Aaron Giles
838b3b13c2 Oops, forgot this. 2010-01-08 17:19:41 +00:00
Aaron Giles
a92de5930c Extended the astring class wrapper into something useful, and
useable as a stack object. Also designed the interfaces to allow
for chaining operations. And added a casting operator to const
char * for seamless use in most functions that take plain old C
strings.

Changed all uses of astring to use the object directly on the
stack or embedded in objects instead of explicitly allocating 
and deallocating it. Removed a lot of annoying memory management
code as a result.

Changed interfaces that accepted/returned an astring * to
use an astring & instead.

Removed auto_alloc_astring(machine). Use 
auto_alloc(machine, astring) instead.
2010-01-08 17:18:54 +00:00
Couriersud
a0a40f8815 Provide location in "attempt to free untracked memory" message 2010-01-08 14:53:52 +00:00
Couriersud
4f32209c06 Fix an issue which may cause a division by zero or undefined behaviour. 2010-01-08 14:38:52 +00:00
Phil Bennett
e296f49107 More Metal Mania:
Started to implement the ADSP-2105 network CPU and the CAGE audio system [Phil Bennett]

(Turns out the extra ROM board is for CAGE)
2010-01-08 12:57:33 +00:00
Fabio Priuli
d1310b00e7 on behalf of MASH:
Fix for MT03651: matmania: Graphical corruption
2010-01-08 12:20:42 +00:00
Aaron Giles
8e261f62c8 Re-enabled malloc/free but routed them to the file+line versions. 2010-01-08 08:24:22 +00:00
Aaron Giles
ab68710ce5 Oops, forgot these files. 2010-01-08 06:11:00 +00:00
Aaron Giles
91a1b8d634 NOTE: This change requires two new osd functions: osd_malloc() and
osd_free(). They take the same parameters as malloc() and free().

Renamed mamecore.h -> emucore.h.

New C++-aware memory manager, implemented in emualloc.*. This is a
simple manager that allows you to add any type of object to a
resource pool. Most commonly, allocated objects are added, and so
a set of allocation macros is provided to allow you to manage
objects in a particular pool:

  pool_alloc(p, t) = allocate object of type 't' and add to pool 'p'
  pool_alloc_clear(p, t) = same as above, but clear the memory first
  pool_alloc_array(p, t, c) = allocate an array of 'c' objects of type
                              't' and add to pool 'p'
  pool_alloc_array_clear(p, t, c) = same, but with clearing
  pool_free(p, v) = free object 'v' and remove it from the pool

Note that pool_alloc[_clear] is roughly equivalent to "new t" and
pool_alloc_array[_clear] is roughly equivalent to "new t[c]". Also
note that pool_free works for single objects and arrays.

There is a single global_resource_pool defined which should be used
for any global allocations. It has equivalent macros to the pool_*
macros above that automatically target the global pool.

In addition, the memory module defines global new/delete overrides
that access file and line number parameters so that allocations can
be tracked. Currently this tracking is only done if MAME_DEBUG is
enabled. In debug builds, any unfreed memory will be printed at
the end of the session.

emualloc.h also has #defines to disable malloc/free/realloc/calloc.
Since emualloc.h is included by emucore.h, this means pretty much
all code within the emulator is forced to use the new allocators.
Although straight new/delete do work, their use is discouraged, as
any allocations made with them will not be tracked.

Changed the familar auto_alloc_* macros to map to the resource pool
model described above. The running_machine is now a class and contains
a resource pool which is automatically destructed upon deletion. If
you are a driver writer, all your allocations should be done with
auto_alloc_*.

Changed all drivers and files in the core using malloc/realloc or the 
old alloc_*_or_die macros to use (preferably) the auto_alloc_* macros 
instead, or the global_alloc_* macros if necessary.

Added simple C++ wrappers for astring and bitmap_t, as these need
proper constructors/destructors to be used for auto_alloc_astring and
auto_alloc_bitmap.

Removed references to the winalloc prefix file. Most of its 
functionality has moved into the core, save for the guard page 
allocations, which are now implemented in osd_alloc and osd_free.
2010-01-08 06:05:29 +00:00
Fabio Priuli
26ef635515 Fix for MT03623: laserbat, catnmous: Massive slowdown
Fix for MT03620: quasar: Massive slowdown 

Please credit Quench for these fixes
2010-01-07 23:07:06 +00:00
Fabio Priuli
ddcba0be55 on behalf of Atari Ace: [patch] Eliminate taitoair view struct 2010-01-07 22:52:26 +00:00
Fabio Priuli
3b7a8c389c Misc Taito wip:
* added driver data struct to taito_l.c & opwolf.c

* added driver data struct + save states to asuka.c (cadash was not supporting saves), rainbow.c, rastan.c, taito_f2.c, taito_h.c, taito_o.c, taito_z.c, topspeed.c & volfied.c

not worth mentions:
* renamed a couple of megablst clones for consistency (as per stephh's remark)
* slightly changed tnzs RAM/ROM banks behaviour to avoid writes on ROM banks
2010-01-07 22:32:22 +00:00
smf-
6c5d471f03 The starting value for an output port is now the default value, which is based on whether it is active high or low. So the device will be called the first time the line becomes active.
Changed the eeprom device to assume that the reset and clock are cleared until it's told otherwise.
Reverted the eeprom workround in cps1
2010-01-07 19:51:57 +00:00
Angelo Salese
dafd05d0ea Decoded sprite gfx format in Cyber Tank, also hooked up a debug viewer (disabled by default) 2010-01-07 19:32:25 +00:00
Angelo Salese
cf2dd90ce9 Fixed bitplane order in Cyber Tank [Angelo Salese] 2010-01-07 17:34:53 +00:00
Angelo Salese
14af2fba77 new not working
---------------

Bega's Battle [Angelo Salese]
2010-01-07 15:50:40 +00:00
Phil Bennett
9da4e99ec5 Tagged screenpl and clones as GAME_NOT_WORKING (no whatsnew) 2010-01-07 15:45:33 +00:00
Phil Bennett
7ca8ec9cc9 Hooked up TMS34020 in Metal Maniax [Phil Bennett] 2010-01-07 13:55:56 +00:00