April 24, 2006
My FITC 2006 ActionScript 3 Slides
I've posted the slides for my ActionScript 3 presentation for FITC 2006. Did you catch the big announcement at the end?
I had a really enjoyable time presenting this session. It was definitely one of the more technical sessions at the conference, but everyone seemed genuinely interested and I had numerous people come talk to me afterwards (which is usually a good sign).
You can download my slides here. Some of the session highlights...:
- I dissected the ByteArray class.
- I created a drawing program that allowed you to either save a JPG or PNG by converting the pixel data into a ByteArray.
- I covered using URLLoader and URLStream to pull binary information into the player. I demonstrated parsing an Excel .xls file and displaying the results in a DataGrid (holy !@#). My good friend Jim Cheng contributed the Excel-parsing code.
- I talked about the binary Socket class as well as the types of applications that can be built on top of it. I demonstrated my VNC project and connected to my SuSE Linux server through Flash running in FireFox.
- I talked about the new Loader display object and showed how to create an on-screen image out of a ByteArray.
- Lastly, I talked a bit about emulators, and showed the Chip8 Emulator in action.
I also touched on combining Socket and Loader to deliver .swfs in a secure manner. When you view a .swf file, it ends up in your browser's cache and can usually be decompiled rather effortlessly with tools like ASV. I talked about the use case where you can use Loader to download an entire .swf file over a Socket connection (receiving the data as a ByteArray), then place the .swf on the stage via Loader.loadBytes. This route prevents the .swf from being cached by the browser and makes it much harder to decompile. It's not 100% secure yet, but imagine public/private key encryption to deliver the .swf contents over a secure Socket instead. The days of easily-decompiled .swf files may be coming to an end?
Finally, the biggest news and probably most exciting part of my presentation was the very last slide. I made a big announcement - something that I've been dieing to talk about for a very long time now, but was just waiting for the right time.
There is now an Open Source Commodore 64 Emulator written in ActionScript 3! (The Trac page might still be password protected, go bug Aral to remove the password if he hasn't yet.) Claus Wahlers and I have teamed up to create the emulator. It's still a work in progress, and we're looking for hardware-nerds to step up to the plate and help us finish it. The CPU code is complete, but hasn't been extensively tested. The memory code is a work in progress, and we haven't had a chance to start on the display code yet. Still though, it's a good start.
At this point, we're just running the CPU as fast as possible without trying to get the timing completely accurate. On the debug Flash Player, it runs at ~2.5 MHz. On the release Flash Player, it runs at closer to 6 or 7 MHz. This is a good thing, as the original Commodore chip only runs at 1 MHz. So, in theory, it should be possible to emulate the games in real-time without any slow down or speed delays (holy @#!@).
To friends, old and new, here's to next year. FITC rocked the llama pretty hardcore this year. It was great catching up and meeting some new faces, and I hope to see you all again soon!
One last thing - I totally thought way too much about my "supermarket item" that appeared next to my session information. I picked "Love Bites" since my session was about "bytes" and by the end I was hoping you would "love" them. Get it? Hah! Total geek humor... *waits for the tomatoes to fly*
ActionScript, ActionScript 3, Flash, Flex, Commodore 64, C64, Emulator
Comments
Great presentation! The work you've done with VNC in Flash Player 9 is really fantastic. It was nice meeting you too.
Posted by: Danny Patterson at April 24, 2006 12:44 PM
Thanks for the work and putting it out there for all of us.
Posted by: A.Olcott at April 24, 2006 12:47 PM
This is some great stuff your putting out there. Congrats on the emulator!
Posted by: Dominick Accattato at April 24, 2006 01:13 PM
Really nice work man, I particulary like that use case about delivering SWF in a secure manner, something I may just investige my self... top work as usual thanks for sharing.
Posted by: Ray Boyd at April 24, 2006 02:23 PM
Really Awesome man! the post and the slides are invaluable info. Thanks for sharing! :)
Posted by: Carlos Rovira at April 24, 2006 03:56 PM
Thanks for linking to my AIM client. I suddenly feel cooler for being included in a conference presentation... :P
Posted by: Josh at April 24, 2006 06:56 PM
ah well. finally the chip8 emulator was a little bit usefull for somebody.
btw. sources are located at http://je2050.de/files/source/old/chip8.zip
Posted by: joa e. at April 25, 2006 07:51 AM