Archive for the Category: MG

ASV. 12.

 

Today, we released the 12th anniversary edition of ASV¹ (ASV 2012/05) and also SWF Revealer 2.08 update.

Thank you all!

 

Update (2012/05/17): To add some value to this dull post:

In the first days, people sent us their own SWFs to get back the decompiled AS, in order to believe that ASV really worked as advertised. We required people  include their name in the SWF so that we know it’s their own work…

Here are the samples we had on our site:

ASV 1.0 with SWF v4

movie2.swf (~6k), by Scott Romack, submitted on May 30, 2000.

movie2.txt (~2k) ASV 1.0 text output.

Notable notes:
This was the first ever sample we had.
Note the line
Duplicate Movie Clip (“motion”, “motion” & x, x + 16384)
The value added in Duplicate Movie Clip action is actually in the SWF and ASV 1.0 showed this. Later versions of ASV hides this value in order to make its output more compatible with Flash.

 

ASV 2.0 with SWF v4

curves9.swf (~7k), by Branden J. Hall, submitted on June 6, 2000.

curvers9-1.txt (~8k) ASV 2.0 text output to Flash 4 syntax

curves9-2.txt (~7k) ASV 2.0 text output to Flash 5 syntax

Notable notes:
Also demonstrated ASV 2.0′s ability to convert v4 AS syntax to v5 AS syntax.

 

ASV 2.0 with SWF v5

analog_clock.swf (~10k), by Marcos Pinto.

aclock.txt (~2k) ASV 2.0 text output.

Notable notes:
Demonstrated decompilation of the (then new) onClipEvent.

 

¹Action Script Viewer – the first SWF/Flash decompiler released on May 16, 2000.

Also posted in Flash, Flex Tagged Comments Off

And Then Premium Features Arrived…

On March 28, 2012, Adobe announced and introduced the anxiously awaited Flash Player Premium Features for Gaming, with Flash Player 11.2 and AIR 3.2. Also Roadmap for Flash Runtimes was updated. (BTW, the problem with the road-map is that it’s just some plans, ‘official gossip’ as I call it, it offers no commitment or legally binding promise from Adobe. And it can get updated anytime…).

What has the cat dragged in?

Good news is that using domain memory and (Alchemy introduced and officially documented) fast memory opcodes by themselves is not considered as premium use. Only using both domain memory and Stage 3D is considered as premium. So it seems Adobe listened to the community and did what it could. (‘a fair compromise‘ – Mike Chambers).

Licensing starts on August 1 -we have a grace period and any prior work will get to use the premium features royalty free-, there will be no charges for the first $50K of revenues (but 9% after that). AIR including for mobile applications for iOS and Android, will be royalty free.  There’s a FAQ about all this.

Another good thing is that Adobe states ‘no intent‘ for making any existing feature premium in the future (but any new feature may come as premium). In any case, it’s up to the community and individuals to trust Adobe about any intentions…

In summary, it looks as if only big gaming studios, who would use Alchemy to convert their million dollar 3D games to Flash for the Web only (as AIR usage is royalty free), are the target (and $50K entry point will protect small studios). ‘These premium features will allow console developers to deliver unprecedented, AAA console quality games to over a billion computers’ says Tom Nguyen, Sr. Product Manager, Gaming at Adobe.

Community response

[in no particular order]

Nicolas Cannasse, creator of MTASC and Haxe, called this the Speed Tax for 3D games: ‘Adobe just made DECENT SPEED a “premium feature”‘.

[caption id="attachment_366" align="aligncenter" width="128"] Nicolas Cannasse[/caption]

Joa Ebert, another name who needs no introduction to anyone in the Flash community, in his post titled ‘Collateral Damage‘, announced: ‘I am no longer committed to supporting any Flash related open-source projects‘. A sad development indeed.

[caption id="attachment_367" align="aligncenter" width="408"] Joa Ebert, Flash on the Beach 2009[/caption]Peter Elst, yet another name who should not be unfamiliar to any Flash platform developer, currently a Googler, tweeted: ‘I’m calling it… Flash Player time of death March 28th 2012, you’ll be missed – died at the hands of incompetent surgeons‘.

 

 

[caption id="attachment_359" align="aligncenter" width="495"] Tweet from Peter Elst[/caption]

Robert Penner, author of famous easing equations – if you remember them, good old times-, author, former Adobe Flash Team member, tweeted the following: ‘I thought Adobe was supposed to make money by building the best tools and services, not by cutting them & selling the platform. I’m not saying Adobe is wrong to change their Flash platform strategy. But I’d rather they be successful with great tools & free platform.‘.

[caption id="attachment_376" align="aligncenter" width="400"] Robert Penner in Flash CS4 About Box[/caption]Phillip Kerman, writer, teacher, programmer, tweeted: ‘man, can’t sleep… had a nightmare Adobe really did kill Flash. Wait, did I even go to sleep yet?‘.

 

Omar Gonzalez, Senior Software Architect @ Almer/Blank, tweeted: ‘I don’t think I’ve ever seen a company destroy so much of their own intellectual property in such a short amount of time. #amazing #Adobe‘.

[caption id="attachment_358" align="aligncenter" width="480"] .Net magazine covered the story[/caption]

There were also positive reactions, I think mostly because some people thought the $50K is big enough a barrier that will protect them, some are clueless newbies who just heard about Alchemy opcodes and decided they are not affected, some use AIR exclusively and didn’t care about anything else, some sincerely found initial conditions for licensing acceptable, and some, I believe, felt that that to contain the damage, they have to back the decision publicly… And then some, chose to remain silent…

Below are links to some discussions on Google+:

Richard Davey: https://plus.google.com/106676047029022880747/posts/arRMVLEQdiN

Jesse Freeman: https://plus.google.com/113373098067901951782/posts/hJZMKnGh6We

Jesse Warden: https://plus.google.com/109537902154361720350/posts/Nmvh8HY4BG6

Other developments…

On March 31, Daniel Bunte had a blog post titled How we managed to get Alchemy1 working with FlashPlayer 11.2 Incubator and the secrets of SWF Tag 92. So it seems, Adobe will  use a different method for enabling premium features. This is a technical detail, still I find it important to mention here.

Kurt Melander commented on my previous post and said: ‘…speaking from the e-learning development side and as a US DoD defense contractor, the digital signing may be due in large part to the downgrading of flash and Shockwave from the DoD CIO office in terms of risk for mobile code. Shockwave .dcr format is now no longer allowed on military networks and is classified “1x”,  flash was downgraded from a “3″ to a “2″, lower numbers meaning higher risk to the network. One of the main reasons for this downgrade is the lack of Flash and Shockwave to recognize or validate digitally signed code.

Jethro Villegas, former Engineering Manager and Software Architect for Flash Professional, commented: ‘Digitally authenticated SWF files can be so useful in many ways.‘ I can’t agree more.

So, most probably, digital signatures in SWF files will stay for one reason or another.

Was premium features really necessary?

[caption id="attachment_390" align="alignright" width="160"] Thibault Imbert[/caption]

Thibault Imbert, Sr. Product Manager for the Flash Runtime at Adobe, had the following comment at Nicolas’ post:

…because games could generate millions of revenue with maybe 200 copies of Flash Builder and Flash Pro sold. Is it a good business? Not really.

I also think Mike Chambers‘ (currently Director, Developer Advocacy for web platforms at Adobe) following comment there is important:

The model where Adobe invests all of the resources in developing the Flash Player, and then projects such as Haxe and Unity pull developers away from Adobe tooling is one that was not sustainable under the old model. Under the new model, it doesnt matter which tools and technologies you are using to develop Flash content, since revenue is generated based on the runtime and not tooling.

[caption id="attachment_356" align="aligncenter" width="336"] So-called Alchemy opcodes are officially well-documented.[/caption]

So, it is clear that Adobe needed more money to support Flash Player development. But was the right answer Premium Features? Why wasn’t AIR developers targeted? Why wasn’t right click context menu introduced as a premium feature? Is $50K the optimal amount? Is 9% the optimal percentage? What will the nominal fee for Premium Features Developer Program be (which will be introduced after grace period ends on August 1, 2012)? Will it be be worth all this?

As I stated in my previous post, IMO SWF format is now a closed format. As someone programming for SWF format since April 1998 and co-author of the first Flash decompiler (since May 2000, which we still update daily) and many SWF related tools, I am qualified to make that statement. Closing SWF format will have ‘dire consequences’. (Our reaction as Manitu Group will be increasing pricing for our commercial applications, as we think premium technologies, require premium tools that cost premium prices).

Some last minute improvements to premium feature set has been a good thing nevertheless, but my personal opinion is that it won’t be sufficient to save the SWF format, hence the Flash platform. But we may have gained some time. And who knows, maybe more…

So, has Flash really died this time with the introduction of premium features as I predicted?

No hablo inglés.

 

Update: Robin Debreuil posted following comment while sharing info about this post at Google+:

‘I’ve heard of the death of Flash more times than I can count over the years. I think the difference this time is the claims are coming from the people that use it, and the ‘killer’ is the company that makes it. Time will tell I guess.

The quote that sums it up for me is:

“The model where Adobe invests all of the resources in developing the Flash Player, and then projects such as Haxe and Unity pull developers away from Adobe tooling is one that was not sustainable under the old model”

I’m sure that is true, but really it is saying Adobe can’t compete in spite of all the advantages inherent in making the platform. Look at FlashDevelop – made for free by two people (and no doubt some friendly help) and it blows away Adobe coding tools. Not because it is cheaper, because it is better.

So if you can’t compete, sure, business model two, try to wring money out of your platform standard as you slowly choke it to death. The real question though is why can’t they compete? If my money was tied up in there, I’d be asking that question a lot.’

 

And here is Mike Chambers’ reply: (I won’t be cloning the discussion, this is the last update I’ll have here, read more at its source).

[caption id="attachment_389" align="alignright" width="180"] Mike Chambers[/caption]

‘I dont think it is a question of competing. Adobe could put in the resources to build a 3d authoring tool that competes with Unity, but why would it want to? Unity already is awesome, and can target Flash Player.

Why not create a model where Adobe doesn’t have to build every single tool that targets the Flash Player in order to ensure that there are resources to continue to invest in the Flash Player? Why not create a model that better reflects the core value of Flash, which is the reach and richness that the Flash Player provides?

Update2: Ray Cutro‘s G+ post titled Speed Tax for Speedy death of Flash Platform is a good read as he mentions certain points which I deliberately avoided, and illustrates sincere disappointment of a passionate developer.

Update3: [July 21, 2012] Tom Nguyen posted the following to the Adobe AIR and Adobe Flash Player Team blog: Update: Premium Features for Flash Player :

“We previously communicated that beginning August 1, new content using the Premium Features for Flash Player would require a commercial license from Adobe, and that we would share more details on how to obtain a license. We will be extending this deadline to give publishers more time to prepare and obtain a license. These Premium Features are designed primarily to enable publishers and commercial game developers to target the Flash Player with games developed using C/C++ (via the Project “Alchemy” compiler) and/or 3rd party tools such as Unity.

We expect to make available a website where you can obtain a license by the end of August, which will be available at adobe.com/go/fpl. And we are extending the free use of the Premium Features for new content publicly released prior to the availability of the licensing website. To obtain a license for grandfathered content that is released prior to the availability of the licensing website, please contact us directly at fpl@adobe.com.

To provide publishers with enough time to obtain a license to take advantage of Premium Features, Flash Player will not begin enforcing the license requirements for Premium Features until at least 8 weeks after the availability of the licensing website. Once Flash Player begins enforcing the Premium Features license requirement, unlicensed content requesting use of the Premium Features will continue to run, and will automatically use software rendering (for more information, please review the release notes for the beta release of Flash Player 11.4).”

Update4: [January 30, 2013] Adobe reclassified use of Alchemy fast-mem opcodes with Stage3D as nonpremium!  This means currently there are no premium features (but there can be some in the future).

Here is relevant part of the FAQ from Adobe Premium Features for Flash Player page:

What are the XC APIs?
The XC APIs are the combination of domain memory APIs and Stage3D hardware acceleration APIs. These cross-compilation APIs allow a 3rd party ecosystem of game development tools to target Flash Player, including languages such as C/C++ and tools like Unity, as well as the Adobe Flash C++ Compiler (flascc) cross-compiler.

What is the status of the XC APIs?
As of January 2013, the XC APIs are no longer classified as a Premium Feature and access no longer requires a separate license from Adobe, nor royalties. The use of Stage 3D APIs in conjunction with the fast-memory opcodes via the domainMemory API will be available as a standard feature without requiring that content creators enter into a separate license agreement with Adobe. …

Why is Adobe changing the licensing requirements for the XC APIs?

Based on feedback from developers, Adobe has decided to change the licensing terms for the XC APIs and classify these capabilities as a standard feature. …

 Current version of Adobe roadmap for the Flash runtimes states:

“As of January 2013, the XC APIs are no longer classified as a Premium Feature and access will no longer require a separate license from Adobe. Thus the use of Stage3D APIs in conjunction with the fast-memory opcodes via the domainMemory API will be available without requiring that content creators enter into a separate license agreement with Adobe. Developers and publishers that have published content using the XC APIs do not need to make any changes to their content to reflect the change of status for the XC APIs, nor submit royalty payments.

At this time, there are currently no APIs or features designated as Premium Features in the Flash runtimes. However, additional Premium Features may be added in the future.”

Also worth noting is that plans for Flash Player “Next” and ActionScript “Next”  has changed:

“However, by its nature, this type of architectural innovation is disruptive and generally not backwards-compatible. As Adobe has learned in the past from transitions between generations of virtual machines (from ActionScript 2 to ActionScript 3), this places a high burden on developers who want to take advantage of features and APIs which may only be available via the new runtime, or which may require significant porting of content, frameworks, and libraries. Given this, as well as the growing importance of browser-based virtual machines, Adobe will focus its future Flash Player development on top of the existing Flash Player architecture and virtual machine, and not on a completely new virtual machine and architecture (Flash Player “Next”) as was previously planned. At the same time, Adobe plans to continue its next-generation virtual machine and language work as part of the larger web community doing such work on web-based virtual machines.”

This is consistent with Premium Feature reclassification, as earlier plans were making fast memory opcodes irrelevant:

New ActionScript 3 APIs to access the fast-memory opcodes are no longer being added to the “Dolores” release. The APIs are no longer relevant due to planned improvements for ActionScript execution and APIs in ActionScript “Next”.

Below are a couple of  Twitter reactions to the news:

Good news everyone ! Flash Premium Features licensing is no more in effect for XC API’s. - Ralph Hauwert @UnitZeroOne

#wtf now #stage3d + #alchemy are no longer a premium feature. So wht purpse served that move lst year ? #as3 - Patrick Le Clec’h@pleclech

It says a lot about the stewardship of Flash that rolling back a bad idea is seen as the top new feature. - Robin Debreuil @debreuil

The #Flash speed tax is dead. Hope #adobe doesn’t replace it with something worse - Nicolas Cannasse @ncannasse

Also posted in Central-Apollo-AIR, Flash, Flex, Misc. Tagged , , , , , , 3 Comments

ASV is 11 Today

ASV 1.0 was released exactly 11 years ago…

And today we released the 11th anniversary version:

Thank you all for your support. Flash community is one of the best out there for sure.

Also posted in Flash, Flex Tagged Comments Off

Today It’s 10th Anniversary of ASV…

Yay! 10 years ago today ASV version 1.0, the first decompiler for Flash, was released.

One thing Twitter taught me is that long posts are not always the best, so I will keep this really short.

As @elsassph said: We're getting old :)

Also posted in Flash, Flex 1 Comment

Accessibility: Is a CC button deaf-friendly?

You learn something each day, sometimes it has a big impact.

Suppose you are designing a FLV video player. Unless the player is to be extremely simple, you will want to support displaying closed-captions/subtitles, either because you are truly accessibility conscious and care about it, or, because you find the idea of displaying subtitles for a foreign language movie cool. Surely, you will want to cover all bases.

Lets start adding captions support to the design:

  1. You will need to have a button, labeled 'CC', that toggles display of captions.
  2. Not all FLVs will have associated captions, so a feature can be to hide the CC button (rather than displaying it in disabled state) when there are no captions available. This will also provide more space for other controls, a slider may benefit from the extra space. [1]
  3. Some people will want to start with captions-on, so you will provide the programmatic interface to start with the CC button already clicked once.

Can you think of any other option? (Other than supporting multiple language tracks) Anything missing?

Until some minutes ago, I wouldn't know the missing option, and the CC button would be the symbol of my accessibility support.

Missing option is having captions on all the time without the CC button to turn them off.

What good is that for? Obviously you could have thought about this, but why would you want it?

Because, at a site for the deaf (which is what accessibility is really all about in this case), a CC button is not considered deaf-friendly. Captions must be present and displayed at all times [2].

Just like the way you (and I) think, 'let's not display the CC button because there won't be captions for some FLVs', you should also think, 'let's not display the CC button because there are times there will be captions all the time and they will never be turned off'.

A FLV player with a CC button, sure, is accessible. But if you really care about accessibility, you should have the option for not displaying that button.

That's what I learned today, from one of our Captionate [3] customers, who is creating web sites targeting deaf consumers, and who himself is also deaf. He is passionate about this. For him, it's not an option to have the CC button displayed, it's inappropriate, it's not deaf-friendly, end of story.

Could I ever, by myself, have thought about supporting captions without a CC button? Maybe… Could I ever have shared the passion about this? I don't think so.

Nothing is as simple as it looks, accessibility included.

[1] Obviously, if you have designed a player that works with different skins, you will want to have skins without a CC button (no captions support) and skins with a CC button that support captions. For the sake of this discussion, this is irrelevant.

[2] 'They can embed captions onto video in that case' will be too shallow thinking,

[3] We do not provide a player for deploying captioned FLVs with Captionate. We do not have a FLV player product.

Also posted in Captionate, Flash Tagged , , Comments Off

ASV is 9 today…

So I haven’t been posting lately.

I was obviously busy, but main reason was (as I have written before) I didn’t want to sound like trying to sell more copies of ASV using my blog, and I didn’t want to post off-topic, but any on topic useful bits of info I could share was un-shareable. What was left was Adobe press release like news, like the recent Flash CS4 10.0.0.2 update, but I decided I didn’t want that long ago.

Of course, I can always post about hot topics of the day, like recent Flex Builder name change to Flash Builder. Well, I hate it and I think it’s wrong. Adobe is exploiting the ‘Flash’ name and I think it will not help the ‘Flash’ brand or the platform. A totally, absolutely wrong move – will cause lots of confusion in the long run* (so I totally disagree with KP on this one). OK I said it, it won’t change anything (other than maybe some people with strong feelings about this will start not having good thoughts about me).

A few months ago I even did an off-topic test blog to see if I can really post at least daily. I saw that I could.

Anyway…

Today is ASV’s 9th anniversary. I had to post, because I realized if I didn’t, some people might get wrong ideas about us, ASV, ASV’s future etc. We are on pre-release for quite some time now, for various reasons, but we are working and alive just as we always have been (We released last pre-release ASV just 16 days ago with improved SWF 10 and AS3 support). Second of all, I call myself ‘ASV Guy’, so this makes this post appropriate. And 9 years is quite a long time for any product.

I don’t know how often I will post here, hopefully my next post will not be exactly this day next year…

* Unless Adobe is getting ready to ‘phase out’ Flash IDE, the authoring tool, which would be a worse (or probably the worst) move and Lee Brimelow says this is not the case.

Also posted in Misc. Tagged , , , , 3 Comments

On Version Numbers…

We will be changing version numbering of our products. Admitted, if we didn’t feel we have to do this, most probably we wouldn’t have cared at all.

For ASV, we started with version 1.0, in 2000. And major versions went like 2, 3, 4… We reserved .5 minor update for a somewhat very significant update and normally minor updates went like .01, .02, .03… Internal releases made us skip minor version numbers released and sometimes we increased the minor version to avoid confusion (People do confuse 5.1 and 5.01).

We synchronized ASV major versions with major Flash versions. ASV 1 supported Flash 4, ASV 2 supported Flash 5, ASV 3 supported Flash 6 (MX)… I personally liked this because it was straight forward and  it made things simple. But this was mostly because Flash major versions were synchronized with major Flash player versions (and so SWF versions). After all, you created Flash (SWF files) with Flash (the authoring tool). Why should there be a major player release if there’s no tool to support the new features? Then there was Flex… (Flash was not the only authoring tool that can support a new player anymore).

Frankly, I think we still would be reluctant to change the versioning, if ASV didn’t lag behind. We currently have ASV 6 ‘pre-release’ version. Again, the most important reason it’s called a pre-release is probably because we don’t have the documentation/help yet. Otherwise any release version is also bound to have bugs/issues or some missing features. Current ASV pre-release can even open SWF 10 content (found on the web), displays a warning about the version because it’s not supposed to support SWF version 10. And of course new Flash release is near and skipping version 6 of ASV, because it’s released as pre-release versions, doesn’t sound good.

I never liked other naming/versioning schemes… Windows 95, Office 98, MX, CS3, Flash MX 2004 (version 7 which was released in 2003 BTW)…

One thing was sure, we would never use arbitrary letters or acronyms as the major version designator. Using year or date was surely better and then the date actually meant something. If the software is clearly dated, you don’t need any other version numbers. The developer assigns the numbers anyway and there’s no standard (We did skip ASR versions 3 and 4 to align it with ASV version. Some developers use odd/even minor version numbers for unstable/stable builds, we never did that because we never have unstable builds. Some skip versions 4 and 13 because of superstitious reasons. There’s no standard really).

So, it’s ASV 2008… We ourselves hated the way it sounded first. But make no mistake, it won’t be deceptive like dates on magazines. I never got used to reading a mag dated into the future… So, let months be another number of the version, and the day another. If you have ASV 2008/10 that will mean it’s released in October 2008. In the about box, you will see a verbose version string like 2008/10.14, where 14 will mean the date of release.

We are losing the arbitrary version numbers, version number will be the time stamp. That’s our solution and we believe it’s superior to arbitrary numbering, cuts the confusion and has many other advantages to both the developer and the users.

We always made updates free, and charged for some upgrades. Since our version numbers depended on new release of Flash (and then we needed some time for supporting the new Flash), you never new exactly when there will be a new major version. And because it was not feasible for us to work on many versions, usually what happened was that we stopped working on a previous version and started working on the new version. Bug fixes and improvements even for earlier versions of SWF went into the new version, old version just stayed as it is… We did have a grace period but someone who purchased ASV when a new version released did get longer free upgrades than someone purchased just before the grace period (and received the next version as per our ‘next version upgrade free’ policy). In short, using dates lets us offer things like: ASV with 1 year of free updates, or ASV with 2 years of free updates. There will be no ‘upgrade’ in the normal sense, major version number will change from 2008 to 2009, when 2009 comes…

Is this new? Not really. And most software do need major version numbers to indicate milestone releases. Ours didn’t, we have realized. Our version number (which will be the date) will mean that the software is what we had at that date, nothing more, nothing less.

Do you want to purchase a copy of ASV and see this in action? :) You’ll have to wait till mid-October…

All the above is quite condensed, I can write a small chapter about this change. Let me finish by saying that we will never inconvenience our current customers, they will get what we have promised at the time of their purchase and maybe some more because we would be cautious (rather than err) about this.

Tagged , , Comments Off

ASV 6 Alpha 1

We have just made ASV 6 Alpha1 available to all licensed ASV 5 users. It’s really an alpha release, very incomplete.

Still, we think it will not be totally useless. And with the future alpha and beta versions, we hope our users will help us finding issues (With this alpha1 release, there are so many known issues, we are not really looking for reports from our users).

For example, the AS3 decompile engine integration to ASV is not complete at all (and neither the decompile engine), so you’ll see timeline scripts as classes, where each frame script is a method. Most probably you won’t be able to see those classes in later builds and each frame script will show on its own frame…

Also posted in Flash, Flex Tagged , , , 2 Comments

Exactly 7 years has passed since ASV 1.0.

[end of post]

Click to continue reading “Exactly 7 years has passed since ASV 1.0.”

Tagged 4 Comments

ASV, UAE, ASR 5.25 updates released!

These updates mainly enhance the decompile engine and fix some bugs. (No CS3/AS3 support yet, it will come with 6th versions and ASV 6 is expected to be available by July 16th, 2007).

I will keep this post short. ASV license owners: if you are also using SWF Encrypt 4, please test your protected SWFs with the updated version (and let us know if you find a bug). Thanks.

(We think most probably these will be last 5.x updates for ASV, UAE and ASR. Not that we won’t release updates if a serious bug is found. May 16th is ASV’s 7th anniversary, and I tend to think it would be a nice coincidence to have the final 5.x version released on that day…).

Also posted in Flash Tagged , , , , , 2 Comments