Sorry, that thread title was just a clickbait
But did you know that the Kickstart 1.x "Insert floppy" image was actually a vector image? Once again, Amiga was truly ahead of its time. Commodore engineers chose to use a vector image to save disk space. This was recently discussed here. And another user posted the raw vector data and described the algorithm how to render it here. Of course I had to implement this in Hollywood. Took just a few minutes.
Here it is, ready for pasting into Hollywood 9: (note that Hollywood 9 is strictly required because it uses the groovy new palette mode!)
Code: Select all
/* ported to Hollywood from an explanation of the algorithm here: https://retrocomputing.stackexchange.com/a/13940 */
@PALETTE 1, {Colors = {#WHITE, #BLACK, $7777CC, $BBBBBB}}
@DISPLAY {Palette = 1}
q = SystemRequest("Hollywood", "Quick or slow draw?", "Quick|Slow")
t = {$FF, $01, $23, $0B, $3A, $0B, $3A, $21, $71, $21, $71, $0B, $7D, $0B, $88, $16, $88, $5E, $7F, $5E, $7F, $38, $40, $38,
$3E, $36, $35, $36, $34, $38, $2D, $38, $2D, $41, $23, $48, $23, $0B, $FE, $02, $25, $45, $FF, $01, $21, $48, $21, $0A,
$7E, $0A, $8A, $16, $8A, $5F, $56, $5F, $56, $64, $52, $6C, $4E, $71, $4A, $74, $44, $7D, $3C, $81, $3C, $8C, $0A, $8C,
$0A, $6D, $09, $6D, $09, $51, $0D, $4B, $14, $45, $15, $41, $19, $3A, $1E, $37, $21, $36, $21, $36, $1E, $38, $1A, $3A,
$16, $41, $15, $45, $0E, $4B, $0A, $51, $0A, $6C, $0B, $6D, $0B, $8B, $28, $8B, $28, $76, $30, $76, $34, $72, $34, $5F,
$32, $5C, $32, $52, $41, $45, $41, $39, $3E, $37, $3B, $37, $3E, $3A, $3E, $41, $3D, $42, $36, $42, $33, $3F, $2A, $46,
$1E, $4C, $12, $55, $12, $54, $1E, $4B, $1A, $4A, $17, $47, $1A, $49, $1E, $4A, $21, $48, $FF, $01, $32, $3D, $34, $36,
$3C, $37, $3D, $3A, $3D, $41, $36, $41, $32, $3D, $FF, $01, $33, $5C, $33, $52, $42, $45, $42, $39, $7D, $39, $7D, $5E,
$34, $5E, $33, $5A, $FF, $01, $3C, $0B, $6F, $0B, $6F, $20, $3C, $20, $3C, $0B, $FF, $01, $60, $0E, $6B, $0E, $6B, $1C,
$60, $1C, $60, $0E, $FE, $03, $3E, $1F, $FF, $01, $62, $0F, $69, $0F, $69, $1B, $62, $1B, $62, $0F, $FE, $02, $63, $1A,
$FF, $01, $2F, $39, $32, $39, $32, $3B, $2F, $3F, $2F, $39, $FF, $01, $29, $8B, $29, $77, $30, $77, $35, $72, $35, $69,
$39, $6B, $41, $6B, $41, $6D, $45, $72, $49, $72, $49, $74, $43, $7D, $3B, $80, $3B, $8B, $29, $8B, $FF, $01, $35, $5F,
$35, $64, $3A, $61, $35, $5F, $FF, $01, $39, $62, $35, $64, $35, $5F, $4A, $5F, $40, $69, $3F, $69, $41, $67, $3C, $62,
$39, $62, $FF, $01, $4E, $5F, $55, $5F, $55, $64, $51, $6C, $4E, $70, $49, $71, $46, $71, $43, $6D, $43, $6A, $4E, $5F,
$FF, $01, $44, $6A, $44, $6D, $46, $70, $48, $70, $4C, $6F, $4D, $6C, $49, $69, $44, $6A, $FF, $01, $36, $68, $3E, $6A,
$40, $67, $3C, $63, $39, $63, $36, $65, $36, $68, $FF, $01, $7E, $0B, $89, $16, $89, $5E, $FE, $01, $22, $0B, $FE, $01,
$3B, $0B, $FE, $01, $61, $0F, $FE, $01, $6A, $1B, $FE, $01, $70, $0F, $FE, $01, $7E, $5E, $FE, $01, $4B, $60, $FE, $01,
$2E, $39, $FF, $FF}
CreateBrush(1, 160, 150, {Palette = 1})
SelectBrush(1)
Repeat
Local x = t[i]
Local y = t[i+1]
If x = 255
If y = 255 Then Break
SetDrawPen(y)
drawing = False
ElseIf x = 254
drawing = False
EndSelect
FloodFill(1, t[i+2], t[i+3], 1, y)
If Not q
DisplayBrush(1, #CENTER, #CENTER, {ScaleX = 2, ScaleY = 2, AnchorX = 0.5, AnchorY = 0.5})
Wait(25)
EndIf
SelectBrush(1)
i = i + 2
ElseIf drawing = True
Line(lx, ly, x, y)
If Not q
DisplayBrush(1, #CENTER, #CENTER, {ScaleX = 2, ScaleY = 2, AnchorX = 0.5, AnchorY = 0.5})
Wait(25)
SelectBrush(1)
EndIf
Else
drawing = True
EndIf
lx = x
ly = y
i = i + 2
Forever
DisplayBrush(1, #CENTER, #CENTER, {ScaleX = 2, ScaleY = 2, AnchorX = 0.5, AnchorY = 0.5})
WaitLeftMouse
End