diff --git a/starfield/main.asm b/starfield/main.asm index 8e64c02..b61d7bb 100644 --- a/starfield/main.asm +++ b/starfield/main.asm @@ -12,7 +12,9 @@ clr_screen EQU $0daf ; ROM routine to clear the screen ; X 1 Byte $0 - $ff ; Y 1 Byte $0 - $c0 ; Speed 1 Byte $1 - $3 -MAX_STARS EQU 50 +; PrevX +; PrevY +MAX_STARS EQU 60 start xor a @@ -27,18 +29,15 @@ main_start ld c, MAX_STARS main - ld a, (hl) ; HL points to X - inc hl - inc hl ; Jump to speed - ld e, (hl) - dec hl - dec hl - sbc a, e - ld d, a ; Save X-1 to D - inc hl + inc hl ; Y + inc hl ; Speed + inc hl ; PrevX + ld a, (hl) + ld d, a ; Save PrevX to D + inc hl ; PrevY - ld a, (hl) ; HL now points to Y - ld e, a ; Save Y to E + ld a, (hl) + ld e, a ; Save PrevY to E push hl push bc @@ -49,7 +48,10 @@ main pop bc pop hl - dec hl + dec hl ; PrevX + dec hl ; Speed + dec hl ; Y + dec hl ; X ld a, (hl) ; HL points to X ld d, a ; Save X to D @@ -67,7 +69,9 @@ main pop bc pop hl - inc hl ; Next star + inc hl ; Speed + inc hl ; PrevX + inc hl ; PrevY inc hl ; Next star dec c ; Decrement counter @@ -91,7 +95,7 @@ initStars_loop ld (hl), a - inc hl + inc hl ; Y push hl call getRandomY @@ -99,7 +103,7 @@ initStars_loop ld (hl), a - inc hl + inc hl ; Speed push hl call getRandomSpeed @@ -107,7 +111,9 @@ initStars_loop ld (hl), a - inc hl + inc hl ; PrevX + inc hl ; PrevY + inc hl ; Next one dec d jr nz, initStars_loop @@ -177,24 +183,44 @@ increment_x ld hl, STARS ld c, MAX_STARS increment_x_loop + push de + ld d, (hl) ; Save current X to D + inc hl ; Y + ld e, (hl) ; Save current Y to E + inc hl ; Speed + inc hl ; PrevX + ld (hl), d + inc hl ; PrevY + ld (hl), e + dec hl ; PrevX + dec hl ; Speed + dec hl ; Y + dec hl ; X + pop de + ld a, (hl) - cp $fb + cp $ff jr z, increment_x_zero - jr nc, increment_x_zero inc hl ; Skip to Y inc hl ; Skip to Speed ld b, (hl) ; Read speed to B - add a, b ; Add speed to X dec hl ; Back to Y dec hl ; Back to X + + add a, b ; Add speed to X + + jr c, increment_x_zero + increment_x_update ld (hl), a - inc hl - inc hl - inc hl + inc hl ; Y + inc hl ; Speed + inc hl ; PrevX + inc hl ; PrevY + inc hl ; Next dec c jr nz, increment_x_loop pop bc @@ -314,7 +340,7 @@ ENDP STARS REPT MAX_STARS - DB $0,$0,$0 + DB $0,$0, $0, $0,$0 ENDM INCLUDE "randomvalues.asm" diff --git a/starfield/randomgen.py b/starfield/randomgen.py index fcc7945..68bd9d9 100644 --- a/starfield/randomgen.py +++ b/starfield/randomgen.py @@ -12,7 +12,7 @@ speedrandom = [] random.seed() -for idx in range(MAX_STARS): +for idx in range(Generate): x = random.randint(1,250) while(x in xrandom): x = random.randint(1,250) diff --git a/starfield/randomvalues.asm b/starfield/randomvalues.asm index ea80d02..6d37b08 100644 --- a/starfield/randomvalues.asm +++ b/starfield/randomvalues.asm @@ -3,221 +3,401 @@ yrandpos dw yranddata speedrandpos dw speedranddata xranddata - db 153 - db 23 - db 69 - db 62 - db 217 + db 234 + db 92 + db 33 + db 90 + db 215 + db 236 + db 5 + db 53 + db 158 + db 39 db 213 - db 142 - db 107 + db 247 + db 245 + db 24 + db 76 + db 153 + db 183 + db 54 + db 163 + db 118 + db 211 + db 75 + db 98 + db 102 + db 88 + db 186 + db 60 + db 176 + db 175 + db 167 db 25 - db 48 + db 73 + db 128 + db 221 + db 18 + db 212 + db 240 + db 10 + db 150 + db 83 + db 166 + db 26 + db 139 + db 8 + db 157 + db 209 + db 36 + db 111 + db 149 + db 120 + db 57 + db 117 + db 17 + db 44 + db 156 + db 69 + db 109 + db 1 + db 114 + db 165 + db 30 + db 72 + db 77 + db 203 + db 12 + db 32 + db 223 + db 227 + db 241 + db 27 + db 2 + db 174 + db 116 + db 7 + db 93 + db 199 + db 242 + db 225 + db 47 + db 105 + db 171 + db 182 + db 63 + db 246 + db 13 + db 155 + db 6 + db 94 + db 135 + db 217 + db 216 + db 210 + db 131 + db 35 + db 184 + db 181 + db 197 + db 89 + db 95 + db 237 db 0 yranddata - db 175 - db 23 - db 139 - db 64 - db 38 - db 70 - db 45 - db 61 - db 168 - db 132 - db 172 - db 40 - db 27 - db 177 - db 183 - db 189 - db 165 - db 72 - db 162 - db 88 - db 21 - db 32 - db 67 - db 7 - db 114 - db 63 - db 60 - db 24 - db 151 - db 2 - db 156 - db 15 - db 37 - db 22 - db 96 - db 153 - db 174 - db 155 - db 59 - db 120 - db 94 - db 10 - db 68 - db 131 - db 176 - db 136 - db 49 - db 158 - db 115 - db 113 - db 29 - db 48 - db 169 - db 11 - db 84 - db 138 - db 126 - db 76 - db 137 - db 123 - db 74 - db 119 - db 19 - db 125 - db 52 - db 124 - db 103 - db 122 - db 85 - db 117 - db 12 - db 5 - db 100 - db 106 - db 163 - db 55 - db 108 - db 54 - db 86 - db 129 - db 143 - db 93 - db 185 - db 181 - db 99 - db 4 - db 43 - db 107 - db 134 - db 190 - db 141 - db 133 - db 35 - db 98 - db 79 - db 127 - db 95 - db 51 - db 80 - db 18 - db 69 - db 91 - db 186 - db 6 - db 20 - db 171 - db 44 - db 46 - db 9 - db 150 - db 179 - db 110 - db 187 - db 135 - db 75 - db 164 - db 184 - db 16 - db 130 - db 50 - db 121 - db 180 - db 102 - db 128 - db 101 - db 57 - db 97 - db 90 - db 144 - db 152 - db 39 - db 82 - db 42 - db 145 - db 30 db 142 - db 104 - db 160 - db 14 - db 58 - db 81 - db 77 - db 65 + db 34 + db 67 + db 146 + db 12 + db 109 + db 125 + db 93 + db 175 + db 74 + db 86 + db 153 + db 41 + db 84 + db 16 + db 29 + db 182 + db 27 + db 119 db 36 + db 10 db 111 - db 157 + db 40 + db 137 + db 62 + db 63 + db 90 + db 71 + db 147 + db 190 + db 114 + db 9 + db 176 + db 37 + db 5 + db 82 + db 152 + db 72 + db 75 + db 13 + db 187 + db 54 + db 169 + db 171 + db 3 + db 26 + db 42 + db 105 + db 56 + db 7 + db 120 + db 46 + db 163 + db 76 + db 129 + db 136 + db 58 + db 128 + db 79 + db 130 + db 132 + db 101 + db 100 + db 25 + db 185 + db 124 + db 89 + db 164 + db 188 + db 80 + db 150 + db 95 + db 184 + db 127 + db 91 + db 48 + db 99 + db 32 + db 172 + db 49 + db 6 + db 148 + db 14 + db 98 + db 1 + db 23 + db 138 + db 178 + db 97 + db 43 + db 70 + db 60 + db 83 + db 140 + db 189 db 173 - db 161 + db 61 + db 157 + db 108 + db 123 + db 57 + db 139 + db 106 + db 131 + db 156 + db 77 + db 94 + db 122 + db 2 + db 53 + db 55 + db 44 + db 133 + db 22 + db 78 db 17 - db 28 - db 66 + db 11 + db 30 + db 51 db 31 db 154 - db 8 - db 166 - db 148 - db 83 - db 33 - db 71 - db 92 - db 147 - db 78 - db 25 - db 1 - db 140 - db 149 - db 87 - db 170 + db 177 + db 64 + db 126 + db 85 + db 38 db 159 + db 143 db 47 - db 13 - db 109 - db 41 - db 73 - db 112 - db 167 - db 56 - db 62 - db 116 - db 53 - db 26 - db 182 + db 145 + db 183 + db 18 db 191 - db 188 - db 105 + db 102 + db 81 + db 87 + db 112 + db 20 + db 121 + db 116 + db 161 + db 167 + db 162 + db 52 + db 144 + db 155 + db 115 db 118 - db 89 - db 146 - db 34 - db 3 - db 178 + db 66 + db 92 + db 134 + db 186 + db 104 + db 103 + db 117 + db 33 + db 160 + db 151 + db 19 + db 158 + db 21 + db 35 + db 39 + db 168 + db 65 + db 24 + db 28 + db 181 + db 110 + db 8 + db 135 + db 73 + db 180 + db 96 + db 50 + db 68 + db 45 + db 141 + db 149 + db 174 + db 113 + db 107 + db 88 + db 15 + db 69 + db 166 + db 4 + db 165 + db 179 + db 170 + db 59 db 0 speedranddata - db 1 db 2 - db 2 - db 3 db 4 db 1 db 3 db 1 db 2 db 4 + db 4 + db 3 + db 1 + db 4 + db 1 + db 3 + db 4 + db 3 + db 1 + db 4 + db 2 + db 3 + db 3 + db 4 + db 4 + db 3 + db 4 + db 3 + db 3 + db 2 + db 2 + db 1 + db 3 + db 1 + db 1 + db 2 + db 1 + db 4 + db 3 + db 4 + db 3 + db 1 + db 4 + db 2 + db 3 + db 1 + db 4 + db 3 + db 2 + db 3 + db 3 + db 3 + db 4 + db 2 + db 4 + db 1 + db 2 + db 2 + db 1 + db 4 + db 4 + db 2 + db 4 + db 2 + db 3 + db 1 + db 4 + db 4 + db 4 + db 1 + db 1 + db 2 + db 1 + db 1 + db 1 + db 4 + db 2 + db 2 + db 4 + db 1 + db 4 + db 3 + db 1 + db 4 + db 2 + db 4 + db 3 + db 2 + db 3 + db 3 + db 2 + db 4 + db 3 + db 2 + db 2 + db 1 + db 2 + db 2 + db 2 + db 3 + db 1 + db 4 + db 4 db 0