Giter Club home page Giter Club logo

pinmame's Introduction

PinMAME

Pinball Multiple Arcade Machine Emulator

What is it?

PinMAME emulates the hardware found in almost every solid state pinball machine created from the earliest days of CPU-controlled machines (mid 1970's) through 2014 (Stern SAM), with around 770 emulated unique Pinball machines and many more clones/revisions (overall more than 2700 sets). It is available in various forms:

Standalone Emulator (PinMAME (command line), PinMAME32 (UI))

COM library (VPinMAME) to steer simulators like Visual Pinball 8/9/X

library (libPinMAME) to steer simulators like VPE, VPX Standalone, or hardware replacement solutions like PPUC

Supported platforms: Windows (x86), Linux (x86/Arm, incl. RaspberryPi and RK3588), macOS, iOS/tvOS, Android

Currently, the following pinball hardware is emulated:

Williams/Bally WPC, Williams/Bally System 11, Williams System 9, Williams System 7, Williams System 6, Williams System 4, Williams System 3, Data East AlphaNumeric System, Data East 128x16 DMD, Data East 128x32 DMD, Data East/Sega 192x64 DMD, Sega/Stern Whitestar System, Stern S.A.M., Stern MPU-100, Stern MPU-200, Bally MPU-17 & MPU-35, Bally Video/Pinball, Bally 6803, Gottlieb System 1, 80, 80a, 80b, System 3, Hankin, Gameplan MPU-1 & MPU-2, Atari, Zaccaria, Taito of Brazil, Midway, Capcom, Alvin G. and Co., Technoplay, Mr.Game, Spinball, Nuova Bell, Inder, Juegos Populares, LTD, Peyper, Sonic, Allied Leisure, Fascination, Int., Sleic, Playmatic, NSM, Grand Products, Jac van Ham, Videodens, Astro, Micropin, Christian Tabart, Jeutel, Valley Manufacturing, MAC / CICPlay, Stargame, Barni, Seeben/Sirmo, Splin Bingo, Playbar, Cirsa, Nondum / CIFA, Maibesa, ManilaMatic, Joctronic, Mirco, Sport Matic, Regama, Illinois Pinball.

Note: Emulation is not 100% working and correct for all hardware, but very close for the vast majority.

PinMAME is built as an add-on to the historic MAME 0.76 Source Code. Some of the original code was altered, and fixes from later MAME versions were applied. In addition, it can be compiled on unix platforms (including macOS) and is (hopefully) 100% compatible with 64bit CPU architectures/compiles by now.

All the historic MAME readme files with all disclaimers, credits and instructions are included for info on using MAME related functions.

All standard MAME "functions" do work the same way in PinMAME (profiler, debugger, cheats, record/playback, command line switches etc.).

In addition, there is special compile time support for the P-ROC, to drive (at least) real WPC machines with PinMAME/P-ROC, PPUC and LISY (Linux for Gottlieb System1 & System80, Bally, Atari, Williams and 'HOme' Pinballs, to drive real pinball machines via PinMAME and special hardware, see http://www.lisy80.com & http://www.lisy.dev, also README.lisy) platforms (see PROC and LISY_X defines in makefile.unix).

What does it do?

Before you start to add the ROMs from your favorite pinball machine please note:

  • The PinMAME pinball emulator/simulator itself is not 100% playable. It only emulates the electronic circuit boards and the display(s) found in the pinball machine backbox. There is no playfield and no balls that you will see 'emulated' and displayed!
  • This part can optionally be added by using separate independent program packages, like Visual Pinball or Unit3D Pinball, which take care of simulating physics and the 3D rendering of the playfield and all its parts.
  • Note however, that you can still activate switches with your keyboard, see the display animations, and listen to/record the pinball game sounds with the pure PinMAME package itself.

Games supported (incomplete)

  • Williams/Bally WPC - All games from Dr. Dude (1990) to Cactus Canyon (1998)
  • Williams/Bally System 11 - All games from High Speed (1986) to Dr.Dude (1990)
  • Williams System 9 - All games from Space Shuttle (1984) to Comet (1985)
  • Williams System 7 - All games from Black Knight (1980) to Star Light (1984)
  • Williams System 6 - All games from Blackout (1979) to Alien Poker (1980)
  • Williams System 4 - All games from Phoenix (1978) to Stellar Wars (1979)
  • Williams System 3 - All games from HotTip (1977) to Disco Fever (1978)
  • Data East AlphaNumeric System - All games from Laser War (1987) to The Simpsons (1990)
  • Data East 128x16 DMD - All games from Checkpoint (1991) to Hook (1992)
  • Data East 128x32 DMD - All games from Lethal Weapon 3 (1992) to Guns 'n Roses (1994)
  • Sega 192x64 DMD - All games from Maverick (1994) to Batman Forever (1995)
  • Sega 256x64 DMD - Flipper Football (1996)
  • Sega/Stern Whitestar - All games from Apollo 13 (1995) to Nascar (2005)
  • Stern S.A.M. - All games from World Poker Tour (2006) to Walking Dead (2014)
  • Stern MPU-100 - All games from Stingray (1977) to Magic (1979)
  • Stern MPU-200 - All games from Meteor (1979) to Lazer Lord (1984)
  • Bally MPU-17 - All games from Freedom (1977) to Black Jack (1978)
  • Bally MPU-35 - All games from Lost World (1978) to Cybernaut (1985)
  • Bally Video/Pinball - Baby Pacman (1982) and Granny & The Gators (1984)
  • Gottlieb System 1 - All games from Cleopatra (1977) to Asteroid Annie and the Aliens (1980)
  • Gottlieb System 80 - All games from Spiderman (1980) to Haunted House (1982)
  • Gottlieb System 80a - All games from Devil's Dare (1982) to Ice Fever (1985)
  • Gottlieb System 80b - All games from Triple Play (1985) to BoneBusters (1989)
  • Gottlieb System 3 - All games from Lights,Camera,Action (1989) to Barb Wire (1996)
  • Hankin Pinball - All games from FJ Holden (1978) to Orbit 1 (1981)
  • Game Plan Pinball - All games from Rio (1978) to Cyclopes (1985)
  • Atari Pinball - All games from Atarians (1976) to Road Runner (1979)
  • Zaccaria Pinball - All games from Winter Sports (1978) to New Star's Phoenix (1987)
  • Taito Pinball - All that's available... games between 1980 and 1985
  • Midway Pinball - Rotation VIII (1978)
  • Capcom Pinball - All games from Pinball Magic (1995) to Kingpin (1996)
  • Alvin G. and Co - All games from Soccer Ball (1991) to Pistol Poker (1993)
  • Tecnoplay - Scramble, X-Force (both 1987)
  • Mr. Game - Dakar, Motor Show (1988), World Cup '90 (1990)
  • Spinball - Mach 2 (1995), Jolly Park (1996)
  • Nuova Bell - all available Bally clones, also Future Queen (1987), F1 Grand Prix (1987), U-Boat 65 (1988)
  • Inder - Brave Team (1985), Canasta 86 (1986), Clown (1988), Corsario (1989), Atleta (1991), 250cc (1992), Bushido (1993)
  • Juegos Populares - Petaco (1984), Faeton (1985), America 1492, Aqualand (both 1987)
  • LTD - Atlantis, Black Hole, Zephy, Cowboy Eight Ball, Mr. & Mrs. Pec-Men, Al Capone (1980-1983)
  • Peyper - Odisea Paris-Dakar (1987)
  • Sonic - Odin DeLuxe (1985), Pole Position (1987), Star Wars (1987)
  • Allied Leisure - All games from Super Picker (1977) to Star Shooter (1979)
  • Fascination, Int. - Roy Clark - The Entertainer (1977), Eros One, and Circa 1933 (both 1979)
  • Sleic
  • Playmatic - Last Lap (1978), Antar (1979), Evil Fight (1980), Mad Race (1982), Meg-Aaton (1983), KZ-26 (1984) (*)
  • NSM
  • Grand Products - 300/Bullseye (1986)
  • Jac van Ham - Escape (1987), Movie Masters
  • Videodens - Break (1986)
  • Astro - Black Sheep Squadron (1978)
  • Micropin - Pentacup (1979)
  • Christian Tabart - L'Hexagone (1986)
  • Jeutel - Le King (1983), Olympic Games (1984)
  • Valley Manufacturing
  • MAC / CICPlay - MAC Galaxy (1986), Space Train (1987), Space Panther (1988), New MAC Jungle (1995), NBA MAC (1996), Kidnap (1986), Galaxy Play (1986), Galaxy Play 2 (1987)
  • Stargame - Space Ship (1986), Mephisto (1986), White Force (1987), Iron Balls (1987), Slalom Code 0.3 (1988)
  • Barni - Red Baron (1985)
  • Splin Bingo - Golden Game
  • Playbar - Bloody Roller
  • Cirsa
  • Nondum / CIFA
  • Maibesa
  • ManilaMatic
  • Joctronic
  • Mirco
  • Sport Matic
  • Regama - Trebol
  • Prototype games and modifications
    • Dave Nutting's Flicker (Sep 1974)
    • Bally's Bow & Arrow (Jan 1976)
    • Williams Rat Race (Jan 1983)
    • Wild Texas (Firepower II Modification)
    • machinaZOIS
    • and many more...

"Supported" usually means that the game loads and the display(s) start up along with lamps etc. All games enter attract mode and you can use the Coin Door switches to enter the menus.

Notes

  • Sound may not be supported, or may not work properly for all listed games.
  • A FEW games may not work or be supported correctly due to customizations of the original hardware.
  • Some games may not be fully supported, simply because we could not find full rom sets, so some chips remain undumped.

Simulation?

For many games there is a ball simulator which you can use to simulate "playing" the game. The simulator allows you to use the keyboard to make shots/hit targets with your virtual/invisible pinball..

Essentially, it triggers the correct switches depending on where the balls are located. You can program a simulator for your own favourite game if you know a bit of programming and a lot about the game. If you are intersted let us know and we'll try to explain how to do it.

For more information, please refer to simulation.txt for instructions on using the pinball simulator built into PinMAME! Many games are not fully simulated, but some have at least preliminary simulator support!

Note from the PinMAME Development team

We're working hard to improve this great emulator, and welcome your feedback!! Please do not hesitate to contact us with questions, bug reports, suggestions, code patches, whatever!

pinmame's People

Contributors

bcd avatar bontango avatar diego-link-eggy avatar djrobx avatar droscoe avatar francisdb avatar freezy avatar gnulnulf avatar gstellenberg avatar jockejarre avatar jsm174 avatar mjrgh avatar mkalkbrenner avatar netsplits avatar tomlogic avatar toxieainc avatar vbousquet avatar volkenborn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pinmame's Issues

Unresolved externals when building pinmame with VS2022

The following unresolved externals come up after building with VS2022.

it look like this change may be the issue:

ID Author Date Message
565237d toxie [email protected] 5/18/2023 4:22:15 PM +00:00 enable YMFM as new 2151 sound core

Error LNK2019 unresolved external symbol ymfm_ym2151_create referenced in function my_YM2151_sh_start PinMAME C:\Pinball\src\pinmame\2151intf.obj 1
Error LNK2019 unresolved external symbol ymfm_ym2151_destroy referenced in function YM2151_sh_stop PinMAME C:\Pinball\src\pinmame\2151intf.obj 1
Error LNK2019 unresolved external symbol ymfm_ym2151_reset referenced in function YM2151_sh_reset PinMAME C:\Pinball\src\pinmame\2151intf.obj 1
Error LNK2019 unresolved external symbol ymfm_ym2151_callback referenced in function timercallback PinMAME C:\Pinball\src\pinmame\2151intf.obj 1
Error LNK2019 unresolved external symbol ymfm_ym2151_invalidate_caches referenced in function YM2151_sh_reset PinMAME C:\Pinball\src\pinmame\2151intf.obj 1
Error LNK2019 unresolved external symbol ymfm_ym2151_read referenced in function YM2151_status_port_0_r PinMAME C:\Pinball\src\pinmame\2151intf.obj 1
Error LNK2019 unresolved external symbol ymfm_ym2151_write referenced in function YM2151_word_0_w PinMAME C:\Pinball\src\pinmame\2151intf.obj 1
Error LNK2019 unresolved external symbol ymfm_ym2151_generate referenced in function YM2151UpdateYMFM PinMAME C:\Pinball\src\pinmame\2151intf.obj 1

Stern MP-300 sound quality issues

Hoping sounds emulation for the Stern MP-300 board can be improved. Meteor is likely the best problem example where the emulated drone sounds nothing like the MP-300, although other games on this boardset suffer as well. Can provide recorded samples as needed.

Votrax (and more?) sound issues for GTS80

From https://www.vpforums.org/index.php?showtopic=27063&page=73#entry491401 (and half a dozen of the following posts) :
Just noticed that Gottlieb system 80 still has sound issues since many versions prior to 3.4 beta.

Please compare the sound produced by the slingshots of 'The Amazing Spider-Man' with version 2.5 and 3.3 or 3.4beta. It's only correct with the 2.5 version.
There are also sound issues for 'Hauted Hause', 'Black Hole', ...


I don't know what as been changed in the code at this time so all version after this one have a weird distortion and lose some sound effects.


Amazing Spiderman (and maybe system 80 in general?) seems to need a pitch correction


About the spiderman. Taking this completely out of my memory; and as I'm getting older ... etc. Isn't there some kind of knob you can turn for the pitch ? Haven't tried the latest vpm yet, only lies there ready to be installed. What I've noticed though is that setup.exe crashed on Win7 64bit without excluding the compression. It is mentioned earlier in this thread and I had to go back to the release that jsm gave me to get it to work. It is also not mentioned in the release that the users should do a uninstall/install - or - have I missed that part ? Since I haven't tried the very latest yet, I would not know. But, I expect that blackhole is still giving me issues. What I've seen is that playing that game once; a reboot afterwards is highly recommended.


Yes on black hole, if you play once, Votrax will be a bit fubar on the next game
The rest of the sound will be ok, but Votrax will be broken up degrading into just staticy noise.
Restart the ROM and it will be fine again

In spiderman, while the sounds sound correct as far as construction and speed played, the pitch is definitely way off much too low
I somewhat changed the sound by turning the CPU up to 200%
not exactly perfect though


I don't think you should change the default for Spiderman. Here, default plays quite close to what I remember; which isn't a proof on it's own ;) The one on youtube, to me sounds too high pitched.


You probably did not mean to
But you got a slight bit better on the votrax reset after game over on black hole

It still breaks kind of, but you can now hear him, though kind of faint.

The sound still breaks up towards the tail end of that game over explosion sound, and then the votrax goes scratchy
but now his voice is still audible instead of just total static

VPX crashes after modifying VPinMame's 3.6 beta "Use Sound" option and restarting

VPX crashes after modifying VPinMame's 3.6 beta "Use Sound" option and restarting the table.
The crash happens in both VPX 10.7.3 final (64-bit version), and 10.8 beta 3 (64-bit, DX9 version).

To reproduce:
Run any table (I am using White Water as an example), press F1, toggle "Use Sound", exit the table, run the table again. Do this sequence a several times.

I am on Windows 10 Home. i7-8700 CPU, 16.0 GB RAM

Crash with robot and lotr after last few commits

While working on implementing PinmameGetMaxSoundCommands and PinmameGetNewSoundCommands in libpinmame, tables like robot and lotr are crashing in libpinmame.

The last working commit is bbe86bc: add support for new SC01 ROM dump.

Using the libpinmame test program, when launching robot, is crashes in SN76477_mixer_w and the sn76477 structs are all null.

Screenshot 2023-06-21 at 8 01 08 AM

lotr seems to be crashing in the at91_reset:

Screenshot 2023-06-21 at 8 03 39 AM

Bug: Pinmame has buzzing/crackling with DCS machines (timing issue?)

Bug: ROM sample playback sounds like it has worse sound interpolation since 2.8 and above.
The audio has a very high frequency buzzing to it, and it's not related to peaking audio and ROM volume.
Vpinmame volume, ROM settings volume, ROM volume (in game table service menu volume), VPX volume and samplerate settings all have no affect on it and were set to the same across the board when testing various vpinmame versions.

VPX direct capture gameplay on Youtube also has this audio buzz that you can more easily hear with headphones, so it's not an isolated incident.

More info: win10 64bit, gtx1070ti, ryzen 7 2700x, VPin 10.7.0

2.7 (Perfect sound, no high pitch buzzing)
https://vocaroo.com/1ehg8kaTgOeA

2.8 (buzz)
https://vocaroo.com/16gG2OFDbebm

3.4 (buzz)
https://vocaroo.com/1aaivbev1eo1

Clearer example of the 3.4 buzz, this is much clearer in 2.7 and no buzz can be heard for this sound there.
https://vocaroo.com/1256kS9EdXhl

Same buzz can be heard on other tables, but for comparisons sake tom_13 was used. (tom_14h, tom_14bh were also tested just in case)

altsound loud buzzing noise

hi i've been struggling with this for while. I'm trying to create altsounds for rom dh_lx2. Using VPX 10.7.3.
I downloaded the rom sounds from http://altsound.vpin24.com/ . I get the alt sounds but theres alot of foreground static. I then tried to narrow it down to a particular .ogg file by removing lines from the csv, and found a couple files that when removed or replaced with a different ogg file, the buzzing goes away. Playing the "bad" file in media player they're fine, i've even tried re-exporting the file in Reaper to a different file. But now when a change other ogg files the buzzing comes back. I think looking for a specific bad file is a red herring. After a lot of fiddling, i dont see a logical pattern. Have you seen this before? i'm willing to try anything to further diagnose it. Thanks!

Recording and playback

The documentation says that VPinMAME supports the MAME ability to record and playback gameplay. Can anyone tell me how to tell VPX to issue the "-record" argument to turn this on? Thanks!

Special Force (specforc) issues

From https://www.vpforums.org/index.php?showtopic=27063&page=77#entry496896 :

Hey guys, we are having a couple issues with Special Force (specforc). There are two main issues that we discovered in the process of developing the table in VPX:

  1. Similar to the issue with LOTR where the inserts were not flashing during the modes, I believe the specforc emulation is missing some fast consecutive ROM signals. Specifically, the bumper solenoids (solenoid# 1, 2, and 3) should fire at about 100 ms interval at some points during the game (to make a machine gun sound effect). Currently only one solenoid command is given during that fast sequence when roughly 13 commands should occur in quick succession. Maybe the solution is similar to what you found with the LOTR/Whitestar emulation.

  2. There is a ROM menu setting that selects whether locked balls get ejected or remain locked at Game Over. The lock saucer is solenoid# 10. The lock saucer fires correctly during the game (and during the solenoid self-test), but it never ejects balls at game over, even when it is supposed to according to the ROM menu settings.

Enlarge size of pinmame diagnostic display

Enlarge size of pinmame diagnostic display

When run with DMD_Only 0, the diagnostic display is very very small.

As pinmame is presently the only diagnostic and investigation tool available for trying to work with ROMs for which
electrical schematics do not exist, it would be beneficial to have these displays be as large as possible to be able to read
them properly for lamp and solenoid activity

Modulated solenoids in SE hardware

Currently pinmame does not support modulated solenoid outputs in Stern/SEGA Whitestar (SE) machines, despite those machines having this capability. It would be great to be able to use modulated signals with these machines.

How to debug with pinmame ?

Hi,

i got pinmame to analyse and learn some pinball roms.

I tried with "Simpsons Data East 2.7" i can read ram but can't launch game, still saying "missing balls".
Sampe problems with others roms i tried. How can i add some balls rand run game ?

Thanks,

"Ignore ROM CRC Errors" not working on latest Beta Release

Version 3.6-369-102e419 ignores the checkbox on Ignore ROM CRC Errors.
I found this out by running the AC/DC Luci table with color ROM (acd_170hc).
The table will not load because the ROM length does not match the file.
I rolled VPINMAME.DLL back to 3.5 and all is well.

Enable MAME recording/playback in VPinMAME

MAME, which is the base that PinMAME and VPinMAME is built upon has an inherent capability to record inputs and play them back. This is a useful feature for testing and debugging issues with ROMs, as it saves the developer from having to reliably reproduce a problem multiple times. A single recorded instance of a problem is all that is needed, and can be iterated upon until the problem is resolved.

The .NET framework built around VPinMAME does not support this feature in its options list. Additionally, it does not have the necessary code to pass it to the core MAME engine, making it impossible to enable via hard-coding. I'm requesting that the ability to record and playback ROM inputs be added to VPinMAME

Games sound equalizer

Some games like whirlwind have very unmanaged basses. It’s because the real cab have a poor sound system without basses. What about adding some equalizer or inpulse responses to simulate the correct sound of cabs ? At least to let users compensate game by game.

Altsounds not behaving as expected

I have been struggling with trying to balance altsound volume, and I am now thinking there is something wrong with the software.

I am running:
VPX 10.7.3
VPinMame 3.5

For my tests, I am using my laptop, which has 2-channel audio with the Realtek drivers
I used Audacity to normalize loudness on all sound files to -14 LUFS

I have several sounds assigned to channel 0 (background music)

  • Gain is set at 100

I have several sounds that are not assigned to a channel (SFX)

  • Gain is set to 100
  • Duck value set to 5

These values are assigned merely for testing.

What is happening:

When I start a game, the background music file is playing fine. As soon as one of the SFX sounds on the unassigned channels triggers, the duck value kicks in and lowers the background music volume From there, background music volume never returns to the previous level until the ball drains.. When the ball drains, the levels return to normal until the first SFX sound is hit and the problem repeats.

As far as I can tell, this problem does not occur with sounds assigned to channel 1 (overlay). For these files, it appears the level for the background music returns when the sound is finished playing.

It is possible I am simply not doing this right, but the documentation I could find on this suggests I am not, and that this is not expected behavior. I appreciate any help!

UPDATE: Similar issue; If I leave the duck values for SFX blank, the background music plays fine at first, but then shuts off entirely when some amount of SFX sounds play. So far, I can’t tell if it’s random or not.

-Dave

ROL support for 64bit VPinMAME

From vpinball/vpinball#81 :

"I use single screen in portait, so I need to rotate DMD to get it right. When I set ROL=1, DMD is just black. with ROL=0 it works normally. Same settings with 10.6 DMD works with no problems while rotated.

UPDATE: found out the 64bit Vpinmame is bugged and doesn't support ROL. (black screen) chaning VPX 10.7 to 32bit solved the issue."

Error sound when running tables with ROMs

Error sound when running tables with ROMs

I am not sure if VPX instigates it or if it is VPinMAME
So i will report both places.

Table you can use to test with
https://drive.google.com/file/d/13Flhhqci5X3kM7Hkp9Dnbo_lgIhguQ5b/view?usp=sharing

ROM used
spcpoker.zip
https://archive.org/download/mame.0238/spcpoker.zip

What happens is
You can start the table and it plays fine, but pressing certain keyboard keys result in the windows alert or error sound
Q is one key, Enter also, all NumPad keys (With Numlock On) cause the sound as well.

Not all keys cause the sound
Shift keys do not, keys that dont actually type a character or send a linefeed (like enter key) do not cause a sound.
Arrow keys, insert del home end F keys etc make no error sound.

If you simply hit F1 and then click OK or Cancel, doesnt matter which, in the VPinMAME dialog, no more sounds.
If you reload ROM with F3, you get the error sounds again, until you hit F1 and either hit OK or Cancel or just hit escape which is same as cancel

It does not happen with EM tables

There is no error visually no dialog appearing or anything

VPX 10.8 rev 1205
VpinMAME 3.6 May 30 2023 version

VPM is set to cabinet mode and to ignore CRC errors a nd skip startup test.

Attaching my VPMKeys as a text file, but i dont see anything amiss with it?

VPMKeys.txt

Debug build is broken

A recent update broke the ability to build in DEBUG.

  Assembling asmblit.asm
  Assembling asmtile.asm
ymfm_opm.obj : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Contr
ollerSettings.obj [C:\_dev\github\pinmame\build\vpinmame\Win32\vpinmame.vcxproj]
     Creating library C:/_dev/github/pinmame/build/vpinmame/Win32/Debug/vpinmame.lib and object C:/_dev/github/pinmame/
  build/vpinmame/Win32/Debug/vpinmame.exp
C:\_dev\github\pinmame\build\vpinmame\Win32\Debug\VPinMAME.dll : fatal error LNK1319: 1 mismatches detected [C:\_dev\gi
thub\pinmame\build\vpinmame\Win32\vpinmame.vcxproj]
*** ERROR: ABNORMAL SCRIPT TERMINATION ***

I'm looking into it now, but figured I would log it.

MAME mapdevice support for multicades?

I have a lot of different controllers, mice, joysticks, spinners, etc built into my multicade arcade cabinet. Those are in addition to the digital pinball plunger (zebsboards in my case) with its associated buttons.

I'm noting that motion from my analog joysticks (Ultimarc Ultrastik 360s) are being interpreted by pinmame as nudges. So, I need a way to only map devices to pinmame that I want it to listen to, and ignore the rest. In normal standalone MAME, this is accomplished easily by creating a custom ctrlr file with explicit mapdevice parameters.

I see no reference to this same capability in pinmame.

see also: https://docs.mamedev.org/advanced/devicemap.html

Does it exist and I just didn't find the right KBs? If it doesn't exist, can it please be added as a feature enhancement request?

pinmame scripting?

Hi,

I would like to write a VBS which will allow to mass set some settings of some tables I know the logic of (Bally).
The script will start the rom, trigger the correct sequence of button to change volume or change a settings.

Is it possible?

Can you point me to the right direction? (I'm a dev, but not on windows ^^ -- macOS and iOS ^^)

In a short what's the exposed API from the pinmame com object?

pinmame windows/linux SDL2

I did a proof of concept for sdl2 in linux and windows.
On linux it works if I let the bitmap-blit.h magic work (with some keyboard issues) .
If I try to directly access bitmap->base I get the correct image with different colors.
Is anyone familiar with the pinmame bitmap object and is it worth the effort?

(if this is the wrong place to ask, what would be the best spot?)

cpu/adsp2100/2100ops.c - new bug ported in from bug in MAME code (affects DCS playback quality)

The change to this file in commit 9ed410d, which is labeled as ported from MAME/MESS, adds a new bug, which affects DCS playback quality.

Check out the diff:

9ed410d

The changes are all to the implementation of the ABS (ABSOLUTE VALUE) instruction. The old version had an explicit CLR_S to clear the AS flag in ASTAT, whereas the new code deletes the CLR_S and substitutes CLR_FLAGS.

The addition of CLR_FLAGS is correct, since the instruction is documented as updating the AC-AN-AV-AZ flags. But the deletion of CLR_S is a bug, because the documentation also says that ABS must set or clear AS, according to the sign of the source operand. (See the ADSP 2100 User's Manual, 3rd edition, September 1995, section 15, ABSOLUTE VALUE (ABS) instruction: "AS: Set if the source operand is negative. Cleared otherwise.") CLR_FLAGS doesn't affect AS, so if AS was set going into the instruction, it'll still be set coming out, even if the operand was positive.

This isn't just a harmless bookkeeping detail - it actually breaks the DCS games in a subtle way! You can observe the effect of the bug on the DCS games by firing up ST-TNG LX7, going to the test menu, running the sound test, and letting track 1 ("1ST TUNE") run on auto-repeat. You'll hear a sort of flatulent distortion, which is occurring because that new ABS instruction bug is randomizing about 30% of the DCS frames decoded. It's actually affecting all of the tracks, but it seems to be more audible in tracks with lots of low bass frequencies, and just causes some annoying popping and crackling on most of the other tracks.

If anyone has been asking why the audio for all of the DCS games has been sucking lately, this is probably the answer.

Solution: Add back the CLR_S that was there before, right after the new CLR_FLAGS.

Altsound/Pinsound only playing through one channel?

I updated VPMame and VPX and now when playing any table that has altsound or uses pinsound, I am only getting sound through the right channel. Any table that has the default sounds plays normally. Trying to identify the issue.

DMD option in Linux same with Windows?

Hi
Is there a way to get dmd Support for lisy35 with adjustable Displays size and placement for euch Player for Custom Monitor Backglass displayed by python?

libpinmame export symbols list too large

All symboles are exported and only libpinmame_API entries sould be exported.
like on windows. the unix part should replace in src/libpinmame/libpinmame.h :
#define LIBPINMAME_API extern "C"
by
#define LIBPINMAME_API attribute((visibility("default")))

and in cmake/libpinmame/CMakeLists_linux-x64.txt
add
set_target_properties(pinmame PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")

with this all functions will be hidden expect the one declared with libpinmame_api in header file.

this will resolve conflict api/abi call with osd_fread function that exist in other lib.

The Walking Dead LE slowdown on 64 bit / add AT91 JIT to non-x86-32bit path

At the start of the game everything runs fine. But after a while the dmd shows massive slowdown. It is possible the crossbow has something to do with it. The ball will not launch, crossbow goes back to the base position and after a while the ball spits out from the pivotpoint of the crossbow. After that the game froze down so hard nothing seems to work right anymore and the game is virtually unplayable. On 32 bit version no issues at all.

Improve DmdDump option

Hello,
I've created a DmdDump folder in my VPinMAME34_Minimal directory, as suggested by pinmame.txt. Running PinMAME32.exe, selecting my ROM (dm_lx4), letting it boot then pressing F6 results in no files in the created folder. I've also tried pressing F6 before launching the ROM, and also pressing it multiple times while in game, and then also escaping game.

I'm not sure how to debug this, any pointers welcome!

Thanks,
Xavier

(fwiw, audio recording with F5 works)

Shared library questions

In the installation for VPinMAME there are several shared libraries:

  • VPinMAME.dll
  • Bass.dll
  • VPinMAME64.dll
  • libpinmame-3.5.dll
  • Bass64.dll

My questions:

  1. What is the relationship between VPinMAME.dll, VPinMAME64.dll and libpinmame.dll?
  2. Does PinMAME or PinMAME32 use these libraries?
  3. Does anything else use VPinMAME.dll or VPinMAME64.dll?
  4. What is libpinmame used for?

The reason I ask is because I see a lot of apparent duplication in the code that is compiled for these libraries, suggesting common dependencies that are being handled via compilation rather than linking.

  1. Is there a reason for this?
  2. Would anyone be opposed to me trying to clean it up?

If the common dependencies can be moved to static libs and linked by the dependent projects, it will have several benefits:

  • Better logical code separation
  • Smaller file counts for dependent projects
  • Faster build times
  • Less chance of broken builds
  • Better extensibility in the future

There are more, but I think you get the idea. This is not a trivial change and it will have the following impacts:

  • Automated build system will need to be adjusted to preserve previously built artifacts to satisfy linking dependencies.
  • Version-controlled project files will need to be modified to build with the new code structure (or eliminated in favor of on-demand generation via CMake)

The above can be tested and validated prior to incorporation into Master. A feature branch off master can be created with a build process created to create and test the new approach. Once it's good, it can be merged up to the master branch

I am willing to do the project refactoring, and create the necessary CMake files to facilitate this. I will need help from the maintainers to set up the feature branch and automated build, as I do not have that access. We will need testers for the non-Windows projects to ensure that we don't adversely impact them.

libpinmame ld error

[  0%] Linking CXX shared library libpinmame.so
/usr/bin/ld : CMakeFiles/pinmame.dir/src/libpinmame/libpinmame.cpp.o:(.bss+0x10) : définitions multiples de « vector_updates »; CMakeFiles/pinmame.dir/src/vidhrdw/avgdvg.c.o:(.bss+0x0) : défini pour la première fois ici
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/pinmame.dir/build.make:4814 : libpinmame.so.3.5] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:124 : CMakeFiles/pinmame.dir/all] Erreur 2
make: *** [Makefile:103 : all] Erreur 2

## grep -R "vector_updates" *
grep: build/CMakeFiles/pinmame.dir/src/mame.c.o: binary file matches
grep: build/CMakeFiles/pinmame.dir/src/vidhrdw/avgdvg.c.o: binary file matches
grep: build/CMakeFiles/pinmame.dir/src/libpinmame/libpinmame.cpp.o: binary file matches

===>
vector_updates variable in src/libpinmame/libpinmame.cpp is already defined in src/mame.c

could be renamed or changed to 'static int' to be build correctly on linux.

7Z support

Only zip is supported.
Any chance to add 7-Zip support ?

Vpinmame X64 hangs if using altsound 2 and Pinsound is not running

(same issue as #81)

VPinMAME-sc-3.6-450-9d295cf-win-x64 will hang on startup if altsound mode is set to 2 but Pinsound is not running.

When Pinsound Studio 18.8.3 is running vpinmame X64 altsound 2 can still work as seen in the log part of the Pinsound window below;
image
image

This behaviour will also cause VPX X64 to hang at "starting game scripts" if Pinsound is not running. Ideally the game would still launch as it does in 32bit and use rom sounds when Pinsound is not running.

(a copy of Pinsound 18.8.3 is available here if that helps https://www.dropbox.com/s/n66z7ylpwzld1uw/PinSoundStudio-windows-18.8.3.zip?dl=0)

Workflow improvement suggestion

Where I work, we have a remote branch we can push to that will kick off an automatic build for testing if a change breaks the build.

in GitHub I believe it is possible to trigger a build on pull request as well. You could set up a special branch for that. Any pull request made to the special branch would kick off a build automatically. The developer can check this to make sure the build is good, before creating a pull request for master.

Another possibility is to trigger the build on pull request to master and automatically reject the pull request if the build fails. If it succeeds. The pull request will remain for the normal workflow of review/merge by the maintainers.

This would improve the workload of the maintainers and help to avoid broken builds on master.

Enhancement: Sounds coming from center speaker instead of left/right front on 7.1 SSF

Noticed this when playing around with SSF:
Sound of ROMs like mm_109 or mb_106 coming from the center speaker when using SSF setup with full 7.1 configuration.
If an Altsound set is available and used the sounds are mapped correct to the backbox speakers, front left and right speaker channels.

Some people use EqualizerApo to reroute the center channel to the BB, but this could also result in table sounds also coming from it.

Missing macOS ci build?

I was looking on how to compile / test pinmame on macOS but could not find any related github actions or instructions.

I know it is possible as vpx standalone is using pinmame and compile on macOS

Unmapped memory writes in Altsound

I see a lot of messages like this:

cpu #1 (PC=0000E8BE): unmapped memory byte write to 0000F9BB = AB
cpu #1 (PC=0000E8BE): unmapped memory byte write to 0000F9BC = F1
cpu #1 (PC=0000E8BE): unmapped memory byte write to 0000F9BD = AB
cpu #1 (PC=0000E8BE): unmapped memory byte write to 0000F9BE = F1

Any idea what's causing it? A single run of a game can result in many hundreds of these in the log file.

Enable joystick support for hybrid machines?

Pinmame32 has in the UI the ability to turn on joystick support
which is good for ROMs such as baby pacman

Vpinmame does not use those configs, and i am not sure if it is able to turn on controller support?

If it does not have the ability could it be added
If it does have the ability, what is needed to enable it?
what reg key needs made?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.