(Topic ID: 257420)

Opening Flight 2000 new software up to the community

By slochar

4 years ago


Topic Heartbeat

Topic Stats

  • 520 posts
  • 59 Pinsiders participating
  • Latest reply 11 months ago by slochar
  • Topic is favorited by 38 Pinsiders

You

Linked Games

Topic Gallery

View topic image gallery

FF27EE49-26E0-41C9-9452-14C4E5105476 (resized).jpeg
8E3D5028-6D0D-456F-9C25-B864D7D4F3B4 (resized).jpeg
4CF83F1D-26CD-4B83-8AA5-2D495EB58DE2 (resized).jpeg
540379D2-560E-461B-B037-0E51B7E052A6 (resized).jpeg
57E0FB14-BDC7-46BD-A508-A26244FE2476 (resized).jpeg
IMG_2459 (resized).JPG
IMG_2460 (resized).JPG
IMG_2458 (resized).JPG
pasted_image (resized).png
Roms_Photo (resized).JPG
2732_Remark.jpg
IMG_5443 (resized).JPG
20200918_091216 (resized).jpg
20200918_091101 (resized).jpg
walker decision tree.png
flight 2000-speech board modification.png

You're currently viewing posts by Pinsider slochar.
Click here to go back to viewing the entire thread.

12
#1 4 years ago

Going to revamp Flight 2000 in the near future by rewriting its software - popular opinion already stands that relocking balls during multiball to no avail is no fun.

Open to suggestions as to anything else that would be nice to add to the game. I suspect already people will request the popular spinner counters

#18 4 years ago

re: Lane change

Almost always someone makes it a point to ask for Lane Change whenever I ask about adding/changing rules.... here are my thoughts on lane change:

If the game ruleset is designed around it, yes, by all means it makes sense. In the case of F2k, it would make it way too easy to complete BLAST OFF. Unless something were added like it resets the letter if it wasn't already lit, penalizing you if you weren't paying attention. Spotting the letter like the older romset mod did also made it a bit easy, but I agree that something should be done to spot letters.

For multiplied scoring I plan on indicating that using the displays. On Firepower7 I blit the multiplier with the ball in play display and would probably do something similar on flight, or use the other player displays like WMS did (although that will depend on how much free space I can wrangle).

For Multiball, it's going to go something like this: You start multiball, it sets a flag. The only thing that clears that multiball flag is all the balls draining in the drain, not relocked etc. The flag will remain set, and the walker and ball maze will be controlled by that flag.

I like the idea of the timed drops resetting.

How about the idea for the bonus ladder being like quicksilvers where your bonus is 10k+9k+8k, etc. but the bonus doesn't just build a step at a time, it builds depending on the letters BLASTOFF (so there's 8 ) and then 2 additional shots from something else (ball locks?) to get you up to 10k? That's a potential 55k in bonus times your multiplier. (825k with 15x). By necessity, the bonus would have to carry over from ball to ball.... but reset the multiplier so it doesn't become a runaway for the first person to ramp up their bonus.

#20 4 years ago

How about a lane change that the player doesn't control? I.e. moves around with pop, spinner, or slingshot hits? That way, if there's some shot that's eluding you, you have some kind of chance. That sounds like something that could be turned on and off with a dip switch.

#34 4 years ago

Progress so far I have the original game codebase compiling, and am searching for ways to crunch down its footprint. This will definitely be a challenge as the space saving techniques previously used on Meteor and 9 ball are not saving space here since most of the code is pretty optimized already. I suppose I could toss everything out except the OS and really rewrite the entire thing, but I don't want to change the gameplay that much.

I probably will have to make some decisions on options instead to cut since those decision trees do take up a lot of space... maybe I can combine some of those.

A lot of the suggestions so far won't take up too much space but the stock space available is less than 10 bytes, so something will have to go!

One of the tempting things everytime I start one of these projects is to dump out the startup sequence - it's relatively long, and homeowners certainly keep track of if their games work correctly or not so might not need the LED flash startup. You can always put another chip in if needed to diagnose MPU board issues. I tried meteor once without any tests for an 'instant on' experience like WMS games and I hated it! I suppose it's just something you'd have to get used to.

Maybe I'll take a run at rewriting all the diagnostics instead, they're a little convoluted too, because of the 'burn in' test aspect where everything is cycling - there's some savings there.

I'm sure not everyone would want to either mod their mpu200's to take a larger chip or use a weebly that would want to use this software so now my work's cut out for me.

#35 4 years ago

Oh, and the other thing that's going to get added is a proper knocker, in place of the coin lockout that no one ever uses in home use (and stern themselves abandoned a couple games later).

#37 4 years ago
Quoted from zacaj:

Take out the display test, burn in and every self check except the rom, imo.
Simplify the coin logic to just 1 coin, 2 coin, and free play, applied to all chutes? Remove audits?
Or could you just rearrange so that all of that stuff is on the extra rom space a weebly has, but original board users can use a stripped down version?

Yeah, I thought about making the stock stuff just for the weebly board. Audits don't really take up a lot space other than occupying ram, the routines are short. Coin logic would save some.

Let's see what I can do re: crunching first, I might be able to get what I need I don't think I'll need too much for the suggestions. At least there's 3-4 open timers available for the timed functions.

#47 4 years ago
Quoted from zacaj:

Random thought: would one of the 2764 adapter boards work on an alltek?

It should if you modify it with the info from my page:
https://sites.google.com/site/allentownpinball/romblaster

The seigecraft adapter plugs into the cpu socket so should intercept anything in the rom address range, but I'm not sure if the custom address decoder on the Alltek would interfere (it shouldn't).

Quoted from dri:

I have an Alltek board in my F2K at the moment but I have a spare Weebly I can use for this. I can also get a ROM burner when the time comes to with test and feedback. Please advise on what burner and ROM sets to acquire.

I use Minipro TL866CS, apparently discontinued and the replacement II version doesn't go up to 21v for programming older 2732 type chips. However, if you have a weebly board for this purpose, the extra socket is a 512 and either the 866cs or 866II would work if you got those chips. I just ordered 30 of these:
https://www.amazon.com/gp/product/B07JVJCZYG/ref=ppx_yo_dt_b_asin_title_o00_s00
Based on Andrew's recommendation, as you would be able to skip buying a UV eraser since these are the eletronically eraseable version of the 512. I haven't received them yet but I'm sure they will be fine.

If you get the mini pro, it forces you to do an upgrade on the firmware when you first start it up - it will seemingly be frozen, DON'T UNPLUG IT. Let it sit for 5 minutes or so, then restart and it will be fine. Here is a review of the minipro which tilted me towards picking it up:

Quoted from pinball_ric:

If there isn't ample room left in the stock rom size I'd suggest just developing for the weebly board. Anyone who wants this would probably be fine with springing for a replacement/upgraded MPU. I know I would.

Well, part of the reason I even do this type of mod is the challenge of getting it to fit in the original space. Getting people to install rom mods is actually pretty difficult for some reason, and any bar to entry like having to buy a new board would make that even more difficult. I treat it like the demoscene for old computers, trying to wring the most performance and efficiency as I can out of it. For instance, in the 9ball project, I've saved more than enough room to implement the newer style Oliver ruleset in the stock romspace, just by more efficiently re-writing some routines. The savings available in Flight are minimal since the programmer used more efficient coding to begin with, but I still have some tricks up my sleeve to implement. Best of all, I don't have to depend on beta testers for this game like 9 ball since I own an f2k.

Quoted from Coyote:

Unfortunately the Alltek board is locked down, you're stuck with what is on it. (And I've heard rumors that he's against modifying his image to include other revisions.)
The NVRAM, barakandl 's board, freakin' ROCKS, and I highly recommend it. It CAN be switched out to run one of these custom ROMsets, PLUS give folks like slochar here extra space to add code and not be limited by the 4x 2716 address space!

The Alltek image has space in it to add romsets the format isn't that hard to figure out there's a spreadsheet floating around that listed out what's in there and you can tell from the pattern of dips where each will end up. The issue is that Alltek apparently will not honor their lifetime warranty if you modify the board in anyway (fair enough). I don't think he's against putting custom romsets, etc. in his product, since there are some there already, I just think he wants his ship to steer the way it's going, kind of automatically, and he can just collect the $$$ from the product. That's fine if that's his model, but eventually it's going to be chipped away and he'll have to change or leave. If you ask even avid hobbyists "what replacement board would you recommend" I'd say almost 80% of them would just say Alltek, even though Andrew/weebly's has the same boards available, cheaper. Funny how in the Williams Areans, Rottendog gets all the business, being the cheapest, but in the Bally/Stern world, it's all Alltek (probably because he was first to market with an all in one).

Quoted from dyopp21:

Following. And stupid question: how do I install a new ruleset? In most cases I'm using the Alltek board (or RD for Williams). I have several machines that have been mentioned here. Firepower, Meteor, Flight 2000...

You burn a new eprom for the game with the new code, which Coyote will be setting up a website to host. AFAIK Rottendog boards for Williams don't even use the STOCK williams software, there's a slight mod to it for some reason. I never looked into it, every project I've bought with a RD in it I sell the board since my purpose is to do the modifications and that board is useless to me. See the other answer above for the Alltek issues.

I am slowly converting all my games over to the weebly board just for the convenience of the 512 socket. So far, there are 2 games that will use the expanded ram/rom capabilities of it, Stars rewritten with a mashup of sternmpu200 and wms pinbol style coding, and Black Hole with the same OS (that's a major long term work in progress as you can imagine.... a bally board in a gottlieb machine).

All of the game suggestions in this thread would be child's play to stick in the weebly as it sits but that encourages sloppy programming practices. By tightening up code on Meteor for instance I saved almost 1/4 of the stock romspace for the mods, and 9 ball so far I've saved about 200 bytes (which is coming from a full rom, so 200 bytes is very significant).

#50 4 years ago

When Dave at Alltek went to surface mount I beta tested one of his boards for him in all the stern mpu200 games since I had all but 2 of them at the time. He indicated that the rom was getting full, so didn't have space for all the stern free play roms and he was going to release a special edition of the board with just stern stuff on it. I tried to talk him out of that (I think successfully since it never came out) as it would just sow confusion... which alltek is in there? I gave him a suggestion on how to implement freeplay on all games and also how to save space in his eprom but thus far neither have been implemented. I really think he just wants the project to run on automatic. I think he's making a pretty penny with it as it is since he is the top of mind replacement board.

I liken it to the older tried and true people buy Allteks, and the 'cool kids' buy the Weebly boards.

#51 4 years ago
Quoted from crlush:

Needs lane change for sure! Ive been working on a f2k on and off for a few years now.

I think the lane change option is going to end up being spinner/pop hits change the lit lanes. There's no switches available to add lane change anywhere else, and player controlled lane change would make the game dead nuts easy.

I also think maybe an occasional one shot spot on the center standup would be nice - maybe have a blinking lane travel around the playfield on your unlit lanes, and hitting the center drop spots that lane only.

I think multiball should be attainable in about 30-40% of games, not 100% of games. Even with the spot a letter in the current version of the software I have, it's still a bit easy to get it, but not 100%.... probably about 80%. I didn't really track it though.

#53 4 years ago
Quoted from dyopp21:

Will the Meteor code maintain the ability to set coin up as usual? My machines are in a public arcade that still accepts good old quarters and all the machines from the early SS era are set at $.50 per play. No big deal if not. I have two meteors and I can try it in the one I’ll end up keeping in my home arcade.

Yes, the meteor code's free play option is just that... an option. All the original coin acceptance is still there as stock. (Minus a bug in the original software that sometimes puts a 1 in the hstd's 1's unit!).

It is 99 max credits though, so if you need a variant on that (i.e. lower) you'd have to contact me for a custom-custom rom image.

I don't plan on excising the coin handling code in anything if I can avoid it. I'll have to see how much space all the suggestions take up once I start coding the enhancements. Honestly assembly langugage and stern's bytecode pigs language are really efficient.... the things that take up space in these roms are the light shows, the sounds, and parts of the OS. The actual game code for each switch is a couple bytes. The entire coin handling is less than 100 bytes, no need to excise it unless I get really desperate. I'd take out the startup flash test first.

#56 4 years ago

That would be nice to have new speech for the old stern games, and conveniently enough, although the speech rom u9 is full up, later stern speech games have u10 populated as well. I can poke around in there and see what I can find, hopefully it's like Gottlieb games and the speech phonemes are just kind of laid out in a row. The speech chip isn't a microprocessor as far as I know but I haven't really looked into that aspect too much. (I started to try and figure out how the sb-300 creates sounds, but I'm not far along into that at all other than identifying that it's programming the 6840 timer to run through a D/A convertor in the form of a resistor ladder to create sounds).

Update so far in making space in the roms, I've gained back about 90 bytes with no change in functionality, and added the lane change function to the slings, spinners, and pops. Waiting on the eeproms to arrive to stick it in the machine and make sure nothing blows up. I think the lane change will be interesting because as I was writing it, I realized you have to change what's currently lit in the blast off lane as well or it becomes meaningless.

I think I'll go with the bonus being built up to 19k instead of the other schemes like quicksilver because you're shooting all around the playfield anything on f2k to get the letters. I like the idea of the quick shot left lane to right spinner advancing the spinner as well, and I think stuff like a double spinner and bonus X advance for sweeping the right bank is a good idea too.

Of course, 2x, 3x or 4x (4x is usually easier to code than a 3x mode) during multiball was always in the cards. Identifying the progression of the multiball flags is proceeding but it's not intuitive so I want to make sure I have it 100% correct first.

#58 4 years ago

It says 1.2.3.4.5, prepare mission, stand in test mode.

So, Stand? Either way, there's an entire 2k available to add stuff.

The real issue to solve remains that the game roms are just full. I'm not at the point yet where I'm going to excise things like startup test, etc. but I think at some point that's going to happen, or the rom will be weebly only (really rather not limit this if I can, though.)

A while ago I tried some bally/stern game as an 'instant on' type of thing and it was so weird that I put it back to stock. But we'll see!

Williams games I think were instant on because the Green OS rom is FULL. They did all sorts of tricks to even get it working the way it is and get it to fit in 4k.

#61 4 years ago
Quoted from ArcadeRaid:

Ok so I just checked, I was wrong, it only counts to five. It does say, "prepare mission" at the end. I was thinking that was something new but it is a shorter version of "prepare for mission" from when you start the game. I suppose that line, "prepare for mission" could be triggered once you drop the 1 Target on the countdown.
Also, it says First Stage Go so the phenomes for GO are in there already. Maybe it could say "Go for Mission."

I do have some of the speech data decoded, and can move words around.... there's also commands to change the timbre/tone/frequency of the voices, so that can add some variations.

The lane change code broke the game so I'll have to fix that, but the 19k bonus ladder adds up correctly and collects correctly.... a lot less sloppy than the effort from 8 or 9 years ago (and in the stock rom footprint).

#62 4 years ago
Quoted from slochar:

I do have some of the speech data decoded, and can move words around.... there's also commands to change the timbre/tone/frequency of the voices, so that can add some variations.
The lane change code broke the game so I'll have to fix that, but the 19k bonus ladder adds up correctly and collects correctly.... a lot less sloppy than the effort from 8 or 9 years ago (and in the stock rom footprint).

Oh, I changed the way the 19k counts down too, in the "old" version with this it got very odd sounds, so what it's going to do is count down the 10k chunks first (so 15x10, 10k bonus lamp flashes while it's adding that in, then it extinguishes the 10k lamp and counts down the rest of the bonus normally.). Kind of like how Bally games did it for the super bonus. This way the sound effects won't get messed up.

Still debugging the lane change. The stern pigs command to branch to a subroutine that's in assembly is .... strange.... in its behavior. It works 100% flawlessly for some things, but some stuff it just breaks itself. In the case of the current subroutine it breaks the score queue timing, even when it's not running. I suspect that I might have something that doesn't relocate properly, although that would really only be the sound data at this point... unless there's a couple more hardcoded tricky things lurking in the code! Found another one yesterday, it was rather clever the way it was done to dummy up a new return address for a bunch of sound routines. Stern should have let Pfutz modify the original pigs code but I think that just got plugged in as a module. There's a lot of improvements (well, space saving) to be made there.

example-
Every Stern game has these 3 lines in it:

lda $0038 ;currently up player
ldb #$6F ;$280 (start of player save area)-$11
lda $0038 ;currently up player

So they load the accumulator from $38 twice..... in the same routine. You'd think someone would have audited it way back when.

There's also artifacts of probably debugging going on, odd NOP's inserted, a mix of assembler directives that mix 3 byte operands with 2 byte when a 2 byte would have sufficed. I remember assemblers back in the 80s on home computer and most were shit. The really "good" ones were hundreds of dollars. The worst was the Atari 800 Assembler-editor cartridge. Hand assembling was almost faster

#65 4 years ago
Quoted from mof:

That looks like 6502 machine code...
-mof

Since the 6502 was designed as a 6800 killer, that's probably why.... Chuck Peddle worked at Motorola and left with his team because he wanted to design and sell $25 cpu's. Motorola at the time was getting $200 or so for the 6800. It actually interesting that Bally and Williams even went with the 6800 instead of the 6502, but I've no idea what the quantity discount pricing would have netted them.

Both processors certainly have their shortcomings, the 6803 addresses some of them, and the 6809 is the best of them all in the 8 bit arena. At this point I prefer the 68xx branch to the 6502 for most things, my complaints usually boil down to minutia about the index register limitations in both. Too bad you can't pop a 6809 into the 6800 socket and adapt code away

Quoted from Robotworkshop:

If I can help with this project let me know. I have my Flight 2000 at home. It runs well with the original boards in it. I like the idea of not locking the balls during multi ball.
Also thought it may be really cool to leverage the memory targets. Maybe a special timed mode where they all reset and all but a random one stays up for a timed hit.

Testing will be needed at some point. I plan on releasing all the source code once it's in shape to do so and people can certainly add any rules I choose not to implement. Over the next couple days I plan on putting in the timed left inlane to right spinner combo, debugging the automatic lane change, and further deciphering the complex set of flags the game settings to virtually keep track of the balls and where they are. (Or, more accurately, where it thinks they are).

Of course also shaving a byte here and there to save more room for these changes.... I think an entire rewrite of the self-test area might be in order. It's the only major sub-section I haven't hit yet in the quest for bits.

#67 4 years ago
Quoted from Robotworkshop:

There are also quite a few secondhand 6800 books available on Amazon.
What cross assembler are you using?

AS02 with a custom macro file for the stern macros.

I picked up several 68xx era books from amazon but the one I use the most is Tocci/Laskowski Microprocessors and Microcomputers the 6800 Family. The instruction set reference section is a nice layout for when I need to reference individual instructions.

It helps that I knew 6502 from way back when although not to the extent as I do now for the 6800.

#68 4 years ago

Update, finally got the alpha software into the machine, after a left turn putting a different board in there (board in it died in an odd way) -

Working:

Quick shot from outer inlanes to right spinner advances right spinner value. Unfortunately, since they are the 'same' switch, the B standups at the top will also advance the value if you happen to get to the right spinner quickly. To try and mitigate this, a hit to a pop bumper or the 3 bank drops will zero the timer that measures if you hit the right spinner or not. This most likely will make the quick shot not really doable during multiballl.

Bonus ladder advances to 19k, working.
Bonus ladder collects from 19k, working. The 10k element collects first, for as many multipliers as you have, then the 9k elements collect as well, to prevent a strange sound effect over a certain amount.

Self test 'burn in' mode eliminated ok. First press of the self test goes into lamp test. This saved about 30 bytes. If you need to use this, you can put the original rom back in to burn in if you want, or any other stern mpu200 rom.

Several of the new techniques used in the meteor and 9 ball projects are also working here, this is all backend stuff that's not user facing in anyway, but are adding up to saving about 100 bytes overall.

Not working:

Lane change does not work as expected. The letters rotate as they should, but are not 'kept track of' properly. Eventually, what happens is lit lanes will not turn off.
There is likely a separate register somewhere that controls this. I'm not so sure I like the idea of lane change, still.

I do like the idea of spotting a letter somewhere, maybe on a 'quick shot' from the inlanes to either the center spot target, or the lock shot. Maybe a sweep of the 3 bank would spot as well? Most people have agreed that a spot from just hitting the lock lane is too easy, but the element of quick shot would negate that ease.

Forgot to test: (Whoops!)

Free play. I don't see why it wouldn't work, but I do need to specifically test it. Next time I'm in the gameroom I'll try it. (It's the exact same routine as other free play stern games, like meteor I've been working on).

Dips for speech and background sound - to save room in the rom, the game will assume that speech is always enabled, as it background sound. I maybe revisit how these work in the future as it's not too much space (maybe 15 bytes) to leave them in.

Still to be written:

The speed spotting as detailed above

Knocker code for specials and replays, using the coin lockout circuit. (All other solenoid drives are used already in this game).

Multiball code involving no re-locking.

Multiball code for 2x/3x scoring.

Spinner counters, for fun

Ability to set the standup special to pay an extra ball independently of the outlane specials, so you can earn an extra ball. Will change criteria for lighting the special possibly to something other than what it is now (I think completing blast off the second time after starting multiball lights it now?)

Anything else that sounds fun and exciting from this thread so far. You can't get REALLY complex because there's simply no more resources available (mainly Ram) to do so. Everything so far tags onto something that's already existing in the code.

I have 138 bytes currently free at the top of u6 to do this. Doesn't seem like a lot but it should suffice. The largest code block will be the spotting of letters, the rest of the stuff to be added can utilize the already existing code for other things, and the stern pigs language can be very efficient in its space requirements. Not quite as efficient as Williams' Pinbol coding, but close. (For instance.... in pinbol, the command to spot the next letter in a string would be 2 bytes. In Pigs/assembly, it's going to be more than that although how much more remains to be seen. Spotting BLAST code already exists so just have to right "off" code.)

#69 4 years ago

Wait, the spot blast when lit standup spots the entire word??!?! That's ridiculous. Shows how much I shoot that center target.... it's a drain monster on mine/tight shot.

So no reuse of that code that makes it kind of easier as the code will be the same for blast off spotting, instead of 2 separate ones.

Who thinks I should swipe the "hurry" speech out of Split second and add it to the quickshot options?? (just kidding, that drove me crazy on that game when I had it).

#71 4 years ago

The blast standup has the advantage of already having text that indicates it spots something. The old way I did it in 2012 or so was just to spot a letter on every lock shot after you had 2 locked, but that ended up being a little too easy.

The relock issue is most of the reason why I'm even doing this (well, that and 2x/3x multiplier during multiball).

You could always set the 2 F's to be collected together although that just means you have to get at least one of them.... at least they were cognizant back then that collecting the F was difficult.

It's funny how the first solid state multiball games were so difficult to acheive multiball on, and they were short when you got it. I think Black Knight's default lock on at all times was a direct reaction to firepower's difficulty. But it was new so maybe it took a while to get the balance.

#73 4 years ago
Quoted from Xtraball:

I think changing the twirl to a knocker, and 2X and 3X scoring / non-relocking balls during multi-ball is ideal. As for the timed shot thru the right spinner to increase its value...I’m not sure. That right spinner is one of primary importance as is. It is the pathway to the 3 drops which increase the spinners value so I’m constantly shooting thru that spinner. Getting the 3 drops down in 1 shot when it’s lit for 50,000 is a bonus that almost never happens. If you change that spinner to increase its value by hitting it within a certain time from the outer return lanes may make it too easy to build that spinners value. How about allowing it only when the 50,000 lite is or isn’t lit? In other words, tying it into the drops somehow I guess?

That's a good idea. I already have the time to shoot it VERY short, as in, you better it hit it first try. No trapping up and measuring your shot.... that cuts down the ability to nail it. I'd recommend everyone reset it each ball as well. The drop bank sweep being lit is a good idea too, I'll add that to a dip setting so people can use/not use it. Maybe even add a double advance if you sweep the right bank since it's so hard (independent of the quick shot). I'd love to be able to change the sound effect for the sweep to the big game 25k sound effect, but there's no room for that in the rom (sounds are pretty memory intensive.... that's probably why they reused the kapow sound so many times in f2k).

#76 4 years ago
Quoted from chubtoad13:

The center shot only spots BLAST after multiball has been started

Not any more it doesn't

It's most like they realized it was going to be a grind to get multiball so they gave you a carrot afterwards.... to make up for the frustration of multiball being over with relocks.

#78 4 years ago
Quoted from barakandl:

A way to disable speech would be nice for Gamatron owners =D. Otherwise there will be times of silence in that game.
Pretty sure you could still add the VSU100 to a gamatron tho if you made the wiring harness.

You can, since the software is exactly the same. I plan on adding compiler time directives to the code so I can slice and dice the options anyway I like, I find that much easier than maintaining multiple codebases now. There wasn't that much space saved by removing the dip code for speech anyway, so it could probably go back in... still have about 70 bytes available. Chasing a couple bugs right now that are most likely caused by my sloppy programming (I'm sure we don't want the right outlane special lighting on the quickshot routine....)

#82 4 years ago

Now tested and working:

Freeplay on/off tested working
Dips for background and speech being eliminated work (i.e. speech and background still there, might add these back in later if I don't need dips or about 10 bytes)

New features, outer inlanes light the quick shot on the right spinner and the center blast. Center blast standup spots the next letter in blast. Right spinner quickshot advances the right spinner. The quickshot timers are different for the right spinner (short) and the center standup (longer)

Fixed the right outlane special bug.

Changed the 10k bonus sound effect to be the regular bonus countdown sound, so that a full 19k*15x bonus collect will 'max' out the sound like the original 10k*15x would have.

There is a bug in the quickshot code, if you don't already have the B or the O collected, you have to collect it and then the quickshot will be available. Clearly an error in execution order on my part.

#85 4 years ago
Quoted from yatch11:

Sorry, coming to this party late. There's not more that I can. I agree with a lot of the stuff done so far. Is there a way for a skill shot up top?
Also, my machine is set up liberally, so this my not be a thing. One F rollover spots both, way to make it so that you have to roll over both?

What do you want the skill shot to do? One lit lane at the top would blink, has to be a lit lane or it messes up the blast off sequence of letters. So once you got LAST there would be no skill shot available.

See the other reply regarding the double F setting.

#93 4 years ago
Quoted from dri:

Something that is bothering me more than it should is how frenetically difficult it is to adjust rubbers and switches on the slingshots on these Sterns (my meteor was just the same) to prevent "hammering". Is there anything that can be done to deal with that?
Thank you for your hard work, this is just too awesome all around!

That is not a software issue.

One thing a lot of people overlook when they adjust slings is if the blades are mangled, you're not going to get the proper adjustment. I replace the blades on all my slings with new, straight blades, and the activation one should just be touching the rubber. Perfect sensitivity and hit with no machine gunning.

#94 4 years ago
Quoted from DRDAVE:

As for the right spinner, I like the setting where it is not reset every ball as it has wonderful potential for big points but takes a lot of effort to build. Even when built up ball to ball, it still hardly ever gets maxed out. If reset ball to ball, very few balls will ever see this mildly increased in value let alone anywhere near maxed out.

I suppose it depends on how good you get at shooting the quickshot right spinner to advance it. Regardless, not removing the dip switch setting to reset/leave the right spinner value so that would be up to the owner which way they prefer.

Quoted from zacaj:

A nice medium here might be something like how many Stern bonus multipliers work... something like, if you get it above 2000, it resets back down to 2000?

2000 is still a lot for a single spin, especially one that's really accessible. If it was just the drop bank advancing it I'd say maybe, but I think people are going to practice and get good at the quickshot.

Right now as it stands as well the spot blast is lit for quite some time you could probably trap up and hit it.

#95 4 years ago
Quoted from yatch11:

I was thinking of something along those lines. I'm not a technical person, that's why I didn't even know if was a possibility to even have one. Thanks appreciate it.

So what should the award be? Points, spot a letter, advance the right spinner, spot a letter in OFF instead of blast?
It's surprising how easily a skill shot can be added - if it's more than 10 bytes I'll be surprised. I added one a long time ago to a game and it was 4 extra bytes....

#97 4 years ago
Quoted from zacaj:

It sorta is. Newer games have debounce/etc to prevent fluttering switches. Gottlieb system 3 for instance will stop the sling from firing for a bit if it detects too many hits too fast. WPC seems to have some sort of timeout as well. Not really in scope though

That is already built into the software, but due to the speedy response needed for slings and pops, it resets really quickly. Adding anything onto it is going to change the feel of the sling. Once the code is done I plan on making the source code available so you can play with this if you want, but I don't think that re-writing software to handle what is essentially a hardware issue (and a marginal one, at that) is the goal here. Now, if this were a new game going out on location and I was trying to make it the most reliable possible, sure, why not, but presumably most flight2000's are in people's homes and they should know how to fix the switches properly.

Quoted from zacaj:

I'd vote for spotting a letter, or spot a count down target if all letters are already collected. Skillshots are always more satisfying when you get real game progress vs just points.

Done, one letter L-A-S-T will be blinking at ball launch (not sure yet if I want to have ANOTHER skill shot after a ball lock.... need to play it a bit first).
If you hit the blinking lane, it will spot a letter in blast off, if that's already completed, it will spot a drop target 5-4-3-2-1, if the countdown has already been completed it will award 25k. Of course, it will also award the blinking lamp if it hadn't been lit previously.

Not sure yet how I feel about the partial step back on the spinner - it really depends on if I can get dialed in on the quickshot to advance it. (I have a fatter post/rubber than normal protecting that shot on mine so it's not a gimmee). I think that might be confusing to some if you advance the spinner to 4.5k and it doesn't stay there OR reset to zero.

There are some new bugs as I've progressed with testing, not a bug necessarily, but the blinking lamp on the top lane blinks WAY too fast (about twice as fast as the drop that's blinking) so I'm going to change the blink rate for that lamp. Secondly, and obviously more serious, is that the multiball start no longer works. I'm going to temporarily blow back an older version of the code into the game to try and determine when and what I did to break this.

Since I now archive EVERY build of the game I can compare at least and not have to re-create source code that's been supplanted/updated, this might be easier, but there's been probably about 100 test builds of the software so far so I hope this is just some boneheaded mistake instead of something endemically wrong with the code shifting/reassembly. I did notice as well that spot blast still lights at the start of the non-starting multiball, and I specifically turn that off (since its now part of the quickshot routines).

Quoted from Xtraball:

Don’t forget the knocker!

I haven't, I have to modify the code first that checks for max credits to repurpose the coin lockout - believe it or not, they don't check the max credits by comparing one value (the max) to the current credits.... they look at the status of the coin lockout instead! Probably because it's easier to do that in the pigs code vs. straight assembly. IIRC in later games that eliminated the coin lockout entirely, they still use it as if it were there the same way.

Codebase is starting to get full again, the skill shot was a wee bit more than the 10 bytes I was hoping for, even if it was just canned at one award. Still 67 bytes available though.

#99 4 years ago

Update, so, in my zeal to cut and paste things, I put a label in the wrong spot, so the 'binc' command was never actually incrementing B. It's only used ONCE in flight 2000, and it happened to be at the multiball start. But now, there's another issue, the left spinner once multiball starts, scores 500 per letter, so the multiball start you get a TON of 500 points just being added. (This is the routine that the binc is in....) So there must be a flaw in my logic.... I added a slight delay loop to the left spinner and if you start multiball without hitting the spinner (obvi bypassing it in test with the glass off), works fine. The spinner will spin, but never scores, and eventually crashes.

At least I've got a starting point to fix this.

Found a couple more bugs in the way the skill shot is handled, that I'll have to nail down. Roughed in a bit of code to allow the knocker to be installed although that's not completed yet.

Glad I got the eeproms so I don't have to periodically load up 40 into my eraser like I used to

#101 4 years ago

So, the issue turned out to be a change I'd made to the way the score gets handled directly (as opposed to being queued, which happens in the background when nothing else is going on, even though the routine uses the same score routine) - there was no byte savings in doing it the 'new' way (checking the tilt lamp via the pigs routines vs. just doing it in assembly) - the value of B that the spinner routine was expecting would range randomly. (I'm used to the way williams did it in pinbol, where they always specifically save the values of A and B every trip into and out of their interpreter). It is possible that this bug was in the 9 ball test code as well, although it depends on if there were any "score $<somevalue> followed directly by anything that was expecting the value of B to be the same. Meteor7 didn't have this issue as the score routines were semi-different.

Still have to finish up the skill shot issue (Lane Lamp stays lit on the lane although it puts it on the left side, and spots the next letter correctly, and once you collect blast off the letters B and O start to spot the drop bank in error), and add the knocker code (and a physical knocker, to test....) Once the skill shot issue is fixed I'll ship the beta binary rom off to @coyote to put on his website so people can download it and try it out.

I still have to add in the no-relock during multiball, dips to turn on/off any of these features, and I'd like to add a feature that resets the 5-4-3-2-1 progress once you complete blast off and get 2 balls locked (It was always strange to me that you could get, all systems ready, commence countdown.... and the countdown was at 1 if that's where you had built the drops down to....)

If there's some dips available I'll try and put the right spinner reset to 2000 although I don't think I'll ever personally use this.... and yeah, I have to add in the spinner counters..... but then I might just call it 'done', at that point. (Is anything ever really 'done' though??)

#104 4 years ago

I got mine from Amazon so I paid a little more - I think they were new as well although it doesn't really matter with eeproms as long as they erase and reprogram. Look at that, pinball eproms, we were recycling before it was fashionable.

#108 4 years ago
Quoted from Classic_Stern:

The original design (Gamatron which F2k was born from) had a way to go back up top outside of the ball walker. I think some form of lane change makes sense. Not sure I would add to bottom though. This is a tough call.

Bill do you have any concrete evidence on the Gamatron story or just your hunch? I have a hunch that 9 ball was originally supposed to be a single ball game and they whacked the multiball stuff in later, but that's just a hunch. I know you've been touting the gamatron theory for a couple years, but I think it's just a theory. Gamatron does flow nicely but the sheer real estate taken up by the ball maze I don't think they would have gone for.

There's no switches available for lane change anyway without rewiring something, so it would have had to have been some kind of automatic lane change - which turned out to really suck in the game. (You'd get multiple completions of BLAST and OFF.... it just confused the game too much as the lane changes)

Quoted from Classic_Stern:

Thanks for doing this. Thought about changing Seawitch? pleazzee...

I don't think there's anything wrong with Seawitch's code as shipped from the factory, except maybe something for completing consecutive loops. What should be changed? I'm prepared to disagree

#111 4 years ago

Interesting realization in the code... I was wondering why they were setting lamp $3a when paying out a replay and then clearing it, I figured it was to prevent re-entrancy into the routine, but they don't actually check it anywhere.... it's turned on, slight delay, then turned off.

Thanks to @inkochnito's tech chart from the flight2k owner's club, I see it's wired into j2-2, which has no connection. So, looks like stern put knocker code STOCK in the game! You just have to wire up a small control circuit (like a gottlieb pop bumper driver board) into that connection and a knocker and it will knock stock!

I wrote a test rom routine in the last couple days to track what some of the slightly arcane memory locations do.... I know how to check for multiball, too, so should be able to code in the no relock during multiball. Good thing I did the test rom because the ball walker makes a 'virtual' switch closure for each ball it 'thinks' is in there. Since there's only the one physical switch at the start, it has no way to double check that info, so it never clears it unless balls get locked in it and moved down (from multiball start).

I call this 'heading a future bug off at the pass', because I certainly would have fallen into the trap of not knowing why my ball was ending after one drain.

I don't even see how switches could be installed in the ball walker mech - that would really be a challenge.

I'm going to go throw 2 balls at once into the test rom to see how smart the walker code is.

#112 4 years ago
Quoted from dothedoo:

This was discussed some years ago and one thing I mentioned was the riptide shot. That’s about as worthless as the saucer in Blackout. Great effect, but not worth shooting for.
I remember making some ridiculous suggestions, which would have resulted in an incredible scoring imbalance. But adding some rules to riptide would make it more than just a drop target game.
Maybe score based on the number of drop targets currently down instead of each individual drop that has been collected during the ball. A la the spinner in Meteor. Multiply it by the number of stars lit. With one target left standing on each bank the riptide would be worth 8K. Collect all the stars and that jumps to 32K along with a lucrative spinner. Lite riptide for 2X and now it’s worth 64K....worth shooting repeatedly.

So really the change is adding in the stars? That would make it more lucrative, max before you get all 11 drops down at least once is 40k - so comparable to a full bonus collect on the drops at 39k. Then that final 11th target, to double it to 84k.

I don't think counting the downed drops would be the way to go..... probably the way to go is to NOT like the shot doubler unless you repeat the loop..... so 4 stars down, 11 targets, 1st loop is 44k, 2nd loop is 88k. Maybe even subsequent loops keep adding up to a certain amount, since repeatable loops on seawitch are just about impossible. Any target other than the spinner and the top rollover cancel the 2x.... and you could tie the 2 together so that weak shot to top won't give it, you have to see top rollover and then spinner to collect it/light it.

Go over and vote on the next disassembly poll for seawitch if you haven't already

#116 4 years ago
Quoted from Zigzagzag:

I have 2 F2Ks here, one wired for 115V and one for 220V. The 220V one has what I assumed was the knocker by the transformer, the other one nothing - not even screw holes. I haven't checked where the coil is wired to yet. Is this a homemade knocker mod or something else ?
[quoted image][quoted image]

Likely someone swapped a bottom board from another stern game into it. That's the way stock stern knockers were, with a metal plate attached to the cabinet side.

#118 4 years ago

I've been adding that to the other sterns and ballys I've been working on so no reason why it can't go into F2k as well.

I've been working on 9 ball and a couple other things mainly for the last couple weeks but the beta test of F2k where it is now will be stress tested this weekend.

1 week later
#121 4 years ago
Quoted from Kanned_69:

Something I don't see the point of in a single player game is the 5 target bank resetting after a each new ball and dropping the already dropped targets on the previous ball back to where they were already at, seem like extra wear and tear on the whole assembly.

So just looked at the code that does this - and there's an unexpected issue with leaving this even for one player games, since you can drop out of order targets and they would be down at ball end - needing a reset and setup of the current 5 bank status anyway. Now, I could specifically test for this type of condition, but we'd start to get into extra byte creep.... trying to go the OTHER direction. I think I've pared out as much as I can with the OS and I'm now looking at what else can be trimmed to make some more space. If I get enough space, certainly, stuff like this can be added. I will add the 3 bank in like I have with Meteor, Big Game, and 9 ball.

I got some space back in the bootup sequence, it now fires the ball walker 3 times which would clear all balls out of it and lets the game itself detect that there's balls in the kickbigs in the maze, which will then eject them. That made a 30 byte routine pare down to 8 or so. Just have to keep shaving stuff out to get the rest of the stuff in.

A major section I think will be self-test - there's likely some bloat there or decisions to be made on things like, do we *REALLY* need the 'walking 8' during the display test? I guess it would be helpful in fixing things, but you could always pop a test rom chip in there if you need to diagnose displays (or if you have a test fixture setup, you're not using the built in diagnostics anyway.) I'm trying to leave as much of the game as stock as possible to get these changes in.

The crunching techniques are going to go a long way once other games get disassembled - for instance, Quicksilver's rom is pretty much 100% full. Some hack I did in the past to reset the multiplier entailed going through 3 or 4 separate free space areas to do it. (This was a patch vs. a recompile) With the crunchdown applied I think it's 100-200 bytes freed up.

It depends on the game, though, if it makes heavy usage of the storebmem, loadbmem functions from the zero page and lots of lines of "lampoff $09, lampoff $0d, lampoff $32, etc. all in a row, lots of space can be saved, but games like flight 2000 where there's not a lot of duplicated commands (but with different parameters, or zero page addresses which would save a byte, per.) the savings was minimal.

I need to roll a rom now with the sound data successfully relocating itself, to make sure the codebase is 100% relocatable (within reason.... the switch function table and pigs function tables need to stay on a page boundry)

#123 4 years ago
Quoted from Quench:

I think the digit walker can be useful. The burn in test should be first on the chopping block.

Burn in test is already gone.

You can't make the ball walker a shorter time, the finger from the next one down will send the ball back up instead of down.... has to be down for that extended period for the ball to make it to the next spot. I played around with this timing on almost every test rom I've put in, and the stock interval works the best.

#124 4 years ago

Small update, I'm running through the sound and speech data and determining what loads an address that needs to be relocatable and what doesn't. Testing slowly for this to make sure I don't break something massively.

The Mpu200 games seem to all have slightly different sound engines, or at least, very different from flight 2000's. Probably why when I tried to transplant sounds from one to another it just didn't work.

I have about 50 bytes free right now to add score multipliers, spinner displays, and all the other goodies I wanted to add. Hint: it's not going to be enough! Really combing through the code at this point using every trick to squeeze bytes I've ever seen in the past or heard of. If nothing else this is a great learning experience.

#125 4 years ago

Ok, I am officially a dummy.... the sound wasn't working for the default sound queues because I never set the X register to the pointer to the start of the sound effects! Although there were some more commands that needed tweaking as they reload sounds etc. from different places.

This is the current version, of which I think I got almost everything in that people wanted.... but the drop not resetting wasn't one of them.... sorry.... turns out the 3 bank routine also starts some background processes that are essential. There are 5 bytes free in the lower range and 13 in the upper! That's crazy especially when you compare it to the original software, which had ONE in the lower range, and 4 in the upper! (So with the mods... ended up with MORE free space than stock!)

I tested it out, and boy does the 3x playfield scoring have some major potential. Just for starting multiball, you get 3x40k for EACH time blast off counts down..... so 360k for starting multiball.... plus 30k for the maze kickouts.

Here are the overviews of the gameplay changes:

2x/3x scoring during multiball depending on # of balls in play
No relock during multiball, balls to ball walker will eject through the maze.
2_ or 3_ will blit onto the ball in play display to indicate scoring level active.

Skill shot, one of the 4 lanes at the top will blink at ball start, hit this lane will collect an extra blast off letter, unless all lit, then will collect 5-4-3-2-1 drop, if they're all lit, will score 25k (plus the original lamp score).

Quick shot, B/O lanes will light the spot blast standup for a short time, hit it to spot a letter. Also, quick react to the right spinner will advance it once (not if it was already spinning, though. Neither quickshot will light during multiball, and spot blast will not light during multiball either (normally it lights in multiball)

Bonus ladder goes to 19k instead of 10k. 10k element collects first*multipliers, then 9k-1k collect (so the sound will never overrun, like my decade old mod for the 19k)

Maxcredits 99.... dip 19 now controls free play on/off.

Spinners will count up on ball in play display for a short time. Due to romspace limitations, these will be additive (right AND left spinners will both add, so if one's spinning and other is too, they both add for a total spin count.)

If you didn't lock 2 balls in the walker, you do not get the 10k per maze kickout until you have earned 2 locks. This prevents player 2 from gaining an advantage by shooting the walker after player 1 put 2 balls in it. During multiball they will always score the 10k*pf multiplier.

That's the gameplay changes, operating system changes follow....

All displays at game end will be active, non-playing players will just show 00.

If the HSTD is <100k, all the leading zeroes will show. Once >100k, the leading zeroes will be blanked.

First press of self test will no longer be a burn in test.... just goes straight to lamp test.

Version # of the software will show on display at startup.

Ball walker routine at power up changed, the walker just fires 3 times which should be enough to clear the balls. The regular maze switches will clear the maze.

I had to make a LOT of changes to the operating system to add these features, and I'm pleased that it ended up fitting in a NORMAL romspace! These techniques can be applied to other stern games so that mods will be possible that just weren't in the past without going to a larger romspace. Already in progress is the 9 ball software, and the Galaxy disassembly. Galaxy won't need the crunching techniques because there's plenty of free space already available.... although if more is needed, crunch can be applied.

Once I fix a timing issue on the walker eject and play test this a bit I'll send it off to Coyote to post on his website.

#128 4 years ago
Quoted from dri:

Awesome work! Can't wait to get this in my game. I have an idea about the bonus ladder. Why not max it out at 55k?
10 + 9 + 8 + 7 + 6 ... etc?
This would make the bonus VERY lucrative to shoot for and everyone likes a good multiplier. This game have the digits for it.
Edit: It will also make the game look LIT when you have bonus and multipliers all lit up, signifying that you've done something good. Similar to Meteor with all rockets lit, high pitch and bonus column all lit up.

55k * 15x is 825k.... that's a LOT. I'm not sure how much I like the (Factorial?) bonus - I did that on trident and it was terrible. (I learned what NOT to do with a game on that one, it was "too much", too many high building bonuses). Also, I'd have to make more space in the rom for the routine's changes, and believe me when I tell you that I don't think there's anything left to shave..... I mean I was relocating giant sections of code at the end here to save ONE BYTE.

I don't think people necessarily shoot for 'bonus' on flight, you actually just kind of 'collect' it as you bop along. Pretty different from other stern games treatment of it that's for sure..... very traditional, Bally/Williams like, where you get bonus steps through lanes, mainly..... actually I think that's the only thing that pays bonus steps on f2k.

I really like the factorial (that might not be the right description) ramp UP on meteor, now, THAT makes shooting the bonus worth something, granted, it's a max of 7k and a good spinner rip is going to kill it no matter what. Let's see, shoot the 2 bank for 21k+possible 25k sweep on the mod romset, or rip the spinner ONCE and get >100k? Although my spinner lane is very tight with fat rubber, you really have to nail it to get it.

#130 4 years ago

I would have loved to know the thinking behind some of the choices made in the software - I just found a strange one, I noticed that the spinners (specifically the left one) have a function to not score at certain times.... very odd. Turns out that when you rip the left spinner to lock a ball, while the ball launch is going on, you get NOTHING for the spins! Hey BPfutz, that's a flat out RIPOFF. So, great rip, you can see it count up with the new software, then it pauses with no countup, ball launches, it starts counting again! This could be very significant points when the spinner is lit (500 per lit letter in this mode..... so 4000/spin lost....)

Guess what I'm going to change in the next revision!

Big Game has specific code in it to make sure you get EVERY spin when you rip the left spinner and hit the saucer.... it waits until the spinner is done before processing the saucer.

#133 4 years ago

No, there's no room for dips on each change. (the rom was full to start with, and it's full again.) Also, some of the mod code completely changes the routines, there would have to be parallel routines to use/not use some of the changes. Do you have your game set to 5 balls per game? Those are pretty high scores. I have my game set pretty hard though, with fat rubber on the tight shot entrances. Most of the time I'm trying to hit the lock after it's ready and almost but not quite getting it.

I didn't do anything with the special, but I think there does need to be a way to get extra ball. Too bad the special spot doesn't say "WOW" instead of special. I'd have to think of what needs to occur to earn an extra ball since there's nothing on the PF indicating that.

For people that want to add a knocker, you can rig something with the stock software and use the signal from the lower left lamp connector pin 2 to a knocker - that lamp lights with a short pulse for each credit earned - I think they never added the circuit board to do so because the all lamps test would fire the knocker, and for some reason it only pulses once for a hstd win/multiple matches (probably timing).

I'm going to go back to my original plan and use the coin lockout circuit for the knocker instead with custom code to control it.

#135 4 years ago
Quoted from HPR:

I got 2 extra ball at thresholds.

That's your first misstep - thresholds should pay replays!

#136 4 years ago

Oh, and making a /10 rom would be no problem, it's actually really easy to do on a stern game. I did inadvertently turn it over in testing due to a bug in the code where the score multiplier went from 3x to 255x..... oops. The ball drained out of multiball at the EXACT moment that the last ball was hitting the ball walker (and the code that handles the multiplier must have JUST been running then....)

#138 4 years ago
Quoted from HPR:

Yes, but there's no extra ball possibilities if i turn the dip for replays at thresholds, i like extra balls

Set your specials to pay extra balls! That's probably what I will add - for the blast standup, pay extra ball instead of special. Maybe light it every time that you spell BLAST OFF, and have it turn on and off with various hits, just like the sweep lamp does.... although that annoys me and I might just make the option to have the sweep lamp on all the time that the 3 drops are up.

This is still in progress despite my other projects. I like to flit around from one to another as often one solution in one game helps with a problem in another.

Everything is actually working except for tiny tweaks here and there.

2 weeks later
#141 4 years ago

I'm debugging a couple final routines and I just received the knocker parts to make sure that's working but development hasn't stopped.

#142 4 years ago

Good news - the knocker code works. I decided against leaving in the 'original' knocker code we discovered a while back in the game, because it requires building a small driver board, and the knocker would knock continuously in lamp test. The new code uses the coin lockout coin connection, and I've added a 1 amp slow blow fuse in line with it just in case it gets locked on. Marcospec sells a similar to original stern knocker mech, with a nice, fat, plastic plunger that sounds fantastic. https://www.marcospecialties.com/pinball-parts/500-5081-00 I made a cabinet metal receiver out of an old rusty/pitted bally shooter lane guide pounded flat (hey, I"m sort of thrifty.... I actually tried to build a knocker mech first out of old bally linear slingshot parts, but I couldn't get the throw on the plunger I needed....).

The last couple things to do on the software still involve the balls releasing during multiball - they will release if you shoot them back in, but if you shoot TWO in at the same time I need to be able to handle that, as well as giving you the score for the maze exits. I'm going to remove the playfield multiplied scoring during multiball, it makes it WAY too easy to run away on the game. Also, I'll make the center blast up special pay an extra ball instead of special (the outlane specials will still be specials), all depending on the dip switch settings, of course.

There's about 15 bytes free in the codebase right now, which is a miracle when you consider that the rom was FULL before I started (the original roms have *FIVE* bytes free.) So after all the changes (posted below) and not losing any audits/adjustments and slight changes to the behavior of the game, there's more free space.

As soon as the last couple bugs/quirks are gone I'll post a link to download the software.

GAMEPLAY CHANGES
======== =======

BONUS LADDER
===== ======
Bonus ladder goes to 19k instead of 10k.
Bonus 10k element adds first times multiplier,
then 9k-1k counts down with multiplier. This
is to prevent a sound overrun with the higher
bonus potential.

SKILL SHOT
===== ====
One of the 4 top lanes LAST blinks at ball
start. Making blinking lane spots additional
letter in BLAST OFF. The blinking letter is
also spotted if not already collected.

If Blast off completed, blinking lane
spots next drop 5-4-3-2-1.

If 5-4-3-2-1 sequence already completed,
blinking lane awards 25k plus normal score.

The skill shot is only available at ball start,
not when locking balls and additional balls
launched from shooter lane.

FREE PLAY
==== ====
Maximum credits always 99.
Set dip 19 to ON for free play.
Game will always start on free play even if
00 showing in credits remaining display.

QUICK SHOT
===== ====
Making B or O inlanes lights Spot Blast for
a short period - making spot blast when lit
awards 25k and next letter in BLAST OFF
sequence, as well as advancing bonus multiplier.

Right spinner if made during quick shot period
(1/2 the time the spot blast is lit) will advance
the spinner one step. If the spinner was already
spinning quick shot does not light on the spinner,
but will light on the spot blast.

MULTIBALL
=========
During multiball, balls shot into the ball walker
will eject and not remain. Maze ejects always
score 10k in multiball.

Achieving multiball no longer lights the spot BLAST
standup target - only the quick shot will light
this target. During multiball, quick shot does NOT
advance the right spinner value, but the 3 bank drop
will still advance the right spinner value.

SPINNERS
========
Right and Left spinner will show # of spins
on ball in play display. The right spinner has
priority and will 'take over' from the left
spinner if both happen to be active. If the right
spinner is active and the left spinner is hit,
the right spinner amount will remain. After a
short period, the spinner counter will return
to the ball in play.

Left spinner has been adjusted to score ALL spins.
Factory behavior was to prevent scoring during
certain ball walker behaviors.

SCORE LEVELING
===== ========
Players only receive 10k per kickout after
locking 2 balls in walker (i.e., if player 1
had 2 balls locked, player 2 only gets the
additional score once they too, have locked
2 balls. This includes ball locks that are
set to carry over game to game - each player
must put 2 balls in the lock before the 10k
per maze eject is awarded. This is for
fairness in tournaments.

KNOCKER
=======
Disconnect the wiring running to the coin door
lockout coil and reroute them to a knocker
installed near the transformer. Yellow-white
wire goes to the non-banded side of the diode
on the knocker coil. All credits won via
score levels, specials, and high score to date
awards will knock appropriately.

CHANGES RELATED TO SYSTEM BEHAVIORS
======= ======= == ====== =========
Due to operating system changes related to
making more rom space available, at game over
non-playing players will have 00 in their player
displays rather than being blank.

If the HSTD happens to be less than 100k (likely
not for long) the game will display leading zeroes
for whatever digits 100k-10 instead of blanks.
This is done again to carve free bytes into the
software to make room for the enhancements.

HSTD will only be awarded based on the nearest 100s.
(i.e. you must beat the high score by at least 100
points to be awarded the hstd. Due to the rarity of
beating the score by so little this was done as a
trade-off to again, save space.)

Additionally, the first press of the self-test
button on the coin door no longer goes directly
into a burn-in test - it instead goes directly
to the lamp test. Again, this is to save space
in the operating system.

There were many changes made to the operating system
to allow these enhancements to be added to the game
without losing any player-facing gameplay. All
adjustments and audits are still intact, including
all coin ratios.

Version of the software installed appears in the match
display at power up.

#144 4 years ago
Quoted from zacaj:

Can the wow be set to unlimited during multiball or relit somehow, to give you something to aim for (when set to points)
Pf X based on balls in the walker during mb?

Walker empties during multiball, so it's not holding it up there. I just removed the multiplied scoring because as someone else pointed out, it overpowers the game too much, which is borne out in my testing. The left spinner could be worth up to 12k/spin, and the right spinner 20k/spin - just too high IMO.

So you want the wow to be 100k instead of an extra ball, and repeatable after <something>. Probably a relock to the walker could reset the wow?

Maybe during multiball, since the blast off letters reset, each shot to the lock will recollect whatever letters are lit for 5k/letter in each maze kickout - and if you complete the blast off it will relight the wow. I almost always hit the lock lane by reflex in multiball anyway, which is frustrating on the regular rules because it nerfs your multiball.

After I removed the score multiplier code, there's about 40 bytes free again.

#147 4 years ago
Quoted from zacaj:

2x multiplier wouldn't be so overpowering if it was only while a ball was being walked though. Give some good tension trying to hit a big shot while you can see your time physically running out
Either way, there needs to be /something/ to do in multiball to make it not just single ball, but with more balls

Now, that's a pretty good idea, 2x scoring until the ball hits the right kickbig - once that fires, 2x over. And only when you hit it back in. I'll see if I can shoehorn that in.....

Quoted from psd4me:

Is it possible to make the delay longer when the ball hits the first switch in the walker before it steps? I've had the ball bounce back and not settle and hit the switch again until the walker took a step so then it thinks there's 2 balls in there. Of course I have a cc'd pf and rebuilt everything so it plays fast. Mike

I've had that happen as well. Originally, I was going to add 2 switches to the walker - but I couldn't figure out an easy way to do that since all the hardware is in the way. I thought about optos and then I said "nnnnahhh"

The walker is going to naturally take longer to settle, because I'm going to hold off on stepping it if the left spinner is still going (you get ripped off of all spins while it's stepping....).

#149 4 years ago

OK now implemented the Zacaj multiball rule - shoot the ball into the walker during multiball, enjoy 2x scoring until it leaves the maze (it's on a timer, not necessarily the actual right kickbig switch.... I thought about making it settable via the coin door, but the maximum timer value you can put on a single timer is about right for it. Now, some incentive to actually hit the ball into the walker during multiball that doesn't turn into the trite "go for the jackpot" type of thing.

And no, I don't want to make it 3x scoring while in the maze for 2 balls in there, so don't ask!

I still have to tweak 2 things, I guess the maze kickbigs will score 20k during the multi reentry as well, that way a shot to the walker is 50k total, 10k for entering, then 10k*2 for each of 2 kickbigs. The other thing is to play with the walker timing re: the spinner.

#150 4 years ago

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

anyone that wants to grab test version 33 build 3 link is above. I believe it should be working and just might need little tweaks.

Something else I've discovered that happens on ALL stern games - when you're winning a credit, depending on what else is happening, you may or may not get credit for fast spinners, for instance! So for tournaments or where your final score REALLY matters, disable replays by setting all the replay levels to 00!

Once the tweaking is finished the source code will be on the google site as well.

The final tally is *THREE* bytes free in the entire codebase. I started with five free, so I'm pretty happy with the way it's turned out.

The gammatron version might be getting tested as well, there's more tweaks to be done to that because the lanes at the top are different, so the skill shot has to be modified. That's a future thing, and it might not even be able to work 100% with the changes because they really moved around some of the switches on the playfield.

#156 4 years ago

I'm not sure what variants of the weebly board would be for what - I use the 512 version which is what the 512 image in the zip is for. The 716 images in the zip are for the original mpu200 - if you have yours jumpered for 4x2732, you would combine the 716 into 732 by using the dos commands:
copy /b CPU_U1.716 + CPU_U2.716 CPU_U2.732
copy /b CPU_U5.716 + CPU_U6.716 CPU_U6.732

I suppose I could just do this in the zip for people in future revs - I did find a problem with the skill shot coding, which had been solid up to this point, but without much playtesting of it (I was mainly playtesting the other features playing with the way they work). There will be a new revision posted later today. The first revision won't break anything, it just won't work the way you'd think it should, sometimes.

#157 4 years ago

OK, new file is up there with all 3 file formats (716, 732, 512). Looks like the skill shot is better coded now, and I saved some more rom space as well. (It was getting REALLY tight.... There's now 4 bytes free in the lower space, and 14 in the upper. Doesn't sound like much, but remember the original rom had less than that.... The zip will contain f2k-3304.512 so you know it's the right version, I doubt that I updated the text files inside it yet though, oops.

Way back when I wasn't optimizing the code at all because of the weebly board's larger romspace for development, I wrote the skill shot code really sloppily, with some extra checks etc. that it turns out I didn't need. I was originally using the rollover lamps to track things like which lamp to spot - which got tricky because the skill shot lamp blinks so you have to track if you had gotten it already. The bug was when you hadn't gotten the skill shot lamp, but it was the next lamp to be spotted anyway - so your skill shot would give you nothing.

I fixed this by using the left lane lamps instead to award the next letter, since they aren't blinking, and they are tracking your progress correctly.

https://sites.google.com/site/allentownpinball/galaxy-asm

#158 4 years ago

New version 3306, bug in [new] skill shot code - was going out but could still collect.

Also, in trying to break things, if you have 3 balls in the walker and you restart the game, the balls will just stay there. This is probably dependent on how your walker entry switch is - on mine, the ball sits in front of it vs. holding it down. I might have to change that wireform, because if it missed the switch entry, you're dead in the water. There's now only 6 bytes free in the code so this is probably not going to be able to be fixed at this point, and hopefully won't happen too much.

#162 4 years ago

Another day, another skill shot bug.... this is proving to be harder to quash within the rom limitations than I thought. It's the way Stern is fooling the game into re-launching the ball, they are actually clearing the score (playfield validation) flag to do so.... which I'm also using to make sure the skill shot is off.

Hopefully everyone ordered eeproms they are a lot faster to erase and reburn

Everyone post when you're burning these and results - I'm going to leave the 'major' # at 33, but instead of the 33 showing in the match window at bootup, it will show the 'minor' number.... which is about to be bumped up to '08'. (There will never be decade minor numbers, ie. 10, 20, 30, because it looks too much like a match.) I'm leaving the major at 33 since the feature set is 'complete' right now, the minor number is me fixing bugs, and looks like most of the bugs are in the skill shot code.

What might be considered a bug but isnt', is that the "B" standups at the top are the same switch as the "B" rollover inlane, so the 'quick shot' it is possible to hit the standup B, and go DOWN through the right spinner, which would score the quickshot. The quickshot is killed if either pop or a drop is hit though, so it usually won't happen, but of course it happened for me yesterday. Like old Colecovision manuals used to say, the Joy of Discovery... which I always took to mean "any bugs you find are actually features". Side note... a friend always told me CV games were written in Pascal and I pooh-pooh'd it, turns out parts of them were. Who knew? I wouldn't think Pascal was a good programming language for games programming, but I guess anything can be. They probably used it for the powerful boolean logic built into it.

#164 4 years ago

OK, I think I've got this bug nailed down. The skill shot shouldn't reset the letters anymore.... I did it without adding code, I just branched 2 bytes beyond the original instruction that reset the score flag - no reason to actually reset it.

I also found out that flight 2000 counts ball locks as another ball played - this is really inaccurate, and would throw off operators that were looked at balls played/# of balls per game to see how their earnings/difficulty were going. So I removed this 'feature', since not only does it throw off the # of balls played, it's not even consistently accurate in regards to what it's supposed to track, itself - balls launched out of the walker do NOT add to this count (if it was intended to track ball locks+balls played).

Oh, and audit 15 always was the # of multiballs started - not documented in the manual (since they likely just copied it over from earlier manually)

I thought of some new features, as well - when you're ready to start multiball, the game always starts of whatever # drop you have down, I propose to make an option to make it harder by resetting this to drop 5 again.

Also, the turning on and off of the drop bank sweep lamp is silly - you rarely get it anyway, so anytime the 3 drops are all up, the light should be on as well (and go off, of course, when you hit less than all 3 down)

Thoughts on this?

#165 4 years ago
Quoted from barakandl:

copy /b FF+FF+U1+U5+FF+FF+FF+FF+FF+FF+U2+U6+FF+FF+FF+FF+FF+FF+FF+FF+FF+FF+FF+FF+FF+FF+FF+FF+FF+FF+U2+U6 U1.512 (this makes a 27C512 sized image for universal combo ROM boards with U1).

I'm including the 512 image in the zip file so noone should need to do this - you do not need the final U2 copy in there either, and technically, you only need the last 8 bytes of U6 at the "top" of the 512 image. This is the way I am supplying it (on the 512 board you don't need the last 8 bytes at 5ff8-5fff, either, which would net me 8 bytes, but at the expense of the rom not working on original hardware, so that's not going anywhere).

Eventually the 512 image will have its source code embedded into the rom file, for future generations to discover and enjoy. I've tested this with Meteor and I like that anyone that happens to grab the file will also have a copy of the source code (although they'll have to figure out how to extract it)

BTW everyone should thank Andrew for his board, because without it, this development could not take place - the extra ram and rom enable me to do debugging things that I wouldn't be able to do on the original boards, to determine what the code is doing on actual hardware - sometimes what happens on pinmame doesn't translate into the hardware.

I'm REALLY loving the knocker in the game, it was glaringly missing prior.

#167 4 years ago

Another day, another bug.... now in the bonus countdown.... first, was too much, then too little. Should be just right now, file updated again.

#168 4 years ago
Quoted from zacaj:

Great idea, always felt weird to me to just have 2 or 1 left. Does the count down even do anything when blast off isn't ready? Or would it make sense to not even have the lights lit?

I think you get more score for the blinking target (5k vs. 500).

Let's see if I can wrangle more free space out of the code - I had it up to about 4 free in the lower area and 16 in the upper, but fixing the skill shot bugs and bonus count bugs removed all of the upper.

I can get a couple bytes back by removing the on/off strobing of the sweep lamp - I feel that if the drop bank is UP, you should be able to sweep it.

#169 4 years ago

I'm playing with getting the 5 bank to reset, it 'works' but its dropping the 5 all the time and it shouldn't.

While playing around, I found what may be another factory bug - the outlanes clearly state "25k" - Which it does award *if* you consider that the lit drop is going to give you 5k. The actual routine only gives you 20k.

So.... should it be 25k, AND the drop spot 5k, or is it considered 25k total WITH the spotted drop? It could be interpreted either way.

Interestingly as well, if it's spotting the 1 drop in order, it's going to score the extra bonus associated with that. So I think it should actually be 25k PLUS whatever the drop awards.

#170 4 years ago

Decided to leave the outlane scoring the way it is.

Added the following new feature:

Dip 18, ON=reset 5 bank to 5 when multiball qualified - speech says "commence countdown" - which will re-start at 5 instead of wherever you happened to have the drop bank at the time. Turn dip 18 off for factory style behavior, if you were on 1 drop needed, you still are.

Dip 23 ON=Center standup target WOW pays extra ball. Ignore dip 31/32 values for special and pays an extra ball when Wow is lit. Wow is pretty hard to light here, so it won't turn on/off with sling hits once you have it lit. Have to test to see if it will relight on the next ball which I'd rather it didn't.
The outlanes specials will pay whatever dip 31/32 says to pay so you can have an on playfield extra ball but still win credits on the other WOW's.

Revamped the bonus countdown to countdown in order 19k-0k, because it bothered me I couldn't fit the code in to step down the multiplier lamps when the 10k was added at a time - users of the very old 19k code from about 10 years ago might remember there was a sound screw up on bonus collection >155k or so - this has been eliminated, and the bonus countdown will go very quickly if you have a lot of bonus to collect.

Updated beta software if you want to test it out is at: https://sites.google.com/site/allentownpinball/galaxy-asm/flight2k-mod33.zip?attredirects=0&d=1

Reports as version 17 in match display on bootup - this is the 'minor' revision #, the major revision is still 33.

Thanks to the revamping of the bonus code, I managed to get about 20 bytes back free enabling me to add the extra ball and countdown features.

1 week later
#171 4 years ago

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

Ver 19, added a test for dip 13 on the skill shot spot, if the letter to be spotted happens to be the "F", it will check the dip for the inlane F to see if it should spot one, or 2.

Added additional code to attempt to prevent the standup B's at the top from activating the Quick Shot. It will still happen sometimes, though, the only true way to alleviate this is to either make the quickshot activation the F lanes instead of the B and O lanes, or to separate out the top B's from the inlanes (not possible without rewiring of some switches)

#173 4 years ago
Quoted from rodfone:

Ive noticed during gameplay that it launchs two balls in the shooter lane is there an error in the software

That happens with the original sometimes as well, it's because the trough switches with 2 or 3 balls in there will launch one BACKWARDS when launching a ball, if it hangs out on the leftmost switch long enough, it will launch another ball because it thinks there's too many there. Stern didn't get their multiball trough solid until Catacomb, Lightning, or Free Fall (whichever one has the switches mounted vertically under the trough, I know Catacomb for sure, not sure about the other 2).

#175 4 years ago

Now that I'm thinking of it I think flight 2000 was the machine that had 2 styles of trough - which do you have? Mine is the one with the solenoid mounted below the playfield, (earlier style per ipdb) and when the arm comes up due to its shape it can push the other balls back. The later style doesn't seem to have this issue, and it's just a normal outhole ball kicker as seen on Williams and some other stern games.... I might change mine at some point to that style.

It doesn't happen too often, but since Stern themselves changed the design midway through, they might have had an issue as well. Flight's multiball handling is usually pretty good, but it's not 100% obviously. It's really bad when you have a ball hang up on the ball walker entry, my old playfield had a divot there and balls would get stuck occasionally. I should see if I can get a Cliffy slot protector on the new PF so that a divot doesn't wear there over time. Happens with a fast moving ball slamming into the ball walker arm. (Which also gets damaged).

I did notice that occasionally the left spinner will score the points fine, but the code to count the spinner doesn't 'catch up' - there's probably a timer conflict going on. Unfortunate when that happens, because then the walker won't wait for the spinner to finish. (The pulse to the walker mechanism is REALLY long, so multiple switch activations will only end up as ONE switch during each of the step pulses.)

#176 4 years ago

Reaching the end of this project, as much as I ever call things "done" - here's the change log/buglist over the course - I know there's a couple more tweaks/bugs to fix, mainly with the quickshot and the left spinner. I have 3 bytes free right now....

I might try and do a "weebly board special edition" - with sound effects from other games, possibly add some speech from other games - the speech chip on flight 2000 is a 2716, so it can be doubled up with data from other stern talking games. What words/phrases might be good to grab? Orbitor one has "tilt, tilt tilt" and "stern is great" - NO WAY am I adding in the "shoot pinball again" from O1 though, nor "hurry.... hurry.... hurry....." from Split Second.... those sound bytes were 2 of the reasons I even sold those games.

Log follows

;eliminate dip 17, speech on/off (speech always enabled) ==>test ok
;eliminate dip 8, bg sound on/off (background always enabled)=>test ok
;eliminate dips 18-19, max credits, max credits 99 ==>test ok
;change bonus ladder advance to go to 19k ==>test ok
;change bonus collection to go to 19k ==>test ok
;added dip 19, free play on/off ==>test ok
;added quick shot advance to outer inlanes and right spinner==>test ok
;added quick shot spot blast to outer inlanes as well ==>test ok
;added spot letter routine ==>test ok

;notes on changed behaviors:

;non playing players at end of game have 00 for score instead of blank (like bally, gottlieb, etc)
;blast being lit only spots letters, not the entire word.
;10k bonus count adds first, 10k at a time, uses same sound/ramp so max bonus collect still full gamut of sounds

;eliminated mods:

;spinner/sling/pop controlled lane change ==>needs test in game, DOESN'T WORK - never "completes" letters

;bugs:
;v11,12,13
;right lane special lights with bonus add/score
; FIXED======> test ok
; was doing a 'orb, sta' sequence.... dummy!!

;v11,12,13
;ball maze never fires right kickbig, switch ok, solenoid test ok
; FIXED======> test ok
; testing one function less than should breaks new swi routine, changed test 13 to test 14 instead
;

;v14
;noticed that you have to have already collected the B or O to light the spot letter i.e. won't do it on the first time through
; FIXED======> test ok, but new bug (below)
; rearranged letter processing

;v15
;F letter collects both but then swaps lit F back and forth
;B/O lanes also spot 5-4-3-2-1 in error
; FIXED======> test ok
; saved B was offset +8 from setting left lane lamp, added correction factor

;v17
;added 'trip_switch' - takes switch # and puts into action column directly, reuses parts of blink on routine
;tested ok, but no net byte savings as it's just not used a lot in flight 2000 - reverted

;added skill shot, spots letter in blast off, if all completed, spots 5-4-3-2-1, if neither qualifies, +25k
;need to add 'neither' branch after determine if both locked and countdown over
;not making skill shot kills letter

;v18
;neither condition identified as 'all systems go' lamp in upper left (and 1st/2nd stage go, too)
;start multiball crashes after release first rocket, no letter countdown/no launch of next ball
;skill shot should happen at all ball launches, not just first shot?
;skill shot keeps collecting targets when it shouldn't

;v19
;narrowed issue with multiball down to something with the 'system' mods
;found error in binc routine, wasn't actually incrementing B, and the ONLY place this command is used is in the blast off sequence,
;which is where the error is. However, now the score just increases.
;also, 'b' and 'o' spot drops, and they shouldn't, when they are already collected

;v21
;error in checking tilt in score routine causes score $25 error in blast off countdown - fixed by reverting to stock asm
;rewrote skill shot to spot letters correctly, as well as preserving the switch row which fixes the incorrect spotting of drop banks
;skill shot now uses freed up memory from blink routines to track shots
;added knocker code, needs test
;'blast' still lighting after multiball start/ball to ball

;v22
;testing flag 5f if it is multiball active flag - it's only active while the maze walker/blast off countdown happens

;v23
;ball registers 208 and 209 on p3/p4 displays in bcd nibble hi/lo to determine what sets them and why

;208 in single player game stays at $0f
;209:
;all 3 in trough: $07
;2 trough, 1 shooter lane: $03
;1 lock, 1 trough, 1 shooter lane: $21 /$20=middle ball walker position
;2 lock, 0 trough, 1 shooter lane: $30 /$10=bottom ball walker position
; $31 SOMETIMES ($01, sticks)
;at multiball start, walks from $20 to $10 to $00 as balls empty
;lock during multiball, /$20=middle ball walker position

;v24 1.25.2020 party test

;notes:
; need to test right spinner for spinning already before enabling quickshot
; add no scoring to maze elements if you just got '1st/2nd stage go' lit (i.e. ball lock stealing)
; skill shot works, possibly explore option to add relight on locks.

;v25
;
;added test for spinner flag active and specifically block lighting the right spinner quick shot advance
;changed ball walker timing back to stock for multiball launch, as it was clearing the maze before BLAST OFF relit
;add $0032/80 for status flag, multiball active for 2x/3x scoring and ball walker re-entry
;add $0032/01 for status flag to inhibit 10k maze kickbig scoring if you didn't actually lock 2 balls yet and are rotating
; another player's balls out of the lock into the maze

;10k inhibit works TOO well.... always inhibits. <==BUG**
;startup ball walker doesn't work <==BUG**

;v26

;fixed startup ball walker.... 3 balls can be ejected from the maze kickbigs. added switch test between anyway
;delay functionality works on ball walker at startup
;inhibit 10k now works, had to test specifically for the bit after and'ing it - according to other stern code you shouldn't have to do this

;need to work on adding:

;need more code optimizations
;multiball blow through still doesn't work
;maze exit at multiball start, still too fast (it's back to stock!) to catch all blast off back on
;spinner counters
;2x/3x scoring during multiball
;drop resetting between balls

;v27

;multiball blowthrough working, need to test permutations of balls draining and add scoring to maze exits when active
;scoring was added hopefully it will work....

;maze scoring still not working, unload walker still too fast.

;v28
;unload walker crashes during multiball, removed multiball test for now

;uncommented org $198d to see if sound tables correctly relocated

;it didn't....apparently my entire code to change the sound table indexing was wrong because it certainly didn't work.

;v29

;tried new sound decoding, it finally seems to work
;shaved virtual direct action switches, 2/3 of them are never activated virtually, only directly, part of system2 directive

;$32 is accessible if you use $cf-$c8 for lamp number - you can manipulate the bits this way for multiball usage in pigs

;new flags: cf 32/80=multiball active
; cb 32/08=10k inhibit (set=don't award 10k in maze)
; 32/20-10=playfield multiplier displayed value if multiball active
; ca 32/08=flag to flip the blit
; c9 32/04=set-right spinner blitting
; 32/02-01=playfield multiplier to save in score routine if multiball active

;if multiball is set, score multiplier should work, and blit to ball in play

;v31

;got a TON of points when the left spinner was going and I relocked the ball in the walker, likely when the score was counting down.
;need sanity check on the points multiplier. ==>ADDED SANITY CHECK TO SCORE ROUTINE

;might need a TAD longer on the ball walker, 2 balls made it into the left kickbig on bootup ==>LEFT FOR NOW

;10k not awarded when you go into the kickbigs in multiball - there's probably an existing flag I can use for this although it wouldn't
;do the sound effect ==>ADDED FLAG CLEAR BEFORE MULTIBALL TEST INSTEAD OF AFTER, update, still n/w

;skill shot made did not get "o" <=could not duplicate

;v31A

;error in trimming speech - $00 is the speech stoppper, was getting "commence countdown 5" because of this, corrected

;still not scoring the 10k during multiball....

;v32 debug weebly only build semaphores show on p3/p4

;stop on left 1 (5b set) and right 3 (5a clear)

;v33 eliminate general playfield multiplier, added in 2x scoring while ball in ball walker during multiball
;03
;BUG: Skill shot doesn't always work correctly
;04
;BUG: Skill shot after multiball lights on locks, might still light on all locks on the "S" (which is weak on my PF)
;05 Fixed by adding a specific test and clear for $35, the contents of the skill shot. Clears after ball advance only.
;BUG: Now the skill shot is 'hidden' but will still payout.
;06 Fixed by changing $35, but it is still !0
;BUG: Lock a ball, get the skill shot again, puts status BACK to previous, incorrect.
;07 Fixed by changing order of lda $1b, sta $34, so that the 'new' status gets updated as well before checking if
; skill shot on lock should be activated or not
; U6 IS FULL!!!
;BUG: Still restoring the incorrect lamps....grrrr.....
;08 Changed the restore lamps to be the inverted left lane lamps instead of saved lamps
;STILL BUG: Didn't work as planned on ball locks.
;09 Changed to not reset the score flag on locks
;BUG: 10k bonus, still counts 1k extra
;11 Revamped bonus testing to eliminate the extra 1k (game assumes 1k is always lit)
;BUG: bonus works except when you have 19k, then only counts 10k portion
;12 bonus works
;13 add dip 18, reset 5 bank for countdown off=no, on=yes, reset to 5 on multiball
;BUG: doesn't reset properly
;14 added light 5 -need to crunch one byte out of u2 now
; no more on/off of 3 bank sweep - it's either on or off depending on drop bank status
;
;BUG: 5 bank drops the 5 when entering all systems go - shouldn't!
;BUG: No score tilt, tilt lamp never goes out
;15 fixed tilt lamp
; Need to change the way sweep lamp works
; 5 bank still not working
;16
; changed sweep lamp routine to check for attract mode active, and timer active for you got a sweep.
; changed 5 bank reset location, added flag 47 in there which resets it

;17 changed bonus countdown routine to do the 'full' 19k
; changed bonus countdown sound script to not scale out of range
; standup wow pays extra ball instead of special, set by dip 23

;18 added dip 13 to skill shot award to award both 'F' if 13 on
; added clearing of blink register in score routine to catch skill shots that blink/continue to blink when they shouldn't
; added a timer factor to the LAST lanes to reduce the incidences of the standup B targets activating the quick shot
;BUG: blink register clear completely broken, cannot put in the score routine
;19
; spot both F works (need to test SINGLE F spot)
; timer factor for skill shot is likely ok, need to add some visual indication of this for testing

;need to add some more skill shot blockers (Pops, mainly)

;21 add to quick shot cancel routine, the timeout on timer $63 (as set from top rollovers)

;Need to adjust prevent timer for quickshot/add cancel prevent to slings, O, F, drops
;left lane spinner sometimes doesn't count spins
;If "F" is the last letter you need for commence countdown, it should drop the spotted drop first, not reset to 5 then drop the 5

#178 4 years ago

That design is so much better than either of the earlier 2 - the ball STOPS in the cutout at the bottom, game waits to gently lob it into that trough, which due to the switch design, can't have any ball go backwards up it due to the hook (well, maybe the leftmost one, but who cares, there's no more switches there for the game to reactive and get confused.

In fact, I might go so far as to say this is the best designed early multiball trough - if they had this on nine ball I bet the issues would have been a lot less. I wonder if Joe Joos Jr. designed it I think he was the mechanical engineer at Stern for a long time in addition to designing some games.

#179 4 years ago

So the current tally of free bytes in v33.24 is 12/26 (low rom area/high rom area). That's crazy considering what I started with. Just the other day I cut down this routine for the attract mode, which is just copying 8 bytes from a data table to the lamps.

if system2=0
;attract mode lamp data
L145F:; 19 1a 1b 1c 1d 1e 1f 20
db $00,$00,$00,$00,$87,$0e,$c0,$03
db $10,$ac,$c4,$ff,$40,$80,$c2,$00
db $ab,$d5,$23,$ff,$27,$ee,$20,$00
db $44,$7e,$94,$ff,$10,$f0,$12,$00
db $00,$80,$08,$00,$0f,$80,$00,$03
db $00,$00,$00,$00,$87,$0e,$c0,$03
else
;attract mode lamp data
L145F:; 19 1a 1b 1c 1d 1e 1f
db $00,$00,$00,$00,$87,$0e,$c0
db $10,$ac,$c4,$ff,$40,$80,$c2
db $ab,$d5,$23,$ff,$27,$ee,$20
db $44,$7e,$94,$ff,$10,$f0,$12
db $00,$80,$08,$00,$0f,$80,$00
db $00,$00,$00,$00,$87,$0e,$c0
endif ;system2

Notice that in the second set of data, I eliminated the last byte because it's only ever 3 or 0. This equates to the outlane special lamps being on or off.... probably not so important for attract mode. This saves 6 bytes overall. But.... could there still be a way to alternate the specials at the right time? See the first column for the $19 data, it's $00 when the specials are supposed to be on, so is there anywhere else in the code I can turn on the special lamps?

Turns out there is - the outlane special lamps also alternate in game, so there's some code there to this already:
alt_outlane_special: ;for the attract mode
altlampbvalueon $38 ;right outlane special
altlampbvalueon $39 ;left outlane special
return ;return

Ignore that the macro is named 'altlampbvalueON' - it's just alternating the lamp, turning it on if its off, and off if its on. Back in the attract mode code, this is the routine that copies the data down:

lda $08,x ;1st element lamps 0-7
sta $0019 ;save
ldb $09,x ;2nd element lamps 8-f
stb $001A ;save
lda $0A,x ;3rd element lamps 10-17
sta $001B ;save
lda $0B,x ;4th element lamps 18-1f
sta $001C ;save
lda $0C,x ;5th element lamps 20-27
sta $001D ;save
lda $0D,x ;6th element lamps 28-2f
sta $001E ;save
lda $0E,x ;7th element lamps 30-37
ldb $001F ;get current lamps 30-37
andb #$0D ;preserve game over, tilt, and hstd lamps
aba ;combine with the 7th element lamps
sta $001F ;save
lda $0F,x ;8th element lamps 38-3b
ldb $0020 ;get current lamps 38-3b
andb #$FC ;clear outlane specials
aba ;combine with the 8th element lamps
sta $0020 ;save

Simple copy down, right? Look at the code for the 8th element - that's the one we eliminated the data from. (Starting at lda $f,x). That's 9 bytes right there concerning that element. Since we already know that $19's data is $00 when the specials are on, and that the specials by default are off when the attract mode starts (because earlier in the code, all of the 6810 ram $00-$7f is cleared at bootup) - here is the code that replaced it for the same functionality:

lda $07,x ;1st element lamps 0-7
sta $0019 ;save
bne no_alt_spec
swi
gosub alt_outlane_special
no_alt_spec:
ldb $08,x ;2nd element lamps 8-f

So when the incoming data for $19 is non-zero, swap the outlane specials. Yes, the very first step of the attract mode SHOULD have the specials lit, and it doesn't.... but it functions correctly after that. The thing that is nice about the PIGS gosub function is that for the subroutine referenced, it automatically sets the multiprocessing flag (normally, you'd have to do a SWI, RCFLAGSET, command, ILA sequence, for 2 additional bytes). Gosub is the only command that acts this way, and it's very convenient in this case.

There is an "edge case" possibility in the way the attract mode works, in that at the end of the game, if you drain your last ball WITH one of the outlane specials lit, this will affect the way the specials display in the attract mode, since one will be alternating at the wrong time. Small price to pay for the byte savings, though. (Earlier games have WAY messed up attract modes at game over, Meteor's is positively sickening, but most people have never noticed this - wrong lamps on/off depending on what you finished the game with. They never specifically CLEAR the lamp data before starting the attract mode. This was fixed in one of my previous projects concerning meteor).

And, of course, sharp eyed coders will have noticed that the $19 element is now offset *7* instead of *8* - because we've cut down the # of elements that get copied down from 8, to 7.

So, the total bytes saved from this small change are the 6 bytes out of the table, no bytes for the special alternate routine since it's already existing in another routine, and 3 bytes in the copy down routine for a total of 9 overall bytes saved.... not much, but every byte counts here (recall that there were *5* bytes free in the entire unmodified codebase.... and I just doubled it with this small change).

If I just left out the outlane specials alternating code altogether, that's another potential 6 bytes of savings for very little behavior change. If I need some bytes back later on I might very well come back to this and do it. But, since the code is feature complete at this point, it's only going to be tweaks and bug fixes from now on.

I'll be posting various other ways I saved space in the code, most of which have already been rolled into Nine Ball, and will be used as well in the Bobby Orr Power Pigs original coding.

#180 4 years ago

The current revision v33.25 is up. Changed the quickshot standup to not light on the top B's (although it is still possible to do so.... unavoidable because all the B's in the game are the same switch). Also tweaked the cooling off period for not lighting the quick shot (switches at the top of the playfield start a timer to prevent the B switches from lighting the quickshot)
Barring gross errors or any other ideas for features, I'm calling this done. The only things I'd probably want to add is a way to indicate the quickshot availability on the right spinner (via an animated style arrow with blinking lamps) but there's no room in the rom for this, and possibly adding the left spinner lane to the quickshot, but I don't think that's necessary. Maybe the animated arrow will appear in the 512 image/weebly only board version, if I decide to go ahead with that.

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

Here's more examples of taking advantage of the way the 6800 sets flags on certain operations to save some space:

Original code:

addb #$10
cmpb #$80
bne L5349

New code:
addb #$10
bpl L5349

So, saved 2 bytes here. There's lot of places in the code where things like this save a byte here, a byte there.

#182 4 years ago

So of course, because I have about 28 bytes free, I'm meddling again.

Added attract mode speech, dip 17, repurposed, on=attract speech off=no attract speech (speech is always enabled in game regardless of this dip position)
Every approximately 6-7 minutes, the game will attempt to have people put quarters into it by saying "ALL SYSTEMS GO, COMMENCE COUNTDOWN". (I wish I'd had space to slice and dice all the vocals to ones that the game doesn't necessarily use, but there isn't space).

I'm also toying with the idea of returning the playfield multiplier to a possible 3x, and playing with the timing of how long the PF multiplier lasts - currently, in multiball, if you get a ball up into the walker, it starts 2x scoring for a short period which equates to about the time it takes the ball to walk out of the walker area and get back into play near the pop bumpers.

Once, during playtesting, I managed to get a second ball up there as well (this is not easy!) while the 2x was running, so I think it would be neat to re-enable the 3x scoring (the code for this is commented out) - you're not going to have playfield multipliers active for long in any case (although of course getting it lit to 3x would re-enable the full time.... and I guess if you KEPT shooting the ball up there you COULD do this.....)

Even with all the changes and about 200 games under my belt with the 3325 level of code, I still only get multiball once every 10 games or so, and the top score is a couple over 3 million, with most still in the 400-900k range. The BLAST standup quickshot isn't easy to hit but satisfying when you do, and I REALLY like the ability to set the dips to collect an extra ball on it and still get a special on the outlanes (thanks to whoever made that suggestion). Gives you an incentive to shoot that target.

I'll have to see if I can swing this playfield multiplier thing, as the attract mode speech left me with only 2 bytes free (to get the timing correct.... the first run through was speech every 42 minutes or so... too long. The 2nd attempt was 12 minute intervals, still a little slow, and the third is OK at 6 minutes I think. It's one byte extra for 6 minutes vs. 12, and I did find a redundant 2 bytes in the multiball routine - so 4 bytes free for the 2x-3x thing.... ugh....)

Latest revision 3326 is not up on the allentown pinball site yet, until I shoehorn the extra scoring in.

#185 4 years ago

Yes works on mpu 200. Use 716 or 732 depending on how your board is jumpered.

#188 4 years ago

There a lot of versions of the Weebly board when it was being developed - hopefully barakandl will see this and jump in with what the sockets and jumpers were like then.

#189 4 years ago

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

version 3327 is posted. The last thing I might want to monkey with is the 2x/3x timer - it's pretty short. The intent is that you would have a ball on the left flipper, one on the right, nail the walker shot with the right, then when 2x starts, nail the right spinner for more score.

I'm already at the limit for the timer on this (it's an 8 bit timer....) so I'll have to come up with another timer/memory location to count this down, or maybe reset it as the ball hits each of the kickbigs in the maze.

Dip 17 now controls attract mode speech on/off.

#191 4 years ago

Playfield multiplier during multiball only - walker starts 2x. If you put another in there before the 2x expires, you get a period of 3x, then more 2x. It's a pretty short period which is why I'm going to play with the timing on it.

The walker unloads during multiball unlike stock - which is actually the main reason I tackled this project in the first place. Invariably, I'd get multiball on the game and then the balls would end up back in the walker, ending the multiball. Lots of work for little results.

It would be nice to get 12k/spin on the left spinner - that's some crazy points.

I also found yesterday that the Apollo 1/2 and blast off lights for 10k/20k/30k will score ALL of the lit lights instead of the highest one. I'm not sure what the original intention was, but the inclination would be to change it to that, because once you have the 40k lit, you were actually getting more for the 5-4-3-2-1 sequence (70k). Although, the 40k BLASTOFF completion lights the specials, if you have those set to 100k, that's more right there.

#193 4 years ago

If I reset the timer at each of the kickbigs it should be ok. I was just evaluating how many bytes I have free and it's tight. There is a free timer, somehow, so I might be able to tie into that.

The problem is that each thread doesn't have a consistent set of memory like a williams game does - it's a shared pool, so I'd need some way to reset the state or find a free byte of ram somewhere.... I'm also going to explore if I can slow down the timers, they're already pretty fast, but that would mean changing all the existing things in the game that are on timers to be 1/2 or the attract mode won't work correctly.

I've been able to capitalize on the 2x playfield in my 220 games or so of testing only once.

#196 4 years ago

So I got lucky in that the timer I need to lengthen is at the end of a series of 8, so I just changed that one timer to only decrement when the match also happens to be 00. (So slower by 90% than normal). Just tweaking the amount of time that the playfield multiplier stays active at this point; I might have the initial multiball start give the 2x scoring as the last ball exits the maze..... if I can find space. Down to almost nothing again.

This is some of what I've been having to do to shave bytes:

Original code:
ifcleargoto L12C6 ;set to 3 balls per game, branch to score 1000
score $21 ;score 100
return ;return
L12C6:
score $31 ;score 1000
return ;return

New code:
ifsetgoto dip7setto5
score $29 ;score 900 for 3 balls/game...
dip7setto5:
score $21 ;score 100 more for 3, and only 100 for 5
return ;this shaves a byte

The Original code is 9 bytes.... the new code is 8 bytes. 1 byte shavings! Now, go through ALL the code in the game to do the same types of things. 8k of code is challenging.

3328 is posted at the usual place, this I think is SLIGHTLY too long on the playfield multiplier, and the clear score queue quickly function didn't work on the drain (so you get all your earned points during the multiplier).

I wish Stern would have made the ball walker solenoid one of the continuous ones, then there wouldn't be contention with other solenoids. IIRC both the kickbigs in the maze are continuous solenoids used as momentaries - which of course is more coding, but it works well. I don't really want to start rewiring solenoids and switches though, because then the software is no longer plug and play.

#197 4 years ago

3329 is up, fixed the issue with score queues in the outhole (they will count down really fast, as well when you go into the walker during multiball) - that way you don't get ripped off from multiplied queue scores you put there.

Tweaked the multiplier time I think it's better now.

I re-read the entire thread last night and a lot of the suggestions made it in, a couple of the timed things, and I would like to add in the speech once you complete the countdown "go for mission" or maybe "GO - GO -GO" - let's see how many more bytes I can squeeze out of this.

Sort of related, an old version of Flight 2000 is the one I tested an 'instant boot' type of thing with, I was thinking that a way to do this and still preserve the self-test if desired would be to do fast boot by default, but if you hold down the S33 button on the MPU board it would do the normal, full bootup. I know I'll have to get used to the fast boot but I'm sure I can do that.

Someone a long time ago asked me to put in a bootup similar to Bally into Williams games, but there was no room there to do so.

#199 4 years ago

You shouldn't need to do anything other than the normal go through each adjustment and audit and zero it that you should do when moving mpu200 from any game to any other.
So I guess that's a yes on clearing....

EDIT: If you meant flight 2000 stock code to the new version, no addresses were changed in the nvram, so no clearing needed. I went out of my way with the crunchdown techniques to preserve all the original functionality of the audits/adjustments.... if I could have changed the coin handling, for instance, that's a lot of bytes I could have used easily. Could have just ripped that out and made it 1/1, 2/1, 3/1, and 4/1 fixed ratios and only needed 2 dips to do that.

#200 4 years ago

Latest tweaks are up, some vocal stingers added, tweaked the 3x/2x timing, somehow saved some more space.

v33.32

I was hoping that the final last version will be 33.33 for symmetry so anything else I do better fit and work bug free in the next subrevision

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

#203 4 years ago
Quoted from 85Txaggie:

Hi, where did you end up on the dip switch to cancel speech for us Gamatron owners?

It's not just a dip switch other things have to be changed as well because of the differing playfield layout. (Skill shot, possibly quickshot) I have not looked too far into that stuff yet.

#204 4 years ago

Can a gammatron owner go into switch test and test all the 'letter' switches and let me know what switch # they are? I think they did some rewiring when they made the PF vs. Flight's and I want to make sure I change the skill shot and quick shot stuff correctly. Also, since gammatron has that extra entrance to the maze from the pop I'll have to make sure that scores all the time, not just after 2 locks.

For instance, flight's switches are:
B 24
L 23
A 22
S 21
T 20
O 19
F (right) 18
F(left) 17

So gammatron:
G ?
A ?
M ?
A ?
T ?
R ?
O ?
N ?
Once I have that information I can add the gammatron changes and some lucky gamatron owner will get to alpha/beta test it!

#207 4 years ago

I moved the switch and solenoids numbers to the next 2 digits over (easiest to code that way it's just a couple rearrangements and one byte change).

That was a dumb thing they did to reuse the same software like that unmodified - IIRC you shift the wires over on the 6 digit displays to make gamatron work on the 6 digit displays, loosing the 'real' 1's digit.

Sent Andrew the test version so I can adjust the skill shot stuff.

#210 4 years ago

What version is this? Shows in match at boot up.

The ball Walker cycles three times at boot up to clear any balls in the lock.

There shouldn't be anything that scores that high but it depends on what version you burned.

#213 4 years ago
Quoted from dothedoo:

I like this idea.

I thought about doing this back when I was putting the skill shot in, but I think it's "too much skill shot" if that makes sense. I've definitely gone "too far" in the past with game mods (Night Rider is CLOSE to being too far, but it's still the essence of the game.... Trident was definitely too far/too many changes. I'm aiming for the spirit of the original game with small tweaks.)

Quoted from Spudgunman:

Latest, 33 I think (just burned last night will be next to game this weekend)
I can video the 6mil happens every game I make the skill shot - I am not aware of any switch malfunctions - Original code played perfect. I can snap a photo of my DIPs switches turned on 17-19
As for ball walk - I can video as well - might need more of a check for lost balls, not sure what to say but the game was lost in code due to lost ball on walker.

You definitely shouldn't be getting 6 millions for a skill shot - which set of roms are you using, the 716, the 732, or the 512 on a weebly board?

The skill shot is supposed to spot a letter if you need one, spot a 5-4-3-2-1 drop if not, and score 25k if neither makes sense. (i.e. you have all the drops already, and blast off is already spelled)

At bootup, all the displays should show all zeroes and the ball walker should step 3 times - then the maze switches will clear the balls out on their own. You're supposed to wait for the balls to hit the drain - stock code waits for balls to hit the trough switches, but it only runs 7 times - if the balls aren't there after 7 cycles, it lets you start a game there as well. There is rudimentary ball search code built into the stock game - if a ball hits the walker entry or the maze switches, they will clear.

What happens if you miss the skill shot does it play normally?

Do other things work properly? i.e. bonus ladder 19k, quickshot off B/O to right spinner and blast standup, etc.?

I plan on popping an mpu200 in there later today to see what happens with that because all my development takes place in the 512 socket on the weebly board - there "shouldn't" be any difference between the boards, but I will double check it to make sure. (I'm not using the extra capabilities of the weebly board in this instance)

#214 4 years ago
Quoted from slochar:

I plan on popping an mpu200 in there later today to see what happens with that because all my development takes place in the 512 socket on the weebly board - there "shouldn't" be any difference between the boards, but I will double check it to make sure. (I'm not using the extra capabilities of the weebly board in this instance)

OK, slapped an mpu200 in there (not sure if it was my original f2k board or not) and burned the 2732's from the zip file right off the website - it's version 3333 up there (3335 is in alpha/beta test on my weebly board, no gameplay changes, just changes for the gamatron folks, and multiple switch closure test - also testing the insta-bootup which I'm still not sure if I like it or not (you press the s33 button to get the 'normal' bootup in the first couple seconds, if you want the diagnostics, but otherwise, it's power up-2 seconds-booted. That version of the software doesn't fit currently in the stock footprint, but I might be able to make it)

There's currently 6 bytes in the low rom area, and zero in the upper rom area without the quickboot in there.

I would double check that the eproms burned correctly - the 716 images I just double checked against the 2732's in the file and they are fine as well.

The software both stock and mine don't make any assumptions about nvram data being 'correct' - they specifically reinitialize anything that needs to be on bootup and game start. The clock speed is definitely different between my mpu200 and the weebly, the weebly is slightly quicker, but it worked on both.

I've sent off the test gamatron 35 build to barakandl as well for testing. I'm crossing my fingers that it's not too 'broken' - gamatron manages to rearrange a lot of the switches that I was using for the skill shot as well as the quickshot functions.

#216 4 years ago
Quoted from Spudgunman:

Took glass off. Balls in walker cleared no issues this morning (I blame a switch issue for this problem right now) the walker clear seems way too fast on my game it goes, coil hit after coil hit the original code pauses more and could be the hang up here there is no time for the balls to gravity down fast enough to next walker lock.
I am mpu200x16k
Didn’t hit skill shot. Hit spinner then pop got 6mil.
Rebooted.
Didn’t hit skill, hit lower pop got 6mil
Rebooted.
Didn’t hit skill, hit a bunch of other shots not touching the lower pop bumper plays normal score
Ball 2
Skill shot hit bunch of other switches normal play but kicked out two balls for ball three in lane
Ball 3 double plunge otherwise normal
New game as long as I don’t touch pop game is normal
If I touch the lower pop in the first few seconds 6mil.

That is very bizarre, because both pops run the same exact code for the scoring sequences - the top pop should do the craziness as well. (The actual firing of the pops and slings is in the background routines, not in the scoring routines).

Do you have the ball trough that kicks the balls backwards as it launches (looks like this pic: https://ipdb.org/showpic.pl?id=887&picno=49151)? That is the type I have in mine as well, and the game will launch an extra ball if there is more than one ball in the trough AND it kicks it back far enough to slowly go over the leftmost switch again. It's probably why stern changed the design mid run to a different mechanism. While this can likely be addressed in software, this type of switch slowing response takes a lot of romspace (relatively) - I'm going to be investigating to see if something physical can be done to address the kickback. I get it about once every 50-60 balls or so, regardless of the version of the software in there.

The ball walker shouldn't be faster than stock - I'll double check it later on. Make sure there isn't a divot on the entrance to the ball walker, my old PF had that as well and it didn't matter how long the pulse was, it hung up there. I added a small nail to the PF on that one to hold the ball slightly off the divot. It's an artifact of well-used f2k playfields to get that divot, I'm sure the new CPR one I have in there will develop it as well. (If there was a way to slow the ball down as it rockets up there, that would help.... or maybe a cliffy can go in there but that maze area is so tight I'm not sure. Gamatron actually does that mech much better with the discrete kickout holes).

My ball walker fingers that stick up through the playfield were hammered as well, I ended up using the same mech off a scrap freefall playfield I had.

Can you double check the 2716's against the downloaded file again? Do you normally double or triple burn your eproms? I've found with 2716's that sometimes they need a little extra <something> to get them to reliably burn (ditto with 2732's on my minipros, I always at least double burn them).

#219 4 years ago

Played several games on 3335, which is now posted at the normal link.

Only difference is that in the switch test, it will show all the closed switches, flash the 0, then show them again (not just the lowest numbered switch as normal).

This should help find switch wiring errors or if you have multiple switches out.

One thing that needs to be addressed is that while the ball walker is walking during multiball, no other switches are reacting - I'll have to have a deep think on how to fix that, because solenoid scripts normally can't be interrupted. Since the ball walker is an exceptionally long timer period, I think it will have to be some kind of re-entrant timed routine (luckily, I have at least one timer left.... I'm just short on romspace! 6 bytes right now in low rom and 0 in high rom....)

I didn't think too much of it previously in playtesting (over 600 games now....) because I was holding the balls on the flippers and aiming for the walker to get the 2x/3x. I happened to hit it spontaneously a couple times and it was pop bumper.... thud. (you can't make the pops or slings activate while the walker is walking since the walker is a momentary one - they should have made it a continuous one instead. This is a hardware limitation of the solenoid driver circuitry, not a software limitation.)

The correct thing to do is create a solenoid queuing system, but rom and ramspace is scarce for that kind of thing, or to rewire the ball walker, but hardware mods past the knocker I'm declaring out of the scope of this build.

#220 4 years ago

Updated instruction card for 3 ball game. I'll be working on the manual as well to update the various things like schematics, adjustments, etc. I had a full color cover for this as well way back but the file didn't load correctly so I might have to recreate this (it took a lot of work to get the picture at the 'correct' aspect ratio... this was ten years ago or so though so hopefully easier to duplicate today.)

I'm really thinking about the idea of changing the ball walker to a dedicated solenoid setup activated by a small helper board so it can fire while other solenoids are going. It would still use the same solenoid driver, just connected to a pop bumper driver board (from a gottlieb system 80) modified to have a much longer 'on' pulse. This would let the pulse still happen just with a much shorter period so other solenoids can fire.

This would have to be dip switch settable for people that don't have the extra board.

FLIGHT2000-New-INSTRUCTIONS-FLAT.pngFLIGHT2000-New-INSTRUCTIONS-FLAT.png
#222 4 years ago

Go into audits adjustment 4 and push S33 or the clear button on the coin door to reset it to 0. Then press credit button to advance it or you'll run into an artifact of crunching the code down for size - any hstd less than 100k will show leading zeroes.

#224 4 years ago

I'll have to do some research on how long I need the PBDB to fire the solenoid. Probably best to put a pot on it instead of just discrete resistors while I'm tuning it; worse than a pop or sling not firing would be a ball that gets its status lost because of the ball walker pulse being too short, although I think you have to adjust the cap as well as the resistor for the timing pulses. I'd really like to put some kind of switches there instead of doing it in software, but that would be a custom job as well.

I'll have to see where I can wrangle out a free dip switch too, to even adjust the software end of the timing.

#226 3 years ago

So after watching dri 's stream last night, I'm inclined towards the 2x/3x just not being worth it - if I make the scoring longer, possibly, but it's almost like the score multiplier on flash gordon - lots of work to get it and you don't really have anything planned to do with it once you do, unless you can nail the 15x collect.

I'll be experimenting with hardware for the ball walker pulse for a while now - roughed the code in using dip 14 (formerly background sound on/off).

I spotted a bug that I'll be reviewing from the stream, and I spotted a bug in the code that I thought was eliminating the background sound but was actually some other function in the sound code. I need 4 bytes back to fix that one.... lowrom is 100% full.

I do also want to add a visual cue for the right spinner quickshot - won't have enough space to make an animation, but I can certainly make the existing lamps blink during that time.

#228 3 years ago
Quoted from Spudgunman:

Can the mpu200 easily pull from 32k Roms?

It can, but that's going to go outside the scope of what I want to do with the mod. In my experience, 10% or less of people interested in a rom mod actually try it out. Add some kind of required hardware change to that mix and it's going to drop to 1%.

use a 27256:
http://www.pinball4you.ch/okaegi/pro_softnine.html

and here:
http://web.archive.org/web/20170412040716/http://warpzonearcade.com/?p=402

Lot of messy wiring.

This one is easier:
https://sites.google.com/site/allentownpinball/romblaster

Daughter board to plug into the 6800 socket.

I could just use the extra ram/rom on the weebly board directly (it's kind of why its there) - but that's raising the bar even higher for adoption.

Also, I find that I'm enjoying the challenge of rewriting the original code for space efficiency.

#233 3 years ago
Quoted from kpninja12:

I see you might be giving up on the 2x/3x playfield. Any chance for a ball-save feature (timed countdown after ball start once it drops down top lanes) (timed countdown after multiball start)?

No.... doesn't really need it. I might not drop the 2x/3x but I need to rethink how it works. It's really hard to take advantage of currently (especially the 3x) - maybe I'll change it to get one ball up there, then the second and it recounts down the blast off letters (or whatever you have lit at the time). That kind of smacks of a "mission" though, which I also don't care for.

Any chance for a dip option to drain all balls in the walker before the start of each new game? My thought is that it would drain all balls in the walker after ball 3 of the last player.

There's no need to do that unless you have the dip set to carry over locks. The game handles locks properly and the only difference would be you get to shoot the ball from the shooter lane instead of it launching from the maze. It could be done but then there has to be code to check the outhole before allowing a game to start, which can be confusing on location games where a ball is stuck somewhere.

I happen to be a software dev and have a small technical background in embedded systems as well as assembly language. I would love to know more on how to get started on such a path as writing my own ROMs - any direction you could send would be greatly appreciated!
* What software do you use to write, compile, and debug your code?
* What assembly language is used? (I have experience with MIPS and ARM)
I see the ROMs are available to download. Is your assembly source code available for download as well?

pinmame debug, a relatively old version. AS02 to assemble. Stern pigs is a mix of 6800 assembly and an interpreted language they called PIGS.... look at my other posts for the Galaxy disassembly thread to see it up close and personal. There's a beginning of a guide at:
https://sites.google.com/site/allentownpinball/pigsprogramming but not really complete.

The original flight 2000 commented code I built off of is on that site as well but not the changes - development tree is extremely messy right now because I've taken to adding/removing code now by 'sections' as I add/test, eventually I'll have it there once I'm "done" with the changes.

Of course, anything I decline to add you can add yourself once the code is posted

#236 3 years ago

Working on cutting more space into the roms - was able to combine some like routines, and found a couple of never-used pigs routines that were cut as well. I have a couple of ideas on cutting even more into the code to save some space - it will be hellish for future generations who might decide to reverse engineer it so hopefully the source code will come with it (the 512 images when finalized will start to include a 7zipped copy of the source code in the normally empty space).

Now there's 11 bytes in the low rom area and 84 in the upper to add some kind of quickshot indication for the right spinner - the first test of this was a complete failure as it's pretty dangerous to blink something without knowing its original status first..... random results ensue if you don't save it first.

Testing just the cut down before adding anything back. No other additions were cut yet but I still need to think long about the 2x/3x thing. Maybe it makes more sense to award the 3x and have it decay - then if you want it to stay at 3x, keep shooting it back up.

Maybe it makes more sense to give the 2x/3x scoring JUST for the spinners? They really are the thing I'd shoot for anyway (unless 5-4-3-2-1 is right at the 1). Doing so would streamline the code a lot because then there's no 2x/3x generic code taking up space - and handling queued scoring with the multiplier is sloppy at best.

#238 3 years ago
Quoted from zacaj:

I'd always pictured trying to go for the 100k wow during the 3x...

I have it set to pay an extra ball for the wow. If you had a full left spinner rip for 12k/spin you could easily get 300k.

#239 3 years ago

Also could be possible to change the 2x/3x lighting to completing BLAST (for 2x) and OFF (for 3x) during multiball, and NOT timing it out. Or spelling BLASTOFF for 2x, again for 3x although that just becomes really difficult after a while. The multiplier could either be only multiball (if it were easier to get) or harder (if it stays into the single ball portion).

Or maybe I just need to tweak the 2x/3x timers again - I've had it "too long" and "too short" - it still seems too short at this point. The issue with tying it to the walker is that when the walker is walking, there's really nothing else the machine can react to properly. Gotta get that pop bumper driver board in there, or maybe repurpose the continuous solenoid I'm using for the knocker to the walker instead (continuous as momentary are separate timing circuits).... that's probably better than adding a piece of hardware.

#241 3 years ago
Quoted from HPR:

In my opinion no 2x 3x scoring is necessary, for big points must reach higher spinner levels, that keep the spirit of this game.
Personally I love to get all left spinner points and more logic 54321 countdown. Skill shots is for more modern pins not early 80's style

So it sounds like you should stick with the original romset?

#244 3 years ago
Quoted from DRDAVE:

For the 2x / 3x playfield mode:
What about doing it like Fathom does it? It works well there as when 2 balls are in active play and not sitting on a switch in the walker or trough switch, the game will know how many balls are active on the field. So 2 balls active = 2X playfield scoring, 3 balls active = 3x playfield scoring.
Thoughts?

No, too much like Black Knight, Fathom, etc. - I still like the idea of the walker triggering it I just need to tweak the timing on it. Have to experiment with the pop bumper driver board - I realized it can be mounted in the head (for easy access to +5v). The walker moving really kills the response on the machine, so something has to happen there. I'm concerned that in the future someone that gets the rom without the instructions will be like WTF is this, wrong solenoids firing, etc. I think I'm going to work on adding something in the audits/adjustments that you have to set to use whatever the walker ends up being, that way someone probably won't set it by mistake (like adding adjustment 18/19, both have to be set to 66 for the alternate walker code to operate).

From the stream as well I'm going to work on the 2 5 bank blinking lights, I've had it happen on my machine as well where 2 blink lamps light in error, so there needs to be a test for that. It's probably something where the interrupt happens to update the blinking lamp while the game is expecting it in a different state so have to block the interrupt first before updating it - usually stern games do this, but maybe this routine doesn't.

I have never seen the error occur on the stock roms so clearly it's from something I've added. I wish the code I decided to crunch first in this latest go-round had worked, because it got me over 130 bytes back.... but it was a complete failure (coining up or starting a game just crashed the entire game..... I single stepped the code in pinmame to try and determine even where it was crashing, but was unsuccessful. I may revisit this if I run out of space again though.)

I'm also going to work on testing where the balls are before you start the game - especially with the new delay walker code at bootup, you can start a game with balls sitting in the wrong places. I still say that kind of thing is on the player, and it's only going to happen once per boot anyway.

I'm going to experiment with some transplanted sound effects also see if I can get any working.... never been able to do that previously though, but I know more about the sound engine(s) now - they're slightly different in every game.

#247 3 years ago
Quoted from DRDAVE:

For transplanted sound effects, the best ones that stand out are from Quicksilver and Stargazer and possibly Cheetah.
As for gameplay, the youtube video of the new code running looked pretty good except for maybe the 2 balls gathering together in the walker/being shot out together once in a while. Timing issues?

No, that's his machine - notice it only happened when he was shaking it. So something was activating the walker switch that shouldn't have - he was also getting a 25k score off the center standup at the start of each ball.

There's been so much discussion of the ball walker code among the beta testers - it's the stock code! The timing is not different, it walks at the same speed. I tried to make it shorter but it never worked out.

What sounds, specifically, would be a good lift from those games into flight? The sound I always try and poach is the 25k sound from Big Game - I love that mmmmvvoooott sound.

Quoted from zacaj:

It sounds like this is a big deal breaker regardless of the 2x/3x. If you can't walk the balls out during MB, that takes away one of the big gains of the rom...

The walking works, it's just that during it hitting pops or slings - thud. No available solenoid driver to handle this. I wish they'd made the walker a continuous one instead of a momentary. I'll be playing around with the swap of the knocker (which is on a continuous one right now) to a momentary, and using that continuous one (for which you can assign a separate timer) to the walker.

#249 3 years ago
Quoted from zacaj:

Exactly. It's causing issues playing while it's walking

You should quote the section you're referring to - issues on that game on the stream when the switch activates when it shouldn't due to a hardware issue, or the issues where the pops/slings don't work while it's walking, which all stern games do when a momentary solenoid fires for a long time. It's one of the deficiencies in 9 Ball as well, if the top 3 banks are resetting, it's very possible to hit the pop bumper and get..... nothing. (you get the score, but no pop). Trident suffers from this as well, because the standups are treated like a drop bank when they are complete, there's an delay when they reset and they use the solenoid timer IIRC so the pop doesn't fire. (Also sometimes with the memory drops)

It's really pronounced on flight 2000 because the walker coil has to pulse for a very long period or the balls don't have enough time to walk down.

I plan on swapping the knocker coil circuit for the walker circuit; however, this is going to "break" the software on people's machines who don't realize this needs to happen. (I.e. they got the rom with no documentation, or they got a machine that had it in and in the course of checking out the machine they switch the wires back without realizing)

Too bad you can't pulse the walker to shoot the ball backwards, this happens sometimes 'naturally' but with no where near enough strength to eject it 'backwards' - that would be fun.

#252 3 years ago
Quoted from zacaj:

I'm talking about the part where the pops don't fire. Seems like a noticeable issue with how much pulsing is needed during the walk.

Yes, that is what I'm working on by changing the continuous solenoid to act as a momentary, because it can be active while other solenoids are active. That's going into the machine to test now.

Quoted from DRDAVE:

YES! That is a great sound to use from Big Game.
Also the Max out the bonus celebratory sound just before it counts up the bonus at end of ball on QS.
And the sound of the bonus count down has great sounds. Pops sounds on that game too are uniquely wonderful sound.
And of course the left saucer kickout sound on QS.
On Star Gazer, the sounds of hitting the standups particularity when you have gotten a few racks of Zodiacs down.

But where would you use these sounds? Flight 2000 overuses the "kapow" sound for sure (due to space no doubt in the original code).

Maybe during multiball the sounds change? I'll have to see how much space the sounds take up - with the swap of the walker solenoid there's going to be significantly less space, again. I don't think there's anything wrong with most of the f2k sounds as they are. I was intending the big game sound for the sweep award.

EDIT:

Just checked, back to 2 bytes free in upper rom, and about 14 in lower rom - so no space. The sounds take up a relatively large amount of space.

That's not to say that a special edition weebly board couldn't be used for its extra capabilities for a special edition of the modified software.

#253 3 years ago

I am in the testing phase of swapping the walker from a momentary to a continuous with timer solenoid - making the knocker a proper momentary, and more importantly, enabling the walker to move independently from the pops and slings.

So far, so good, multiball started, I shoot one ball up into the walker, other 2 balls in play while walking, no issues with solenoids firing properly.

I'll have to double check that the connectors aren't going to be an issue, it's one wire removed from j2 and put into j5, and the corresponding wire in j5 moved back to j2 (if you add a knocker, otherwise, you can just leave it taped off as its the coin lockout wire.) I think this is better than fooling around with a pop bumper driver board's timing resistor and cap - the timing is exactly the same as the stock timing for the walker to walk.

Because the timing of the walker solenoid no longer impacts switch response, I might remove the 'wait' from the left spinner shot, during multiball only, so you can get some quicker action there. That would also help if you happen to shoot 2 balls into the walker at the same time; with the previous wait for the spinner version, I've done that once or twice and while it did recover nicely, it's possible that it wouldn't since it seems the correct operation of the switch is to not be closed while sitting in the top slot on the walker - that's probably why they call for a switch cap on that switch. I don't recall if I put once on there when I did my PF swap like 15 years ago or whenever CPR released the PF.

I will post the updated file at the usual location once I playtest it a bit more - there's going to be a *HUGE* warning attached to the file because it is possible depending on the setting of DIP14 where the solenoid signals go to, and for how long. If you don't install the knocker at all, nothing would happen except that it wouldn't walk.

Still going to work on a startup delay on the trough switches as well, similar to the original startup but without the very long series of code.

As for romspace savings, high rom is now full again, and low rom has about 16 bytes free. Oh, and if I didn't mention it previously today, I have the right spinner quickshot will blink all of the already lit spinner lamps when active to cue you to shoot it.

Going to play with the 2x/3x timing again tomorrow.

#256 3 years ago

Can someone check the lock lanes switch wireform and confirm that it's a 'cut' one?

I.e. like this \ viewed from the side and not /\ like most switch wire forms are.

Does the ball sit in front of the \ like this: o\ or does it sit ON the switch like this: o_ (holding it down)

I think the ball on mine sits too far forward, or that I possibly need to add/replace the needed switch cap on there as with a fast ball lock, the game says lock one, but the walker doesn't move - trying to determine if this is a software fault in the newly modified code, or if I've got a recurring physical issue.

#257 3 years ago
Quoted from Brazy:

This is awesome, I haven't read through the entire thread yet but I've got my 2 cents to throw in real quick....F2K will never leave my lineup first of all and the one thing that I think should change would be when you rip the left spinner the points stop soon as the ball hits the locking mechanism and my spinners rip forever so I don't like part of the game.

Stern actually has a specific flag in their code to *PREVENT* spinner scoring when a ball is walking and launching. Boo!! This is already fixed.

Quoted from Brazy:

The only other thing I don't like(on mine at least) is sometimes when the ball travels across the downed drop targets it sometimes gets stuck on them, so a target reset would be cool, like a ball search but im not sure that could happen.

This isn't a software issue. If you mean the 3 bank drops, there's a bit of a 'lip' on the metal ball guide that the ball can get stuck on - you need to mount something in there to give it a little slope so this doesn't happen. (Moving the guide over isn't ideal because it will hit the first drop too hard and prevent any hope of sweeping them, not that that happens too often anyway.)

I need to add something to my game as well because I have a pretty wide gap there. You wouldn't want the ball to be sitting there and have the drop bank reset as it would shoot the ball directly up into the glass. On the 5 bank when this happens because of the lip on the plastic above the drops I'm always thinking it's going to break the plastic, but I also hold my plastics on with rubber nuts instead of the metal ones so that the plastic just pops off instead of cracking.

#259 3 years ago

Yeah, I definitely broke something in the software. One of the things I forgot about was I put a large "CAUTION" in there concerning a jump table that if it bled over a page boundry, to correct it. Completely forgot about it and it was causing more crunching efforts to go astray but when I woke up this morning I realized I completely forgot about that section.... consequently I was able to use a different crunch technique this morning and I now have about 80 bytes free again to play with adding stuff.

The walker stopped walking when it should once I changed the solenoid from a momentary to a continuous.... going to check this out in a couple minutes. Assuming it works in the machine I'll tackle other things. It is a shame because the first test with the walker during multiball was a big success - no sling/pop THUD.

For the extra bytes I hope I can find a sound effect or 2 to transplant.

#262 3 years ago

Yes, there was some thought to that. It might end up being a little tricky as I don't know anything about how the speech roms work 100% yet.

I did slice and dice some of the existing speech to add new phrases. I asked in a previous message what other games might be good to grab speech off of - orbitor 1's "tilt" is an obvious one.

I wouldn't mind swiping the "coin detected in pocket" from berzerk as well. The current speech rom is full right now. Apparently, there is something quirky about the speech cpu in that it requires a certain type of eprom to work.

Right now I'm at an impasse going to versions higher than v35 (the current version posted at allentown pinball) - I've had to rollback the changes from 35-43 as I broke something really badly in the ball walker code when I changed the code from momentary to continuous, and I can't fathom what changed; I do know that a lot of other stuff started to break as well. I'm wondering if I'm dipping too low into the stack sometimes - lots of the crunching techniques depend upon reusing other subroutines.

I'm going to fall back on the expanded memory of barakandl 's weebly board to get the ball walking solenoid swap sorted before I try to do the crunching again.

#263 3 years ago

ok, I'm narrowing this down...

The stack isn't dipping too low, I wrote some code to display at all times when the stack falls into $240, $230, $220, and $210. I have yet to see it at $230 it dips into (below) $240 as soon as you start a game - so the stack bottom is between $230 and $240. That's really good, because it means that I'm not clobbering the virtual ball registers, and that there might be some room to use the lower part of the stack if needed (stock, the game uses $200-$20f already).

I'm adding back in crunch code that I added between 36-43, and I think I've found where I've gone wrong - on the first try. (well, maybe 2 things). One of the most commonly used pigs functions is "checklampvalue" - 131 times in the code. Uses 2 bytes, one for the function and one for the parameter. So I had written some code to do this on compilation:

If function is checklampvalue, $parameter AND parameter is >7f, create byte code: $21 $parameter. This is the original way the function always worked.

If function is checklampvalue, $parameter AND parameter is <$80, create byte code: $parameter+$80. This is a new way to do this, and saves one byte per function $21 where the parameter is <$80.

Then, in the pigs engine, when you load the function from a pigs script, if the sign bit is set, transfer the byte to B, clear the sign bit, and set the command to $20, check lampvalueinB.

A couple things went very south here:

First, some lamps were not turning off when collected, notable when the BLAST or OFF is completed - it would turn it on the left lane, say "BLAST" or "OFF", but leave the last letter lit... unless you collected it from the spot letter quickshot.

Then, the walker would have errors again. This was the second bug, when I added attract mode speech code, it didn't take into account that I was using the locations that were for the currently up player and the current ball in play - normally not an issue, since the attract mode is only running at game over. BUT, the attract light show is ALSO used at multiball start! So through an unfortunate series of tragic events, the attract mode speech timers were blanking the ball in play. Oops.

I've added a check for the attract situation to see if it makes a difference in the older 43 branch before (finally) abandoning that one. I had that source 1/2 commented up all nice and pretty too, with lots of explanations in the text so people could follow along if interested. Temporarily, I'm taking off the check lamp crunch to see if it makes a difference.... if it does, I'll try and debug that, because it's really needed to crunch into the original rom footprint - for about 9 bytes of check code, you can save about 100 bytes.

#265 3 years ago
Quoted from pure_penalty:

I've spent the past week or so tinkering with the speech roms, and I've got no reservations moving the phonemes and words from other games to make a new rom set.

I'd be interested in anything you come up with from that - Quench gave me the info on the eprom. I'll possibly try a 2732 in the speech board this weekend to see what goes on there.

I'll look in the pinmame source to see what the vsu1000 driver does that will probably give a clue to what's involved. It would be nice if someone could engineer new speech for the original hardware.

#270 3 years ago
Quoted from Zzap:

This looks like a pretty good place to start for new speech!
https://ia802708.us.archive.org/7/items/pdfy-QPCSwTWiFz1u9WU_/david.pdf
Edit: and this one gives more detail about some of the phoneme format: http://www.vintagecalculators.com/html/development_of_the_tsi_speech-.html

Thanks for the links - that's new info for sure for me the pdf.

I wonder if you could add the 'L' sound from "like" to "fight" to make "FLIGHT" then take data from the calculator too couple the existing "2" with "thousand" to have the game say its own name?

It seems like new words could be created with the data chopped up?

Quoted from Quench:

The VSU100 U9 socket is wired directly to support a 2716 or a 2532

I'll just burn it on a 2532 then. No sense in reinventing the wheel, right??

I'm now spoiled in that after playing with the quickshot lighting the right spinner lamps I really miss it. Going to do some more investigation as to what I've broken - it's so bizarre that an encoding change of the pigs byte could break so much stuff.

#272 3 years ago
Quoted from Quench:

Actually it'll make life easier for yourself during testing to use two 28C16 EEROMs (electrically erasable) - presuming you have them. No board mods required.

Nope.... should probably get some. I read your original response as a 2532 would just pop into U9 and work but I guess not.

Do they work on the Minipro? I don't see an erase function for that definition.

#275 3 years ago
Quoted from Quench:

A 2532 in the U9 socket will directly work with no mods needed. Was just suggesting two 28C16 for quicker rewrites while testing
I've only used SEEQ branded 2816A (hard to get now) and used the XICOR manufacturer in the Minipro software which worked fine. But MiniPro directly supports Atmel and Catalyst 28C16 which should be easy to obtain.

I see some of the definitions have 'erase before' and some have it greyed out (without it being checked). I'm sure something can program as it like you said.

I don't plan on delving too deeply into rearranging speech at this point - mainly to see what pure_penalty comes up with. My hands are full fixing whatever I broke between v35 and later ones, then attempting to re-crunch it down again to fit in the original footprint. I'm sure it's something dumb, like forgetting that I put a big "CAUTION" in the code to re-enable MSB incrementing on a pointer that crosses a page boundry, which of course I completely forgot about. It's in a section of code I rarely look at (the sound engine) since I'm not doing any mods there.

Quoted from zacaj:

I've been using AT28c16 and AT28c16b for all my 2716 needs with my MiniPro

Thanks zac I'll see if I can get some of those eventually.... shipping will be sometime in June at this point.

Do they make an EE version of the 2532? That might be handy to have around.

#278 3 years ago
Quoted from Quench:

You don't need to erase 2816 from what I remember, just write your new data to the chip and it overwrites the old info.

I wish... Searched high and low and couldn't find one.
BTW I don't know if you noticed, the MiniPro guys released a new programmer about 2 months ago apparently with 25V programming support.
http://forums.xgecu.com/redirect.php?tid=19&goto=lastpost
The software is still bare and in development so I don't know if they've added proper 2716 support, but they mention future support for "<User-added chip> Function" which might be interesting. But it's not cheap. Still to early too consider - maybe down the track when the software matures.

Nope, I had not - that's interesting since they said they were removing the 21v for the II version (not sure if they ever did.... I should probably pick up a II and just try it out.)

Off to order some 28c16!

#280 3 years ago

Awesome! Added this into the code and am now using the freefall definition in pinmame to test - I'll have to get it into the machine and test as well. Still working on bugs and crunching. It now tilts and says TILT before the sound effect, and currently the game start speech is changed to coins detected in pocket, but just for testing. I'll add that to the game over routine if you have no credits.

#281 3 years ago

Combined the u9 + u10 images using copy /B u9+u10 and burned onto a 2532. The 'tilt' speech works, but the coins detected do not - I get silence. I figured the board was expecting u10 to be populated as well as if it were a 2716 in each slot, so I burned another 2532 and stuck it in u10 - which got me no speech at all. Swapped one 532 for the other as well, both work when the single chip in u9, other than the missing speech, but both in and no speech at all.

I'm going to assume that I need to change something as highlighted in the schematic piece here (or that something is blown in that section) in order to just have one 2532 installed, since it looks like u10 is expecting to be active based on status of A11 ($800 range) being low, when there are 2x2716's installed (which I currently do not have any good chips for, nor a way to program them unless I get my ancient data i/o fired up again).

Maybe just clipping R46 out of the circuit would do it?

flight 2000-speech board modification.pngflight 2000-speech board modification.png
#283 3 years ago

Assuming that's the command it seems precedes all speech of $1a, $42 - yes.

But I also added what works in pinmame as a modify to raise the pitch - $7e after $1a,$42. I'll remove that and see what goes on with it.

I managed to crunch down the code again after making a boneheaded error to fit within the mpu200 u2/u6 again, but I need to add some more code.... and a very strange bug is now occurring - the ball in play display counts up really slowly as if you are hitting the spinners and just keeps counting up. It's really weird - it doesn't happen in pinmame testing. (Groan!!)

The hardest things to find and fix.....

#287 3 years ago

I need to read that documentation more closely so I can perhaps slice and dice some stuff myself. I wouldn't mind having a "TWO EXCS" and "THREE EXCS" to call out when the playfield multiplier goes up/down. Heck, even have it say "2x playfield" and "3x playfield" - there's not a lot of sound effects in the maze area during multiball anyway to get stomped on.

At any rate, thanks to me making a classic typo in the macro file (which is why it was so hard to find....), I now have a semi-stable codebase working in the original footprint with a couple of bugs to iron out.

The coins detected in pocket speech works now as well, so that will be moved to the attract mode/at game over if there are zero credits. Game over sound effect, then about a ten second pause, then the phrase.

There are still occasional times where the ball walker should walk and it didn't. I have a spare flag to use for that. In testing, I managed to get the 3x going and then get TWO balls up in the walker, and it seemed to handle it ok, EXCEPT that the lamps went INSANE - but that turns out to have been me shaking a bit boisterously and since I'd had the vsu-100 in and out a couple times, the jumper from the lamp board to the speech board is a little flaky.

I'd really like to know why I can't crunch the checklampvalue command down though, I managed to use the lampbvalueoff into one byte, but the check lamp value just doesn't work. There are probably instances in the code where they check a lamp value, do something else that changes the condition register in assembly, and then the pigs code tests the previous condition register (pigs doesn't look at the condition register directly, it always looks at a saved copy of it after comparison commands).

I've got 3 bytes free in low rom and 12 in high rom to change that attract speech and fix some bugs. If I can get the checklamp crunch working instead, I'll have 36 in low rom and 26 in high rom. Although I think when I re-rolled it back in, I didn't put the dip test for the walker solenoid swap in there yet. I'll have to take care of that.

#289 3 years ago
Quoted from pure_penalty:

Getting an an appropriate "X" is no problem. Thoughts on "ENABLED" instead of "PLAYFIELD" ? maybe both? either of those will require more complicated splicing rather than just transplanting the word

I'd assume creating a new entry instead of just copying and adding one? One might sound better than the other.

I went through the Gottlieb phonemes at one point and was creating new ones..... that never went into a game though. I still want to tackle that on Black Hole at some point, likely as part of my transplant of the weebly board into that platform.... that's a very long term project.....

#291 3 years ago

Awesome, thanks for adding these on! I'm guessing the sound rom might be getting kind of full now.

I've cataloged the routines that mess up when I'm using the crunched checklamp code to hopefully figure out why it's messed up. I'm reasonably sure it's because the B register is changed to something it shouldn't be. I found some more stuff to shave out as well..... we talking 2, 3 bytes, max.

The 'coins detected in pocket' soundbyte works at the end of the game, after the game over sound plays, if you have zero credits, it plays it. Cute

#293 3 years ago

"wow" (I think this one is already in oribitor 1 IIRC, if you beat the hstd or the high time to date)
"lit"
"extra", "ball"
"special"
"shoot", "again" (shoot pinball again is in O1)
"spinner"
"Is"
"great score"
"skill", "shot".

#295 3 years ago
Quoted from Zzap:

Are you doing a lot of manual hex editing to pack the rom pure_penalty ? I can envisage a type of assembler might be handy for this - especially creation of new words from phonemes etc...

Aw, cmon there's nothing like hex editing code! It's fun

I did a major mod to F14 about 8 years ago all with hex editing and boy oh boy trying to figure it out later on.... forget about that..... what a mess. Ditto with Black Hole, that's a major mess (I haven't found a 6502 cross assembler for the PC that I like yet.... although the mac65-like one is ok, but it assembles into atari 8 bit .exe's which luckily I'm familiar with and can strip the headers and tail off of.)

#298 3 years ago

Beta testing in my machine now latest version. One thing I do notice is that the "enable" speech is extremely hard to understand/weak - so I've excised that word and just left it as 2x/3x. As it moves from 3x to 2x it will say 2x as well.

It looks like the entire issue of moving from 35 to 36-43 was what happens to the B register as you go into/out of the pigs engine since the change to the compressed checklampvalue command. There are 3 locations that needed to be manually changed to a slightly different command - I thought about adding the packed B to the stack so it gets returned properly, but for 3 edge cases I'm not worried and I'll document it so I don't make a dumb move like that again.

On the plus side, I re-wrote several of the failed branch routines in a more efficient way, so there's that. I have about 12 bytes free in each rom right now - depending on what else the speech rom ends up with that might be a bear to cut even more out of the code, but I have some more ideas on that end as well.

Just a reminder that when I do post version 45 in the usual location, the position of dip 14 will become very important, especially if you've added the physical knocker - dip 14 on=ball walker and knocker are on the "normal" locations (knocker normal=coin lockout) - dip 14 off=ball walker is now the coin lockout circuit, and the knocker is the former ball walker. If you have the switch incorrect, you could blow the circuit. If you don't install a knocker no worries, the walker just won't walk

#300 3 years ago

Excellent! File seems to be truncated at 3216 bytes though. I'm automating a way to generate a source file for this using some macros in notepad++.

I wonder if there would a way to do bank switching with a mod to the speech board to enable even more speech to be added, or is there a limit on the table sizes?

I'm going to have to have another hard pass through the f2k code to make room for more phrases - maybe I can generate speech scripts in the $210-$220 range in the stack since the game never seems to dip that low. I need another breakthrough to get 100 bytes or so back like the checklampvalue byte ended up being!

#303 3 years ago
Quoted from pure_penalty:

Oops, I normally pad it with fffffff's to make up 4k. Guess it just means there is still free space
The data format of the S14001A is not able to point to sample data above 0xff0. So any 'bank switching' would require modifications to switch the roms entirely!

It would likely require the data to be symmetrical between the banks, as well - u9 would stay the same but u10 could switch in and out externally.

Since the speech rom isn't full yet the main roms are, it might be a moot point anyway.

I'll pad the v3 out and get it integrated (somehow!)

#304 3 years ago

Good news: New routine added, instead of 3 bytes to do a jump, added a 2 byte version - since most of the tests of the "if equal, branch <some small # of bytes forward>" are the majority of them, each of the new routines saves a byte. So, now we're at 87 bytes free between the 2 roms, before adding any of the v3 new speech in yet.

Bad news: It broke something (of course!) - I'm sure it's going to be a typo on my part or a cut-n-paste error. Now, the first ball locked says and reports ball 2 locked, and the second and subsequent balls keep saying ball one locked. Whoops.

More Good news: I've started to consolidate even more things in the self-test modes to save more space. I really don't know how much more the code crunch is going to be able to take to make more room, but the last couple of times I was sure it was full and unable to be crunched down, I got almost 200 bytes back. (Along with a lot of bugs to be squashed....)

#305 3 years ago

Yep, over-zealous cut-n-paste caused me to test a flag as clear instead of as set..... doh.....

Back to regularly scheduled testing....

#308 3 years ago

More good news, bad news. Either I really broke something somewhere (like last time!) or there's some serious issue with the way the machine handles the balls going into the walker.

The good news is, after some more optimizations, I've now got **566** bytes free.

Of course, the bad news is, that's because I've ripped out the entire ball walker code including multiball launch, the maze kickbig code, and the count-the-balls code. I need to obviously replace it

Before I ripped it out I was up to 145 bytes or so, so that's good.

It looks like from the code I removed which I have printed out and highlighted up that this being the first stern multiball game, management was (probably rightly) concerned about balls being lost, hung up, or hitting each other in the maze, so there's a LOT of extra flags and code with timing, re-entering the code if a ball doesn't eject in a certain time, very primitive switch error correction. All in the interests of, what happens if the switches aren't registering? (Most people just fix the switches!) I understand where they were coming from and I'll re-implement some of this.

The ball counting/handling code is especially toothsome at well over 150 bytes.... I've replaced this with about 15 bytes (so far) since it's just a mirror of the trough switches and the virtual positions in the walker. I'm sure once I've got the rest of the routines done I'll see why the original was so long and convoluted, and I'm looking at a steep debugging phase.

This has really been my biggest dread in ripping this game apart in the first place, but if I can pull it off much more efficiently, all that extra speech will be able to be put in the game, and I should have space to try and pull a sound effect or 2 from other games.

It will probably go into the machine over the next weekend as I'm about 15% done with just walker/kicker area.

#309 3 years ago

Small update because it's funny:

Testing the code you start the game, and if the ball didn't launch from the trough, it would add a credit every 10 seconds or so. Also I noticed that the background sound would play at bootup.

The law of unintended consequences in software bit me here.... I was convinced there was a bug in the new audit handling code I'd re-written to save space, but the bug was still there after removing that code. Took a while to trace back, but it was from saving/loading the ball status byte that I'd added to the save/load player data routines (the stock code uses $208/$209 to save ball status, at the expense of not being able to use the existing PIGS commands to query values - which contributes to code bloat. I repurposed the maze flags to do this instead, but doing this means that the status is updated with each player coming in and wouldn't be current. I moved this code to outside of that series of subroutines but will probably just change the status code to not copy over it instead. (So it's the same for all players with no manual updates needed.)

For a first pass into the game this isn't too bad, I only blew one fuse

The other fun bug which was totally my fault is that the ball walker code worked but it ended the ball early. (I did this because some wiseacre would probably tilt as the ball enters, which normally hangs up the game if you time it right).

#310 3 years ago

So, wrong state of a flag for the ball ending early, but there definitely needs to be some smoothing code for the switches in there because they react too fast (i.e. double reaction when it should be).

I'm thinking of adding an option for a more difficult multiball start since countdowns should always start at 10 and run down to 1..... so you have to complete the 5 bank twice to enable multiball start. Maybe only for the second multiball..... or maybe do it once 10-9-8-7-6 to enable multiball, but if you wait and do it again 5-4-3-2-1, 2x will be active at the beginning of multiball instead of having to shoot the ball back into the walker.

Here's all the available words by game that could be put into f2k. There is also a talking calculator rom and I think some other ones that could be sourced from other products if needed. And of course pure_penalty is working on creating new words from scratch as well, so taking suggestions on words/phrases that could be applied to the game.

FLIGHT 2000
one, two, three, four, five, prepare, mission, stand, by, all, systems, go, first, stage, second, blast, off, player, commence, countdown

FREEFALL
one, two, three, four, five, ten, fifteen, twenty, thirty, forty, fifty, sixty, seventy, eighty, ninety, hundred, found, altitude, diver, divers, ready, free, fall, geronimo, all, jump, jumper, player, take, off, go, standby, beat, high, you, win, ?bade?, game, sky

LIGHTNING
thor, odin, freyr, earth, fairnadfak?, skold, valkyrie, warrior, journey, capture, begin, over, out, time, left, seconds, valhalla, godess, angered, pleased, welcome, unleashed, the, hammer, of, twenty, ten, thirty, one, two, three, four, five, returns, continue

SPLIT SECOND
S, L, P, I, T, E, C, O, N, D, go, all, ball, score, great, shot, second, good, 1, 2, 3, 4, 5, 10, shoot, again, high, gate/date?, start, extra, time, over, ladies, gentlemen, excellent, perfect, fair, split, fold, hurry, mystery

CATACOMB
prisoner, escaping, from, catacombs, one, two, three, four, captured, use, right, flipper, flip, action, advance, lights, with, left, get, them, you, win, an, extra, ball, a, free, adventure, once, back, beat, high, tilt, returned, shoot, fast, or, lose, shots

BERZERK
help, kill, attack, charge, got, shoot, get, is, alert, detected, the, in, it, there, where, humanoid, coins, pocket, intruder, no, escape, destroy, must, not, chicken, fight, like, a, robot

ORBITOR 1
shot, you, score, take?, I, me/the?, player, game, pin, stern, matched, it/get?, bonus, coin, tilt, wow, play, ball, beat, shoot, win, lose, try, R, is/S, set/get?, go, got, thank, M, please, aim, times, nice, high, good, free, great, next, extra, super, again, two, over, B/Bay?, if?, up, hello, for, very, much, out/ouch?, the, down, drop, target, lit, flashing, bye, in?, it?

#313 3 years ago

You wouldn't have to actually clear the locks out there is no/little advantage to launching a ball via the maze vs. shooting it from the plunger.... you're nudging to get the lit lanes either way. It's already set to not pay the 10k maze kicker if the current player up didn't earn those locks.

There would be no point to keeping your qualified locks if you have to physically put the ball back into them, you're getting credit for the lock anyway when you shoot it. (although it would affect the 5-4-3-2-1 countdown bonus 10k/20k/30k/40k.)

It wouldn't be difficult to add the lock no-carryover feature except for finding a free dip switch to enable/disable it. There's already no lock stealing in the game stock, since each player has to physically put a ball up into the top of the walker to get credit for a lock - it's just what happens after that that might make a difference. There IS a setting game to game for that (also stock), where each player will get credit for whatever was locked the last game, but most people have that one turned off. I happen to have it on right now for testing, but my normal mode is to have it off.

It's not as easy to replay multiball once you play it as stock, because the spot blast lamp does NOT light after the multiball any longer - it's only lit as part of the quickshot. And it only spots ONE letter, not the entire word like stock.

I'm still debugging the new walker routines, it's a real bear (see the screen shot for the decision tree transcribed from my sloppy note paper to the code) - I can see why the original code was really convoluted as well, although I think there was some bloat involved there.

walker decision tree.pngwalker decision tree.png
#316 3 years ago

The removing the lock memory ball-to-ball is no problem, there actually code stock to do this - any time a player starts multiball, as part of MB start the game clears any and all locks from the other players. The only difference at ball end if that I'd add a routine to check a dip switch, and if it's set, run that subroutine, then move onto the next player/ball. I suppose the argument could be made that after playing multiball, and relocking balls, other player's status should be returned - the lock removal code should be changed to remove locks that are missing in the walker from other players' at ball's END instead of while the multiball is starting, otherwise a player that starts MB and re-locks 2 balls HAS disadvantaged other players who had 2 locks collected as well, because as far as the game knows, they never had them. This I will note and look into changed once I have the walker/multiball code debugged.

Yes, I get where you are going with the locks and attempting to level the playing field for all players; however, it is impossible for a player in multiball to end their ball with balls physically still in the lock with the new software. Balls shot to the walker in multiball will start 2x/3x playfield scoring for a short time, walk through the walker and get ejected from the maze (these DO score the 10k each for the walker shot, and each of the left/right kickouts, because it's the same for all players)

There are tons of early solid state games where players get disadvantaged by what other players do with respect to physical ball locks, and it doesn't stop tournaments from using them. One of the things I'm going to change on Black Hole when I get around to it is to figure out how to get rid of the need to eject the ball in the left capture lane when you lose a ball without collecting it - I always thought all those gottlieb system 80s that did that were goofy, ball on playfield during a valid, non-tilted ball to me means you should be able to flip at it.

The only advantage a player gets with stock software and someone else loading up 2 balls in the walker is the 10k maze eject "bonus" vs. plunging, and that was eliminated a long time ago (the current downloadable version 35 has this for instance).

#318 3 years ago

Extensive playtesting is starting with the walker code replacement. It's not 100% (I *really* wish there were a way to get switches in the lock mech!) yet so won't be posting the update just yet - and there's a couple of bugs to be worked out (of course!) - currently there's about 140 bytes free for the additions of more speech/maybe some other games' sound effects grafted in (this will not be as easy as the commands are different for most games, and flight2000's appears to be unique as the original programmer needed to save space and this is where he did it).

There's definitely some timing things to tweak. I was tilting creatively as well during various walker states to ensure that the game recovered nicely. Need to add the start game switch logic still - could use the speech 'standby' to indicate that the game is acknowledging you hit the button while balls are walking out of the maze.

I also doubled checked that the clear the lock switch 24 still works at game start; just need to add the clearing of it to ball end in the edge case Da_Vagrant suggested, where relocked balls after a player's multiball would transfer back to players that earned them on their balls, and to add a dip switch somewhere to enable clearing all locks all balls for the masochistic level of multiball.

#320 3 years ago

Added speech, both from pure_penalty and myself
tilt, coin, detected, in pocket, X, ten, nine, eight, seven, six, ball, skill, extra, lit, shoot, is, wow, again, shot, escape, earth

I'm working on adding the new word "orbit" (as in "escape earth orbit") but the B isn't coming through very well. There's still about 200 bytes free in the speech rom. I was able to consolidate some of the data from the original modified rom as it's the same data to save space.

I don't want to overload the talking though, just because it's there. For instance, it's tempting to have every ball start with "shoot skill shot" - but that will get annoying quickly.

Will likely add something like "you beat high score" and still want to merge the L into the word "fight" from berzerk to make "flight", and work the word thousand in there (from a calculator rom).

#322 3 years ago

Orbitor 1 has "super"
Catacomb has "fast"

So yes, this could happen. I've already added in when you have the new dip 23 to pay an extra ball 'extra ball lit' (I wish the PF said WOW there instead of special).

Now with the calculator roms it's conceivable that the multipliers could get a call out too, like 13x, 15x etc. although that's kind of tedious. Maybe 'advance X'. There's actually lots of speech from other things that would 'make sense' until there's overload on the talking.

Nothing is more annoying that Split Seconds' hurry.... hurry.... hurry.... ugh. I kind of wish I had the game back so I could fix everything that's wrong with it, but the gameplay was just Meh to me.

Maybe I'll acknowledge a made skill shot with Got skill shot?

Using the spin counter after it stops maybe rate the spins, "great spins" or something like that. Adding the S onto the front and back of "pin" from Orbitor should be doable.

#325 3 years ago

Removed speech escape, earth (each took up a LOT of space, for not much results)

Added Danger, power, bonus, score.

Going to add to the main game tilt warnings (that's what the 'danger' call out is for).
Power will go with the 2x/3x scoring - "2x POWER", "3x POWER"

"bonus" will be for hitting the quickshot standup, "nice" bonus, or "super" bonus, etc. - or maybe "super bonus" if you drain with 19k bonus or something like that.

I might add skill shot too but not sure where that should end up - there's already a lot of speech at game start. It would be "player 1 prepare for mission shoot skill shot"

Maybe on a made skill shot "nice skill shot".

Thanks to Quench for sending me a bunch of other roms that use the same speech chips to cull words from. Eventually I'll post a separate thread with all that information for people to play with.

I do think it would be possible to modify the speech board to bank select, if one of the speech roms he sent is any indication it's much larger and the data layout looks like it's already bank selecting. If that can work, then other mpu200 games that have full speech roms can be modified as well for more speech.

#327 3 years ago
Quoted from pure_penalty:

Are you packing these into the last rom i made? if you'd like me too, I can.

No, I'm now rolling my own. PM me your email and I can send you the disassemblies of the sound roms Quench sent me (and the current version). I used a clever way to find duplicate sound data (ok, it was multi-line 'find' haha) and eliminate it.

I still have some unknown rom and a calculator rom to go... and back to fixing bugs in the code. (And adding the sound callouts, which hopefully I'll have space to use....)

#332 3 years ago
Quoted from pure_penalty:

Interesting - what I really should also have done was write a tool which tracked all accessed memory addresses to determine if anything was not referenced during playback and could be scrapped!

That's a good idea and hopefully can happen. I don't doubt that there's some data they had in there that was just canned and copied from other roms. What I did was search for the next 'reference' in the word recipes to see if it was referenced or not - if it wasn't, I assumed that $10 wide block was part of the previous blocks' data and I copied it all over.

Once you see the current version you'll see what I did in reference to that (along with commented out stuff for words I ended up removing, until/unless I can get some kind of bank selection going on.... would have to be external since I don't think there's anyway to have the chip do it, although the digitalker rom appears to reference stuff outside.)

#334 3 years ago
Quoted from Quench:

It will mean speech board mods and your best bet might be to sacrifice one of the clock speed (pitch) or volume attenuation bits programmed by the MPU board.

The timing and data arrangement would be tricky for sure. I might just stick with what's going on now and maybe sacrifice some things (the danger callout while nice for a tilt warning, is its own unique set of data that doesn't match anything else, and so takes up a LOT of space.)

Ditto with the full 10-1 countdown - that might not be needed. I'll have to play the game with the rule in place to see how it plays. Currently, I'm going to implement it as 10-6 lets you start multiball if you want, but if you then drop the 5-4-3-2-1 the game will give you either 2x or 3x scoring right off the bat (for the normal timed countdown period)

#336 3 years ago

Changed dips 15/16 formerly HSTD credit, dip 16 acts in conjunction with dip 6 (replays).
Dip 6 off=no replays for HSTD
Dip 6 on, dip 16 now selects # of replays for HSTD, on=3, off=1 (no longer able to select 2)

Dip 15 is now tilt warnings per ball, set off=no tilt warnings, any tilt activation=instant tilt (factory behavior)
Dip 15 on=3 tilt warnings per ball, any tilt activation="DANGER" callout. There is a short timeout between tilt activations so that the bob will settle slightly.

Somehow with yet more rewriting of some routines, there is now 123 bytes free in the lowrom area, 2 bytes free in the upper rom area, and 48 bytes free in the now-doubled speech rom.

Also added but needs testing the non-removal of ball locks from subsequent players after one player gets multiball, but then also relocks one or 2 balls, as suggested by @da_vagrant. (This change actually saved some valueable romspace - the game always checks at ball start if the ball locks are still valid, so it's not needed to specifically clear them. This seems like this whole routine was a deliberate decision on the original programmer to bone over players when one player gets multiball and the other loses their locks).

In the process of adding the "full" countdown function, 10-9-8-7-6-5-4-3-2-1 with voice call outs for either the second multiball, a more difficult setting, and/or the ability to have 2x available at multiball start instead of on a relock type situation. With 125 main rom bytes free this should be possible. Each 'number' callout is 4 bytes now (instead of 6) so adding 10-6 is 20 more bytes, then of course the support code to use it. I've found even more free flags in the game that were never used individually, oddly. (I'm kind of surprised at this, but not really because Pfutz uses Flags in very strange ways in all of his games.... in pinbot he uses them to track the vortex multiplier values and energy value, despite having a slew of free locations elsewhere to do so... probably for convenience)

I still need to tweak the multiball starting special effects show, it just seems "off" to me - the blast off seems to count down less (score indicates otherwise) and the timing needs tweaking.

Also, at first boot, if there are balls in the walker, the game will prevent starting until they end up in the trough. If you press the credit button during the ball return time but before they are all in the trough, the game will say "BALL" to indicate it is waiting (I guess I could use "STANDBY" instead there instead). This is only for the first game after bootup, if you want to break the game at other times when the balls are in flux you can still do that.... not sure what advantage that would/could give.

#337 3 years ago

I'm at a decision tree.... for all the extra options, I'm out of dips to repurpose.

I should think about dipping into the coin ratios (I know I said I wouldn't do that unless needed.... but unless I 'can' some options to values that people might not like, I have to do something.)

And I have some more debugging to do! The 10-6 count worked but then it counted down the 5-1 immediately without resetting the drop bank and starting you back at 5.... oops. I'm sure that's a dumb error (like most of them end up being....)

Oh, and the "unused" flags I thought I'd found? Nope, they're used for something.... but what, I do not know yet. Regardless, I found a free flag to use for the 10 countdown routine (the former $3a flag that's for the stock replay knocker that was never installed).

#339 3 years ago

Most of the complaints in the past about the rom mods did center around the removal of location friendly options. People actually put modded games out in their barcades or locations especially if there a tournament element involved.

I'll try to come up with something if I cut 1000 bytes out of the code I'm sure I can figure out a couple options.

#340 3 years ago

Small update, tweaked some speech, the full 10-1 countdown is working, need to keep testing the changed multiball carryover stuff. Extensive playtesting is commencing and once it's solid-ish this will go onto the site for download.

Found out what the original code was doing with the unused flags - they were all for choreography of the multiball start in the ball walker. Not needed with the new ball walker code.

Been playing with the harder setting on the full countdown 10-1 - it's really not that much harder than the original. Maybe just implement it in the 2nd multiball, or have an option to do so. I can possibly open up 4 NVram locations to add some options there instead of on the dips. (For tilt warnings for instance, that way you can set how many you want instead of the canned 2). I plan on adding an nvram clear function once all is said and done for convenience purposes.

A made skill shot now says 'skill shot' with the same sound effect I had been using.
Tilt warnings if set will call out 'danger' (1st), 'danger danger' (2nd) and 'tilt' (3rd).
Extra ball on standup if set will call out 'extra ball lit' and 'extra ball' when collected.
Shoot Again will call out 'shoot again'.
Quickshot made on standup will call out 'good shot'. If quickshot standup won't spot a letter because you've got them all, it will give you an extra bonus multiplier.
2x/3x scoring during multiball calls out '2x power' and '3x power'. When decayed to 1x, just says '1x'
Game over now says 'mission over'.
Ball waiting at bootup says 'standby ball' while ball(s) returning to outhole.
Zero credits at game over will trigger the 'coin detected in pocket' speech. This unfortunately is a top candidate to be cut. It is however the main reason I wanted to fool with the speech roms anyway, for a joke on a friend because I won $20 from him in the 80s when he bet me that Gorf said this, not Berzerk.

Current inventory of speech on the rom:
one, two, three, four, five, prepare, mission, stand, by, all, systems, go, first, stage, second, blast, off, player, commence, count, down, tilt, coin, detected, in, pocket, X, ten, nine, eight, seven, six, ball, skill, extra, lit, shoot, is, ready, again, shot, score, bonus, power, over, danger.

Not implemented yet from the speech rom:
Bonus - need a good place to put this.

Not in the speech rom but can be implemented but at the expense of something else:
flight, wow, escape, earth, enabled, (working on: orbit)

#342 3 years ago

OK, more good news/bad news.

Good news, is that instead of fooling around with dip switches for some options, since I got 4 bytes back in the nvram section, I added the ability and adjustments 19, 20, and 21. These will be set to:

19 Tilt warnings, range 0-3. 0 is factory, instant tilt, no warnings. 1=1 warning, next is tilt, 2=2 warnings next is tilt, 3=3 warnings, next is tilt. Recommended setting is 2. Danger, dangerdanger, tilt. If you set to 1 warning, you will get dangerdanger on first warning, then tilt.

20 Credits for beating HSTD, range 0-3. Set to 0 to not payout any credit for hstd surpassion, etc. 3 was factory.

21 Maximum credits (just for the guys on locations!) - range 00-99. If you set it to 00 that's your own fault! It will operate as freeplay without adjusting dip 19 in this mode. If you just want freeplay without winning credits, use this new setting, otherwise if you want to rack credits up, set the max here and for free play, put dip 19 on.

What's the bad news? I need to get $32 bytes free to add the option settings this way. It was an ugly-ish hack to get this in there since Stern games were never intended to be able to set single byte adjustments. Now, I do have some free rom space in the lower area now, but this will use up all of it. So there would be no more wiggle room to get bugs fixed or anything else going on.

But, progress! Still playtesting.

Also, since these are new adjustments, first install of the rom should have you go through and at least zero out 19, 20, 21.... otherwise if there happened to be say $ff set in the hstd payout location, yup, it will payout 255 credits and knock for each one. Holy coil meltdown.

#344 3 years ago

I've been updating the info file for the game as I go along it won't show all the incremental changes, that was in the codebase but I split that off as well. Now it's just bugs in each revision in that file and new features. I have been archiving every build though, 1 test burn=1 archived source code file, so I don't go way off the rails like I sometimes do with this stuff.

There's currently zero bytes free in low rom and 5 free in upper rom. The changes along the way really ate up a lot more codespace than I was anticipating, so time to come up with another 100-byte saving breakthrough!

#346 3 years ago
Quoted from HPR:

Is it complicated to install an attract mode with speech?

No, because it's already in there

If by attract mode with speech you mean that the speech will entice a player to play every so often (I think it's every 6 or 12 minutes I forget what I timed it out as). Dip 17 was repurposed to do this, (speech is always assumed on in the game) - on=attract mode speech, off=no

If you mean a "tutorial" like Bally Atlantis and Centaur have, there's no room in the code to add something like that. In fact, changing the attract mode at this point would be fraught with disaster as it's been cut down without changing it but it's a precarious set of code.

#347 3 years ago

Added adjustment 22, multiball difficulty, range 00-03

00=as stock, whatever 5-4-3-2-1 progress you have when you get 2 balls locked/blast off spelled stays.

01=5-4-3-2-1 resets

02=5-4-3-2-1 resets, 1st multiball for player needs 5-4-3-2-1 countdown for all systems go, subsequent multiballs require full 10-9-8-7-6-5-4-3-2-1 instead.

03=5-4-3-2-1 resets, all multiballs need full 10-1 countdown (uber difficult!)

Rearranged some stuff to make some space again so it's fitting. Still pretty close to the edge here. Eliminated a routine that checks for hstd, pays the credits, then checks the SAME exact data again to store the hstd. I originally though this was because they were paying all hstd credits out as they should, but if player 1 beats HSTD, player 2 does as well, but not by as much as player 1, only ONE person would get the hstd credits. If player 2's score had been higher, BOTH players would get it. This is kind of a ripoff in the original code! Bally handles this correctly IIRC, checking all 4 players first, paying out the credits, then storing the HSTD in a separate run through. I'll try and add this in, but it's kind of an edge case here.

#349 3 years ago

Fixed the HSTD code

Have about 16 bytes free for any other bugs!

Quoted from HPR:

Oh thanks didnt know!
I like levels of difficulty coutdown from 10 to 1!

Yeah, the full set of options is hard to keep track of and the attract one is somewhere on page 3 of this thread (page 4? page 2? dunno). The readme in the eventually posted next beta version will be completely up to date.

The full difficulty really hurts when you go 10-1 and miss getting the start.... or worse, last ball, outlane spots the 1..... ugh..... hit start again....

1 week later
#351 3 years ago

I was playing around with the speech data yesterday and substituting data from the Wolfpack atari game into the same code into f2k, but the Atari code was shorter. Didn't like the way it sounded though, it was clipped off.

1 week later
#352 3 years ago

Current free byte count:
Low rom=2
High rom=5

Fixed a bug in >1 multiball where 'blast' and 'off' weren't being called out (since I was never clearing the flags).

I was pretty stoked yesterday because I had a REALLY good multiball going where I was shooting balls up into the walker for the 3x scoring - I almost got the 5-4-3-2-1 40k tripled, and I definitely had some left spinner rips at almost 12k a spin in there. Also, the ball walker code is robust and handled the multiple entries into the walker well. (Due to the spinner waiting code, I was able to shoot a second ball up into the walker, twice during that multiball. I suppose the ULTIMATE test would be all 3 balls up there to see what happens.) I think I got about 1.5 million during that ball.

I realized I hadn't used the 'score' callout either - so there might be space to remove that from the speech rom. For the new blast standup spot rule if the letters are already complete when it awards the extra multiplier I could have it say 'bonus x' - and was thinking of having the playfield multiplier say '3x score power' or 3x power score' to get score in there, but that doesn't flow as well to me.

I also slightly increased the amount of time that the 2x/3x scoring is active, so that it's longer than it takes for the ball to eject from the maze.

#355 3 years ago
Quoted from Stretch7:

Sounds like it’s close to being done

I'm down to 7 bytes free so it might become academic at this point unless I shake more free.

The last software point I"m tweaking is the timing of the multiball start - there's a delay sometimes in the walker, which the software recovers from nicely, but the actual reaction is slightly off vs. stock.

Also I'm typesetting the original manual into Word with the rules changes so a replacement manual can be re-created, but that's not essential to the release of the software which I'm hoping for in the next week or so depending on how the tweaking goes. I'll probably create another couple of instruction cards too so people that choose differing options can print out original style cards.

#357 3 years ago
Quoted from goingincirclez:

Sounds great! I hope to have my resurrected F2K fully dialed-in by next week so your timing works for me
One request if I may: along with updated manual pages, could you provide a new DIP chart to replace (or overlay) the one in the backbox? Would be a nice handy reference, especially if the game is ever resold with your updated ROMs installed. Just imagine the chaos if someone tried troubleshooting the DIPs with the OEM chart, ha ha

I'll work on the other paperwork as well that would need updating.

I can imagine someone getting the game years from now with a strange option set and they're either think the roms are corrupt (bye bye custom!!) or they'll be really excited thinking they found some ultra-rare prototype of the game.

#358 3 years ago

More progress, of the usual one step forwards one step back type.

Finally, the multiball start choreography is back where it should be. But, it's back to scoring 35k instead fo the 40k it should! (How?? I didn't touch that part of the code, I thought)

Secondly, the second multiball is broken again, somehow - it's supposed to make you do the full 10-1 coundown (drop bank twice) for the second multiball, but instead, it makes it really easy! (as in doesn't even reset!) - now sure what happened there, but I did have to reassign some flags for different uses. I actually discovered what flags 41, 42, 43, 48, 49, 4a do - they're all different coin alternators. Now, it *probably* wouldn't affect anything unless you happen to coin up the game while you are playing, but I'm not taking chances. I also rewrote the coin handling and I think I understand what they were doing 100%, so I was able to save some space there.

While tracing/moving some code around, I found out an interesting little tidbit that I think should be eliminated, because it actually penalizes a player that does too well before starting their multiball. Here's the scenario: You have 2 balls locked, Blast off spelled, and you have completed your countdown, so ready to launch the ball into multiball. If before you shoot the left lane you also happen to walk the 5 bank from 5 down to 2 or 1, when you start multiball, you do NOT get the 40k spot lit until you complete 2 and then 1 (or just 1, depending on where your progress was). Ripoff!! You have to shoot 2 extra targets. I'm pretty sure I'm taking this out. I'm sure they were balancing scoring, or maybe there was some other thing going on in the code.

One thing I don't care for is 2 balls in the shooter lane if you restart a game in the middle - this is where a shooter lane switch would help out. This isn't high on my fish to fry list.

Speech changes:
I did add in the 'bonus' soundbite, if you hit spot blast quickshot while it's lit but you already have blast off spelled, a couple revisions ago added an extra bonus x for doing this - now it will say 'extra bonus x' when this happens. I also added a pitch change on the last DANGERDANGER before tilting, it is slightly higher in pitch so you know you're on the edge of a tilt. There is an additional speech quote on the attract mode, it should alternate every other time. I'm going to revamp the way I'm timing that as well because what's in there now is a kludge.

I still don't have a place to use the sound bite 'score'. I'll have to see if it makes sense to change things around in the speech rom again to put something else that I might be able to use in there - like "T" and "minus" for the coundown. (T is in split second's rom, and minus is in the speech+ rom which I guess is a calculator).

One thing that's still confusing is the interaction of the ball walker - sometimes it steps smartly, right away, and other times there's kind of a long pause while it's deciding to do so. I don't think this will be fixable at least not without changing the way it works entirely, at least it doesn't 'miss' walking like it used to (in earlier code it could miss, and even stock it missed as well.... but this might be if I don't have a switch cap on the entry switch..... I should really check that. I swapped the PF before I was replacing those caps they were all cut off originally.)

#359 3 years ago

Oh, and I found another bug while doing this other stuff - first ball didn't get 1k bonus lit by default. Subsequent balls did. At some point I had made the decision to NOT issue 1k automatically, but then I made the decision to switch it back, and only one got changed. That's back to 1k lit at ball start, like I think it should be. Stock code giving you 10% of your max bonus seemed a little generous, but now it's 5.something %, so that's fine.

#360 3 years ago

Found a bug in multiball start that I think I've quashed but will have to play some more to make sure.

Added ability to go backwards in audits 1-4 for replay levels/hstd, if you hold the coin door slam switch in and then hit the credit button it counts down instead of up, for those times when you're setting the replay level to 1,600,000 and overshoot it by 10k....@#&^*&#!!

#361 3 years ago

Did much playtesting and the bug is not only in multiball start - it's because of the interaction between the left spinner timeout code and the walker, as I just played a game where I got Lock 1 awarded, and THEN the spinner started to react, so it reloads the walker code (as it should, because the spinner is still spinning - however, once it gets to the lock code and actually walks, it should not do the walker rentry)

Part of this is because of the left spinner reaction time, on a REALLY fast spin on my game, it won't register until it slows down a little bit. I added a specific flag for this but until the spinner registers the flag can't get set! (I wish they had put switches in the bottom 2 walker positions!!)

So, back to the code and after tweaking, restart this test cycle again. I need a way to tell the walker on the first time in, and ONLY the first time in, to pause for a little bit to let the spinner 'catch up' - which will then trigger the walker on its timer again.

#362 3 years ago

https://sites.google.com/site/allentownpinball/galaxy-asm/f2k-release-3347M.zip?attredirects=0&d=1

Release candidate v3347M posted at the above link. I *think* I have the details all ironed out, but I'm sure early adopters will find something right away that I completely missed. About 1000 games were played to get to this point.

One thing that needs more testing is the walker behavior if you decide to not swap it with the coin lockout circuit - it cannot be helped that some switches will either be missed or not react right away if the walker stays as the momentary solenoid as stock. (Stern realized this themselves in all the subsequent games that use this mech and they switched it to continuous circuits). This will only be a factor where the walker needs to walk while other balls can be scoring (i.e., multiball). All other times, the left spinner will finish before the walker code runs, so you don't lose the points from that.

The walker as normal is dip 14 ON (previously background sound, which most people have on). The walker as continuous is dip 14 OFF. If you didn't connect up the knocker, having the switch in the wrong position will only pulse the coin lockout coil when the walker should react so no damage, but if you hook up the knocker, it WILL blow a fuse and possibly the transistor driver if you have the switch in the wrong position. Knocker installers, put a fuse on the knocker to avoid this!

Not every combination of dip switches and options was tested extensively, so when testing, report the dip settings and game options you are using.

IMPORTANT: After first install, you must set the new game options 19-22. 19 is tilt warnings range 0-3, 20 is the number of credits for hstd, 21 is the max credits, and 22 is the multiball difficulty. There will likely be random values in here from previous code; not all are critical but #22 is - if it's a value other than 00, 01, 02, or 03 it will likely crash the machine once you get to qualifying multiball. The code will only allow setting valid values, but it doesn't correct invalid values on bootup.

The current codebase has *zero* bytes free in low rom, and 16 bytes free in upper rom.

See the text files included in the zip file for more information on which rom chips to burn for your particular setup. Note also that the new speech rom is required, and it can either be burned as 2x2716's or 1x2532. I don't know what will happen if you don't change the speech rom, it may or may not crash the game, but I can tell you for sure that it will not say all the speech it should.

Questions/bug reports/comments post.... please include which board you are using (weebly, mpu200) and dip/option settings if you are reporting a bug.

1 week later
#363 3 years ago

Bug Tracker update: It has been reported that both the walker behavior at multiball start and during multiball might have some issues. The first is that a 2 ball multiball would start, with the third ball remaining in the walker. This was tracked down as a switch issue with the left kickbig in the maze; it was activating without a ball in it (the software expects/waits for a ball in the kickbig before moving onto the next phases of multiball start). The fix in this case was to remove the switch capacitor from the kickbig switch (a switch where a ball can come to rest on it does not need a switch cap at all). Likely the short hit as the ball was leaving the kickbig activated the switch again.

The second issue was during multiball, if for some reason the spinner counter stays on the display when going back into the walker, it waits. This was added as a last minute addition to try and have a double check that the spinner was not active, but unfortunately, if the spinner routine times out and does not clear the display, the flag used doesn't clear, either. In the software, if the spinner counter is active (i.e. displaying) the walker code would trigger a re-entry to let the spinner finish - which it never would. I was unable to duplicate this bug on my game, but it was consistent on the tester's game.

The next maintenance release will eliminate the spinner double check and just go with the timer check - the double check was added to try and catch a really fast spinner shot to the lock that the spinner hadn't even reacted to timer-wise so the ball would walker, even though it's supposed to wait. I'll replace the double check with a delayed reaction on the walker instead to catch this error. This one is pretty minor, although if it happens that you're walking in score multiplier mode, you will get extra scoring from the left spinner that you otherwise wouldn't have been entitled to.

So many things that could be avoided were there switches in the walker!

#365 3 years ago

I reversed the stock code's masochistic multiball if that's what you mean - the original multiball took away EVERYONE's locked balls, even if the person getting multiball put a couple back up there when their multiball was done.

The current 'tough' multiball is setting it to require the full 10-1 countdown on the drops for the FIRST multiball. Now, that's tough. Even the progressive setting is kind of hard, that's where I have mine set now, because I'll get the first multiball, then for the second, I'll get down to 3-2-or so and drain out. I should add an automatic 3x pf multiplier start on the 10-1 setting as it's just so hard.

1 week later
#369 3 years ago

When this happens does the spinner count stay on the ball in play display? Is it when locking balls only or during multiball?
Original mpu200 or weebly board?

#372 3 years ago

OK thanks, that points me in the correct direction of removing something in the code that I'd just added as a double check on the spinner. It looks like on an MPU200 game for some reason the spinner counter doesn't come off the display randomly - it never popped up in 100s of games on the weebly setup I use for testing. It can't be a stack underflow because the stock software uses some low memory locations for sound stuff.

I'll remove the extra flag I'd added and post an update once that's done.

#374 3 years ago

Sent you a link with new test version LMK if you get same/similar errors. Also do you have a switch capacitor on your walker entry switch? (and your 2 maze kickers - the maze kickers definitely do not need them, but the entry switch does. I wish they'd put the entry switch lower so that the waiting ball would 'rest' on the switch instead of clearing it - would solve a lot of issues.)

#376 3 years ago

I think the switch might also be the way it is because it might get marked as stuck if the ball sits on it - you might have to change it back. The advantage to the switch AFAIT is that you can trigger it, it's off the switch so it's available to be triggered again if a second ball comes behind it - with the full length in there holding it down, the first one will always work but the 2nd ball behind it will 'count' as the first switch trigger. (and never activate on its own).

Although, there is a routine (stock that is pretty much the same in the new software) that periodically resets switches like the kickers in the maze, the outholes, the walker entry, and the drop switches to try and catch stuck ones.

I may have to rethink having the walker stop and always wait for the spinner to stop - it makes sense in starting multiball, but other times (and especially if you swapped the coin lockout coil with the walker - did you I forgot to ask?) I think it'd be better to have it flow through and if you miss a couple spins, you miss a couple spins.

#378 3 years ago
Quoted from Stretch7:

Ahh yes i hear what your saying....well i still have old switch so easy enough to swap back. No I didn't swap out coin lockout with walker.

Ok, good, you're the beta tester for the non-swapped code! Interesting to see how it works. I know with the walker still the momentary one, there might be contention with other solenoids that might want to fire at the same time.

3 weeks later
#381 3 years ago

You need to build an adapter for the minipro to burn 2532's as 2732's. Bob Roberts' site has information on it (well, an archive of his site....)
http://www.thegleek.com/bobroberts/mspacrom.html

You can burn 2x2716's for the vsu-100 board OR one 2532. You can get 2816's they are eeprom version of 2716 and what I now use instead of trying to find 2716's (which the minipro doesn't do anyway IIRC)

Usually for my mpu200's I have them all jumpered for 2x2732's. Most of my games have been converted to Andrew's mpu board that I use with eeprom version of the 512's. It's not easy to rejumper the vsu100 board for anything other than the 2532's or 2716's. The 2716/2516 variants are the ones that are 'different' regarding voltages and pinouts - 2532's are all compatible with each other re: the pinout.

#383 3 years ago

I think I've tried the 2732 thing in the past on the speech board on other games and it didn't work - it wouldn't hurt to try it.

I don't see why minipro doesn't add 2532 to their selection - their device works by having all addressable/redefinable pins for each definition so it would be easy enough to add I'd think. The whole 2532 myths are pretty amazing according to Bob Roberts' page a lot of people get flummoxed by burning them and do all sorts of things to convert boards to not use them.

Even the Elektor magazine article I just read says "2532 chips are impossible to obtain". They aren't! They're just as available as 2732's. Now, 2716's at this point are hard to find so it's great that there's an eeprom equivalent in the 2816. That is what I now use in place of 2716's instead of doing the double up trick.

3 weeks later
#387 3 years ago

It's feature complete at this point. Bug Fixes only. Eventually the source will be posted if you want to add this yourself.

#390 3 years ago
Quoted from tyking:

Aren’t there virtual platforms used to test code? Can you suggest one?

There's really only one virtual platform to test pinball code and that's pinmame.

Quoted from tyking:

I think I got a bit ahead of myself with this question, because I am seeing that I really need to start by simply learning how to read and write the relevant code. Which one should I be learning, C++, Python, etc.

This code is circa 1980. It's 6800 assembly and stern's own byte code language. See:
https://pinside.com/pinball/forum/topic/stern-galaxy-code-disassembly

#395 3 years ago

If the spinner counter as you went up the left lane never comes off the ball in play display, yes, that is a bug/might be a bug. It's not that the routine isn't running for the walker switch, it's that it's running and waiting for the spinner counter to come off the display.... which it doesn't because the spinner counter routine somehow gets lost and never runs the routine to clear it.

If the spinner counter goes back to the ball in play, that means that the walker switch command has been missed. I am now of the belief based on some photos several people have sent me that the walker entry is NOT supposed to be held down by the top ball, but is instead supposed to be held down only if a ball is already in position one, so that the walker routine will run TWICE instead of once (this is in the stock code as well). This is also why Stern specced out a switch cap on that switch, so it wouldn't be missed. (The switch caps on the kickbigs are in error, I believe because those switches have to have the ball holding them down, or it would break the wireform on launch).

The error doesn't occur in stock roms this way because the stock rom specifically KILLS the spinner scoring while the walker routine is waiting/walking. This is patently unfair on a good rip.

So, let me know which direction your bug is waving and I'll look at a maintenance fix for it.

I was looking over the source this morning to see if I can get it into release shape - there are a ton of "optional" (not really!) directives I want to collapse first, and some more comments for the rest of them. For instance, all of the gamatron "Fixes" are hopelessly outdated right now and will definitely not work. I've been taking a sort of long break from coding for a bit as I didn't do anything for several months other than this and other code (I often have 5-6 projects going at once) - taking a long needed break to regroup and come at several projects fresh.

I still need to scan the paperwork in the game and update it as well. I did most of the manual re-typesetting already, and was moving onto a new re-draw of the schematics to correct several errors in my previous effect here (and putting data signals in colors, address bus etc.) - that's where I'm stopped.

#397 3 years ago

I think the pic was in the flight 2000 owner thread or in this thread. Nothing in the software is set to wait for the switch to release nor 'see' the spinner previously (the walker switch does have a timeout on it, which is keyed to the spinner timer IF it is spinning - if it is not, it just drops through after the timeout period, which is purposely set at about 2 seconds IIRC).

I would see if you can get the wireform adjusted to not be pressed at the entry - sometimes playfields like to wear by the first 'finger' of the walker mech and that interferes with the walking and the activation. Before I replaced my PF about 12 years ago with the CPR I had that issue, a divot there that sometimes would hold the ball up. I fixed it by adding a small nail to hold the ball to the other side so it could drop.

I'll be able to check on my machine tomorrow morning to see if I can duplicate the no-walk behavior by holding the switch down - I don't think that should really matter to the routines (although a background routine could affect it, but make it slower). It works in multiball holding it down when you get 2 balls up there at the same time.

The background routines in some stern games reset certain switches periodically to catch events that may have been missed (drop targets, mainly) - but they are finicky - the ones on 9 ball cause lots of issues for instance. F2k's only reset the drops, the walker entry, and the maze kickbigs. Oh, and the trough switches. So a lot!

#399 3 years ago

The ball is not holding the switch in the second pic although it looks like it might be (I went into switch test to verify)
Same behavior as you have if you hold the switch down, nothing until it's released. I should probably try that with stock software too to see what it does.

I think they went with the 1/2 wireform so that the finger wouldn't have a risk of hitting the ball back UP.

20200918_091101 (resized).jpg20200918_091101 (resized).jpg20200918_091216 (resized).jpg20200918_091216 (resized).jpg
#401 3 years ago
Quoted from Stretch7:

Game play has been working fine for me so far but haven't had a ton of games on it yet. One thing i do notice though, if the game is left on it will randomly start repeating the walker non stop... i will have to physically turn it off and on to stop and then it will just do it again. There doesn't seem to be a perfect timing for this to happen ....it can be after half hour, 45, hour etc. Weather my game did this with the old code I'm not to sure. Is this maybe an attract mode but only supposed to do it a few times?

That's strange but that gives me something to do on the weekend I'll leave the game on and see if I get anything like that. So when you turn it back on it keeps doing the walking, or you let it sit some more and it does it again?

#403 3 years ago

Did you have the attract mode speech on? I am testing now just tossed 2 balls in the walker in a game then let it drain down to game over - that way if it does it the balls will be somewhere else so I can tell.

#405 3 years ago

Yes, it's done pending results of the bugs reported so far. Links are back in the thread.

I think most of the later stern games actually have pretty good coding and don't really need too much changed.

Wild Fyre uses the same code as Dracula, zacaj was doing mods on that you might want to look for his threads on that (it might have just been on his website which it think was zacaj.com) - they should carry over to WF as well. I have the wild fyre recreated source code somewhere I think if you want a stab at it.

#407 3 years ago

I ran it for about 8 hours today put 2 balls in game in lock, let drain to game over (so I could tell if the balls moved) - no reboot or walk, and I have the attract mode speech turned on. I'm looking at the attract mode speech routine, if you had it on, try it with it off, or vice versa.

That doesn't necessarily mean that it's not some kind of software issue with the new software - what actually happens when it wigs out? Does it reboot, or does it just start walking the walker and lock it on or does it actually 'walk'? Does the rest of the attract mode (lamps, scores cycling still work) or does it freeze compeltely?

Normally with this type of issue I'd be looking at the stack hitting something in lower memory - the first $10 bytes of the 5101's are used for various things (stock, as well, although it does go a tad higher with the new software - which if the stack got low enough, would definitely cause issues if it happened to hit at the correct moment). At one point I did have a routine that ran at bootup that told me how low the stack got in heavy gameplay testing, and there was a $20 byte margin all of time (unlike Dragonfist, which dips REALLY low down, due to incorrect usage of certain commands by the programmer).

The other thing I'm thinking of would be if the display interrupt on your mpu200 happens to be a little slower than normal, or if you happen to have the clock speed set to bally instead of stern (doubtful, you would have noticed many more issues in the past) - stern and bally software in general do not recover nicely from a duplicate display interrupt, it usually crashes the machine, although your case is pretty specific if it's walking the walker.

Have you ever replaced the switch cap that's on the walker entry that makes it more sensitive to hits?

Did you try the normal software?

Anyone else that's running the v47 happen to try a long interval?

#410 3 years ago

Make sure your kickbig switches do not have switch caps on them. Check your launch next rocket switch that's between the kickbigs - that's the trigger for the walker to start again.

The ball ended because the lack of physical switches in the locks means that it's a virtual switch - and when multiball starts, it clears the register because the balls are all supposed to come out - anything where you remove a ball when the game thinks it's there is going to mess up a lot of things, although I think there was some error correction on the trough (i.e. 3 in trough means there can't be any in the lock).

#412 3 years ago

It's from F-14 they call the yagov kicker a kickbig.

Probably not 100% accurate to apply it to an older game. At least it's not the other 'new' thing where people are calling saucers 'scoops'. That's just.... wrong.

#415 3 years ago

Can you post a video?

#417 3 years ago

The original code blinks shoot again on ball locks as well but thanks for giving me kudos for that! (I probably would not have added that.... the game actually 'cheats' IIRC to get the shoot again blinking, it's linked into the normal shoot again blinking when you don't get a score and drain, which is not possible in f2k. Try getting a ball locked, and instead of shooting the ball, tilt it - see if you get that ball back. If I get a chance tomorrow I'll try that as well)

The crux of why that switch became important is because of the choreography of how I re-wrote the entire lock mech code - I had to do this because the original code had lots of redundancies, and a primitive form of error correction in it - needed the space. Original routine was almost 500 bytes, to add the other features in and fit the mpu200 rom footprint I had to cut something.

The older version 33 was still using the old original code. It also looks at that release next rocket switch, but also has something in there to proceed if it doesn't see it when it should. I could probably add that in a maintenance release, because the right kickbig should also trigger that flag..... there's still 16 bytes in the high rom to play with.

Glad you're enjoying the changes, however briefly. I hope when shows start back up that someone drags a modified one to the show and people are like What the heck??? Since when does f2k play this way???

Oh, and can you do me a favor since the other bug reported I was unable to duplicate - lock 2 balls and end the game and leave the machine on for 6-7 hours for a burn in and make sure it doesn't freeze up/reboot. You can tell if it rebooted because the balls will no longer be in the lock.

Did you add the knocker too?

One of my favorite features I'm back coding to other stern games (and probably bally, too) is to hold the slam switch in adjustments to go backwards instead of forwards when setting replay levels. I *always* overshoot by 10k, and have to restart.

#421 3 years ago

Oh, I've had a lot of 'going too fars' that ruined gameplay in some cases on other games. As for able to reverse engineer code, this is about all I'm good for. Modern programming languages mostly just annoy me, and I don't really "know" any of them.

For instance, 10 years ago I would have made the bonus exponential, going up to 55k like some games do. (quicksilver) - that would have ruined it, especially at 15x.

I'm a sucker for the 2x/3x style multiplied scoring (black knight is one of my favorite games) so it's no surprise it's made it here as well into my custom system 7 firepower.... there were a couple one-offs in the past where I added that as well.

I didn't think I'd like the spinner counters as much as I do, thank cottonm4 for that suggestion. I liked them well enough on Dragonfist but didn't think it was that big of a deal on other games (although I did add a score counter on firepower for the spinner when lit, but never really equated that to just a raw counter.)

Hopefully the bug regarding the reboot/freeze up from Stretch7 is a one-off vs. something systemic but we will see.

#424 3 years ago
Quoted from ArcadeRaid:

I've been following this thread with delight. So many great changes. I am completely new to burning roms. Is there a recommended overview somewhere on how to do it. I would need to know what burner to buy and what chips. Never done that before.

If you have an original mpu200 in your game jumpered for 4 chips 2716's, if you want to get a burner you can get the minipro 866 or even a minipro II, really cheap, and 2816 eeproms. You'd need 6 of those, 4 for the mpu and 2 for the speech. The II is a newer version of the 866 which is not as versatile, but will still be able to do the 2816's. Actual 2716's would not be able to be burned by either of these models though so you can't just erase what you have in there and reuse.

Sometimes you can get the chips and burner for less than $50. Ebay is a good source for these, amazon works too but tends to be more expensive for the same thing. Look for a USA shipper to get quicker, stuff from overseas is taking a very long time to arrive now.

#426 3 years ago
Quoted from goingincirclez:

That said, the MiniPro *can* burn authentic 2716 chips. I know this because my Stern MPU-200 had OEM stickered 1980 2716's installed... which I erased (with a UV eraser) and re-used in the speech board. The MPU-200 can be jumpered to use 2x 2732 chips instead of 4x 2716. I recommend this as 2732's are easier to find. Be warned, avoid TI (Texas Instruments) 2732A's as these seem to be very prone to faults and don't like being re-burned reliably, whereas the ST 2732's I had burned, and re-burned, and re-burned without grief.

What definition did you use with the 2716's? Most 2716's I've seen need 25v to program which no version of the minipro can supply, tops out at 21v.

To avoid the issues with requiring erasers that's why I recommended the 2816's they are an eeprom version of the 2716.

Quoted from goingincirclez:

To Slochar's warning though, the MiniPro will NOT reliably "erase" or over-write existing ROMs with different bits, so if you make a mistake, have a problem, or want to salvage & re-use some OEM roms, you'll need a UV eraser.

No burner will. You can overwrite set bits with clears but the only way to set it back is the UV eraser. That's not the intended use of eproms though, they always need erasing via the window and UV light. EEproms on the other hand, can be erased and have to be, the minipro automatically erases them. If you are using the EEprom variety (so far only the 2816 and the 27512 varieties are known to work on this era board - the 256 one might, and apparently other sizes just aren't available) you would only burn it once, since erasing it and reburning isn't going to change anything.

Regular UV erased eproms you can double/triple burn, and some stubborn older ones you have to do this. Any UV eproms I just always burn twice, remove from the zif socket on the burner, clear the buffer, wait ten seconds or so, put the chip back in, then read it in, save, and verify it. Nothing is a worse head scratcher than putting a newly burned eprom in a game and it not working, which in my case leads me to think I made a mistake on writing the software.

Quoted from goingincirclez:

2532's are hard to find and I had none on hand.

This is a myth At this point in time, all vintage eproms are harder to find, but 2532's have been "hard to find" for over 20 years now, according to people in the pinball/arcade communities - but lots of them are out there. None of these older eproms have been made for decades. The myth likely started because Texas Instruments went ahead and screwed up their numbering for a variant on the 2716 - the 2516. The TI labeled 2716 are all goofed up, triple voltages needed to burn or something or a pin in a different place (I forget what....) - but they did go back to the correct numbering scheme on later chips (including the 2732A, which does work... unless you get a bunch of counterfeit ones!). Their reputation was probably mud by then though which is why the 2532 gets a bad rap.

I believed the myth too, and did a lot of hacking and conversion to get 2732's into everything. Then I just built the Bob Robert's adapter and burn them just fine so I don't have to change a lot of jumpers. True, the minipro will not do a 2532 out of the box (there's no reason it can't, a definition file just needs to be added by the maker, all of the pins on the minipro are programmable by the software) - other burners like the QX4 will.

The easiest solution by far if you have stock mpu200 and stock vsu100 is to just use 2816's. No jumper changes, no eraser needed. Chips were a buck or so each. I did have a couple dud ones so I ordered extra (and obviously, I go through a lot of burns anyway so I have to have extras....)

Everyone should be aware that there are LOTS of counterfeit and remarked chips out there on the used market. I always buy from people that will certify that the chips are genuine pulls. Last large buy I bought was 256 eproms from a music warehouse that had pulled them from old synthesizers. Yeah, I had to strip labels and scrape off 200 chip pulls, but they were in great shape (no bent pins). Then I erased them in batches of 40 on my eraser, and I'm good to go for a long time on that size chip.

The reason I'm listing that the 2732 is not recommended for the vsu100 is that the board factory stock is set up for either 2x2716's, or 1x2532 - no trace cuts and jumpers needed. It is strange because normally you can pop a doubled up 2732 into a 2716 socket and it will work, but I believe I tried this and it just didn't. Since I can do either the 2716 equivalent in the 2816 now or 2532's, I just did that rather than hack up my vsu100 trying to get that combo to work.

#429 3 years ago

Once I got those 2816's I'm all about not re-jumpering. I'm actually relatively lazy.... so never went beyond the first test of the expanded vocab chip, where it most certainly did not work as doubled up 2732's. If I still have ZIFs on the sound board I might try in the future once any maintenance releases come out if needed.

Here's a 2532 modern replacement project someone came up with:
https://8bitshardway.blogspot.com/2020/04/building-2532-replacement-4k-rom.html

The board should be able to be modified to support 2732's, for people that want a nice eeprom version of either 2532's or 2732's.

#431 3 years ago

As long as it's an eeprom in 24 pin dip package it should work. I got atmel ones through Amazon.

#436 3 years ago
Quoted from Zzap:

I’ll continue to record and document as I make any adjustments so others learn about any tweaks required and and potentially spot any other bugs in the videos.

You definitely have something going on with the sound roms, there's even more in there you didn't note, you're getting static for some of it when you shouldn't. Almost as if BOTH eproms are feeding data at the same time to the speech processor. I was not able to double up the 2732 and get it work but as I said previously, I didn't put too much testing into that after I got the 2816's. It stands to reason for me though that since the stock speech board is set up to handle 2x2716s, OR a single 2532 (which normally has different pinout, so it's surprising that this setup works, but that's what they designed it for). I think the autoswitching 2716 selection is messing up having 2x2732s in there.

Do you have a good cap on the walker entry switch? Is the gold plating still on the switch?

It's very possible that the stock software can react to a stuck switch on the walker, neither it nor I are checking for the ball necessarily coming OFF the switch before processing the rest of the routine (you can't do that because in multiball if you shoot one ball up there, it's waiting for the spinner to finish, and if you get another ball up there during this, the 2 balls would always just sit there and do nothing, since it can't clear the switch in that situation.)

The previous discussion on the non-reactance of the walker switch was caused by an additional flag I'd added to the spinner routine, to try and ensure that the spinner truly was done before moving the walker (since you lose score if you're walking with the stock transistor). That I will likely eliminate, since that case was the machine not processing the spinner timeout correctly. That's on the maintenance fix list already for that edge case)

#443 3 years ago

The delay in processing the walker is intentional to allow the spinner to stop so you don't get screwed out of whatever score you would have (which can be substantial after multiball).

The way the new code is set up is there is both a flag and a timer set when the spinner is going (showing the spins on the match display, as well). Walker switch activates, this starts the walker routine, the first part of which checks both the spinner timer and the spinner flag, and sets another timer to re-enter the walker routine. (There are 16 time delayed virtual switches on stern mpu200 games).

When your walker doesn't activate on the new code, does the spinner count remain on the display? That means that the spinner routine timeout (another time delayed virtual switch) is not timing out. The addition of the flag was a late addition that probably shouldn't have been. There's no harm in running the spinner timeout code even when the spinner hadn't been going so I will probably remove the flag, or repurpose it to goose the timers involved.

When you held down the walker switch and had the spinner going it should not have started to process anything moving the walker or locking balls until that spinner timer expired (visualized by the ball in play reappearing on that display). If it hit the walker switch first before reacting to the spinner (on a very fast shot) it would process the walker while the spinner was still going - this did happen on my game because sometimes the ball just rockets into that area and the spinner is going too fast to react.

So to sum up.... what does the spinner count do when you go into the walker lane that will tell where the issue may lie. Stays on display=likely a software issue regarding the timeout which I plan on making more robust or at least retriggering it. Leaves display, no walk=either a software issue where the walker thinks it's already completed the routine or more likely, another timeout issue. I can probably reuse the redundant spinner flag to use for the walker re-trigger instead, as a double check that the time delayed switches do run.

There's nothing in the code stock or modified that prevents switches from running so that would point to a head scratcher in that they should ALWAYS run. I already know the game doesn't come anywhere near to running out of stack space (everyone would have reported that, even on the Weebly board, because the game uses the lowest 10 bytes there for sound) - also I had some developmental diagnostic code that told me how low the stack dipped on the previous boot. It never went below $230.

#447 3 years ago

Do you have it adjusted so the switch isn't down when the ball is sitting in the top of the walker?

You're getting second ball locked because you are activating the switch again. The walker code is 'in progress' - the switch basically sets a timer which eventually processes the switch. There are 3 switch events connected with the walker, one is the physical switch, another is the entry point of the walker, and the third is the progression point of the walker. The progression point can be re-entered multiple times as its waiting for the spinner counter to finish.

I forget if you've tried to just toss a ball in there without activating the spinner - what does it do there. Also, when it gets stuck again, activate the spinner for a couple spins and see if it 'wakes up' after the spinners stop.

The no-spinner timeout is definitely an issue, too, because that should never happen. The game should not be missing timed switch hits - like I said in a previous message either here or in the meteor or big game thread, it shouldn't clear pending switch events in the timed column until they're actually activated, but it is. Since it's happening on all 3 games as well as sometimes on stock roms, I'll have to look at the switch code to see what's changing parameters it shouldn't.

#449 3 years ago

Do I see a playfield protector on there? That's possibly going to interfere with getting the switch to come back up, it looks like the top of the switch just can't come up over it. Can the slot be cut slightly bigger to allow the switch to come up? This is pretty much the crux of the issue - regardless of the original software's behavior. Going back to the original activation removes having the spinner work as the modified software's intention, which is to award the spinner as long as its' spinning, instead of robbing you of any score that would have happened while it's walking.

#453 3 years ago

It's been about 3 months since the release and there was several weeks of testing before that so minutiae about how the walker walks is not top of my mind all the time, but luckily it's one of the things that I documented really well in the code.

First off, when I say detected vs. not detected, there's a backend routine that handles looking at closed switches and adding them to a queue. This is the same in stern stock code as well as the modified code for the way that *any* switch is detected. There is NO code on a bally/stern game that waits for a switch to open before reacting - it's just not the way the backend is coded on these games. The switch gets added to a list of closed switches (by column) for eventual processing on the front end (which I call a main loop).

Now, a permanently closed switch being held down should activate ONCE (when it initially closes and stays closed) - but if it stays closed, it will not activate again until it is open again. The detection pattern is open, closed, closed, closed, add to switch queue for that column. The columns are processed in order 0-4 - the spinners are on column 0 and the walker is in column 4. The timed switches which are tripped virtually are columns 5-7, so they run AFTER all the other switches process. The startup code in the game (original and modified) has code to artificially set all switches to closed, that way they will NOT be processed at all until they are clear - which they will all do if they are in fact, not closed.

The above is just background material as to how the switches are detected. The below would refer specifically to what happens to those detected switches in the foreground of the program.

I just doubled checked how the reaction to closed switches is operating, and it truly is one switch at a time per run through the main loop. Spinners almost always seem to be on column 0 probably for the reason that they need to be serviced quickly. None of this should change a valid switch hit in other columns, unless the background routines that reset certain switches have reset one of the switches in question. The stock software as well as the new software resets the ball kickbigs, all drop targets, the walker, the outhole, and the trough switches (I thought I'd removed the walker from this, but I didn't).

I think that Stern used the half switch wireform on the walker entry for a reason, I think it's mainly there so that the ball passes over it, it pops back up, and helps to prevent a ball from going backwards in the walker, which it can do (if it pulses too short). It can be argued, perhaps successfully, that anything modified code does that original code does not would indeed be a bug in the modified code, since obviously it worked one way with the original code and another way with modified code.

I think what's happening in the modified code with a held down walker entry switch is that it's getting cleared, but the first thing the walker routine does is set up a re-entrant pause, which also includes goosing the timer for the spinner (which is why it doesn't come off the display). Since the switch is still closed, but has been reset, it just resets the timer again. This seems like it will repeat if the switch is held down.

Someone previous did have this issue as well, but it went away once he adjusted the entry switch to come up after activation. I had put up a changed version at https://sites.google.com/site/allentownpinball/galaxy-asm/F2K-test.zip?attredirects=0&d=1 so you can try that to see if it makes the issue better, I have not tested this version in my machine at all, it merely changes the walker behavior to only react ONCE to the spinner vs. waiting for sure that it's over, by skipping the test for it the second time through. (It's technically a differing entry point).

There has to be a quick reaction time to the walker routine initial run because otherwise 2 balls shot up into the walker during multiball in quick succession will not be detected as 2 separate balls and one would get stuck in the walker because the game just wouldn't realize it was there.

Try out the test version and see if you get different results. I think only U1 is changed because the change was an ifclearbranch vs. branch (same length instruction) - but you can double check the files u2, u5, and u6 against your existing eproms to verify that.

I don't think I can modify the software successfully and keep the changes with the spinner not timing out nor the multiball situation to be able to handle all situations that can occur with the ball walker held down, and that was the main crux of why I even started doing this project in the first place. The entry switch has to come up for the fast reaction to catch the possible added balls in multiball. Were there more switches up there or in the walker none of this software tracking of the virtual balls would be needed.

The stock code works because it doesn't care about 2 switches in a row during multiball for instance, because it's only walking each down once (and ending the multiball). The modified code has to have a counter to walk the balls down the correct # of times. Ditto during the regular game play, if you're in single ball it just walks it down one (causing the loss of spinner points....)

It's unfortunately that the loss of points can also be solved a different way, which I did with the option to change the walker to a continuous solenoid path instead of the momentary. Still doesn't help the switch entry being down, though.

I suppose another way to fix it that can be tried would be to NOT re-trigger the switch entry, but that might break multiball multiple balls.

LMK how the test version fares.

#454 3 years ago

After having slept on this, further information would be that the activated switches aren't really a queue, it's more of a set of registers with set bits for pending switch events, that get processed columns 0-7, rows 7-0, in that order. If you had a switch in column 0 row 7 continuously activating, it would get processed at the expense of all other switches. They would still be flagged to be processed, however, if another switches activates AGAIN before the first one processed, it would only activate once instead of the twice that it probably should have.

In practice a switch could not be physically activated quickly enough to dominate the switch processing, at least not in any real world scenario.

In the unfortunate trade off between rom space and additional coding able to be added in, the reasonable compromise arrived at is to have the switch on the walker entry close then open. Could it be fixed in software to react properly based on the closed switch remaining closed? Of course. There's no room to fit the (much more involved) code in the stock rom footprint though. This is likely why the original flight 2000 code involving the walker weighs in at 566 bytes.

#456 3 years ago
Quoted from Zzap:

Based on your described scenarios, if two balls went into the walker one right behind the other, wouldn't the switch be pressed down by ball 1, then be held down by ball 2? Is the switch really short enough to pop up between two balls that are right next to each other?

No, it doesn't pop up between the balls. In multiball the walker routine follows a different path since it's not locking the balls, it's just doing the 2x/3x pf multiplier and walking the ball out. It still waits for the spinner to stop, then it starts the 2x/3x routine and walks the ball out (itself a separate process).

Unless your walker switch is completely closed and having the ball sit on it opens it, so that when the switch leaves it it goes closed, I'm not really sure why the switch has to be open again. I'm not checking the switch in the routines (there would be no point in doing that, since the routine starts when the switch is activated).

1 week later
#458 3 years ago
Quoted from Zzap:

One thing I did notice that I don't think is intentional, when you complete the locks, then complete "BLAST OFF", you don't get that announcement "All Systems Go, Commence Countdown", even though it does progress to the counting down mode with the drop targets. When you complete "BLAST OFF" first, then the locks, it behaves the same as the stock code announcing the start of countdown mode.

Is this consistent because it doesn't do it here. That's one of the routines that didn't really change between stock and here, just a couple of flags checked. It will skip it if you save progress between multiballs (set to really easy).

The routine actually waits until the speech flag is clear to speak for specifically this reason you noted, if you complete blast off later when the locks are already qualified.

#460 3 years ago

Yes

2 months later
#463 3 years ago

6/30/2020 3347M is the most recent version. I see I left the date incorrectly in the readme though as 6/3, but the datestamps are correct at 6/30.

https://sites.google.com/site/allentownpinball/galaxy-asm/f2k-release-3347M.zip?attredirects=0&d=1

DIP 14 needs to be on if you leave the walker where it is, stock. The coin lockout does not operate as a coil lockout any longer, it's the knocker signal. Nothing untoward happens in this situation if you do not actually install a knocker.... the coin lockout coil will just pulse instead. Walker response suffers in this situation, especially during multiball.

If you swap the coin lockout and walkers, you will get the benefit of the quicker response walker, but dip 14 has to be off, without a knocker installed, it will just pulse the coin lockout coil instead. The risk comes if you have dip 14 set incorrectly for the walker it might burn out the driver transistor, although the pulse to the walker is the same length pulse completely bone dead stock vs. mods. The risk is if you install a knocker, which is usually a stronger coil, and it locks on, that much more current is going through it. The walker coil is 15.6 ohms, and a 23-800 style knocker coil is 5 ohms.

If no knocker, and dip 14 incorrect, the most that should happen is that the game won't pulse the walker at startup, and if there are balls in it, it won't start up correctly (it will just say "standby, ball" until it sees all 3 balls in the outhole trough when you press the credit button)

I added fuses to both the walker and the knocker just so I didn't blow any transistors during testing. I think I did pretty good as I only blew one, and that was not because of the software but me shorting something instead.

#465 3 years ago

https://www.amazon.com/Ictouch-AT28C16-20PC-16KBIT-Corporation-PDIP-24/dp/B07PBDV9XF

although this is not the link I got them from but that is the part # to replace a 2716 with an eeprom version. I probably got them from either ebay or digikey though and misremembered getting it from amazon.... I got the eeprom 512 replacements there though.

You can also just burn it onto a single 2532 and put it in u9. Strange design the vsu100, to take either 2x2716 OR 1x2532 I'd have expected them to do 1x2732 since the 2716/2732 are more similar.

3 weeks later
#467 3 years ago

Wonder if they're counterfeit? Post a pic of a chip?

#469 3 years ago

Chip looks like mine, different numbers under the 2816. (different lot/date codes) If they all failed I'd suspect that they are counterfeit.

I've been relatively lucky ordering chips online I've only had one bum set of chips (256's from a chinese seller - they hemmed and hawed and refused to give money back, so I kept up emailing ebay about it until they just gave the $$ back.... I hadn't had to move up to paypal dispute but I was ready to, always backed with credit card instead of bank account so you can move up to credit card if needed.)

#472 3 years ago

2716's are eproms.
2816's are eeproms and are a replacement for UV erasable eproms (they are erased by the burner itself electrically)

2 weeks later
#475 3 years ago

Barring any glaring bugs it's done, no other changes planned.

#477 3 years ago

Since it's pretty much final, here's a link to the source code for the posted version for educational purposes.
https://sites.google.com/site/allentownpinball/galaxy-asm/FLIGHT2000-3347M-SOURCE.zip?attredirects=0&d=1

4 months later
#479 2 years ago
Quoted from dri:

One issue I'm seeing though is that the game does not say "commence countdown" at all times when all letters are qualified and balls locked, so far my theory is that the game will only say it if you start the game without any balls in the walker.

It's more likely to depend on what happened right before it's supposed to say it - in the case in the video snippet it's likely because the game was saying "OFF" and the timer for the speech has to be a certain length (probably even longer than it takes to say the word "OFF") - some of the areas like locking a ball will pause to say stage 2 go, all systems go commence countdown because the walker inherently has delays built in (that also specifically wait for the other speech to finish). The BLAST and OFF completed do not, so anything that would normally talk on completion may or may not depending on how quickly other things are hit. Once the speech call starts though, nothing can interrupt it - so if another speech call comes in while that's going, the speech board ignores it.

It would be nice if there were a long speech queue to work with but the game is rather Ram-starved in this aspect - Stern themselves (well, Bill Pfutzenfeuter anyway) used the bottom of the stack in all of his games IIRC, to store sound queues, and in F2k, also to store a virtual switch setup for the locks.

If you miss out on speech on the walker locks etc. that would be a bug to look into, but otherwise, the speech delays will have to stay the way they are - no room in ram or rom to add any other kind of setup for this. The original game sometimes misses this all systems go commence countdown speech call as well, in a similar situation.

1 month later
#481 2 years ago

You have to burn both the 2716's the index for the words is in U9, so it's different - additionally it's been reformatted from stock.

Or you can put the u9 combo rom into it, it's a 2532 so it's twice the size, the vsu100 is nice in that it supports this config without jumper changes.

#483 2 years ago

Normally you can't swap 2716 and 2532 but the speech board does it in some kind of clever way.

3 months later
#486 2 years ago

moved to http://tsqmadness.com/slochar/ thanks to google sites' "feature upgrade" to not allow directly linked files (easily.... it's pretty clear that I ain't no HTML wiz....)

1 month later
#488 2 years ago

Your roms are not booting they are either burned wrong or your board isn't jumpered correctly for the type of ROM you are using.

The screech from the speech board is normal until the game starts to boot then it turns it off. The stock games with speech cards do this as well.

#490 2 years ago
Quoted from ArcadeRaid:

The software said it wrote to the chips and it took 0.32 milliseconds to write.

That sounds way short but if it's eeproms might be accurate. Download the test ROM on pinwiki and put that on one of them see if that works. It's only u6.

#492 2 years ago

Yes pull u1 2 and 5 it shouldn't really matter if they're in but trying to remove extraneous factors.

#493 2 years ago

Just burned a test image onto a 2816 eeprom you can see that verifying it took 50 ms. Writing took 20,000+ ms, so if you got 32 ms, something's wrong.

pasted_image (resized).pngpasted_image (resized).png
#495 2 years ago

Do you get displays, are all three balls in the trough, did you update the voice roms as well?

#497 2 years ago

You sure you have the roms in the proper spots? Stern games' checksum is just a rolling sum and can't detect if a rom is out of order and that's assuming I assigned a checksum I don't recall if i did.

#499 2 years ago

You can ignore the spurious sounds and lights that's randomness because it's not running correctly. I'm not in a position right now to double check the file but will do so tomorrow. It sounds like it's corrupt. Did you get it from the old Google site or the tsqmadness one?

#501 2 years ago

verified that the files there are good. Are you sure you used all the ones with the .716 extension?

If you want to just verify the chips are good and you're burning correctly just burn the original roms as listed on ipdb and make sure they work in the machine as well. (That's pretty much what I was going for with the test chip burn since it was just one chip to burn and test)

4 months later
#503 1 year ago

Adapters to use 27512 eeproms instead of 2532 or 2732 chips:

2732:
http://www.ukvac.com/forum/2708-2716-2732-adapter-to-27512-eeprom_topic379758.html

The gerbers here uploaded fine to JLPCB (I had to enter the overall board size, 23mm x 45 mm). They failed at Oshpark. I don't do pcb design myself so I don't mess with these things - if I did I'd have probably modified the board to just be jumpered all the time for 2732. This board design also will replace 2716 and 2708, but I didn't test either of those. (You can get 2816 eeproms to replace 2716's if needed).

2532:
https://github.com/TheLittleEngineers/27C512E-TO-2532S-V1R1.20.APRIL.2019

The gerbers here uploaded fine to Oshpark as is so that's who I used. This one is nice in that you can select banks in the 512 chip, so if you have the pincoder test rom suite, it should work on this board.

I build several of both of these types of boards, for the 2532 I did some with the jumper headers and some just strapped to use the first 4k bank in the 512. Yes, wasteful of the chip, but as the eproms are getting older they are not programming correctly. You have to reprogram some of them many times to get a good burn. This is all fine if you are only just burning and replacing, but for my purposes I burn and erase 100s of times, and the UV ones just aren't cutting it anymore.

The eeprom version of the 512 I'm using is the winbond one, which I think is discontinued, but still available many places. I got 40 from an amazon seller a couple weeks ago and they are fine.

As things age and we just can't find stuff anymore or the stuff that's found is just too old to be reliable, adapter boards like this are going to be needed more and more.

The 2732 version is nice as well as it has a cutout on the pcb that actually allows it to be mounted on the lever type ZIF socket if needed, the cutout lets the lever engage/disengage properly. I just put the adapter boards on the cpu board sockets and put the 28 pin ZIF socket on the adapter when I'm developing the software. When I'm "done" (ha! rarely.... always tinkering) I can remove the (expensive) ZIF socket and just pop the final version into the adapter. Or use up a 2732/2532 and remove the adapter as well.

2 months later
#505 1 year ago
Quoted from DRDAVE:

Which board are these pins swapped? MPU or Solenoid driver?

Solenoid driver

3 months later
#507 1 year ago

Yes you have 2716x4. You also need either two 2716 or one 2532 for the speech card.
It will not work correctly if at all without upgrading the speech EPROM.

1 week later
#509 1 year ago

your video is private can't see.

At any rate, make sure your entry switch to the walker area comes UP when the ball goes up there. It will do as you described if it does not (stays closed). I never did figure out why that happens, because when you are in multiball and get 2 balls up there at the same time, it works as intended. (even though the switch is held shut).

I think there's some pics in this thread of how it's supposed to look with a ball up in it.

yep here:
https://pinside.com/pinball/forum/topic/opening-flight-2000-new-software-up-to-the-community/page/8#post-5858074

IIRC the switch can't be down on the new software because the spinner needs to finish its scoring. Dip 14 has no effect in this case. It's a trade off I made because the spinner ripoff fix is more important to me than fooling with the entry switch. Trust me when I say that the rom is full, it's full. Although there are currently more bytes free than the stock rom, it is only that.... bytes. I think 14 free? Not enough to change the switch behavior to any other way.

2 months later
#515 1 year ago

Yes, the ball walker entry switch must activate and then pop up and be open. I think that's the way it was from the factory as the 2 f2k's I've had both did this stock. The code is completely different between stock and the 47 version though, the original code was 566 bytes. About 400 bytes longer than it needed to be.

Oddly, during multiball, if you happen to get 2 balls up there at once, so the switch is closed, it works. I hadn't really thought about why but it has to be because the "in multiball" flag must be checked in that routine and branch off. The normal pre-multiball routine is to wait for the spinner to stop. (You'd think I'd know *exactly* what happens since I wrote the code, but it's been a couple years at this point so it's not top of mind right now. I've probably done 50 rom hacks since then....)

Did you do the walker momentary solenoid to continuous solenoid switch? If so make sure the dip is set correctly as well. If you didn't change any wiring dip 14 needs to be on.

1 week later
#518 1 year ago

The wall o shoes approves!

2 months later
#520 11 months ago

The Arduino works on stern however the software referenced in this thread is original style for the original board.

Someone would have to create the Arduino software... Should be possible to mod one of the other setups if you tackle it.

Promoted items from Pinside Marketplace and Pinside Shops!
Wanted
Machine - Wanted
Crown Point, IN
$ 12.00
Playfield - Toys/Add-ons
UpKick Pinball
 
$ 149.95
Boards
Allteksystems
 
From: $ 2.99
$ 125.00
$ 3.00
From: $ 14.00
Electronics
Third Coast Pinball
 
$ 20.00
Playfield - Protection
arcade-cabinets.com
 
From: $ 115.00
Playfield - Protection
Beehive Pinball Co.
 
From: $ 2.25
Playfield - Other
Bob's Pinball Stuff
 
From: £ 110.00
Great pinball charity
Pinball Edu

You're currently viewing posts by Pinsider slochar.
Click here to go back to viewing the entire thread.

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/opening-flight-2000-new-software-up-to-the-community?tu=slochar 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.