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.
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.
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
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.
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.
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
---------------------------------------------------
Killer Instinct (SNES bootleg) [Tomasz Slanina]
Final Fight 2 (SNES bootleg) [David Haywood, Tomasz Slanina, Kowal]
New games marked as GAME_NOT_WORKING
------------------------------------
Sonic Blast Man TURBO 2 (SNES bootleg) [Corrado Tomaselli]
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.
(roms in current/j/jingbell.zip)
The background (slot reels) is not emulated properly,
hence it's not playable and marked as not working.
New games marked as GAME_NOT_WORKING
------------------------------------
Jingle Bell [Luca Elia]
Like some other Space games (mosaic.c), it is protected by an MCU
that supplies the addresses to jump to.
I've done some basic simulation that at least shows the service mode.
This is a candidate for decapping / trojaning, or for Nicola to examine
like he did with Mosaic ;-)
Note to Guru: u118 is probably bad, it fails the rom test.
New games marked as GAME_NOT_WORKING
------------------------------------
Quiz Punch 2 [Luca Elia]
Roms are in current/g/galaxi.zip.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Galaxi [Luca Elia]
- Pre-defined CPU and SND clocks.
- Switched the color system to RESNET calculations.
- Completed the remaining DIP switches.
- Added lamps support. Created a layout to show them.
- Changes on the interrupt system (need to be verified on the PCB).
- Renamed the graphics regions to more descriptive names.
- Corrected the manufacturer's name.
- Splitted the driver to driver + video.
- Updated technical notes.
- Rewrote core logic, communications, and interfaces.
- Added three parallel memory moves to the disassembler.
- Initial interrupt logic in place.
Plygonet.c updates.
- All communication hacks have been removed.
- Memory maps have been temporarily reverted while new DSP56k cpu core catches up.
- All games on all drivers should work as before except "colmns97" and "stress" which crash due to sound system trouble.
- All idle skips are still included. They are quite a bit less effective than they were on the interpreter, but they still give a boost.
- Fast RAM bypass is not included yet so this does not represent final performance. That said, it's consistently faster than the interpreter even now. Example: sfiii3 on 0.126 gets 609% on the interpreter and 961% on the DRC.
Major thanks to Aaron for his assistance with several sticky core bugs and other issues encountered writing this.
lurking. If you run into anything odd, please let me know.
Added new module uiinput.c which manages input for the user interface.
The OSD is responsible for pushing mouse events and character events
to this interface in order to support mouse movement and text-based
input (currently only used for the select game menu). Added support
for navigating through the menus using the mouse.
[Nathan Woods, Aaron Giles]
Redesigned the UI menus so that they can maintain a richer state. Now
the menus can be generated once and reused, rather than requiring them
to be regenerated on each frame. All menus also share a comment eventing
system and navigation through them is managed centrally. Rewrote all the
menus to use the new system, apart from the cheat menus, which are now
disabled. Reorganized the video menu to make it easier to understand.
[Aaron Giles]
- Set the proper screen size.
- Decoded graphics.
- Decoded the dual-state color circuitry.
- Mapped the NVRAM, VRAM1-1, VRAM1-2, VRAM2-1 and VRAM2-2 properly.
- Emulated 2x PPI 8255 devices.
- Mapped the 4x DIP switches banks.
- Added PORT_DIPLOCATION to all DIP switches.
- Added DIP switches for 'Bet Max' and 'Limit'.
- Added DIP switches for 'Jackpot' and 'Pay Table'.
- Added the Memory Reset Switch.
- Added the 2nd video & color RAM.
- Added a 2nd tilemap for background graphics.
- Simplified the graphics banks.
- Fixed colors for foreground graphics.
- Fixed visible area to show the top of background graphics.
- Finally fixed colors for background graphics.
- Added all coinage DIP switches.
- Mapped all remaining inputs (service and player buttons).
- Added pulse time limitation to coins A, B & C.
- Switched to use 4x 8255 in replace of 2x 82c255 for I/O.
- Created a handler to feed the z80 port0 requests.
- Promoted lucky74s to 'working' state.
- Added an alternate set, but the program ROM looks like incomplete,
protected or just a bad dump.
- Parent/clone relationship.
- Added technical notes.
From Dox:
- Hooked interrupts.
- Hooked the AY8910 and therefore the NMI trigger.
- Changed the input "Key In" to active high.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Lucky 74 (small) [Roberto Fresca]
New clones added
----------------
Lucky 74 (big) [Roberto Fresca]
macro from the source code. All MAME builds now include
the debugger, and it is enabled/disabled exclusively by
the runtime command-line/ini settings. This is a minor
speed hit for now, but will be further optimized going
forward.
Changed the 'd' suffix in the makefile to apply to DEBUG
builds (versus DEBUGGER builds as it did before).
Changed machine->debug_mode to machine->debug_flags.
These flags now indicate several things, such as whether
debugging is enabled, whether CPU cores should call the
debugger on each instruction, and whether there are live
watchpoints on each address space.
Redesigned a significant portion of debugcpu.c around
the concept of maintaining these flags globally and a
similar, more complete set of flags internally for each
CPU. All previous functionality should work as designed
but should be more robust and faster to work with.
Added new debugger hooks for starting/stopping CPU
execution. This allows the debugger to decide whether
or not a given CPU needs to call the debugger on each
instruction during the coming timeslice.
Added new debugger hook for reporting exceptions.
Proper exception breakpoints are not yet implemented.
Added new module debugger.c which is where global
debugger functions live.
Subject: [patch] Static qualifiers, header file cleanups, and new
include files for MAME
Hi mamedev,
The following two patches improve the use of header files in MAME, and
reduce the number of exported symbols.
The second patch then adds ~30 header files for a number of drivers
that use multiple source files. It consolidated the various cchip
related declarations in cchip.h, and added machine/seicop.h as well.
~aa
Added dumper notes, hardware details and hooked the sound devices.
Moved Euro Jolly X5 to this new driver, and add support for Grand Prix.
New games marked as GAME_NOT_WORKING
------------------------------------
Grand Prix [Roberto Fresca]
(sets uploaded to roms/current)
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Super Rider (Italy) [Luca Elia]
New games marked as GAME_NOT_WORKING
------------------------------------
Shark Party (Italy) [Luca Elia]
Victor 5 [Luca Elia]
Victor 21 [Luca Elia]
* Wrote new disassembler based on enhanced opcode info structure.
* Moved disassembler into drcuml.c and removed old code.
* Extended disassembler buffer sizes to at least 256 bytes.
- rewrote PowerPC implementation as a dynamic recompiler on top
of the universal recompiler engine
- wrote a front-end to analyze PowerPC code paths and register usage
- wrote a common shared module with C implementations of tricky
CPU behaviors
- added separate CPU types for the variants supported, instead of
relying on a hidden model enum
- rewrote the serial port emulation for the 4xx series to be more
accurate and not rely on separate DMA handlers
- rewrote the MMU handling to implement a software TLB that faults
in pages and handles changed bits appropriately
- implemented emulation of the PowerPC 603's software TLB, which
allows the model 3 games to run without a hack to disable the MMU
Updated the PowerPC disassembler to share constants with the rest of
the core, and to more aggressively use simplified mnemonics, especially
for branches. [Aaron Giles]
Universal recompiler:
- fixed frontend to handle opcode widths different from bus width
- added several new opcodes:
* (D)GETFLGS - copies the UML flags to a destination operand
* FDRNDS - rounds a double precision value to single precision
- renamed several opcodes:
* SETC -> CARRY
* XTRACT -> ROLAND
* INSERT -> ROLINS
- consolidated the following opcodes:
* LOAD?U -> LOAD
* LOAD?S -> LOADS
* STORE? -> STORE
* READ?U -> READ
* READ?M -> READM
* WRITE? -> WRITE
* WRITM? -> WRITEM
* SEXT? -> SEXT
* FTOI?? -> FTOINT
* FFRI? -> FFRINT
* FFRF? -> FFRFLT
- removed some opcodes:
* FLAGS - can be done with GETFLGS/LOAD4/ROLINS
* ZEXT - can be achieved with AND
* READ?S - can be achieved with READ/SEXT
- updated C, x86, and x64 back-ends to support these opcode changes
- updated disassembler to support these opcode changes
MIPS3 dynamic recompiler:
- updated to use new/changed opcode forms
- changed context switch so that it only swaps a single pointer
Konami Hornet changes: [Aaron Giles]
- updated to new PowerPC configurations
- updated some memory handlers to be native 8-bit handlers
- cleaned up JVS implementation to work with new serial code
- added fast RAM for the work RAM to give a small speed boost
Konami GTI Club changes: [Aaron Giles]
- updated to new PowerPC configurations
- updated some memory handlers to be native 8-bit handlers
Konami Viper/ZR107 changes: [Aaron Giles]
- updated to new PowerPC configurations
Sega Model 3 changes: [Aaron Giles]
- updated to new PowerPC configurations
- reimplemented/centralized interrupt handling
- these games are broken for the moment
Fixed crasher due to some Konami games using 8 layers in
the K056832 implementation, even though it was only written
for 4. [Aaron Giles]
Added fisttp opcode to i386 disassembler. [Aaron Giles]
Added all games that fit in this hardware, plus dumper notes (when available) and hardware descriptions.
New games marked as GAME_NOT_WORKING
------------------------------------
Carta Magica (Ver 1.8) [Roberto Fresca]
Laser 2001 (Ver 1.2) [Roberto Fresca]
Magic Drink (Ver 1.2) [Roberto Fresca]
Millennium Sun [Roberto Fresca]
NtCash [Roberto Fresca]
Super Space 2001 [Roberto Fresca]
Unknown italian gambling game [Roberto Fresca]
Wizard (Ver 1.0) [Roberto Fresca]