(Topic ID: 129007)

How difficult from a programming perspective?

By The_Director

4 years ago

Topic Stats

  • 5 posts
  • 4 Pinsiders participating
  • Latest reply 4 years ago by uncivil_engineer
  • No one calls this topic a favorite


Linked Games

#1 4 years ago

I know nothing hardly about programming or coding, but on games like Road Show, JP, etc. that don't have randomization of the modes, how hard would it be to just alter the ROM code to include if this then that to randomize?

Maybe this is really hard, but it's really no alteration to the game's code other than randomizing the mode order. Is this difficult?

#2 4 years ago

Difficult. Code on traditional BW titles (like Road Show etc.) contain compiled code burned onto ROM chips (Read Only Memory). You literally had to burn new ROM chips to update code (unlike modern Stern, JJP games today). So you would have to have something to first read the code from ROM, then de-compile the code, interpret it, re-write it, burn back etc. Not easy (if not impossible). But today, it's easy to buy a new controller board (like a P-ROC controller from Multimorphic) that you can put into a BW game and write your own custom code from scratch (in a language like Python.) Of course, you're talking thousands of lines of code to match the typical level of game play we see in games today so it's still a heck of a lot of work. But people (including me) are doing it!

#3 4 years ago

Cool -- thanks for the answer! I figured it had to be more difficult than I imagined, otherwise we'd see more code revisions for direct ROM burning coming out.

#4 4 years ago

I agree it is difficult but not impossible. It really depends upon what you want to do.

For example, one "bug" which has been fixed in the original WPC code is the random skill shot award for BSD. This is known to be problematic for tournament play and a new ROM was created which capped the award at 500k - http://papa.org/learning-center/director-resources/directors/game-notes/#B. As you can see PAPA encourages the use of this ROM for competition.

What you're suggesting for RS is much more significant because it involves a change in the rules. The game requires you to drive from east to west and then repeat. Randomizing this could be done to some degree within the existing rules but given how cities are changed with shots to the pops, there seems little point. So if you wanted new rules on the existing hardware, using something like FreeWPC would be the way to go. But this is not trivial either - look at the 2000 hours James Cardona put into his Demolition Time code - http://pavlovpinball.com/completing-the-code/

Doing non-WPC machines is even more difficult. WPC code is well-documented and well-known. Not so much for machines like JP. ChadH did an update to DESW which involved working through the assembly code in PinMAME and has done the same thing for JP, which many hope will be released soon. The PinMAME route is another option but this is very hardcore and likely would take thousands of hours and a thorough knowledge of assembly coding.

Then there is the suggestion for using something like P-ROC. This is probably the easiest route to go in creating a new ruleset but also require investment in new hardware and it would be difficult to get many people to use it since it would require them to install P-ROC hardware in their machines.

There are other issues like copyright, IP, test and validation to name a few. If it were easy we would have seen updates to a lot of machines by now. Heck even Rick @ PPS asked for bugs people would like to see fixed in WPC code well over a year ago and to the best of my knowledge, the holder of the original source code has yet to release anything new in that regard. That should tell you how hard it is.


#5 4 years ago

+1 on using a P-roc.

If you are really interested in pinball programming, check out the P-roc on pinballconrollers.com . The P-roc board is a direct replacement for the WPC mpu board, but it will also work with Williams system 3 through 11 with an adapter board. The board allows an interface with a PC, and then you can use python to program the machine.

The system has been out about 5 years, and the programming libraries are pretty mature, and for the programming challenged, there is the Mission Pinball Framework, or pyprocgames with skeleton game. The community at pinball controllers.com is also newbie friendly.

Pinmame has also been adapted to the P-roc, so you can run the original came code as well as custom code.

I have already converted a Flash, and have now moved on to working on my Popeye machine.

Promoted items from the Pinside Marketplace
2,500 (OBO)
Machine - For Sale
Chicago, IL
$ 30.00
Yorktown Parts and Equip
$ 29.95
Playfield - Toys/Add-ons

Hey there! Got a moment?

Great to see you're enjoying Pinside! Did you know Pinside is able to run thanks to donations from our visitors? Please donate to Pinside, support the site and get anext to your username to show for it! Donate to Pinside