(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
There are 520 posts in this topic. You are on page 4 of 11.
#151 4 years ago
Quoted from slochar:

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.

Just ordered the minipro and some eeproms. Shipping on the eeproms is 4 weeks.

#152 4 years ago

Is the size of the EPROM different depending on what board you’re using? Weebly vs stock for example?
I believe I need a 27256 for a Weebly board. Can anyone confirm this?

#153 4 years ago
Quoted from chubtoad13:

Is the size of the EPROM different depending on what board you’re using? Weebly vs stock for example?
I believe I need a 27256 for a Weebly board. Can anyone confirm this?

Stock will be different from weebly. Even different weebly I think may take different sizes, and they can also be jumpered for other sizes too. I think there's a 2764 socket on mine along with the main one

#154 4 years ago
Quoted from chubtoad13:

I believe I need a 27256 for a Weebly board. Can anyone confirm this?

If your Weebly board has the 28 pin EPROM socket, you need a 27C512 (or EEPROM variant which is more convenient for erasing).
Behavior of a 27256 in that socket may be unpredictable because of the functionality of pin 1. The socket has an address line at pin 1 while a 27256 expects it to be tied high.

#155 4 years ago
Quoted from slochar:

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.

That is so cool!!

#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.

#159 4 years ago

I have a really noobish unrelated question. I have a weebly board with a meteor PROM in it that has been burned by someone else. How do you know if these PROMs are erasable?

#160 4 years ago
Quoted from dri:

I have a really noobish unrelated question. I have a weebly board with a meteor PROM in it that has been burned by someone else. How do you know if these are PROMs are erasable?

You'd have to be able to see the part number of the chip.

#161 4 years ago
Quoted from zacaj:

You'd have to be able to see the part number of the chip.

This is what I have: https://www.digchip.com/datasheets/parts/datasheet/161/NMC27C64Q.php So I just expose UV light into the window of the chip to re-program it?

Edit: I got a UV eraser off AMZN.

#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.

#163 4 years ago
Quoted from chubtoad13:

Is the size of the EPROM different depending on what board you’re using? Weebly vs stock for example?
I believe I need a 27256 for a Weebly board. Can anyone confirm this?

Depends on the date/version of your board. The design evolved over a few years. For all boards besides some really early ones without a 28 pin EPROM socket a W27C512 can be used. If you have an older board with a 28pin socket labeled U2 that says 2764 combine order would be U1+U2+U5+U6 so...

copy /b U1+U2+U5+U6 U2.764 (this makes a 2764 sized image)
copy /b U2.764+U2.764+U2.764+U2.764 U2.512 (this turns the 2764 sized image a 27C512 sized image)

If you have a universal board with a 42pin combo ROM and the only 28pin ROM socket is at U1 then you will be using the expanded ROM socket U1 with a different combine order. For this expanded ROM spot we have to fill in blank spots in certain areas so you need a 16K sized blank file to pad empty spots. Easy way to create a blank 16K size file is to set you ROM burner to read a 2716 file. With the EPROM burner socket empty do a read function, verify the read came back all FF and then save that file as 'FF' to be your padding.

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).

When using U1 on the universal MPU remove the jumper shunt above the combo ROM labeled 'U2 ENABLE'. That shuts down the combo ROM so U1 can be used without removing the combo ROM chip.

Once release versions are ready I will start including them into the combo ROM of the universal MPUs.

If you need help figuring out what ROM to use post a picture of your MPU or email me.

#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.

#166 4 years ago
Quoted from slochar:

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.

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?

#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)

#172 4 years ago

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

#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

#177 4 years ago
Quoted from slochar:

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).

Freefall has vertical switches.
A8281040-DAE9-4E37-8F28-B7F5F92571D1 (resized).jpegA8281040-DAE9-4E37-8F28-B7F5F92571D1 (resized).jpeg

#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.

#181 4 years ago
Quoted from slochar:

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.

I am going to start including this software into the universal ROM used on the nvram.weebly.com mpu

thanks!

#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.

#183 4 years ago

Hey you are a great modder thanks!

#184 4 years ago

Woah I just found this, awesome as hell!!! This works on OEM hardware? I can burn and play?

#185 4 years ago

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

#186 4 years ago

sweet, I will get the code in and test it out - so awesome I am excited.

#187 4 years ago

I finally got my chips and minipro. I got the .512 image in U1 on a Weebly 2017 board and I lost speech. I've now realized I don't have S5 on my Weebly board and I have an empty U2. This board used to be in a Meteor.

xWNisdwwRbuRs1OX7BkNmA (resized).jpgxWNisdwwRbuRs1OX7BkNmA (resized).jpg
#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.

#190 4 years ago
Quoted from slochar:

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.

So if I rip spinner I got two in the walker now. Then I have a ball come back to flipper to continue the 2x?

#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.

#192 4 years ago
Quoted from slochar:

It's a pretty short period which is why I'm going to play with the timing on it.

Seems like it should be at least 4-5 seconds? Can you slow down the walker slightly during MB if that's not enough?

#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.

#194 4 years ago
Quoted from dri:

I finally got my chips and minipro. I got the .512 image in U1 on a Weebly 2017 board and I lost speech. I've now realized I don't have S5 on my Weebly board and I have an empty U2. This board used to be in a Meteor.[quoted image]

Around revision 7 and earlier had a mistake that effects the stern talking games. On the MPU-200 there was a signal labeled 'LAMP INTERRUPT' I did not route to MPU J4 because I assume it was not used as the lamp board had no way to use that connection. I figured it was an idea for something that never got implemented.

Turns out that was a mistake to not route that trace and a better label of that signal would be 'Speech Busy'. Lamp interrupt goes to the speech processor BUSY pin. Without this trace on the MPU there will be no speech. To correct this issue a wire jumper from MPU J4 Pin 11 to U11 Pin 18. I will fix and send back anyone's MPU for no charge if not comfortable running a jumper wire.

All MPUs from 2018 and newer should have this speech trace routed. If you are unsure check by MPU J4 and see if there is printing that says 'LAMP-INT'. If it says that the MPU will work for Stern speech games. Effects F2K, lightning, catacomb, and any other stern games that are talkers.

Untitled (resized).pngUntitled (resized).png
20200408_125028 (resized).jpg20200408_125028 (resized).jpg
20200408_125107 (resized).jpg20200408_125107 (resized).jpg

#195 4 years ago
Quoted from barakandl:

I will fix and send back anyone's MPU for no charge if not comfortable running a jumper wire.

Thank you for the offer and elaborate explanation! I think I'll manage to fix this myself. I'll let you know how it goes.

#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.

#198 4 years ago

As someone who has also written on worked on a lot of 6800 based code I can appreciate all the effort you are putting into this. It is just awesome! I just fixed a few issues on my F2K and Meteor so they are both setup and running well now. The Meteor has an Alltek in it but I was able to get and repair an MPU-200 for it and plan on going back to the original.

Quick question about the F2K update code. Does it change the way it stores data in the 5101 chips or is the layout of the data the same? Just wondering if that needs to be cleared or rest when swapping ROM's.

#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

Promoted items from Pinside Marketplace and Pinside Shops!
From: $ 170.00
$ 20.00
Playfield - Protection
arcade-cabinets.com
 
$ 12.00
Playfield - Toys/Add-ons
UpKick Pinball
 
$ 3.00
Cabinet Parts
20eyes
 
$ 69.00
$ 125.00
Wanted
Machine - Wanted
Crown Point, IN
From: $ 14.00
Electronics
Third Coast Pinball
 
From: $ 115.00
Playfield - Protection
Beehive Pinball Co.
 
Wanted
Machine - Wanted
Melbourne Beach, FL
From: £ 110.00
From: $ 1.25
Playfield - Other
Rocket City Pinball
 
Hey modders!
Your shop name here
There are 520 posts in this topic. You are on page 4 of 11.

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/page/4 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.