Would it be possible to allow use of a normal map on the built in flipper object? This may result in less use of primitive flippers when possible.
-Mike
Posted 04 November 2016 - 10:31 PM
And i just added another tweak: The PinMAME timer is now triggered in sync with the FPS that one can reach (actually multiple times per frame update (currently 4x)).
So if in addition DJRobX can pull off some more magic on the VPM side, then at least this component will be close-to-optimal then.
Could this not actually make things a little slower in some situations? I haven't been able to test much lately but last weekend I got a few hours in with rev 2825 and I was having a zero luck / ability getting flipper tricks to work that I had previously been able to do fine. Spent a reasonable amount of time troubleshooting and seems that 2 factors were affecting it. The latest flipper changes in the last few revisions are making the tap passes more difficult. I'd have to get into that in another post, but the 2nd aspect was that since I updated the core.vbs to one of the latest on my mini-cab (to be compatible with the latest awesome PinMAME updates) the PinMAME timer had gone from 1ms with the old version to 10ms with the new. There was a clear and immediate difference when I reverted just the core.vbs while everything else was held constant.
I think it shows worse on the "tap" pass (the one where you let the ball roll down a non-rotated / resting flipper and quickly tap the button and release as quick as possible) because it needs two round trips to / from the ROM polling and return signal - the first press round trip signal to get the flipper moving (to ROM, then back to trigger solcallback routine / rotation), then again for the "off" portion to stop the flipper rotating. These tricks / observations also can only happen with flippers tuned to allow this which means needing "coil ramp up" being used and depending on the strength of the flipper somewhere between about 2.5 and 3.5. It also may not show as easily / be as reproducible as much for other people with other latency and input lag. I have my USB ports tuned to 500hz for quicker key / button press detection and have validated / verified my button presses for ms of accuracy and ability to press and release in as low as 8-16 ms (total for on then off).
Now with the timer at 10 vs. 1 it is clearly delaying the ability for the 2 x 2 communication elements for the press and release (both requiring a ROM return signal) and wipes out any ability for those tricks plus has a bearing and still easy to notice difference (for me / my setup at least) on even basic post passes. And this was also confirmed solely as a PinMAME / core.vbs timer aspect because on tables using direct flipper calls (bypassing PinMAME / the ROM entirely) the problem didn't exist (only the problem with the latest versions being too quick / powerful for subtle flipper "less-than-full-strength hits).
If you're hard coding and rewriting the source code and the way timers work to not even allow us to force 1ms PinMAME timer, then it seems that this scenario could potentially push us closer to the reproducible and observable negative aspects of the 10 ms timer vs. 1ms ones, like the above, where clearly the 1ms setting is making a difference and 10ms is making desirable flipper fidelity worse.
If it's 4 times per FPS rate though, I get that on a 120hz screen that it won't be as bad (my actual pin-cab rig) but it still will be twice as long as being able to force the PinMAME interval / timer to 1, but with not thinking from just my perspective / impact, for people with 60hz / FPS vsynced setups it will be even more divergent and still about 4 times slower than one can get with being allowed to manually override PinMAME interval settings to 1ms.
I'm thinking I might be able to show you with a demo / repro table if there's any question to my findings, but I don't really have the time at the moment to be able to create one and would need to tie-into a ROM based table / game to show the flipper enabling / release nuances on ball trajectory / strength with the 1ms vs. 10ms.
Bottom line is that there is absolutely an effect from the change of 1ms to 10ms for at least the PinMAME timer (and at least in some configuration / rigs) and if that is not considered I fear some source / hard coded changes to timers could go the opposite direction than improving things (or at least have regression in some areas while trying to improve others).
There's a whole lot going on lately about the flipper lag (which I think a major group of people are having simply because of their cabinet PF monitors being slow TVs vs. computer monitor speeds), but if we're not careful we could go back closer to VP9 where every hit on a ball, regardless of the timing or stroke / solenoid strength curve, will result in a hard hit / high velocity shot. One of the key things I notice playing real pinball, is how much more "well timed" I have to be to get a proper / full strength shot and things like coil ramp up aren't just useful for flipper tricks in this regard as when setting that parameter to an appropriate range helps to mimic this realistic behaviour from what I've seen. I know also older real tables in the wild can have more worn and weaker solenoids but in general on a real table it's still almost like baseball at times, with the proper timing of when to press (swing) and get the most out of the ball hit. In VP9 you could hit a backhand shot from a resting / cradled ball and have it explode off the flipper (without at least using scripted elements to help compensate like my flipper tap code). Making the flipper more switch like and seeking as little of time rotating / moving as possible gets the situation back closer to that old (and in my opinion at least) less desirable and less realistic behaviour.
These timer elements may make it hard or impossible for at least the end user to choose there preferred modes of playing / customizing VP.
Edited by jimmyfingers, 04 November 2016 - 10:31 PM.
Posted 05 November 2016 - 02:03 AM
Jimmyfingers -- Have you tested with nFozzy's flipper tricks code? It works amazingly well, imo, even with the latest engine updates.
Also -- how does one tune USB posts to 500hz? I'd love to try that. Can you point me in the right general direction. Thanks!
First of all Ben, my main point about in my previous post is about the timers and PinMAME observable difference as a result of 10ms vs. 1ms (the core issue being exhibited onto the flippers as a result) - not ways to work around it.
Second of all, and oh my freakin' god, again with this stuff and this time it's just too much that you're suggesting testing nFozzy's supposed code to me Ben! This is somethings that's been bothering me for a while and even helped keep me out of spending time on this forum. Ben, you've been heralding nFozzy's flipper tricks code every time you can over the last few months and for me personally (and likely only me when I tell you why) it's been disheartening, frustrating and increasingly infuriating to read because that code, quite simply, is MY code / idea that I created for VP9 over 4 years ago.
Posted 05 November 2016 - 05:21 AM
I totally appreciate the lesson, Jimmy. No argument here. You obviously know your stuff. You're right -- I could certainly stand to brush up on my VP history, including your BMPR routine (I've seen a few YouTube videos at least) and its relationship to current flipper physics.
I'll add the following, not out of self-defense, but rather just to provide a little context: Seems to me that I arrived on the scene around here (as a mere player, which I still am) right around the time your daily posts started getting a little less frequent. So, I assure you: What apparently looks like a lack of respect for your work, is simple ignorance on my part!
I really do appreciate you bringing all of the above to my attention. I don't blame you for being a little frustrated with me! Please do continue to provide me with a bit of education when necessary.
Thanks for all you do for this hobby, JimmyFingers. I hope you'll forgive me!
With respect,
Ben
Posted 05 November 2016 - 06:02 AM
I totally appreciate the lesson, Jimmy.

Edited by robertms, 05 November 2016 - 06:16 AM.
Behold Godzilla! Check out my monster pincab project here: http://www.vpforums....topic=32236&hl=
Posted 05 November 2016 - 06:26 AM
Jimmyfingers -- Have you tested with nFozzy's flipper tricks code? It works amazingly well, imo, even with the latest engine updates.
Also -- how does one tune USB posts to 500hz? I'd love to try that. Can you point me in the right general direction. Thanks!
Second of all, and oh my freakin' god, again with this stuff and this time it's just too much that you're suggesting testing nFozzy's supposed code to me Ben! This is somethings that's been bothering me for a while and even helped keep me out of spending time on this forum. Ben, you've been heralding nFozzy's flipper tricks code every time you can over the last few months and for me personally (and likely only me when I tell you why) it's been disheartening, frustrating and increasingly infuriating to read because that code, quite simply, is MY code / idea that I created for VP9 over 4 years ago.
Hey jimmy... if you noticed "over the last few months" that Ben was heralding the flipper tricks code I'm sure all you would have had to do, before experiencing all that frustration would have been to just say something. I mean... Ben seems like a pretty nice guy and I'm sure he would have been more than understanding and cooperative. I'm sure it would have just taken a heads up... maybe in a few sentences or less even.
Hate to see you upset over a little misunderstanding, buddy. I'm sure everyone appreciates all your contributions.
Posted 05 November 2016 - 06:39 AM
You're a good sport Ben, keep it up! While Jimmy is no doubt an icon around here and deserves innumerable praise and due credit for all he's contributed I for one do appreciate your enthusiasm, and stirring up the pot from time to time. Sometimes rehashing old conversation is what it takes to reach the next destination, especially when a larger audience finally appears to be ready for it.
Behold Godzilla! Check out my monster pincab project here: http://www.vpforums....topic=32236&hl=
Posted 05 November 2016 - 08:11 AM
also its really really hard to keep track of everything that is happening in the scene.. and especially if you would need to catch up on the last >15years.. ![]()
@JF: i still have to process everything that you wrote, but some intermediate question:
So if you use a revision <= 2830 AND set the core.vbs timer to 1, then everything is fine (or at least not worse than 'before'), did i get this right?
As for the timer differences: With the latest revision, the communication is actually vastly improved over setting the timer to '1', no matter how many FPS you have.
Explanation:
Timers in VP are not 'real' timers. They were always just triggered at the beginning of the frame only.
To make it seem that they are still 'correctly' working, at some point in VP history the accurate timers were introduced, which basically ran x times at the beginning of the frame (instead of only 1 time), to catch up on all the time they 'missed' during the rendering of the table, so that the script code actually does not really notice the difference.
Sidenote: There was actually code in the initial VP9 releases that was intended to run in parallel to the rendering (e.g. the physics and timers were planned to run in a separate thread at some point, so that one would get 'real' timers), but this was vastly unfinished, and in practice even introduced a lot of lag, due to the loose ends and the actually missing parallel threads.
So no matter how low you set the timer interval (e.g. 1), the communication with VPM was always just done at the beginning of the frame. And with VP9.X, this was on top even limited to 100 times a second, due to the internal implementation. In VPX this was changed to 1000, but even then, when you used vsync, then in practice this meant that you would only get roughly 'FPS times' of communication updates with VPM.
The new implementation now does the communication 4x per frame, at guaranteed sync points, which should be more than enough, without introducing too much overhead.
Edited by toxie, 05 November 2016 - 08:45 AM.
Posted 05 November 2016 - 12:19 PM
Great topic to follow and I learn a lot from it. It's a real challenge to keep up to date on all the developments and to read all the history on VP development out there
.
Slightly off-topic on the USB polling rate.
I'm on Windows 10 and for 8, 8.1 and WIndows 10 you need to do some additional steps to get the keyboard and mouse running at 500hz.
I added the info to the original thread from Jimmyfingers: http://www.vpforums....showtopic=29207
Posted 05 November 2016 - 05:47 PM
@Ben - I appreciate your follow-up and acceptance of things overlooked all in your typical positive-natured style. I am a bit confused though by the references to respect and then the following pictures of asses and "laughter" / absolutely making your night around that. I honestly don't get the full joke (it seems there's one being made) and am not sure if this is something flippant but the posts after yours seem to me to take away from your first one alone. If you're shaking my hand in one move but still pulling a face on another I'd like to know concretely and we can take this off-line in a PM. I know you didn't post the initial ass shot, but seems you liked it and I'm at a bit of a loss as to fully understand what that's really saying or commenting on about me / the issue I rose.
To make the rest as short as possible and move on, I can not disagree with Drybonz and it's a valid point with letting things build over time vs. dealing with more quickly. Like anything not communicating typically makes things worse down the line. However, I had pulled away from spending time trying to communicate on the forums for a few reasons (from real life issues to aspects around VP / these forums including the issue at hand) and was trying to take a step back from it all. While having stress related physical issues, stress from the forums and something that was a hobby was something I was just trying to ignore and also hope that the posts regarding the incorrect / over-the-top crediting would tapper off. One time in the summer I took a quick look at VPF and saw another instance of this stuff and it did bother me but was leaving to go out of town to do some hopefully relaxing and other "real-life-issue-distracting" fishing and in the car it still bothered me the whole trip (and it bothered me that I was bothered by this stuff - part of the reason I gave up a little on VP / VPF). I had considered getting back on the laptop once I got up to my destination to make a post to raise the point / bring attention, but once I got there and looked around I figured the better thing was to just actually fish and do the escape I had planned. Letting it go longer was also related to the fact that I didn't really want the first post after a couple months to be about this, as well as knew that it would take more time then I really wanted to give (again possibly still in vain like other efforts) to do a proper post, with due diligence on my end and demonstrate that I practice what I preach with regard to accurate references and searching / verifying things before posting, as well as digging up and making notes for relevant links. That all takes considerable time to do. As it was, it still took most of my Friday evening to get done and wasn't still my first choice of how I had wanted to spend a quite night in and left me again with a massive head and neck ache, leaving me having to consider again just totally abandoning this "scene".
@senseless - thanks for updating the USB polling tuning topic with your findings for the newer OSes - much appreciated and perfect to just add the post to that thread. I have not checked it out yet but have purposely stayed on Windows 7 on all my home systems so don't have any method to try it out yet.
@Toxie - There was 2 things I noticed about the tap trick being more difficult. One seemed to stem from just the latest version alone (since the sped up flipper changes) as could be witnessed on tables where I'm using direct / bypassed flipper calls so the VPM / timer issue is / was irrelevant. This first one needs a bit more testing / determination but appeared to be valid / consistent still. The 2nd aspect was more trivial and easy to reproduce and was solely related to the core.vbs versions and seemingly the timer changes from 1ms to 10ms. Going back even as far as rev2616 but using the latest core.vbs gave my 2 VPM controlled flipper test tables a total inability to do the tap trick and reverting back to an older core.vbs fixed the problem. Now to be totally clear and for full disclosure, I have not gone back and simply changed the PinMAMEInterval value to 1 from 10 on the rev2835 include core.vbs in isolation but when I text compared that core.vbs to the one that resolved the flipper tricks issues, the only thing that made sense and stood out to be possible to effect flippers / VPM was that they differed in their "PinMAMEInterval =" value from 10 to 1. So just swapping out those two core.vbs files made the problem occur or resolve.
To back up for a second and on what I was referencing / explaining in what I meant / mean by "tap trick" ("tap pass") in my post about the 1ms vs 10ms timers (and ironically enough it's not related to anything anyone can do with flipper tap / tricks scripting work-arounds / code as that just deals with the flipper from a held position, then released, then pressed again before returning to start) here is a link to a video to demonstrate the specific trick / nomenclature that I am citing: (). The actual "tap" trick and elements I was saying about how coil ramp up play a role in non-"perfect" hits happens from the flipper at the start position and commencing it's swing. I think sometimes the tricks / maneuvers are called different things but this is the one where some type of coil-ramp up is needed and fast enough systems to be able to register the "on" and then "off" again of the flipper quick enough to actually have had coil ramp up values still in play and as a result the flipper not fully charged. This trick is the hardest one to get in VP as it can't be done in scripting without forcing an additional delay to the flipper to buffer and all previous efforts - short of using PMv5 / VPX coil ramp up - have not been successful.
Basically even with <2830 revs just changing the core.vbs to a version before the increase to 10 ms for PinMAMEInterval (back to 1ms) allowed me to regain the ability for the non-full strength hits on appropriately configured VPM tables / flipper of the flipper (on and off again quickly or also - and importantly I would add - late flipper presses for attempting to meet a ball in motion and coming into contact range with the flipper - like the baseball swing example I gave). It effects more than just the "tap" pass / trick but that's the easiest way to isolate and demonstrate the issues.
Posted 05 November 2016 - 07:06 PM
I am a bit confused though by the references to respect and then the following pictures of asses and "laughter" / absolutely making your night around that. I honestly don't get the full joke (it seems there's one being made) and am not sure if this is something flippant but the posts after yours seem to me to take away from your first one alone. If you're shaking my hand in one move but still pulling a face on another I'd like to know concretely and we can take this off-line in a PM. I know you didn't post the initial ass shot, but seems you liked it and I'm at a bit of a loss as to fully understand what that's
really saying or commenting on about me / the issue I rose.
No disrespect to you Jimmy, Ben was just acknowledging he got his ass handed to him. That's all, no other subtext to look for.
Behold Godzilla! Check out my monster pincab project here: http://www.vpforums....topic=32236&hl=
Posted 05 November 2016 - 07:16 PM
I am a bit confused though by the references to respect and then the following pictures of asses and "laughter" / absolutely making your night around that. I honestly don't get the full joke (it seems there's one being made) and am not sure if this is something flippant but the posts after yours seem to me to take away from your first one alone. If you're shaking my hand in one move but still pulling a face on another I'd like to know concretely and we can take this off-line in a PM. I know you didn't post the initial ass shot, but seems you liked it and I'm at a bit of a loss as to fully understand what that's
really saying or commenting on about me / the issue I rose.
No disrespect to you Jimmy, Ben was just acknowledging he got his ass handed to him. That's all, no other subtext to look for.
It wasn't really a subtext thing as I just didn't get the main visual / reference, but makes sense now. Anytime a bare ass is shown, it can have a few meanings / sentiments - I was just simply not getting the joke and unsure who it was on.
Posted 05 November 2016 - 08:34 PM
It wasn't really a subtext thing as I just didn't get the main visual / reference, but makes sense now. Anytime a bare ass is shown, it can have a few meanings / sentiments - I was just simply not getting the joke and unsure who it was on.No disrespect to you Jimmy, Ben was just acknowledging he got his ass handed to him. That's all, no other subtext to look for.I am a bit confused though by the references to respect and then the following pictures of asses and "laughter" / absolutely making your night around that. I honestly don't get the full joke (it seems there's one being made) and am not sure if this is something flippant but the posts after yours seem to me to take away from your first one alone. If you're shaking my hand in one move but still pulling a face on another I'd like to know concretely and we can take this off-line in a PM. I know you didn't post the initial ass shot, but seems you liked it and I'm at a bit of a loss as to fully understand what that's
really saying or commenting on about me / the issue I rose.
Posted 05 November 2016 - 08:45 PM
@JF: so i'm still a bit confused. i interpret it though that the current situation is good as-is (with the core.vbs switched to the 1 interval)? as the tap-pass should now solely depend on the coil ramp up vs strength and not the weird delay/bug that was in there before.
but i guess you could also not test the very latest revision yet, which should improve the VP<->VPM turnaround time substantially (e.g. better on the average than the 1 interval). please let me know how this revision works for you if you have some time/motivation for it. THANKS!