Jump to content



Photo
* * * * * 5 votes

Indianapolis 500 8-step GI FS Lighting and BMPR Physics MOD

Indianapolis 500 BMPR Physics GI8 Lighting

  • Please log in to reply
28 replies to this topic

#21 jimmyfingers

jimmyfingers

    Pinball Fan

  • VIP
  • 832 posts

  • Flag: Canada

  • Favorite Pinball: Comet



Posted 26 September 2012 - 07:45 PM

The only reason I ask about AA friendly tables is the fact most of my tables display ugly black lines on certain textures with AA enabled. If there was a work around that you could implement on other tables to make the black lines disappear I'm all for it ! Thanks for the info !


What makes this table "more" AA friendly was how I drew the GI zones. GI zones, whether using either wall objects or light objects, are victims of the black lines from forced AA settings. So, it's not a "fix" for the table but a technique on one of the more annoying areas - the playfield - to effectively hide the black lines along GI objects / zones. What was done mainly to achieve this was drawing the borders for the Bottom, Top left, and top right along naturally occurring darker or divided areas of the playfield art as well as drawing through lamp objects, as lamp objects will have their on images over top and not show any playfield images underneath. Lastly, all control points were set without the smooth attribute and precisely matched with the bordering zone's that it connected with (i.e. in I500 the top left / top right areas down the middle share identical coordinated control points down to whatever level of decimal place).

It was a bit more tedious but I think worth the extra couple hours to draw in this manner as you virtually can see no ill-effect on I500 on the playfield with AA enabled, besides once I drew a zone I could copy it repeatedly for all the other GI levels of that zone so you only have to do this tedious element once per region. I used the "display image" in the editor while working on these sections to see what was underneath on the PF and pick the best areas while also having to consider how the light fanned out from their respective sources. When cloning the zones on top of each other I had to be careful when copying for the other layers in the GI sequence that they were perfectly stacked on each other as I've seen some other tables where the different GI levels for the same zone had slightly different borders. Lastly, if perfectly straight sections can be used (vertical or horizontal) it seemed to completely hide the black lines in these cases as I guess really that the "jaggies" are more of an issue for diagonal aspects and hence what AA is dealing with more and why the black lines were no prevalent in perfectly straight sections that lines up with other perfectly straight sections. However, I could not use any perfectly straight sections on the I500 table so that wasn't a benefit - other tables it would be something to keep in mind.

As you can probably see from the above, I'm pretty maticulous about the detail and what can be achieved in my MOD tables and allways try and get the best especially if I'm going to be able to share it with many other people (if I spend the time at least everyone else can benefit). Although, on some of my personal mods I go to some pretty extreme detail as well, oh well, here's to being single forever ;)

The B.M.P.R. term fit well with my intended description and what was taking place but I'm sure some of you can tell quite easily that it was also a little bit of a play on words (or "letters" I suppose in this case) when considering it's a pinball based routine and could be pronounced "bumper". Why not add a little catchiness to something you develop, eh? A little marketing / memorable naming never hurts :)

Edited by jimmyfingers, 26 September 2012 - 07:46 PM.


#22 ArcadiusMaximus

ArcadiusMaximus

    Quit throwing trash into my dimension !

  • Members
  • PipPipPip
  • 310 posts
  • Location:PITZBORG, PA

  • Flag: United States of America

  • Favorite Pinball: Attack from Mars, Scared Stiff, White Water

Posted 26 September 2012 - 08:14 PM

Wow thanks for the detailed response !
~ Mr. John E. Smith III Esq.

#23 jimmyfingers

jimmyfingers

    Pinball Fan

  • VIP
  • 832 posts

  • Flag: Canada

  • Favorite Pinball: Comet



Posted 27 September 2012 - 01:53 AM

Thanks to all who voted and helped fix that unintentionally entered "1" vote - it was nice to see it back at the 5 stars today

#24 ced

ced

    Pinball Fan

  • Silver Supporter
  • 1,156 posts
  • Location:France

  • Flag: Jamaica

  • Favorite Pinball: TRON

Posted 27 September 2012 - 12:25 PM

great mod , thanx jimmyfingers !! :otvclap:

#25 jimmyfingers

jimmyfingers

    Pinball Fan

  • VIP
  • 832 posts

  • Flag: Canada

  • Favorite Pinball: Comet



Posted 03 October 2012 - 09:41 PM

I've been able to add some flipper drop catch functionality to my enhanced flipper routines (see topic / demo: http://www.vpforums....431#entry194935)

If you want to try with this table, edit the script to replace this section of code:

'******************************************
'Added by JF
'******************************************

Dim StartLeftFlipperStrength, StartRightFlipperStrength
Dim StartLeftFlipperSpeed, StartRightFlipperSpeed
Dim StartLeftFlipperReturn, StartRightFlipperReturn

StartLeftFlipperStrength=LeftFlipper.Strength
StartRightFlipperStrength=RightFlipper.Strength
StartLeftFlipperSpeed=LeftFlipper.Speed
StartRightFlipperSpeed=RightFlipper.Speed
StartLeftFlipperReturn=LeftFlipper.Return
StartRightFlipperReturn=RightFlipper.Return


'******************************************
' Use FlipperTimers to call div subs
'******************************************

Dim LFTCount:LFTCount=1

Sub LeftFlipperTimer_Timer()
    If LFTCount < 10 Then
        LFTCount = LFTCount + 1
        LeftFlipper.Strength = StartLeftFlipperStrength*(LFTCount/10)
    Else
        Me.Enabled=0
    End If
End Sub

Dim RFTCount:RFTCount=1

Sub RightFlipperTimer_Timer()
    If RFTCount < 10 Then
        RFTCount = RFTCount + 1
        RightFlipper.Strength = StartRightFlipperStrength*(RFTCount/10)
    Else
        Me.Enabled=0
    End If
End Sub


Sub SolLFlipper(Enabled)
     If Enabled Then
         LeftFlipperTimer.Enabled=0
         PlaySound "left_flipper_up"
         LeftFlipper.RotateToEnd
         flil1.alpha=0:flil2.alpha=1:LFr.State = ABS(LFr.State -1)    
     Else
         LFTCount=1
         PlaySound "left_flipper_down"
         LeftFlipper.Speed=.05
         LeftFlipper.Return=1
         LeftFlipper.RotateToStart
         flil1.alpha=1:flil2.alpha=0:LFr.State = ABS(LFr.State -1)    
         LeftFlipper.Strength = StartLeftFlipperStrength*(LFTCount/10)
         LeftFlipperTimer.Enabled=1
         LeftFlipper.Speed=StartLeftFlipperSpeed
         LeftFlipper.Return=StartLeftFlipperReturn
     End If
 End Sub


Sub SolRFlipper(Enabled)
     If Enabled Then
         RightFlipperTimer.Enabled=0
         PlaySound "right_flipper_up"
         RightFlipper.RotateToEnd:RightFlipper2.RotateToEnd
         flir1.alpha=0:flir2.alpha=1:RFr.State = ABS(RFr.State -1)
         flir2_1.alpha=0:flir2_2.alpha=1:R2Fr.State = ABS(RFr.State -1)    
     Else
         RFTCount=1
         PlaySound "right_flipper_down"
         RightFlipper.Speed=.05
         RightFlipper.Return=1
         RightFlipper.RotateToStart:RightFlipper2.RotateToStart
         flir1.alpha=1:flir2.alpha=0:RFr.State = ABS(RFr.State -1)
         flir2_1.alpha=1:flir2_2.alpha=0:R2Fr.State = ABS(RFr.State -1)        
         RightFlipper.Strength = StartRightFlipperStrength*(RFTCount/10)
         RightFlipperTimer.Enabled=1
         RightFlipper.Speed=StartRightFlipperSpeed
         RightFlipper.Return=StartRightFlipperReturn
     End If
 End Sub

with this section of code:

'******************************************
' Added by JF
'******************************************

Dim StartLeftFlipperStrength, StartRightFlipperStrength
Dim StartLeftFlipperSpeed, StartRightFlipperSpeed
Dim StartLeftFlipperReturn, StartRightFlipperReturn
Dim StartLeftFlipperRecoil, StartRightFlipperRecoil
Dim FlipperCatchEnabled
Dim FlipperCatchRecoilValue

FlipperCatchEnabled=1
FlipperCatchRecoilValue=8

StartLeftFlipperStrength=LeftFlipper.Strength
StartRightFlipperStrength=RightFlipper.Strength
StartLeftFlipperSpeed=LeftFlipper.Speed
StartRightFlipperSpeed=RightFlipper.Speed
StartLeftFlipperReturn=LeftFlipper.Return
StartRightFlipperReturn=RightFlipper.Return


'******************************************
' Use FlipperTimers to call div subs
'******************************************

Dim LFTCount:LFTCount=1

Sub LeftFlipperTimer_Timer()
    If LFTCount > 3 AND FlipperCatchEnabled=1 Then
        LeftFlipper.Recoil=StartLeftFlipperRecoil
    End If
    If LFTCount < 10 Then
        LFTCount = LFTCount + 1
        LeftFlipper.Strength = StartLeftFlipperStrength*(LFTCount/10)
    Else
        Me.Enabled=0
    End If
End Sub

Dim RFTCount:RFTCount=1

Sub RightFlipperTimer_Timer()
    If RFTCount > 3 AND FlipperCatchEnabled=1 Then
        RightFlipper.Recoil=StartRightFlipperRecoil
    End If
    If RFTCount < 10 Then
        RFTCount = RFTCount + 1
        RightFlipper.Strength = StartRightFlipperStrength*(RFTCount/10)
    Else
        Me.Enabled=0
    End If
End Sub


Sub SolLFlipper(Enabled)
     If Enabled Then
         If FlipperCatchEnabled=1 Then
             LeftFlipper.Recoil=StartLeftFlipperRecoil
         End If
         LeftFlipperTimer.Enabled=0
         PlaySound "left_flipper_up"
         LeftFlipper.RotateToEnd
         flil1.alpha=0:flil2.alpha=1:LFr.State = ABS(LFr.State -1)    
     Else
         If FlipperCatchEnabled=1 Then
             LeftFlipper.Recoil=FlipperCatchRecoilValue
         End If
         LFTCount=1
         PlaySound "left_flipper_down"
         LeftFlipper.Speed=.04
         LeftFlipper.Return=1
         LeftFlipper.RotateToStart
         flil1.alpha=1:flil2.alpha=0:LFr.State = ABS(LFr.State -1)    
         LeftFlipper.Strength = StartLeftFlipperStrength*(LFTCount/10)
         LeftFlipperTimer.Enabled=1
         LeftFlipper.Speed=StartLeftFlipperSpeed
         LeftFlipper.Return=StartLeftFlipperReturn
     End If
 End Sub


Sub SolRFlipper(Enabled)
     If Enabled Then
         If FlipperCatchEnabled=1 Then
             RightFlipper.Recoil=StartRightFlipperRecoil
         End If
         RightFlipperTimer.Enabled=0
         PlaySound "right_flipper_up"
         RightFlipper.RotateToEnd:RightFlipper2.RotateToEnd
         flir1.alpha=0:flir2.alpha=1:RFr.State = ABS(RFr.State -1)
         flir2_1.alpha=0:flir2_2.alpha=1:R2Fr.State = ABS(RFr.State -1)    
     Else
         If FlipperCatchEnabled=1 Then
             RightFlipper.Recoil=FlipperCatchRecoilValue
         End If
         RFTCount=1
         PlaySound "right_flipper_down"
         RightFlipper.Speed=.04
         RightFlipper.Return=1
         RightFlipper.RotateToStart:RightFlipper2.RotateToStart
         flir1.alpha=1:flir2.alpha=0:RFr.State = ABS(RFr.State -1)
         flir2_1.alpha=1:flir2_2.alpha=0:R2Fr.State = ABS(RFr.State -1)        
         RightFlipper.Strength = StartRightFlipperStrength*(RFTCount/10)
         RightFlipperTimer.Enabled=1
         RightFlipper.Speed=StartRightFlipperSpeed
         RightFlipper.Return=StartRightFlipperReturn
     End If
 End Sub

Only a few lines are different but it seems easier and with less chances for people to experience problems if the entire section is referred to here and replaced. Hopefully people dig it and I'll include it built in to future MODs.

Edited by jimmyfingers, 04 October 2012 - 01:24 AM.


#26 jimmyfingers

jimmyfingers

    Pinball Fan

  • VIP
  • 832 posts

  • Flag: Canada

  • Favorite Pinball: Comet



Posted 04 October 2012 - 01:26 AM

Had an error in the replacement code from copying / pasting issues while trying to fix the code box colouring oddities with dim statements. I've edited the initial post now and in case anyone had problems with attempting to use it just delete that extra line where the variable was redefined or replace the code with the updated post.

#27 natural320

natural320

    Enthusiast

  • Members
  • PipPipPip
  • 113 posts
  • Location:Bucks Co., PA

  • Flag: United States of America

  • Favorite Pinball: Jurassic Park, Medieval Madness, VP9 FS!

  • PS3 Gamer Tag: Higgs20

Posted 06 October 2012 - 01:01 AM

did something happen to the table file? clicking on the download link gives a "sorry this file cannot be found" type error message.

#28 jimmyfingers

jimmyfingers

    Pinball Fan

  • VIP
  • 832 posts

  • Flag: Canada

  • Favorite Pinball: Comet



Posted 06 October 2012 - 01:13 AM

did something happen to the table file? clicking on the download link gives a "sorry this file cannot be found" type error message.

I just tried and it worked fine. Try restarting your browser or another type of browser / some other VP files.

Edited by jimmyfingers, 06 October 2012 - 01:14 AM.


#29 natural320

natural320

    Enthusiast

  • Members
  • PipPipPip
  • 113 posts
  • Location:Bucks Co., PA

  • Flag: United States of America

  • Favorite Pinball: Jurassic Park, Medieval Madness, VP9 FS!

  • PS3 Gamer Tag: Higgs20

Posted 09 October 2012 - 02:15 AM

yup! working now :otvclap: no idea what the problem was there.





Also tagged with one or more of these keywords: Indianapolis 500, BMPR, Physics, GI8, Lighting