(Topic ID: 258702)

Nine Ball software rewrite

By slochar

4 years ago


Topic Heartbeat

Topic Stats

  • 71 posts
  • 23 Pinsiders participating
  • Latest reply 5 months ago by slochar
  • Topic is favorited by 32 Pinsiders

You

Linked Games

Topic Gallery

View topic image gallery

Jumpers MPU 200 for 2732 (resized).JPG
There are 71 posts in this topic. You are on page 1 of 2.
#1 4 years ago

Split off from the 9 ball troubleshooting thread, starting a separate thread to keep track.

What's been done so far:

Complete disassembly of the binary code into an editable, re-compileable format.

Code crunching to make space in the 9 ball rom to improve the ball handling. This is under test right now by a couple beta testers to make sure something isn't woefully broken before moving forward.

This will also free up space to add a playfield multiplier of 2x/3x similar to the Oliver Kaegi mod from several years ago, but without having to use some kind of larger rom and a board mod.... and anything else we can think of. I know people will want the spinner counter as it's been popular in the other games it's been added to so far (meteor and big game).

Documentation of how the game handles the balls right now is starting, this will be the longest phase, and once all variables and routines have been identified, an analysis of what will have to change will take place. Implementation of the changes and testing will commence at that point to ensure the fix is solid before releasing it into the wild, although anyone can grab the beta and try it out.

A conversation with one of the beta testers gave me a radical idea - what if 9 ball was no longer a multiball game and it was just single ball play? I think from preliminary analysis of the code that the game might have been designed initially as a single ball game and they whacked the multiball in there later on - this is COMPLETE wild-ass speculation on my part though, as I do not have any insider info regarding this at all. It might explain why the switch handling is so mangled though.

Because this idea tickles my fancy, in conjunction with whatever fixes for the multiball are come up with, I'll also be producing a version of the game that's just a single ball game. No hardware changes needed to do this - just remove 2 balls (Although I guess I could just write it to also recognize there's 3 balls and react accordingly.) Just a bit of fun, really. People might end up liking it! I've written multiball add-ons for other games in the past so why not do it the other way?

I actually did this with flight 2000 in 2018 in prep for a new operating system I was writing at the time for the weebly board, and it was kind of fun but that exercise was VERY preliminary and never stepped out of the alpha stage - no sound or speech driver existed. I did find out how fast you can move the ball walker though to speed a ball through it.

Anyway, this thread will keep people updated with the progress of the 9 ball fix-up as it occurs as well as any other mods like the single ball play. Any suggestions for updates to gameplay welcomed as well, although I can't promise that any of them will make it into the rom. One I think would be good would be instead of rolling the 173k over back to the beginning, is to leave it there for a little bit and decay it relatively quickly, to 40k, 30k, etc. with each step being lit for 50% longer. Kind of like Stern Star Wars PF multiplier.

#2 4 years ago

Following this for sure! The nineball code needs help for sure. Love the game.

#3 4 years ago

Following! I recently picked up a non working Nine Ball, I’m planning a full restoration. Just got a new CPR backglass and plastics set, both look amazing. I also recently picked up a ROM burner but still need to learn how to use it.

#4 4 years ago

Really interested in this project. It amazes me when someone takes the time to upgrade the code on these classics titles. Where’s the thread with the original 9 ball code discussion?

Now if only someone would create a multiball 2x playfield multiplier code for Embryon

#5 4 years ago

Looking forward to it!

Not trying to be a stickler but you might miss people searching for this thread for years to come not calling it Nine Ball

#6 4 years ago
Quoted from HoakyPoaky:

Now if only someone would create a multiball 2x playfield multiplier code for Embryon

https://www.ipdb.org/files/783/Bally_1981_Embryon_Home_ROM_v92.zip

That was done ages ago.

Original 9 ball discussion thread:

https://pinside.com/pinball/forum/topic/stern-nine-ball-left-ball-lock-schematic-needed

#7 4 years ago

Update, error in new code concerning the way continuous solenoids are handled (in 9 ball, some of the momentary solenoids are actually connected to continuous solenoids). Sent the new code to new beta tester - other beta testers if you're still in email me.

#8 4 years ago

Following this. Nine Ball is in my top 3 games of all time. I simply adore it.

1 week later
#9 4 years ago

Still working on this, slow going as there's really 2 projects operating in tandem on this (it was 3 until I said meteor is "almost done") - as all the crunching techniques to save space in the rom are being added into all 3 codebases. Flight 2000's is the most along in this, but also one of the most broken (meteor is the most stable, and I'm no longer adding in crunch changes as there's still a lot of space available).

1 week later
#10 4 years ago

Update, a buddy has a 9 ball about 45 minutes away, I was thinking could borrow the whole game which would be a PITA.... so, instead, I'm going to borrow the playfield and drop it into one of my many stern cabs.... probably whichever one's most accessible (probably seawitch, good access from the right side to swap roms continuously.)

I'm at the point where I'm going to pull out all the multiball code, make it a single ball game, and then add back in the multiball handling using ideas I'm cribbing from flight 2000, catacomb, firepower, pinbot, and f-14. This will go much faster once I have the playfield here, and as a bonus any beta code I send out won't completely crash the game like happened in the past.

As a bonus the playfield I'll be borrowing has issues with the 8 bank drops so I can look into fixing that as well. Probably a timing loop that if it doesn't drop the target within a certain amount of time, it will virtually drop it so the game doesn't hang up (like @barakawins1's game did in the original 9 ball troubleshooting thread that spawned this software project)

#11 4 years ago

Fuck, that makes me wanna get back into 9-Ball.

#12 4 years ago

Playfield installed in cab, testing.

Managed to accidentally duplicate the original issue Barakawins1 had with the 8 bank trying to drop a target - in this case, the target was already down (the 8 bank on the pf I borrowed has issues with resetting drops, perfect for this testing). The game hung up just try to 'drop' the 6 target even though it was already down. So, I'll have a way to tackle that (the game itself tries to reset the drop switches, but it's clearly failing here.)

I've doubled checked one of the new functions I wrote to check switches easily which had failed in crunchtests before 5, which should help with this issue. Don't trigger the drop if it's already down. As an offshoot of this, draining on a lit outlane which awards the loop value no longer resets the single drop if it's up. I always thought that was odd.

I've also played around with different switch things for ball end, etc. just trying out ideas. Already gotten rid of the shooter lane nonsense where if it doesn't see the switch it launches another ball (i.e. the trust level of the shooter lane switch is greater than the trough switches)

Oh, and the newly-popular spinner counter is in there It's nice because there's already timeout code in the game to remove the spinner lamps which I repurpose to put the ball in play back on the display.

Free play also implemented, dip 19 turns on/off.

#13 4 years ago

Code has been sent to Coyote to post here:
http://tsqmadness.com/games/roms/index.aspx

Version reports on bootup as "11", should fix the go into the saucer and nothing happens because either the target doesn't drop, or it was down already and didn't reset properly.

Add bug reports on this version to this thread.

#14 4 years ago

I honestly can't remember where I heard this - maybe from Steve Kirk himself, maybe somewhere else - and it's possible I'm completely imagining it - but my recollection is that Nine Ball was originally designed to have 9-ball multiball. It's why the lockup lane was designed the way it was (though they would have put the lockup hole at the bottom in that case.) And obviously that never happened, because they couldn't handle 9 balls in the trough. And I can only imagine what a mess Rob Quinn would have made of handling all those switches! All of which is to say it was not a single ball game that they later added multiball to; just the opposite.

So my vote is to leave it as a multiball game. (And as Corey can attest, my vote is to change *nothing* in terms of game rules, as Steve put a lot of thought in to them and who are we to second guess him at this point? Fixing bugs - of course! Adding something informative like a spinner counter - sure! But no game rule changes.)

#15 4 years ago

There will be 2 versions I never intended to remove the multiball on all the versions.... just one to see how it plays. One of the reasons I got rid of my 9 ball in the first place was that I didn't see any point at all to getting multiball. There's nothing extra to shoot for, there's no points incentive (unless you're using the Oliver variation), and it can be detrimental, in that you might hit the advance 173k loop when you don't want to (or it does it for you, since it's advancing it as you're exiting the lock lane). Or maybe a ball tags the fully lit spinner when it shouldn't.

So I'd like to learn the game instead with a different perspective, removing the carrot of "go get the multiball" to other goals. (I don't know what the tournament set even goes for on 9 ball but I'd suspect it's either the 173k or the spinner.) Maybe it's fun, maybe it isn't. I won't know until I try it. Nothing in most of the code screams it was designed as multiball so maybe Rob Quinn designed it from a single ball perspective and tried to add the multiball back in later because it really appears that way in the code. It's like he kept adding flags to try and fix all the possible scenarios without rolling some things back and starting fresh. Maybe that was the development hell that existed at stern at the time, maybe it was something else. All I know is that balls shouldn't end before they're supposed to, extra balls shouldn't be ejected into the shooter lane, a single drop being down and never resetting should never happen, and a ball in a saucer shouldn't just sit there forever because a drop bank doesn't operate correctly.

It probably was sacrosanct to not change the OS routines at the time since all of the changes I made to it to make space to implement the bug fixes basically came from the OS. No other games seem to monkey with it too much either, again probably for reasons of time.

9 ball multiball would be crazy and clearly a gimmick just like it is on Apollo 13.

The only rules change I'm contemplating is the playfield multiplier during multiball, and that'll be tunable with a dip switch. The original thinking of changing it to one ball was strictly to see if it played better and as a development version, to fix all the bugs with a single ball to worry about, THEN add in whatever the new multiball handling might have been. Not to fix all the bugs by making it a single ball version only - the single ball would be an offshoot for people who wanted to try something different. I didn't plan on putting a lot of effort into it, that's for sure.

Anything anyone doesn't like could be removed later since I plan on releasing all the source code changes.... there's already directives in it to add/remove various things.

#16 4 years ago
Quoted from slochar:

Code has been sent to coyote to post here:
http://tsqmadness.com/games/roms/index.aspx
Version reports on bootup as "11", should fix the go into the saucer and nothing happens because either the target doesn't drop, or it was down already and didn't reset properly.
Add bug reports on this version to this thread.

Will have it posted up in a couple hours, once I finish with (paying) work crap.

#17 4 years ago
Quoted from slochar:

The only rules change I'm contemplating is the playfield multiplier during multiball, and that'll be tunable with a dip switch.

I like this idea a lot. 2x for two ball, 3x for 3 ball.

#18 4 years ago

Fixed an issue where the drops were up and wouldn't drop (had fix already for them being down and marked stuck in the switch matrix, which is another hang up)
Doesn't reset the single drop if it's not down
Resets the single drop at ball start (surprisingly the stock code doesn't do this, unless it does it somewhere I didn't trace through)
Balls come out of the lock at game over (all, not just one).
No more of the shooter lane foolishness - if all 3 balls remain in the trough, it WILL eject another one after a short period.

Played with some of the ball handling, it's not "correct" yet, so v12 won't get posted until I at least have that going. Trying the first of many experiments to get it correct.

I guess 9 ball has the ball re-lock during multiball behavior - will probably add an option to flow through instead of relock.

I have the 2x/3x scoring implemented in the backend - it will blit 3_ or 2_ to the ball in play display when active. Nothing in the foreground starts it yet though, but it's all set when that's ready.

#19 4 years ago

(For the record, I didn't post the earlier one because it had issues. Once I get a good version, it will be put up on the webpage.)

3 weeks later
#20 4 years ago

This is still in progress it only looks comatose - I'm just doing 3 mpu200 things in tandem (f2k, 9b, and galaxy). One idea feeds another so I like to keep busy. Then when I'm burned out I look at Williams Pinbol stuff as a break from the routine.

I am trying ideas on the trough stuff, to ensure that the ball/game doesn't end before it should. The switches involved will still all have to work properly, but it should handle the timing better. I need to write a sampling switch function for it to be 100% reliable. I should have plenty of romspace to do this (last time I checked I wrangled 200 bytes or so out of the codebase) but I just need to get down to actually doing it and testing it out. The first several tests were a dismal failure as the ball either never ended, or ended even more prematurely than the stock code did....

I think the 8 bank switch handling is licked, though, as it will survive drops that are down but the game doesn't realize it, drops that didn't drop physically, and the single drop as well shouldn't get stuck down either.

#21 4 years ago
Quoted from slochar:

as it will survive drops that are down but the game doesn't realize it

life changer

#22 4 years ago

I think you mentioned this as things you were going to address but, the ball lock needs to fire twice at the end of each game AND upon game booting to potentially unload two locked balls. The original code only fires it once, sometimes leaving a ball stuck in the lock.

Also, during multiball, the lock shot should be a pass trough and not recapture balls, much like Defender.

#23 4 years ago

Yes, I already have the code clearing the lock completely out at the end of the game. I don't think they actually intended the lock to be cleared at the end of the game, though, I think they did the single eject so the switches would get triggered again to correct any flags that were incorrect. They actually check for this condition after firing the first one out.

It really lends credence to my theory that the software wasn't written with multiball in mind and they whacked it in later - even if Steve Kirk intended it to be multiball from the beginning, the software I think was written as one ball and the multiball code added in, which is why it's buggy.

#24 4 years ago
Quoted from slochar:

I don't think they actually intended the lock to be cleared at the end of the game, though,

Strange. Because if that is true, you could potentially earn a free lock upon completing ball 5, and an instant a two-ball MB once completing ball 9... not having actually "earned" any locked balls at all.

It's an unfair exploit for player 1 if you walk up to the game with a ball already in the lock.

For those boasting "you can't earn a lock shot with skill on Nine Ball, it's only random" I would strongly disagree. On mine, a clean spinner shot diverts consistently to the area of the lock gate, similar (exact reverse) of a bank shot to GEM on Tron.

I realize in a mutiplayer game on NB, you can steal locks. In a perfect world, I would change that to a dip switch setting, (if possible) so the game will always fire the kickout coil, regardless of how many balls are currently in the lock. That way, each player has to actually earn each multiball, with the same amount of earned shots.

Send me a PM if you need a tester, I have my eproms ready to go.

2 weeks later
#25 4 years ago
Quoted from slochar:

Yes, I already have the code clearing the lock completely out at the end of the game. I don't think they actually intended the lock to be cleared at the end of the game, though, I think they did the single eject so the switches would get triggered again to correct any flags that were incorrect. They actually check for this condition after firing the first one out.
It really lends credence to my theory that the software wasn't written with multiball in mind and they whacked it in later - even if Steve Kirk intended it to be multiball from the beginning, the software I think was written as one ball and the multiball code added in, which is why it's buggy.

Interesting! On a side note...
On the game Dragonfist, the playfield is cut for multi-ball but the game is single ball.

1 month later
#26 4 years ago

https://sites.google.com/site/allentownpinball/galaxy-asm/nineball-beta.zip?attredirects=0&d=1

Latest subversion .18

This is BETA software - try and catalog errors and post here or email address in readme file

versions for mpu 200 and weebly board.

Handling of the 8 bank when the ball goes into the capture lane should be spot on now
Still have to investigate and change behavior of the outhole/shooter lane.

#27 4 years ago

Cant wait to try this. Does it have the mb logic with the multipliers?

Thanks
Mike

#28 4 years ago

Not yet. It's in the backend but nothing activates it yet.

Just getting the drop bank spotting going regardless of the status of the switches (if it misses a switch on your 8 bank, the game just sits there because it doesn't know what to do.... that's fixed.) is the main thing so far. Testing of several backend support routines and crunch-down routines (even with added stuff in the code, there's about twice as much space free right now as stock) is really what these updates are about so far.

The game/ball ending early things are the next group of concentrations, and then the fun stuff of the added items will go.

Oh, and the spinner counter is in the current .18 - always fun to see how many spins you get.

1 month later
#29 3 years ago

Any progress?

#30 3 years ago

Lots, but it's all in flight 2000

The experience gained there with the ball coding will transfer over to 9 ball once I'm ready to really rip that out. I think the 1/2 of the biggest complaints is licked though, where the targets that don't drop just stop your game cold.

Need more people to download and try out the beta to make sure it's solid there, although one of the beta testers put slips of paper on the random drops to make sure it handled it and it did so I think that's a pretty solid test.

4 months later
#31 3 years ago

downloading to put on my nine ball.

3 weeks later
#32 3 years ago

Any word on how the new rom plays?

Quoted from NeilMcRae:

downloading to put on my nine ball.

#33 3 years ago

Would someone please send me their Nine Ball so I can help test this?

Please?

#34 3 years ago

I'd be interested in hearing how this plays

#35 3 years ago

It should play like the original since nothing gameplay wise is changed.... just a fix for the 8 bank, the single drop, and clearing of the lock at the end of a game. And the spinner counter.

It's probably more accurate to say "nine ball bug fix" instead of "rewrite" since it's really taking what's there and tweaking it.

The 2 regular beta testers haven't reported any issues after the drop handling was added.

#36 3 years ago
Quoted from slochar:

It should play like the original since nothing gameplay wise is changed.... just a fix for the 8 bank, the single drop, and clearing of the lock at the end of a game. And the spinner counter.
It's probably more accurate to say "nine ball bug fix" instead of "rewrite" since it's really taking what's there and tweaking it.
The 2 regular beta testers haven't reported any issues after the drop handling was added.

nice i should really put that in my machine

#37 3 years ago
#38 3 years ago

I have the modification Oliver done to put a 27512 or 27256... do i have to reverse the mod back to put the new roms or i can use the weebly 512 version? don't know if i'm clear...

#39 3 years ago

my game is in a another location and we are back in lockdown in the UK at the mo. December...

#40 3 years ago
Quoted from Redketchup:

I have the modification Oliver done to put a 27512 or 27256... do i have to reverse the mod back to put the new roms or i can use the weebly 512 version? don't know if i'm clear...

You can use the weebly version if it's truly reading as 512. Iirc the mod was for 256 chips in which case you would just make sure you copy the top eight bytes from the image to the top of your 256 image and it should work.

3 weeks later
#41 3 years ago

ok put this in at the weekend and its AMAZING - the spinner counter is brilliant and I didn't have a single issue with drops or stuck balls in multi ball

slochar thank you thank you - you've made a brilliant game perfect! would love to see the 2x for multiball otherwise I think the game is perfect as is!

1 month later
#42 3 years ago

I finally was able to install this new rom set (2 2732’s courtesy of T-Tommy here) and I’ve run across zero glitches.

Thanks slochar, this adds new life to a great table.

2 months later
#43 3 years ago

Hi everybody!

slochar

Can I use an allteck MPU ( HS3 94V-0) with your software an 27256 eprom?
Very nice job you've made!!

#44 3 years ago
Quoted from pub1:

Hi everybody!
slochar
Can I use an allteck MPU ( HS3 94V-0) with your software an 27256 eprom?
Very nice job you've made!!

No. You need either an OEM board, or one of Weebly's boards.

#45 3 years ago

Thanks Coyote...

#46 3 years ago
Quoted from pub1:

Thanks Coyote...

Sorry, didn't mean to sound like a dick, but when slochar was working on these software updates (for other games too, not just 9ball), he contacted ALltek who just blew him off. Meanwhile, barakandl stepps up and had an MPU replacement all ready, and had even jumped on the bandwagon and made some of the newer versions part of the library shipped with the replacement MPU.

#47 3 years ago
Quoted from Coyote:

Sorry, didn't mean to sound like a dick, but when slochar was working on these software updates (for other games too, not just 9ball), he contacted ALltek who just blew him off. Meanwhile, barakandl stepps up and had an MPU replacement all ready, and had even jumped on the bandwagon and made some of the newer versions part of the library shipped with the replacement MPU.

So if I order the Weebly, you can ask for the rewrite software?

#48 3 years ago
Quoted from jahbarron:

So if I order the Weebly, you can ask for the rewrite software?

AFAIK, SOME of the modified versions are already programmed onto it. Will need to check Weebly's site and the 'Game List' PDF he has posted there. If there's a version you want that's not posted there, you'll then have to burn an EPROM and plug it in yourself. (Can be done, not too difficult.)

#49 3 years ago

Not to mention that barakandl will likely just add it into the combo rom, if it's not already there.

Alltek wasn't 100% closed off to the custom software idea originally - he was going to make a 'classic stern' version of the rom (to get freeplay) - his eprom doesn't have enough space to host all different versions of roms that are out there (there are some custom bally games contained in it, for instance). I talked him out of having 2 different versions of the board, that would just sow confusion.

What he needs to do is redesign the board to be able to take either another small eprom or to have a larger one already there. He did refuse to divulge the format the roms were in (it's not too hard to figure out if you dump the rom) but the indication that the warranty is voided will stop a lot of people cold.

He's got a product doing it his way that's fine. I know people still consider it the gold standard of replacement boards, and the pricing reflects this. If people want to indirectly fund the product that actually enabled easier programming, buy Andrew's board - without him adding the 512 socket and the extra ram, both of which I used to develop the fixes (the stock roms in a lot of games are already full, so there's no way to add debugging information without going outside the normal romspace, or cutting something out temporarily and adding it back in later. Kind of a PITA.

Since it's semi-related, I wonder what Alltek's feeling would be about adding on the arduino setup to their boards? It does work as indicated on all the DickHamill threads. It's a tough situation to offer a lifetime warranty and then have people hanging extra hardware off your product. If I sold hardware I wouldn't warranty the crazy stuff people hang off their games. (me included)

#50 3 years ago

Thanks for this info!
I'm not a specialist, but I can burn 2732, so, could you confirm that it is possible to download your new software into an original MPU200
With jumpers like the pict....

Jumpers MPU 200 for 2732 (resized).JPGJumpers MPU 200 for 2732 (resized).JPG

Added over 3 years ago:

Oups! sorry, I've just download the different format 2716 and 2732, and I will try them tomorrow...

Thanks again for your great work slowchar!

Added over 3 years ago:

Sorry, I wanted to write: slochar

Promoted items from Pinside Marketplace and Pinside Shops!
$ 959.00
From: £ 22.00
Electronics
Retro Electro Designs
 
$ 12.00
Playfield - Toys/Add-ons
UpKick Pinball
 
$ 12.00
$ 189.00
Flipper Parts
Mircoplayfields
 
4,750 (OBO)
Machine - For Sale
Bay Shore, NY
$ 42.00
Boards
PinballReplacementParts
 
$ 859.00
Flipper Parts
Mircoplayfields
 
From: $ 14.98
Hardware
Gameroom Mods
 
From: $ 65.00
Cabinet - Shooter Rods
Super Skill Shot Shop
 
From: $ 5.00
Cabinet - Other
UpKick Pinball
 
$ 12.00
Electronics
Yorktown Arcade Supply
 
$ 29.99
Cabinet - Shooter Rods
Pinball Shark
 
From: $ 170.00
$ 3.00
Tools
Nezzy's Pinball Prints
 
$ 69.00
Great pinball charity
Pinball Edu
There are 71 posts in this topic. You are on page 1 of 2.

Reply

Wanna join the discussion? Please sign in to reply to this topic.

Hey there! Welcome to Pinside!

Donate to Pinside

Great to see you're enjoying Pinside! Did you know Pinside is able to run without any 3rd-party banners or ads, thanks to the support from our visitors? Please consider a donation to Pinside and get anext to your username to show for it! Or better yet, subscribe to Pinside+!


This page was printed from https://pinside.com/pinball/forum/topic/9-ball-software-rewrite?hl=getadam and we tried optimising it for printing. Some page elements may have been deliberately hidden.

Scan the QR code on the left to jump to the URL this document was printed from.