• bam_mode_fpMenu

The table is displayed in the same way as Future Pinball, but with the following additional options:

  • After loading, the table is automatically centered and scaled to fill screen (and keep aspect)
  • You can change settings (and immediately see the effect) from the menu level, whereas previously you had to modify the registry 
  • Menu Exit (press ~ or Q) will create a file in BAM/cfgdirectory "table_name.cfg"
    • bam_mode_tl_fpTable & Lighting
  • Settings are automatically loaded from this file on next start of game

Options in menu:

  • Cam X Y / Z - camera position. The registry entry is: ArcadeCameraX / Y / Z
  • Table & Lighting - submenu where you can change light source position, params, table scale & translation, backbox scale & translation
  • Reality - submenu where you can setup how cabinet looks  in reality (these values are usefull in setup), params of screenshots

  • bam_mode_staticcamMenu

Table is drawn in such a way that it looks like a real one .... although only from the camera perspective.

New options in menu:

  • Camera position - Cam X / Y/ Z - position of virtual camera in game. Same as in Future Pinball mode. Center point [0, 0, 0] is at center of screen surface
  • Camera real world position - Cam Y / Z - position of virtual camera displayed in real world units (inches or centimeters). You can change these values in same way as in "FP internal units". You can also compare it with your eyes position. 

  • bam_mode_wiimotesMenu

I wrote it looks like a real table. But only from the point of view of the camera.

In this mode, BAM is trying to trace the "camera" ... or viewer. I cannot keep track of the eyes ... but I can keep track of the IR diode. To track IR LED, I use two cameras mounted in WiiMotes. They are arranged in such a way that they identify an LED placed on players cap. This process is called Head Tracking. Video from the main page was done by placing the LED on a cellphone cam.

  • bam_mode_wiimotes_calibrationboardSub-menu: Calibration Board
Calibration Board

Before you can track the LED you need to calibrate cameras. For that you need to use "calibration board". This tool is just 4 IR LEDs.  The program needs to know the relative position of these diodes. Choose Calibration Board and enter the coordinates of three LEDs. Coordinates of the first LED is 0.0. See picture on the right.


  • bam_calibBoardCalibration Board
The two frames on right shows points/leds detected by the cameras. Below frames is:

  • the battery state in WiiMotes 
  • picture quality - this value shows how visible the  IR-LEDs' lights are
  • Calibration Quality
  • CamID - id codes of WiiMotes. There should be two different values here.



The calibration process begins by selecting Start Calibration of WiiMotes. On right there will be instructions "what to do". We need 20 frames. They should be different. You should move "Calibration Board". A few tips on how to move:

  • bam_mode_wiimotes_3points"3 points" setup

  • Start at "center" for both cams
  • Try to not rotate board
  • Don't try to cover whole space
  • Keep board in radius ~20 cm from start position
  • First 5-10 frames are most important
  • Try at begin have one fram at center, and 4 frames at square corners at same distance from cams

After collecting 20 frames counter is replaced by Calculations in progress. The calculations may take a few minutes (on my i5-2500 it takes 10-15 seconds). CalibrationQuality is displayed below battery status. Lower value is better. Lower than 10.0 is ok.


  • bam_wii_spSet Points
"3 Points"

From that moment instead of "calibration board" we use a single diode. Calibrated cameras track the point, the coordinate system is calculated in relation to one camera only. In order to make system work properly, we need to know where the table is located and what are its dimensions. To do this, we collect the position of 3 points on the screen surface.  Put the "camera" (single IR LED) on three points displayed on the screen . The first point is in the lower left corner of the screen and is marked with a red diamond. After placing the "camera" on this point, select Set Point in the menu. Then the second point (bottom right) -  select Set Point again. The third point is at the center of the table. No need to place the camera exactly at this point, but as close as possible and on the screen surface. After storing the third point "camera" tracking will work immediately. 


Here are two comments:

  1. After finishing the calibration exit from menu (press ~) . Calibration results are stored.
  2. Please note that 3 consecutive points used to determine the location and size of the table were called by the term "camera".  If you place the IR LED (As an example) 1 inch above these points and then 1 inch above the eye, your eye will be the "camera.

After any displacement of camera, you should recalibrate . After calibrating the cameras, you can load different tables. You can also exit the program. Calibration parameters are loaded at startup.