vgi: rocket_door done more or less

This commit is contained in:
Vince Weaver 2021-06-21 15:52:04 -04:00
parent 4c99c40a15
commit 957d2f3575
4 changed files with 251 additions and 4 deletions

View File

@ -24,7 +24,7 @@ HELLO: hello.bas
VGI: vgi.o
ld65 -o VGI vgi.o -C $(LINKERSCRIPTS)/apple2_c00.inc
vgi.o: clock.data rocket.data \
vgi.o: clock.data rocket.data rocket_door.data red_book.data \
vgi.s vgi_clearscreen.s vgi_rectangle.s vgi_circles.s vgi_lines.s \
vgi_triangles.s
ca65 -o vgi.o vgi.s -l vgi.lst
@ -42,6 +42,19 @@ rocket.data: make_boxes_asm rocket.vgi
echo "rocket_data:" > rocket.data
./make_boxes_asm < rocket.vgi >> rocket.data
###
rocket_door.data: make_boxes_asm rocket_door.vgi
echo "rocket_door_data:" > rocket_door.data
./make_boxes_asm < rocket_door.vgi >> rocket_door.data
###
red_book.data: make_boxes_asm red_book.vgi
echo "red_book_data:" > red_book.data
./make_boxes_asm < red_book.vgi >> red_book.data
###

View File

@ -0,0 +1,146 @@
; Rocket from Myst
CLS 255 ; white background
RECT 1 6 0 122 140 191 ; ocean left
RECT 1 6 140 122 279 191 ; ocean right
; rock
RECT 1 5 239 171 279 191 ; green/orange rock
VTRI 4 228 162 226 245 171 ; black edge
VTRI 4 228 162 224 244 185 ; black edge
VTRI 4 232 191 224 244 184 ; upside down
VTRI 4 255 165 245 255 171 ; black right edge
VTRI 4 255 178 245 255 171 ; black right edge
RECT 4 4 255 170 279 178 ; rock shade
RECT 4 4 255 163 270 178 ; rock shade
; base
DRECT 0x8 0x22 86 124 193 191 ; green brick dock
FCIRC 7 97 121 4 ; left platform
FCIRC 7 180 121 4 ; right platform
RECT 7 7 99 119 175 127 ; platform
RECT 4 4 103 114 178 121 ; shady platform
HTRI 4 95 120 115 120 102 ; left shady plat
HTRI 4 185 120 115 120 175 ; right shady plat
RECT 0 0 102 128 116 191 ; left shade
RECT 0 0 156 126 169 191 ; center shade
RECT 0 0 179 126 194 191 ; right shade
RECT 3 3 89 137 93 146 ; left light
RECT 3 3 186 139 190 147 ; right light
; spaceship
POINT 5 4 94 ; nosepipe
LINETO 26 94 ;
HTRI 4 25 94 84 105 43 ; noscone
; draw deeper Z body
HTRI 5 233 103 103 114 179 ; behind bottom fin
; draw tails
FCIRC 4 217 87 32 ; tails
FCIRC 7 247 87 25 ; tails cutout
RECT 4 4 231 59 263 64 ; top fin
HTRI 4 255 58 54 58 222
RECT 4 4 230 108 249 120 ; bottom fin
RECT 4 4 240 111 278 115 ; bottom fin
RECT 4 4 220 115 263 120 ; bottom fin
; draw body
RECT 5 5 44 84 234 101 ; body
HTRI 5 44 84 77 84 69 ; left top
HTRI 5 234 88 75 88 182 ; right top
RECT 5 5 75 76 190 84 ; center top
HTRI 7 223 84 84 88 234 ; right cutout
RECT 5 5 44 101 185 106 ; next strip down
HTRI 5 228 101 101 107 187 ; over bottom fin
HTRI 5 44 106 106 113 74 ; left under
RECT 5 5 74 106 185 113 ; next layer
HTRI 5 74 113 113 100 102 ; next left
HTRI 5 181 113 113 100 173 ; next right
RECT 5 4 99 113 173 117 ; next layer
; decorations
RECT 4 4 234 88 239 101 ; nozzle
HTRI 4 173 84 79 88 163 ; weird scoop
HTRI 4 219 88 83 87 210 ; another scoop
DRECT 0xcc 0xb3 67 80 74 110 ; left stripe
DRECT 0xcc 0xb3 70 76 75 80 ; left stripe
DRECT 0xcc 0xb3 70 106 75 114 ; left stripe
DRECT 0xcc 0xb3 183 76 190 112 ; right stripe
; door
POINT 4 150 80
LINETO 115 80
LINETO 115 108
LINETO 120 111
LINETO 137 111
POINT 7 138 81
LINETO 138 109
; door lines
POINT 4 139 96
LINETO 168 97
POINT 4 139 100
LINETO 165 100
; marker switch
RECT 6 6 148 116 158 124 ; base
RECT 7 7 147 101 158 117 ; border
RECT 5 1 150 103 155 113 ; woodgrain
VTRI 6 154 95 148 158 101 ; top
POINT 2 151 97 ; handle
LINETO 155 97
; walkway
VTRI 1 128 129 101 109 191 ; left path green
VTRI 3 129 129 109 129 191 ; left path white
RECT 3 3 129 129 151 191 ; center path
VTRI 1 153 129 170 179 191 ; right path green
VTRI 3 152 129 152 170 191 ; right path white
POINT 0 152 129 ; right gap
LINETO 170 191 ; right gap
POINT 0 129 129 ; left gap
LINETO 109 191 ; left gap
; left railing
POINT 0 127 115 ; far left pole
LINETO 128 133
POINT 3 127 115 ; far left rope
LINETO 122 129
POINT 2 123 126 ; center left pole
LINETO 123 147
POINT 3 120 128 ; center left rope
LINETO 116 144
LINETO 109 154
LINETO 99 158
RECT 2 2 97 164 100 191 ; near pole
FCIRC 2 98 161 4 ; near pole circle
; right railing
POINT 0 153 117 ; far right pole
LINETO 152 132
POINT 3 153 118 ; far right rope
LINETO 157 129
POINT 2 158 126 ; center right pole
LINETO 157 141
POINT 3 158 127 ; center right rope
LINETO 162 142
LINETO 168 154
LINETO 178 160
RECT 2 2 177 164 181 191 ; near pole
FCIRC 2 179 161 4 ; near pole circle
; wire pole
RECT 6 6 174 88 179 126 ; pole
RECT 6 6 174 73 179 80 ; insulator
POINT 6 177 90 ; thinner pole
LINETO 177 74 ; to top
; shadow
POINT 0 129 191
LINETO 144 187
POINT 0 139 188
LINETO 132 180
LINETO 130 170
LINETO 129 157
LINETO 134 149
LINETO 139 143
LINETO 135 138
LINETO 134 132
LINETO 138 126
LINETO 131 127
POINT 0 126 145
LINETO 143 142
; power wire
POINT 6 279 54 ; from off screen
LINETO 238 65
LINETO 177 74
LINETO 170 82
LINETO 173 85
LINETO 189 88
LINETO 209 86
END

View File

@ -0,0 +1,54 @@
; Rocket Door from Myst
CLS 255 ; white background
RECT 1 7 0 107 119 192 ; ocean left
; platform
VTRI 4 105 168 62 140 191 ; shady platform
VTRI 7 95 174 62 114 191 ; white platform
; nosepole
POINT 5 26 82
LINETO 38 84
; ship
RECT 5 5 153 0 278 192 ; left
FCIRC 5 77 87 42 ; nose
FCIRC 4 89 89 51 ; nose
FCIRC 5 101 91 60 ; nose
VTRI 5 154 0 65 154 47 ; left top
VTRI 5 139 191 65 154 135 ; left bottom
RECT 5 5 139 45 182 192 ; left
; lines
POINT 4 41 87 ; front top
LINETO 79 94
POINT 4 44 104 ; front bottom
LINETO 71 120
; lines
POINT 4 267 0 ; top line
LINETO 192 15
POINT 4 279 178 ; center line
LINETO 169 145
POINT 4 243 191 ; bottom line
LINETO 172 164
; door
POINT 7 175 191 ; door bottom right
LINETO 172 180
LINETO 168 128
LINETO 174 73
LINETO 191 16
LINETO 111 35
POINT 4 114 176 ; door outline
LINETO 107 161
LINETO 99 146
LINETO 94 113
LINETO 97 73
LINETO 110 36
LINETO 190 17
POINT 4 99 144 ; on door bottom
LINETO 127 159
POINT 4 104 56 ; on door top
LINETO 145 49
; dark step
VTRI 4 107 161 117 130 173 ; top half
VTRI 4 130 191 117 130 173 ; left third
VTRI 4 130 173 130 160 191 ; right third
POINT 7 138 191
LINETO 119 179
END

View File

@ -14,9 +14,9 @@ vgi_test:
; get pointer to image data
lda #<rocket_data
lda #<rocket_door_data
sta VGIL
lda #>rocket_data
lda #>rocket_door_data
sta VGIH
; lda #<clock_data
@ -42,8 +42,9 @@ loopy:
jsr fake_input
jsr fake_input
bit FULLGR
; Rocket
bit FULLGR
lda #<rocket_data
sta VGIL
@ -56,6 +57,37 @@ loopy:
bit TEXTGR
; Rocket Door
bit FULLGR
lda #<rocket_door_data
sta VGIL
lda #>rocket_door_data
sta VGIH
jsr play_vgi
jsr wait_until_keypress
bit TEXTGR
; Red Book
bit FULLGR
lda #<red_book_data
sta VGIL
lda #>red_book_data
sta VGIH
jsr play_vgi
jsr wait_until_keypress
bit TEXTGR
; jmp loopy
done:
@ -132,6 +164,8 @@ all_done:
.include "clock.data"
.include "rocket.data"
.include "rocket_door.data"
.include "red_book.data"