Note that this is caused by leaving entries in the bitmap
with an index larger than the palette size. This is forbidden
and now can lead to a crash in debug builds.
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.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Sonic Blast Man 2 Special Turbo (SNES bootleg) [Andreas Naive, Tomasz Slanina]
- Added Baby Poker Game.
- Added sound support to Baby Poker Game.
- Reworked the color routines.
- Added Baby Dado Game.
- Added new color routines for Baby Games.
- Redumped the videocba color PROM.
- Added color switch. (It changes background color in some games).
- Added "hopper full" switch support (for diverter function).
- Added diverter function decoder.
- Added full functional mechanical counters decoding.
- Added 7 Segment decoder and 7 Digit Counter functions.
- Added button-lamps layout & mechanical counters simulation on layout.
Mechanical counters to layout: Coin-In, Coin-Out and Coin to Drop.
- Added NVRAM support to mechanical counters.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Baby Poker [Grull Osgo, Roberto Fresca]
Baby Dado [Grull Osgo, Roberto Fresca]
still not really convinced by this conditional dip stuff.. it stands no chance of working on games where the coinage mode is in eeprom... (but i have no better suggestions)
02483: gunlock, rayforcj: Title screen trouble
02482: bubblemj: Demonstration screen trouble
* Check for whether tile is opaque must honour extra planes.
- added rom decryption
- patched protection checks
- mapped extra inputs
Game is not playable due to heavy gfx glitches caused by bugs in SNES hw emulation.
[Andreas Naive, Tomasz Slanina]
* added missing button mappings
* corrected dip switch
This seems to be a prototype. The number of remaining ships displayed is not correct.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Astropal (Sidam?) [Couriersud]
Affected files:
mame\src\mame\drivers\neodrvr.c
mame\src\mame\includes\neogeo.h
mame\src\mame\machine\neocrypt.c
mame\src\mame\machine\neoboot.c
Changes:
. Begin of a general cleanup
Sorting OEM / Bootleg sets
Renaming roms on non OEM / Bootleg sets to ONE naming sheme
Renaming functions
Added some comments
Cleanup is not completed.
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.
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 !
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Megatouch 5 (9255-60-07 RON, New Jersey version) [Brian Troha]
New clones added
----------------
Megatouch III (9255-20-07 ROG, New Jersey version) [Brian Troha]
Super Megatouch IV (9255-41-07 ROG, New Jersey version) [Brian Troha] (Not Working)
Sent: Mon 9/29/2008 9:45 AM
To: submit@mamedev.org
Subject: Small SNES changes
Hi,
enclosed please find a patch which changes a bit the way SNES
carts (NSS & bootlegs) are loaded at init time. Currently, data
are loaded once at start and then the read handlers perform various
mirroring tricks. With the attached patch, the cart is loaded at
init and mirrored as many times as it is necessary, while handlers
simply read from the plain offset. Also, blocks of data are mirrored
until they fill all the available banks. Implementing this behavior
both simplifies the handlers code and is more faithful to the hardware
(see mirroring note included in the DRIVER_INIT).
I also slightly changed some handlers to take into account the new
mirroring system. OTOH sram_handlers haven't been updated (they will
be eventually) because with carts as small as the ones in nss.c and
snesb.c, they basically have no overlapping with the new mirroring
approach... as soon as I come up with a satisfactory implementation
that works in MESS (which has to deal with much larger carts), I will
also submit the MAME side.
No regressions appear with the patch, as far as I could test.
Regards
Fabio
--
From: Fabio Priuli [mailto:doge.fabio@gmail.com]
Sent: Wednesday, October 01, 2008 12:01 AM
To: submit@mamedev.org
Subject: further snes changes
Hi,
enclosed please find a patch which rewrites memory handlers in
machine/snes.c to take into account the additional cart/memory layouts
(mode 22 & 25) which were available for the home console (almost no
impact on nss.c & snesb.c, which only use mode 20 & 21). rather than
only add a bunch of if(snes_cart.mode == XXXX), I preferred to slightly
rewrite the handlers. main changes on the MAME side are:
* merged regions 0x700000 up to 0x7dffff in snes_map (this allows to
make memory maps in nss.c and snesb.c identical: the zone previously
NOPed in nss.c is now handled by snes_r_bank5, because it was not
reserved for all cart types)
* split region 0x800000-0xbfffff from 0xc00000-0xffffff in snes_map.
This simplifies a bit handlers used by MAME and it will be necessary
when MESS supports special chips like SDD-1 (which dynamically changes
the part of cart loaded in the latter region)
* slightly enlarged SRAM regions (in this case, it only affects what
happens inside the handler, NOT snes_map) to support carts with 512kbits
of SRAM (e.g. Thoroughbred Breeder III for MESS). I'm still not 100%
satisfied with SRAM mirroring, but this is closer to the real thing
than the previous way to handle it
No regressions are present, neither in MAME nor in MESS, as far as I
could test (well, for MAME weren't expected, since most changes affected
mode 22 & 25).
Regards,
Fabio
Sent: Sunday, September 28, 2008 6:01 AM
To: submit@mamedev.org
Subject: System1 Dips Location
Hi folk!
I continuing the work on System1
- Added dips location in all game
- Moved in generic Cabinet dip for eliminate the redundancy
- Better implementation of generic input
Bye Sonikos
Sent: Friday, September 26, 2008 11:01 PM
To: submit@mamedev.org
Subject: fix for sbasketb
As pointed out by ShimaPong on mameworld forums, dips are
read in the wrong way in sbasketb.c. It seems that when
DipLocations were added, the tags were changed in the input
ports but not in the memory map.
The enclosed patch fixes this regression
Regards,
Fabio
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.
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.
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