SHOW:
|
|
- or go back to the newest paste.
| 1 | with the exception of rendering a few text strings and looping that dice->LCD code, game is done. Things of note... | |
| 2 | ||
| 3 | 1. In the game, if you CANNOT score against a combo, you are forced to enter a score of 0 on an open combo. In this code, this is written as a value of -1. Every score is therefore upped by 1, so I can just dec a before saving it. The code to see if a combo is available (under EnterScore) should exit if a non-zero value exists for that combo. | |
| 4 | ||
| 5 | 2. entryMode now controls what actions you can perform. Bit0 is throwing the dice, Bit1 is scoring against a combo. In this code, if both bits are set, you should be able to do everything. If only bit 0 is set, you should be able to roll the dice, and hold a dice, but do nothing else. If only bit 1 is set, you should be able to toggle combos and select one, but do nothing else. You should always be able to bring up the instructions and quit the game. | |
| 6 | ||
| 7 | ||
| 8 | ; Yatzee for TI-83+/84+ | |
| 9 | ; Version 1.0 | |
| 10 | ; by ACagliano | |
| 11 | ||
| 12 | .nolist | |
| 13 | #include "ti83plus.inc" | |
| 14 | #include "dcs7.inc" | |
| 15 | .list | |
| 16 | ; defines/equates | |
| 17 | #define diceOne 0 | |
| 18 | #define diceTwo 1 | |
| 19 | #define diceThree 2 | |
| 20 | #define diceFour 3 | |
| 21 | #define diceFive 4 | |
| 22 | #define diceSix 5 | |
| 23 | #define comboScores saferam1 | |
| 24 | #define threeOnes 0 | |
| 25 | #define threeTwos 1 | |
| 26 | #define threeThrees 2 | |
| 27 | #define threeFours 3 | |
| 28 | #define threeFives 4 | |
| 29 | #define threeSixes 5 | |
| 30 | #define threeOfaKind 6 | |
| 31 | #define fourOfaKind 7 | |
| 32 | #define fullHouse 8 | |
| 33 | #define smStraight 9 | |
| 34 | #define lgStraight 10 | |
| 35 | #define chance 11 | |
| 36 | #define yatzee 12 | |
| 37 | #define threesBonus 13 | |
| 38 | #define gameScore comboScores+threesBonus | |
| 39 | #define entryMode gameScore+2 | |
| 40 | #define spin 0 | |
| 41 | #define score 1 | |
| 42 | #define highScore entryMode+1 | |
| 43 | #define curRolls highScore+2 | |
| 44 | #define dieValues curRolls+1 | |
| 45 | #define dieHoldFlags dieValues+5 | |
| 46 | #define threesPoints dieHoldFlags+1 | |
| 47 | #define saveSize threesPoints-comboFlags | |
| 48 | ||
| 49 | #define selectedCombo dieHoldFlags+1 | |
| 50 | #define ptsforSelected selectedCombo+1 | |
| 51 | #define rollBonuses ptsforSelected+2 | |
| 52 | #define ctOnes rollBonuses+1 | |
| 53 | #define ctTwos ctOnes+1 | |
| 54 | #define ctThrees ctTwos+1 | |
| 55 | #define ctFours ctThrees+1 | |
| 56 | #define ctFives ctFours+1 | |
| 57 | #define ctSixes ctFives+1 | |
| 58 | ||
| 59 | ||
| 60 | .db $BB,$6D | |
| 61 | .org progstart | |
| 62 | ||
| 63 | Start: | |
| 64 | bcall(_ClrLCDFull) | |
| 65 | ld a,r ;\ | |
| 66 | ld h,a ; | | |
| 67 | xor 77 ; |Seed the RNG | |
| 68 | ld l,a ; | | |
| 69 | ld (seed1),hl ; | | |
| 70 | ld (seed2),hl ;/ | |
| 71 | ||
| 72 | push iy \ ld iy,comboScores ; push system flags location, set IY to comboScores address | |
| 73 | ld ix,dieValues ; set IX to 5-byte die roll values | |
| 74 | ||
| 75 | ld hl,gameScore \ ld b,ctSixes-comboScores \ call zeroData ; zero the RAM savestate | |
| 76 | ||
| 77 | ld hl,GameSave \ rst 20h \ bcall(_ChkFindSym) ; \ | |
| 78 | jr c,StartGame ; | check whether save file exists | |
| 79 | ld b,a \ or a \ jr z,{1@} ; | if it doesn't skip to game start
| |
| 80 | bcall(_Arc_Unarc) \ bcall(_ChkFindSym) ; | if it does and is unarchived, skip to loading | |
| 81 | @: ex de,hl \ ld de,comboFlags ; | if it does and is archived, unarchive it | |
| 82 | inc hl \ inc hl ; | load the savestate into RAM | |
| 83 | ld bc,saveSize ; | | |
| 84 | ldir ; / | |
| 85 | StartGame: | |
| 86 | call renderDie | |
| 87 | call renderStats | |
| 88 | ld hl,entryMode \ set spin,(hl) ; enable spinning, but not scoring yet | |
| 89 | KeywaitLoop: | |
| 90 | ld a,(kbdScanCode) \ or a \ jr z,KeywaitLoop | |
| 91 | ld hl,entryMode | |
| 92 | bit score,(hl) \ jr z,{1@} ; if the score bit is reset, you are not allowed to score now
| |
| 93 | - | cp skLeft \ jp cycleLeftCombos |
| 93 | + | cp skEnter \ jp z,EnterScore |
| 94 | - | cp skRight \ jp cycleRightCombos |
| 94 | + | cp skLeft \ jr nz,$+11 \ ld hl,selectedCombo \ dec (hl) \ call calcScore \ jr KeywaitLoop |
| 95 | - | cp skEnter \ jp EnterScore |
| 95 | + | cp skRight \ jr nz,$+11 \ ld hl,selectedCombo \ inc (hl) \ call calcScore \ jr KeywaitLoop |
| 96 | bit spin,(hl) \ jr z,KeywaitLoop ; if the spin bit is reset, you are not allowed to spin now | |
| 97 | ||
| 98 | @: sub 54 \ add a,5 \ jp c,holdDice | |
| 99 | add a,49 | |
| 100 | cp sk2nd \ jp throwDie | |
| 101 | cp skClear \ jp QuitGame | |
| 102 | jr KeywaitLoop | |
| 103 | ||
| 104 | holdDice: | |
| 105 | ld hl,dieValues | |
| 106 | add a,l \ ld l,a \ jr nc,$+3 | |
| 107 | inc h \ ld a,(hl) | |
| 108 | xor 80h \ ld (hl),a | |
| 109 | jp KeywaitLoop | |
| 110 | ||
| 111 | ||
| 112 | ; ### Select Combo and Compute Score ### | |
| 113 | ||
| 114 | - | cycleLeftCombos: |
| 114 | + | |
| 115 | - | ld hl,selectedCombo \ dec (hl) |
| 115 | + | |
| 116 | - | call calcScore |
| 116 | + | ld de,dieValues-1 |
| 117 | ld bc,$0507 | |
| 118 | - | cycleRightCombos: |
| 118 | + | inc de |
| 119 | - | ld hl,selectedCombo \ inc (hl) |
| 119 | + | ld a,(de) \ and c ; mask out the flag bits of the die |
| 120 | - | call calcScore |
| 120 | + | ld hl,ctOnes |
| 121 | add a,l | |
| 122 | ld l,a | |
| 123 | jr nc,$+3 | |
| 124 | inc h | |
| 125 | inc (hl) | |
| 126 | - | call getDieValue |
| 126 | + | djnz $-11 |
| 127 | - | call getDieValue |
| 127 | + | |
| 128 | - | call getDieValue |
| 128 | + | |
| 129 | - | call getDieValue |
| 129 | + | |
| 130 | - | call getDieValue |
| 130 | + | ld hl,jmptbl |
| 131 | add a,a | |
| 132 | add a,l | |
| 133 | ld l,a | |
| 134 | - | or a \ jr z,isThreeOnes |
| 134 | + | jr nc,$+3 |
| 135 | - | cp threeTwos \ jr z,isThreeTwos |
| 135 | + | inc h |
| 136 | - | cp threeThrees \ jr z,isThreeThrees |
| 136 | + | ld a,(hl) |
| 137 | - | cp threeFours \ jr z,isThreeFours |
| 137 | + | |
| 138 | - | cp threeFives \ jr z,isThreeFives |
| 138 | + | ld h,(hl) |
| 139 | - | cp threeSixes \ jr z,isThreeSixes |
| 139 | + | jp (hl) |
| 140 | - | cp threeOfaKind \ jr z,isThreeOfaKind |
| 140 | + | jmptbl: |
| 141 | - | cp fourOfaKind \ jr z,isFourOfaKind |
| 141 | + | .dw isThreeOnes |
| 142 | - | cp fullHouse \ jr z,isFullHouse |
| 142 | + | .dw isThreeTwos |
| 143 | - | cp smStraight \ jr z,isSmStraight |
| 143 | + | .dw isThreeThrees |
| 144 | - | cp lgStraight \ jr z,isLgStraight |
| 144 | + | .dw isThreeFours |
| 145 | - | cp chance \ jr z,sumtheDie |
| 145 | + | .dw isThreeFives |
| 146 | - | cp yatzee \ jr z,isYatzee |
| 146 | + | .dw isThreeSixes |
| 147 | .dw isThreeOfaKind | |
| 148 | .dw isFourOfaKind | |
| 149 | .dw isfullHouse | |
| 150 | .dw isSmStraight | |
| 151 | .dw isLgStraight | |
| 152 | .dw sumtheDie | |
| 153 | .dw isYatzee | |
| 154 | ||
| 155 | calcBonuses: | |
| 156 | dec a \ ld (ptsforSelected),a | |
| 157 | call isYatzee \ or a \ jr z,{1@}
| |
| 158 | dec a \ ld (rollBonuses),a | |
| 159 | @: ld a,(threesBonus) \ or a \ call z,isFullTopSix | |
| 160 | - | rla \ inc a \ ret |
| 160 | + | |
| 161 | call rendertPoints | |
| 162 | ret | |
| 163 | - | ld b,a \ rla \ add a,b |
| 163 | + | |
| 164 | isThreeOnes: | |
| 165 | ld a,(ctOnes) \ inc a \ ret | |
| 166 | isThreeTwos: | |
| 167 | - | rla \ rla |
| 167 | + | |
| 168 | add a,a \ inc a \ ret | |
| 169 | isThreeThrees: | |
| 170 | ld a,(ctThrees) | |
| 171 | - | ld b,a \ rla \ rla \ add a,b |
| 171 | + | ld b,a \ add a,a \ add a,b |
| 172 | inc a \ ret | |
| 173 | isThreeFours: | |
| 174 | ld a,(ctFours) | |
| 175 | - | rla \ rla \ rla |
| 175 | + | add a,a \ add a,a |
| 176 | inc a \ ret | |
| 177 | isThreeFives: | |
| 178 | ld a,(ctFives) | |
| 179 | ld b,a \ add a,a \ add a,a \ add a,b | |
| 180 | inc a \ ret | |
| 181 | isThreeSixes: | |
| 182 | ld a,(ctSixes) | |
| 183 | ld b,a | |
| 184 | add a,a | |
| 185 | add a,b | |
| 186 | add a,a | |
| 187 | - | ld a,0 |
| 187 | + | |
| 188 | isThreeOfaKind: | |
| 189 | ld a,2 \ jr {1@}
| |
| 190 | isFourOfaKind: | |
| 191 | ld a,3 | |
| 192 | @: ld hl,ctOnes-1 | |
| 193 | checkQuantity \ jr c,sumtheDie | |
| 194 | checkQuantity \ jr c,sumtheDie | |
| 195 | checkQuantity \ jr c,sumtheDie | |
| 196 | checkQuantity \ jr c,sumtheDie | |
| 197 | checkQuantity \ jr c,sumtheDie | |
| 198 | xor a | |
| 199 | ret | |
| 200 | ||
| 201 | isFullHouse: | |
| 202 | ld a,2 \ ld hl,ctOnes-1 | |
| 203 | checkQuantity \ jr c,{1@}
| |
| 204 | - | jr {2@}
|
| 204 | + | |
| 205 | checkQuantity \ jr c,{1@}
| |
| 206 | - | @: ld a,0 \ ret |
| 206 | + | |
| 207 | checkQuantity \ jr c,{1@}
| |
| 208 | jr {3@}
| |
| 209 | @: ld a,1 \ ld hl,ctOnes-1 | |
| 210 | checkQuantity \ jr c,{1@}
| |
| 211 | checkQuantity \ jr c,{1@}
| |
| 212 | checkQuantity \ jr c,{1@}
| |
| 213 | checkQuantity \ jr c,{1@}
| |
| 214 | checkQuantity \ jr c,{1@}
| |
| 215 | xor a\ ret | |
| 216 | @: ld a,26 \ ret | |
| 217 | ||
| 218 | isSmStraight: | |
| 219 | ld hl,ctOnes \ ld a,(hl) | |
| 220 | or a \ jr z,strt_start_2 | |
| 221 | ld b,3 | |
| 222 | inc hl \ and (hl) | |
| 223 | djnz $-2 | |
| 224 | jr nz,{1@}
| |
| 225 | strt_start_2: | |
| 226 | inc hl \ ld a,(hl) | |
| 227 | or a \ jr z,strt_start_3 | |
| 228 | ld b,3 | |
| 229 | inc hl \ and (hl) | |
| 230 | djnz $-2 | |
| 231 | jr nz,{}
| |
| 232 | strt_start_3: | |
| 233 | inc hl \ ld a,(hl) | |
| 234 | or a \ ret z | |
| 235 | ld b,3 | |
| 236 | inc hl \ and (hl) | |
| 237 | djnz $-2 | |
| 238 | ret z | |
| 239 | @: ld a,31 \ ret | |
| 240 | ||
| 241 | isLgStraight | |
| 242 | - | @: ld a,0 \ ret |
| 242 | + | |
| 243 | or a \ jr z,strt_1_to_5 | |
| 244 | ;strt_2_to_6: | |
| 245 | inc hl | |
| 246 | strt_1_to5: | |
| 247 | ld a,(hl) \ ld b,3 | |
| 248 | inc hl \ and (hl) | |
| 249 | djnz $-2 | |
| 250 | ret z | |
| 251 | - | ld a,0 \ ret |
| 251 | + | |
| 252 | ||
| 253 | isYatzee: | |
| 254 | ld hl,ctOnes-1 \ ld a,4 | |
| 255 | - | ld hl,comboScores \ ld a,0 |
| 255 | + | |
| 256 | checkQuantity \ jr c,{1@}
| |
| 257 | checkQuantity \ jr c,{1@}
| |
| 258 | checkQuantity \ jr c,{1@}
| |
| 259 | checkQuantity \ jr c,{1@}
| |
| 260 | - | ld a,0 \ ret |
| 260 | + | xor a \ ret |
| 261 | @: ld a,51 \ ret | |
| 262 | ||
| 263 | isFullTopSix: | |
| 264 | ld hl,comboScores \ xor a | |
| 265 | ld b,6 | |
| 266 | @: add a,(hl) \ inc hl | |
| 267 | - | ld a,0 \ ld hl,dieValues |
| 267 | + | |
| 268 | cp 62 \ jr c,{1@}
| |
| 269 | xor a \ ret | |
| 270 | @: ld a,1 \ ld (threesBonus),a \ ld a,35 \ ret | |
| 271 | - | inc a |
| 271 | + | |
| 272 | ||
| 273 | ||
| 274 | ||
| 275 | sumtheDie: | |
| 276 | ld a,1 \ ld hl,dieValues | |
| 277 | - | getDieValue: |
| 277 | + | |
| 278 | @: add a,(hl) \ inc hl | |
| 279 | - | ld a,(hl) \ and %01111111 ; reset high byte in A, not in memory |
| 279 | + | |
| 280 | - | cp 1 \ jr nz,{1@}
|
| 280 | + | |
| 281 | - | ld a,(ctOnes) \ inc a \ ld (ctOnes),a \ ret |
| 281 | + | |
| 282 | - | @: cp 2 \ jr nz,{1@}
|
| 282 | + | |
| 283 | - | ld a,(ctTwos) \ inc a \ ld (ctTwos),a \ ret |
| 283 | + | |
| 284 | - | @: cp 3 \ jr nz,{1@}
|
| 284 | + | |
| 285 | - | ld a,(ctThrees) \ inc a \ ld (ctThrees),a \ ret |
| 285 | + | |
| 286 | - | @: cp 4 \ jr nz,{1@}
|
| 286 | + | |
| 287 | - | ld a,(ctFours) \ inc a \ ld (ctFours),a \ ret |
| 287 | + | |
| 288 | - | @: cp 5 \ jr nz,{1@}
|
| 288 | + | |
| 289 | - | ld a,(ctFives) \ inc a \ ld (ctFives),a \ ret |
| 289 | + | call roll |
| 290 | - | @: cp 6 \ ret nz |
| 290 | + | call roll |
| 291 | - | ld a,(ctSixes) \ inc a \ ld (ctSixes),a \ ret |
| 291 | + | call roll |
| 292 | call roll | |
| 293 | call roll | |
| 294 | call renderDie | |
| 295 | ld hl,entryMode \ set score,(hl) ; allow scoring once die rolled | |
| 296 | ld hl,curRolls \ inc (hl) ; increment number of rolls by one | |
| 297 | ld a,3 \ sub (hl) \ jr nz,KeywaitLoop ; if rolls != 3, leave routine | |
| 298 | ld hl,entryMode \ res spin,(hl) ; if rolls = 3, disable rolling | |
| 299 | jr KeywaitLoop | |
| 300 | - | call roll |
| 300 | + | |
| 301 | - | call roll |
| 301 | + | |
| 302 | - | call roll |
| 302 | + | |
| 303 | - | call roll |
| 303 | + | |
| 304 | - | call roll |
| 304 | + | |
| 305 | - | call renderDie |
| 305 | + | |
| 306 | - | ld hl,entryMode \ set score,(hl) ; allow scoring once die rolled |
| 306 | + | |
| 307 | - | ld hl,curRolls \ inc (hl) ; increment number of rolls by one |
| 307 | + | |
| 308 | - | ld a,3 \ sub (hl) \ jr nz,KeywaitLoop ; if rolls != 3, leave routine |
| 308 | + | inc a \ jr z,{1@}
|
| 309 | - | ld hl,entryMode \ res spin,(hl) ; if rolls = 3, disable rolling |
| 309 | + | |
| 310 | - | jr KeywaitLoop |
| 310 | + | |
| 311 | add hl,bc ; add score to game score | |
| 312 | xor a | |
| 313 | ld b,a \ ld c,(rollBonuses) | |
| 314 | add hl,bc ; add bonuses to game score | |
| 315 | ld (gameScore),hl ; write new score back | |
| 316 | ld hl,entryMode \ res score,(hl) \ set spin,(hl) ; disable scoring, enable spinning | |
| 317 | ld (curRolls),a ; set back to 0 rolls | |
| 318 | @: jp KeywaitLoop | |
| 319 | - | cp -1 \ jr z,{1@}
|
| 319 | + | |
| 320 | QuitGame: | |
| 321 | ld hl,GameSave \ rst 20h \ bcall(_ChkFindSym) | |
| 322 | jr nc,{1@} ; if save exists already, skip to saving
| |
| 323 | - | ld b,0 \ ld c,(rollBonuses) |
| 323 | + | |
| 324 | @: ld hl,comboFlags \ inc de \ inc de ; set read address to RAM state, set write address to after size word | |
| 325 | ld bc,saveSize \ ldir ; set size, load | |
| 326 | bcall(_ClrLCDFull) ; clear screen | |
| 327 | - | ld a,0 \ ld (curRolls),a ; set back to 0 rolls |
| 327 | + | |
| 328 | ret ; exit game | |
| 329 | ||
| 330 | renderDie: | |
| 331 | ld hl,Sprites | |
| 332 | ||
| 333 | ret | |
| 334 | ||
| 335 | renderStats: | |
| 336 | ||
| 337 | ret | |
| 338 | ||
| 339 | ||
| 340 | ||
| 341 | rendertPoints: | |
| 342 | ld a,(selectedCombo) | |
| 343 | ld hl,ComboNameText \ ld b,a | |
| 344 | or a \ jr z,{2@}
| |
| 345 | @: add hl,7 | |
| 346 | djnz {-1@}
| |
| 347 | @: ; set penCol and penRow | |
| 348 | bcall(_vPutS) | |
| 349 | ld a,(ptsforSelected) | |
| 350 | ; convert byte value into text string | |
| 351 | ret | |
| 352 | ||
| 353 | die_setZero: | |
| 354 | ld hl,dieValues ; set read address to dieValues | |
| 355 | xor a \ ld (hl),a ; set dieValues to 0 | |
| 356 | ld de,dieValues+1 ; set write address to dieValues+1 | |
| 357 | ld bc,4 \ ldir ; copy 4 bytes from read address to write address | |
| 358 | ret | |
| 359 | ||
| 360 | zeroData: | |
| 361 | xor a | |
| 362 | ld (hl),a \ inc hl | |
| 363 | djnz zeroData | |
| 364 | ret | |
| 365 | - | ld a,0 \ ld (hl),a ; set dieValues to 0 |
| 365 | + | |
| 366 | ; ######################## | |
| 367 | ; Random Number Generator | |
| 368 | ; ######################## | |
| 369 | ||
| 370 | prng16: | |
| 371 | - | ld a,0 |
| 371 | + | |
| 372 | ;;Output: | |
| 373 | ;; HL is a pseudo-random int | |
| 374 | ;; A and BC are also, but much weaker and smaller cycles | |
| 375 | ;; Preserves DE | |
| 376 | ;;148cc, super fast | |
| 377 | ;;26 bytes | |
| 378 | ;;period length: 4,294,901,760 | |
| 379 | seed1=$+1 | |
| 380 | ld hl,9999 | |
| 381 | ld b,h | |
| 382 | ld c,l | |
| 383 | add hl,hl | |
| 384 | add hl,hl | |
| 385 | inc l | |
| 386 | add hl,bc | |
| 387 | ld (seed1),hl | |
| 388 | seed2=$+1 | |
| 389 | ld hl,987 | |
| 390 | add hl,hl | |
| 391 | sbc a,a | |
| 392 | and %00101101 | |
| 393 | xor l | |
| 394 | ld l,a | |
| 395 | ld (seed2),hl | |
| 396 | add hl,bc | |
| 397 | ret | |
| 398 | roll: | |
| 399 | ;;Input: A is the range. | |
| 400 | ;;Output: Returns in A a random number from 0 to B-1. | |
| 401 | ;; B=0 | |
| 402 | ;; DE is not changed | |
| 403 | ;;Destroys: | |
| 404 | ;; HL | |
| 405 | ;;Speed: | |
| 406 | ;; 322cc to 373cc, 347.5cc average | |
| 407 | inc hl | |
| 408 | ld a,(hl) \ add a,a | |
| 409 | ret nc | |
| 410 | push hl | |
| 411 | call prng16 | |
| 412 | ld l,h \ ld h,0 | |
| 413 | ld b,h \ ld c,l | |
| 414 | add hl,hl \ add hl,bc \ add hl,hl | |
| 415 | inc h \ ld a,h | |
| 416 | pop hl | |
| 417 | ld (hl),a | |
| 418 | ret | |
| 419 | ||
| 420 | ; ######################## | |
| 421 | ; ## Rendering Routines ## | |
| 422 | ; ######################## | |
| 423 | ||
| 424 | drawSprite_6_Bit: | |
| 425 | ld a,d \ add a,$79 ; Y coord into A | |
| 426 | ld b,12 ; Loop this 12 times | |
| 427 | drawSprite_outerloop: | |
| 428 | inc a \ push af | |
| 429 | out ($10),a \ call lcdwait | |
| 430 | ld a,e \ add a,$20 | |
| 431 | out ($10),a \ call lcdwait ; use outi instead | |
| 432 | ld c,$11 | |
| 433 | outi \ call lcdwait | |
| 434 | outi \ call lcdwait | |
| 435 | pop bc \ pop af | |
| 436 | djnz drawSprite_outerloop | |
| 437 | ||
| 438 | ||
| 439 | ||
| 440 | ||
| 441 | ||
| 442 | ||
| 443 | ||
| 444 | ||
| 445 | lcdwait: | |
| 446 | in a,($10) ;bit 7 set if LCD is busy | |
| 447 | rla \ jr c,lcdwait | |
| 448 | ret | |
| 449 | ||
| 450 | ||
| 451 | ||
| 452 | GameSave: | |
| 453 | .db AppVarObj,"YatSave",0 | |
| 454 | ||
| 455 | ComboNameText: | |
| 456 | .db "Ones ",0 | |
| 457 | .db "Twos ",0 | |
| 458 | .db "Threes",0 | |
| 459 | .db "Fours ",0 | |
| 460 | .db "Fives ",0 | |
| 461 | .db "Sixes ",0 | |
| 462 | .db "3.of.a",0 | |
| 463 | .db "4.of.a.",0 | |
| 464 | .db "F.Hse.",0 | |
| 465 | .db "Sm.St.",0 | |
| 466 | .db "Lg.St.",0 | |
| 467 | .db "Chance",0 | |
| 468 | .db "Yatzee",0 | |
| 469 | ||
| 470 | ||
| 471 | Sprites: | |
| 472 | ; empty die | |
| 473 | .db %11111111,%11110000 | |
| 474 | .db %10000000,%00010000 | |
| 475 | .db %10000000,%00010000 | |
| 476 | .db %10000000,%00010000 | |
| 477 | .db %10000000,%00010000 | |
| 478 | .db %10000000,%00010000 | |
| 479 | .db %10000000,%00010000 | |
| 480 | .db %10000000,%00010000 | |
| 481 | .db %10000000,%00010000 | |
| 482 | .db %10000000,%00010000 | |
| 483 | .db %10000000,%00010000 | |
| 484 | .db %11111111,%11110000 | |
| 485 | ; one die | |
| 486 | .db %11111111,%11110000 | |
| 487 | .db %10000000,%00010000 | |
| 488 | .db %10000000,%00010000 | |
| 489 | .db %10000000,%00010000 | |
| 490 | .db %10000000,%00010000 | |
| 491 | .db %10000110,%00010000 | |
| 492 | .db %10000110,%00010000 | |
| 493 | .db %10000000,%00010000 | |
| 494 | .db %10000000,%00010000 | |
| 495 | .db %10000000,%00010000 | |
| 496 | .db %10000000,%00010000 | |
| 497 | .db %11111111,%11110000 | |
| 498 | ; two die | |
| 499 | .db %11111111,%11110000 | |
| 500 | .db %10000000,%00010000 | |
| 501 | .db %10000000,%00010000 | |
| 502 | .db %10000110,%00010000 | |
| 503 | .db %10000110,%00010000 | |
| 504 | .db %10000000,%00010000 | |
| 505 | .db %10000000,%00010000 | |
| 506 | .db %10000110,%00010000 | |
| 507 | .db %10000110,%00010000 | |
| 508 | .db %10000000,%00010000 | |
| 509 | .db %10000000,%00010000 | |
| 510 | .db %11111111,%11110000 | |
| 511 | ; three die | |
| 512 | .db %11111111,%11110000 | |
| 513 | .db %10000000,%00010000 | |
| 514 | .db %10000000,%11010000 | |
| 515 | .db %10000000,%11010000 | |
| 516 | .db %10000000,%00010000 | |
| 517 | .db %10000110,%00010000 | |
| 518 | .db %10000110,%00010000 | |
| 519 | .db %10000000,%00010000 | |
| 520 | .db %10110000,%00010000 | |
| 521 | .db %10110000,%00010000 | |
| 522 | .db %10000000,%00010000 | |
| 523 | .db %11111111,%11110000 | |
| 524 | ; four die | |
| 525 | .db %11111111,%11110000 | |
| 526 | .db %10000000,%00010000 | |
| 527 | .db %10110000,%11010000 | |
| 528 | .db %10110000,%11010000 | |
| 529 | .db %10000000,%00010000 | |
| 530 | .db %10000000,%00010000 | |
| 531 | .db %10000000,%00010000 | |
| 532 | .db %10000000,%00010000 | |
| 533 | .db %10110000,%11010000 | |
| 534 | .db %10110000,%11010000 | |
| 535 | .db %10000000,%00010000 | |
| 536 | .db %11111111,%11110000 | |
| 537 | ; five die | |
| 538 | .db %11111111,%11110000 | |
| 539 | .db %10000000,%00010000 | |
| 540 | .db %10011001,%10010000 | |
| 541 | .db %10011001,%10010000 | |
| 542 | .db %10000000,%00010000 | |
| 543 | .db %10000110,%00010000 | |
| 544 | .db %10000110,%00010000 | |
| 545 | .db %10000000,%00010000 | |
| 546 | .db %10011001,%10010000 | |
| 547 | .db %10011001,%10010000 | |
| 548 | .db %10000000,%00010000 | |
| 549 | .db %11111111,%11110000 | |
| 550 | ; six die | |
| 551 | .db %11111111,%11110000 | |
| 552 | .db %10000000,%00010000 | |
| 553 | .db %10011001,%10010000 | |
| 554 | .db %10011001,%10010000 | |
| 555 | .db %10000000,%00010000 | |
| 556 | .db %10011001,%10010000 | |
| 557 | .db %10011001,%10010000 | |
| 558 | .db %10000000,%00010000 | |
| 559 | .db %10011001,%10010000 | |
| 560 | .db %10011001,%10010000 | |
| 561 | .db %10000000,%00010000 | |
| 562 | .db %11111111,%11110000 |