MAMEWorld >> News
View all threads Index   Threaded Mode Threaded  

Pages: 1

MASH
MASH
Reged: 09/26/03
Posts: 1800
Loc: Germany
Send PM


MAMEinfo 0.278 :)
#400665 - 07/01/25 06:32 PM


MAMEINFO.DAT

* Updated to MAME 0.278 - http://git.redump.net/mame/log/

* Added Source/Listinfo changes

* Newest Bugs (1st Jul)

* Added/Reorganized 'Recommended Games'

* Fixed Mameinfo.dat infos




Download at: http://mameinfo.mameworld.info/

MAME Testers at: https://mametesters.org/view_all_set.php?sort=last_updated&dir=DESC&type=2

Recent MAME builds: https://github.com/mamedev/mame/actions
('Sign in' + Click on 'CI (Windows)' and then on a MAME post with a green check mark to download the mame-windows-gcc-XXXXXXXXXXXXXXX file)

Ashura-X's Nightly MAME builds: http://ashura.mameworld.info/nightlybuilds/builds.html




0.278

- New games: Block Fever, Majiang Xingyun Shenlong (China, D121), Super Shanghai 2001 (set 1, red board), Trapeze / Trampoline and Victory Paradise II (V9)
- New Working games: Alantin - Aladdin's Magic Lamp, Bandit (US prototype), Bomberman (Version 6.6, Avraam bootleg), Bomberman (Version 6.6, J.T. bootleg), Dark Seal (8-liner), Huahua Shijie 5 / Feixing Shijie (V107CN), Kaimen Hu, Master Boy Version II (Italy, set 2, checksum 629B), Qiji 6 (V118CN), Super Shanghai 2000 - Wrestle Fiesta (30% bonus, red board), Super Shanghai 2000 (set 1, green board), Super Shanghai 2000 (set 2, green board) and Zuqiu Wang - King of Football
- New Non-Working games: 3 Mini, Action, AV-Mahjong Yanchana Koneko (Japan Ver 1.01 1990/08/23), Bai Bian Dou Dizhu, Biorhythm (For-Play), Challenge Golf (J 990326 V1.000), Chanbara Kids (Japan), Chaoji Bie Qi (V205CN), Chaoji Gan Dengyan (V110CN), Dahua Xiyou (V201CN), Dingji Dou Dizhu, Dou Dizhu II, DS-5000 Driving Simulator, Extrablatt, Fengdou Jiaqiang Ban, Fengkuang Dou Dizhu, Flashback, Gangbao Sifang, Huangpai Zuqiu Plus / Chaoji Shuangxing Plus (V103CN), Huo Qilin (V116CN), Jan Mu, Jin Huangguan 3-dai (V445CN), Jungle King 2004 (V101US), Loto-Play (set 1), Mahjong Jongoh (Japan, TTL800-03-04), Mahjong Sweet Academy (Japan, TSM010-002), Mahjong The Mysterious World Returns (Japan), Majiang Zhengba (V103CN), Majiang Zhizun (S100CN), Mega Turbo 2, Mueve, Mushiking The King Of Beetles 2003 Second (Japan), Neo Carnival, Ob-La-Di, Paint 'N Puzzle Super, Piaoliang Jinhua, Piaoliang Jinhua 2, Play 4 Texas Hold'em, Progressive Clown Magic, Pub Time Darts v1.4, Royal 5+ (V101US), San Da Ha, Shenzhou Jielong, Special Dream 9 (v1.0.7G), Super Match 2003 (Version 3.1 2003-11-04), Super Multi (DOB), System 3000 Kramergame Poker (encrypted set 4), System 3000 Kramergame Poker (encrypted set 5), SystemSP Factory Check Server, Tian Sheng Hao Shou (V101CN), Top Draw (encrypted, set 1), Turbo Poker 1 (set 1), unknown Kramer Poker (encrypted), Vision Quest, Wakeng, Xin Jin Huangguan (V400CN) and Xiyou Douniu (S110CN)
- New clones: 005 (earlier version?), Allfred, Animal Wonders (ver A900 66), Animal Wonders (ver A900, Bicigo bootleg), Asterix und Kleopatra, Bang! (version 2, checksum 140E), Bang! (version 2, checksum D35D), Big Karnak (ver. 1.0, checksum 1e38b94), Break Thru (World), Cal Omega - Game 7.9b (Arcade Poker, bootleg?), Chaoji Da Manguan II (China, V765C), Cherry Bonus V Five (V1.4), Cosmic Battle (Recreativos Franco bootleg of Space Invaders), Double Axle (US, Rev 1, set 2), Dream 9 Flower (v1.00c, set 2), Fantastic Spacians (hack of 'Super Galaxians'), Flower (Japan), Football Power (version 1.4), Football Power (version 4.6), Funny Land de Luxe (W2 set), Funny Land de Luxe (W4 set), G-LOC Air Battle (Japan), Glass (development PCB), Glass (ver 1.0, Break Edition, checksum 2B43D337, 10 Nov 1993), Glass (ver 1.0, Break Edition, checksum 6241CD67, 16 Nov 1993), Glass (ver 1.0, Break Edition, checksum EBCB0BFE, 22 Nov 1993), Glass (ver 1.1, Break Edition, checksum 3D8A724F, Version 1994, unprotected, Korea), Glass (ver 1.1, Break Edition, checksum 49D5E66B, Version 1994, set 1), Glass (ver 1.1, Break Edition, checksum D7AF5496, Version 1994, US), Glücks-Stern, Goldart (France, Covielsa license), Goldart (Germany), Goldart (PIC16C54, France, Covielsa license), Goldart (PIC16C54, Germany), Goldart (PIC16C54, Portugal), Goldart (PIC16C54, Spain), Goldart (PIC16C54, United Kingdom), Goldart (United Kingdom), Grand Hand, GTI Double or Nothing Draw Poker (GoT PCB, set 1), GTI Double or Nothing Draw Poker (GoT PCB, set 2), GTI Double or Nothing Draw Poker (GoT PCB, set 3), Gun Gabacho (Japan, version 2, checksum 1C8C), Gun Gabacho (Japan, version 2, checksum B75B), Happy Farm (Ver. IN.01.02.B), Happy Pierrot (V987271), HI-LO Double Up Joker Poker (set 2), In The Hunt (Korea?), Janpai Puzzle Choukou (Japan 010820 Publicity), Jungle King (V105US), Juwel, Karo As, Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (bootleg, ver. 112CN?), Knights of Valour Plus / Sanguo Zhan Ji Zhengzong Plus / Sangoku Senki Masamune Plus (bootleg, ver. 117CN?), Kuaile Xiyou Ji (V102CN), Lady Bug (bootleg on Galaxian hardware, encrypted), Last KM (ver 1.0.0227, checksum 747a7443, prototype), Little Witch (Ver. EN.01.A), Lizard Hunt (unprotected, checksum 25A83609), Long Hu Bang II: Cuo Pai Gaoshou (China, V127C), Long Hu Zhengba 2 (China, VS210M), Long Hu Zhengba 2 (China, VS220M), Loto-Play (PIC16C54), Loto-Play (set 2), Loto-Play (set 3), Loto-Play (set 4), Lucky Star (newer Z180-based hardware, set 2), Magic Bomb (Ver. BR71.A, 30/05/14), Mahjong Gal no Kokuhaku (Japan, set 2), Mahjong Reach Ippatsu (Japan, NM526-01), Maniac Square (unprotected, version 1.0, checksum BEAE), Master Boy (1987, Modular System), Master Boy (1987, Z80 hardware), Master Boy (Italy, set 3, checksum 6918), Master Boy (Italy, set 4, checksum 680C), Master Boy (Italy, set 5, checksum E84C), Master Boy (Italy, test version), Master Boy (Spain, set 3, checksum 6070), Master Boy (Spain, set 4, checksum CC6D), Master Boy (Spain, set 5, checksum DF11), Master Boy Olympic (Italy, set 1, checksum 77A8), Master Boy Olympic (Spain, set 1, checksum 7309), Master Boy Olympic (Spain, set 2, checksum 741B), Master Boy Version II (Italy, set 1, checksum 618F), Master Boy Version II (Spain, set 1, checksum 5A0B), Master Boy Version II (Spain, set 2, checksum 5B1D), Monkey Land (Ver. EN.20.B), Moon Cresta (SNK), Multi Multi, New Splash (ver. 1.4, checksum A26032A3, Korea, set 1), New Splash (ver. 1.4, checksum A26032A3, Korea, set 2), Next Century (bootleg of Defender), Poker (Version 50.02 ICB, set 3 alt), Power Drift (Japan, Rev C), Pro Cycle Tele Cardioline (Salter fitness bike, older hardware, ver. 1.0, checksum 1AF9), Pro Cycle Tele Cardioline (Salter fitness bike, older hardware, ver. 1.0, checksum 5678), Pro Cycle Tele Cardioline (Salter fitness bike, older hardware, ver. 1.0, checksum BAE7), Pro Cycle Tele Cardioline (Salter fitness bike, unknown version), Pro Cycle Tele Cardioline (Salter fitness bike, V.1.0, checksum 3523), Pro Cycle Tele Cardioline (Salter fitness bike, V.1.0, checksum DECA), Pro Stepper Tele Cardioline (Salter fitness stepper, older hardware, ver. 1.0, checksum 6D94), Pro Stepper Tele Cardioline (Salter fitness stepper, older hardware, ver. 1.0, checksum 8BF3), Pro Stepper Tele Cardioline (Salter fitness stepper, older hardware, ver. 1.0, checksum 8E5A), Pro Stepper Tele Cardioline (Salter fitness stepper, V.1.0, checksum 2B83), Puzz Loop 2 (Japan 010201 Publicity), Quick Shots (ver 1.0, checksum AD0C), R-Shark (set 2), Radikal Bikers (prototype), Riviera Hi-Score (2131-08, U5-3C), Riviera Hi-Score (2131-08P, set 1), Riviera Hi-Score (2131-08P, set 2), Rock'n MegaSession (Japan, ver 1.0), Rollergames (Asia), Sasuke vs. Commander (set 2), Shuang Long Qiang Zhu 2 VS (China, VS203J, set 2), Speed Up (version 2.00, checksum 491B), Speed Up (version 2.00, checksum E145), Speed Up (version 2.10, checksum 9536), Splash (Modular System, ver. 1.0, checksum A6C431A4, non North America, uncensored), Splash! (ver. 1.1, checksum 4697D2BF, non North America), Splash! (ver. 1.3, checksum E7BEEBFA, Korea), Splash! (ver. 1.3, checksum E7BEEEFA, North America), Splash! (ver. 1.3, checksum E7BEF3FA, World), Squash (newer PCB), Squash (USA, ver. 1.1, checksum 015b6f8a), Sunny, Super Shanghai 2001 (set 2, red board), Super Splash (Ver 1.0, checksum 2104394E, 27 Oct 1993), Super Splash (ver 1.1, Break Edition, checksum 59D5E66B, Version 1994), Super Star 97 / Ming Xing 97 (version V153A), Surf Planet (version 1.0), Surf Planet (version 1.2), Surf Planet (version 3.1), Tai Pan Money, Target Hits (ver 1.1, checksum B1F7), Tarzan (V106FA), Tekken 3 (Japan, TET1/VER.D), TH Strikes Back (non North America, version 1.0, checksum 0206DF91), TH Strikes Back (non North America, version 1.0, checksum 0206DF91, without title), TH Strikes Back (non North America, version 1.0, checksum 020E154A), TH Strikes Back (non North America, version 1.0, checksum 020EB346), Thunder Hoop (non North America, ver. X, checksum 00000020, set 1), Thunder Hoop (non North America, ver. X, checksum 00000020, set 2), Thunder Hoop (North America, ver. C4, checksum 02A0A008), Thunder Hoop (ver. 1, checksum 02a09fcd), Thunder Hoop (ver. X, checksum 00000020, without title), Top Draw (encrypted, set 2), Top Draw (encrypted, set 3), Top Draw (encrypted, set 4), Touch and Go (non North America, checksum 056533F0), Touch and Go (non North America, checksum 056C138F), Touch and Go (non North America, checksum 056C2336), Touch and Go (North America, checksum 05737572), Turbo Poker 1 (set 2), Turbo Poker 2 (set 4), Turbo Poker 2 (set 5), Turbo Sunny, World Rally 2: Twin Racing (version 09-06, checksum 50A2), World Rally 2: Twin Racing (version 09-06, checksum 7BE1), World Rally 2: Twin Racing (version 20-07, checksum B1B8), World Rally Championship (version 1.0, checksum 3D84, 02 Apr 1993), World Rally Championship (version 1.0, checksum C448), World Rally Championship (version 1.0, checksum DE0D, 08 Nov 1993), World Rallye Championship (prototype on Modular System, 23 Nov 1992), Xor World (different hardware, ver 1.1, checksum 3333BA, prototype), Xor World (different hardware, ver 1.1, checksum 333462, prototype), Xor World (Modular System, prototype, set 1), Xor World (Modular System, prototype, set 2), Xor World (ver 1.2, checksum DB5D10, prototype) and Zulu (Ver. 2.04J, Feb 3 2004)
- New PinMAME games: Bad Cats (LF-1), Cue Ball Wizard (Spanish), Super Mario Brothers (pinball, Spanish, set 1) and Super Mario Brothers (pinball, Spanish, set 2)
- New drivers: biorhythm_fp.cpp, blockfvr.cpp, clownmgc.cpp, ds5000.cpp, lotoplay.cpp, mastboyo_ms.cpp, megaturbo.cpp, ncarrera.cpp, neocrnvl.cpp, play4texash.cpp, pntnpuzls.cpp, sealy_z80.cpp, sshanghai.cpp, wrally_ms.cpp and xorworld_ms.cpp
- Removed games: Break Thru (bootleg), Desert Patrol and Power Shovel ni Norou!! - Power Shovel Simulator (v2.07J, alt)
- New devices: dsb2_device, dsp16, dsp16a, i80286, i80960ka, microphone, pana_ju_386 and qsound
- Bob Zed (What's new): https://youtu.be/2DxYdNeaOns
- CPU
. Analog Devices ADSP21062 'SHARC': Correctly align 32-bit data transfers using PM bus. Fixes glitchy characters in Fighting Vipers and Sonic the Fighters. Use mask for 32-bit writes over PM bus (sharc\sharcmem.hxx).
. Data East DECO16: Turn off verbose log flag (m6502\deco16.cpp)
. Hitachi H8: Wrap channel to avoid crash if end channel gets set lower than current channel (h8\h8_adc.cpp). Fixes 'Final Furlong' crashes during attract mode (ID 09160).
. Hitachi HD6309/E: Correct branch cycles in native mode (m6809\base6x09.lst) (ID 09174)
. Hitachi SH7709: Simulated SH-3 SCI transmitter emptying (sh\sh3comn.cpp), fixes 'Muscle Ranking Kinniku Banzuke Spray Hitter' progresses past initial loading but stops at a black screen (ID 09188), while 'Run Run Puppy' freezes at the four blue squares. Fix for SH3/SH4 DRC regression in MAME 0.277, which prevented generate_checksum_block() being called for RAM areas.
. Intel 80960KA/KB: Reduced padding area size when servicing interrupt. Prevents crash due to stack overflow during ranking screen in Virtual-On. Make shli produce identical value to shlo because later models where they may differ are unsupported. Distinguish KA and KB device types (i960\i960.cpp).
. Intel I386: Check for fault before setting register. Check cpl in verr and verw (i386\i386.h, i386op16.hxx and i386op32.hxx)
. Motorola MC6801: Correct the ICR read handlers (m6800\m6801.cpp)
. Motorola MC68000: Make pc-relative disassembly a little nicer to read (m68000\m68kdasm.cpp)
. ST0016: Adjusted some visible areas and added some notes
. Zilog Z80
. Optimized detection of attention needed in service step. Removed internal TADR variable - effective addresses can be passed around as needed. Changed macro call syntax in generator input. Flatten 16b rw operations in order to avoid vars manipulations.
. Renamed LUT fields. Handled flags lazily. Set the flags after loadstate. Support accessing F register in debugger. Use z80 terminology for the flag vars. Fixed debugger h flag. Don't clear all input pins state at reset.
- SOUND
. AdLib Music Synthesizer Card: Use official product name for device string. Removed unneeded r/w trampoline.
. Atari C012294 POKEY
. Replaced fake serial port emulation with timer-driven line-level interface, most (MESS) Acid800 serial tests pass now (sound\pokey.cpp).
. Emulated two-tone and force break serial output modes. Fixed logging message.
. AY-3-8910A PSG: Removed unneeded set_volume (update the few drivers that use it to set_output_gain) (sound\ay8910.cpp; cinematronics\cinemat_a.cpp, midway\midway.cpp, pinball\icecold.cpp, shared\ballysound.cpp and zaccaria\zaccaria_a.cpp).
. ICS2115 WaveFront Synthesizer: Updated stream before r/w and some irq flag fixes (ID 09031)
. K007232 PCM Controller: Log wav data at keyon instead of at every stream update. Removed really old changelog (sound\k007232.cpp).
. Motorola MC6809: Use < symbol for direct addressing (m6809\6x09dasm.cpp). Don't reset physical input pins state at device_reset (m6809\m6809.cpp).
. OKI MSM6376 ADPCM: Fixed regression and small cleanup (sound\okim6376.cpp)
. QSound (HLE): Adding parent rom reference to qsound, function body in cpp file (sound\qsoundhle.cpp).
. Samples: Set stream samplerate to sample samplerate. Fixed off by 1 error when interpolating. Fixed new regression with start_raw at very low samplerate. Updated notes. Removed unneeded samples_start callback (sound\samples.cpp).
. Sega 68k-based Digital Sound Board 2: Hookup DSB2 MPEG device (sega\dsb2.cpp) (flsbeats, topskatr, daytona2, dayto2pe, srally2, spikeout, spikeofe and swtrilgy)
. Sound Blaster: Added command 0x80 (Play silence). Hookup command logs thru logmacro.h (isa\sblaster.cpp)
- DEVICE
. Cassette tape image: Added more items to savestate. Small cleanup (imagedev\cassette.cpp).
. DECO Karnov Sprites: Correct 16x32 size flag and update notes (dataeast\deckarn.cpp)
. Floppy: Reimplemented HxC floppy emulator HFE format. Do not exit for an unknown encoding, just inform (formats\hxchfe_dsk.cpp)
. I2C Memory: Don't enter start condition except from idle state (machine\i2cmem.cpp)
. Intel 8251 USART: Implemented internal serial interrupt for V50 (v5x_scu_device; machine\i8251.cpp).
. Intel 8255 PPI: Removed unreachable code (machine\i8255.cpp)
. K007121 Sprite/Tilemap Controller: Sprite list and related fixes: I was recently doing some testing on a Contra board around the 007121 IC and found the following: There is no sprite limit, but instead a 264 8x8 sprite block limit. There is no buffering of sprite data on the attached SRAM. From this the follow changes have been made: Use the 264 8x8 sprite block limit to determine number of sprites that should be rendered. Removed sprite ram buffering and move logic for picking sprite ram bank into k007121.cpp. Comment updates related to the limit and non-buffering. Additionally the high bit of tiles are stored in one of the control registers, if this bit changes all tiles should be marked as dirty. These changes fix a number of sprite related issues on games using this chip: Missing sprites in combatsc and left over sprites in contra. Added sprite buffer (otherwise 1 frame sprite lag in eg. hcastle, contra, labyrunr). Updated notes. Do flipscreen and dirty tilemap marking with callbacks. Update notes. Avoid shift with negative amount in drivers. Added interrupts and scrollram (konami\k007121.cpp).
. K051960, K053244/053245 and K055673 Sprite Generator: Small cleanup
. K051960 Sprite Generator: Disable shadow config bit 0 (it was only used in Chequered Flag and Ultraman, and both needed a workaround) (konami\k051960.cpp).
. Konami 051733 math chip: Added NMI timer. Fixed divide by 0 and sqrt off-by-1. Changed rng to machine().rand(). Added lfsr and improved collision detection. No need to shift lfsr by 2. Removed old notes about then-unknown reg 6. Shorthand variable types. Simpler sqrt function (result is same). Improved reg 7. Division appears to be signed, fixes erratic gameplay logic in Devastators (ID 05726).
. MC68681 DUART: Ignore TX enable if already enabled (machine\mc68681.cpp)
. Mitsumi ISA CD-ROM Adapter: Shift the end of the disk by 150 sectors like the start (isa\mcd.cpp)
. MOS 6551 ACIA: Correct transfer data from RSR to RDR. On real hardware, this transfer is not atomic, but done bit-by-bit on the last clock cycles of a byte reception. Do the same, so bugs in programs are not hidden from developers. Also fixes another discrepancy with reality: When the RDR is full and a byte arrives, it is transferred to the RDR, and the Overrun flag is set. Our implementation did set the flag but left the old byte in the RDR.
. Sega 315-5881 Encryption: Cursory cleanups
. Serial EEPROM: Added configuration parameter for DO tristate level (machine\eepromser.cpp)
. Sony LDP-1450 HLE: Added preliminary support for custom On Screen Text mode (still needs checking against hardware) (machine\ldp1450hle.cpp)
- aleck64.cpp: Added preliminary savestates (rsp\rsp.cpp)
- alg.cpp, arsystems.cpp, cubo.cpp, mquake.cpp and upscope.cpp (Amiga): Partial revert of MAME 0.274 (Impose DDFSTOP HW limit on bits 15-8 writes). DDFSTOP mask was correct before and this workaround broke ar_ldrb. Impose upper masks for AGA/ECS chipset only (amiga\amiga_m.cpp). Fixes graphics in Leader Board Golf corrupted (ID 09176).
- apache3.cpp, cyclwarr.cpp and roundup5.cpp: Minor source reorganization
- astrcorp.cpp: Added sprite banking for the newer games and added "CPU code" for Wicked Witch (Ver. AA.01.A).
- blktiger_ms.cpp: Fixed palette hookup
- bloodbro_ms.cpp: Fleshed out the driver. Still missing sound and sprite/tilemap priorities. Added sound by slightly adapting the implementation in seibu\raiden_ms.
- bmcpokr.cpp: Better inputs for 'Xingyun Dou Dizhu' and cleaned up some DIP switches. Got rid of indirection on bitmap.
- boramz80.cpp: Started fleshing it out. Added inputs for the pkboram set. Added colors (xGRB format; emu\emupal.cpp). Added DIP definitions for other sets that boot. Hooked up coin counters. TODO: Black screen after first attract cycle (interrupts?). Colors, inputs and outputs. Decryption for tpkborama. Are the tpkg2 GFX ROMs correct for that set?
- bwing.cpp: Correct bgpen and paletteram read
- carrera.cpp
. Driver improvements. Fixed color bipolar PROM decode and palette calculation, based on real games screenshots. Added NVRAM support for all games. Created default NVRAM for Carrera and clones Bomberman sets, with harcoded critical values/registers needed to get the games working. Workaround that fixed the titles corruption for both Carrera and clones Bomberman sets. Inputs and DIP switches. Fixed Alantin colors, based on the real game screenshots. Added technical and game notes.
. Promoted alantin, drkseal, bsebmanbl and bsebmanbl2 to working.
- cps1.cpp: Changed 'Street Fighter II': Champion Edition (RE, bootleg)' and 'Street Fighter II': Magic KO Turbo!! - Nightmare Crack' from clones of sf2 to clones of sf2ce.
- dec8.cpp
. Updated note about screen raw params
. Invert vblank port in Real Ghostbuster. There is no ACK for NMIs. NMI on the 6309 comes from the 74LS00 @ 13C (dual input NAND gate) where input 1 is vblank and input 2 comes from a latch (74LS273 @ 3A). The latch gets updated with writes to 0x3840, which is what you write to to enable/disable NMI. So there is no hardware logic to ack NMIs. Added manual sprite DMA trigger.
. Correct Gondomania and Garyo Retsuden buffered spriteram. Fixed Gondomania (US) 2P crashes (ID 09089).
- ddenlovr.cpp, dynax.cpp and royalmah.cpp: Removed Payout assignments as they match the new default anyway.
- falgas_m89.cpp: Used MACHINE_IMPERFECT_SOUND for the sets that do play sounds
- gaelco2.cpp: Added PLD dumps to aligator, bang, footbpow, maniacsq, radikalb, snowboar, speedup, surfplnt, touchgo and wrally2 and verify bruteforced ones
- gms.cpp
. Mahjong keyboard, joystick and buttons, coin, key-in, service and bookkeeping work for all mahjong games now.
. Hooked up mahjong keyboard for yyhm. Improved DIP switch labels for cjdlz. Identified nine DIP switches for ssanguoj.
. Better inputs: Added mahjong keyboard option for Baile 2005. Hooked up key-out input for games with mahjong keyboard hooked up. Hooked up payout input in joytstick mode for games with mahjong keyboard hooked up.
. Added double up game functions to input names. Improved I/O: Hooked up hopper and counters. Added payout key in mahjong matrix. Reworked inputs and DIP switches for San Se Caishen: Use conventional poker terminology, hooked up mahjong keyboard and better DIP switch labels. Improved joystick controls and added mahjong keyboard option for Jinpai Suoha - Show Hand.
. Organise buttons so Big comes before Small. Added missing Key Out, Payout and hopper inputs for Super 555 and improved input names. Use poker input types for Baile 2005.
. Fixed inputs and worked out lamps for Ball Challenge and Creatures of the Sea
. Added internal layouts for most games with lamps. Super Ball 2001, Super Card 2 in 1, Jinpai Suoha - Show Hand, Ball Challenge and Creatures of the Sea now have clickable layouts with button lamps. Also updated a couple of input names and comments.
. Added multiplexed EEPROM interface that works for most games (unfortunately, this does not eliminate the need for 68K ROM patches).
- hikaru.cpp: WIP checkpoint
- igs_m027.cpp
. Added I/O, internal layout, fixed some inputs and hooked up sound ROM banking for clone 'Chong Chong Leyuan (V100CN)'. Changed Chong Chong Leyuan sound chip clock to 2 MHz. Speech samples and fanfares sound a lot more natural this way.
. Added I/O for the 'Kuaile Xiyou Ji' clones. It's kind of similar to Tarzan Chuang Tianguan 2 Jiaqiang Ban, but with different button assignments, particularly in mahjong panel mode. Not promoting to working as they regularly give "hopper empty" errors in "joystick" mode, possibly due to not liking the timings from our hopper device. The games are playable if you use Key-Out to pay out winnings. Added internal ROM of IGS027A ARM based MCU from clone (V102CN) to clone (V104CN).
. Added a few missing inputs for tct2p, klxyj102cn and klxyj104cn. And also added a more detailed comment explaining mahjong panel controls for tct2p. Added Oki banking for jking02 + clones and tct2p
- igs_m027_033vid.cpp: Adjusted Oki banking so that it works for huahuas5. Hooked up hopper. Added coin counters. Promoted huahuas5 and qiji6 to working.
- igs_m036.cpp: Added decryption tables for most sets
- igs011.cpp
. Fixed inputs for clone 'Long Hu Bang III: Cuo Pai Gaoshou (China, V242C)' (same as lbh2). Also identified the auto reach DIP switch for lhb2/lhb3 and cleaned up some code. Filled in some of the lhb2 DIP switch settings that aren't drawn properly from a hardware screenshot, cleaned up slightly and updated known issues comment for lhb3.
. Improved inputs and DIP switches for Xingyun Manguan (China, V651C, set 1) and clone Wanli Changcheng (China, V638C). Determined what some of the characters that can't be seen in lhb2 DIP switch test are supposed to be.
. Fixed video RAM handling. Fixes numerous graphical glitches, including missing characters in service mode (ID 08993), bad colours on vbowl game over screen, glitchy "ODDS" banner remaining on-screen in xymg, incorrect colours on copyright years on titles screens for lhb and clones, and more. There's only enough video RAM for four 8-bit layers. The "depth" register configures how many 8-bit layers are required (zero to four), and the remaining buffers are treated as pairs of 4-bit layers. For example xymg uses one 8-bit layer and six 4-bit layers. The CPU always sees an 8-bit view of video memory, and must handle updating the correct nybble to draw to an individual 4-bit layer. The blitter always uses 4-bit source data for 4-bit layers, but can use 4-bit or 8-bit source data for 8-bit layers (it also supports 5-bit source mode with the top bit read from a separate ROM area). Fixes some graphic characters missed during play in dbc, lhb, lhb2, lhbv33c, xymg and wlcc (ID 02131) (ID 02152). Fixes extra graphic during double game in xymg and wlcc (ID 02185).
. Added range check on blit destination. Just log a message if a game tries to blit to an out-of-range layer for the current configuration. Also set vertical blanking time and total lines based on measurements for nkishusp, and always blit to the whole 512*256 area as in principle the CPU can read areas that aren't visible on-screen.
. Hooked up hopper and fixed some inputs and DIP switches.
. Reverted interrupt frequency changes from MAME 0.144u3. The commit doesn't provide a justification for changing the periodic interrupt frequencies, implying it's just cleaning up use of deprecated functionality. The change from 120 Hz to 240 Hz for systems using the "lhb" configuration caused dbc, lhb33c and ryukobou to stop recognising coins reliably (ID 05678). Despite the comments added to the machine configuration functions, changing the frequency of these timers does not change the music tempo. This changes the periodic timer frequencies back to what they were previously. The timing is still suspect. We really need someone to hook some of these games up in a logic analyser to get proper video timings and work out where the periodic interrupts actually come from.
. Miscellaneous changes: Implemented video suppress bit in blitter "depth" register (used to blank the screen while setting up scenes that take multiple frames to draw). Reduced audio output levels to avoid hitting the compressor at least most of the time. Optimised blit and screen update a little. Split class up a bit more, made more things private, made a sub-map function for the blitter registers.
. Correct address maps for clones Long Hu Bang III: Cuo Pai Gaoshou (China, V242C) and Te Yi Gong Neng (China, V632C). Avoids crashes.
- igs017.cpp: Added NVRAM support to most sets
- jaguar.cpp: Adjusted clock of the MIPS based games to the actual chip type
- koftball.cpp
. Identified take/w-up/high/low for King of Football
. Make known inputs match test mode. Added hopper and credits in/out counters. Identified 'In-Game Music' and 'Odds Rate' DIP switches. Correct DIP switch polarity for Jinxiu Zhonghua and clone Kaimen Hu.
. Added koftball counter outputs. Also identified a DIP switch and added a comment about soft settings. Split out common parts of address map, better inputs for jxzh and kaimenhu.
. Identified a few DIP switches and marked games as having uneumlated protection. Promoted koftball and kaimenhu to working.
. Updated drawing routine to work correctly for available dumps. More studying needed. Slightly less hacky layer enable logic.
- konamim2.cpp: Various 3DO DSPP fixes. Register STATE_GENPCBASE so debugger will recognize CPU. Limit ACC to 20 bits in debugger state display. Use util::sext for sign extension in non-DRC paths. Note that this changes behavior because positive values were sometimes not truncated to 20 bits previously. Make disassembly slightly less broken, though still very much a stub. Added a real disassembler. Tweak mnemonics in disassembler (dspp\dspp.cpp and dspp\dsppdasm.cpp).
- lgtz80.cpp: Decoded GFX and added preliminary video emulation. Improved reels positioning. Added ADPCM banking, expand NVRAM area and updated notes.
- mainevt.cpp: Added note about htotal. K051733 division appears to be signed. Fixes erratic gameplay logic in Devastators (ID 05726).
- megadriv_acbl.cpp: Simulated coin latch for clone Bare Knuckle III (bootleg of Mega Drive version)
- model1.cpp: Added TGP sin/cos lookup tables
- model2.cpp
. Cleaned up various things. Prevent infinite loop in geo_parse() (sega\model2_v.cpp). MAME no longer hangs when exiting clone Sonic the Fighters (Japan) service menu.
. Improved TGPx4 interpreter. Most Sega Model 2C-CRX games are now working with 3D graphics (mb86235\mb86235.cpp). Use std::clamp for luminance (sega\model2_v.cpp). Added TGP sin/cos lookup tables. Sound comms: Model 2B accesses SCSP via address 0x9C0000, all others access SCSP/Model 1 sound board via 0x1C80000.
. Renderer improvements. Texture mirroring is now implemented correctly (carpet in clone Sonic the Fighters and pitch markings in Virtua Striker). Fixed broken textures for trees in Sega Rally and mountain in Super GT 24h (sega\model2.cpp).
. Implemented 4 players support in Air Walkers. Verified and added proper communication ROM board program ROM for the Over Rev sets.
- model3.cpp
. Massage UART comms hack for sound in Sega Rally 2. Fixed black screen regression in Sega Rally 2 (sega\m3comm.cpp). Fixed memory test, allow lostwsga and lemans24 to boot again (ID 08790). Hookup lostwsga player 2 trigger and offscreen detect.
. Hookup main board DSW bank. Implemented proper stencil mask for 2D layer (sega\model3_v.cpp). System port 8 is just an irq check strobe. Enable colormod for vs2 radar/cursors (sega\model3_v.cpp). Fixed spikeout/spikeofe bootup. Hookup model3 diplocations. Updated PCB infos. Undo right-aligned gamelist entries.
- namcos21.cpp: Clear screen to palette index 0 instead of 0xff
- nbmj8688.cpp: Improved DIP switches for Crystal Gal and Crystal Gal 2
- pgm.cpp
. Use retry_access to sync on reads for 2-way sound comms
. Updated ICS2115 WaveFront Synthesizer stream before r/w and some irq flag fixes (sound\ics2115.cpp). Fixes an error appears onscreen in kovsh and clones after a while followed by game hanging (ID 09031).
- polepos.cpp: Custom audio device cleanups and fixes. Save state variables. Eliminate use of absolute tag by making device tag the same as that of the memory region. Use finder for memory region.
- popeye.cpp: Simplified Popeye and Sky Skipper background code (nintendo\popeye_v.cpp)
- sealy_z80.cpp: Preliminary GFX decoding, borrowed from sealy_m16c.cpp.
- segac2.cpp: 'Sega DASS' device (Dual Active Seat System) is unemulated, disable cpu for now (sega\m50dass.cpp).
- segahang.cpp, segaorun.cpp, segaxbd.cpp, segaybd.cpp and tmnt.cpp: Lower overall volume (even lower for segaxbd due to rear speakers clipping if user hw is plain stereo). Put rear speakers in the rear for segaxbd.cpp.
- segas32.cpp: Separate the speakers that were in different cabinets (multi32). Lower overall volume.
- shadoww_ms.cpp, slapfght_ms.cpp and splash_ms.cpp: Added PLDs and PROMs
- stella8085.cpp: Start mapping peripherals. Update IC notes. More memory map improvements.
- taito_z.cpp
. Improved direct-mode poly handling and texmode 3 handling. Rework direct-FIFO handling again to avoid a crash. Use algorithms rather than memcpy.
. Added new sprites roms to clone Double Axle (US). Note: These 2 ROMs known to come split on a Taito ROM 16 PCBOARD.
. Dumped PLDs for Battle Shark and clones. Mark clone Raizin Ping Pong (Ver 2.01 J) HDD as BAD_DUMP.
. Removed clone Power Shovel ni Norou!! - Power Shovel Simulator (v2.07J, alt), it was a bad dump of pwrshovl (ID 09185).
- taitosj.cpp: Workaround for large speed loss (sound\discrete.cpp and taito\taitosj.cpp)
- tx1.cpp: Removed set_output_gain to nonexistent output (tatsumi\tx1_a.cpp)
- Bandit (US prototype): Fixes towards bandit pri == 7 uses. Promoted game to working.
- Beezer: Automatically detecting streaming. Removed dac76::configure_streming_iref() (sound\dac76.cpp).
- Blockout (TAX): Added gfx notes
- Card Line: Use poker input types. Fixed bottom of the screen has info from the top (ID 09175).
- Chequered Flag: Improved highlights
- Cherry Master I: Brought clone Super Seven (ver. 2.3) to probably playable state. Left as MACHINE_NOT_WORKING as precaution until someone who can play these games verifies I/O.
- Circus Charlie: Correct cpu clock and added screen raw params. Added buffered spriteram. Small cleanup to source code organization.
- Cobra Command: Do not trigger input lines on other not-yet-initialized devices in device start for clones Cobra Command (M.A.C.H. 3 hardware, set 1/2) (shared\gottlieb_a.cpp)
- Columns '97: Demoted game to MACHINE_NOT_WORKING (ID 08947)
- Combat School, Contra, Fast Lane, Haunted Castle, Labyrinth Runner and MX5000
. K007121 Sprite/Tilemap Controller: Sprite list and related fixes (konami\k007121.cpp)
. Added sprite buffer (otherwise 1 frame sprite lag in eg. hcastle, contra, labyrunr). Added screen raw params to Konami drivers with K007121. Do flipscreen and dirty tilemap marking with callbacks (konami\k007121.cpp). Fixed cocktail mode and player 2's screen is only partially flipped in all sets in labyrunr.cpp (ID 01878). Fixed player 2 cocktail mode flip screen graphics glitch in Fast Lane (ID 08439). Fixed incorrect behavior of the flipscreen in Contra (ID 00402).
. Fixes Contra continue countdown sometimes leaves sprites behind (ID 00401) and the text "Player 1 (Nick)" or "CPU (Joe)" in Combat School disappear (ID 00185). Assume Combat School vtotal=264 (refresh rate is same as before).
. Added missing watchdog period to Contra. Correction to bgcolor for contra (ID 03591), fastlane, flkatck and labyrunr. Correct pixel clock for all K007121 drivers.
- Crazy Climber: Dumped PROM internal to the CPU module. Used PROM contents to decrpyt cclimber encrypted sets.
- Desert Patrol: Added bd3.d1 prom (Produce the waveform of a human scream. Chip type is 8574 or MM6301-0J). Removed dpatrol since it's an overdump.
- Dream Crown: Added controls
- Enduro Racer: Fixed PCM sample ROM loading for clone Enduro Racer (bootleg set 1)
- Flower: Tabulated the system definitions again
- Golden Star: Got clones Super Nove (Playmark, V. M271B) and Super Nove (Playmark, V. M271C) to do something
- Juno First: Correct cpu clock
- Lightning Fighters: Removed NMI connection to sound CPU as it does not exist on schematics. The sound is not affected.
- Malzak: Fixed some Flash and Hold control issues (video\saa5050.cpp)
- Master Boy: Sorted out Master Boy sets and added missing ones. Added correct MCU ROM for Italian Version II sets. Verified old extracted MCU ROM for Spanish sets is 100% good. Promoted clone Master Boy Version II (Italy, set 2, checksum 629B) to working.
- Mortal Kombat 4: Correct rom size for u2 of clone Mortal Kombat 4 (version 1.0)
- New Carrera - Version 2000: Created a new driver for New Carrera. The MCU behavior has been simulated to make the game playable. The MCU also has full range memory access, so it can read ROM and Read/Write NVRAM, can draw graphics, manages reels display animation and inputs. Added more documentation, technical notes, more cleanups and fixed copyright.
- Ninja Emaki: Redumped clone Ninja Emaki (Tecfri license)
- Pac & Pal: Fixed 'Bonus Life' dipswitch
- Phoenix (Amstar, set 1): Dumped the palette PROMs for Next Fase (bootleg of Phoenix)
- Rally X: Verify clone Danger Track (bootleg of Rally X) PROMs
- Super Basketball: Assume cpu clock is 1.536mhz
- Super Pool 99: Fixed game not start at boot with bad ram message (ID 09099)
- Super Shanghai 2000: Rearranged Super Shanghai 2000 series and added to a new driver - Promoted Super Shanghai 2000 - Wrestle Fiesta (30% bonus, red board), Super Shanghai 2000 (set 1, green board) and clone (set 2, green board) to working.
- Tattoo Assassins: Added set_maximum_quantum to prevent sound glitches
- Touch and Go: Sorted out sets and added missing ones
- U.S. Championship V'ball: Demoted clone U.S. Championship V'ball (bootleg of Japan set) with MACHINE_IMPERFECT_SOUND
- Ultraman: shadows_w is actually irq enable
- Venture: Use the 1 Coin/1 Credit setting listed in the manual for Venture by default (ID 09177).
- Wacky Gator: Internal layout improvements (layout\wackygtr.lay)
- Wonder Boy III - Monster Lair: Added MCU dump for clone Wonder Boy III - Monster Lair (encrypted bootleg)
- World Rally Championship: Improved set ordering based on research
- XXX (Modular System): Added missing PROMs and PLDs to several Modular System games (automatm, bigkarnkm, cabalm, drgninjam, eurogael, ffantasym, raidenm, secretagm and tokims).
- Yizhi Xiangqi: Changed game to MACHINE_IMPERFECT_SOUND
- Save state
. Be consistent with dummy save state var name (easy to grep if the workaround is obsolete in the future)
. Removed device_sound_interface from mixins that require device to register members for saved states (emu\device.cpp).
. Finalise saved state registrations before loading configuration - network devices no longer leak timers (emu\machine.cpp).
- Input port: Group default double-up game control assignments on home row. Also moved Mahjong P to P and Payout to 4. This fixes the conflict between Mahjong I and Payout (emu\inpttype.ipp).
- Dipswitch fixes in boramz80.cpp, carrera.cpp, gms.cpp, hikaru.cpp, igs011.cpp, igs_m027.cpp, koftball.cpp, nbmj8688.cpp, sshanghai.cpp and stella8085.cpp
- Fixed rom names in gaelco.cpp, gaelco2.cpp, nbmj8891.cpp and raiden2.cpp
- Description changes of Alligator Hunt (World, protected, checksum 2B34128B), Alligator Hunt (protected, prototype?, checksum B975CB0B), Alligator Hunt (Spain, protected, checksum 2B34128B), Alligator Hunt (unprotected, checksum F9C6891D), Alligator Hunt (unprotected, checksum 25A83609), Animal Wonders (ver A900, bootleg), Bandit (US prototype), Bang! (version 0, checksum B61D), Battle Gear 2 (Ver 2.04 J), Battle Gear 2 (Ver 2.01 J, Side by Side cabinet), Carrera (Version 6.7) / Bomberman (Version 6.6), Densha de GO 3! Tsukin-hen (Ver 2.03 J), Desert Patrol, Devil Fish (Mars hardware), Don Pepito, Double Axle (US, Rev 1, set 1), Dream 9 Flower (v1.00c, set 1), El auto de papa, Flower (Japan, bootleg?), Ganso Janken Man 2, Glass (ver 1.0, Break Edition, checksum C5513F3C), Glass (ver 1.0, Break Edition, checksum D3864FDB), Glass (ver 1.1, Break Edition, checksum 49D5E66B, Version 1994, set 2), Glass (ver 1.1, Break Edition, checksum D419AB69, Version 1994, unprotected, Korea), Go & Stop (Ver. EN1.10), Gun Gabacho (Japan, version 2, checksum C6BB), Happy Pierrot (V968210), HI-LO Double Up Joker Poker (set 1), Huangguan Leyuan (990726 CRG1.1), Jin Huangguan, Kasei Channel Mars TV (Japan), Kuaile Xiyou Ji (V104CN), Lady Bug (bootleg on Galaxian hardware, unencrypted), Long Hu Tebie Ban (S101CN), Lucky Star (newer Z180-based hardware, set 1), Mahjong Gal no Kokuhaku (Japan, set 1), Mahjong Reach Ippatsu (Japan, NM526-NSI), Maniac Square (protected, version 1.0, checksum CF2D), Maniac Square (protected, version 1.0, checksum DEEE), Maniac Square (unprotected, version 1.0, checksum 66B1, 960419/1 PCB), Maniac Square (unprotected, version 1.0, checksum BB73), Oh La La, Painted Lady (ver. 1.3, checksum E7BEEEFA, North America), PK Turbo Special, Power Drift (Japan, Rev B), Power Shovel ni Norou!! - Power Shovel Simulator (Ver 2.07 J), Pro Cycle Tele Cardioline (Salter fitness bike, V.1.0, checksum 02AB), Pro Stepper Tele Cardioline (Salter fitness stepper, V.1.0, checksum F208), R-Shark (set 1), Raizin Ping Pong (Ver 2.01 O), Raizin Ping Pong (Ver 2.01 J), Sasuke vs. Commander (set 1), Shin-ip Sawon - Seok Dol-i (Korea), Shinnyuu Shain Tooru-kun (Japan), Shuang Long Qiang Zhu 2 VS (China, VS203J, set 1), Shuang Long Qiang Zhu 2 VS (China, unknown version), Snow Board Championship (version 2.0), Snow Board Championship (version 2.1), Speed Master (D1.4, May 23 2003), Speed Master (D2.01.C, Apr 28 2004), Speed Master (D2.01.C, Apr 29 2004), Speed Up (version 1.00, checksum 31A9), Speed Up (version 1.20, checksum 6851), Speed Up (version 2.20, checksum 2037), Splash (Modular System, ver. 1.0, checksum 16EDD8FB, non North America, censored), Splash! (ver. 1.0, checksum 2FC9AE1D, non North America), Splash! (ver. 1.2, checksum 5071804D, non North America), Squash (World, ver. 1.0, checksum 015aef61), Super Nove (Playmark, V. M271B), Super Nove (Playmark, V. M271C), Super Seven (ver. 2.3), Super Shanghai 2000 (set 1, green board), Super Shanghai 2000 (set 2, green board), System 3000 Kramergame Poker (encrypted set 1), System 3000 Kramergame Poker (encrypted set 2), System 3000 Kramergame Poker (encrypted set 3), System 3000 Kramergame Poker (encrypted set 4), Target Hits (ver 1.0, checksum FBCB), Target Hits (ver 1.1, checksum 5152), Target Hits (ver 1.1, checksum 86E1), Tarzan Chuang Tian Guan 2 Jiaqiang Ban (V306CN), The Main Event (Destron), Touch and Go (non North America, checksum 056AA304), Touch and Go (unprotected, checksum 059CC336), Touch and Go (World, checksum 059D0235), Touch and Go (World, checksum 05A0C7FB), Vulkan, World Rally Championship (America, version 1.0, checksum 2CC1), World Rally Championship (America, version 1.0, checksum 75A5, 16 Jun 1993), World Rally Championship (version 1.0, checksum 0E56, 06 Apr 1993), World Rally Championship (version 1.0, checksum 3873, 06 Apr 1993), World Rally Championship (version 1.0, checksum 8AA2), World Rally Championship (version 1.0, checksum E586, 25 Jun 1993), World Rally 2: Twin Racing (version 26-06, checksum 3EDB), World Rally 2: Twin Racing (version 26-06, checksum 3EDB, mask ROM version), Xiaoyao Dou Dizhu (V216CN), Xor World (ver 1.2, checksum DB5D0F, prototype) and Zuqiu Wang - King of Football.
- Renamed (animalw) to (animalwbl), (bang) to (bangb), (brkthru) to (brkthruu), (cb5) to (cb5_13), (dpatrola) to (dpatrol), (flowerj) to (flowerjb), (footbpow) to (footbpow12), (glass) to (glassa), (goldartp) to (goldartpt), (hpierrot) to (hpierrota), (klxyj) to (klxyj104cn), (maniacsqa) to (maniacsqb), (maniacsq) to (maniacsqa), (maniacsqu) to (maniacsq), (mastboyiv2) to (mastboyiv2a), (pdriftj) to (pdriftjb), (rivierab) to (rivierac), (sdmg2) to (sdmg2754ca), (sdmg2a) to (sdmg2754cb), (sltpstep) to (sltpstepa), (specd9) to (specd9105g), (ss2000) to (ssh2000a), (ss2000a) to (ssh2000wf), (ss2001) to (ssh2000), (thoop2) to (thoop2b), (thoop2a) to (thoop2), (touchgo) to (touchgoa), (touchgoe) to (touchgo), (touchgok) to (touchgoun), (touchgon) to (touchgonnac), (unkboram) to (pkts), (wrally2a) to (wrally2b), (wrally2) to (wrally2a), (wrally) to (wrallyd), (wrallya) to (wrallyc) and (wrallyc) to (wrallya).
- MAME
. VIDEO RENDERING SYSTEM
. Got rid of a C string pointer, avoid the need for a static string object (monitor\monitor_module.h). Fixed an object leak (monitor\monitor_dxgi.cpp). Cleaned up some use of COM and COM-like things (font\font_dwrite.cpp and monitor\monitor_dxgi.cpp).
. Fixed issue with throttling when MAME runs at slow motion (-speed lower than 0.2) (emu\video.cpp)
. Added optional screen update callback for svg screens (emu\screen.cpp)
. Added shadow config to savestates and might as well rename hilight to highlight (emu\dipalette.cpp)
. MEMORY SYSTEM: Correct shifting direction on masks when importing a map with active umask (emu\addrmap.cpp)
. DEVICES
. Allow flagging devices as not working or not supporting saved states. Removed device_sound_interface from mixins that require device to register members for saved states (emu\device.cpp).
. Reset the receive register when changing frame format or the port may be stuck into synchronous receive mode due to the default start bits = 0 (emu\diserial.cpp)
. UI/OSD
. Root device is special for non-working message (ui\info.cpp). Removed master volume slider if driver has no sound (ui\mainmenu.cpp and ui\ui.cpp).
. Fixed layout issue when DIP switch bank with the most switches has the shortest name and reduced space between name and switches a bit (ui\confswitch.cpp).
. Fixed some non-bug "warnings" going missing (ui\info.cpp). Don't show the audio menus when there are no audio devices (ui\mainmenu.cpp). Align allocation for directory entry structure in osd_stat (file\winfile.cpp). Updated signature for osd_stat (file\stdfile.cpp).
. Changed mimimum speed setting from 0.01 to 0.1 (mame would crash with very low value, and besides, video throttle still fails below 0.1) (emu\emuopts.cpp). Added speed slider when cheats are enabled (ui\ui.cpp).
. Added MAME version info to the 'missing roms' error msg (ui\imgcntrl.cpp and ui\selmenu.cpp). Use UI text/bg color for osd text popups (ui\ui.cpp).
. Ensure size isn't passed to ::operator delete when destructing directory entries. osd_stat allocates additional space following the directory entry to store the name. A regular delete may pass sizeof(entry) to ::operator delete, which won't match the allocated size. This causes a problem if the runtime library checks it (may suppress the warning in MT09137) (osd\osdfile.h).
. Finer control over screen refresh slider, correction to shift+alt incval (although after this commit, nothing has an incval > 100). Added separator after osd sliders. Make sure menu won't be hidden when re-entering it (POLA) (ui\sliders.cpp).
. Treat incorrect ROM content as a severe warning (ui\info.cpp). Added note about file handle buffering (file\winfile.cpp).
. Use terse messages for bad media. Making these messages longer hasn't reduced support burden. Adding the version will just perpetuate the myth that you need to redownload all your ROMs for every release (ui\selmenu.cpp and ui\imgcntrl.cpp). Allow info screens to be dismissed by mouse clicks or touches (ui\ui.cpp). Hiding the menu should preserve state. This is a design choice (ui\sliders.cpp).
. New sound infrastructure
. Make AVI able to do more than stereo (util\aviio.cpp)
. Sound sliders: Press Del to set to 0db like before (mute is alt+left). Multiply internal value by 10 to allow fine grained slider controls (left/right while holding Shift) (ui\ui.cpp).
. Use fat triangles instead of arrows for L/R indicators. More control over db adjustment (like with sliders, hold shift for +/- 0.1, hold ctrl for +/- 10) (ui\audiomix.cpp).
. Make sure m_samples_to_update is 0 when returning from update() (emu\sound.cpp). Added sync time to savestates (emu\sound.cpp).
. magmax.cpp, terracre.cpp and opwolf.cpp: Removed obsolete mixer device now that multiple sound outputs can be sent to a sound device single input (probably can be done to other drivers too.
. Avoid unnecessary float/double conversions (osd\interface\audio.h). Prevent stream buffer overflow after detecting it (machine\netlist.cpp).
. Added a much faster LoFi resampler and resampler configuration saving and documentation (emu\resampler.cpp, emu\sound.cpp, ui\audioeffects.cpp and usingmame\mamemenus.rst). Fixed resampler config interaction with reset and history sizes to take desynchronization into account (emu\sound.cpp, sound\pulse_sound.cpp and emu\resampler.cpp). Better step precision to avoid crackling (resampler_lofi; emu\resampler.cpp).
. Like with the rest of the UI, press Del to set resampler settings to default. Gray out hq resampler settings if resampler is not hq (ui\audioeffects.cpp).
. Fixed streamed inputs (sound\disc_cls.h, disc_inp.hxx and discrete.cpp). Ensure correct input of non-audio data (machine\netlist.cpp). Merged a number of speakers.
. Recompute filters after loading the configuration (audio_effects\eq.cpp and filter.cpp).
. Do not block on shift-f3 (sound\pipewire_sound.cpp). Removed obsolete options (compressor will be in effects, speaker report should go into a lua plugin) (emu\emuopts.cpp and ui\sndmenu.cpp).
. Added a compressor. May need some tuning (ui\audio_effect_compressor.cpp).
. Better decoupling of the effects thread. Fixed incorrect detection of config loading when the driver file was not yet created. Fixed synchronous streams (emu\sound.cpp). Detect EQ when not actually used (audio_effects\eq.cpp).
. Do not interpolate when not changing rate, fixes pbobble2 and gunlock (emu\sound.cpp).
. Re-added support for -volume option (works same as before sound rewrite) (emu\sound.cpp and emu\emuopts.cpp). Fixed range checker with negative values (emu\emuopts.cpp and util\options.cpp). No need to save master volume of 0. Disable error.log "Sound reset" message by default (emu\sound.cpp).
. Updated mapping when changing audio mixer configuration (fixes issues in audio mixer menu, like randomly adding new entries when pressing l/r, cursor randomly moving to 1st entry when pressing l/r, and portaudio errors when switching devices) (emu\sound.cpp).
. Implemented movable and swappable patterns (reduces allocation and copying) (osd\interface\audio.h). Moved default implementation stuff out of the header, use algorithm library in place of memcpy (sound\sound_module.cpp). Removed obsolete wave (cassette sound) device (sound\wave.cpp).
. Fixed rounding issue with db adjust (ui\audiomix.cpp). Added missing header for Clang (interface\audio.h). Correct subtle timing issues, added -sound support and resampling at the edge (emu\sound.cpp). Fixed mistake on microphone channel mapping (ui\audiomix.cpp).
. Allow positioning unknown and don't map (emu\speaker.h). Better handling of -sound none. Correct handling of streams closed on the OSD side (emu\sound.cpp and ui\mainmenu.cpp).
. Recirculate buffers rather than removing them to reduces allocations. Scale the number of samples to skip on overrun according to the packet size (sound\sound_module.cpp).
. Allow seperate display and configuration names for sound nodes. Fixed typo on mono channels (sound\namco.cpp).
. Tell the OSD about the update (emu\sound.cpp). Print verbose message if module doesn't support audio_latency option. Changed audio_latency meaning similar to what it was before (20ms steps for portaudio, xaudio2, wasapi), old mame.ini default setting of 2 should work fine.
. Correct stream_sink_update function (sound\js_sound.cpp). Allow to compile without threads, by defining SOUND_DISABLE_THREADING (emu\sound.cpp). Set SOUND_DISABLE_THREADING for Emscripten target (scripts\genie.lua).
. Got rid of dependencies on emu and frontend. We're working to reduce circular dependencies. Adding more is a regression (sound\*). Set rate to SAMPLE_RATE_OUTPUT_ADAPTIVE (highest samplerate of device it outputs to) (emu\disound.cpp).
. Fixed default.cfg load not applying default effects and rename default.cfg default_audio_effects to audio_effects (same as system.cfg, there's no clash). Fixed sync issue when starting a stream that was stopped. Fixed extremely subtle and rare problem that could happen when changing stream frequency (emu\sound.cpp).
. Fixed crash after loadstate with different resampler setting (emu\sound.cpp). Moved positions to osd interface. Added special-casing for LFE and reverb (currently too subtle, need to find out why).
. Removed the hard cutoff ceiling at 20K. It was an initial way to limit the number of phases and filter length, and that is done explicitely now. Plus, who knows, maybe someone will want to run ar 192KHz some day (emu\resampler.cpp).
. Detect preset when entering menu (audio_effects\reverb.cpp). Don't try to filter above nyquist freq (or slightly below it) (audio_effects\filter.cpp and reverb.cpp). Improved control over audio filter cutoff freq. Don't repeat min/max freq values in multiple places. Allow finer control of frequency with shift+alt (ui\audio_effect_filter.cpp). Changed freq to u32 and apply same nyquist freq fix (audio_effects\eq.cpp).
. Fixed reverb decays and disable by default reverb and compressor (audio_effects\compressor.cpp and reverb.cpp). Changed channel link range to 0-1 and most floats to 2-decimals (audio_effects\compressor.cpp).
. Added reset_all for resetting all variable settings (emu\audio_effects\*). Added LR_REPEAT flag when cursor is on db (ui\audiomix.cpp). Do limit rounding with roundf instead of manually (ui\audio_effect_eq.cpp and audio_effect_filter.cpp). Changed default bands to 100,330,1k,3,3k,10k. Check band mask instead of db when building filter (audio_effects\eq.cpp).
. Initialize channel positions in header file (prevents channel_position constructor initializing after initializing array of channel_position in sound backends) (osd\interface\audio.cpp).
. The new menus were unusable with a touchscreen, and not conducive to localisation. It's still not possible to add sound routes with a touchscreen, but at least it's possible to configure routes that exist (mame\ui\*). Fixed localisation issues and less temporary objects (emu\sound.cpp and emu\audio_effects).
. Avoid anything that could possibly depend on static initialisation order across transaltion units. Allow speaker position names to be localised (modules\sound). Don't pretend it can create output streams (sound\none.cpp). Blind attempt at updating for base class changes (sound\js_sound.cpp).
. Sound modules
. CoreAudio: Changed audio_latency duration option to milliseconds (lib\osdobj_common.cpp, sound\coreaudio_sound.cpp). Changed audio_latency to seconds (float), so people with existing mame.ini won't get broken sound (lib\osdobj_common.cpp, sound\coreaudio_sound.cpp). Preliminary revised macOS CoreAudio backend. Supports multiple input and output streams to multple devices simultaneously. audio_latency now is a floating-point number of 50 Hz audio frames. 0 is valid now. Channel layouts are determined when available (many devices don't support them). External effects support removed; it may return later. Rebuild the device list when the default devices change, fixes a crash when a new default device is connected. Added a callback for each active device to see if it becomes unavailable. Moved default device change check to get_generation so it happens regularly. Use property listeners to determine configuration changes instead of polling. Device additions are now tracked in addition to removals. Changing channel configuration in Audio/MIDI Setup is now tracked. Channel layout tag is a bitfield, not an enum (sound\coreaudio_sound.cpp).
. PortAudio: Enhance portaudio support. Sadly, portaudio is limited to the worst case of all OSes audio supports (and ALSA est rather bad) and does not yet handle hotplug. So the result is quite limited. Also, the devices when running portaudio over emulated alsa over pulseaudio are quite ugly. Still works though. Added support for audio latency and samplerate options. Lower latency interval steps. Added api info to device names (sound\pa_sound.cpp). Added error messages (+device name). Fixed a non-const global that should be const. Popmessage instead of printf if there's a device conflict while fiddling in the audio mixer menu. Do not mess up on shift-f3 (sound\pa_sound.cpp).
. SDL: Make system default work (sound\sdl_sound.cpp). Rework a case where the sound defaults are not put in place in correct order (when starting a system with mandatory cart without one) (emu\sound.cpp and sound\sdl_sound.cpp). Don't try to call SDL_GetDefaultAudioInfo for SDL older than 2.24.0 (sound\sdl_sound.cpp). Allow MAME to be built with SDL 2.0.14 or 2.0.15 with limited functionality. Correct SDL verson detection macro (sound\sdl_sound.cpp).
. WASAPI: Added preliminary WASAPI sound module (not enabled yet). Improved error handling and buffer management (sound\wasapi_sound.cpp). Made WASAPI sound the default on Windows and made DirectSound lower priority than XAudio2 (lib\osdobj_common.cpp). Deal with resetting per-app device to default in Windows mixer controls. Don't print an error message on a "not found" error getting default devices - this happens when there are no active devices. Repeat the channel mask from the mix format back when initialising the audio client. Avoid another potential deadlock. It's possible for a device format property update to block an activate call. There's still a race condition in that if streams get device invalidated errors before the property update arrives, the core may try and fail to create replacement streams. This at least stops it from causing a deadlock, at worst you lose sound. Handle someone messing with the mixdown format right as MAME exits (sound\wasapi_sound.cpp).
. XAudio2: Initial support for new sound system features (sound\mmdevice_helpers.cpp). Setting the default latency to the target buffer submission frequency is a bad idea. Changed total buffer size to actually match specified latency (calculation didn't conside sample size or channel count). Smarter buffer submission algorithm. Listen for critical engine errors and more Clang warnings. More paranoid cleanup: This hopefully fixes the freezes on exit when changing the sample rate underneath it. Sound may or may not work after you do this until you restart MAME due to race conditions. Better handling of critical errors and more verbose logging. More fixes: Fixed a couple more potential deadlocks when handling critical engine errors. Better tracking of the default device when devices are reconfigured. Bump node number on critical XAudio2 engine errors. The sound manager bug that this was triggering has been fixed. Sound now recovers reliably after changing the mixdown format. Hide endpoint devices in "unplugged" state. Deal with resetting per-app device to default in Windows mixer controls. Actually commit correction to autocomplete gone wrong. Fixed some stuff not getting reset on exit()/init(). Don't print an error message on a "not found" error getting default devices - this happens when there are no active devices. Use more fine-grained locking in voice callbacks, simplified further simplified buffer queueing. Changed logging back to display names. Don't request sample rate conversion if stream sample rate matches mixdown sample rate. Changed buffering strategy for output streams. This should work better with output devices like Bluetooth speakers and should be a bit smoother in general. Use abuffer for bufferring input. This simplifies the code somewhat and gives a bit more consistency across modules. XAudio2 sound will ignore the audio latency setting for now - properly synchronising streams, etc. requires more work (sound\xaudio2_sound.cpp).
. LUA engine: Added set_speed_factor (mame\luaengine.cpp). Reenabling the write accessor for the LUA input_class enabled property. This is used by BletchMAME to toggle mouse capture on and off (mame\luaengine_input.cpp).
. Timer system: Fixed lockup with as_string and negative attotime (emu\attotime.cpp)
. 3rdparty
. Updated expat to version 2.7.1
. Small BX platform detection/usage improvements (3rdparty\bx\src\mutex.cpp, os.cpp and thread.cpp). Use BX_PLATFORM_POSIX where needed. The semaphone implementation already uses BX_PLATFORM_POSIX to include on all the POSIX platforms; do the same also in other places for consistency. This is done also for , which is a POSIX API, and sched_yield() from it is already guarded by BX_PLATFORM_POSIX. Drop support for GNU libc older than 2.12. glibc 2.12 was released on 2010, and at this point any supported Linux distro has that version or way greather than that. Fixed BX include on Hurd. does not exist, the standard does exist so switch to it.
. Moved some duplicated code into the common header (osd\asio.h)
. PLUGINS: Allow deleting autofire buttons or input macros without needing to use the UI Clear input (plugins\autofire and plugins\inputmacro).
. Added check for systems marked as supporting saved states that use devices lacking saved state support (besides slot cards) (emu\validity.cpp). Validate device input defaults. Also do input validation on non-default slot options (emu\validity.cpp).
. Added muldiv64 and muldivu64 functions. Made multiply/divide helper names a bit more consistent with other functions (osd\eminline.h).
. Added Belarusian translation
- SDLMAME
. Use dirent::d_type on any GNU libc platform (osd\modules\file\posixdir.cpp and posixptty.cpp). This BSD extension is provided by GNU libc, so enable its usage with that C library. Use on any GNU libc platform ((osd\modules\file\posixdir.cpp and posixptty.cpp). openpty() is implemented by GNU libc for all the OSes, so include when using that C library. Cast dirent::d_name to const char* before using it ((osd\modules\file\posixdir.cpp and posixptty.cpp). According to POSIX [1], the type of dirent::d_name is loosely defined as "char d_name[]", as array with an undefined size. In particular, few ways are seen in the wild: (a) "char d_name[size]", i.e. as proper array with a full size and (b) "char d_name[1]"/"char d_name[0]", i.e. as C flexible arrays. Regardless of its type, dirent::d_name is used as if it was a classic const char *, i.e. as pointer to a null-terminated string. util::string_format() uses C++ templates to collect all the arguments, and thus it will use the actual type of dirent::d_name. In case of (a) there is no issue, however for (b) the result is that only the first character is used. To ensure that dirent::d_name is fully used, explicitly cast it to const char * before passing it to util::string_format(), so the whole string is used.
. Removed redundant checks when setting BASE_TARGETOS/SDLOS_TARGETOS. The vast majority of the OSes use BASE_TARGETOS=unix and SDLOS_TARGETOS=unix, which are set as default values; the few exceptions (Windows and macOS) already have their own selections. Hence drop all the empty if statements for other OSes than Windows and macOS, as actually redundant (osd\sdl.lua).
. Define buffer size for openpty(). There is no defined size for the slave name returned by openpty(); OSes that have a PATH_MAX constant usually use that as limit. Create a custom OPENPTY_PATH_MAX constant specifically for openpty(), even in case PATH_MAX is not available: in that situation, use 8192 as buffer size, which hopefully should be "good enough" (osd\modules\file\posixptty.cpp).
. Better handling of getting PTY path, etc. Support Issue 8 TTY_NAME_MAX/ptsname_r and pre-standard ptsname_r. Set termios flags directly rather than relying on BSD's cfmakeraw. Actually enable the XPG-8 path (file\posixptty.cpp).
- Compiling
. Only link asmjit if native DRCs are built (src\cpu.lua and src\main.lua)
. Only check for pipewire lib if NO_USE_PIPEWIRE is 0 (osd\modules.lua)
. Updated VS/MSbuild settings to reflect current ClangCL (scripts\genie.lua and scripts\src\3rdparty.lua). Cherry-pick upstream fixes for ClangCL (3rdparty\bgfx\src\renderer_d3d12.cpp and


Pages: 1

MAMEWorld >> News
View all threads Index   Threaded Mode Threaded  

Extra information Permissions
Moderator:  John IV, Robbbert, Tafoid 
0 registered and 90 anonymous users are browsing this forum.
You cannot start new topics
You cannot reply to topics
HTML is enabled
UBBCode is enabled
Thread views: 1220