Hollywood on Kickstart 1.2!!!

Show off your project created with Hollywood
Post Reply
User avatar
airsoftsoftwair
Posts: 5433
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

Hollywood on Kickstart 1.2!!!

Post by airsoftsoftwair »

Image

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
The cool thing is that I added a slow draw option which waits after each cycle so you can see how this iconic image is drawn piece by piece, just like your good old A500 would have drawn it! Isn't that great?
PEB
Posts: 567
Joined: Sun Feb 21, 2010 1:28 am

Re: Hollywood on Kickstart 1.2!!!

Post by PEB »

I get the following error:
Palette pen is out of range!
(current line: 46 - In function: FloodFill)
(I haven't learned to use the new palette mode yet, so I'm not sure what the problem actually is.)
User avatar
airsoftsoftwair
Posts: 5433
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

Re: Hollywood on Kickstart 1.2!!!

Post by airsoftsoftwair »

Oops, fixed the code, try again :)
PEB
Posts: 567
Joined: Sun Feb 21, 2010 1:28 am

Re: Hollywood on Kickstart 1.2!!!

Post by PEB »

It works!
(Pretty neat!)
Post Reply