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.
* 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
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.
Added 1:1 fallback if surface creation fails at prescale values. Changed
prescale logic to create prescale target surfaces as ARGB for YUY2
sources. Forced the use of render-to-texture over StretchRect for YUY2
sources.
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.
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.
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)
* 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.
* adds new latch device where appropriate
* increased accuracy since now all main/sound cpu communications are properly latched
* removed quite some code as a consequence
* minor cosmetic edits
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.
Bermuda Triangle / World Wars
removed ROM patches
simulated "turbo front" check
renamed bermudao->bermudaj
clarified the relationship between the four sets
made World Wars a main set instead of a clone of Bermuda Triangle
tliemaps, proper memory maps, inputs, etc.
Date: Thu Aug 21 11:31:19 2008 +0200
Outrun irq fix
The level 6 irq happens only when both irq2 and irq4 line are active,
not when either is, obviously.
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
After an exhaustive analysis to the unknown writes, finally figured out the missing sound device.
- Added sound support to "Poker 4-1" and "Pull Tabs".
- Figured out the output ports. Documented each bit accessed.
- Added button lamps support. Created layouts for both games.
- Switched the 8255 port C to be used as output port.
- Adjusted the coin pulse timing.
- Updated technical notes.
- Splitted the driver to driver + video.
- Final clean-up.
Ikari Warriors, Victory Road
removed ROM patches
simulated "hard flags" behaviour
proper memory maps
fixed ikarijp color test
renamed dogosokj to dogosokb and loaded the correct palette PROMs
inputs, dip locations, etc.
removed NO_COCKTAIL flag since these games don't have a flip screen dip switch
02035: gwarb: Guerrilla War bootleg doesn't need a rotary joy
00869: ikari: The title screen and high score screen do not have a black background, as MAME displays.
New clones added
----------------
Ikari Warriors (US) [Corrado Tomaselli]
TNK3, Athena, Fighting Golf, Country Club
converted to tilemaps
removed hacks
proper memory maps
screen flip / cocktail mode support
dip locations
better implementation of sound CPU communication
hooked sound cpu interrupts to YM chips
fitegolf hax 1xYM3812, not 2xYM3526
Subject: few patch based on u5
Hi,
since it seems there will be one more update in this cycle, it is probably
better to submit these patches. Hopefully, not too many changes have been
done to the source and these will apply cleanly. Let me know if I have to
re-submit any of the patches.
content of the zip
* Ndriv.diff, OPQdriv.diff and RSdriv.diff: clean up of input ports in drivers
N->R and partially S. as usual AM_READ_PORTs, conversions to full 32bit inputs
where suitable, CUSTOM_PORTs for eeprom bits etc.
* cps1.diff: small clean up of the inputs in cps1.c. In particular, I exploited
a few port_include (modeled on cps2.c) and added specific inputs for sf2 hacks
so that I could simplify input readings in video/cps1.c. Also, I added the 3rd
buttons to games which test it in Service Mode even if they don't use it in game:
if the game code tests for them in the service mode, they were supposed to be
present...
* deco.diff, pgm.diff, psikyo.diff, nbmj.diff, jaleco.diff: clean up for
specific large drivers
* other.diff: some usage of PORT_CUSTOM that I missed to implement previously
Regards,
Fabio Priuli
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.
Subject: [patch] fd1089 external keys
Hi mamedev,
The attached patch moves the fd1089 decryption keys out of the source
of MAME and into the ROM files. Nicola suggested this would now be
reasonable, so long as the incomplete ones were marked with BAD_DUMP.
~aa
Subject: [patch] More reset/multisession cleanup
Hi mamedev,
This patch eliminates more cases of .data objects, in an effort to
make more drivers multisession/reset safe. The changes should not
change the first time run behavior at all, except perhaps the ygv608.c
change, which had a suspicious use of a static rectangle.
~aa
Currently not working any better then the parent
Restores old Wave Runner (Rev A, Model 2B) as a single non clone game
New clones added
----------------
Top Skater (USA) [Gerald (COY)]
My mail is broken (or I'm not on the list anymore?) so I don't know how the suggestion went down, but given that within the space of a week simply updating the tree completely broke my compile again I *need* these files maintained to develop with if we're going to see accurate genesis emulation in MAME. There's too much to split out of MAME.
I haven't included driver definitions, but the source files at least need to compile or I'm going to go completely bananas.
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
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
Removes bad_dump from WW3 as readme said "most" reads matched the Red Alert sound rom. Also it the read me stated the BPROM also matched the Red Alert BPROM.
Subject: small submission
Hi,
enclosed please find a tiny diff which makes megadriv_vdp_r & megadriv_vdp_w
handlers in megadriv.c non-static (and includes them in megadriv.h).
This small change, while making essentially no difference for MAME, would make
life easier to maintain pico emulation in MESS.
--
From: Fabio Priuli [mailto:doge.fabio@gmail.com]
Subject: fix for MT bug 2115
Hi, enclosed please find a small fix for the typo causing berlwall inputs
breakage. No matter how extensively I test my changes, some typos always
succeed to slip through my cross checks :(
Anyway, this regression is fixed.
--
From: Fabio Priuli [mailto:doge.fabio@gmail.com]
Subject: Fix for MT bug 2114
Hi,
enclosed please find a patch which fixes the red/blue inversion for eolith.c
games. It regressed in 0.124, when the driver it's been converted from bitmap_format_rgb15
to bitmap_format_indexed16 with the wrong palette_init.
Hi there,
Astro Wars (Zaccaria 1980) can be added to the galaxia.c.
The attract mode works and it uses the same hardware and
the rom names/lacations are identical.
The picture shows three screenshots of Astro Wars, the left and middle uses
only one of the gfx roms and the right both.
M*A*S*H
New game NOT WORKING: Astro Wars
* Added roms/unemulated/Irem/iremM10_incomplete.zip as ipminva1 to m10.c
* Marked as GAME_NOT_WORKING
* The roms are all different from ipminvad, one is missing. The game does
enough to see that it is some sort of invaders type game.
* Added roms/unemulated/Irem/ww3_roms.zip as ww3 to redalert.c
* Dumped by Stefan Lindberg
* Please credit Stefan Lindberg as well
* Either redalert is the clone or ww3 is the clone. Redalert has a speech board in addition
to the m37b audio board.
New games marked as GAME_NOT_WORKING
------------------------------------
I P M Invader (Incomplete Dump) [unknown dumper, Couriersud]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
WW III [Stefan Lindberg, Couriersud]
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.
- 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
- Simulated the co-processor to pass the initial test.
- All Inputs worked from the scratch.
- Fixed position of tilemap layers.
- Added scroll register preliminary support.
- Fixed Super Pool graphics.
New games marked as GAME_NOT_WORKING
------------------------------------
Hot Slot (ver 05.01) [Roberto Fresca]
Magic Colors (ver 1.7a) [Roberto Fresca]
Subject: cps3 sfiii3 title+linear zoom effect fix
fix the sfiii3's title animation (cps3.c line 1055)
also fix the linear zoom effect that OopsWare didn't improve properly
since 0.122u7(cps3.c line 1168,1189,1190)
i've attached 2 images to show the difference between the priginal and
fixed one~
hope this helps~
Subject: two more patches
Hi,
enclosed please find the following patches
* portM.diff which completes the basic port cleanup in
drivers starting with M. It's mostly conversion of 8bit
-> 16/32bit inputs and usage of AM_READ_PORT in memory maps
(plus a couple of eeprom_bit_r replaced with PORT_CUSTOM
and daitorid_soundstatus_r in metro.c converted to a
CUSTOM_INPUT as well)
* avgdvg.diff converts most of the games checking avgdvg_done()
in inputs to use a CUSTOM_INPUT (which I added to video/avgdvg.c).
avgdvg_done() is still in use in mhavoc.c (which requires some
more changes, so I'll take a look later) and in omegrace.c (which
reads it directly and not through inputs). While at it, I've
also done a small cleanup of inputs in starwars.c and tempest.c.
Regards,
Fabio
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
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
Subject: few more patches
Hi,
enclosed please find a few patches to continue the input port
clean up (and to fix a mistake in the previous submission). In
detail:
* hal21.diff: with my last submission I made a mistake in hal21.c
(I converted it only partially to custom inputs, still returning
1<<5 instead of 1 from the handler). please revert that change
(it was in u4_custom04.diff) and apply this one, to fix the
communication with sound cpu
* clean_new.diff: introduce AM_READ_PORT & c. in drivers starting
with M (only few of them updated, more to come)
* custom_new.diff: improves input handling in mainsnk.c and marvins.c
by using CUSTOM_INPUTs and AM_READ_PORTs
* gaelco3d.diff: converts radilkalb inputs to 32bit inputs (as
they are), removing the need of AM_READ16 for those
* itech32.diff: converts inputs of later games to 32bit inputs and
updates all the occurrences as needed. It also simplifies input
handling by removing special_port_r from most of the maps (replaced
by a CUSTOM_INPUT). Now only drivedge still uses 16bit inputs and
special_port_r, but I'll investigate it later.
* arkanoid.diff: changes mcu reads to CUSTOM_INPUTS (and muxed
inputs as well). Bootleg inputs has been slightly changed as well
to cope with the new implementation of the protection
* irem.diff: this patch changes a lot of input related things in
m10->m107 irem boards. First of all, it moves input definitions from
drivers/m92.h to include/iremipt.h (which was already there, just
a bit unused ;) ) and it removes completely drivers/m92.h (which
only contained those definitions). Moreover, it adds more common
inputs to iremipt.h and starts to use that file in m62->m107 instead
of local #defines. Finally, it adds diplocations to all the games in
m62->m107 which were missing and it implements coinage mode 2 through
dipconditions in the drivers which didn't support it.
I tested as much as I could these changes and I can see no regressions.
Regards,
Fabio
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.
Subject: some more input clean-ups
Hi,
attached please find a few patches against u4. These diffs improve
input ports for drivers starting with F->L. In particular: they add
AM_READ_PORT whenever suitable, they make inputs fully 32bit where
needed, they remove indexed input read handlers from INITs, they
replace many read handlers with appropriate CUSTOM_INPUTs.
Additional improvements:
* added dip switches and locations to go2000 (even if they were
partially documented in the source)
* fixed artmagic protection (it used a wrong tag, which probably
I added somewhere in 0.125uX); even if I haven't experienced any
problems due to the bug since the regression now it's fixed
More details on the patches:
* u4_clean01 -> u4_clean07: these are standard changes like the
one I submitted previously (no custom inputs involved)
* u4_custom01 -> u4_custom04: here there are also changes involving
custom inputs (they mainly deal with eeprom reads, but a few were a
bit more interesting); I separated these from the other ones in
case you want to check them more in detail
* itech8.diff: this patch improves ports & their handling in itech8.c.
In particular, it replaces the 'special' handlers with a single
custom input and I would like a confirmation that it was the right
choice in this case.
Patches are independent one from the other and should apply with
no problems. Let me know if this is not the case.
Regards,
Fabio
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
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.
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.
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.
1) convert framebuffer's ram from 8 bit to 16 bit
2) convert dma command from 8 bit to 16 bit
3) convert gfx command from 8 bit to 16 bit
4) implemented all gfx mode: 1,2,4,8,16 bpp
for now the rendering is only 8 bpp
now we can use this gfx chip for adp driver that use 4bpp
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.
Marked madalien and madalina as Imperfect Graphics. They are missing an effect. When you shoot an enemy in the dark, the whole screen lights up. Basically the headlights fill the whole screen.
credit Guru, Derrick Renaud
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.
Credit Guru.
(This completes adding all of Guru's readmes to the MAME source. There remain ~20 readmes that I still need to compare to what's in MAME to see if they have any additional information, but beyond that, this little project is done!)