------------------------------
Milton Bradley MicroVision [kevtris, Wilbert Pol]
Because of the tiny screen use -prescale 3 to
get decent video output.
Bowling Try [H.A. Pontes, R. Mucciarelli, Tormod, Yohji, Smitdogg, The Dumping Union]
CPU: H8 3008 (currently set to H8 3002 because 3008 doesn't exist in the core)
GFX: YGV631-B (we have no docs for this, might be related to the Namco ND1 chip?)
SOUND: TT5665 (there are datasheets about, but I don't think we have a core)
I claim no ownership over this, I won't be working on it, up for grabs.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Kuru Kuru Pyon Pyon (Japan) [Roberto Fresca, hap, Fyrecrypts, anonymous,
btribble, Yohji, Smitdogg, The Dumping Union]
note, external submission, cleaned up a bit by me, was sent with the following message
From Brian Griffin:
To Haze:
I've made some changes to the drivers for the fruities by continuing to split things into proper versions and adding some you were missing continuing with the patterns you have set. We had some Maygay machines come in and I saw they hadn't been done yet.
No 'Brian Griffin' isn't my real name I'd rather remain anonymous / not be in the credits if that's alright with your team because of my job my employer or customers could take issue with me helping.
I work as a repair technician for these fruities and what's happening in Mame is the best thing to happen in the last 10 years. By that I mean the effort being made to recognize the different rom versions of each game, it's invaluable when it comes to repairing these and fitting programs the operators are happy with. Until Mame came along everybody was just sticking with one set and that was only good for people wanting to play the games on a PC not people operating and maintaining the original machines where you often need a specific version for a specific hardware profile.
It is with great lament we threw away many different 'sets' at my former place of employment 5 years back because nobody at all was interested in them at the time. I wish Mame had shown an interest back then but they're long gone now.
Regarding sound roms I'm not hopeful of you finding the missing ones, what you don't realise is except for the most popular / profitable they were in and out in under 3 months, scrapped for parts, reskinned, fitted with new roms, and recycled. We had arcade video games on location test for longer than some of these were around if they weren't bringing in the money or worse were instead bleeding it because people had found emptier exploits. You could probably consider many of them to be 'prototypes' using Mame terminology they were so short lived. Nobody I work with has seen some of them for 15-20 years and these machines are sizeable enough so you can't just misplace them. Anything more than a few years old not owned by a collector or retro-arcade more than likely no longer exists anywhere.
Everything you need is at (speedy share link removed)
New games marked as GAME_NOT_WORKING
------------------------------------
Dragon's Lair 2: Time Warp (US v3.19)
Space Ace (DL2 Conversion) (US v1.3)
New clones added
----------------
Dragon's Lair 2: Time Warp (Euro v3.19) (not working)
Dragon's Lair 2: Time Warp (Spanish v3.19) (not working)
Dragon's Lair 2: Time Warp (US v3.18) (not working)
Dragon's Lair 2: Time Warp (Euro v3.16) (not working)
Dragon's Lair 2: Time Warp (US v3.15) (not working)
Dragon's Lair 2: Time Warp (Spanish v3.15) (not working)
Dragon's Lair 2: Time Warp (US v3.14) (not working)
Dragon's Lair 2: Time Warp (US v3.12) (not working)
Dragon's Lair 2: Time Warp (US v3.00) (not working)
Dragon's Lair 2: Time Warp (US v2.11) (not working)
Space Ace (DL2 Conversion) (Euro v1.3) (not working)
(rather ugly for now, the code *should* be collapsible to a single set of functions but we're not there yet, not even close, lots of push and pull of system specific bits needed before everything is in the right place)
Added Dip Locations to vastar.c driver [Tafoid]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Planet Probe [Alberto Grego, Corrado Tomaselli, f205v, David Haywood]
based on Z80 family, plus 2x 8255 PPI, and YM3812 / Y3014
for sound. The status is still preliminary. [Roberto Fresca]
New games marked as GAME_NOT_WORKING
------------------------------------
Super Card (encrypted) [Roberto Fresca, Team Europe]
- Renamed the internal layout artwork: bigdeal --> bonuscrd.
- Default Bonus Card & Big Deal DIP switches positions, that
allow boot the system without errors.
-avr8: Implemented MULS, ANDI, STD Z+, LD -Z, LD Y+, LD -Y, LD -X, SWAP, ASR,
ROR, and SBIS opcodes. [MooglyGuy]
-avr8: Moved Timer 0-2 into the CPU core itself, 30x driver speedup [MooglyGuy]
-cratft.c: Fixed DAC bit order, audio now plays but is 40% too slow [Mooglyguy]
- Fixed some glitches with the SE/30's built-in video
- Added preliminary infrastructure for LC and '030-type processor-direct slots
- Support for SE/30 processor-direct slot version of RasterOps Colorboard 264
types. Created a binding_type_exception which is thrown when
a bind attempt fails due to mismatched types.
Added helper templates to driver_device to wrap legacy
device read/write handlers into driver_device member functions.
This should help move some things forward until more common
code is converted into proper devices.
Introduce new module devcb2 which contains modernized
versions of devcb. Compared to previous implementation
this one is simpler overall, trampolining calls through
a single internal set of adapter functions. The new
versions are also designed to be specified in the
machine_config rather than in structures, so they are
no longer simple POD types. Additional new/changed
features:
* reads and writes can map to delegates for line or 8/16/32/64-bit
* reads and writes can map to an I/O port
* reads can be mapped to a constant value, with or without logging
* writes can be mapped to a device's input line
* all reads/writes can have a shift, mask, and/or xor applied
* devices can opt to make the functions safe-if-NULL when resolving
* only member function types are supported
Rewrote the YM2151 interface to be fully modernized, and
removed the ym2151_interface struct in favor of inline configs
using the new devcb2 mechanism. In many cases, removed
no longer needed trampolines, instead taking advantage of
direct support for input line writes.
greatly improving performaces (e.g. Manic Miner demo went from 20% to 380%
ingame). Plus added some very preliminary softlists. [David Haywood]
(MESS) spectrum_cass.xml: added very preliminary softlist containing some
interesting test case for emulation. [David Haywood]
Remaining TODO list:
- take WP into account
- test the amstrad, implement its observational format (edsk) using
pasti as a start. Or find the legendary amstrad IPFs. Or both.
- correct read track, the implementation is completely wrong. See
previous for testing, it's only used in protections the check the
inter-sector gaps.
- shake and bake on the amstrad, protections are the best to find bugs
in a fdc
- add the scan id commands, but nothing seems to use them
- debug the 2.88M formatting which is unreliable. Fix its IDAM/DAM
gap size on formatting too (but that's not what's making it
unreliable)
- test all the systems that were hit, and fix what needs to be fixed.
Beware that multiple problems may happen:
- upd765 may be wrong
- the driver may not be working
- the hookup may be wrong/incomplete (bitrate selection and floppy
rpm in particular)
- the driver may be too limited for the new implementation (the x68k
dma device does not handle non-instant dma yet for instance)
- report invalid command when appropriate depending on the actual chip
emulated
- add the russian clones with their real names
and added a new command line option of "-viewlist" which will print out a list
of all the devices that can be viewed in human readable logic equations.
Also updated the jedutil regression test to support passing in an additional argument of "debug" to print out a detailed log. Also moved the jedutil regression test
data into separate directories composed of the device's name to make things
more organized. [Kevin Eshbach]
non-templatized helper class so that the code can live
co-located, rather than invading device.h.
Changed the read/write delegates to derive from
device_delegate. Updated the address map macros to create
these properly.
Removed remnants of the old AM_BASE/SIZE macros from the
memory system.
eventually, nes_mmc and its pieces (nes_pcb, nes_ines & nes_unif) will contain a cart slot device and allow for
things like on-cart sound chips and eeprom devices to be properly emulated
---------------------
Blankity Bank (PCP) (SYSTEM80) [TTX]
Changed FME drivers to use per-driver layouts, rather than awpvid generic ones - should make tiny builds a bit easier, and gives more opportunity to tweak for hardware specific stuff. (nw)
Made some modifications to the jedutil tool to allow the viewing of simple combinatorial jeds (adding support for registered and gals in the future) by taking a jed file and printing out human-readable equations. Changed the command line options of the jedutil tool to know take an initial argument to specify what the tool should do.
For example to convert a jed to bin the command is now:
jedutil –convert <source.jed> <dest.bin>
jedutil –convert <source.bin> <dest.jed>
To view a jed file with human-readable equations the command is
jedutil –view <source.jed> <pal type>
Added a simple regression test for the tool that just verifies that the currently known pals have the row and column fuse location mapped correctly and at the moment this tool runs under windows only.
Under the directory src/regtests/jedutil there is a Windows Script File with the name jedtest.wsf that if run from the command line with the command “cscript jedtest.wsf” will verify that a dump of the jeds in src/regtests/jedutil/jeds matches the good dumps in src/regtests/jedutil/baseline. Reference jed files created using the tool eqn2jed which is included with Opal Jr and these files are in src/regtests/jedutil/eqns.
and a sparse bitmap for tracking which areas got updated.
This allows sprites to be rendered independently to their own
bitmap and then mixed in a final step. Converted the Sega
sprite device over to this new model, and moved the mixing
steps out of the sprite implementations and into the driver-
specific video updates where it belongs. [Aaron Giles]
Added some further methods and helpers to the bitmap_t and
rectangle classes. [Aaron Giles]
Created a sega_16bit_common_base class which handles the
common Sega palette RAM mappings and open bus reads.
[Aaron Giles]
(MESS) vic20: Added floating bus read support to VIC and cartridge interface.
(MESS) vic10: Added floating bus read support to VIC-II and cartridge interface.
(MESS) c64: Added floating bus read support to cartridge interface. [Curt Coder]
(MESS) plus4: Added floating bus read support to TED and cartridge interface. Implemented some Diag264 test cartridge loopback connectors. [Curt Coder]
(MESS) c16: Added PAL/NTSC variants. (nw)
(MESS) v364: Fixed speech ROM mapping. (nw)
(MESS) compis: Separated keyboard to its own file. (nw)
(MESS) huebler: Cleanup. (nw)
out of whatsnew: I also hooked up the list to the driver, even if I have no idea to which degree the system works these days (I don't know much about this machine).
out of whatsnew: the disk dumps do not come from original media, but given that no more program disks ever appeared in the past two years and that even the website which originally hosted these disks disappeared, it is definitely worth documenting them before they get lost forever...
also mame\includes\multfish.h can/must be removed from source tree coz it is not used by driver. by MetalliC (no whatsnew)
update Megadrive cart module for support "Pier Solar" cart (mapper and "ST M95" eeprom code) by MetalliC (no whatsnew)
Comment: note, could still do with andreas seeing if he can find a relationship between the encryption tables we've derived from studying the
protection (used to decrypt the various blocks in the protection data
rom) and the final block in the protection data rom..
* Split segas16.h header into separate headers for each system
* Fully modernize segas16a
* Convert multiply, divide, and compare/timer chips into
modern devices
* Fix bug causing tturfu and wrestwar to hang at startup
baseboard there (most of these ones actually run quite well apart from
some moaning about reels) This board used the AY8913, the mod4 board
didn't have that, so it's a logical split point. Also some more identification / tagging etc. of other sets. From Haze (nw)
* Converted FD1089/FD1094 into proper devices, derived
from m68000. They now handle their own decryption and
memory management, so we can remove all the calls for
initialization/reset/etc. The key now lives as a 'key'
subdevice under the CPU, and the FD1089/1094 are now
specified just like any other CPU.
* Removed the horrible s16fd and s24fd files. Good riddance.
* Created a helper class for managing fd1094 decryption
caches.
* Converted the memory mapper into a new modern device
and updated the segas16b, segaorun, and segas18 drivers
to use it. Fixed ROM memory mapping so that the source
ROMs can be loaded contiguously, removing a bunch of
hacks.
* Untangled the joined segas1x_state and split the states
for each system into their own classes. Cleaned up some
implementations.
* Added support for member functions to be called as
DRIVER_INIT functions. To do this, #define
MODERN_DRIVER_INIT prior to #including "emu.h" and you
will be required to specify a class and member function
for your driver init.
* Fully modernized the segas16b and segas18 drivers.
New working games added
-----------------------
GP Rider (Japan) [ShouTime, Charles MacDonald, Aaron Giles]
Last Survivor [ShouTime, Charles MacDonald, Aaron Giles, 9ofzeven, TrevEB,
Dr. Spankenstein, ghoolster, Surgeville, Tormod, Tjaberg, Waremonger]
(Note: A couple games are still busted, but most are working. Will
follow up with more updates.)
(mpu4dealem.c) because it's a unique expansion, no point in having all
that stuff in the main state. The standard video board it's own state class too, and moved specifics to that, plus converted the scn2674 video chip to be a device (new files there too) again reducing the amount of junk in the base mpu4 state. From Haze (nw)
- Based on timeslot modelling, the implementation models gate delays in logic chips.
- Design ready to be split into a generic and a MAME implementation part.
- Design prepared to merge in discrete components from discrete.*
- Supports code based as well as external net list parsing.
Ultimately, net lists and discrete emulation should share one code base. The class design was set up to accomplish this. There is no point in having multiple 555, 7474 implementations around.
Most of the code will be moved to lib/netlist going forward to allow usage in other projects.
------------------------------------
Beach Head 2000 Install - 05/27/03 [Smitdogg, The Dumping Union]
Beach Head 2000 Install - 09/16/01 [Smitdogg, The Dumping Union]
Beach Head 2002 Install - 05/27/03 [Smitdogg, The Dumping Union]
Beach Head 2003 Desert War Install - 05/27/03 [Smitdogg, The Dumping Union]
Global VR XP OS Install - 09/30/01 [Smitdogg, The Dumping Union]
Global VR XP OS Update/Install - 06/11/02 [Smitdogg, The Dumping Union]
Hyper V2 (Global VR) Install - 09/30/0l [Smitdogg, The Dumping Union]
Hyper V2 (Global VR) Install - 06/12/02 [Smitdogg, The Dumping Union]
Need For Speed: Underground Install (2 Discs) (v1.1) [Smitdogg, The Dumping Union]
-----------------------------------
Skins Game (1.08) [Mr. CAST, M. Ponweiser, Mojo2000, Smitdogg, The Dumping Union, R. Belmont]
Skins Game (unknown alt. version) [Guru, R. Belmont]
------------------------------------
Pong (Rev E) [Couriersud]
Work in progress. The games is playable and has sound, however I suspect some minor bugs due to the order of expression evaluation.
I commit this mainly for documentation purposes. The modelling of the TTL circuits will change to a device/connection class infrastructure updating inputs immediately if they changed going forward.
and wait state generation. Previous implementation has been renamed to
*l.{c,h} and drivers point to the old implementation until they are
adapted to the new version. [Michael Zapf]
* Inputs from the scratch.
* Completely demuxed the output lines.
* Added lamps support.
* Added a nice button-lamps layout.
* Found and added the FEVER! lamp.
* Fixed the Oki6295 and CRTC 6845 clocks.
* Corrected the refresh rate to 52.786 Hz (similar to Major Poker).
* Hooked the vblank input line.
* Figured out the following DIP switches:
Auto Max Bet, Flip Screen, Maximum Bet,
Auto Hold, Double-Up Type, Remote Credits,
Bet Limit, and Coinage Multiplier.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Chance Thirty Two [Roberto Fresca]
* Identified the slots game as Super Stars.
* Changed am_uslot to suprstar.
* Reworked inputs from the scratch.
* Added support for outputs: lamps & counters.
* Added a button-lamps layout.
* Promoted the game to working state.
* Added technical notes.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Super Stars [Roberto Fresca, Angelo Salese, Andreas Naive]
* Reworked Inputs for all games.
* Added button-lamps support.
* Created internal control layout for all games.
* Added mech counters support.
* Promoted all games to working state.
* Renamed the mdrawpkra ROMs based on PCB picture.
* Renamed the driver to meyc8080.c
* Added technical and game notes.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Draw Poker - Joker's Wild (Standard) [hap, Roberto Fresca]
Draw Poker - Joker's Wild (02-11) [hap, Roberto Fresca]
- This game has mechanical parts so it's not exactly playable, but it is possible try it until the end giving the expected inputs.
- Imported the i8279 device from MESS and updated to support sensor
mode and mask nibble.
- Made a simple layout and the defined input ports.
New clones marked as GAME_NOT_WORKING
------------------------------------
Zeke's Peak [Sandro Ronco]
Renamed driver overrides to MCFG_MACHINE/SOUND/VIDEO_START_OVERRIDE to
explicitly indicate they are overriding the default behavior.
Put liberatr back the way it used to be.
Normalized soundlatch helper function names.
Created delegates for machine/sound/video_start/reset callbacks and
added necessary infrastructure to use them going forward.
- General update which fleshes out some of the 68307 code (not 100% correct hookups, just improved logging and enough to get us somewhere).
- Added various devices to the SC4 emulation, added a default layout showing the VFD, to which most of the earlier games will now write 'Initializing'. Timers and other devices still need to be implemented properly before they actually initialize.
- Put the actual SC4 hardware emulation in drivers/bfm_sc4h.c so that it doesn't get lost in the swamp of sets (scrolling through a file is quite hard when it's almost entirely set definitions)
and the insane 16 graphics banks scheme. Improved the Wild Witch and
Jolli Witch inputs, and switched them to the extended hardware. Got
accurate colors for all the extended sets. Worked inputs and lamps
from the scratch. Added technical notes. [Roberto Fresca]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Witch Up & Down (Export, 6T/12T ver 0.99) [Roberto Fresca, Team Europe, Marcus Jendroska, Video Klein]
Witch Up & Down (Export, 6T/12T ver 1.02) [Roberto Fresca, Team Europe, Marcus Jendroska, Video Klein]
Wild Witch (Export, 6T/12T ver 1.74A) [Roberto Fresca]
Z80 + CTC + DAC systems with artwork and lamps + LEDs, running
the well-known game "Rock-Paper-Scissors". Also added a complex
internal artwork layout. [Roberto Fresca]
New games marked as GAME_NOT_WORKING
------------------------------------
Janken Man (Pretty Carnival) [Roberto Fresca, anonyMous donator]
spriteram. Removed core support for legacy buffered spriteram, and
updated all drivers to use the new devices instead. [Aaron Giles]
Removed required/optional_shared_size helpers. Instead the existing
required/optional_shared_ptr helpers now have a bytes() method that
can be used to query the size of the shared region. [Aaron Giles]
New games marked as GAME_NOT_WORKING
------------------------------------
World Soccer Winning Eleven Arcade Game Style [Team Japump, Guru]
World Soccer Winning Eleven Arcade Game 2003 [Team Japump, Guru]
- enforced short names for slot card devices
- updated validation, romverify and listxml output accordingly
- slotoptions now also contain shortnames so it's possible to link
slot option and device
similar to Ludo, derivated from the indian game Parchisi. Coin-op
machine for 1-4 players. No screen, just artwork and lamps.
[Roberto Fresca]
New games marked as GAME_NOT_WORKING
------------------------------------
Mann, oh-Mann [Roberto Fresca, Team Europe]
from 4 to 5. This means any diff CHDs will no longer work. If you
absolutely need to keep the data for any existing ones you have,
find both the diff CHD and the original CHD for the game in question
and upgrade using these commands:
rename diff\game.dif diff\game-old.dif
chdman copy -i diff\game-old.dif -ip roms\game.chd -o diff\game.dif -op roms\game.chd -c none
Specifics regarding this change:
Defined a new CHD version 5. New features/behaviors of this version:
- support for up to 4 codecs; each block can use 1 of the 4
- new LZMA codec, which tends to do better than zlib overall
- new FLAC codec, primarily used for CDs (but can be applied anywhere)
- upgraded AVHuff codec now uses FLAC for encoding audio
- new Huffman codec, used to catch more nearly-uncompressable blocks
- compressed CHDs now use a compressed map for significant savings
- CHDs now are aware of a "unit" size; each hunk holds 1 or more units
(in general units map to sectors for hard disks/CDs)
- diff'ing against a parent now diffs at the unit level, greatly
improving compression
Rewrote and modernized chd.c. CHD versions prior to 3 are unsupported,
and version 3/4 CHDs are only supported for reading. Creating a new
CHD now leaves the file open. Added methods to read and write at the
unit and byte level, removing the need to handle this manually. Added
metadata access methods that pass astrings and dynamic_buffers to
simplify the interfaces. A companion class chd_compressor now
implements full multithreaded compression, analyzing and compressing
multiple hunks independently in parallel. Split the codec
implementations out into a separate file chdcodec.*
Updated harddisk.c and cdrom.c to rely on the caching/byte-level read/
write capabilities of the chd_file class. cdrom.c (and chdman) now also
pad CDs to 4-frame boundaries instead of hunk boundaries, ensuring that
the same SHA1 hashes are produced regardless of the hunk size.
Rewrote chdman.exe entirely, switching from positional parameters to
proper options. Use "chdman help" to get a list of commands, and
"chdman help <command>" to get help for any particular command. Many
redundant commands were removed now that additional flexibility is
available. Some basic mappings:
Old: chdman -createblankhd <out.chd> <cyls> <heads> <secs>
New: chdman createhd -o <out.chd> -chs <cyls>,<heads>,<secs>
Old: chdman -createuncomphd <in.raw> <out.chd> ....
New: chdman createhd -i <in.raw> -o <out.chd> -c none ....
Old: chdman -verifyfix <in.chd>
New: chdman verify -i <in.chd> -f
Old: chdman -merge <parent.chd> <diff.chd> <out.chd>
New: chdman copy -i <diff.chd> -ip <parent.chd> -o <out.chd>
Old: chdman -diff <parent.chd> <compare.chd> <diff.chd>
New: chdman copy -i <compare.chd> -o <diff.chd> -op <parent.chd>
Old: chdman -update <in.chd> <out.chd>
New: chdman copy -i <in.chd> -o <out.chd>
Added new core file coretmpl.h to hold core template classes. For now
just one class, dynamic_array<> is defined, which acts like an array
of a given object but which can be appended to and/or resized. Also
defines dynamic_buffer as dynamic_array<UINT8> for holding an
arbitrary buffer of bytes. Expect to see these used a lot.
Added new core helper hashing.c/.h which defines classes for each of
the common hashing methods and creator classes to wrap the
computation of these hashes. A future work item is to reimplement
the core emulator hashing code using these.
Split bit buffer helpers out into C++ classes and into their own
public header in bitstream.h.
Updated huffman.c/.h to C++, and changed the interface to make it
more flexible to use in nonstandard ways. Also added huffman compression
of the static tree for slightly better compression rates.
Created flac.c/.h as simplified C++ wrappers around the FLAC interface.
A future work item is to convert the samples sound device to a modern
device and leverage this for reading FLAC files.
Renamed avcomp.* to avhuff.*, updated to C++, and added support for
FLAC as the audio encoding mechanism. The old huffman audio is still
supported for decode only.
Added a variant of core_fload that loads to a dynamic_buffer.
Tweaked winwork.c a bit to not limit the maximum number of processors
unless the work queue was created with the WORK_QUEUE_FLAG_HIGH_FREQ
option. Further adjustments here are likely going to be necessary.
Fixed bug in aviio.c which caused errors when reading some AVI files.
- The SDL team has moved from 1.3 to 2.0. At the same time, changes were made to allow SDL1.2 and SDL2.0 to coexist. All SDL2.0 include files are now in /usr/include/SDL2.
- Added sdlinc.h to avoid having tons of #ifdef .. #include in the code.
- Scalemode is no longer a per-window setting
- Fixed a bug in YUV rendering.
- Use SDL_GetClipboard (SDL2.0)
- Updated README_SDL20.txt
Currently, SDL 2.0 is only supported on *nix. Volunteers welcome.
(nw) If anyone has any suggestions on how better to sync per-scanline state than what I'm currently doing, I'd be all ears. The renderer is now pretty darn fast, but every little bit counts.