0.264
- New games: 'Hana Awase 6 Part II' and Vampire (prototype?)
- New Non-Working games: Alantin - Aladdin's Magic Lamp, Bao Qing Tian, Bu Bu Car (English), Cal Omega - Game 21.4 (Wild Double-Up Poker), Captain Shark (Ver. CS.01.6, Apr 21 2006), Caribe, Charleston (V2.1, Catalonia), Dark Seal (8-liner), 'Festival: Goldfish Scoop', Gladiadores (V1.0, CAA), Happy Farm (Ver. US.01.02.B), Happy Lucky!, Jinxiu Zhonghua, Maque Wangchao / Chaoji Damanguan 2 - Jiaqiang Ban (China, V100C), New Carrera - Version 2000, New DongmulDongmul, Prize Zone Gold (USA, v2.01), Pull The Trigger, San Se Caishen (Version 0502), Shizhan Sanguo Ji Jiaqiang Ban (Version 8.9 980413), Speed Master (Ver. V1.0, Apr 29 2004), Tong Zi Maque and Wicked Witch (Ver. AA.01.A)
- New clones: 1942 (Itisa bootleg), Animal House (set 4), Bagman (bootleg on Moon Cresta hardware, set 3), Bomberman (Version 6.6, Avraam bootleg), Bomberman (Version 6.6, J.T. bootleg), Corsarios (Cirsa slot machine, V5.10D, Catalonia), 'Diviertate Galaxia (Multivideo, Spanish bootleg of Galaxian)', Dribbling (Automave), Flicky (128k Version, 315-5051, larger roms, newer), Fruit Dream (Japan, Ver. 1.10), Mr Pac-Turbo ('Made in Greece' Fermin bootleg), Ms Pac Man Twin (Argentina, set 2), Rail Chase (Japan, Rev B), Run Run (Do! Run Run bootleg), Speed Master (Ver. V1.0, Apr 28 2004), Speed Master (Ver. V1.0, May 23 2003) and Two Minute Drill (Ver 2.2A 1993/10/18)
- New AGEMAME games: Instant Winner (Spanish)
- New PinMAME games: Transporter the Rescue (LA-1)
- New drivers: fstgfish.cpp, haplucky.cpp, przone.cpp, pullttrigger.cpp, sterz80.cpp, ticz80.cpp and vampire.cpp
- New devices: atari_cx85, clgd5446_pci, g80_1500, h8s2310, h8s2311, h8s2312, h8s2313, h8s2315, h8s2316, h8s2317, h8s2318, h8s2319, hle_ps2_mouse, it8705f, kb_3270pc, kb_ec1841, kb_iskr1030, kb_ms_natural, kb_pc83, kb_pcat101, kb_pcat84, kb_pcxt83, keytronic_pc3270, keytronic_pc3270_at, mediagx_cs5530_video, mediagx_vga, mm74c922, mm74c923, nmk214, ns32381, pc_kbdc, pdc20262, przone_jamma_if, s3_86c764_vga, s3_86c864_vga, s3_86c964_vga, s3_86c968_vga, sis6236_vga, sis6326_agp, sis85c496_host, vision864, vision964, vision968 and w83787f
- CPU
. DEC T11: Improved trace trap processing (t11\t11.cpp) and added basic interrupt processing to the (MESS) K1801VM1 CPU.
. Fujitsu MB884x: Clean up spacing, single line comments and shorthand variable types (mb88xx\mb88xx.cpp and mb88xx\mb88dasm.cpp).
. Hitachi H8
. Split rx and tx clocks to make full duplex work. Use logmacro. Entirely revise clocking. Fixed sync transmissions. Suppress SCK transition at end of transmit sequence (h8\h8_sci.cpp). Clock divider table was the wrong way around (h8\h8_watchdog.cpp). Don't detect an nmi at power-on when initial pin state is 'ASSERT_LINE'. Removed unneeded trampolines (maybe a leftover from the past when emumem didn't support it). Fixed issue with multiple pending edge triggered irq (h8\h8_intc.cpp).
. Prevent multiple interrupts when timer wasn't clocked. Removed impossible check. Overflow only happens when m_counter_cycle is the full range. Edge case: If live counter is above m_counter_cycle, first count to 0xff instead of immediate modulo. Fixed edge with compare match if both tt and tgr are larger than counter_cycle. Compare match event was off by 1 (h8\h8_timer8.cpp and h8\h8_timer16.cpp). Removed unneeded timer_tick function (h8\h8_timer8.cpp).
. Fixed addx8/subx8 H flag when C=1 (h8\h8.cpp). Fixed absolute address bst/bist opcode IMM data (h8\h8.lst). h8s2329 ADCR CKS1 is on bit 3 and correct typo (h8\h8_adc.cpp). Apparently fixed Funcube watchdog reset issue. Improved overflow flag reset (h8\h8_watchdog.cpp). Fixed standby time travel problem. Added more variables to savestate (h8\h8*). Fixed N flag with exts opcode, regression with jsr abs8i, bst abs16 opcode and rte in normal mode (h8\h8.lst).
. Correct typo with DASM abs16 (h8\h8d.cpp). Added internal rom to address map for some h8 devices (h8\h8*). Digital I/O ports are 8bit (probably leftover from when they were in AS_IO address map) (Misc h8 drivers: flashbeats.cpp, hrdvd.cpp, metro.cpp, namcond1.cpp, namcos10.cpp, namcos12.cpp, seta2.cpp and invqix.cpp).
. Write hi-z output pins as 1 (h8\h8_port.cpp). Don't save the mode settings (h8\h8.cpp).
. Hitachi H8S/2000: The abs16/abs32 variants of the bit operations seem to have been introduced in the h8s2000
. Hitachi H8S/231x: Added h8s/2319 family
. Hitachi H8S/2329: Does not have ICR registers (h8\h8s2329.cpp)
. Hitachi H8S/2600: Moved mac_saturating var to H8S2600 and hook it up
. Hitachi H8/333x: Added readback of wscr and stcr (h8\h83337.cpp)
. Intel I386: Handle double and triple faults (i386\i386segs.hxx)
- DEVICE
. AGP: Separated AGP cards to their own container. Added SiS6326 AGP card (pci\sis6326.cpp) and SiS6326 VGA core (video\pc_vga_sis.cpp).
. ATAPI CD/DVD-ROM and SCSI CD/HD: Fixed MSF to LBA conversion for T10MMC_CMD_PLAY_AUDIO_MSF. Clean up how to_msf/to_lba is used throughout the code (machine\t10mmc.cpp). Fixed minor error in previous refactoring (machine\t10spc.cpp).
. Cassette: Added support for saving cassette images in FLAC format (imagedev\cassette.cpp and formats\flacfile.cpp). Implemented seek/tell callbacks for FLAC library (util\flac.cpp).
. Cirrus Logic GD54xx: Misc cleanups and bulk replace device naming (video\pc_vga_cirrus.cpp). Added Cirrus Logic GD5446 card (pci\clgd5446.cpp). Added start address bit 19 for GD5430+ (video\pc_vga_cirrus.cpp). Fixed pitch offset (video\pc_vga_cirrus.cpp).
. Floppy: Fixed apparent logic error in write splice setting test (formats\flopimg.cpp)
. Intel 82371 southbridge ISA bridge: Fixed PIC mapping (machine\i82371sb.cpp)
. MIDI: Cleaned up MIDI interface a little more (interface\midiport.h)
. Network: Cleaned up network interface a little more (netdev\pcap.cpp, netdev\taptun.cpp)
. NMK214 Graphics Descrambler
. Added NMK214 graphics unscrambling device (nmk\nmk214.cpp). The current implementation is less than ideal due to inflexibility of device_gfx_interface.
. Hooked up NMK214 device for Saboten Bombers. Use emulated NMK214/NMK215 protection for Bombjack Twin, GunNail, Nouryoku Koujou Iinkai and Super Spacefortress Macross.
. S3 Vision: Separated Vision864/964/968 from Trio64 and fixed SDD UVCONFIG.EXE detection. Fixed start address shift in extended video mode and heavy 'Prize Zone Gold' flicker and SDD scroll tests (video\pc_vga_s3.cpp).
. Serial interface: Changed the rx start delay to more realistic 0.5 cycles (emu\diserial.cpp)
. VGA: Standardized DEFINE_DEVICE_TYPE descriptions (video\pc_vga_*). Bulk rename s3_vga_device -> s3trio64_vga_device. Retire vblank_timer_cb override and added a latch_start_addr fn in place (video\pc_vga.cpp).
. Voodoo 2 PCI: Fixed Voodoo 2 PCI config values (video\voodoo_pci.cpp)
- SOUND
. GI SP0256 Narrator Speech Processor: Removed reset lrq timer workaround that was added there for (MESS) Odyssey 2 killer bees. Bad luck: Everything o2 works same as before except turtlesu (bus\odyssey2\voice.cpp), instead of failing to detect The Voice only sometimes, now it happens more commonly. Not due to the removed timer, but actually the stream updates before accessing I/O which should be more accurate. When callbacks are used, add bg timer like SP0250 does.
. Sound Blaster 16: Added remap to sb16 (isa\sblaster.cpp), allow Prize Zone Gold to boot to VGA mod.
- astropc.cpp and matrix.cpp: Hookup MediaGX CS5530 Bridge/IDE Controller devices. Prepare for MediaGX virtual VGA hookup. Documented GP/DC maps (machine\mediagx_host.cpp). Moved VGA to own core (video\pc_vga_mediagx.cpp).
- bfm_sc1.cpp and bfm_sc2.cpp: Changed const -> constexpr, fixes undefined references when building with -O0 on macOS (bfm\bfm_bd1.h and bfm\bfm_bda.h).
- bwing.cpp: Moved from bankdev to view
- cave.cpp: Moved Cave drivers and devices to atlus project and a new cave project
- mpu4vid.cpp: Fixed row table addressing mode as per documentation (video\scn2674.cpp)
- mtouchxl.cpp: Fixed PIC and RTC mapping. Added ISA irq pins and int pin mapper (machine\sis85c496.cpp)
- nss.cpp, sfcbox.cpp, snesb.cpp and snesb51.cpp: Fixed wraparound in (stack,S),Y addressing mode. Emulated (direct,X) emulation mode wraparound bug and fixed handling of direct page accesses in emulation mode. Ignore emulation mode for 24-bit pointer reads/writes. Force usage of native 16-bit stack handling for 65816-exclusive stack instructions. PEI also forces native 16-bit direct page handling. PLB reads from ($200) instead of ($100) when S=$1FF in emulation mode (g65816\g65816.cpp/h, g65816\g65816op.h).
- pacman.cpp: Made code less confusing (pacman\pacman_v.cpp)
- photoply.cpp: Converted to new PCI
- taito_h.cpp: Updated notes, DIP switch defaults and emulation flags. Marked Syvalion as not supporting cocktail mode and added notes about issues. Corrected default lives DIP switch settings for Syvalion to match manual. Added notes about ROM type selection settings.
- tecmo.cpp: Changed Gemini Wing (World) and Rygar (US set 1) 'Difficulty' setting names to better reflect documentation
- unico.cpp: Verified OKI frequency and pin 7 and added DIP location
- Block Hole: Made it use view instead of bankdev
- Cal Omega - Game 7.9 (Arcade Poker): Added proper bipolar PROM dump
- Cosmo Gang the Video: Added zoom table ROM to Cosmo Gang the Video (US) and clone (Japan). Content is the same as other games on the platform.
- Cybattler: Added TMP91640 MCU program. Also added for Chimera Beast, marked as a bad dump until it can be confirmed to use the same mask ROM.
- Dribbling: Added netlist sound simulation. Marked as imperfect sound for now due to lack of a suitable JFET model for the PARATA function generator.
- Funcube /2/3/4/5: Use memory_share_creator for NVRAM. Apparently fixed Funcube watchdog reset issue (h8\h8_watchdog.cpp).
- Game King (Set Chips): Redumped keychip key00016
- Game Magic: Clarify set_model detection (ata\xm3301.cpp). Added v8000 M68EC020 roms.
- GameCristal: Housecleaning (machine\sis5513_ide.cpp). Initial implementation for IT8705F Super I/O. Added UARTs and non-working FDC (machine\it8705f.cpp). Replaced PS/2 controller back to LLE. Resolved hangs described in PR #11797 by using a microsoft serial mouse (machine\sis950_lpc.cpp). More BIOS notes.
- Gomoku Narabe Renju: Fixed frequency of oneshot voices
- Kozure Ookami: Game uses waveform select function of YM3812. Previously MAME used YM3526. This results incorrect tone.
- Monkey Land: Redumped u26 GFX ROM for Monkey Land and clone (Ver. AA.13.B)
- Neo Mania: Added parallel port device notes
- Odyssey: Fixed BIOS expansion ROM mapping. Added 'S3 86C968 Vision968' card. Start implementing new MMIO for Vision 968. Fixed screen orientation. Preliminary COM1/COM2/LPT1 support (machine\pc87306.cpp). Added SGI BIOS 62.
- Quake Arcade Tournament: Replaced Laguna 3D experiment with Voodoo Banshee card
- Super Cherry Master (v1.0): Added PLDs dumps for clone Animal House (set 3).
- Yumefuda [BET]: Added DIP locations
- Fixed rom names in exidyttl.cpp, m72.cpp and neptunp2.cpp
- Description changes of Chaoji Damanguan II (China, V754C), Corsarios (Cirsa slot machine, V6.0D), Dribbling (Videomac bootleg, Brazil), Flicky (128k Version, 315-5051, larger ROMs), Flicky (128k Version, 315-5051, larger ROMs, newer), Fruit Dream (Japan, Ver. 1.20), Jikkyou Pawafuru Puro Yakyu EX '98 (GC811 VER. JAA), Jikkyou Pawafuru Puro Yakyu EX (GX802 VER. JAB), Manguan Caishen (China, V103CS), Manguan Daheng (Taiwan, V123T1), Manguan Daheng (Taiwan, V125T1), Ms Pac Man Twin (Argentina, set 1) and Multi Points (V1.0, CAA)
- Dipswitch fixes in albazg.cpp, taito_h.cpp, tecmo.cpp and unico.cpp
- Renamed (driblingbr) to (driblingvm)
- MAME
. VIDEO RENDERING SYSTEM
. Set minimum width of scaled bitmap for font chars used in .lay files to 1 if it's larger than 0.5, this prevents lowercase l and i not showing while the text label is still readable (emu\rendfont.cpp).
. Fixed off-by-1 error with alpha blended disk element (emu\rendlay.cpp)
. Increased texture hashtable size ((MESS) Chess Robot Adversary were crashing with opengl renderer) (render\drawogl.cpp)
. DEVICE
. Removed fread overloads that allocate memory for output (emu\diimage.h)
. UI
. Removed dependency from OSD network device to libemu. This allows save states to be created and loaded when network interfaces are present. device_network_interface may need some more attention to get save states taken while receiving a packet to work properly (osd\osdnet.cpp).
. INPUT
. Various cleanup and minor enhancements (osd\modules\input\*)
. Got rid of the DirectInput key code macros. DirectInput headers are always available on Windows - it's just an opportunity for bygs (input\input_common.h). Added default names for keys mapped to MAME's "other switch" type (input\input_common.cpp).
. Simulate Pause key being held for 30ms, similarly to what's done for Caps Lock on macOS with SDL. Also added a gross hack to give "correct" names for Pause and Num Lock. Properly align buffers for RAWINPUT header (input\input_rawinput.cpp).
. Get default key names from SDL. Not really that useful as it isn't aware of the current keyboard layout. Key map files are still needed for anything other than a US ANSI layout (input\input_sdl.cpp).
. Save state: Made illegal save state registrations always fatal (emu\save.cpp)
. PLUGINS: Fixed renamed sets (plugins\hiscore\hiscore.dat)
. CHDMAN:
. Fixed splitframes handling. Added warning when extracting GD-ROM CHDs to cue/bin format (tools\chdman.cpp).
. Refactored parse_cue to handle GD-ROMs. Don't discard any data from GD-ROM cue/bin input including pre-gap data (util\cdrom.cpp). Fixes chdman 0.263 error does not compress dreamcast games (GitHub #12081 and #12087).
. Implemented seek/tell callbacks for FLAC library (util\flac.cpp)
. Added wrappers for common patterns (util\ioprocs.cpp)
. Changed output size of load to size_t (util\corefile.cpp)
. Work around spurious maybe uninitialised warning with certain GCC versions (util\unzip.cpp)
. Eliminated core_crc32 wrapper function in favor of util::crc32_creator (util\coreutil.cpp, debug\debugcpu.cpp, emu\rendfont.cpp, emu\save.cpp)
- Compiling
. Use a raw string literal for regular expression. Fixes Pylint invalid escape sequence warning (scripts\build\verinfo.py)
. Consolidated drivers in single files (bloodbro.cpp, bwing.cpp, cabal.cpp, darkmist.cpp, dcon.cpp, deadang.cpp, kncljoe.cpp, lemmings.cpp, raiden.cpp, srmp2.cpp, stfight.cpp, toki.cpp, unico.cpp and wiz.cpp)
. Removed unwanted comments/separators in various drivers
. Fixed compile error in 3rdparty\asio with newer Emscripten versions (scripts\genie.lua) and in 3rdparty\bx (3rdparty\bx\src\debug.cpp).
. Get rid of swlist folder (docs\swlist\*). Removed [TTL] and [BET] tags in titles (misc drivers).
- Debugger
. Fixed checksum on Windows and m68000 register names (debugger\debuggdbstub.cpp)
. Added support for lowercase hex to printf/logerror. Also simplified implementation by better leveraging util\strformat.h (debug\debugcmd.cpp).
. Added NUL-terminated string argument support to printf/logerror. Use %s to read NUL-terminated strings from emulated memory. Precision sets maximum length. Also added left-justification option for numeric and string formats. Made documentation more consistent and removed duplication (debug\debugcmd.cpp).
"Theory is when you know everthing but nothing works. Practice is when everything works but no one knows why.
In our lab, theory and practice are combined: Nothing works and no one knows why."