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

Future Pinball
Wonderful reading here... LtJazz, your commitment to this table is to be commended. You have done a fascinating job working on this table. Thank you also to everyone else involved in the project. It was a wonderful and most informative read. To think it all started with Paolo thinking that LtJazz was a creator from the past... It is always great seeing many different minds coming together to accomplish a specific purpose. Thank you again everyone involved in this wonderful project.
 
Given the Upscayl performance, I modified most of the table textures.

I upscaled the plastics and apron texture (same file) to 2048 x 4096 (~ 4k)
I upscaled the sideblades, the cabinet, the room, the translite and the main ringmaster textures, to 2048 x 2048 (~2k)
For the playfield texture, I made a 4096 x 8192 upscale (from an original 1024 x 2048 texture) and I reworked in detail the lamps and decals under Paint.net. I then regenerated the 5 playfield textures at 2048 x 4096 (~4k)

In the end, even on my humble 1680 x 1050 screen, the improvement is obvious... isn't it 😊

_CirqusVoltaire_v3.0 4K WIP.png
 
Given the Upscayl performance, I modified most of the table textures.

I upscaled the plastics and apron texture (same file) to 2048 x 4096 (~ 4k)
I upscaled the sideblades, the cabinet, the room, the translite and the main ringmaster textures, to 2048 x 2048 (~2k)
For the playfield texture, I made a 4096 x 8192 upscale (from an original 1024 x 2048 texture) and I reworked in detail the lamps and decals under Paint.net. I then regenerated the 5 playfield textures at 2048 x 4096 (~4k)

In the end, even on my humble 1680 x 1050 screen, the improvement is obvious... isn't it 😊

View attachment 35006
It looks amazing! I admire your attention to detail and no compromise attitude towards this project. It really shows that you have a genuine love for this table and this project. I take my hat off to you...
 
It looks nice. I used Upscayl to increase the resolution of the playfield texture on Avatar to 2048 x 4096. In a previous version, someone had taken a 1024 x 2048 texture and used a standard video editor to increase the size to 2048 x 4096 but it was loaded with artifacts. So I got the original 1024 x 2048 texture on the first version of the table and used Upscayl on it. It looks really nice. My previous posting here showed a comparison of a small area on it. I had found another version of the playfield that was 2048 x 4096 on VPForums but it looked like someone had used some sort of upscale algorithm on it so I decided to use my Upscayl version instead.
 
Last edited:
I found this review of Upscayl on YouTube. He compares it to a program that costs over $100. It fares pretty well considering its free.

 
I finished FizX integration on Cirqus Voltaire (XML settings, left & right flippers prehit, 1K ball, new bumper model) and I modified the table accordingly (many settings to change and small layout adjustments)

Last straight line before publication : ultimate tests, video, screenshots, packaging & installation instructions
 
Life is not a long quiet river... 😕

This week-end, I again encountered problems with the 2 spinners. I had solved the spinner problems (before integrating FizX) by changing the T1 model to a T2 model (larger) because the ball sometimes blocked on the T1 model. With the XML parameters required by FizX, the ball no longer blocks on the T1 model (good !). So I went back to a T1 model (because the T2 model is ugly in narrow lanes), but the problem of spinners that get stuck in a horizontal position has made a comeback... again. 😡

I tried changing the XML spinner settings without success. So I took the bull by the horns ! (French expression). 😣

I wrote a script to control the spinner rotation at the end of the stroke. When the spinner spins at less than 4 revolutions per second, I release the angulardamping (thanks to BAM ! 😉). This prevents the spinner from braking too quickly and stopping in a wrong position (horizontal for example...). When the spinner spins at about 1 revolution per second, I start to control its angle. When the spinner reaches an angle of 30 to 60 degrees before vertical (vertical = 180° or 360°), I raise the angulardamping. This slows down the spinner more strongly, which stops around the vertical position (at 180° or 360°), what is the desired effect.

I handled 2 exceptions :
- when the ball speed is low, the spinner can start spinning with a speed lower than 4 rotations per second. In this case, I release the angulardamping from the start.
- with a low angulardamping, when the spinner is almost at a standstill, it risks starting to oscillate. In this case, I raise the angulardamping even if the spinner has not reached the desired angle.

I did some tests and it seems to work very well, now. 😌
Cherry on the cake (French expression), it is possible to force the spinner to stop by always presenting the same face.

I hope that was the last problem to fix before publishing the table. 🤨
 
Last edited:
Again amazing work! And the description of, and solution to, solving the problem are top notch. I hope you have been enjoying playing the table while working on it, and that it gives you many years of enjoyment. :-D
 
Life is not a long quiet river... 😕

This week-end, I again encountered problems with the 2 spinners. I had solved the spinner problems (before integrating FizX) by changing the T1 model to a T2 model (larger) because the ball sometimes blocked on the T1 model. With the XML parameters required by FizX, the ball no longer blocks on the T1 model (good !). So I went back to a T1 model (because the T2 model is ugly in narrow lanes), but the problem of spinners that get stuck in a horizontal position has made a comeback... again. 😡

I tried changing the XML spinner settings without success. So I took the bull by the horns ! (French expression). 😣

I wrote a script to control the spinner rotation at the end of the stroke. When the spinner spins at less than 4 revolutions per second, I release the angulardamping (thanks to BAM ! 😉). This prevents the spinner from braking too quickly and stopping in a wrong position (horizontal for example...). When the spinner spins at about 1 revolution per second, I start to control its angle. When the spinner reaches an angle of 30 to 60 degrees before vertical (vertical = 180° or 360°), I raise the angulardamping. This slows down the spinner more strongly, which stops around the vertical position (at 180° or 360°), what is the desired effect.

I handled 2 exceptions :
- when the ball speed is low, the spinner can start spinning with a speed lower than 4 rotations per second. In this case, I release the angulardamping from the start.
- with a low angulardamping, when the spinner is almost at a standstill, it risks starting to oscillate. In this case, I raise the angulardamping even if the spinner has not reached the desired angle.

I did some tests and it seems to work very well, now. 😌
Cherry on the cake (French expression), it is possible to force the spinner to stop by always presenting the same face.

I hope that was the last problem to fix before publishing the table. 🤨

It looks like you solved it but have you seen this posting?

 
It looks like you solved it but have you seen this posting?


I had not seen this post. Yet I had researched my spinner problem on the site.
But I found a post about a BAM version in which Rav explained how to read or modify the angulardamping value of spinners.

Comparing the 2 scripts, I find similarities (in particular 1 trigger and 1 timer per spinner) but I opted for a different approach. I do not modify the spinner mass. I vary the angulardamping to control the "braking" of the spinner at the right time depending on the spin speed and spinner angle.

In your script, I see that there are also angle measurements but I have difficulty in interpreting object oriented programming. I'm an old school programmer, educated in structured programming. 😉
 
Again amazing work! And the description of, and solution to, solving the problem are top notch. I hope you have been enjoying playing the table while working on it, and that it gives you many years of enjoyment. :-D
I had a lot of fun working on this table and learned a lot. It is a reward in itself. My only regret is never having had the opportunity to play real Cirqus Voltaire pinball.
 
I recommand you to Use @Wecoc method for spinner and gate.

 
Hi guys,

A new feature absolutely useless and therefore... strictly essential !

View attachment 35503
great idea with the eyes tracking the ball.
I remember a few years back I had the head of the Joker on the Batman Dark Knight table that followed the ball at all times...kinda creepy !
This also would work nicely in "FunHouse"
 
There are a few other tables where an eye or eyes follow the ball and it is kinda creeepy but love it.
 
I recommand you to Use @Wecoc method for spinner and gate.

I actually read this post. But I preferred to first try to deal with my spinner problem using a script before considering a more time consuming solution.

However, I admit that being able to use a semi-transparent texture on a spinner is quite tempting. It may be for the next version. :wink:
 
There are a few other tables where an eye or eyes follow the ball and it is kinda creeepy but love it.
Yes. it was too tempting... and not very complicated to achieve with BAM.

The main difficulty was to ensure that the ringmaster's eyes (a set of 11 textures) followed the ball in play and not the large ball in the cage which is permanently on the playfield or one of the balls captured in the 2 juggler kickers or on the hiwire ramp. But therein lies the fun of challenging yourself and solving obstacles that arise.
 
Last edited:
One thing leading to another, I further improved my spinner code :
- when the spinners stop in a vertical position, they always present the same face, this feature being configurable in the script
- I took advantage of the new spinner timers to synchronize very precisely the spinner mechanical sound on its rotation speed as it decreases

I also improved my DMD manager to manage the display of dynamic messages in the foreground (event animations) :
- a foreground message is queued to synchronize with a foreground animation (as with FP's queuetext method)
- now when the DMD manager processes the message (e.g. displaying the score), he can refresh its content (the score value) in real time
- so this allows me to automatically update the spinner score displayed in the animation each time the spinner does an extra spin without having to regenerate a message in the script

I also added the possibility to use an incremental effect to animate the display of a dynamic message
 
Never done...
I know... That's what I've been repeating to myself over and over for months. But in the end I defeated my perfectionism ! :wink:
 
Eventually, I found a way to set the ringmaster box under the main FP playfield and not under a pseudo playfield which is 30mm above the main playfield. It opens interesting perspectives for CiRQuS VoLTaiRe v4 with the possibility to have reflections on the playfield, to use standard shadow maps and to use raycast shadows. The solution was obvious and easy to achieve but I hadn't thought of it earlier. :confused:

_rmbox test table.png
 
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: Lbyms has left the room.
      Back
      Top