Jump to content



Photo
- - - - -

Pinmame on Raspberry PI: cannot start Gottlieb System1 Tables

pinmame

  • Please log in to reply
17 replies to this topic

#1 bontango

bontango

    Neophyte

  • Members
  • Pip
  • 8 posts
  • Location:Sankt Augustin

  • Flag: Germany

  • Favorite Pinball: Gottlieb Black Hole

Posted 27 April 2017 - 02:20 PM

Hello,

as this is my very first post, I hope that I put it in the right category (and that someone will be able to help)

I have a running installation of Pinmame ( X-Server ) on my Raspberry PI, running latest version of raspbian

and latest source from "svn checkout https://svn.code.sf....mame/code/trunk pinmame-code" (revision 4254).

with some minor modifikations because of compile errors.

 

All Gottlieb System80 tables running good, but I have problems with Gottlieb System1 tables.

Symptom:

The table comes up and I can add credits. But when I press the start button the system 'freezes'

no flashing 'zero' at player one, no credit decrement on Credit display, no flashing lamps, etc ...

I cross checked with 'VPinMAME28b_Minimal' on windows, there System1 tables are running fine.

 

any ideas?

thanks for you help

Ralf

 

PS:

I'm using this in my project to feed my own hardware ( System80 MPU replacement) which you can find here: http://www.lisy80.com

(sorry, all German on the website at the moment, but the images and google translate should give you at least an idea.)

 



#2 bord

bord

    Pinball Fan

  • Members
  • PipPipPipPip
  • 603 posts

  • Flag: ---------

  • Favorite Pinball: Star Gazer, Whirlwind, Frontier

Posted 27 April 2017 - 06:39 PM

Can't be of any help but wanted to tell you the project sounds awesome. Keep it up!



#3 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 28 April 2017 - 04:27 AM

Indeed! great stuff!

 

Could you please send me the patch that you did to make it compile? Then i could have a look if that patch somehow could be the reason.



#4 bontango

bontango

    Neophyte

  • Members
  • Pip
  • 8 posts
  • Location:Sankt Augustin

  • Flag: Germany

  • Favorite Pinball: Gottlieb Black Hole

Posted 28 April 2017 - 07:59 AM

Sure, what's the best way to send it to you?

As I could not find a way to attach files here, see below two links to my dropbox

 

https://www.dropbox....nmame_diff?dl=0

This is the diff file. As said only minor changes.

Please excuse the 'quick & dirty' way I did this, the compile errors were on sections which I think are not

relevant to my Unix environment and the Gottlieb emulation, especially as Gottlieb System80 tables running fine.

IMHO 'video.c' under src/unix need some bigger rework and there migh be a better way to have 'max' and 'min'

functions in unix, rather to comment out the lines :whistle:

 

https://www.dropbox....me_warning?dl=0

This is the output (warning) when compiling gts1.c, not sure how to get rid of this .. ?!

 

In general I think the unix environment is somewhat 'broken' but maybe that's because 99% of the people using windows ..

Let me know if I can be of help to fix it.

 

thanks and best regards

Ralf



#5 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 28 April 2017 - 08:17 AM

Thanks!!

 

The Unix environment i actually never tested myself, this was just a pretty old branch that i at some point decided to merge back to trunk to avoid it getting "lost" over time.

So i'm pleasantly surprised that it still seems to mostly work.  ;)

 

I'll look over the patch and get it into trunk then.

 

The warning you get should not really matter in practice, but i'll look over it again.



#6 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 28 April 2017 - 09:14 AM

The warnings in gts1 you can really ignore, it will not influence any behavior of the GTS1 emulation.

 

EDIT: As for help: Sure, if you wanna fix things, please go ahead, that would be really helpful!

Especially nice would be if you could get the libsamplerate to work on unix, as your patch now just comments it out in the mixer.c.


Edited by toxie, 28 April 2017 - 09:18 AM.


#7 legtod2

legtod2

    Enthusiast

  • Silver Supporter
  • 409 posts

  • Flag: Canada

  • Favorite Pinball: Mystic

Posted 29 April 2017 - 10:45 AM

Very impresive! Using the pi zero and the daughter board to integrate to the present lamp, solenoid, switch matrix etc is awesome.

Since my project cabinet was robbed for it parts to fix other machines I had no mpu, lamp, solenoid, switch matrix I used a pi and arduino mega to do the job.

I also looked at pinmame for the pi and hit similar issues. In the end I wrote my own logic. Using pinmame would have allowed me to recreate many of the orignal game play characteristics of the original machine.

Ended up reverse engineering gameplay logic by using virtual pinball table and figuring out rules, lights, effects.
After I got that much I added my own touches to sound effects, rules, timers etc.

Well done.

I am interested to see if a linux/pi version of pinmame can be made available.

You can see the project details here
https://pinside.com/...uino-conversion

Edited by legtod2, 29 April 2017 - 10:55 AM.


#8 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 29 April 2017 - 10:36 PM

Yeah, would be nice to get a fully compiled version available for others to try (and i don't have the time for this at the moment).



#9 bontango

bontango

    Neophyte

  • Members
  • Pip
  • 8 posts
  • Location:Sankt Augustin

  • Flag: Germany

  • Favorite Pinball: Gottlieb Black Hole

Posted 30 April 2017 - 08:07 AM

OK, what I can do is do look over my 'quick & dirty' patch and try to make a better one along with a short 'how-to' for getting it run on a raspberry PI/Jessie

In a second step I can alo add my 'LISY80' code together with a compile switch ( same as the PROC extension). If that is on interest, let me know.

 

@toxie: In case I have question on coding, naming conventions etc.what's the best way to get in contact? Here in the forum, e-mail, sourceforge, ???

Do you think you will have some time to give help/hints on the 'System1 Problem'? Happy to investigate/try/trace, but at the moment I have no idea where to start.

btw: I red about a bug with System80A games in an older version of pinmame, which looked exactly like the problem I have now with System1,

maybe you have some memory/docs what was done to get rid of the '80A' bug 10 years ago?

 

@legtod2: very nice your arduino solution, Initially I planed to do the game rules on my own too, but then I was happy to see that System80

were running well with the PI, giving me around 60 working games in one shot :-)

 

 



#10 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 30 April 2017 - 09:32 AM

i already comitted a variation of your patch (without breaking things ;)).

 

but the libsamplerate undef (which is now only done if compiling for unix though) should still be fixable on your end somehow.

i'd guess the compilation fails because of the SSE(2) code, right? it should not trigger that codepath on a raspberry though, but who knows?!

so if you could look into libsamplerate, that would be awesome (but also not the end of the world, if not ;)).

 

the LISY80 patch also sounds awesome, and as you say, if its a simple patch similar to PROC i'd want to include that for sure.

 

contact: the forum PMs is perfect i think. could take a while until i answer in the next time though, so please bare with me if that's the case. :/

 

as for the system1/system80a pinmame probs: try contacting gaston on the forum here also via PM, he could help you out, i'm sure. he's also german, so that should also help communicating the probs. :)



#11 bontango

bontango

    Neophyte

  • Members
  • Pip
  • 8 posts
  • Location:Sankt Augustin

  • Flag: Germany

  • Favorite Pinball: Gottlieb Black Hole

Posted 30 April 2017 - 09:48 AM

On the 'libsamplerate' to be honest I changed that because the includes there are in 'windows style' ( e.g. #include "..\..\ext\libsamplerate\samplerate.h" ) resulting  in lot of 'file not found' under unix.

I will change the backslashes to slashes and let you know if unix can handle the SSE(2) code



#12 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

Posted 30 April 2017 - 10:27 AM

the raspberry will not handle SSE(2), but in theory it should not matter as that codepath should not be triggered.  :)

please test and let me know. could also be that the libsamplerate code is too slow for the raspberry, so please test on the board, too.



#13 Gaston

Gaston

    Swell guy

  • VIP
  • 97 posts

  • Flag: Germany

  • Favorite Pinball: Bally Elektra



Posted 05 May 2017 - 05:40 PM

Hi, just wanted to let you guys know that bontango & I figured out why the heck Gottlieb System 1 games failed to work in PI-nmame... (pun intended):

Turned out it's some sort of bit shifting / masking / data width issue in memory.c; when you extend the CPU port ranges to 0x110 (where it's 0x100 now), games will work.

Ralf is trying to isolate the issue as I type this, but even if there is no immediate fix to the MAME core, games would still work, so LISY1 now is on its way. :D

Edited by Gaston, 06 May 2017 - 11:33 AM.

"How could it possibly break while I'm holding it?" - "Because YOU're holding it!"

#14 bontango

bontango

    Neophyte

  • Members
  • Pip
  • 8 posts
  • Location:Sankt Augustin

  • Flag: Germany

  • Favorite Pinball: Gottlieb Black Hole

Posted 08 May 2017 - 03:59 PM

latest staus as of today:

I found the issue and wrote a fix within memory.c which has already been included in the latest pinmame revision by Gerrit.

Big thanks to Gerrit for the great support over the last week! :love39:

 

Today I was able to play my first game with LISY1 as MPU replacement on my Gottlieb Charlies Angels.

If you are interested watch this short Video on my Channel on Youtube  https://youtu.be/nP77wJEtURo

 

As said, once LISY1 is running 100% I will add the source together with 'LISY80' with a 'compile switch' to the pinmame source and let you know.



#15 legtod2

legtod2

    Enthusiast

  • Silver Supporter
  • 409 posts

  • Flag: Canada

  • Favorite Pinball: Mystic

Posted 08 May 2017 - 08:12 PM

So does this mean, pinmame can be compiled on a raspberry pi (pi 3 or pi zero) with lisy1 ?
Also a gottlieb system 1 rom can be read and used to control a game (system 1 gottlieb rom game)

What is the lisy1 doing, is it handling the i2c for coms to switch matrix, 7segment display, lamp matrix ?

I looked at the document page and did use google translate for some of the stuff but to many questions in my head to ask them all.

#16 bontango

bontango

    Neophyte

  • Members
  • Pip
  • 8 posts
  • Location:Sankt Augustin

  • Flag: Germany

  • Favorite Pinball: Gottlieb Black Hole

Posted 09 May 2017 - 09:32 AM

OK, looks like now is the time to provide also english at lisy80.com website, it was planed looong time ago but ... :whistle:

To your questions:

>>> So does this mean, pinmame can be compiled on a raspberry pi (pi 3 or pi zero) with lisy1 ?

Yes, in fact the compile includes lisy1 and lisy80 (which are able to control all Gottlieb System80 games).

In the latest pinmame revision (which does not include LISY1/80 yet!) there is a small 'PI-Howto', which explains what you need to do

to get it compiled on a rasberry PI with raspbian Jessie. On my PI3 compile time is around 10 minutes

 

>>> Also a gottlieb system 1 rom can be read and used to control a game (system 1 gottlieb rom game)

Yes, although for System1 it is beta at this time, for System80 roms (LISY80) its running fine since month,

no complains from the people who are using the board in replacement of the original MPU so far.

 

>>> What is the lisy1 doing, is it handling the i2c for coms to switch matrix, 7segment display, lamp matrix ?

I a nutshell:

Tthere are three self programmed PICs ( PIC18F45K22 ) on my board who are doing the interfacing to the 'real Hardware' of the pin.

One for the display, one for switch reading and one to control lamps & solenoids.

As Linux is not a real time operating system the display refresh and switch reading is done on the PIC itself.

The solenoid PIC acts more or less as a 'port extender' for the raspberry PI.

 

In the pinmame code ( gts1.c for System1 pins) I intercept the I/O calls and send the actions for displays & coils in parallel to the PICs (via I2C bus)

Switch readings are received from the 'Switch PIC' via a '4-bit bus'; which is 'translated'  into keystrokes for pinmame.

Video output can be 'switched off' (as it is not needed) which btw. gave me a big performance boost needed for running the board with a PI zero.

 

There is also an eeprom on the boards which is able to save high-scores as my raspbian image for LISY1/80 is read-only for safety reasons.

( Note: The image which you can download on my website does not contain any roms, the roms need to be added by the user)

 

With the DIP-Switches on the board the user can select the Game/Rom needed and also add some features.

Feature currently implemented is 'Freeplay', one of the next versions will have an optional 'Ball Save' Routine.

 



#17 legtod2

legtod2

    Enthusiast

  • Silver Supporter
  • 409 posts

  • Flag: Canada

  • Favorite Pinball: Mystic

Posted 09 May 2017 - 10:36 AM

Interesting, I noticed the option sound board. Are you using something like a wave trigger for the sounds?
Assuming one of your pics would trigger the sound or even the pi/zero could trigger it.
If the pi was triggering the sounds you could add an array of new and custom sounds rather than the original offering.

Using the eeprom to store the high score is identical to what I am doing on my arduino mega for close encounters hybrid machine.
I store the top 4 high score and cycle them during attract and idle time out mode.

Way cool, if you wanted to go overboard you could extend everything on the same board like driver, lamp, 7segment, but I understand this was just ment as a mpu replacement board.

Well done

#18 bontango

bontango

    Neophyte

  • Members
  • Pip
  • 8 posts
  • Location:Sankt Augustin

  • Flag: Germany

  • Favorite Pinball: Gottlieb Black Hole

Posted 05 June 2017 - 08:57 AM

 

 

As said, once LISY1 is running 100% I will add the source together with 'LISY80' with a 'compile switch' to the pinmame source and let you know.

 


 

It's done  :yahoo: thx to toxie 'LISY' is now (r4296) part of pinmame code - https://sourceforge....mame/code/4296/

The code does support both of my Gottlieb MPU replacement boards 'LISY1' & 'LISY80'

 

More information you can find on my webpage 'www.lisy80.com' which is now (partly) available also in english.







Also tagged with one or more of these keywords: pinmame