Bally WIP Recreation BAM FP CiRQuS VoLTaiRe v4 (Bally 1997)

Future Pinball
I like your developments but i'm not sure I understand them.
Problem being I knnow zero knowledge about graphics :D
 
I like your developments but i'm not sure I understand them.
Problem being I knnow zero knowledge about graphics :D
Objects that can "pierce" the playfield are kickers and ornamental holes.

The ringmaster "box" is nothing more than a kind of wider and deeper kicker (why didn't I think of it sooner ?) => so I modified an existing kicker model to make it bigger and deeper. And it works very well.

For the boom balloon bumper which can be retracted in the playfield, I just modified an existing ornamental hole by giving it the shape of the bumper. I have not yet tested what happens when the bumper retracts.

This allowed me to learn how to use Fpm editor and Milkshape.
 
I get it now. I can't do it because I can't use milkshape (I do have it but I'm not made for arts :D ) and also used fpmeditor before.

It really isn't about the tools but how to use them ;)
 
After a long silence 😴, I come to give a progress report on CV v4 which is still in development.

As explained above, I found a solution to remove the pseudo playfield existing since v1 (a simple surface) and bring the game back to the default FP playfield.
CiRQuS VoLTaiRe v4 WIP playfield.jpg

I modeled 2 objects able to insert themselves "in" the FP playfield :
  • a giant kicker for the Ringmaster "box"
  • a teardrop-shaped ornament hole for the Boom Balloon Bumper "box"

I also had to review the layout and dimensions of the cab. I made some adjustments to the physics. I modeled some special pegs (to reduce their height under certain ramps). I completely reviewed the mini-playfields management necessary to animate the Ringmaster.

Bringing the game back onto the default FP playfield now allows to benefit from reflections, shadowmaps and raycast shadows (not applicable on another surface)

CiRQuS VoLTaiRe v4 WIP shadows & reflection.jpg

To improve the shadows rendering, I added invisible lights (bulbs or flashers) raised relative to the playfield (This gives shadows with less acute angles).


To be continued...
 
Welcome back LtJazz!!! I am glad to see you again. I have a version of this table where I made the ramps perform better if you would like to use it.
 
+1 to the welcome back LtJazz. I really appreciate your dedication to Cirq table. I'm currently using your "EasyMatrix DMD manager" for my Theatre of Magic recreation as well as I felt the prioritized queue approach works quite well.
 
Welcome back LtJazz!!! I am glad to see you again. I have a version of this table where I made the ramps perform better if you would like to use it.
Hi @GeorgeH !

I remember. You sent me this version. Also, the first modification I made on v4 was about these 2 ramps. :wink:
 
+1 to the welcome back LtJazz. I really appreciate your dedication to Cirq table. I'm currently using your "EasyMatrix DMD manager" for my Theatre of Magic recreation as well as I felt the prioritized queue approach works quite well.
Thank you @madmrmax ,

I tried to comment as much as possible the code of my EasyMatrix DMD manager so that it can be reused by others. I'm glad to know that you wanted to use it for your project. I hope that the features you need are understandable, my comments being sometimes in English and sometimes in French.
 
Cirqus Voltaire v4 WIP : what was done, episode 2

I simplified and improved the neon (it is now just a single object) and I was able to remove the holograms (another legacy from v1) that allowed it to give a uniform light rendering from top to bottom. I modified its lighting settings (viva BAM !) so that it emits a bright and uniform light from top to bottom when it is lit (previously the "neon" flasher model only emitted a point light in the center like the other flashers, which justified the hologram trick).

It is now possible to choose the neon color in the settings (among 6) as seen below. The neon being a flasher, it lights (and colors) the ball and the playfield dynamically.

I modified the Ringmaster's rendering (viva BAM !) so that it appears to be lit from within when it is pulled out (although the Ringmaster is not a bulb, flasher or light type object). I also added a light with the same color as the neon in the Ringmaster's "box" that lights up when the Ringmaster is pulled out.
CiRQuS VoLTaiRe v4 WIP neon.jpg
As you can see, the Ringmaster is reflected nicely in the FP playfield now.
 
If I were adding DMDs to a new table, I would try easy DMD.

If you add more than 1 DMD to a table, there is a method that Flug developed on Medieval Madness where you don't have to duplicate code for each DMD. You can add as many DMDs as you want by adding a few lines of code to a generic section. It is still in use on the version I just posted. I have used it on some of Smoke's tables who only coded for 1 DMD.

I have been using your method for color DMDs on my table mods which you have probably noticed.
 
If you add more than 1 DMD to a table, there is a method that Flug developed on Medieval Madness where you don't have to duplicate code for each DMD. You can add as many DMDs as you want by adding a few lines of code to a generic section. It is still in use on the version I just posted. I have used it on some of Smoke's tables who only coded for 1 DMD.

Yes. This is also natively the case with EasyMatrix. Once determined/calculated/prioritized what to display (image, text and associated attributes), I store it in a variable and invoke the .Text method for each DMD. The display is thus identical and synchronous on each DMD.

PlayfieldDMD.Text = dmd_text
HudDMD.Text = dmd_text
 
Yes. This is also natively the case with EasyMatrix. Once determined/calculated/prioritized what to display (image, text and associated attributes), I store it in a variable and invoke the .Text method for each DMD. The display is thus identical and synchronous on each DMD.

PlayfieldDMD.Text = dmd_text
HudDMD.Text = dmd_text

Those 2 lines is all it takes? Flug's method is a little more complex but it is not dark to implement.
 
Those 2 lines is all it takes? Flug's method is a little more complex but it is not dark to implement.

To simplify, EasyMatrix works as follows :

- instead of having a queue as in FP, EasyMatrix manages 81 queues

- each queue is characterized by a layer and a level which determine its priority level for display :
a higher layer has priority over a lower layer
in the same layer, a higher level has priority over a lower level

- EasyMatrix manages 9 layers, each layer having 9 levels

- any "message" (image, text, ...) stored in a queue has a special attribute :
"above" : the "message" will be displayed above the "messages" present in the lower priority queues (if there are any)
"exclusive" : the "message" will be displayed in place of any "message" present in the lower priority queues (which will therefore be ignored)

- frame by frame, n times per second (this is configurable), the EasyMatrix engine goes through all the queues to determine what to display while taking into account the priorities. Before calling the .Text method of the DMD(s) to display a frame, EasyMatrix concatenates everything that needs to be displayed into a single variable dmd_text in the following order :
Layer 9
Level 9 : ([Background +] Font + [Attributes +] Characters)
Level 8 : ([Background +] Font + [Attributes +] Characters)
...
Layer 8
Level 9
Level 8
...
Layer 1

An empty queue is simply ignored. Concatenation stops when EasyMatrix encounters a queue element with the "exclusive" attribute​
 
About the Ringmaster...

As I was not very satisfied with the way the Ringmaster throws the ball in v3, I took advantage of the mini-playfields reconfiguration to completely modify it. The ball throw is now more reliable and the ball trajectory is visually more realistic.

This allowed me to implement the random event "sneaky lock" (with a specific animation on the DMD) that exists in "real life" : the Ringmaster throws the ball directly on the hiwire ramp (to the left behind the Ringmaster) which can allow to lock a ball directly.View attachment SneakyLock.mp4

I also implemented a random event "lucky strike" which is symmetrical to the "sneaky lock" event : the Ringmaster throws the ball directly on the neon ramp (to the right of the Ringmaster). This event can only occur in "Mod" version.

In order not to make the game too easy, the occurrence of these 2 events will be rare.
 
Judgment Day !

As thanks for their very valuable contributions, I added 3 new judges in v4 :

Anon Tet (to thank him for his many encouraging comments during the v3 development)
AnonTet.png

Rav (who continues to evolve BAM, offering many features that stimulate creativity)
Rav.png

JLou (physics wizard, who helped fill one of the main gaps in FP)
JLou.png
(Production note 🧐 : before opting for this design, I tried unsuccessfully to "pixelize" Isaac Newton or Albert Einstein in 32 x 40 pixels with 4 gray levels)


In advance, Lt Jazz decline all responsibility concerning the scores which will be awarded by these 3 judges in the game !
 
New lighting effects


Classic rotating beacon effect :



Light dimmer effect on a bulb type object :

- Progressive lighting (or extinction) of each bulb​
- Lighting of the big green ball when hit (lighting proportional to the big ball displacement)​


Light dimmer effect on a texture :

- Lighting of the targets when hit​
- Lighting of textures when the ball passes (without light source)​

Dynamic brightness of reflections on the DMD (script controlled) : intensity and color of the reflections vary dynamically depending on state of flashers (neon, 4 flashers, boom balloon, magnets,...)



I wish you all a happy new year
 
Last edited:
My guess you are displaying textures on the DMD. You can use the frames from the DMD colorization files that the guys post on VP Universe, although you need to cut a little off the top of their frames and add the same amount to the bottom of the frame to make the dots match the FP DMD. All of it is pretty tricky though.

The only times I have ever used textures on a DMD is to change the color of the background of the HUD DMD but I just use a frame of a solid color. It works around the inability to change the background color of HUD DMDs using the RGB code in the script like you can on the backbox DMDs.

I like your new approach but miss the bright colors of your previous DMD efforts.
 
My guess you are displaying textures on the DMD. You can use the frames from the DMD colorization files that the guys post on VP Universe, although you need to cut a little off the top of their frames and add the same amount to the bottom of the frame to make the dots match the FP DMD. All of it is pretty tricky though.

The only times I have ever used textures on a DMD is to change the color of the background of the HUD DMD but I just use a frame of a solid color. It works around the inability to change the background color of HUD DMDs using the RGB code in the script like you can on the backbox DMDs.

I like your new approach but miss the bright colors of your previous DMD efforts.

Hello @GeorgeH,

To achieve this result, I drew a particular version of the 464.BMP file with black ink and a slightly textured gray-green background. The rendering is indeed monochrome, like on an LCD display without backlighting.
 
Spectrum DMD ColorSet

Spectrum ColorSet is a proof of concept (which will be available and fully functional in CV v4). The idea is to have an extended color palette on the DMD (beyond the 4 colors that can be encoded in the 464.BMP texture). Each image/animation can still only have a maximum of 4 colors, but it is possible to modify this 4-color palette from one image/animation to the next. There are, however, limitations, given the technique used. Like anything non-standard, it took a long time to develop.

View attachment Spectrum DMD.mp4
 
Rainbow DMD ColorSet

Rainbow ColorSet is a different approach to DMD colorization (and beyond...). Each frame is monochrome (1 color), but the color changes according to one of the following modes :
  • mode 1 : the color of the dots gradually evolves each frame following an RGB color cycle
  • mode 2 : same as mode 1, but the background color also evolves
  • mode 3 : the color of the dots only changes from one animation to the next with a gradual transition
To accentuate the effect, I added RGB strips or textures to the playfield, cab, and translite, which take on the same color as the DMD dots with a "breathing" animation. This ColorSet will be fully functional and configurable in CV v4.

Example : Rainbow ColorSet in dots & background mode + RGB strips/textures on the DMD frame and the playfield apron.

View attachment Rainbow DMD cycling colors mode + breathing RGB strips on playfield.mp4
 
Rainbow DMD ColorSet part 2

To vary the effects, we can apply an animated GIF texture to the RGB strip and colorize it (or not) with the same color as the DMD dots. This feature will be available, configurable and fully functional in CV v4 with a choice of animated GIFs.

Example : Rainbow ColorSet in scene mode (mode 3) with smooth color transitions + RGB strips on the DMD frame with a colorized GIF texture.

View attachment Rainbow DMD multicolor mode with smooth transitions + GIF RGB strips on DMD.mp4
 
General chit-chat
Help Users
You can interact with the ChatGPT Bot in any Chat Room and there is a dedicated room. The command is /ai followed by a space and then your ? or inquiry.
ie: /ai What is a EM Pinball Machine?
  • No one is chatting at the moment.
  • Chat Bot Mibs Chat Bot Mibs:
    Torntabittz has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    brotherboard has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    GARRY040 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    BL2K has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Chilldog has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    rodneyfitz has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    ace19120 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Tomasaco has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Greek_Jedi has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Beermano has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    02browns has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    nitram1864 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    aeponce has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    JEAN LUC has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    lorenzom has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    maxangelo19 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Dragonslapper has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    royaljet has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Tyfox has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Goldtopboy has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    slick267 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    dabreeze has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Spike has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Tofa has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Atropine has left the room.
      Chat Bot Mibs Chat Bot Mibs: Atropine has left the room.
      Back
      Top