Bally WIP SS Recreation FP Theatre of Magic (Help build the theatre!)

Solid State Machines
Future Pinball
what are you using for baking? what plugin, AIO, PBR?
i HAD about 30gig of plugins, Im not sure I have them anymore
Oh no plugins yet. While I have everything modeled in blender, I've not yet figured out the rest of it. That is on the to-do list.
 
Oh no plugins yet. While I have everything modeled in blender, I've not yet figured out the rest of it. That is on the to-do list.
Go to those links, that's some cloud storage i stach stuff at... Im sure you will find something you can use.
 
Happy New Year to you all!!!

@madmrmax

Hallo Mark.....I couldn't be there so I'm not informed about the progress in TOM.
I noticed a couple of messages in my inbox, I have to see if there are any from you.
I see that here in this thread too, it's a bit still, I hope you're well.....

I noticed on the first page,that you still haven't integrated the magic box(trunk),since I have not been present recently, I cannot know,if you have had. some difficulties.
Let me know!
 
Last edited:
Welcome back @Paolo !

Things are progressing. I have the trunk integrated! It spins and supports both magnet and trunk hole for lock. I don't have the scripting done to have it play any modes or such, but at least the trunk is something I'm close to checking off.

I've done some slight physics tweaks to the table to be able to play and hit all the shots without requiring any hidden pinbelt/ball accelerators.

I've spent a lot of time on the DMD extracting fonts from the ROM. I still need to go from the bmp outputs using Gfx2DmdF to actually put together the fonts (with proper character sizing, etc).

For DMD animations I spent too much time attempting to fine tune each frame I was capturing from WPC Emu Debug view. Many times when capturing frames you get these frames which show the transition between one frame and the other (kinda like how classic animations are drawn). These "in-between" frames are not in the ROM but are just an aspect of how the IRL pin renders. But after I spent a lot of time on that it really didn't look as clean visually without these in-between frames once I tried it in FP's DMD. So now I'm scraping my idea and going back to capturing full DMD animations with in-between frames using pinmame RAW files from VP's TOM to segment different DMD animations together. What I am going to do is to remove duplicate frames which are in the RAW files. Instead I'll manually encode DMD timings (ex: hold this frame for 130ms then next frame, etc). So I've also spent a lot of time figuring out the DMD script system I want to use. I've spent a lot of time working with LtJazz's DMD code and figuring out what I need to keep, change, or add to use for TOM.

I'll update the first post to provide progress updates!
 
Last edited:
Many Thanks Mark!!

Fantastic....so Tom proceeds, and I'm very happy about that, and the DMD part is the most painful to do, especially if you're extracting them yourself too, from the "rom".take your time.
Glad to hear that the trunk i made works, and i can't wait to see it in action on the table,
Mark, feel free to ask me anything that I can help, and also in the table test if you want.

Regards
 
Last edited:
I want to give an update on progress, with video! The Theatre of Magic trunk work that @Paolo provided has been fully integrated! I want to thank him for the effort in figuring out all the details (as well as how Rav helped provide some input). While the concept of using a BAM miniplayfield is the key and makes sense, it took time and figure out all the complexities to make it work -- with the fact that the trunk has a hole as well as a magnet, -- made everything a bit more involved.

Video below is demonstrating the trunk hooked up to script to have easing animations and logic to correctly move between sides. In addition, some more artistic work was done to do things like the trunk shadow as well as internal metal pole so it doesn't look like the trunk is floating. Lastly, the trunk features different modes using the magnet. Sometimes the magnet will catch the ball and drop it without turning to drop it in the back lock. This will drop the ball back to the playfield for the user to field it.

I'm using a lot of the xBam Calls to have invokes happen after timing without using a bunch of FP's timer objects as well as not having to use Execute/Eval commands. I really appreciate the work @ravarcade has done to provide that support.

I've updated the first post to highlight what else is in progress!

View attachment MagicTrunk_small.mp4
 
2/3/25 - Some updates over the weekend
  • Updated the Mirror visual (height as well as angle of inside structure, mirror frame)
  • New plastic for mirror
  • Better tiger saw bracket, minor changes to tiger saw orientation
New
Theatre of Magic (clean)4.png
compared to old:
Theatre of Magic (clean)5.png

I've been looking at this IRL image to get a good visual understanding:
1738646107820.png
 
Last edited:
I love this table, but I'm still scratching my head on what's the best way to approach the mirror. My first thought is importing the table to Blender, making the object into a mirror there with the camera properly positioned, placing a ball nearby and moving it one millimeter each time and saving the resulting texture around the entire range of visibility of the mirror. Then back in FP would make a big invisible trigger that detects the ball coordinates and loads the correct texture back. It wouldn't work well if you move the camera around, and it wouldn't look completely "smooth" because of the millimeter gaps, but it's a compromise we may have to take.

As a completely separate thought, FP uses default shaders which BAM may be able to completely redefine. Those act based on camera position and are responsible for overall appearance, and things like enamel mapping. For example here's a bumper and a wall with normal shaders, and the same but loaded into the backglass with cheats and therefore lacking the shaders used for objects in the playfield. Without shader, the object is completely flat and irresponsive of camera movement, with no lights or shadows at all.

fp-shader.gif


Flipping a shader on its head so much that it "acts" as a mirror and load it into an object may technically be possible, but it would be incredibly hard to achieve. BAM gurus may disagree though, some years ago I would have said the same about things that ended up being implemented.

I can't think of any other way to fake a mirror like this.
 
The way backwall mirrors are done in VP is to literally have a mirrored double of the entire table positioned at the back of the cabinet, and then have the mirror be an object on the backwall with an opening to show that entire mirrored playfield. you would need to mimic all the table actions to match to show on the mirrored playfield items as well and have a fake ball model that would position itself to mimic the real ball, etc. The mirror object would need to be made in a way to have an opening/hole to allow items behind the backwall to be visible (like what I did on Star Wars DSA GE).

It's.... alot to do.
 
Thanks for the interest @Wecoc ! I'm currently handling the mirror as a duplicate playfield (BAM mini-playfield) angled in the back of the table to match the mirror. I think what Terry describes is exactly what I'm doing, and it mirrors what VP is doing.

1738867587932.png


View attachment 2025-02-06 14-28-34.mp4
 
The way backwall mirrors are done in VP is to literally have a mirrored double of the entire table positioned at the back of the cabinet, and then have the mirror be an object on the backwall with an opening to show that entire mirrored playfield. you would need to mimic all the table actions to match to show on the mirrored playfield items as well and have a fake ball model that would position itself to mimic the real ball, etc. The mirror object would need to be made in a way to have an opening/hole to allow items behind the backwall to be visible (like what I did on Star Wars DSA GE).

It's.... alot to do.
It definitely took a bit of work, but starting with how you did the Star Wars DSA GE was key. Then is was just a lot of work. There is also challenges of drawing order of content that is in the mirror playfield to not somehow come through where it isn't wanted.

On the plus side -- with BAM's mini playfield, I don't have to do any complex geometry math to calculate the ball position in the mirrored view. I just use a FP toy of the mirrored ball (transpose calculation to the MP's original position) and BAM automatically "pops" the toy to the mirrored location. I'm so glad I didn't have to learn the math.
 
That looks amazing! I thought about the Mini-playfield because after all that's how most games handle reflection (I talked about this some time ago here), but I was afraid the cut around the glass would be too obvious for it to actually work. This video proved me wrong :clap:
 
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:
    Nightvoice has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    drew1 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Cicero Silva has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    manstein has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    1000 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Destruck62 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    WeadlyDeapon has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    SaixXemnas has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Gege has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Fatmeatball has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    titomajo has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    daveseawater has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    rockin ray has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Citron68 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    hammerpower has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    max37170 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    OZZOLO has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    GG974 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    MSev has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    sghure has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    huik has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    ellitehaxor has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    KenF has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Mario1963 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    etherealmusic has left the room.
      Chat Bot Mibs Chat Bot Mibs: etherealmusic has left the room.
      Back
      Top