Posts tagged with “bug”

November 14, 09

Nostalgia in Parts

The nostalgia definitely came back. With the recent re-release of the C64 emulator for iPhone I felt that I am somehow thrown back into C64 world again – the only difference is that I am twice as old as I used to be when being active on C64 demoscene and it feels a bit tight. Some time ago I bumped into this amazing ICU64 project - realtime debugging/hacking tool by Mathfigure. Do you remember Matrix the movie?

The first part

I sooooo wanted to have all that working in AS3, that I have resurrected FC64 – low level C64 emulator written by Claus Wahlers (Codeazur) with Darron Shall. The code was moved to GitHub recently, so I just had forked it and thus give it its new life.

Let's roll with a small demo.

FC64 player

Click to activate and watch this (very buggy here but interesting) part from Parts, great demo from 1995 by Oxyron.
Red and green indicate memory write/read, grayscale map represents memory values.
Click on the map and use mouse wheel or +/- keys to zoom in and out.
(Memory debugger idea shamefully borrowed from Mathfigure.)

The demo itself doesn't play nicely with FC64 and it's quiet as there's still a lot of work to do on the emulator, but just pay attention the memory snapshot – discover how data is being populated in the memory. The image of girl's face is decompressed and overwrites BASIC area.

I am kind of quietly hoping to get other (ex-)demosceners involved to cooperate and improve FC64 as there's loads to do. The most important thing is to re-enable the SID (maybe using Ralph's TinySID alchemy port) as there are traces of early SID implementation in the FC64 source.
There's another idea for a secret project involving KickAssembler, but shhhh for now...

...and yet another part of the same story

Yes, there is more to it. I am supposed to work on the HTML/CSS templates for the new, cool (web2.0) version of Intros C64 - the biggest online C64 cracking intros repository. The design (also be me) has been approved a year ago, and I am somehow in stuck in the middle - need to work out the roadmap.

Anyway, I wrote a tiny a little bookmarklet to enable live preview of the intros, here are two example links:

Dynamic Duo 3D stars
Dynamic Duo (pictured above)

And the Bookmarklet itself - just drag the link to your toolbar and use on Intros C64 site (you have to select an intro first - get the view with the comments).

06:30 PM | | 0 Comments | Tags: , , , , , , ,
June 03, 09

Assassinating jumpy htmlText hyperlinks

UPDATE: Read this great tutorial on styling the HTML text field

I read quite recently that people are still swearing Flash jumpy hyperlinks in htmlText with Anti-aliased for readability option turned on. What are they talking about? – here's the example.

Roll over and out the links in the left column and carefully observe what happens to the text. Pretty bad stuff.

Fortunately, there is a perfect workaround discovered by Jonnie Hallman aka Destroy Today, but not everybody knows about it yet. So, (to save the world), I wrote a simple TextField wrapper class that automatically deals with the issue, additionally it also fixes another annoying bug – selectable code>TextField scrolls one line on text select – when you click and drag down the mouse while selecting the text, the content scrolls vertically! (and it shouldn't as the text height is the same as the box height, so there's nothing to scroll)

The fixed TextField is presented in the right column – again, try rollover the links.

How does the fix work then?
Basically, after setting the htmlText property, store the height of the TextField, then set autoSize to NONE. That will lock it, so no no more jumping is happening. It is all done at one go by overriding htmlText setter method.

override public function set htmlText(value:String):void
{
    autoSize = TextFieldAutoSize.LEFT;
    super.htmlText = value;
    recordedHeight = height;
    autoSize = TextFieldAutoSize.NONE;
    // adding extra height will prevent "vertical scroll on text select" bug
    // the extra height value should be just bigger than the default leading
    height = recordedHeight + getTextFormat().leading + 1;
}

Additionally, we're adding few pixels extra the TextField default leading value plus 1 to the height there (discovered by Luke Sturgeon), it will prevent "vertical scroll on text select" bug described above.

How should I apply this fix to my broken TextField?
By creating a FixedTextField instance instead, exactly the same way as you would instantiate an ordinary TextField:

var textTF:FixedTextField = new FixedTextField();

Alternatively, you could clone an existing TextField by referencing to it:

var textFieldFixed:FixedTextField = new FixedTextField(someOtherTextFieldToClonePropertiesFrom);

In fact, you can even attach the TextField stored in the Flash IDE library (obviously wrapped up in a MovieClip symbol) – I wrote a separate blog post on that matter.

Download zipped demo including the FixedTextField class.

01:30 PM | | 22 Comments | Tags: , , , , ,