|Translate to French or Other Language||Click on the link on the left and a new tab will open with this page translated into French. Click on the "To:" pull down option to select a different language.|
Click on the "Updates" tab to read the notes for the new version.
This is a one stop shop for everything custom balls. You can download ready-made custom balls, read tutorials for 4 methods of installation and learn how to create custom balls yourself. Miownkhan and I co-wrote this guide.
Note: The download link on this page will download all of the available custom balls in one download. You can also download individual ball packs when you click on the "Discussion" tab.
Also note that if you click on an option below that says "Click to expand", you can press the refresh button on your web browser and the option will compress back.
A long time ago, Miownkhan sent me a large number of custom balls that were never published. I looked through them and selected ones that I like. They are posted here in Packs 11 through 15. Miownkhan created all the custom balls posted here except for Packs 16 through 18. GeorgeH created Packs 16 and 17. Gimli created Packs 18 and 19.
All of these packs unzip to a folder named "Balls" which may be saved to C:\Games\Future Pinball\BAM\Balls. If you save all the available balls there, you may have problems with resources on your PC so you should select only the ones you want to use. BAM loads all the balls in the C:\Games\Future Pinball\BAM\Balls folder when the table starts. Each ball is zipped and it needs to stay zipped for it to work.
Screenshots of Custom Balls
The custom balls here are broken apart into packs of about 10 balls each (more or less). See screenshots of the balls below:
Pack 1a (This pack has been included in the BAM installation files)
Pack 1b (This pack was built by Ravarcade and has been included in the BAM installation files)
These are some of Miownkhan's previously unpublished custom balls. Note that the color cue balls look a little dark on the screenshots but they look good when the balls are in play on a table.
More of Miownkhan's previously unpublished custom balls.
More of Miownkhan's previously unpublished custom balls.
More of Miownkhan's previously unpublished custom balls.
More of Miownkhan's previously unpublished custom balls.
Custom balls created by GeorgeH
More custom balls created by GeorgeH
Custom balls created by Gimli
Soccer balls created by Gimli
Installation - Prerequisites
You can add any custom ball to any Future Pinball table. You may not want to use the custom balls on tables where the ball changes color like on the tables, "Transformers", "Gorgar" and "Aliens Infestation" because the ball color probably won't be correct. I have found a few custom balls accept the color changes better than others. The "Blue Plasma" in Pack 16 accepts different colors pretty well but there are others.
To use custom balls, you need the following:
1) You need to have Better Arcade Mode (BAM) installed. The latest version can be found here http://ravarcade.pl/.
2) On the Future Pinball "Preferences" menu, the submenu "Video/Rendering Options" needs to have the option for "Ball Marks (Dirt)" checked. This is important because it enables one of the 3 images that is needed to display the ball correctly (the bit map '452.bmp').
3) Also, custom balls are not displayed properly unless the "New Renderer" light system in BAM is used. To select the "New Renderer" light system, open BAM's "Table & Lighting" menu. Arrow down to "Lights" and press enter. Arrow down to "Light System" and press the left or right arrow keys until "New Renderer" is displayed.
There are 4 methods of setting up custom balls on Future Pinball tables. You can have access to a list of balls you can change on the fly, save a custom ball to a specific table, add a default ball to all tables or code a table to have balls that can change with game events. Or combinations of the above can be used.
Installation - Method 1 - Change on the Fly (Very Easy)
BAM comes pre-installed with “Pack 1a" and "Pack1b" included in the first two downloads here that are saved to the folder C:/Future Pinball/BAM/Balls. You can save additional downloaded zip files for custom balls here as well. At any time either before start or after a game is in play, you can press "N" (for "Next") or "P" (for "Previous) on your keyboard to change to the next or previous ball in the folder. BAM will remember the ball that you used after you closed the table the last time and it will load the same ball the next time you play the table. You will probably want to limit the number of balls to the C:/Future Pinball/BAM/Balls folder because you may experience resource problems if you save all the available ones to this folder. You should manage the number of balls saved to this folder by only saving general purpose custom balls to this folder. The next section shows you how to save the more specialized custom balls to individual tables.
Installation - Method 2 - Save a Custom Ball to a Specific Table (Easy)
You may have one ball that you know will only be used on a particular table or several tables. You may not want it included in the general ball folder. For example, "Soccer Ball 1" was designed to be used on the "World Cup Soccer" table. You can save a zip file containing a custom ball with the same name as the table file and save it with the same name as the *.fpt table file in Future Pinball tables folder (C:\Games\Future Pinball\Tables) as in the example below. Although this method is easy to do, it can be time consuming if you add custom balls to a lot of tables.
World Cup Soccer 1.2.fpt
World Cup Soccer 1.2.zip
You may already have an *.xml or *.zip file saved there already. So there are 3 possible cases:
1) If you have a table with no associated *.xml or *.zip file, you just rename the downloaded *.zip file of the ball with the name of the table and save it with the table.
2) If the table has an *.xml file for physics, you can add the *.zip files using the same name as the table along with your *.xml file and both will work.
It is not necessary but you can add the *.xml file to the *.zip if desired by making a temporary folder and unzip the custom ball file in it. You should see a folder named “BMP" appear with 3 bit map files in it. In the same temporary folder as the "BMP", create a folder with it that is named XML. Rename the *.xml file from the table as 464.xml and save it to the XML folder. Then zip up both the BMP folder and the XML folder together. Rename the *.zip file with the same name as the table and save it with the table. Now you can delete the temporary folder and close the file archiver software.
3) If the table has an *.zip file for ZED physics, make a temporary folder and unzip the custom ball file in it. You should see a folder named “BMP" appear with 3 bit map files in it. Make another temporary folder and unzip the ZedPinball file to it. You will see the following folders appear:
Copy and paste the custom ball *.bmp files into the BMP folder from the ZED file. Overwrite any existing files that have the same name. Then you zip all the folders back up as they were originally and save the zip file with the table file. Now you can delete the temporary folder and close the file archiver software. You will probably want to save the original zip file so you have a version of it without the custom ball.
Installation - Method 3 - Set Up a Default Custom Ball (Very Easy)
There are several chrome balls that you may like better than the one that normally plays. This option allows you to replace the Future Pinball default ball on all tables with a custom ball. You will probably want to use a chrome ball but you can use any custom ball. Save the custom ball that you selected with the file name default.zip. Save the file to the folder C:\Games\Future Pinball\BAM. You may already have a default.xml file in this folder but go ahead and save it there and both files will work. It is not necessary but if desired, you can add the *.xml file to the default.zip by following Step 2 in the section named "Installation - Method 2 - Save a Custom Ball to a Specific Table (Easy)".
Installation - Method 4 - Code Table With Balls That Change With Game Events (Advanced)
There may be more than one way to do this but this is the only way that I have performed that I know works.
1) Extract from a custom ball zip file or otherwise obtain the 269.bmp, 334.bmp and 452.bmp files. Rename these as AnyName1_269.bmp, AnyName1_334.bmp and AnyName1_452.bmp. You can add many custom balls added to the script with different names. The coding below is for 3 balls so all 9 textures for the balls need to be named like the above. Note that "AnyName1" portion of the file name can literally be any name as long as all 3 textures for the ball is the same.
2) Upload the *.bmp files to the Texture Manager in the FP editor for the table.
3) Create an Image List and add all the textures for the ball(s) to it. FP will not load an image unless it is added to a table object or image list. FP does not search the script for the names of images when the table loads so you need to add the textures to the Image List to force it to load. You can add the textures to invisible surfaces but using the Image List is easier.
4) Add the following script somewhere below the section in the script that says "Option Explicit" and not inside another subroutine. The code below shows 3 balls but any number of balls may be used. Note that the code is different for the ".CreateBall" code than it is for ". createCaptiveball" code. If your table only uses one of these, you can delete the "function" code for the one that you are not using:
Const BAM_VERSION = 0 Dim AnyName1, AnyName2, AnyName3 If BAM_VERSION => 256 then AnyName1 = xBAM.BallManager.DefineCustomBall(255, 255, 255, "AnyName1_452", " AnyName1_334", " AnyName1_269") AnyName2 = xBAM.BallManager.DefineCustomBall(255, 255, 255, "AnyName2_452", " AnyName2_334", " AnyName2_269") AnyName3 = xBAM.BallManager.DefineCustomBall(255, 255, 255, "AnyName3_452", " AnyName3_334", " AnyName3_269") End If Function CreateCaptiveCustomBall ( Source, BallName, Opacity ) If BAM_VERSION < 256 then Exit Function xBAM.BallOpacity = Opacity Dim bi Set bi = xBAM.BallManager.CreatCustomBall(BallName) Source.CreateBall bi.Red, bi.Green, bi.Blue, bi.BallNumber AddDebugText "["&xBAM.BallID&"]" CreateCaptiveCustomBall = bi.BallNumber End Function Function CreateCustomBall ( Source, BallName, Opacity ) If BAM_VERSION < 256 then Exit Function xBAM.BallOpacity = Opacity Dim bi Set bi = xBAM.BallManager.CreatCustomBall(BallName) Source.CreateBall bi.Red, bi.Green, bi.Blue, bi.BallNumber AddDebugText "["&xBAM.BallID&"]" CreateCustomBall = bi.BallNumber End Function
5) The script above defines the balls AnyName1, AnyName2 and AnyName3. Now you need to decide where in the game you want them to appear. It can be any point where a ball is created. Suppose you want to add the AnyName1 custom ball at a line in the script for Kicker1.CreateBall. Replace Kicker1.CreateBall with this code:
If BAM_VERSION => 256 then call CreateCustomBall ( Kicker1, AnyName1, 1 ) End If
Suppose you want to add the AnyName2 ball at a line in the script for kicker9.createCaptiveball. Then, replace it with this code:
If BAM_VERSION => 256 then call CreateCaptiveCustomBall ( kicker9, AnyName2, 1 ) End If
6) During a game, the custom ball will drain and the game will proceed. There is no need to have code to change the ball back to a standard ball. It is possible that you may have a mix of different balls and customs balls in play at the same time. But, that is not really a problem as that is how the game would play in real life.
7) If you want an example of a table that has custom balls in the script, you might look at Twilight Zone. The custom ball is created at the start of the game inside the gumball machine. It emerges during multiball. Search the script for "Custom Ball Mod Start" repeatedly and you will see all the coding listed above. You may also want to look at Sonic Pinball Mania. TerryRed created a custom ball that looks like Sonic's head. He added a bump map to the 452 bitmap.
Installation - Combinations
You can have combinations of the above. BAM uses a priority system that is set up like this:
a) Pressing "N" (for "Next") or "P" (for "Previous) on your keyboard to change to the next or previous ball will override everything.
b) Custom balls saved to the script will be used next.
c) A zip file containing a custom ball with the same name as the table file is used next.
d) The default ball is used next.
How to Create Custom Balls
There are 3 images that make up a ball. The file names are numbered as follows:
269.bmp - This is the Main BALL Core and is non-rotational.
334.bmp - This is the 269.bmp Flipped Vertically (Enamel Map) and is also non-rotational. As noted in the Future Pinball Manual, Enamel Maps (Reflections) can be made by flipping the texture upside down and reducing the color strength. Note that enamel maps are blended in by adding the colors together so you will want a very dark enamel map else it will dominate the colors on the source texture.
452.bmp -This is the Topical (Scratches or Texture) of the ball. This one ROTATES to give a spinning ball. Some advance things to know are that this uses 1 side of a hemisphere that mirrored for front and back, meaning if you put an image in the middle, in FP the ball will have that image twice. Also, it's colors are inverted as in a "Negative Image". You can think of a "Negative Image" as being similar to an x-ray image only in color.
One thing I have learned the hard way is that color depth or also known as bit depth needs to be set to 24. Some older PCs may turn the ball invisible because they can't handle anything other than the 24 bit depth. Newer PCs have no problem rendering any bit depth. If you have trouble determining the color depth with your image editor, you can right click on a image using a file manager and select Properties. Then select the details table and it will tell you the bit depth.
If you want to try making some balls, I have learned a trick. I figured out a way to create the 269.bmp image for a ball in one step. You might notice that Miownkhan's 269.bmp and 334.bmp images for custom balls are basically a square with rounded corners with the corners being black. I'm not sure about the image editor you are using, but Paint Shop Pro has an option to select part of an image. I usually have it set to a rectangle and it draws a box that has dotted lines around it on an image to select part of it. I discovered the rectangle can be changed to a circle. Then you can draw a circle anywhere in an image then you can select "Crop to Selection" and it reduces the size of the image to a square with the background color used as the fill color around the circle. If you have the background color set to black, it completes the image and all you have to do is save.
To create the 334.bmp image, you vertically mirror the 269.bmp image, and make it about 60% darker. If your graphics editor does not have an option for "vertical mirror", you can use the mirror option that most programs have and create an image that is the same as what appears in a mirror. After you create the mirror image, then you rotate the image 180 degrees which will create a vertical mirror. Microsoft Paint has an option named "Flip Vertical" that is the same thing as a "vertical mirror". The following image shows an example of a "vertical mirror". The top RED image is the normal image as used on the 269.bmp image. The bottom RED image is the "vertical mirror" image as used on the 334.bmp image.
The 452.bmp file uses a negative image. Paint Shop Pro has an option for a "Negative Image". Miownkhan has told me that most image editors have something similar. I have used this on some of Miownkhan 's 452.bmp images so I can see what they would look like on the ball. From what I've seen, white does not show up on the ball. Since white is invisible and the negative of white is black, a black background on the 452.bmp image is invisible on the finished ball. So anyway you can do a "Negative Image" of any picture and use it as a 452.bmp.
Miownkhan figured out two basic methods of creating a ball. This is probably best illustrated by comparing the "EyeToy" from Pack 1a to the "Eye Ball" from Pack 3. You may want to unzip both to compare them. Both of these are basically the same ball that use both methods. The "EyeToy" uses Method 1 and is dominated by the 269.bmp image which is not rotational. The 452.bmp file only provides minor highlights. When played, the ball does not appear to rotate (which to my thinking makes it look creepy). The "Eye Ball" from Pack 3 uses Method 2 where the 452.bmp file dominates the image and the eye ball rotates when played. The 269.bmp and the 334.bmp images only provide lighting effects. It should be noted that the 452.bmp image gets stretched over the ball. In order to make the image fit on both sides of the ball, one side uses the image as is while the opposite side of the ball uses a mirror image. Method 2 does require that the 452.bmp image be a side view. If you want to reproduce a real world likeness, the object reproduced must have bilateral symmetry because one side of the ball uses a mirror image. Miownkhan has used this characteristic to construct faces. I have found that balls using Method 2 tend to be more difficult to make.
All the custom balls until recently have used a square texture that is duplicated on each side of the ball. It is possible however to use textures that are twice as wide as they are high. This allows the texture to wrap all the way around the ball. This method has more flexability in the design of your ball. For example, it is now possible to create a ball that duplicates the entire earth and not just one side of it.
Custom balls use "spherical maps" (also called "equirectangular maps"). I think Ravarcade must have included the ball "axis" in the BAM download (also in Pack 1b) to demonstrate how to use the spherical maps. The following is the 452.bmp texture from the ball before it was converted to a negative image. The image on the right is a screenshot of the "axis" ball as it appears on a table.
If you understand mathematics, you might look at how to create spherical maps at this site:
Geometry of sports balls
Otherwise, I think all the custom balls that have been built so far have used spherical maps that were downloaded from the internet. Just search for "spherical maps" or "equirectangular maps" on the internet. I performed a search on the internet for "wrap image around sphere online" and found some online programs that look like they might create a spherical map but I have not tried any of them.
In order to create custom balls based on spherical maps, you should disassemble any of Ravarcade's custom balls in Pack 1b or any of Gimli's soccer balls in Pack 19 to see how they are put together.
When finished with the images, you need to add all three of them to a folder named "BMP". Then you compress the folder to a zip file. This is not a comprehensive guide on how to create a ball but should get you started.