mist_hgr: some more graphics stuff

This commit is contained in:
Vince Weaver 2021-07-14 02:06:09 -04:00
parent 8c7da7b269
commit 46b2964348
12 changed files with 277 additions and 35 deletions

15
games/mist_hgr/TODO Normal file
View File

@ -0,0 +1,15 @@
HIRES TODO:
turn arrows
more graphics of course
fast bresenham line/triangles
triangles that can cross 255 x border
sync up the intro speeds
sprite movie playing
mockingboard on IIc

View File

@ -10,6 +10,7 @@ all: mist_graphics.inc
mist_graphics.inc: \
todo.lzsa \
clock_s.lzsa \
dock_n.lzsa \
spaceship_far_n.lzsa \
spaceship_door_n.lzsa
# dock_n.lzsa dock_s.lzsa dock_e.lzsa dock_w.lzsa dock_w_open.lzsa \
@ -55,7 +56,7 @@ mist_graphics.inc: \
# tower2_path_e.lzsa tower2_path_n.lzsa \
# pillar_cross.lzsa pillar_eye.lzsa pillar_snake.lzsa pillar_emu.lzsa \
# pillar_bug.lzsa pillar_anchor.lzsa pillar_arrow.lzsa pillar_leaf.lzsa
echo "dock_n_lzsa: .incbin \"todo.lzsa\"" > mist_graphics.inc
echo "dock_n_lzsa: .incbin \"dock_n.lzsa\"" > mist_graphics.inc
echo "dock_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
echo "dock_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
echo "dock_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc

View File

@ -0,0 +1,118 @@
; TODO
CLS 0xff ; white2 background
RECT 6 7 167 108 279 191 ; ocean
VTRI 1 39 20 30 80 97 ; left bg mountain
; gear
DRECT 0x41 0x41 142 50 171 62 ; sideways gear
LINE 0 142 50 171 50 ; top of sideways
FCIRC 2 130 54 16 ; big gear
CIRC 0 128 59 8 ; inner circle
RECT 3 3 113 48 117 52 ; notch1
RECT 3 3 121 39 125 43 ; notch2
RECT 0 0 130 38 133 43 ; notch3
RECT 0 0 139 42 143 48 ; notch4
RECT 0 0 144 48 148 56 ; notch5
RECT 5 5 104 52 108 60 ; marker switch
LINE 0 98 59 98 56 ; fence1
LINETO 110 52
LINETO 133 53
LINETO 142 54
LINE 0 109 52 110 51
; plateau
VTRI 5 95 61 78 102 95 ; left triangle
DRECT 0xA2 0xA2 97 60 191 130 ; main plateau
LINE 0 97 60 191 60 ; top of plateau
DRECT 0xA2 0xA2 188 95 214 127 ; right
VTRI 5 213 97 218 234 125 ; far right
; temple
RECT 2 2 0 60 71 95 ; purple base
DRECT 0x5d 0x54 62 60 71 95 ; edge
RECT 2 2 0 0 42 61 ; purple side
HTRI 2 70 61 40 61 42 ; purple side
LINE 0 41 39 0 26 ; base line
RECT 0 0 41 0 58 7 ; underhang
VTRI 0 41 19 41 58 7 ; underhang
DRECT 0x52 0x52 47 6 53 48 ; l pillar
DRECT 0x52 0x52 15 0 23 32 ; r pillar
VTRI 1 0 60 0 27 98 ; green triangle
; general darkness
RECT 4 4 0 97 146 191 ; general darkness
; steps
HTRI 7 117 101 110 124 141 ; bottom steps
LINE 7 116 119 136 119 ; bottom step
LINE 7 116 116 130 112 ; next step
RECT 7 7 103 74 142 82 ; upper white
HTRI 7 118 74 60 74 153 ; upper white
RECT 7 7 137 60 151 70 ; upper white
RECT 4 4 103 80 124 98 ; upper black
HTRI 4 146 81 81 98 124 ; upper black
HTRI 4 124 80 68 81 155 ; upper black
VTRI 4 150 93 137 159 81 ; upper black
LINE 4 123 80 123 74 ; railing
LINE 4 113 73 113 82 ; edge
LINE 4 113 74 138 67 ; edge
LINETO 143 70
LINETO 152 64
LINE 4 143 69 144 74
; dock area
VTRI 1 97 107 19 106 132 ; green ness
VTRI 1 65 191 36 111 132 ; bottom green ness
HTRI 1 18 133 132 157 47 ; last green ness
DRECT 0xA8 0xAA 159 117 167 137 ; far pile
RECT 4 4 159 116 166 121 ; cap
DRECT 0xA8 0xAA 171 133 184 164 ; middle pile
RECT 4 4 172 128 185 136 ; cap
RECT 4 4 214 177 248 191 ; close cap
VTRI 4 225 172 215 245 178 ; close cap
VTRI 4 248 177 248 255 191 ; close cap
VTRI 5 115 126 66 116 191 ; left dock
RECT 5 5 116 125 160 191 ; center docl
VTRI 5 157 126 159 205 191 ; right dock
LINE 4 158 126 198 191 ; dock edge
; masts
VTRI 5 191 59 204 208 154 ; skinny mast
LINE 5 279 126 211 154 ; sideways mast
LINE 5 279 126 213 156 ; sideways mast
LINE 4 222 155 279 155 ; shadow
LINE 4 275 130 277 153 ; line
LINE 4 232 140 251 127 ; cable
LINETO 279 102
LINE 5 212 112 268 191 ; tall mast
LINE 5 211 113 266 191 ; tall mast
LINE 4 210 112 263 191 ; tall mast
LINE 4 217 127 221 129 ; top ring
LINETO 226 124
LINETO 223 123
LINE 4 222 136 227 136 ; middle ring
LINETO 231 131
LINE 4 241 162 245 163 ; bottom ring
LINETO 249 160
LINETO 247 159
; wall line
LINE 7 0 97 103 96 ; wall line
; door
LINE 7 0 141 13 135 ; door line
LINE 7 5 191 43 164
LINE 5 0 105 17 105 ; door outline orange
LINETO 17 135
LINETO 47 159
LINETO 63 191
LINE 7 0 104 17 104 ; door outline white
LINETO 16 135
LINETO 46 159
LINETO 62 191
; planks
LINE 4 117 191 85 168
LINE 4 160 191 95 153
LINE 4 196 188 101 147
LINE 4 184 170 107 142
LINE 4 175 156 113 135
LINE 4 165 139 122 127
; shadows
;HTRI 4 142 152 163 178 77 ; tree shadow
; marker switch
RECT 7 7 147 104 155 113 ; box
RECT 5 5 148 105 154 112 ; woodgrain
VTRI 6 151 98 147 156 104 ; top
DRECT 0x4c 0x33 146 113 159 127 ; base
END

View File

@ -14,7 +14,7 @@ title_graphics.inc: \
m_title_m.lzsa m_title_y.lzsa m_title_s.lzsa m_title_t.lzsa \
fissure_stars.lzsa fissure_crescent.lzsa fissure.lzsa fissure2.lzsa \
fissure_book_small.lzsa fissure_book_big.lzsa \
m_link_book.lzsa
m_link_book.lzsa book_closed_n.lzsa
echo "cyan1_lzsa: .incbin \"cyan1.lzsa\"" > title_graphics.inc
echo "cyan2_lzsa: .incbin \"cyan2.lzsa\"" >> title_graphics.inc
echo "m_link_book_lzsa: .incbin \"m_link_book.lzsa\"" >> title_graphics.inc
@ -35,7 +35,7 @@ title_graphics.inc: \
echo "book_glow_lzsa: .incbin \"fissure_stars.lzsa\"" >> title_graphics.inc
echo "book_ground_lzsa: .incbin \"fissure_stars.lzsa\"" >> title_graphics.inc
echo "book_ground_n_lzsa: .incbin \"fissure_stars.lzsa\"" >> title_graphics.inc
echo "book_closed_n_lzsa: .incbin \"m_link_book.lzsa\"" >> title_graphics.inc
echo "book_closed_n_lzsa: .incbin \"book_closed_n.lzsa\"" >> title_graphics.inc
####

View File

@ -0,0 +1,35 @@
; MYST Book Closed
CLS 0x80
RECT 7 7 84 6 195 186 ; glow
POINT 4 84 6
POINT 4 196 6
POINT 4 84 185
POINT 4 196 185
DRECT 0xa3 0xae 100 7 194 184 ; cover
RECT 4 4 86 8 110 184 ; spine
VTRI 5 91 10 87 94 184 ; spine rip
HTRI 5 107 8 7 12 86 ; left rip
HTRI 4 170 7 6 31 194 ; upper right tri
HTRI 4 171 183 157 181 195 ; lower right tri
LINE 4 119 82 119 68 ; M
LINETO 124 81
LINETO 131 69
LINETO 131 82
LINE 4 141 68 145 76 ; Y
LINE 4 151 68 145 76
LINETO 145 82
LINE 4 167 71 165 68 ; S
LINETO 165 68
LINETO 162 69
LINETO 161 69
LINETO 160 73
LINETO 166 78
LINETO 167 81
LINETO 165 82
LINETO 163 82
LINETO 160 80
LINE 4 176 71 176 68 ; T
LINETO 188 68
LINETO 188 71
LINE 4 181 68 182 82
END

View File

@ -0,0 +1,15 @@
; Path from Myst
CLS 0x80 ; black background
; TODO, rounded edges?
RECT 7 7 3 85 239 188 ; glow
; book
; link
RECT 7 7 161 40 227 91 ; sky
RECT 6 6 202 70 227 91 ; ocean
RECT 5 5 180 55 208 74 ; mountain
RECT 5 5 208 66 219 74 ; mountain
VTRI 5 180 55 176 182 66 ; mountain left
LINE 6 225 78 213 83 ; mast
LINETO 212 75 ; mast
LINE 0 226 85 214 68 ; mast
END

View File

@ -1,15 +1,21 @@
; Path from Myst
CLS 0x80 ; black background
; Open MYST book
;CLS 0x80 ; black background
; TODO, rounded edges?
RECT 7 7 3 85 239 188 ; glow
RECT 7 7 36 5 239 187 ; glow
POINT 4 36 5
POINT 4 240 5
POINT 4 36 186
POINT 4 240 186
; book
; link
RECT 7 7 161 40 227 91 ; sky
RECT 6 6 202 70 227 91 ; ocean
RECT 5 5 180 55 208 74 ; mountain
RECT 5 5 208 66 219 74 ; mountain
VTRI 5 180 55 176 182 66 ; mountain left
LINE 6 225 78 213 83 ; mast
LINETO 212 75 ; mast
LINE 0 226 85 214 68 ; mast
RECT 4 4 37 6 237 186 ; black
RECT 7 7 39 10 235 184 ; big pages
LINE 5 37 154 36 39 ; orange binding
HTRI 7 125 10 6 11 50 ; part turned page
LINE 5 140 182 44 178 ; part turned page
LINE 4 44 178 50 7
LINE 5 50 7 142 10
LINE 5 40 181 42 10 ; page edge
DRECT 0xAB 0xAE 139 10 149 183 ; crease
; link area
RECT 4 4 161 41 224 90
END

View File

@ -22,7 +22,7 @@ location0:
.byte BG_NORTH ; only north bg
.byte DIRECTION_N ; special exit
.byte 16,24 ; special x
.byte 26,36 ; special y
.byte 104,144 ; special y
.word get_mist_book-1 ; special function
; TITLE_BOOK_CLOSED -- myst linking book closed
@ -59,6 +59,6 @@ location2:
.word $0000 ; west bg
.byte BG_NORTH ; only north bg
.byte DIRECTION_N ; special exit
.byte 22,33 ; special x
.byte 12,26 ; special y
.byte 23,34 ; special x
.byte 40,92 ; special y
.word mist_link_book-1 ; special function

View File

@ -16,6 +16,10 @@ skip_turn_off_music:
; clear screen
; clear to black
lda #$80
jsr BKGND0
lda #0
sta clear_all_color+1

View File

@ -61,7 +61,7 @@ mist_start:
; set up initial location
jsr change_location
; jsr change_location
lda #1
sta CURSOR_VISIBLE ; visible at first

View File

@ -601,6 +601,12 @@ room_frame_no_oflo:
jmp game_loop
really_exit:
; clear to black
; lda #$80
; jsr BKGND0
jmp end_level
@ -707,17 +713,8 @@ theme_music:
.incbin "audio/theme.pt3"
; click on book, plays theme
; FISSURE: I realized the momemnt
narration1:

View File

@ -56,6 +56,8 @@ int main(int argc, char **argv) {
int size=0;
int skip=0;
int mode=MODE_ASM;
int lastx=0,lasty=0,lastcolor=0;
int tempx,tempcolor;
if (argc>1) {
if ((argv[1][0]=='-') && (argv[1][1]=='b')) {
@ -191,6 +193,11 @@ int main(int argc, char **argv) {
&color1,
&x1,&y1);
// printf(".byte $%02X,",(type<<4)|4);
lastx=x1;
lasty=y1;
lastcolor=color1;
if (x1>255) {
x1=x1&0xff;
color1|=128;
@ -212,11 +219,44 @@ int main(int argc, char **argv) {
// printf(".byte $%02X,",(type<<4)|3);
// printf("$%02X,",x1);
// printf("$%02X\n",y1);
output[0]=(type<<4)|3;
output[1]=x1;
output[2]=y1;
output_bytes(mode,output,3);
size+=3;
tempx=lastx;
tempcolor=lastcolor;
if (lastx>255) {
tempx=tempx&0xff;
tempcolor=tempcolor|128;
}
if (x1>255) {
output[0]=(VGI_LINE_FAR<<4)|6;
output[1]=tempcolor;
output[2]=tempx;
output[3]=lasty;
output[4]=(x1&0xff);
output[5]=y1;
output_bytes(mode,output,6);
size+=6;
#if 0
fprintf(stderr,"ADJUSTING %d %d %d %d %d %d\n",
output[0],
output[1],
output[2],
output[3],
output[4],
output[5]);
#endif
}
else {
output[0]=(type<<4)|3;
output[1]=x1;
output[2]=y1;
output_bytes(mode,output,3);
size+=3;
}
lastx=x1;
lasty=y1;
break;
case VGI_DITHER_RECTANGLE: /* dithered rectangle */
@ -330,10 +370,16 @@ int main(int argc, char **argv) {
break;
case VGI_LINE: /* line */
case VGI_LINE_FAR: /* line far */
sscanf(buffer,"%*s %i %i %i %i %i",
&color1,
&x1,&y1,&x2,&y2);
// printf(".byte $%02X,",(type<<4)|6);
lastx=x2;
lasty=y2;
lastcolor=color1;
if (x1>255) {
x1=x1&0xff;
color1|=128;
@ -343,6 +389,11 @@ int main(int argc, char **argv) {
// printf("$%02X,",y1);
// printf("$%02X,",x2);
// printf("$%02X\n",y2);
if (x2>255) {
type=VGI_LINE_FAR;
x2=x2&0xff;
}
output[0]=(type<<4)|6;
output[1]=color1;
output[2]=x1;
@ -353,7 +404,7 @@ int main(int argc, char **argv) {
size+=6;
break;
case VGI_LINE_FAR: /* line */
#if 0
sscanf(buffer,"%*s %i %i %i %i %i",
&color1,
&x1,&y1,&x2,&y2);
@ -380,7 +431,7 @@ int main(int argc, char **argv) {
output_bytes(mode,output,6);
size+=6;
break;
#endif
case VGI_END: /* end */
// printf(".byte $FF\n");