DJRobX

VIP Class
  • Content count

    448
  • Joined

  • Last visited

  • Days Won

    44

Everything posted by DJRobX

  1. I've just finished up a new feature for VPX - full 3D surround sound output for table effects. There are a few different ways this can be set up: 1) Basic 2CH audio - this should operate exactly as it did before. Forward/rear panning is ignored. 2) All effects to rear - Moves the table sounds to the back audio channels. This allows you to move the sounds into the cab like we were able to before, but without needing a second sound card. 3) Surround, front is front - This is the best setting if using a dedicated card for the surround sound table sounds. It makes the front channels the front of your cab (closest to you). This way if you use older versions of VP, the old legacy output still works well. 4) Surround, front is rear - This is a pretty "vanilla" surround setup. If you were to play on a home theater or with virtual 3D headphones, it's the most appropriate. The "front" speakers are in the rear of the cab (furthest from you). If VPinmame is also on the same card, will shares the audio with these front channels. 5) 7.1 surround (aka 6ch audio). If you want to drive your backglass, and 4 channel table sounds all off of one card, this is the setting to use. It shifts all of the table audio to the side and rear channels, leaving the fronts available for VPM and backglass sounds. This might also be a good setting to try if you are using just 2 speakers in the cab and 2 in the backbox,, the table sounds will pan partially towards the front in 4 speaker mode, letting the backbox give some of the surround effect. Please note that these modes are used in conjunction with the Windows speaker configurations. You can use any mode on any speaker system. Some sound cards even have virtual surround options that would work with this setup. You could set up a full 7.1 setup and dedicate it to just the playfield if you wanted with option #3 or #4, and use a separate card for VPM. I have tested the 7.1 mode and it works great, but I will use the #3 option for now as it is the most backwards compatible with VP9 and VP9 PhysMod5. Next up, we have changes to VPX to let us actually use these. There's a much revamped sound manager that lets you tweak the positions without touching the table script. So you can select the flippers and drag them down to the front of the cab right from there. There is also a new Fade parameter added to the PlaySound command that lets the scripts fully position the sound. Making the ball go full surround is fairly easy. Most tables are already set up for left/right panning, so you just add an additional, very similar function for front/rear fading: function AudioFade(ball) Dim tmp tmp = ball.y * 2 / Table1.height-1 If tmp > 0 Then AudioFade = Csng(tmp ^10) Else AudioFade = Csng(-((- tmp) ^10) ) End If End Function Then add the 9th parameter to PlaySound to include this function. For example, in Scared Stiff it looks like this: PlaySound("fx_ballrolling" & b), -1, Vol(BOT(b) )*1.2, Pan(BOT(b) ), 0, Pitch(BOT(b) ), 1, 0, AudioFade(BOT(b)) I've also done some pretty extensive work to fix the issues that required a VP restart every time you change the sound config. You can now flip the output between backglass and table or change the target sound cards without a restart. WARNING Because of the new sound manager features this increases the VP file version. Please make sure to back up your tables if you experiment with this build. Hey @toxie, I've committed this into my github here https://github.com/djrobx/vpinballx if you'd like to review and integrate. I spent quote a lot of time on this one, it's much more robust than the original 2-output hack that you integrated from me the last time. I know you want to move to BASS at some point. This isn't mutually exclusive with that. and might help you somewhat since I tried to eliminate some of the rampant code duplication, and steer some of the DirectSound stuff into PinSound.cpp. VPinballX.zip
  2. Yep I would think so too. You can grab the build in the first page to try it out. Toxie integrated it into the mainline VP so tables you save will be compatible. I also have used VPX 10.3 to load a saved table, and they give you a warning but they don't break, so it's pretty safe to use.
  3. Yep shouldn't be a problem.
  4. Yep. I put IF version_major > 10 or version_minor > 3 around the 9 parameter version of the PlaySound calls, so it will work with 10.3 or 10.4. The only thing about the VST plugin is that I don't know what will happen with a surround-sound source. It should be fine as long as the software supports multi-channel setups, but the built-in Realtek EQ for example only seems to have an effect on the front 2 channels.
  5. Ahh this is great. Now that I have Vp9 and PhysMod with surround, I switched to a single sound card 7.1 6ch setup "permanently". The best part is that the volume control finally works uniformly. Thanks again Toxie!
  6. Heh it's definitely not still in current production. Table should be a breeze to re-do with the newer VPM versions that handle the wheel for you. I can help out with the scripting if someone can work on the table.
  7. Just checked it out. Seems to work perfectly. Awesome! As I mentioned before the "Front is front" and "front is rear" are identical in VP9 because nothing deviates from the middle. But I think it's best to leave it exactly as it is. Thanks!!
  8. It will be the same as running VP 10.3. Which is to say it will send the table sounds out the FR and FL channels. That's not ideal (and is horribly not ideal if you're using a single sound card). which is why we're talking about backporting the speaker config changes. Yes! With this new surround feature you can now run everything off your U7. You can also use your current setup with just the U7 now and have it use the backglass speakers for surround effect, or you can add another 2.1 amp and put more speakers inside the cab. For all speakers off the U7 in 7.1 mode, connect FR and FL to the backbox, SR and SL to the rear of the cab, and RR and RL to the front of the cab. Tell windows you have no center channel and no sub to make it a 6.0 setup. And for anyone who's looking at this and wants an example table, Alessio took my updated WCS 94 table, which will do surround sound if it's running on 10.4
  9. Yep. Really that's fine, as long as the user can input their config and have the table sounds coming from the correct speakers it's worthwhile. I think the only option that becomes redundant is the "Front is front" and "Front is rear" options, as they'd be the same without forward/backward positional control. The remaining 3 options (all rear options, "front is front" and 7.1) will still will place the table sounds in different positions on the virtual field even without scripting or sound manager settings.
  10. Have you seen what they're supposed to look like? They're really not fine. They don't fade and blend colors like they're supposed to. I didn't realize they weren't fine until I played a real Tron. That's what inspired me to go home and fix VPM so we could do it correctly. As for VPX, try turning down the detail settings, turning off playfield reflections, etc. The end result still looks miles better than VP9 but it runs smooth as butter even on a VM in my mac laptop.
  11. Yes that's really easy, just leave all the sound manger stuff out of it. It is worth noting though that having the extra stuff data at the end of the sound entries surprisingly doesn't appear to break backward compatibility. I converted WCS back to VP 10.3 by just loading it in 10.3 and re-saving. It gives you a warning, but the older VP seems to be able to skip over the extra data without a problem.
  12. Oh I think doing so is a very good idea. Like you said, unless VP9 / PhysMod gets the update, you can't assign the sounds properly off a single card, and I really want to ditch my second card. Too many VP9 / PhysMod tables to ignore, so it's worthwhile I think. I'm pretty sure this sound code hasn't changed much (except you guys straightened out the nasty "*BG* hack thing) so it should be easy to backport.
  13. You won't be able to do the neon ramps well in VP9. We couldn't even do it well in VPX without some new code from VP dev to allow a texture to take an RGB color. I thought you were doing something for VPX. Super Bummer. The VPX table needs love. Lighting is way way more difficult in VP9. My code snippet above gives you the signals when to shut the lights off and when to bring them back on. They are just as applicable to VP9 as VPX. In VP9 this is usually done by swapping the whole playfield with a darkened image. So much work. Yuck.
  14. I went with a 2 x 2 amp setup myself (in addition to the 2.1 amp already in the cab). I didn't see a lot of inexpensive options for 4+ channel amps when I was shopping. I've done a few full surround conversions now and these are what I would recommend for "helper functions" Sub PlaySoundAt(soundname, tableobj) PlaySound soundname, 1, 1, Pan(tableobj), 0,0,0, 1, AudioFade(tableobj) End Sub Sub PlaySoundAtBall(soundname) PlaySoundAt soundname, ActiveBall End Sub Toxie added a PlayXYSound function in the default table, but IMHO it takes too many parameters to be useful (VBscript doesn't support optional parameters, unfortunately). The idea behind these is to make it easy to replace the existing PlaySound calls in the script without fussing with all of the more esoteric options. If you do need more control the original PlaySound command is fine. PlaySoundAtBall is good for replacing all of the rollover and collision sounds. PlaySoundAt is good for almost everything else (spinners, flippers, solenoids, plunger). Just be careful not to try and pass it a wall object, as they don't have X/Y locations (slings are good examples). I usually just find a nearby object or primitive and use that for those cases. With these it only takes a few minutes to take a table to full surround experience. The only "gotchya" is the script-controlled kicker sounds that don't let you specify more parameters, but you have the new sound manager settings to move those if you really want to make it perfect.
  15. First thanks for working on this table! It looks really nice! I'm happy to help you with scripting issues. As for the glow and reflecting of the neon ramps, you might look at how Dozer's Walking Dead table does the color GI, I imagine you'll need something similar. For the lost ball sequence - I think part of that problem was VPM didn't send the signal to turn off GI, so old tables faked it. I added that support to VPM a while back. This code should work. Take out all the existing GiOn and GiOff calls so only the ROM controls it. Sub UpdateGI(no, Enabled) Select Case no Case 0 'Top If Enabled Then GIOn Else GIOff End If End Select End Sub set GICallback = GetRef("UpdateGI")
  16. I've checked in support for some missing Stern IJ flashers since Dozer noticed them.
  17. Definitely not. Even if you're using DOF, you still have table sounds. The ball rolling is the most obvious example. Little sounds when the ball rolls over switches. Thumps when the ball hits a rubber. A clunk when it goes into a kicker hole. A lot of people use a second sound card to send those noises inside the cab, as it makes things so much more realistic. With this mod, now you can have those sounds appear to come from the actual locations of where these things are on the table. It so happens that Rusty's exciter speaker selection is the perfect candidate to do this. You can put 4 small speakers on the corners of your cab that sound great, without needing unsightly holes or vents to get the sound through the cabinet wall cleanly. The fact that they also give a tactile feedback just an awesome bonus. You can totally feel where the ball is and where things are going on the table. It's truly amazing and really brought the fun level of my cab up to another level.
  18. You are a total rock star, Toxie! Thank you! Rusty will have us covered there. He is to sound positioning what arngrim is to DOF.
  19. I thought about that, but it's probably more sensible to just make a PlayMechSound function that takes an object. Then the sound will follow if you move the object around on the table. PlayMechSound "fx_flipper1", LeftFlipper This could easily just be implemented as a VBScript function .. .it's really the same as: PlaySound("fx_flipper", -1, 1, Pan(LefFlipper ), 0, 1, 1, 0, AudioFade(LeftFlipper) So something like: Sub PlayMechSound(sound, tableobj) PlaySound(sound, -1, 1, Pan(tableobj), 0, 1, 1, 0, AudioFade(tableobj)) End Sub Then the sliders are still available for people that want to tweak relative to the "real" positions of sound on the table.
  20. Hi Carny, I committed code for Wheel of Fortune a while ago. You may want to make a new build that includes it.
  21. Yeah, I'm also hoping that by having the positional settings in the sound manager, that table authors will be more likely to set them correctly out of the gate for things that are not controlled by the script.
  22. The wheel issue is now solved. New versions of VPM provide a mech that returns a 0-359 number for wheel position that's very accurate. The problem with trying to do it in table scripts is that the VPM to VP communication is much too slow to catch all of the pulses with precision.
  23. @toxie Do we know if the WhiteStar support works in VPM or not ? People are asking on a FB group, and it's not easy to tell from the source code.
  24. Thanks for the fix, Westworld! If you can share the updated source I'll update the official repo.
  25. Hi Westworld, A user on Facebook (I don't know his user ID here) posted an issue with this change. When your B2S aspect ratio feature adjusts the backglass image position, it is also mis-aligning the DMD image meant for a third screen. See the attached screenshots. He is able to work around the problem by making a per-backglass screenres.txt file with the DMD position values counter-adjusted to compensate, but the aspect ratio settings ought to not affect the DMD window position. This has all reminded me that we need to get this change merged into the official source. I will do that once we get this small issue fixed. Thanks!