This is a general criticism of "epic" television series.
Shows that rise above the usual crap that gets put on TV, don't dumb things down to the audience, and gain a strong - if not rabidly loyal - fan base. Shows that are "epics" in the sense of having multiple story lines hanging off a longer story arc meant to resolve YEARS down the road instead of before the credits roll at the end of each hour.
I'm talking about shows like "Babylon 5," "Battlestar Galactic" (the new one), "Lost," "The X-Files."
All these shows had characters the fans truly CARED about, they had engaging plots - mysteries actually - with clues being revealed little by little over years. Shows that kept the fans guessing, and watching.
All these shows also went awry and largely disappointed the fans in the end.
Of the shows I mentioned, arguably "Babylon 5" had the most palatable ending, but the show was marred by truly awful made-for-tv movies, an extraneous season on the air after the real story ended with an ill-conceived and unnecessary ending, all of which led into an equally pointless spin-off series.
"X-Files" also suffered the sorry fate of additional seasons beyond the point the show should have been allowed to end with dignity, and a couple of equally pointless theatrical endeavors. Worse yet, the main story arc over all those years - regarding the conspiracy that drove Agent Mulder - was never really resolved.
"Battlestar Galactica" outright STOLE it's ending from the last episode of the 1980's BBC "Hitchhiker's Guide to the Galaxy" television series. BSG was a show that literally kept me on the edge of my seat before each commercial break and then totally dropped the ball when it came to wrapping up the story.
Now I've just seen the end of "Lost" after six years of building mystery and largely empty promises by the show's creators that they would explain everything. Like BSG, I have lengthy posts on this blog detailing my disappointments.
No. When a show that has intelligently engaged me and week after week, year after year, built toward something totally blows it at the finale it's not so much disappointing as it is INSULTING.
Where and why do these shows go so f*ing wrong?! Well, I've identified some reasons, and if anyone out there reading this is working on the next epic serial drama maybe you can avoid pissing off your future loyal fans if you keep this stuff in mind.
1. No Clear Plan - so many of these shows seem (and probably are) made up as the go along. A great mystery is introduced without anyone involved with the show having a clue what the answer to the question is. You can possibly get away with sub-plots (the "B" and "C" stories) being cobbled together, but the main story arc needs to be plotted out. That's why they call it a PLOT. Once it's in place, for God's sake, STICK to it!
2. Painting Into A Corner - this can go hand-in-hand with #1 if the show presents a mystery and then makes up crap that produces inconsistencies that mean they can NEVER write themselves out of it without ignoring their own continuity. All the more reason to have a plan in place. This can also happen to shows that are at risk of being canceled before they get to reveal anything important, or take too damned long to drop the clues and lose their audience because nothing has meaning or the story doesn't seem to be going anywhere. Which it isn't if you haven't done #1.
3. Don't Rush It! - Ok, so maybe you've got #1 in place, you've kept #2 in mind, but the show is going to be canceled at the end of season 3 and you had a 5 year story arc. Do you just rush to the ending or let the show die "open ended?" "Babylon 5" faced that problem, and they rushed it by showing us the end of the five year story arc at the close of season 4. Fine, right? Well, number one it FELT terribly rushed compared to how the story had been building, but then they got ANOTHER SEASON. Oh crap! What do they do now? They've got their fifth year, but already burned the arc. And we got a hurried NEW plot, a lackluster season, and a second ending to the series nowhere near as satisfying as the one we already had - and obviously contrived to allow for the story to continue. Which is did, in the even less impressive "Excalibur" spin-off series, itself a one-season blunder.
4. LET IT DIE! - This one is aimed more at the fans than the creators of a show. Ok, I'm a fan of shows too, and often wonder what I'm going to do for that hour each week once the show is off the air. But that is no reason to keep beating a dead horse. You know what happens to dead horses? They STINK. "Babylon 5" got rushed to it's ending, but at least it gave the fans that ending. But the fans felt understandably ripped off by not getting that last, damned season and began one of the many "save the show" campaigns. Same thing happened when FOX was set to cancel "X-Files" and later "Buffy the Vampire Slayer." A little more problematic since we didn't get a solid ending and the fans either wanted an explanation, or some just wanted MORE show. That can be a problem with fans who are about quantity rather than quality. But a show with hundreds of awful, pointless episodes with a replacement cast are NOT a substitute for, say, 13 solid, tightly written, acted, and produced episodes.
A lackluster "zombie" season after a show has had it's run is not going to be as good as waiting for a single TV or theatrical movie that wraps things up. So, please, fan boys and fan girls - LET YOUR FAVORITE SHOWS DIE WITH DIGNITY.
5. Have A Back-Up Plan - since TV networks are fickle and often cancel great shows for no logical reason there are no guarantees a show will get the time it needs for the story arc. Well, one way would be for show creators to insist on three or five year deals (in the same way the three picture deal in the movie industry is pretty standard), shop a show around to other networks after it gets canceled (but stick to the original story arc, not shop it around for more seasons AFTER the story arc has resolved), get a green-light for a movie deal as a way to wrap it up if the show gets canceled, or - if all else fails - finish the story in some other medium like a book, comic, or webisode.
6. Have an ENDING - a great series should be like a novel with a beginning, a middle, and an end. The individual episodes should be "chapters" within that novel. So many shows are reluctant to kill off main characters too - always hoping for that lucrative "spin-off" property I suppose. But in a good show NOBODY IS SAFE. That keeps it interesting for the audience, knowing anyone could die. Everyone could die. If you've made the show all about one or two characters, and without them there is no show, where is the drama if everyone knows you can't kill them off? That leads me to my final point:
7. Plot Driven, Not Character Driven - I am so sick of hearing television writers describe their shows as "character driven" or "character studies." A show's plot should be like LIFE, it will go on no matter who gets sacrificed along the way. The PLOT has to be the main character, and all the characters supporting players. Too damned many shows these days toss out the plot at the end because the writers and producers mistakenly think the characters and their relationships, hopes, dreams, pasts, and futures are more important than the plot. Bullshit! The plot has to be the one, and only, character you can't kill off. I believe every Hollywood hack working on a series should be forced to write a death for each character in the show and ask whether the death of that character also kills the plot. If the answer is yes, then you don't really have a story, you have a biography. A biography of THAT character. Go back to the drawing board and figure out how the story progresses without any of the existing characters. A good story is things happening TO people and having them realistically react to it. A bad story is one where things only happen because of the characters' actions. If the natural, believable end to the story is "everyone dies" then KILL EVERYONE.
There ARE shows that have gotten it right. "Star Trek: The Next Generation" managed a fairly decent finale by tying it back into the pilot episode, even if they did rip off the rest of the storyline. "Star Trek: Voyager" did okay as well, by dealing a major blow to the Borg and bringing the Voyager crew home to the Alpha Quadrant. "Farscape" was totally robbed of a final season to wrap things up, but eventually did get a deal for the "Peacekeeper Wars" which was like a condensed season on speed and delivered a very satisfying finale. "Firefly" was also a stupendously good show that got robbed by not even getting a full season, but the 13 hours we did get were pure (shiny) gold. It also got an equally good, if not frenetically paced, finale in the theatrical movie "Serenity." "Angel" (the Buffy spin-off) had trouble finding it's legs, but the series finale was as satisfying as the end of "Butch Cassidy & The Sundance Kid." The US version of "Life On Mars" (which I've written about previously) had what I thought was a very nice ending that explained everything - unlike the British original version that had a very ambiguous finish.
So, please, TV writers stop making it up as you go, stop phoning it in at the end. Fans, please stop trying to "save" series that have already ended.
Monday, May 24, 2010
In the end, "Lost" lost me as a fan
Last night I, along with millions of other fans, watched the series finale of "Lost." To say I'm a little disappointed would be an understatement. I was hoping for something a little more coherent. A little more of an epiphany, or a Shyamalan-esque twist ending. The "Lost" writers delivered on NONE of these things. None.
If you haven't seen the finale, stop reading. Spoilers follow!
It seemed to me that the writers were intent on not pissing off any segment of the fan-base, so they tried to incorporate aspects of EVERY possible ending into one ending that would give every fan something to take away from it - but in the end just created a confusing jumble that is probably going to piss off everyone who stuck with the show for six years. Six years that often seemed even longer because of enormous gaps in airing and so many re-runs viewers thought they were time-jumping like Desmond.
The ending, much like the entire show, is open to interpretation. It took an hour after the finale finished for me to muddle through and make some kind of "sense" of it all, but there's no way for me to know if I'm correct.
Things fans were hoping for, such as Jack becoming the new Jacob (which is actually called out in the episode as being too obvious), but Hurly also gets to become the new Jacob. Sawyer and Kate sort of end up together, but so do Sawyer and Juliette and Jack with Kate (in the afterlife). The Smoke Monster gets killed. Desmond survives and in both the reality and the afterlife will get to be with Penny. Locke gets to stay on the island (his body does anyway), he also gets to walk (in the alternate reality). Hurly finds purpose in both realities. Characters meet both tragic ends and get a happy ending (albeit in the afterlife). How the island "works" is left both explained and a mystery. Turns out everyone was dead and in limbo. It also turns out some of them aren't. Like I said, they tried to put in a little of everything.
The simple answer for the end of the show is something people were assuming right from the pilot episode - they're all dead. Which is a bit obvious, and a total cop-out if that was what the writers intended. Especially for a show that prided itself on not insulting the intelligence of its audience.
But, of course, this is "Lost" we're talking about. It couldn't be that simple. Could it? Please tell me it isn't that simple! Well, I'm pretty sure it isn't. Here's my attempt to make sense of it all:
They're All Dead
The "flash sideways" parallel timeline after the atomic bomb went off isn't real. It's part of the afterlife, sort of a limbo or purgatory. They don't even realize they're dead. It's an idealized version of their lives - their lives as if the island had never been a part of it. Jack is a self-confident surgeon, a father with a teenage son and apparently none of the self-esteem sapping "daddy issues" he had before. His ex-wife is Juliette, who is happily practicing as an Ob/Gyn. Sawyer (aka Ford) isn't the scoundrel with a heart of gold, he's on the right side of the law as a detective. Miles is his partner and has an apparently close relationship with his father - who isn't a Dharma Initiative scientist, but runs a Los Angeles museum. Desmond isn't hated by Charles Whitmore, he's Witmore's right-hand man. Hurly is the luckiest man alive. Sayid still has a checkered past, but he's basically a good guy looking out for his family. Claire isn't crazy, and she'll have a chance to raise Aaron. And so on and so on - the main point being they are all living better, if not idealized, versions of their lives. Except they aren't. Because they're dead.
The Island was REAL
Christian Shepard tells Jack that they all created "this place" (the alternate LA) so they could find each other, because the time Jack spent with "these people" was the more important. Meaning the events on the island DID actually happen!
Another clue is, at the church at the end, Hugo invites Ben to come inside. Ben is obviously reluctant to join them as I'm sure he believes he won't exactly be welcome. Hugo then tells Ben he made a great "Number Two." In the last scene on the island with Hugo, after he has become the new Jacob, he asks Ben to help him. This means Hugo did protect the island, with Ben as his go-to guy. But in the alternate LA they are both dead.
The last scene of the show is Jack stumbling, mortally wounded through the bamboo trees. He falls down and looks up at the sky only to see a plane fly over. It is the Ajira plane leaving the island. If you thought it was some time travel weirdness and the plane was Oceanic 815 well it can't be. When the credits roll we get a shot of the wreckage of Oceanic 815 strewn across the beach. The plan DID crash. The events on the island DID happen.
The A-Bomb Didn't Kill Them
If the alternate timeline isn't real, then the island is NOT at the bottom of the ocean. The energy of the bomb must have been absorbed by the island into the strange matter at the bottom of the drill shaft. So the bomb only killed Juliette, because she was on top of it. But the bomb DID apparently change history on the island because the Dharma station there had never been built. and appears to have synced the 1974 people up with the 2007 people. Which means Frank, Richard, Miles, Kate, Claire, and Sawyer lived and escaped from the island on the Ajira plane, and Hurly, Ben, Desmond, Rose and Bernard all survived on the island.
Time Doesn't Matter
I'm sure a lot of people have trouble rectifying the two "timelines" because if a bunch of the characters SURVIVED then how come they are in the "afterlife" all dead? Well, if you'd noticed this show plays with concepts of time. The alternate LA "flash sideways" is actually a sort of limbo after death, which means linear time doesn't apply. As Christian Shepard told Jack, in that place there is no "now." It's happening after ALL the characters have passed away, whether they died on the island, off the island, escaped the island and lived long and happy lives, or stayed on the island and eventually died the point is death is inevitable and unavoidable. The "now" of the alternate LA occurs after everyone has died, which is why they can all meet up there. They could all start remembering their connections to each other - from their time on the island - because that actually happened to them and it's how they know each other.
The Island Is Still Waiting
Sure, they're all dead and "moving on" to some sort of afterlife together. But the island, save the parts that fell off during the earthquakes, isn't at the bottom of the ocean. It's still there, somewhere, waiting for more people to arrive. It still has crazy energy and mysterious temples. The story of the Oceanic 815 characters and Ben's "Others" has ended, but there is room for a new story. . .on the island.
It's a Big Disappointment
As I noted, from the very first episode people believed the characters were actually all dead, and the island was some sort of purgatory. Well, okay, here's the twist (if there is one) that it was the alternate Los Angeles that was the non-existent purgatory. The characters were actually all ALIVE on the island, and it's a real, physical place. A real, physical place that defies the laws of time, space, and physics and makes no sense at all and the writers - convinced the show was primarily "character driven" - decided the PLOT wasn't worth trying to explain. Probably because they were making it up as they went along and it doesn't make any sense to them either.
It wasn't the worst series finale I've seen (that award goes to the reimagined Battlestar Galactica), but it did seem like a terrible cop-out that makes me not particularly ever want to rewatch the series knowing this unsatisfying finale awaits at the end.
If you haven't seen the finale, stop reading. Spoilers follow!
It seemed to me that the writers were intent on not pissing off any segment of the fan-base, so they tried to incorporate aspects of EVERY possible ending into one ending that would give every fan something to take away from it - but in the end just created a confusing jumble that is probably going to piss off everyone who stuck with the show for six years. Six years that often seemed even longer because of enormous gaps in airing and so many re-runs viewers thought they were time-jumping like Desmond.
The ending, much like the entire show, is open to interpretation. It took an hour after the finale finished for me to muddle through and make some kind of "sense" of it all, but there's no way for me to know if I'm correct.
Things fans were hoping for, such as Jack becoming the new Jacob (which is actually called out in the episode as being too obvious), but Hurly also gets to become the new Jacob. Sawyer and Kate sort of end up together, but so do Sawyer and Juliette and Jack with Kate (in the afterlife). The Smoke Monster gets killed. Desmond survives and in both the reality and the afterlife will get to be with Penny. Locke gets to stay on the island (his body does anyway), he also gets to walk (in the alternate reality). Hurly finds purpose in both realities. Characters meet both tragic ends and get a happy ending (albeit in the afterlife). How the island "works" is left both explained and a mystery. Turns out everyone was dead and in limbo. It also turns out some of them aren't. Like I said, they tried to put in a little of everything.
The simple answer for the end of the show is something people were assuming right from the pilot episode - they're all dead. Which is a bit obvious, and a total cop-out if that was what the writers intended. Especially for a show that prided itself on not insulting the intelligence of its audience.
But, of course, this is "Lost" we're talking about. It couldn't be that simple. Could it? Please tell me it isn't that simple! Well, I'm pretty sure it isn't. Here's my attempt to make sense of it all:
They're All Dead
The "flash sideways" parallel timeline after the atomic bomb went off isn't real. It's part of the afterlife, sort of a limbo or purgatory. They don't even realize they're dead. It's an idealized version of their lives - their lives as if the island had never been a part of it. Jack is a self-confident surgeon, a father with a teenage son and apparently none of the self-esteem sapping "daddy issues" he had before. His ex-wife is Juliette, who is happily practicing as an Ob/Gyn. Sawyer (aka Ford) isn't the scoundrel with a heart of gold, he's on the right side of the law as a detective. Miles is his partner and has an apparently close relationship with his father - who isn't a Dharma Initiative scientist, but runs a Los Angeles museum. Desmond isn't hated by Charles Whitmore, he's Witmore's right-hand man. Hurly is the luckiest man alive. Sayid still has a checkered past, but he's basically a good guy looking out for his family. Claire isn't crazy, and she'll have a chance to raise Aaron. And so on and so on - the main point being they are all living better, if not idealized, versions of their lives. Except they aren't. Because they're dead.
The Island was REAL
Christian Shepard tells Jack that they all created "this place" (the alternate LA) so they could find each other, because the time Jack spent with "these people" was the more important. Meaning the events on the island DID actually happen!
Another clue is, at the church at the end, Hugo invites Ben to come inside. Ben is obviously reluctant to join them as I'm sure he believes he won't exactly be welcome. Hugo then tells Ben he made a great "Number Two." In the last scene on the island with Hugo, after he has become the new Jacob, he asks Ben to help him. This means Hugo did protect the island, with Ben as his go-to guy. But in the alternate LA they are both dead.
The last scene of the show is Jack stumbling, mortally wounded through the bamboo trees. He falls down and looks up at the sky only to see a plane fly over. It is the Ajira plane leaving the island. If you thought it was some time travel weirdness and the plane was Oceanic 815 well it can't be. When the credits roll we get a shot of the wreckage of Oceanic 815 strewn across the beach. The plan DID crash. The events on the island DID happen.
The A-Bomb Didn't Kill Them
If the alternate timeline isn't real, then the island is NOT at the bottom of the ocean. The energy of the bomb must have been absorbed by the island into the strange matter at the bottom of the drill shaft. So the bomb only killed Juliette, because she was on top of it. But the bomb DID apparently change history on the island because the Dharma station there had never been built. and appears to have synced the 1974 people up with the 2007 people. Which means Frank, Richard, Miles, Kate, Claire, and Sawyer lived and escaped from the island on the Ajira plane, and Hurly, Ben, Desmond, Rose and Bernard all survived on the island.
Time Doesn't Matter
I'm sure a lot of people have trouble rectifying the two "timelines" because if a bunch of the characters SURVIVED then how come they are in the "afterlife" all dead? Well, if you'd noticed this show plays with concepts of time. The alternate LA "flash sideways" is actually a sort of limbo after death, which means linear time doesn't apply. As Christian Shepard told Jack, in that place there is no "now." It's happening after ALL the characters have passed away, whether they died on the island, off the island, escaped the island and lived long and happy lives, or stayed on the island and eventually died the point is death is inevitable and unavoidable. The "now" of the alternate LA occurs after everyone has died, which is why they can all meet up there. They could all start remembering their connections to each other - from their time on the island - because that actually happened to them and it's how they know each other.
The Island Is Still Waiting
Sure, they're all dead and "moving on" to some sort of afterlife together. But the island, save the parts that fell off during the earthquakes, isn't at the bottom of the ocean. It's still there, somewhere, waiting for more people to arrive. It still has crazy energy and mysterious temples. The story of the Oceanic 815 characters and Ben's "Others" has ended, but there is room for a new story. . .on the island.
It's a Big Disappointment
As I noted, from the very first episode people believed the characters were actually all dead, and the island was some sort of purgatory. Well, okay, here's the twist (if there is one) that it was the alternate Los Angeles that was the non-existent purgatory. The characters were actually all ALIVE on the island, and it's a real, physical place. A real, physical place that defies the laws of time, space, and physics and makes no sense at all and the writers - convinced the show was primarily "character driven" - decided the PLOT wasn't worth trying to explain. Probably because they were making it up as they went along and it doesn't make any sense to them either.
It wasn't the worst series finale I've seen (that award goes to the reimagined Battlestar Galactica), but it did seem like a terrible cop-out that makes me not particularly ever want to rewatch the series knowing this unsatisfying finale awaits at the end.
Tuesday, April 27, 2010
At last, a better way to watch Hulu on Linux
If you've read my previous posts about setting up a Linux-based HTPC then you know the issues I've run into trying to play videos from Hulu full screen - issues primarily due to the Adobe Flash Player application.
Well, I found out there is a Linux-native version of "Hulu Desktop" available from Hulu Labs (actually two versions for both 32 and 64 bit Ubuntu/Debian). I installed it and lo and behold I can now watch Hulu videos full screen on my Linux box.
Of course there are a couple of caveats:
1. Just like playing through the Flash Player browser plugin, there can't be ANY other OpenGL applications running. So if I want to watch Hulu then I have to exit XBMC.
2. I can only get smooth playback by using the "Low Quality" (480p) setting. That may be more of a bandwidth issue, but I seem to be able to play high quality video from other sites so maybe its got more to do with the codec? I don't know. It's not a huge issue since I don't (yet) own an HDTV and 480 looks quite nice on a 32" standard definition screen.
The "closed captioning" option is quite nice for watching un-dubbed anime - especially since you can control the font! The default font is a little "thin" in my opinion, so it's nice to be able to change the size and typeface.
Ok, I realize this is a program that's still in development so I'm going to forgive some things, but hope they fix them. The "10-foot interface" is more like a 3-foot interface even on a 32" TV screen. Some of that may be the lower resolution (as compared to a computer monitor), but the thumbnails and text are a little small and I didn't see any way to change them in the preferences. Also, it's not very intuitive in how you get back to a previous screen to, say, watch a different video. It seemed, at first, the only way to do that was to "exit" the video you were watching and relaunch the program. A simple "Back" or "Home" button would be nice. Also, the "splash" screen shows whatever TV show they're showcasing and seems to ignore your quality preference settings in favor of "High Quality" - which means if you set it lower due to your system's ability to play the video streams you're greeted by a slide show (it automatically starts playing the video).
But overall I'm happy with it because now it means I can actually WATCH the videos from Hulu on my Linux HTPC.
Well, I found out there is a Linux-native version of "Hulu Desktop" available from Hulu Labs (actually two versions for both 32 and 64 bit Ubuntu/Debian). I installed it and lo and behold I can now watch Hulu videos full screen on my Linux box.
Of course there are a couple of caveats:
1. Just like playing through the Flash Player browser plugin, there can't be ANY other OpenGL applications running. So if I want to watch Hulu then I have to exit XBMC.
2. I can only get smooth playback by using the "Low Quality" (480p) setting. That may be more of a bandwidth issue, but I seem to be able to play high quality video from other sites so maybe its got more to do with the codec? I don't know. It's not a huge issue since I don't (yet) own an HDTV and 480 looks quite nice on a 32" standard definition screen.
The "closed captioning" option is quite nice for watching un-dubbed anime - especially since you can control the font! The default font is a little "thin" in my opinion, so it's nice to be able to change the size and typeface.
Ok, I realize this is a program that's still in development so I'm going to forgive some things, but hope they fix them. The "10-foot interface" is more like a 3-foot interface even on a 32" TV screen. Some of that may be the lower resolution (as compared to a computer monitor), but the thumbnails and text are a little small and I didn't see any way to change them in the preferences. Also, it's not very intuitive in how you get back to a previous screen to, say, watch a different video. It seemed, at first, the only way to do that was to "exit" the video you were watching and relaunch the program. A simple "Back" or "Home" button would be nice. Also, the "splash" screen shows whatever TV show they're showcasing and seems to ignore your quality preference settings in favor of "High Quality" - which means if you set it lower due to your system's ability to play the video streams you're greeted by a slide show (it automatically starts playing the video).
But overall I'm happy with it because now it means I can actually WATCH the videos from Hulu on my Linux HTPC.
Is there a future for XBMC Plug-ins?
If you've used XBMC (or any of the third-party derivatives) you've no doubt run across the problem of plug-ins and scrapers that just stop working. Odds are, if nothing on your system has changed, it's the site from which you were getting the content that changed - and likely changed specifically to BLOCK the plug-in(s) you were using.
The reasons so many sites actively block scrapers/plug-ins like XBMC's has to do with:
1. Advertising
2. Bandwidth
Most of the content providers (all of them that I've seen anyway) place ads on their web sites to help pay for things. In some cases these are ads embedded in the web page (simple images or Flash content) separate from the videos themselves. In other cases they are webmercials that play IN the embedded video player before or during the show your watching, but are inserted into the video stream by various methods that seem to REQUIRE the video be playing in the site's own video window.
When accessing a video from an XBMC plug-in you obviously are never going to see the ads sprinkled on the host site's web page (because you never see the web page). However, I've also noticed that whatever mechanisms sites are using to insert webmercials into video streams are ignored by XBMC's player - meaning you don't see THOSE ads either.
These two things mean XBMC viewers are getting commercial-free content, which eats into the host sites' ad revenues. Those ad revenues help pay for the content and keeping the site running, which leads us to the second issue:
Bandwidth.
Videos accessed with a plug-in are still consuming bandwidth from the host site. I'm reasonably certain the sites log files or stat files would be able to suss out how many videos were viewed without accessing the web pages in which they are embedded, which in turn means those viewers didn't see the ads. If I were running a video content site and saw a ton of direct video stream accesses like that I'd shut them down too, as it represents money out of my pocket for bandwidth usage without being able to recoup it by selling ads, since those viewers won't SEE the ads.
Solutions? Well, so far the solution most sites have chosen is to block access to the videos. The simple way is to simply "break" the plug-in by renaming the folder structure on the site, or moving videos into a different folder. But that only works until someone updates the plug-in to deal with the new file structure. The other way is to move the videos to a server that requires authentication and set it up so it will only deliver requests made from/through the main web site. Make it encrypted authentication and simple IP-spoofing ain't gonna defeat it.
A good example of the latter appears to be Animefreak.tv who seem to have moved their videos onto a server requiring authentication. The XBMC plugin can still find all the videos, but since it isn't an authenticating requester, you can't actually PLAY any of them. At least that's what it looks like is going on when I checked my XBMC log file.
But I have to ask, wouldn't it be better for these sites to CAPTURE those extra viewers, rather than alienate them? Clearly to do so the content sites will need to come up with a better way of injecting ad content into the main video streams - a method that XBMC plug-ins can't thwart. The only way I can think of, though, is to actually make the ads PART of the main video, which could actually be done on the fly by concatenating the ad files and content video files into a new video file, then simply write/overwrite it to the filename linked on the web site (and therefore the only video file the scrapers/plug-ins can find). Server intensive? Yep, but you wouldn't necessarily have to do it every access, it could be done in batch processes at set advertising cycles (for example, sell ads to run for a month and only regenerate the files as part of monthly site maintenance).
Another possibility is for developers to strike deals with certain sites, or better yet for the site owners themselves to release the plug-ins. Wouldn't it be great if there was a plug-in "App Store" (actually I'd prefer it be more like "Android Marketplace") serving up OFFICIAL plug-ins for XBMC/Boxee/iConsole/MediaPortal/Plex/Voddler/OpenELEC.tv/ElementOS/Sabayon (and any other derivatives I've forgotten)?
XBMC (and friends) would also probably need to change - or at least add to - the way it uses plug-ins. Currently they're all Python scripts you can open up and hack to your heart's content. That's fine for open source developers, but is a terrible idea for the content providers. If you wanted to entice them into releasing their own plug-ins there would need to be some kind of plug-in architecture for compiled and likely encrypted plug-ins - otherwise people would simply hack the script to remove any features they didn't like (such as code that pushes advertising).
Granted, derivatives using closed-source code (such as Boxee) would have a major advantage in doing something like that, since the entire plug-in architecture could be based on closed-source code, and much like Apple does with iPhone/iPad apps, Boxee could tightly control the SDK and approval. Also, content sites and services could simply CHARGE for the plug-in application (and why not? People buy plug-ins for programs like Photoshop). That would help recoup some of the cost of the added bandwidth, or maybe they sell the plug-in app in lieu of injecting ads into the content streams.
Of course there would be nothing preventing the developers of the "closed-source" plugin architecture from releasing that (for free or for money) as an add-on for XBMC itself, thus giving those using the open-source media center access to and the ability to install closed-source plug-ins. Plug-ins SOLD in an app store. Of course there would be tons of plug-ins using closed-source code OTHER than what was just in the closed plug-in architecture and those would only work with Boxee itself, but "free" versions or "feature-limited" versions could be released for XBMC - which could even work to convince some users it was worth their while to switch to Boxee. I'm just thinking of what advantage(s) there would be to Boxee (or any other mixed-source and monetized derivative) in supporting the XBMC community as well. Since I'm talking about a closed-source add-on you also wouldn't have to be locked into just ONE provider. Each company could release their own add-on tied to their own store. Imagine having XBMC installed, but being able to buy content plug-ins from Boxee, Voddler, and NBC-Universal or Funimation through their individual app stores because you installed their commercial closed-source app store add-ons.
If I knew I could keep my XBMC set-up and get a closed-source add-on that would let me spend a few bucks in an "app store" for a Anime site plug-in endorsed/released by the site itself - thus guaranteeing I'd be able to actually watch the videos without worrying about it being blocked - that would be worth it to me. Kind of like if you could buy access to cable TV channels a-la-carte, and if the actual TV networks got in on it you actually COULD by on-demand access to their content. Recurring subscriptions that keep a plug-in functional or pay-per-view would also not be out of the question for a closed-source add-on architecture.
Initially I suspect there would be a tendency for each content supplier to only provide their content via their own app store - until they realized what most product manufacturers realized a long, long time ago: it's better to have your product in as many stores as possible. For example, I could see the BBC initially only selling its plug-in in its own app store, and only to UK residents. But then realize they could also be selling it in the app stores of their production and distribution partners worldwide. I mean, their only reason for geo-blocking access to Beeb content outside the UK is that only people in the UK are paying the "Television Tax" that funds BBC programming - so nobody outside the UK has any "right" to watch it. Unless, of course, the BBC can charge people outside the UK for access. Which they could do via a for-pay plug-in app. On my side of the pond I could see a Hulu plug-in being sold in the NBC, Fox, and ABC app stores as well as directly from the Hulu site itself. That's probably a more realistic notion given that Hulu recently announced they are introducing a "subscriber" level of programming. They're already monetizing, and a plug-in would just be an extension of that to XBMC-based media centers.
Anyway, I'm just brainstorming here. I'd love to see the content sites actively SUPPORTING something like XBMC, rather than actively blocking it. I think I'm like a lot of folks who'd be willing to PAY for on-demand access to content I actually want to see - and I believe there would be a lot less resistance to paying if you were buying access via your television as opposed to a web site (since many of us have become accustomed to the idea of paying for Cable or Satellite television it's not a big mental leap to pay or content via our media center interface).
Lastly, one of the reasons Cable and Satellite TV providers "bundle" packages of channels (rather than letting you buy them a-la-carte) is based on the theory that niche programming can only survive if it's bundled with popular programming. For example, it isn't believed there are enough viewers to support the "Quilting Channel" so it gets packaged with a dozen other channels. Well, niche programming is taken to the extreme online - and media centers like XBMC and Boxee pull their content form online without the overhead of cable or satellite broadcasting. Even so, content providers could STILL bundle programming. Going back to the Hulu subscription example, they are talking about a $10 fee for access to all kinds of different programming - popular and niche - on their site. That's as opposed to Apple's iTunes store where you pay a buck an episode for a specific TV show. There's honestly no reason a content provider - via a plug-in app store type thing - couldn't sell their content one, the other, or both ways.
The reasons so many sites actively block scrapers/plug-ins like XBMC's has to do with:
1. Advertising
2. Bandwidth
Most of the content providers (all of them that I've seen anyway) place ads on their web sites to help pay for things. In some cases these are ads embedded in the web page (simple images or Flash content) separate from the videos themselves. In other cases they are webmercials that play IN the embedded video player before or during the show your watching, but are inserted into the video stream by various methods that seem to REQUIRE the video be playing in the site's own video window.
When accessing a video from an XBMC plug-in you obviously are never going to see the ads sprinkled on the host site's web page (because you never see the web page). However, I've also noticed that whatever mechanisms sites are using to insert webmercials into video streams are ignored by XBMC's player - meaning you don't see THOSE ads either.
These two things mean XBMC viewers are getting commercial-free content, which eats into the host sites' ad revenues. Those ad revenues help pay for the content and keeping the site running, which leads us to the second issue:
Bandwidth.
Videos accessed with a plug-in are still consuming bandwidth from the host site. I'm reasonably certain the sites log files or stat files would be able to suss out how many videos were viewed without accessing the web pages in which they are embedded, which in turn means those viewers didn't see the ads. If I were running a video content site and saw a ton of direct video stream accesses like that I'd shut them down too, as it represents money out of my pocket for bandwidth usage without being able to recoup it by selling ads, since those viewers won't SEE the ads.
Solutions? Well, so far the solution most sites have chosen is to block access to the videos. The simple way is to simply "break" the plug-in by renaming the folder structure on the site, or moving videos into a different folder. But that only works until someone updates the plug-in to deal with the new file structure. The other way is to move the videos to a server that requires authentication and set it up so it will only deliver requests made from/through the main web site. Make it encrypted authentication and simple IP-spoofing ain't gonna defeat it.
A good example of the latter appears to be Animefreak.tv who seem to have moved their videos onto a server requiring authentication. The XBMC plugin can still find all the videos, but since it isn't an authenticating requester, you can't actually PLAY any of them. At least that's what it looks like is going on when I checked my XBMC log file.
But I have to ask, wouldn't it be better for these sites to CAPTURE those extra viewers, rather than alienate them? Clearly to do so the content sites will need to come up with a better way of injecting ad content into the main video streams - a method that XBMC plug-ins can't thwart. The only way I can think of, though, is to actually make the ads PART of the main video, which could actually be done on the fly by concatenating the ad files and content video files into a new video file, then simply write/overwrite it to the filename linked on the web site (and therefore the only video file the scrapers/plug-ins can find). Server intensive? Yep, but you wouldn't necessarily have to do it every access, it could be done in batch processes at set advertising cycles (for example, sell ads to run for a month and only regenerate the files as part of monthly site maintenance).
Another possibility is for developers to strike deals with certain sites, or better yet for the site owners themselves to release the plug-ins. Wouldn't it be great if there was a plug-in "App Store" (actually I'd prefer it be more like "Android Marketplace") serving up OFFICIAL plug-ins for XBMC/Boxee/iConsole/MediaPortal/Plex/Voddler/OpenELEC.tv/ElementOS/Sabayon (and any other derivatives I've forgotten)?
XBMC (and friends) would also probably need to change - or at least add to - the way it uses plug-ins. Currently they're all Python scripts you can open up and hack to your heart's content. That's fine for open source developers, but is a terrible idea for the content providers. If you wanted to entice them into releasing their own plug-ins there would need to be some kind of plug-in architecture for compiled and likely encrypted plug-ins - otherwise people would simply hack the script to remove any features they didn't like (such as code that pushes advertising).
Granted, derivatives using closed-source code (such as Boxee) would have a major advantage in doing something like that, since the entire plug-in architecture could be based on closed-source code, and much like Apple does with iPhone/iPad apps, Boxee could tightly control the SDK and approval. Also, content sites and services could simply CHARGE for the plug-in application (and why not? People buy plug-ins for programs like Photoshop). That would help recoup some of the cost of the added bandwidth, or maybe they sell the plug-in app in lieu of injecting ads into the content streams.
Of course there would be nothing preventing the developers of the "closed-source" plugin architecture from releasing that (for free or for money) as an add-on for XBMC itself, thus giving those using the open-source media center access to and the ability to install closed-source plug-ins. Plug-ins SOLD in an app store. Of course there would be tons of plug-ins using closed-source code OTHER than what was just in the closed plug-in architecture and those would only work with Boxee itself, but "free" versions or "feature-limited" versions could be released for XBMC - which could even work to convince some users it was worth their while to switch to Boxee. I'm just thinking of what advantage(s) there would be to Boxee (or any other mixed-source and monetized derivative) in supporting the XBMC community as well. Since I'm talking about a closed-source add-on you also wouldn't have to be locked into just ONE provider. Each company could release their own add-on tied to their own store. Imagine having XBMC installed, but being able to buy content plug-ins from Boxee, Voddler, and NBC-Universal or Funimation through their individual app stores because you installed their commercial closed-source app store add-ons.
If I knew I could keep my XBMC set-up and get a closed-source add-on that would let me spend a few bucks in an "app store" for a Anime site plug-in endorsed/released by the site itself - thus guaranteeing I'd be able to actually watch the videos without worrying about it being blocked - that would be worth it to me. Kind of like if you could buy access to cable TV channels a-la-carte, and if the actual TV networks got in on it you actually COULD by on-demand access to their content. Recurring subscriptions that keep a plug-in functional or pay-per-view would also not be out of the question for a closed-source add-on architecture.
Initially I suspect there would be a tendency for each content supplier to only provide their content via their own app store - until they realized what most product manufacturers realized a long, long time ago: it's better to have your product in as many stores as possible. For example, I could see the BBC initially only selling its plug-in in its own app store, and only to UK residents. But then realize they could also be selling it in the app stores of their production and distribution partners worldwide. I mean, their only reason for geo-blocking access to Beeb content outside the UK is that only people in the UK are paying the "Television Tax" that funds BBC programming - so nobody outside the UK has any "right" to watch it. Unless, of course, the BBC can charge people outside the UK for access. Which they could do via a for-pay plug-in app. On my side of the pond I could see a Hulu plug-in being sold in the NBC, Fox, and ABC app stores as well as directly from the Hulu site itself. That's probably a more realistic notion given that Hulu recently announced they are introducing a "subscriber" level of programming. They're already monetizing, and a plug-in would just be an extension of that to XBMC-based media centers.
Anyway, I'm just brainstorming here. I'd love to see the content sites actively SUPPORTING something like XBMC, rather than actively blocking it. I think I'm like a lot of folks who'd be willing to PAY for on-demand access to content I actually want to see - and I believe there would be a lot less resistance to paying if you were buying access via your television as opposed to a web site (since many of us have become accustomed to the idea of paying for Cable or Satellite television it's not a big mental leap to pay or content via our media center interface).
Lastly, one of the reasons Cable and Satellite TV providers "bundle" packages of channels (rather than letting you buy them a-la-carte) is based on the theory that niche programming can only survive if it's bundled with popular programming. For example, it isn't believed there are enough viewers to support the "Quilting Channel" so it gets packaged with a dozen other channels. Well, niche programming is taken to the extreme online - and media centers like XBMC and Boxee pull their content form online without the overhead of cable or satellite broadcasting. Even so, content providers could STILL bundle programming. Going back to the Hulu subscription example, they are talking about a $10 fee for access to all kinds of different programming - popular and niche - on their site. That's as opposed to Apple's iTunes store where you pay a buck an episode for a specific TV show. There's honestly no reason a content provider - via a plug-in app store type thing - couldn't sell their content one, the other, or both ways.
Wednesday, March 24, 2010
InDesign CS4 Secret: Save Down to the Stone Age
Ok, here's a little trick I figured out today that I had previously been told was "impossible." I opened a file created in InDesign CS4 with InDesign CS. And it looked ok.
InDesign, much like QuarkXpress, only lets you save down one version with the "interchange" (.INX) format. So if you create a document in CS4 and need to open it in CS3 you do "Save As" select the Interchange format and then open that (rather than the .indd file) in CS3.
Ah! But what do you do if you need to open that file in an InDesign version OLDER than the the previous version and you don't have access to the version(s) in between? Most people (including Adobe) will tell you that you're screwed. But you're not! Or at least not totally screwed.
When you save to INX format it creates an XML file which the previous version uses to rebuild the structure of the document it's own way as best it can (assuming it has all the updates to the program and plugins applied). If it encounters any data it doesn't understand (for example, features that were added to the newer version) it will just ignore that stuff and move on. Obviously that means the more features you used that aren't backwards compatible the more screwed up your file will be when it's opened in an earlier version. BUT, if you have a fairly simple layout you may not need to tweak anything.
Since the INX file is just a text file you can easily open it with WordPad or NotePad (on Windows) or Text Editor (on Mac) and you only need to change ONE STINKIN' NUMBER to make this work, and it's in the second line of the file. Let's say I've created a file in InDesign CS4 and used the Interchange format to save it backwards for InDesign CS3. The second line of the INX file will read something like:
?aid style="33" type="document" DOMVersion="6.0" readerVersion="5.0" featureSet="257" product="6.0(578)" ?
The "6.0" then refers to CS4, from which we exported the file. The "5.0" in the "readerVersion=" part means CS3, because we told it to save it for CS3 which will be "reading" the INX file.
To open this file in CS2 without actually having access to CS3
Change: readerVersion="5.0" --> readerVersion="4.0"
To open this file in CS without actually having access to CS2 or CS3
Change: readerVersion="5.0" --> readerVersion="3.0"
That's IT! The INX file I exported from CS4 opened in CS perfectly. Then I immediately just saved it as a different name as an .indd CS compatible file. Granted it was a simple layout and apparently didn't use ANY special features added to the software between CS and CS4. Odds are most files will lose something going backwards in time that far, but the point is to be able to OPEN the file so you don't have to rebuild it from scratch.
InDesign, much like QuarkXpress, only lets you save down one version with the "interchange" (.INX) format. So if you create a document in CS4 and need to open it in CS3 you do "Save As" select the Interchange format and then open that (rather than the .indd file) in CS3.
Ah! But what do you do if you need to open that file in an InDesign version OLDER than the the previous version and you don't have access to the version(s) in between? Most people (including Adobe) will tell you that you're screwed. But you're not! Or at least not totally screwed.
When you save to INX format it creates an XML file which the previous version uses to rebuild the structure of the document it's own way as best it can (assuming it has all the updates to the program and plugins applied). If it encounters any data it doesn't understand (for example, features that were added to the newer version) it will just ignore that stuff and move on. Obviously that means the more features you used that aren't backwards compatible the more screwed up your file will be when it's opened in an earlier version. BUT, if you have a fairly simple layout you may not need to tweak anything.
Since the INX file is just a text file you can easily open it with WordPad or NotePad (on Windows) or Text Editor (on Mac) and you only need to change ONE STINKIN' NUMBER to make this work, and it's in the second line of the file. Let's say I've created a file in InDesign CS4 and used the Interchange format to save it backwards for InDesign CS3. The second line of the INX file will read something like:
?aid style="33" type="document" DOMVersion="6.0" readerVersion="5.0" featureSet="257" product="6.0(578)" ?
The "6.0" then refers to CS4, from which we exported the file. The "5.0" in the "readerVersion=" part means CS3, because we told it to save it for CS3 which will be "reading" the INX file.
To open this file in CS2 without actually having access to CS3
Change: readerVersion="5.0" --> readerVersion="4.0"
To open this file in CS without actually having access to CS2 or CS3
Change: readerVersion="5.0" --> readerVersion="3.0"
That's IT! The INX file I exported from CS4 opened in CS perfectly. Then I immediately just saved it as a different name as an .indd CS compatible file. Granted it was a simple layout and apparently didn't use ANY special features added to the software between CS and CS4. Odds are most files will lose something going backwards in time that far, but the point is to be able to OPEN the file so you don't have to rebuild it from scratch.
Monday, February 15, 2010
Linux Launcher for Future Pinball
I recall the rare occasions as a kid that I got to go anywhere that had arcade games. As the games grew more complex they sprouted additional buttons, and increased the likelihood that I'd die all the sooner. Which is why I often had to give the Pinball Machines a quarter or two. No matter how many extras bells, whistles, lights, ramps, flippers, etc., they put in them the controls remained dirt simple - buttons on the left controlled left flippers, buttons on the right controlled right flippers, and if the game got stuck you'd nudge it lightly and hope it didn't "tilt" on you.
I've been writing the last couple of months on this blog about setting up my XBMC "media center" PC in the living room, and adding video game emulators to it. Well, now it's time to add PINBALL to my emulation fun!
There is a kick-ass pinball simulator/construction set program called "Future Pinball." If you're running Windows you can just go to http://www.futurepinball.com/ and download and install it. But if you're on a Linux machine, like I am with my "media center" then you need to get a custom installation script here: http://fprelease.free.fr/fpwine/
Just run that script and it will create a custom WINE install just for Future Pinball. Initially I tried following instructions I found in the Ubuntu forums for putting it in my existing WINE install, but every table I tried to run complained of script errors and froze. The install from that handy, dandy script, though worked perfectly out of the box. So I'd highly recommend it.
Make sure to go to the Future Pinball web site (http://www.futurepinball.com/) to get the "Sci-Fi Classic" demo game. It's actually pretty good, and some other tables people have created require it be installed so their table works. You'll be putting the files into a subfolder located at:
~/.fpwine/drive_c/Games/Future Pinball/Tables
You need to extract them to there (can't be ZIP files), and while many will work just fine in the sub-folders extracting creates, some will only run if the files are no lower than the /Tables folder. Especially the ones that require the demo table be there alongside them, however when you open them in the editor it will TELL you it needs files from another table. Then either copy that table's files in with the new one, or pull those tables out to live with the one on which they are dependent. If you have tables that didn't complain about dependency that freeze or crash on you, they tend to only do it when you want to PLAY them. Some can be fixed simply by opening them in the editor and saving them. Others will need to be moved out of their sub-folders to run. It can be a bit picky, but you only need to set this up once.
Since "demo" tables aren't that much fun, so you'll probably want a REAL table - by which I mean a faithful recreation of a classic one. Go to IRP Pinball site (http://irpinball.org/fp.htm) and look for your favorite olde tyme table. Don't stray off the page of that link I gave you, that's the Future Pinball stuff. Everything else on that site is for Visual Pinball (a different program). For some other recreations and original tables pay visits to the following sites and make off like you just knocked over an arcade:
http://www.blindmankind.tecnopinball.org/
http://www.roneypinball.com.ar/TablesRP.html
http://www.pinballaddicts.com/index.php?option=com_remository&Itemid=26
http://www.scapinosvpins.com/FuturePinballHome.htm
I'd highly recommend test-running each game (hit F5 within the FP editor) and doing that while still in "windowed" mode, just in case a table freezes you don't want to be stuck with it fullscreen and no way to get out of it aside from a hard restart. You'll probably want to play these full-screen, in which case (from within the FP editor) go to "Preferences->Video Options/Rendering" and look for the "Fullscreen" checkbox. You can also tell it whether you've got an older 4:3 "square" screen or a "widescreen" TV/monitor.
Ok, so if you're still with me you've got Future Pinball running smoothly in WINE, you've got an arcade's worth of machines to play - but it's a real drag having to open each in the EDITOR and then play it from there - especially when all you want to do is play them!!
Ideally, what you want to do is double click on a game name and have it run the game, ready to play, right? If you're setting it up to launch from XBMC like I am, you'll absolutely HAVE to do this.
Download the "Future Pinball Wrapper" program:
http://www.spacefractal.com/files/App/FuturePinballWrapper.zip
Extract the contents to your Future Pinball install:
~/.fpwine/c_drive/Games/Future Pinball/
Now, here's the tricky part. You need to SCRIPT this puppy to grab a Table file and run it with this Wrapper program. It will still launch the editor, but it will send it the command to "Play" it too.
When you used the install script for Future Pinball it created a file named "runFP" that will do nicely for our purposes. It is located at just inside your (hidden) ~/.fpwine folder. Copy that file and open it in your favorite text editor. I do this by hitting ALT+F2 and typing:
gedit ~/.fpwine/runFP
Now, you're going to see about 4 lines of code in that file, which is a simple little bash script. We're only going to modify the last line! So, find where it says:
WINEPREFIX=/home/user/.fpwine WINEDEBUG=-all wine /home/user/.fpwine/drive_c/"Games"/"Future Pinball"/"Future Pinball.exe"
(note: "user" is whatever your user name is)
Change it to something like this:
WINEPREFIX=/home/user/.fpwine WINEDEBUG=-all wine /home/user/.fpwine/drive_c/"Games"/"Future Pinball"/"Future Pinball Wrapper.exe" "C://Games//Future Pinball//Tables//Sci-Fi Classic.fpt"
Now, save as or save and rename that file to something like "Sci-Fi Classic" and check the permissions that it is executable. Put the file somewhere convenient, and now all you need to do is double click that file and it will automatically load and launch the Sci-Fi Classic Pinball Table. Oh, and you may need to click your mouse before you can play. It appears (on my system anyway) that the "focus" is still on whatever is underneath the game. Even though, when it is popped fullscreen, I don't see the mouse pointer a quick click or two seems to register as being "on" that window and then my keyboard input works to actually play the game.
For each machine you install just change the end of the path to point to a different file, save the script with a new name, and in the end you'll have a collection of custom launcher scripts for each pinball table you want to play. If you want to go a step further, most tables also include a screen shot of them and you could put that on as the icon for the file to make it pretty if you like.
Lastly, to launch them from within XBMC just use the "Launcher" plug-in I've been talking about now for a while, and tell it to run your custom script like a "stand alone" program.
Now, if you'll excuse me, I have some Pinball to play!
I've been writing the last couple of months on this blog about setting up my XBMC "media center" PC in the living room, and adding video game emulators to it. Well, now it's time to add PINBALL to my emulation fun!
There is a kick-ass pinball simulator/construction set program called "Future Pinball." If you're running Windows you can just go to http://www.futurepinball.com/ and download and install it. But if you're on a Linux machine, like I am with my "media center" then you need to get a custom installation script here: http://fprelease.free.fr/fpwine/
Just run that script and it will create a custom WINE install just for Future Pinball. Initially I tried following instructions I found in the Ubuntu forums for putting it in my existing WINE install, but every table I tried to run complained of script errors and froze. The install from that handy, dandy script, though worked perfectly out of the box. So I'd highly recommend it.
Make sure to go to the Future Pinball web site (http://www.futurepinball.com/) to get the "Sci-Fi Classic" demo game. It's actually pretty good, and some other tables people have created require it be installed so their table works. You'll be putting the files into a subfolder located at:
~/.fpwine/drive_c/Games/Future Pinball/Tables
You need to extract them to there (can't be ZIP files), and while many will work just fine in the sub-folders extracting creates, some will only run if the files are no lower than the /Tables folder. Especially the ones that require the demo table be there alongside them, however when you open them in the editor it will TELL you it needs files from another table. Then either copy that table's files in with the new one, or pull those tables out to live with the one on which they are dependent. If you have tables that didn't complain about dependency that freeze or crash on you, they tend to only do it when you want to PLAY them. Some can be fixed simply by opening them in the editor and saving them. Others will need to be moved out of their sub-folders to run. It can be a bit picky, but you only need to set this up once.
Since "demo" tables aren't that much fun, so you'll probably want a REAL table - by which I mean a faithful recreation of a classic one. Go to IRP Pinball site (http://irpinball.org/fp.htm) and look for your favorite olde tyme table. Don't stray off the page of that link I gave you, that's the Future Pinball stuff. Everything else on that site is for Visual Pinball (a different program). For some other recreations and original tables pay visits to the following sites and make off like you just knocked over an arcade:
http://www.blindmankind.tecnopinball.org/
http://www.roneypinball.com.ar/TablesRP.html
http://www.pinballaddicts.com/index.php?option=com_remository&Itemid=26
http://www.scapinosvpins.com/FuturePinballHome.htm
I'd highly recommend test-running each game (hit F5 within the FP editor) and doing that while still in "windowed" mode, just in case a table freezes you don't want to be stuck with it fullscreen and no way to get out of it aside from a hard restart. You'll probably want to play these full-screen, in which case (from within the FP editor) go to "Preferences->Video Options/Rendering" and look for the "Fullscreen" checkbox. You can also tell it whether you've got an older 4:3 "square" screen or a "widescreen" TV/monitor.
Ok, so if you're still with me you've got Future Pinball running smoothly in WINE, you've got an arcade's worth of machines to play - but it's a real drag having to open each in the EDITOR and then play it from there - especially when all you want to do is play them!!
Ideally, what you want to do is double click on a game name and have it run the game, ready to play, right? If you're setting it up to launch from XBMC like I am, you'll absolutely HAVE to do this.
Download the "Future Pinball Wrapper" program:
http://www.spacefractal.com/files/App/FuturePinballWrapper.zip
Extract the contents to your Future Pinball install:
~/.fpwine/c_drive/Games/Future Pinball/
Now, here's the tricky part. You need to SCRIPT this puppy to grab a Table file and run it with this Wrapper program. It will still launch the editor, but it will send it the command to "Play" it too.
When you used the install script for Future Pinball it created a file named "runFP" that will do nicely for our purposes. It is located at just inside your (hidden) ~/.fpwine folder. Copy that file and open it in your favorite text editor. I do this by hitting ALT+F2 and typing:
gedit ~/.fpwine/runFP
Now, you're going to see about 4 lines of code in that file, which is a simple little bash script. We're only going to modify the last line! So, find where it says:
WINEPREFIX=/home/user/.fpwine WINEDEBUG=-all wine /home/user/.fpwine/drive_c/"Games"/"Future Pinball"/"Future Pinball.exe"
(note: "user" is whatever your user name is)
Change it to something like this:
WINEPREFIX=/home/user/.fpwine WINEDEBUG=-all wine /home/user/.fpwine/drive_c/"Games"/"Future Pinball"/"Future Pinball Wrapper.exe" "C://Games//Future Pinball//Tables//Sci-Fi Classic.fpt"
Now, save as or save and rename that file to something like "Sci-Fi Classic" and check the permissions that it is executable. Put the file somewhere convenient, and now all you need to do is double click that file and it will automatically load and launch the Sci-Fi Classic Pinball Table. Oh, and you may need to click your mouse before you can play. It appears (on my system anyway) that the "focus" is still on whatever is underneath the game. Even though, when it is popped fullscreen, I don't see the mouse pointer a quick click or two seems to register as being "on" that window and then my keyboard input works to actually play the game.
For each machine you install just change the end of the path to point to a different file, save the script with a new name, and in the end you'll have a collection of custom launcher scripts for each pinball table you want to play. If you want to go a step further, most tables also include a screen shot of them and you could put that on as the icon for the file to make it pretty if you like.
Lastly, to launch them from within XBMC just use the "Launcher" plug-in I've been talking about now for a while, and tell it to run your custom script like a "stand alone" program.
Now, if you'll excuse me, I have some Pinball to play!
Sunday, February 14, 2010
Joystick Utility for Linux
So, here's the scenario on my Ubuntu Linux system. Every time I unplug a controller and either plug it back in or swap to another one I have to re-calibrate it. Which you have to do since most games and emulators expect the controller to be connected at "/dev/input/js0" so if you switch from a flight sim to a driving game you could leave them both plugged in and use root privileges to temporarily shift whichever one is connected at js1 or js2 (or wherever) to js0, but you're still going to go through recalibration before you start playing. Not that the calibration takes too long, but I'd rather be playing than calibrating, and I wanted a simple way to SAVE my calibrations so I don't have to do the same thing over and over and over.
Now, some of you might be thinking "there's a calibration utility already!" Um, yes, there is. It's called "Joystick Calibrator." And it doesn't work very well (if at all). Breeze through some Linux gaming forums and more often than not you'll see posts advising those having problems with joysticks to uninstall "Joystick Calibrator" because it can interfere (apparently) with other joystick stuff. What does seem to flawlessly work on Linux are "jscal" and "jstest" - but they are command-line only within a terminal, and don't SAVE your configurations!
Here's my solution: a simple bash script utility with a zenity UI that lets you recall calibrations for all your controllers! It will even simplify the task of shifting any connected controller to the golden "js0" spot!
Just copy the stuff below into a text file, save it and then set its permissions to allow you to "execute" it as a program. As the comments in it say, you'll have to plug in each controller in turn, run "jscal -c" on it, then "jscal -p" to get the calibration settings, copy and paste those INTO this bash script, and (of course) edit it so the options refer to whatever controllers you use. If you don't have "zenity" installed, it should be available in your distro's repositories.
(in case you're wondering, the "jscal -s" calibrations below are for a Gravis Eliminator flight stick, a Thrustmaster Pro Digital NASCAR driving wheel, and a Thrustmaster F2 Ferrari wheel).
Now, some of you might be thinking "there's a calibration utility already!" Um, yes, there is. It's called "Joystick Calibrator." And it doesn't work very well (if at all). Breeze through some Linux gaming forums and more often than not you'll see posts advising those having problems with joysticks to uninstall "Joystick Calibrator" because it can interfere (apparently) with other joystick stuff. What does seem to flawlessly work on Linux are "jscal" and "jstest" - but they are command-line only within a terminal, and don't SAVE your configurations!
Here's my solution: a simple bash script utility with a zenity UI that lets you recall calibrations for all your controllers! It will even simplify the task of shifting any connected controller to the golden "js0" spot!
Just copy the stuff below into a text file, save it and then set its permissions to allow you to "execute" it as a program. As the comments in it say, you'll have to plug in each controller in turn, run "jscal -c" on it, then "jscal -p" to get the calibration settings, copy and paste those INTO this bash script, and (of course) edit it so the options refer to whatever controllers you use. If you don't have "zenity" installed, it should be available in your distro's repositories.
(in case you're wondering, the "jscal -s" calibrations below are for a Gravis Eliminator flight stick, a Thrustmaster Pro Digital NASCAR driving wheel, and a Thrustmaster F2 Ferrari wheel).
#!/bin/bash
#
# Before running this utility you need to populate the data!
# From a terminal run: jscal -c /dev/input/js0
# Follow on-screen instructions to calibrate controller
# From terminal type: jscal -p /dev/input/js0
# Copy the line it returns and paste it where you see the "jscal -s" lines below
# Do this for every controller you plan to use
zenity --info --text "GAME CONTROLLER PRESET\nThis utility lets you select a calibration for a game controller."
joy=$(zenity --list --text "Game Controller Input" --width "320" --height "240" --radiolist --column "Pick" --column "/dev/input/" TRUE "js0" FALSE "js1" FALSE "js2" FALSE "js3" FALSE "js4"); echo $joy
if [ $joy != "js0" ]; then
zenity --question --text "Shift controller to js0?"
q=$?
if [ $q = "0" ]; then
gksudo ln -s /dev/input/$joy /dev/input/js0
fi
fi
# Enter the Names of your Controllers where it says ">>PUT NAME HERE<<"
# Add or remove entries as needed in format:
# TRUE|FALSE # "Controller Name"
cal=$(zenity --list --text "Game Controller Preset" --width "425" --height "275" --radiolist --column "Pick" --column "#" --column "Controller" TRUE 1 ">>PUT NAME 1 HERE<<" FALSE 2 ">>PUT NAME 2 HERE<<" FALSE 3 ">>PUT NAME 3 HERE<<"); echo $ans
# For each option above have an IF entry below
if [ $cal = "1" ]; then
# CONTROLLER 1
jscal -s 6,1,0,125,125,16776704,14509582,1,1,128,128,15338701,11930101,1,1,87,87,6170742,4098126,1,0,120,120,5368545,5592235,1,0,0,0,536854528,536854528,1,0,0,0,536854528,536854528 /dev/input/$joy
fi
if [ $cal = "2" ]; then
# CONTROLLER 2
jscal -s 3,1,0,124,124,9256113,6100620,1,0,254,254,2113601,-2147483648,1,0,255,255,4793344,-2147483648 /dev/input/$joy
fi
if [ $cal = "3" ]; then
# CONTROLLER 3
jscal -s 5,1,0,-144,-128,2033540,1525155,1,0,255,255,2105312,-2147483648,1,0,255,255,2105312,-2147483648,1,0,0,0,536854528,536854528,1,0,0,0,536854528,536854528 /dev/input/$joy
fi
Subscribe to:
Posts (Atom)