----------------------------------
Iskra Delta Partner [Jernej Jakob]
sfrj/idpartner.cpp : Added bus connector and split GDP into separate card [Miodrag Milanovic]
* Moved expansion card emulation out of the system into card devices.
* Removed machine configuration settings for expansion settings.
* Started to modernise the HuCard slot interface.
New working software list items (pce.xml)
------------------------
Arcade Card Pro
* bus/segaai: Rename device_segaai_card_interface to segaai_card_interface
* bus/segaai: Rename device_segaai_exp_interface to segaai_exp_interface
* hash/segaai.xml: Add barcode for several titles.
* hash/segaai.xml: Merge eigooha1 and eigooha2 into eigoohan, and eigogam1 and eigogam2 into eigogame.
* hash/segaai.xml: Update description for Eigo de Ohanashi and Eigo de Game.
* hash/segaai.xml: Add notes to Pinpon Music Rhythm and Melody.
* hash/segaai.xml: Merge Okeiko Aiueo and Hanamaru Aiueo into a single software item.
* hash/segaai.xml: Swapped checksums for Okeiko Aiueo and Hanamaru Aiueo and updated some notes.
* hash/segaai.xml: Added and replaced some overlays. Added placeholders for some older revisions released on cassette.
* hash/segaai.xml: Add cassette dumps of Alice World, Robinson Land, and Cosmis Train.
* hash/segaai.xml: Add dumps of several older cassette versions.
* hash/segaai.xml: Add/update serial, alt_title, and barcodes for cassette releases.
* hash/segaai.xml: Use improved overlay scans.
* layout/segaai.lay: Display clickable area when no overlay is present.
* layout/segaai.lay: Make cursor square.
* sega/segaai.cpp: Update old driver.
* sega/segaai.cpp: Let cards and expansions install themselves.
* sega/segaai.cpp: Adjust upd7759 sound level.
* sega/segaai.cpp: Mark cassette as stereo.
* sega/segaai.cpp: Only output the left channel from the cassette player.
* sega/segaai.cpp: Set the cassette channel to use for data input.
* sega/segaai.cpp: Add upd7759 busy signal to input port 4.
* Emulated most features of the system, with the exception of sound output and the thermal printer.
* bus/vboy/slot.cpp: Fixed loading loose software on big Endian hosts. [Vas Crabb]
Systems promoted to working
---------------------------
Casio Loopy [Phil Bennett, Ryan Holtz]
New working software list items (casloopy.xml)
-------------------------------
Chakra-kun no Omajinai Paradise [Rachel Simone Weil]
* This card provides unaccelerated 1024x768 video, which isn't the greatest idea on a 68020.
video/tms34061.h: Added accessors to get the horizontal and vertical visible resolution and totals. [R. Belmont]
nubus/cards.cpp, apple/maclc.cpp: Support a list of cards for only the original Macintosh LC. [R. Belmont]
- add support for address modifiers
- add support for shared interrupt request lines
- add support for interrupt acknowledge daisy chain
- add support for bus error
- add slot device option aggregator
- standardized slot device file, device and class naming
- enp10: implement vme interface
- hk68v10: convert to slot device, improve boot vector and rom handling
- mzr8105: convert to slot device, improve boot vector and rom handling, add vme short space access
- mzr8300: convert to slot device, expose to bus
- sys68k*: convert to slot device, improve boot vector and rom handling
- force/fccpu20: converted to slot device
- sgi/ip4: converted to twin tower chassis with ip4 slot device
New working software list items
-------------------------------
c64_cart:
Disc Drive DD-001 (v1.1) [Steve Gray], Disc Drive DD-001 (v1.0) [LHS]
c64_flop_misc:
Games and Utility Disc (v1.1) [LHS]
bus/vidbrain: add info_manager and comp_language cartridge types
Software list items promoted to working
---------------------------------------
vidbrain: The Computational Language [hap, Sean Riddle, Ianoid]
This isolates the ATA disk drive interface implementation from the
physical parallel ATA device interface. The ATA Flash PC Card is no
longer a kind of parallel ATA device.
- use address_maps instead of catch-all handlers;
- implement rd4 and rd5 line views;
- converted a800_rom_williams_device to the new system, make almost every entry in mega* and prisma* SW to actually boot;
- bus/a800: implement maxflash_1mb / maxflash_8mb devices.
* This allows loading arbitrary collection of .xex files built thru Maxflash Cartridge Studio program as flash ROM binaries;
- bus/a800: implement sic_128kb / sic_256kb / sic_512kb flash ROM devices;
- bus/a800: implement ast2k, atrax, Blizzard 32kb, Adawliah, SpartaDOS 128KB, A5200 Super Cart variants;
- bus/a800: implement Super Charger math unit device;
- a800_slot.cpp: fix xegs cart default slot for loose cart loading;
- a800_carts.h: merge a800_turbo64 and a800_turbo128 into single a800_turbo slot option;
- bus/a800/a800_slot: split a5200 to own interface
New working software list additions
-----------------------------------
a800.xml: Maxflash Cartridge Studio - Demonstration Workbook [Atarimax Team], SIC! 31-in-1 Demonstration [SIC! Team]
a800.xml: Atrax 01, Atrax 02, Atrax 03, Atrax 04, Atrax 05, Atrax 06, Atrax 08, Atrax 09, Atrax 10, Atrax 11, Atrax 12, Atrax 13, Atrax 15 [Atarimania]
a800.xml: Prince of Persia (AtariMAX i/f), Prince of Persia (SIC! i/f) [AtariAge]
New software list items marked not working
------------------------------------------
a800.xml: Atrax 14, Atrax 16 [Atarimania], Turbo Hit (Blizzard 32kb) [atari.area]
a5200.xml: Bosconian 5200 - Star Destroyer (Ultimate Version) [AtariAge]
* Use "-rom file.bin" with the user-defined ROM card to make your own custom Apple. File must be 12KiB and goes in
D0/D8/E0/E8/F0/F8 order.
a2bus: wire up a method to assert the reset line on the slots. This is important for the ROM card. [R. Belmont]
apple/apple2.cpp,apple2e.cpp,apple2gs.cpp,apple3.cpp: Reset the a2bus when the 6502/65816 is reset. [R. Belmont]
apple/apple2gs.cpp: Reset the softswitches like a IIe on Control-Reset. [R. Belmont]
apple/apple3.cpp: Now has the same Control-Reset behavior improvements as the Apple IIs. [R. Belmont]
New NOT_WORKING software list additions (msx1_cart.xml)
------------------------------------------
DPQ-280 Quick Disk Drive
DPQ-280 Quick Disk Drive (alt)
QDM-01 Quick Disk Drive
VY-0002 Quick Disk Drive
- video/pc_vga.cpp: Move everything that doesn't belong to main VGA/SVGA interfaces to per-manufacturer family files;
- shared/pcshare.cpp: retire pcat_base_state::pcvideo_* fns;
- video/pc_vga.cpp: temporary move gamtor_vga_device to misc/gamtor.cpp;
- bus/isa/isa_cards.cpp: retire TGUI9680 from being selected (all refs points to be a PCI card only, there's mention of a VLB card but haven't seen a single retail dump/photo yet)
- bus/isa/svga_trident.cpp: add TVGA9000 ISA card
- bus/isa/svga_tseng.cpp: add earlier ColorImage ET4000AX variant
- bus/isa/svga_tseng.cpp: add Kasan Hangulmadang-16 Korean variant ISA
- Adds a very preliminary implementation of nVidia Riva 128 PCI card, added as a temp target in pc/pcipc.cpp (pcinv3);
- video/pc_vga.cpp: Rework and fix VGA input sense (necessary to allow Riva 128 to survive POST);
- video/pc_vga_s3.cpp: Fix s3_vga_device inheritance (was subclassing from ati_vga_device)
- pc/calchase.cpp: convert custom JAMMA i/f to ISA device;
- pc/calchase.cpp: connect Trident VGA to ISA bus;
-------------------
HC 120 [Nigel Barnes, zedstarr]
New working clones
------------------
HC 100 [Nigel Barnes, zedstarr]
HC 110 [Nigel Barnes, zedstarr]
- 3Fax Modem, 3Link Parallel Printer Interface, 3Link RS232 Serial Interface, and Siena SSD Drive.
psion/psion3a.cpp: Added wakeup with specific keys, and SIBO/Honda expansion ports.
psion/siena.cpp: Added wakeup with specific keys, and Honda expansion port.
psion/workabout.cpp: Added wakeup with specific keys.
machine/psion_asic5.cpp: Partially implemented peripheral mode.
machine/psion_asic9.cpp: Implemented memory protection, and additional external interrupt lines.
util/bitmap.cpp, util/palette.cpp: Marked lots of things constexpr.
Bitmaps don't throw exceptions on allocation failure, they just become
invalid. Almost nothing in MAME actually checks for this.
emu/profiler.cpp: Abort if the profile stack overflows rather than
throwing an exception. This is a developer feature and if it overflows,
the code is broken. Calling a noreturn noexcept function generates less
code than throwing an exception, which adds up.
util/strformat.cpp: Traded away some unnecessary flexibility for more
compact code. The stream objects must derive from std::basic_ostream
now - they can't just be any old objects with the expected operators.
* emu: add defer_access() method, which is useful for keeping the cpu in a loop restarting the current
instruction to emulate waitstates.
* add HP82321A Basic Language Coprocessor
This adds support for the HP82321A Basic language coprocessor, which emulates a HP9816 system with a 68K cpu. See http://www.hpmuseum.net/display_item.php?hw=681 for more details and software to run on this card.
* Got rid of a few more unnecessary uses of simple_list.
* bus/amiga/zorro: Got rid of a pointer member that would make adding
save state support unnecessarily difficult.
* nichibutsu/cop01.cpp: Remove need to remove devices from machine
config.
* bus/hp9845_io: Added HP9871 printer.
New working machines
------------------
Hewlett-Packard HP 9825A
Hewlett-Packard HP 9831A
New working software list items
------------------
hp9825_rom: 9862 Plotter/Gen I/O ROM for 9825
hp9825_rom: General/extended I/O ROM for 9825
hp9825_rom: General/extended I/O/9862 plotter ROM for 9825
hp9825_rom: General/extended I/O/plotter ROM for 9825
hp9825_rom: Plotter/Gen I/O ROM for 9825
hp9825_rom: String/Advanced programming ROM for 9825
hp9831_rom: Mass storage ROM for 9831
New not working software list items
------------------
hp9831_rom: Matrix/plotter ROM for 9831
This is the "horsehoe crab" game pad version of the Denpa Micom Soft
Analog/Digital Intelligent Controller System (the other version is the
desktop "cyber stick").
Mega Drive games only support this controller in analog mode (the
default). Digital mode is designed to be used for games on computers
with MSX-style controller ports that don't support analog controls.
Use a memory view to switching between Game Gear and Master System compatibility I/O space mapping. Got rid of most of the conditional code checking whether it's a Game Gear driver.
Got rid of the special Game Gear EXT port slot. It's the same thing as a Mega Drive controller/expansion I/O port with a different connector.
sega/mdioport.cpp: Added a variant for the Game Gear with the TH/PC6 interrupt latch, and added it to the Game Gear.
-cpu/avr8: Added minimal ADC support (in particular, ADC interrupts are
not implemented).
-sega/megadriv.cpp: Further broke up base Mega Drive class.
* Created a light-weight base class with just the core functionality,
used for "Genie" hardware (Puckman Pockimon).
* Moved built-in controller emulation to a derived class so it isn't
lurking underneath the consoles with pluggable controllers.
* Moved the Sun Mixing Mega Drive bootlegs to their own source file -
they're substantially different, not using the I/O blocks for input.
-sega/sms.cpp: Untangled SG-1000 Mark III slightly.
- Added cards ETI Real Time Clock, ETI Sound Card, Microtanic Real Time Clock, TUG Combo Card, and TUG EPROM Storage Card.
mt6809: Fixed keyboard input, RALBUG commands now work, and promoted to working.
- Added support for FLEX and BBC Micro floppy formats.
spinveti: Replaced incorrect ROM to load at &F800.
Adapted all Mega Drive hardware drivers to work with the new I/O port
device, and moved based Mega Drive 68k peripherals to a common address
map function.
sega/megadriv_acbl.cpp: Added base machine configuration to attach an
optional I/O port to the EXP port, and moved some stuff to derived
classes.
sega/megadriv_rad.cpp: Simplified code.
bus/sms_ctrl: Added an RS-232 adapter. Only sending from the console to
the attached device works so far, reception will have to wait.
- Make CC 90-232 serial/parallel interface an extension device
- Eliminate spurious custom Centronics interface from MO5NR (CC 90-232 is used with this model instead)
- Make RF 57-932 serial interface an extension device
- Make MD 90-120 modem interface an extension device (emulation still needs work)
- Make Midipak an extension device and completely rewrite emulation
- Make MEA8000-based speech interface an extension device
- Configure 1 MHz E clock for extension bus
- Add FIRQ & IRQ outputs from extension bus
- Expand extension I/O address range from $x7D0-$x7DF to $x7C0-$x7FF
- Clean up various bits of driver code
Rationalised interface, got rid of TH from the "pulled" lines, and
extended to support output on all data lines. Renamed to be less
specific as the same interface is shared by multiple consoles.
Removed a lot of unnecessary indirection through I/O ports and multiple
levels of inversion in peripheral emulation that was obfuscating the
code.
Made Rapid Fire Unit switches toggles so they can be assigned to
controller buttons and switched on/off easily during gameplay. You can
still see/change the current state in the Toggle Inputs menu if you
don't want to assign buttons.
Implemented idle timeout in Furrtek 4-player Master System adapter.
Improved crosshair tracking in Graphic Board, added ability to
raise/lower pen, and greatly cleaned up code.
Fixed paddle controller when used with export consoles.
Added 3-button and 6-button Mega Drive control devices.
sega/sms.cpp: SG-1000 Mark III has pin 7 of controller ports tied low -
indicate this to attached controllers (this pin became TH on the Master
System).
sega/mdconsole.cpp: Replaced controller emulation in the driver with
Sega controller ports. Also removed some vestigial code from the driver
base class.
sharp/x68k.cpp: Replaced controller emulation in the driver with MSX
controller ports.
bus/msx/ctrl: Added a Sega controller adapter device, supported by
X68000 software including chelnov and ssf2.
*bus/coco: Remove real-time clock and no-halt functions from Radio Shack floppy disk controller.
* bus/coco: Added Disto Super Controller II floppy disk controller that contains no-halt functionality
* bus/coco: Added "mini expansion bus" that the SCII uses for add on cards, and added slots to SCII and Disto RAM cartridges.
* bus/coco: Added Disto "Realtime Clock" MEB slot device (also includes a parallel printer interface).
* Copied or moved Bee Cards entries from msx1_cart.xml to msx1_bee_card.xml.
* Copied or moved SoftCard entries from msx1_cart.xml to msx_softcard.xml.
gameboy.xml: Changed default NVRAM fill for dbzgeki to 0xff - this will
cause it to treat the three save files as empty rather than starting in
a glitchy state.
New working software list items
-------------------------------
Dragon Ball Z English [lana_chan_, taizou]
* Made some devices which were not present in all msx models optional; install software lists based on components of the system.
* Updated hardware descriptions.
* Implemented bruc100 firmware banking.
* Added m5.00.011 version of Yamaha SFG05 cartridge.
* Fixed phc28 RAM misconfiguration.
* Added AX-230 internal games mapper.
* Started adding support for FS-A1FM modem.
* Updated input port definitions.
* Added support for kanji font from raw FS-A1FX ROM dump.
* Started adding support for RS-232.
* Added support for Toshiba HX-M200 kanji cartridge - allows hx21 and hx22 to start their firmware.
* Fixed most floppy problems.
* Marked all ROMs that need verification as bad dumps.
* Moved floppy controller and drive configuration from main state to msx_slot disk devices.
New working machines
---------------------------------------
Hitachi MB-H1 (MSX1, Japan)
Mitsubishi ML-8000 (MSX1, Japan)
Panasonic CF-2700 (MSX1, UK)
Pioneer", "UC-V102 (MSX2, Japan)
Sakhr AX-200 (MSX1, Arabic/English)
Sakhr AX-230 (MSX1, Arabic)
Sakhr AX-350 II (MSX2, Arabic)
Sakhr AX-500 (MSX2, Arabic)
Sanyo MPC-25FS (MSX2, Japan)
Sanyo PHC-23 / Wavy23 (MSX2, Japan)
Toshiba HX-32 (MSX1, Japan)
Toshiba HX-51I (MSX1, Italy, Spain)
Yamaha SX-100 (MSX1, Japan)
Victor HC-80 (MSX2, Japan)
New working clones
---------------------------------------
Frael Bruc 100-2 (MSX1, Italy)
Hitachi MB-H1E (MSX1, Japan)
Philips NMS 8250/16 (MSX2, Spain)
Sakhr AX-200M (MSX1, Arabic/English)
Sakhr AX-350 II F (MSX2, Arabic)
Sony HB-101 (MSX1, Japan)
Sony HB-75 (MSX1, Japan)
Sony HB-F500 2nd version (MSX2, Japan)
Spectravideo SVI-728 (MSX1, Spanish)
Talent DPC-200 (MSX1, Argentina, international keyboard)
Toshiba HX-20E (MSX1, Spain)
* qx10: Rework keyboard code
* Split keyboard into ascii and hasci variants
* Update keymappings to be more complete
* Add output_finders for keyboard LEDs
* Keyboard now uses sync serial, fixes timing issues with CP/M Plus
* qx10: Add layouts for both hasci and ascii keyboards
* Reset the system from a timer callback for the Vast Fame/SL/J.Y.
Company multi-game cartridges. This fixes games on gbcolor.
* Reset system when leaving configuration mode for GBCK003. Fixes most
issues with games.
* Moved GBCK003 to its own source file, and added notes for both
multi-game cartridge types.
Cartridge RAM features are not implemented yet.
New working software list items
---------------------
gbcolor.xml: New Super Color 145 in 1 (China) [taizou, Vas Crabb]
Allow cartridges to install themselves rather than putting accesses
through trampolines. Use memory banks even when they aren't installed
directly, as it exposes script bindings and declares intent.
Added support for MBC6 Flash, and MBC7 two-axis accelerometer and 128*16
or 256*16 serial EEPROM. Added basic support for Game Boy Camera image
capture (various M64282FP processing features are not implemented).
Improved MBC3 real-time clock emulation.
Added basic support for Hudson Soft HuC-1 cartridges (infrared I/O not
supported) and HuC-3 cartridges (real-time clock and infrared I/O not
supported).
Added full support for Vast Fame VF001 cartridges.
Separated Mega Duck flat and banked ROM cartridge types, and allowed
software list items to specify whether a cartridge has fixed and
selectable 16K banks or a single selectable 32K bank.
Added support for RAM sizes smaller than 8K that will be mirrored in the
0xA000-0xBFFF area. Implemented correct ROM mapping for sizes that are
not powers of two. Corrected size of MBC2 internal static RAM.
Added support for various hypothetical cartridge wirings, such as MBC5
with outer ROM banking for up to 128M, M161 and Wisdom Tree cartridges
with flat RAM, and MBC1 or MBC5 with fewer than the maximum number of
inner ROM bank lines used.
Fixed logo spoofing logic for many pirate cartridges, including Rocket
Games, Sachen MMC1 and MMC2, Sintax, Li Cheng, and Niutoude. Identified
fine bank mask register for GBCK003 board.
Added basic support for GBX format ROM images. Added heuristic for
detecting raw dumps of M161 cartridge images. Removed unreliable
unlicensed cartridge detection heuristics - these need to be
reimplemented in a better way.
Software list items promoted to working
---------------------------------------
gameboy.xml:
Game Boy Camera (Europe, USA)
Game Boy Camera Gold (USA)
Pocket Camera (Japan, Rev 1)
gbcolor.xml:
Command Master (Japan)
Kirby Tilt 'n' Tumble (USA)
Korokoro Kirby (Japan)
Street Hero (Taiwan)
Thunder Blast Man (Europe)
4 in 1 + 8 in 1 (World, 4B-001)
4 in 1 + 8 in 1 (World, 4B-002)
4 in 1 + 8 in 1 + 16 in 1 (World, 4B-005)
4 in 1 + 8 in 1 (World, 4B-007)
31 in 1 Mighty Mix (Taiwan)
31-in-1 Mighty Mix (Australia)
Nǚwáng Gédòu 2000 (Taiwan)
Chāojí Gédòu 2001 Alpha (Taiwan)
Gédòu Jiàn Shén - Soul Falchion (Taiwan)
-Moved some stuff out of misc and skeleton:
* Moved Innovative Concepts machines to their own project.
* Moved various things out of skeleton to existing company projects.
* added emulation of required/used AXC51 / AX208 extended operations
* added preliminary emulation of required/used AXC51 / AX208 features
* added support for many Monon specific features, such as the video controller
* most games are playable, those not requiring a card/badge scanner to function at all are promoted
* no music, as it's contained in a game specific MCU under a glob on each cart
Added SOURCEFILTER option to specify a driver filter file in your make
options, e.g. like make SUBTARGET=custom SOURCEFILTER=mydrivers.flt (or
put it in your useroptions.mak if you'll be using it a lot). It
functions more-or-less like SOURCES on steroids.
Changed the way system/device source file paths are displayed to suit
the new source layout better. INI file loading hasn't changed, that
still just uses the base file name.
Added overlooked trigger to src/bus.lua to include NES controller bus if
the NES zapper sensor is needed.
* Changed name of cards for slot selection to "mdc48" and "mdc824" as
they're unrelated to the later 8*24 GC card.
* Also cleaned up code substantially and got rid of artificial
differences between Display Card 4*8 and 8*24.
* Moved lists of NuBus and SE/30 PDS cards to a common place.
* Got some class declarations out of headers to reduce recompiles.