GithubHelp home page GithubHelp logo

bcd / freewpc Goto Github PK

View Code? Open in Web Editor NEW
36.0 36.0 45.0 29.94 MB

A toolkit for writing controlling software for real pinball machines, especially the Bally/Williams 'WPC' games from the 1990's.

Home Page: http://bcd.github.com/freewpc

License: GNU General Public License v2.0

C 94.15% Assembly 3.17% Objective-C 0.84% C++ 0.61% Perl 0.23% Shell 0.11% Python 0.88%

freewpc's People

Contributors

bcd avatar hydra 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

Watchers

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

freewpc's Issues

Question

This is a great looking project, just stumbled onto it. This runs on original boards rather than PC /PROC?

How close are the games to the originals?

common/ballsave.c needs updating

void ballsave_launch (void)
{
if defined(CONFIG_TZ)
autofire_add_ball ();
elif defined (DEVNO_TROUGH)
device_request_kick (device_entry (DEVNO_TROUGH));
endif

CONFIG_TZ needs changing to MACHINE_TZ

Allow template specialization

The template feature allows a body of code to be reused across machines. These templates allow each instantiation to fill in some parameters that complete it. For example, jet bumpers and slingshots are all instances of a "special solenoid" template.

However, every game has to fill in all of those same parameters to distinguish a jet from a sling. It would be better if we could create a partial specialization: create another template called "slingshot" and fill in some of the parameters related to slings, but not necessarily all of them. Then allow "slingshot" to be instantiated all the way to produce a final driver.

TZ Shoot again lamp being undefined

in build/mach-config.h, genmachine is creating the following entry:

undef MACHINE_SHOOT_AGAIN_LAMP

This causes the shoot again lamp to not work, I think this happens to wcs as well.

TZ: Right Ramp Diverter fails to operate randomly

Normally the diverter works using consistantly the same power and with more than enough to move the divertor.

Very occasionally it will not activate with enough power, causing the diverter to not move. What happens next is that the ball becomes stuck, as the ball search appears not to activate the diverter, although it may be just that it is not giving it enough power.

TZ: use twizone font

I may be wrong, but I don't think that the included fonts/free/twizone.fon is used at all. It would be nice to have a TZ themed font for the score.

Solenoid locking needs improved

The solenoid locking logic has several flaws and needs improving.
The number one problem is that if solenoid #0 is being pulsed, another request coming in behind it can override it.

Implement the chase ball feature

When a ball becomes hopelessly stuck somewhere, the current ball search routine will try forever. It needs to try different approaches after so many attempts. Different games have done this differently over the years; I am not sure what the best approach is right now.

Write a robust flipper driver

The flipper processing is extremely fragile at the moment. It does not handle switch problems at all, and it is power-inefficient. It is also more CPU intensive than it needs to be.

config.example needs updating

Very minor issue, the following line needs to be updated:

Set to the version of gcc6809 installed.

The 4.3.x releases are recommended, although 4.2.x releases

should still work.

GCC_VERSION := 3.4.6

GCC_VERSION := 4.2.3

GCC_VERSION := 4.3.1

GCC_VERSION := 4.4.0

to:

GCC_VERSION := 4.3.4

To be the same as current gcc6809 version.

Write more robust coin driver

The coin switches need to be handled special; there is no room for error in missing these closures. Also, requirements for minimum pulse length and time between pulses requires a dedicated driver.

Display effect queueing is not designed well enough

Rework the way that display effects are queued up, when low priority but important effects wait around to try to display later. The main problem is that if multiple effects are waiting, the order in which they get retried is essentially random. It would be better if priority were considered here.

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.