Jump to content



Photo
- - - - -

Indianapolis 500 8-step GI Lighting and BMPR Physics MOD

Indianapolis 500 BMPR Physics GI8 Lighting

  • Please log in to reply
6 replies to this topic

#1 jimmyfingers

jimmyfingers

    Pinball Fan

  • VIP
  • 832 posts

  • Flag: Canada

  • Favorite Pinball: Comet



Posted 23 September 2012 - 10:21 PM

Posted Image

File Name: Indianapolis 500 8-step GI Lighting and BMPR Physics MOD
File Submitter: jimmyfingers
File Submitted: 23 Sep 2012
File Category: VP/VPinMAME 9.x - MOD Tables
Author(s): JPSalas
JimmyFingers (Light MOD, BMPR / Physics, and B2B)
Manufacturer: Bally
Year: 1995
ROM: Link to ROM
Media Pack: Link to Media Pack
Permission to MOD?: No

-------------------------------------------------------
GI8, Lighting, and Ball Momentum Physics Routine (BMPR) MOD:

- Similar concept and elements as with my Bram Stoker's Dracula GI8 / BMPR MOD
- Added 8 step x 3 zone GI fading / levels utilizing the GICallBack2 function available for WPC tables
- Antialiasing friendly GI zones / control points (drawn using linear / precise control point coordinates and ran along existing black lines, divisions, and lamp objects to hide traditional AA based "black lines")
- Optimized and enhanced all playfield flashers with new alpha ramp image technique and custom designed flashes / halos
- Tweaked turbo spinner blade graphics, metal textures, hub graphic, and patched a gap in to the exit ramp
- New alpha ramp textures and optimized ramp borders
- Added B.M.P.R. routine, tuned all table physics / rubbers, and matched / compared extensively with PAPA.org video for various components (overall speed, flipper and slingshot behaviour, ramp and loop completion / return times, etc.)
- Added B2B collision script / sounds
- Added Enhanced Rolling Sounds
- Added variable volume / strength based sounds for rubbers, flippers, and other table objects
- Variable flipper strength / tap routine added and enhanced (10 levels of strength)
- Flippers changed and modified to be similar to BSD table
- New Flipper dampening routine to allow for better straight up table shots when ball has speed through the in-lane and improves simultaneously (and surprisingly) lateral shots (when used with current higher strength physics matching)
- Flipper animation extended for frames / walls displayed while extending as well as retracting (at a faster speed for out vs. in)
- New XY dampening routine with separate X and Y parameters used on slingshots to help increase elasticity levels without excessive speeds, assist in up table (Y) angles / velocities, and add more randomness / realism
- Added randomness to mid-field kicker eject into top saucer
- Added JPs new alpha logos for Williams flippers
- Modified Noah's Ball image for choice of transparent or regular ball images with also darker texture options
- Huge thanks to JPSalas for giving me permission to post this GI8 / B.M.P.R. MOD, his continued support, and willingness to share his artwork / textures


Notes:
1) For WS settings set X-scale to .855 for 16:9 and .95 for 16:10

2) Performance is great and very high FPS can be achieved (much higher than BSD or SS) as I have included the optimized alpha routines as well as used optimized flasher techniques for no active alphas when a flasher is off (separate solid ramp object of just plastic flasher with using flasher "halos" when on and for greater coverage / effect); I have noticed that if using Antialiasing with GI8 tables that you may get some ball stutter depending on the lighting sequence / intensity; Also not sure exactly what combination of factors creates this but I've seen sometimes where using the transparent balls / .PNGs seemed to increase some micro stutter

3) The table is actually based on JP's 1.0 version but modified to be the same effectively as the 1.1 version as the performance was much better in 1.0 and all notable items that 1.1 added were going to be updated or replaced or verified anyway (alpha flashers, layback settings, ramp transparencies, PF textures, etc.)

4) The table is not entirely angle dependant from how the flashers / halos were done and if angle related view settings are modified substantially some repositioning might be required (desktop version mainly); The flasher objects have been left "unlocked" to more easily manipulate if need be (moving with the arrow keys when selected) and there is a routine for blinking the flashers that can be enabled by changing the const definition from 0 to 1 at the top of the script for the "FlasherTest" code

5) The backdrop is not standard / stock but was included none the less; If you want to remove it simply delete wall called "Backdrop"

6) Game speed may be a bit slower than the PAPA.org but it does seem like they may have a bit of faster play on some of their tables; Promo video was also used for comparison and why the table has been left at the style / speed it is now

7) View settings can "appear" to affect somewhat how the physics look and this was noticed / confirmed when I removed the rails and stretched out the table for release (all other settings held constant except for just view / scale settings); For the best comparison / assessment I adjust the table to a top-down view like PAPA.org's and do my tuning there; the settings I use are 3, 30, 30, 360, .75, 1, 0, -120 if you want to see just how much things can look / "behave" differently with different or narrower views (the slope / gravity can appear stronger when the table is less stretched width wise)

Click here to download this file

#2 rein1969

rein1969

    Enthusiast

  • Members
  • PipPipPip
  • 99 posts

  • Flag: Netherlands

  • Favorite Pinball: medieval madness

Posted 24 September 2012 - 08:53 PM

No replies yet? Glad to see a new updated pinball, it was so quite last months with new releases/updates... it plays great and lighting effects are more and more close to the original Thank you Jimmy!

#3 hmueck

hmueck

    MaX

  • VIP
  • 2,190 posts
  • Location:Hamburg

  • Flag: ---------

  • Favorite Pinball: IPDB Top 300



Contributor

Posted 25 September 2012 - 08:27 AM

No replies yet?

The replies are all in the fullscreen release support topic. ;)
VPX0beta tables: 29cff786951ed9c1a70fc1fa47f5e3c1.png 0cecd68ffa2537a7262337834a05bbbe.png Finish them if you like!

#4 rein1969

rein1969

    Enthusiast

  • Members
  • PipPipPip
  • 99 posts

  • Flag: Netherlands

  • Favorite Pinball: medieval madness

Posted 25 September 2012 - 03:59 PM

Thanx..lot's of good comments ;-)

#5 jimmyfingers

jimmyfingers

    Pinball Fan

  • VIP
  • 832 posts

  • Flag: Canada

  • Favorite Pinball: Comet



Posted 03 October 2012 - 09:43 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:22 AM.


#6 Slydog43

Slydog43

    Pinball Wizard

  • Platinum Supporter
  • 3,008 posts
  • Location:Hackettstown, NJ

  • Flag: United States of America

  • Favorite Pinball: Addams Family, All Williams 90's Games

Posted 03 October 2012 - 10:38 PM

needed to comment out line 357


Dim LFTCount:LFTCount=1

from modified script,

Thanks going to play this table for a while and see if I can tell the difference.

#7 jimmyfingers

jimmyfingers

    Pinball Fan

  • VIP
  • 832 posts

  • Flag: Canada

  • Favorite Pinball: Comet



Posted 04 October 2012 - 01:22 AM

needed to comment out line 357


Dim LFTCount:LFTCount=1

from modified script,

Thanks going to play this table for a while and see if I can tell the difference.

Thanks, it was an error from the copying and pasting as I was messing around trying to get the quirk out of the code boxes where it's colouring certain dim statements differently than others.

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.

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






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