Search titles only
By:
Home
Forums
New posts
Search forums
Articles
New articles
New comments
Search articles
Pinball DB
Pinball Tables
Pinball Games
What's new
New posts
New articles
New profile posts
New article comments
Latest activity
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Welcome Back to Digital Pinball Fans -
please read this first
For latest updates, follow Digital Pinball Fans on
Facebook
and
Twitter
Home
Forums
Farsight Studios
The Pinball Arcade / Farsight Studios
Platform Specific
Other Systems
XBox 360
Farsight comes clean on issues with 360 platform
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="Sean DonCarlos" data-source="post: 32985" data-attributes="member: 152"><p>OK, if you insist... <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick out tongue :p" loading="lazy" data-shortname=":p" /></p><p></p><p>I did a very similar thing to make our surveillance systems talk to many different third-party device using many different data formats (some used ASCII, some used raw hexadecimal, others did more bizarre things) and massage the incoming data to and from the standard format used in the rest of the software. There was a set of "filters", one for each third-party device, that contained data that represented the "rules" for talking with that device. These rules were composed of very basic elements, but could be combined in various ways to enable complex processing, like recognizing credit card numbers on cash register printouts and masking the first 12 digits. The engine had the code to interpret the rules in the filter and process the incoming/outgoing data, but it was all very general-case: only those basic elements in the rules had to be implemented, everything else was multiple elements run in sequence.</p><p></p><p>You could analogously have a "pinball engine" that reads in "rules" composed of basic elements, such as play DMD animation, play sound file, increase the score, illuminate an insert, fire a kickout, maintain a count of how many times a particular object has been hit, test whether a switch is in a given state, etc. The engine has code that corresponds to each of these basic elements and actually performs whatever action is called for. Then you can combine these together to do more complex things, like "when this scoop is lit for jackpot and is hit, play jackpot animation and sound, increase score by 3M, illuminate insert #62 (which might correspond to the relight shot for the jackpot) and set the relight hit counter to 3 (decrement to 0 relights jackpot), pause 2 seconds, then fire kickout". This complex rule can be implemented in terms of the 7 simpler elements above.</p><p></p><p>The engine just sees the sequence of the 7 simple rules and executes the corresponding code in order, it doesn't know nor needs to know that this is the jackpot sequence. But on some other table where the jackpot is 15M and the animation/sound is different and it only takes 1 shot to a different target with a different insert to relight, you do not need any additional engine code to accomplish that. You just modify your "jackpot rule" with the new values for the new table. Or even on the same table, you can modify all the values and use the rule to implement a simple mode. There's nothing that says it must be used only for jackpots. So you can get a lot of mileage out of just a few basic elements if you code them wisely and make them general-case enough. If you have a wide enough palette of basic elements implemented in your engine, as Zen almost certainly would given they're on their fourth (?) iteration of their pinball game, you probably could accomplish some extremely complex behaviors. Not complex enough to properly emulate a ROM and its environment, instruction set and I/O accurately like TPA does, but enough to implement multiballs and intricate modes and so forth.</p><p></p><p>Whether this is actually similar to how Zen (or Silverball Studios for that matter) does it, I have absolutely no idea. I don't even play Zen. But it is certainly possible.</p></blockquote><p></p>
[QUOTE="Sean DonCarlos, post: 32985, member: 152"] OK, if you insist... :p I did a very similar thing to make our surveillance systems talk to many different third-party device using many different data formats (some used ASCII, some used raw hexadecimal, others did more bizarre things) and massage the incoming data to and from the standard format used in the rest of the software. There was a set of "filters", one for each third-party device, that contained data that represented the "rules" for talking with that device. These rules were composed of very basic elements, but could be combined in various ways to enable complex processing, like recognizing credit card numbers on cash register printouts and masking the first 12 digits. The engine had the code to interpret the rules in the filter and process the incoming/outgoing data, but it was all very general-case: only those basic elements in the rules had to be implemented, everything else was multiple elements run in sequence. You could analogously have a "pinball engine" that reads in "rules" composed of basic elements, such as play DMD animation, play sound file, increase the score, illuminate an insert, fire a kickout, maintain a count of how many times a particular object has been hit, test whether a switch is in a given state, etc. The engine has code that corresponds to each of these basic elements and actually performs whatever action is called for. Then you can combine these together to do more complex things, like "when this scoop is lit for jackpot and is hit, play jackpot animation and sound, increase score by 3M, illuminate insert #62 (which might correspond to the relight shot for the jackpot) and set the relight hit counter to 3 (decrement to 0 relights jackpot), pause 2 seconds, then fire kickout". This complex rule can be implemented in terms of the 7 simpler elements above. The engine just sees the sequence of the 7 simple rules and executes the corresponding code in order, it doesn't know nor needs to know that this is the jackpot sequence. But on some other table where the jackpot is 15M and the animation/sound is different and it only takes 1 shot to a different target with a different insert to relight, you do not need any additional engine code to accomplish that. You just modify your "jackpot rule" with the new values for the new table. Or even on the same table, you can modify all the values and use the rule to implement a simple mode. There's nothing that says it must be used only for jackpots. So you can get a lot of mileage out of just a few basic elements if you code them wisely and make them general-case enough. If you have a wide enough palette of basic elements implemented in your engine, as Zen almost certainly would given they're on their fourth (?) iteration of their pinball game, you probably could accomplish some extremely complex behaviors. Not complex enough to properly emulate a ROM and its environment, instruction set and I/O accurately like TPA does, but enough to implement multiballs and intricate modes and so forth. Whether this is actually similar to how Zen (or Silverball Studios for that matter) does it, I have absolutely no idea. I don't even play Zen. But it is certainly possible. [/QUOTE]
Verification
Post reply
Members online
No members online now.
Latest posts
Z
Strategies.
Latest: Zaphod77
Apr 18, 2024
WHO dunnit (1995)
Home
Forums
Farsight Studios
The Pinball Arcade / Farsight Studios
Platform Specific
Other Systems
XBox 360
Farsight comes clean on issues with 360 platform
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…
Top