Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- nop
- nop
- nop
- nop
- nop
- addi $29 $0 4096
- addi $13 $0 31
- startLoop:
- st $1
- sll $14 $1 $13
- srl $14 $14 $13
- bnez $14 startLoop
- addi $13 $0 1
- resetSw:
- st $2
- srl $14 $2 $13
- bnez $14 resetSw
- addi $13 $0 13
- srl $14 $1 $13
- addi $17 $14 0
- sll $14 $14 $13
- sub $1 $1 $14
- addi $13 $17 0
- sw $13 2482($0)
- addi $14 $0 -1
- addi $23 $0 -5
- addi $24 $0 4
- addi $15 $0 28
- addi $16 $0 31
- setupPlayer:
- addi $14 $14 1
- addi $23 $23 5
- sw $0 2463($10)
- beq $14 $24 startGame
- sll $17 $13 $15
- srl $17 $17 $16
- j setupPlayer
- startGame:
- j gameLoop
- mapGen:
- addi $28 $31 0
- jal saveAll
- addi $13 $0 1600
- addi $14 $0 80
- beqz $1 nextLevel
- j firstGen
- firstGen:
- addi $15 $0 16
- addi $16 $0 28
- addi $21 $15 8
- firstGenLoop:
- sll $17 $1 $15
- srl $17 $17 $16
- addi $18 $17 10
- sw $18 0($13)
- addi $13 $13 1
- addi $15 $15 1
- blt $15 $21 firstGenLoop
- sw $1 2490($0)
- j genLevelSt
- nextLevel:
- addi $21 $0 1608
- nextLevelLoop:
- sw $13 72($13)
- addi $13 $13 1
- blt $13 $21 nextLevelLoop
- genLevelSt:
- addi $16 $0 16
- addi $21 $0 11
- addi $22 $0 1680
- addi $23 $0 0
- addi $17 $0 27
- newRandGenLoop:
- jal genNewRandom
- addi $15 $7 0
- addi $16 $0 16
- mainGenLoop:
- beq $16 $21 newRandGenLoop
- addi $18 $0 0
- lw $19 -1($13)
- add $18 $18 $19
- lw $19 -2($13)
- add $18 $18 $19
- lw $19 -3($13)
- add $18 $18 $19
- addi $20 $0 3
- div $18 $18 $20
- addi $23 $15 0
- sll $23 $23 $16
- srl $23 $23 $17
- addi $26 $0 28
- sll $27 $23 $26
- srl $27 $27 $26
- addi $26 $0 10
- blt $27 $26 offOne
- addi $26 $0 14
- blt $27 $26 offTwo
- offThree:
- addi $27 $0 3
- j getSign
- offTwo:
- addi $27 $0 2
- j getSign
- offOne:
- addi $27 $0 1
- j getSign
- getSign:
- addi $26 $0 15
- bgt $23 $26 isNeg
- isPos:
- add $18 $18 $27
- j checkEl
- isNeg:
- sub $18 $18 $27
- j checkEl
- checkEl:
- addi $19 $0 32
- addi $20 $0 5
- bgt $18 $19 subEl
- blt $18 $20 addEl
- j saveEl
- addEl:
- addi $18 $18 1
- j checkEl
- subEl:
- addi $18 $18 -1
- j checkEl
- saveEl:
- sw $18 0($13)
- addi $13 $13 1
- addi $16 $16 1
- blt $13 $22 mainGenLoop
- jal makeMap
- jal loadAll
- addi $31 $28 0
- jr $31
- makeMap:
- addi $28 $31 0
- jal saveAll
- addi $13 $0 0
- addi $14 $0 0
- addi $15 $0 40
- addi $16 $0 80
- addi $17 $0 0
- addi $26 $0 0
- makeMapRow:
- lw $17 1600($13)
- addi $11 $0 40
- sub $17 $11 $17
- makeMapColumn:
- blt $14 $17 emptyBlock
- beq $14 $17 topBlock
- j underBlock
- emptyBlock:
- addi $18 $0 0
- j saveBlock
- underBlock:
- addi $18 $0 2048
- j saveBlock
- topBlock:
- addi $12 $0 75
- bgt $13 $12 forceCheckHole
- contTopBlock:
- jal genNewRandom
- addi $22 $7 0
- addi $20 $0 11
- srl $22 $22 $20
- jal genNewRandom
- addi $10 $7 0
- srl $10 $10 $20
- addi $11 $0 5
- blt $22 $11 emptyBlock
- addi $11 $0 7
- blt $22 $11 dynBlock
- addi $11 $0 8
- blt $22 $11 powerUp
- addi $11 $0 10
- blt $22 $11 windBlock
- j groundBlock
- dynBlock:
- addi $11 $0 10
- addi $22 $0 12
- blt $10 $11 otherBits
- addi $11 $0 20
- addi $22 $0 15
- blt $10 $11 otherBits
- addi $11 $0 26
- addi $22 $0 16
- blt $10 $11 otherBits
- addi $11 $0 29
- addi $22 $0 13
- blt $10 $11 otherBits
- addi $22 $0 14
- j otherBits
- powerUp:
- addi $11 $0 8
- addi $22 $0 26
- blt $10 $11 WP
- addi $11 $0 16
- addi $22 $0 27
- blt $10 $11 WP
- addi $11 $0 24
- addi $22 $0 28
- blt $10 $11 WP
- addi $22 $0 29
- j WP
- windBlock:
- addi $11 $0 8
- addi $22 $0 19
- blt $10 $11 WP
- addi $11 $0 16
- addi $22 $0 20
- blt $10 $11 WP
- addi $11 $0 24
- addi $22 $0 21
- blt $10 $11 WP
- addi $22 $0 22
- j WP
- groundBlock:
- addi $11 $0 2
- addi $22 $0 18
- blt $10 $11 otherBits
- addi $11 $0 4
- addi $22 $0 1
- blt $10 $11 otherBits
- addi $11 $0 6
- addi $22 $0 3
- blt $10 $11 otherBits
- addi $11 $0 8
- addi $22 $0 4
- blt $10 $11 otherBits
- addi $11 $0 10
- addi $22 $0 5
- blt $10 $11 otherBits
- addi $11 $0 12
- addi $22 $0 6
- blt $10 $11 otherBits
- addi $11 $0 14
- addi $22 $0 7
- blt $10 $11 otherBits
- addi $11 $0 16
- addi $22 $0 8
- blt $10 $11 otherBits
- addi $11 $0 18
- addi $22 $0 9
- blt $10 $11 otherBits
- addi $11 $0 20
- addi $22 $0 10
- blt $10 $11 otherBits
- addi $11 $0 22
- addi $22 $0 11
- blt $10 $11 otherBits
- addi $11 $0 24
- addi $22 $0 12
- blt $10 $11 otherBits
- addi $11 $0 26
- addi $22 $0 17
- blt $10 $11 otherBits
- addi $11 $0 28
- addi $22 $0 23
- blt $10 $11 otherBits
- addi $11 $0 30
- addi $22 $0 24
- blt $10 $11 otherBits
- addi $22 $0 25
- j otherBits
- WP:
- jal genNewRandom
- addi $22 $7 0
- addi $23 $0 27
- sll $21 $22 $23
- srl $21 $21 $23
- addi $20 $0 13
- blt $21 $20 twoOffset
- addi $20 $0 26
- blt $21 $20 threeOffset
- addi $20 $0 29
- blt $21 $20 fourOffset
- fourOffset:
- addi $21 $0 5
- j offsetCont
- threeOffset:
- addi $21 $0 4
- j offsetCont
- twoOffset:
- addi $21 $0 3
- j offsetCont
- oneOffset:
- addi $21 $0 2
- j offsetCont
- offsetCont:
- sub $14 $17 $21
- j otherBits
- otherBits:
- addi $19 $0 25
- beq $22 $19 isWater
- addi $19 $0 23
- beq $22 $19 isIce
- addi $19 $0 24
- beq $22 $19 isMud
- addi $19 $0 18
- beq $22 $19 isHole
- j isOther
- isWater:
- sll $18 $22 $20
- addi $18 $18 512
- j saveBlock
- isIce:
- sll $18 $22 $20
- addi $18 $18 128
- j saveBlock
- isMud:
- sll $18 $22 $20
- addi $18 $18 320
- j saveBlock
- isHole:
- addi $19 $0 71
- blt $13 $19 noHole
- bnez $26 noHole
- addi $22 $0 18
- sll $18 $22 $20
- addi $26 $0 1
- j saveBlock
- noHole:
- j emptyBlock
- isOther:
- sll $18 $22 $20
- j saveBlock
- forceCheckHole:
- beqz $26 isHole
- j contTopBlock
- saveBlock:
- mult $1 $14 $16
- add $1 $1 $13
- addi $2 $18 0
- jal writeGridCode
- addi $14 $14 1
- blt $14 $15 makeMapColumn
- addi $13 $13 1
- addi $14 $0 0
- blt $13 $16 makeMapRow
- jal loadAll
- addi $31 $28 0
- jr $31
- indexToAddress:
- addi $28 $31 0
- jal saveAll
- addi $13 $0 2
- div $7 $1 2
- mod $8 $1 2
- jal loadAll
- addi $31 $28 0
- jr $31
- genNewRandom:
- addi $28 $31 0
- jal saveAll
- addi $23 $0 2490
- lw $15 0($23)
- lw $24 1($23)
- lw $25 2($23)
- lw $26 3($23)
- mult $15 $15 $24
- add $15 $15 $26
- mod $15 $15 $25
- sw $15 0($23)
- addi $7 $15 0
- jal loadAll
- addi $31 $28 0
- jr $31
- normalizeToPlusMinusOne:
- addi $28 $31 0
- jal saveAll
- addi $13 $0 1
- addi $14 $0 10
- addi $15 $0 1
- sub $14 $14 $15
- sll $13 $13 $14
- bgt $1 $13 maxOneNormalizeToPlusMinusOne
- sub $13 $0 $13
- blt $1 $13 minOneNormalizeToPlusMinusOne
- addi $7 $1 0
- leaveNormalizeToPlusMinusOne:
- jal loadAll
- addi $31 $28 0
- jr $31
- maxOneNormalizeToPlusMinusOne:
- addi $7 $13 0
- j leaveNormalizeToPlusMinusOne
- minOneNormalizeToPlusMinusOne:
- addi $7 $13 0
- j leaveNormalizeToPlusMinusOne
- nopSlide:
- addi $28 $31 0
- jal saveAll
- addi $13 $0 2000
- nopSlideOuterLoop:
- addi $14 $0 5
- addi $13 $13 -1
- beqz $13 nopSlideLeaveLoop
- nopSlideInnerLoop:
- addi $14 $14 -1
- beqz $14 nopSlideOuterLoop
- j nopSlideInnerLoop
- nopSlideLeaveLoop:
- jal loadAll
- addi $31 $28 0
- jr $31
- absoluteValue:
- addi $28 $31 0
- jal saveAll
- addi $13 $0 31
- srl $14 $1 $13
- beqz $14 absEx
- sub $1 $0 $1
- absEx:
- addi $7 $1 0
- jal loadAll
- addi $31 $28 0
- jr $31
- getSwitchVal:
- addi $28 $31 0
- jal saveAll
- addi $13 $1 0
- st $14
- addi $15 $0 31
- sub $15 $15 $14
- addi $15 $15 1
- sll $14 $14 $15
- addi $15 $0 31
- srl $7 $14 $15
- jal loadAll
- addi $31 $28 0
- jr $31
- exit:
- j exit
- drawBall:
- addi $28 $31 0
- jal saveAll
- addi $13 $0 10
- sra $1 $1 $13
- sra $2 $2 $13
- addi $15 $1 0
- addi $18 $15 -1
- addi $17 $15 1
- addi $16 $2 0
- addi $20 $16 -1
- addi $19 $16 1
- sll $18 $18 $13
- sll $15 $15 $13
- sll $17 $17 $13
- sll $20 $20 $13
- sll $16 $16 $13
- sll $19 $19 $13
- addi $2 $16 0
- jal drawBallPixel
- addi $1 $18 0
- jal drawBallPixel
- addi $1 $17 0
- jal drawBallPixel
- addi $2 $20 0
- jal drawBallPixel
- addi $1 $15 0
- jal drawBallPixel
- addi $1 $18 0
- jal drawBallPixel
- addi $2 $19 0
- jal drawBallPixel
- addi $1 $15 0
- jal drawBallPixel
- addi $1 $17 0
- jal drawBallPixel
- jal loadAll
- addi $31 $28 0
- jr $31
- drawBallPixel:
- addi $28 $31 0
- jal saveAll
- addi $13, $0, 640
- addi $14, $0, 480
- addi $27, $0, 10
- sra $16, $1, $27
- sra $17, $2, $27
- bltz $16, drawBallExit
- bltz $17, drawBallExit
- bgt $16, $13, drawBallExit
- bgt $17, $14, drawBallExit
- mult $18, $17, $13
- add $18, $18, $16
- sp $3, 0($18)
- drawBallExit:
- jal loadAll
- addi $31 $28 0
- jr $31
- getGrid:
- addi $28 $31 0
- jal saveAll
- addi $13, $0, 640
- addi $14, $0, 480
- addi $15, $0, 80
- addi $27, $0, 10
- sra $16, $1, $27
- sra $17, $2, $27
- bltz $16, offscreen
- bltz $17, offscreen
- bgt $16, $13, offscreen
- bgt $17, $14, offscreen
- addi $13, $0, 8
- addi $14, $0, 12
- div $16, $16, $13
- div $17, $17, $14
- mult $7, $17, $15
- add $7, $7, $16
- jal loadAll
- addi $31 $28 0
- jr $31
- offscreen:
- addi $7, $0 -1
- jal loadAll
- addi $31 $28 0
- jr $31
- getGridCode:
- addi $28 $31 0
- jal saveAll
- bltz $1, offRead
- addi $13, $0, 2
- mod $14, $1, $13
- div $15, $1, $13
- lw $7, 0($15)
- addi $16, $0, 16
- beqz $14, evenRead
- sll $7, $7, $16
- evenRead:
- srl $7, $7, $16
- jal loadAll
- addi $31 $28 0
- jr $31
- offRead:
- addi $7, $0, 0
- jal loadAll
- addi $31 $28 0
- jr $31
- writeGridCode:
- addi $28 $31 0
- jal saveAll
- bltz $1, exitWrite
- addi $13, $0, 2
- mod $14, $1, $13
- div $15, $1, $13
- lw $16, 0($15)
- addi $17, $0, 16
- bnez $14, evenWrite
- sll $16 $16 $17
- srl $16 $16 $17
- sll $2 $2 $17
- add $16 $2 $16
- j saveWrite
- evenWrite:
- srl $16 $16 $17
- sll $16 $16 $17
- add $16 $16 $2
- j saveWrite
- saveWrite:
- sw $16 0($15)
- exitWrite:
- jal loadAll
- addi $31 $28 0
- jr $31
- saveGridSquareFromPos:
- addi $28 $31 0
- jal saveAll
- jal getGrid
- addi $1 $7 0
- jal saveGridSquare
- jal loadAll
- addi $31 $28 0
- jr $31
- saveGridSquare:
- addi $28 $31 0
- jal saveAll
- addi $13, $0, 640
- addi $14, $0, 80
- div $15, $1, $14
- addi $16, $0, 12
- mult $17, $15, $13
- mult $17, $17, $16
- addi $16, $0, 8
- mult $15, $15, $14
- sub $15, $1, $15
- mult $18, $15, $16
- add $27, $17, $18
- jal getGridCode
- addi $13, $0, 11
- srl $7, $7, $13
- addi $13, $0, 12
- addi $14, $0, 4
- addi $15, $0, 0
- addi $17, $0, 1680
- addi $18, $0, 24
- addi $20, $0, 2
- addi $21, $0, 8
- addi $22, $0, 640
- mult $7, $7, $18
- add $17, $17, $7
- saveGridSquarecol:
- saveGridSquarerow:
- saveGridSquareword:
- lw $19, 0($17)
- sll $19, $19, $15
- srl $19, $19, $18
- sp $19, 0($27)
- addi $27, $27, 1
- addi $15, $15, 8
- addi $14, $14, -1
- bnez $14, saveGridSquareword
- addi $17, $17, 1
- addi $20, $20, -1
- addi $14, $0, 4
- addi $15, $0, 0
- bnez $20, saveGridSquarerow
- addi $20, $0, 2
- addi $13, $13, -1
- sub $27, $27, $21
- add $27, $27, $22
- bnez $13, saveGridSquarecol
- jal loadAll
- addi $31 $28 0
- jr $31
- writeGridCodeFromPos:
- addi $28 $31 0
- jal saveAll
- jal getGrid
- addi $1 $7 0
- addi $2 $3 0
- jal writeGridCode
- jal saveGridSquare
- jal loadAll
- addi $31 $28 0
- jr $31
- getGridCodeFromPos:
- addi $28 $31 0
- jal saveAll
- jal getGrid
- addi $1 $7 0
- jal getGridCode
- jal loadAll
- addi $31 $28 0
- jr $31
- drawAll:
- addi $28 $31 0
- jal saveAll
- addi $13 $0 0
- addi $14 $0 3200
- drawLoop:
- addi $1 $13 0
- jal saveGridSquare
- addi $13 $13 1
- bne $13 $14 drawLoop
- jal loadAll
- addi $31 $28 0
- jr $31
- relativePixel:
- addi $28 $31 0
- jal saveAll
- jal getGridCodeFromPos
- addi $15 $7 0
- addi $16 $0 11
- srl $15 $15 $16
- addi $13 $0 10
- srl $1 $1 $13
- srl $2 $2 $13
- addi $13 $0 8
- addi $14 $0 12
- mod $13 $1 $13
- mod $14 $2 $14
- addi $16 $0 8
- mult $17 $14 $16
- add $17 $17 $13
- addi $18 $0 4
- div $19 $17 $18
- mod $20 $17 $18
- addi $21 $0 24
- mult $21 $21 $15
- add $21 $21 $19
- lw $22 1680($21)
- addi $23 $0 8
- mult $23 $23 $20
- sll $22 $22 $23
- addi $23 $0 24
- srl $22 $22 $23
- addi $7 $22 0
- jal loadAll
- addi $31 $28 0
- jr $31
- collisionsRouting:
- addi $28 $31 0
- jal saveAll
- addi $13 $1 0
- addi $14 $2 0
- addi $15 $3 0
- addi $16 $4 0
- jal getGridCodeFromPos
- addi $26 $7 0
- addi $17 $0 11
- srl $27 $26 $17
- addi $17 $0 10
- sra $19 $13 $17
- sra $20 $14 $17
- addi $17 $0 0
- blt $19 $17 leftWall
- addi $17 $0 600
- bgt $19 $17 rightWall
- addi $17 $0 0
- blt $20 $17 botWall
- addi $17 $0 8
- mod $19 $19 $17
- addi $17 $0 12
- mod $20 $20 $17
- addi $17 $0 0
- beq $27 $17 geoAir
- addi $17 $0 1
- beq $27 $17 geoFullSquare
- addi $17 $0 2
- beq $27 $17 geoBottomRightTriangle
- addi $17 $0 3
- beq $27 $17 geoTopRightTriangle
- addi $17 $0 4
- beq $27 $17 geoBottomLeftTriangle
- addi $17 $0 5
- beq $27 $17 geoTopLeftTriangle
- addi $17 $0 6
- beq $27 $17 geoBottomQuarterFull
- addi $17 $0 7
- beq $27 $17 geoBottomHalfFull
- addi $17 $0 8
- beq $27 $17 geoBottomThreeQuarterFull
- addi $17 $0 9
- beq $27 $17 geoTopQuarterFull
- addi $17 $0 10
- beq $27 $17 geoTopHalfFull
- addi $17 $0 11
- beq $27 $17 geoTopThreeQuarterFull
- addi $17 $0 12
- beq $27 $17 geoBarrel
- addi $17 $0 13
- beq $27 $17 geoAcc
- addi $17 $0 14
- beq $27 $17 geoDec
- addi $17 $0 15
- beq $27 $17 geoTwoHitBlock
- addi $17 $0 16
- beq $27 $17 geoOneHitBlock
- addi $17 $0 17
- beq $27 $17 geoSpire
- addi $17 $0 18
- beq $27 $17 geoHole
- addi $17 $0 19
- beq $27 $17 geoRightWind
- addi $17 $0 20
- beq $27 $17 geoLeftWind
- addi $17 $0 21
- beq $27 $17 geoUpWind
- addi $17 $0 22
- beq $27 $17 geoDownWind
- addi $17 $0 23
- beq $27 $17 geoIce
- addi $17 $0 24
- beq $27 $17 geoMud
- addi $17 $0 25
- beq $27 $17 geoWater
- addi $17 $0 26
- beq $27 $17 geoLowGrav
- addi $17 $0 27
- beq $27 $17 geoHighGrav
- addi $17 $0 28
- beq $27 $17 geoMaxHitPlus
- addi $17 $0 29
- beq $27 $17 geoMaxHitMinus
- upNorm:
- addi $17 $0 0
- addi $18 $0 -1
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- j makeCollision
- downNorm:
- addi $17 $0 0
- addi $18 $0 1
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- j makeCollision
- leftNorm:
- addi $17 $0 -1
- addi $18 $0 0
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- j makeCollision
- rightNorm:
- addi $17 $0 1
- addi $18 $0 0
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- j makeCollision
- upLeftNorm:
- addi $17 $0 0
- addi $18 $0 -1
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- addi $17 $0 -1
- addi $18 $0 -1
- j makeCollision
- upRightNorm:
- addi $17 $0 0
- addi $18 $0 -1
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- addi $17 $0 1
- addi $18 $0 -1
- j makeCollision
- downLeftNorm:
- addi $17 $0 -1
- addi $18 $0 1
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- addi $17 $0 -1
- addi $18 $0 0
- j makeCollision
- downRightNorm:
- addi $17 $0 1
- addi $18 $0 1
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- addi $17 $0 1
- addi $18 $0 0
- j makeCollision
- triangleUpRightNorm:
- addi $17 $0 4
- addi $18 $0 -3
- addi $25 $0 10
- sll $17 $17 $12
- sll $18 $18 $25
- addi $25 $0 5
- div $17 $17 $25
- div $18 $18 $25
- addi $3 $17 0
- addi $4 $18 0
- addi $22 $17 0
- addi $23 $18 0
- add $13 $13 $22
- add $14 $14 $23
- j postNormShiftingCollision
- triangleUpLeftNorm:
- addi $17 $0 -4
- addi $18 $0 -3
- addi $25 $0 10
- sll $17 $17 $12
- sll $18 $18 $25
- addi $25 $0 5
- div $17 $17 $25
- div $18 $18 $25
- addi $3 $17 0
- addi $4 $18 0
- addi $22 $17 0
- addi $23 $18 0
- add $13 $13 $22
- add $14 $14 $23
- j postNormShiftingCollision
- triangleDownRightNorm:
- addi $17 $0 4
- addi $18 $0 3
- addi $25 $0 10
- sll $17 $17 $12
- sll $18 $18 $25
- addi $25 $0 5
- div $17 $17 $25
- div $18 $18 $25
- addi $3 $17 0
- addi $4 $18 0
- addi $22 $17 0
- addi $23 $18 0
- add $13 $13 $22
- add $14 $14 $23
- j postNormShiftingCollision
- triangleDownLeftNorm:
- addi $17 $0 -4
- addi $18 $0 3
- addi $25 $0 10
- sll $17 $17 $12
- sll $18 $18 $25
- addi $25 $0 5
- div $17 $17 $25
- div $18 $18 $25
- addi $3 $17 0
- addi $4 $18 0
- addi $22 $17 0
- addi $23 $18 0
- add $13 $13 $22
- add $14 $14 $23
- j postNormShiftingCollision
- leftWall:
- addi $17 $0 1
- addi $18 $0 0
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- j makeCollision
- rightWall:
- addi $17 $0 -3
- addi $18 $0 0
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- j makeCollision
- botWall:
- addi $17 $0 0
- addi $18 $0 1
- addi $21 $0 10
- sll $22 $17 $21
- sll $23 $18 $21
- add $13 $13 $22
- add $14 $14 $23
- j makeCollision
- geoAir:
- j noCollisionRouting
- TODO: SET BACK TO NOCOLLISIONEXIT
- addi $17 $0 10
- addi $9 $0 0
- addi $10 $0 -1
- sll $9 $9 $17
- sll $10 $10 $17
- j collisionsRoutingExit
- geoFullSquare:
- addi $17 $0 0
- beq $19 $17 geoFullSquareHandleLeft:
- addi $17 $0 7
- beq $19 $17 geoFullSquareHandleRight:
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoFullSquareHandleLeft:
- addi $17 $0 0
- beq $20 $17 upLeftNorm
- addi $17 $0 11
- beq $20 $17 downLeftNorm
- j leftNorm
- geoFullSquareHandleRight:
- addi $17 $0 0
- beq $20 $17 upRightNorm
- addi $17 $0 11
- beq $20 $17 downRightNorm
- j rightNorm
- geoBottomRightTriangle:
- addi $17 $0 11
- beq $20 $17 downNorm
- addi $17 $0 7
- beq $19 $17 rightNorm
- j triangleUpLeftNorm
- geoTopRightTriangle:
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 7
- beq $19 $17 rightNorm
- j triangleDownLeftNorm
- geoBottomLeftTriangle:
- addi $17 $0 11
- beq $20 $17 downNorm
- addi $17 $0 0
- beq $19 $17 leftNorm
- j triangleUpRightNorm
- geoTopLeftTriangle:
- addi $17 $0 11
- beq $20 $17 downNorm
- addi $17 $0 7
- beq $19 $17 rightNorm
- j triangleDownRightNorm
- geoBottomQuarterFull:
- addi $17 $0 0
- beq $19 $17 geoBottomQuarterFullHandleLeft
- addi $17 $0 7
- beq $19 $17 geoBottomQuarterFullHandleRight
- addi $17 $0 9
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoBottomQuarterFullHandleLeft:
- addi $17 $0 9
- beq $20 $17 upLeftNorm
- addi $17 $0 11
- beq $20 $17 downLeftNorm
- j leftNorm
- geoBottomQuarterFullHandleRight:
- addi $17 $0 9
- beq $20 $17 upRightNorm
- addi $17 $0 11
- beq $20 $17 downRightNorm
- j rightNorm
- geoBottomHalfFull:
- addi $17 $0 0
- beq $19 $17 geoBottomHalfFullHandleLeft
- addi $17 $0 7
- beq $19 $17 geoBottomHalfFullHandleRight
- addi $17 $0 6
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoBottomHalfFullHandleLeft:
- addi $17 $0 6
- beq $20 $17 upLeftNorm
- addi $17 $0 11
- beq $20 $17 downLeftNorm
- j leftNorm
- geoBottomHalfFullHandleRight:
- addi $17 $0 6
- beq $20 $17 upRightNorm
- addi $17 $0 11
- beq $20 $17 downRightNorm
- j rightNorm
- geoBottomThreeQuarterFull:
- addi $17 $0 0
- beq $19 $17 geoBottomThreeQuarterFullHandleLeft
- addi $17 $0 7
- beq $19 $17 geoBottomThreeQuarterFullHandleRight
- addi $17 $0 3
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoBottomThreeQuarterFullHandleLeft:
- addi $17 $0 3
- beq $20 $17 upLeftNorm
- addi $17 $0 11
- beq $20 $17 downLeftNorm
- j leftNorm
- geoBottomThreeQuarterFullHandleRight:
- addi $17 $0 3
- beq $20 $17 upRightNorm
- addi $17 $0 11
- beq $20 $17 downRightNorm
- j rightNorm
- geoTopQuarterFull:
- addi $17 $0 0
- beq $19 $17 geoTopQuarterFullHandleLeft
- addi $17 $0 7
- beq $19 $17 geoTopQuarterFullHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 2
- beq $20 $17 downNorm
- j trappedInsideExit
- geoTopQuarterFullHandleLeft:
- addi $17 $0 0
- beq $20 $17 upLeftNorm
- addi $17 $0 2
- beq $20 $17 downLeftNorm
- j leftNorm
- geoTopQuarterFullHandleRight:
- addi $17 $0 0
- beq $20 $17 upRightNorm
- addi $17 $0 2
- beq $20 $17 downRightNorm
- j rightNorm
- geoTopHalfFull:
- addi $17 $0 0
- beq $19 $17 geoTopHalfFullHandleLeft
- addi $17 $0 7
- beq $19 $17 geoTopHalfFullHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 5
- beq $20 $17 downNorm
- j trappedInsideExit
- geoTopHalfFullHandleLeft:
- addi $17 $0 0
- beq $20 $17 upLeftNorm
- addi $17 $0 5
- beq $20 $17 downLeftNorm
- j leftNorm
- geoTopHalfFullHandleRight:
- addi $17 $0 0
- beq $20 $17 upRightNorm
- addi $17 $0 5
- beq $20 $17 downRightNorm
- j rightNorm
- geoTopThreeQuarterFull:
- addi $17 $0 0
- beq $19 $17 geoTopThreeQuarterFullHandleLeft
- addi $17 $0 7
- beq $19 $17 geoTopThreeQuarterFullHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 8
- beq $20 $17 downNorm
- j trappedInsideExit
- geoTopThreeQuarterFullHandleLeft:
- addi $17 $0 0
- beq $20 $17 upLeftNorm
- addi $17 $0 8
- beq $20 $17 downLeftNorm
- j leftNorm
- geoTopThreeQuarterFullHandleRight:
- addi $17 $0 0
- beq $20 $17 upRightNorm
- addi $17 $0 8
- beq $20 $17 downRightNorm
- j rightNorm
- geoBarrel:
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $0 0
- jal writeGridCodeFromPos
- addi $17 $0 9
- addi $18 $0 10
- addi $18 $18 -3
- sll $17 $17 $18
- sub $17 $0 $17
- mult $9 $15 $17
- mult $10 $16 $17
- addi $18 $0 10
- sra $9 $9 $18
- sra $10 $10 $18
- j collisionsRoutingExit
- geoTwoHitBlock:
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $0 1
- addi $17 $0 16
- sll $3 $3 $17
- jal writeGridCodeFromPos
- addi $17 $0 0
- beq $19 $17 geoTwoHitBlockHandleLeft
- addi $17 $0 7
- beq $19 $17 geoTwoHitBlockHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoTwoHitBlockHandleLeft:
- addi $17 $0 0
- beq $20 $17 upLeftNorm
- addi $17 $0 11
- beq $20 $17 downLeftNorm
- j leftNorm
- geoTwoHitBlockHandleRight:
- addi $17 $0 0
- beq $20 $17 upRightNorm
- addi $17 $0 11
- beq $20 $17 downRightNorm
- j rightNorm
- geoOneHitBlock:
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $0 0
- jal writeGridCodeFromPos
- addi $17 $0 0
- beq $19 $17 geoOneHitBlockHandleLeft
- addi $17 $0 7
- beq $19 $17 geoOneHitBlockHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoOneHitBlockHandleLeft:
- addi $17 $0 0
- beq $20 $17 upLeftNorm
- addi $17 $0 11
- beq $20 $17 downLeftNorm
- j leftNorm
- geoOneHitBlockHandleRight:
- addi $17 $0 0
- beq $20 $17 upRightNorm
- addi $17 $0 11
- beq $20 $17 downRightNorm
- j rightNorm
- geoSpire:
- addi $17 $0 11
- beq $20 $17 downNorm
- addi $17 $0 4
- blt $19 $17 triangleUpLeftNorm
- j triangleUpRightNorm
- geoHole:
- addi $17 $0 0
- beq $19 $17 geoHoleHandleLeft:
- addi $17 $0 7
- beq $19 $17 geoHoleHandleRight:
- addi $17 $0 11
- beq $20 $17 downNorm
- j exitMap
- geoHoleHandleLeft:
- addi $17 $0 0
- beq $20 $17 upLeftNorm
- addi $17 $0 11
- beq $20 $17 downLeftNorm
- j leftNorm
- geoHoleHandleRight:
- addi $17 $0 0
- beq $20 $17 upRightNorm
- addi $17 $0 11
- beq $20 $17 downRightNorm
- j rightNorm
- geoRightWind:
- addi $18 $0 1
- addi $17 $0 10
- addi $17 $17 -3
- sll $18 $18 $17
- addi $9 $18 0
- addi $10 $16 0
- j collisionsRoutingExit
- geoLeftWind:
- addi $18 $0 -1
- addi $17 $17 -3
- addi $17 $0 10
- sll $18 $18 $17
- addi $9 $18 0
- addi $10 $16 0
- j collisionsRoutingExit
- geoUpWind:
- addi $18 $0 -1
- addi $17 $17 -3
- addi $17 $0 10
- sll $18 $18 $17
- addi $9 $15 0
- addi $10 $18 0
- j collisionsRoutingExit
- geoDownWind:
- addi $18 $0 1
- addi $17 $17 -3
- addi $17 $0 10
- sll $18 $18 $17
- addi $9 $15 0
- addi $10 $18 0
- j collisionsRoutingExit
- geoIce:
- addi $17 $0 0
- beq $19 $17 geoIceHandleLeft
- addi $17 $0 7
- beq $19 $17 geoIceHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoIceHandleLeft:
- addi $17 $0 0
- beq $20 $17 upLeftNorm
- addi $17 $0 11
- beq $20 $17 downLeftNorm
- j leftNorm
- geoIceHandleRight:
- addi $17 $0 0
- beq $20 $17 upRightNorm
- addi $17 $0 11
- beq $20 $17 downRightNorm
- j rightNorm
- geoMud:
- addi $17 $0 0
- beq $19 $17 geoMudHandleLeft
- addi $17 $0 7
- beq $19 $17 geoMudHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoMudHandleLeft:
- addi $17 $0 0
- beq $20 $17 upLeftNorm
- addi $17 $0 11
- beq $20 $17 downLeftNorm
- j leftNorm
- geoMudHandleRight:
- addi $17 $0 0
- beq $20 $17 upRightNorm
- addi $17 $0 11
- beq $20 $17 downRightNorm
- j rightNorm
- geoWater:
- j noCollisionRouting
- geoLowGrav:
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $0 0
- jal writeGridCodeFromPos
- addi $17 $0 0
- beq $19 $17 geoFullSquareHandleLeft
- addi $17 $0 7
- beq $19 $17 geoFullSquareHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoHighGrav:
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $0 0
- jal writeGridCodeFromPos
- addi $17 $0 0
- beq $19 $17 geoFullSquareHandleLeft
- addi $17 $0 7
- beq $19 $17 geoFullSquareHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoMaxHitPlus:
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $0 0
- jal writeGridCodeFromPos
- addi $17 $0 0
- beq $19 $17 geoFullSquareHandleLeft
- addi $17 $0 7
- beq $19 $17 geoFullSquareHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoMaxHitMinus:
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $0 0
- jal writeGridCodeFromPos
- addi $17 $0 0
- beq $19 $17 geoFullSquareHandleLeft
- addi $17 $0 7
- beq $19 $17 geoFullSquareHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoAcc:
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $0 0
- jal writeGridCodeFromPos
- addi $17 $0 0
- beq $19 $17 geoFullSquareHandleLeft
- addi $17 $0 7
- beq $19 $17 geoFullSquareHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- geoDec:
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $0 0
- jal writeGridCodeFromPos
- addi $17 $0 0
- beq $19 $17 geoFullSquareHandleLeft
- addi $17 $0 7
- beq $19 $17 geoFullSquareHandleRight
- addi $17 $0 0
- beq $20 $17 upNorm
- addi $17 $0 11
- beq $20 $17 downNorm
- j trappedInsideExit
- j trappedInsideExit
- noCollisionRouting:
- addi $9 $15 0
- addi $10 $16 0
- j collisionsRoutingExit
- makeCollision:
- addi $21 $0 10
- addi $3 $17 0
- addi $4 $18 0
- sll $3 $3 $21
- sll $4 $4 $21
- postNormShiftingCollision:
- addi $1 $26 0
- jal getBlockConstants
- addi $5 $8 0
- addi $6 $9 0
- addi $1 $15 0
- addi $2 $16 0
- jal collision
- addi $9 $7 0
- addi $10 $8 0
- j collisionsRoutingExit
- collisionsRoutingExit:
- addi $7 $13 0
- addi $8 $14 0
- jal loadAll
- addi $31 $28 0
- jr $31
- trappedInsideExit:
- j upNorm
- exitMap:
- jal loadAll
- addi $31 $28 0
- addi $1 $0 0
- j gameLoop
- getBlockConstants:
- addi $28 $31 0
- jal saveAll
- addi $13 $1 0
- addi $23 $0 21
- sll $14 $13 $23
- addi $23 $0 30
- srl $14 $14 $23
- addi $23 $0 23
- sll $15 $13 $23
- addi $23 $0 30
- srl $15 $15 $23
- addi $23 $0 25
- sll $16 $13 $23
- addi $23 $0 30
- srl $16 $16 $23
- addi $23 $0 2460
- lw $17 0($23)
- lw $18 1($23)
- lw $19 2($23)
- addi $23 $0 0
- beq $14 $23 constantNormalGravity
- addi $23 $0 1
- beq $14 $23 constantLowGravity
- addi $23 $0 2
- beq $14 $23 constantHighGravity
- addi $23 $0 3
- beq $14 $23 constantNegativeGravity
- frictionXCalculations:
- addi $23 $0 0
- beq $15 $23 constantNormalFrictionX
- addi $23 $0 1
- beq $15 $23 constantLowFrictionX
- addi $23 $0 2
- beq $15 $23 constantHighFrictionX
- addi $23 $0 3
- beq $15 $23 constantNegativeFrictionX
- frictionYCalculations:
- addi $23 $0 0
- beq $16 $23 constantNormalFrictionY
- addi $23 $0 1
- beq $16 $23 constantLowFrictionY
- addi $23 $0 2
- beq $16 $23 constantHighFrictionY
- addi $23 $0 3
- beq $16 $23 constantNegativeFrictionY
- endBlockConstantCalculations:
- jal loadAll
- addi $31 $28 0
- jr $31
- constantNormalGravity:
- addi $7 $17 0
- j frictionXCalculations
- constantLowGravity:
- addi $23 $0 2
- div $7 $17 $23
- j frictionXCalculations
- constantHighGravity:
- addi $23 $0 2
- mult $7 $17 $23
- j frictionXCalculations
- constantNegativeGravity:
- sub $7 $0 $17
- j frictionXCalculations
- constantNormalFrictionX:
- addi $8 $18 0
- j frictionYCalculations
- constantLowFrictionX:
- addi $23 $0 2
- div $8 $18 $23
- j frictionYCalculations
- constantHighFrictionX:
- addi $23 $0 2
- mult $8 $18 $23
- j frictionYCalculations
- constantNegativeFrictionX:
- sub $8 $0 $18
- j frictionYCalculations
- constantNormalFrictionY:
- addi $9 $19 0
- j endBlockConstantCalculations
- constantLowFrictionY:
- addi $23 $0 2
- div $9 $19 $23
- j endBlockConstantCalculations
- constantHighFrictionY:
- addi $23 $0 2
- mult $9 $19 $23
- j endBlockConstantCalculations
- constantNegativeFrictionY:
- sub $9 $0 $19
- j endBlockConstantCalculations
- gameLoop:
- jal mapGen
- jal drawAll
- addi $1 $0 3
- addi $7 $0 100
- addi $8 $0 100
- addi $21 $0 10
- sll $7 $7 $21
- sll $8 $8 $21
- lw $13 2482($0)
- addi $23 $0 5
- addi $24 $0 28
- addi $25 $0 31
- addi $26 $0 2483
- addi $27 $0 2458
- initialSave:
- addi $27 $27 5
- bgt $27 $26 initialSaveExit
- sw $7 0($27)
- sw $8 1($27)
- sw $0 2($27)
- sw $0 3($27)
- sw $0 4($27)
- j initialSave
- initialSaveExit:
- addi $1 $0 0
- mainGravityLoop:
- addi $1 $0 0
- addi $23 $0 2463
- lw $21 2483($0)
- addi $22 $0 5
- mult $22 $1 $22
- add $23 $23 $22
- addi $1 $0 1
- lw $2 0($23)
- lw $3 1($23)
- addi $4 $21 21
- jal userInput
- addi $13 $0 3
- sra $7 $7 $13
- sra $8 $8 $13
- sw $7 2($23)
- sw $8 3($23)
- calcCycle:
- lw $13 0($23)
- lw $14 1($23)
- lw $15 2($23)
- lw $16 3($23)
- lw $17 4($23)
- st $24
- addi $25 $0 31
- sll $24 $24 $25
- srl $24 $24 $25
- beqz $24 skipRefreshSGS
- jal saveGridSquareFromPos
- skipRefreshSGS:
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $15 0
- addi $4 $16 0
- addi $5 $17 0
- jal timeStepAcceleration
- addi $1 $7 0
- addi $2 $8 0
- addi $3 $9 0
- addi $4 $10 0
- addi $5 $11 0
- jal collisionsRouting
- addi $13 $7 0
- addi $14 $8 0
- addi $15 $9 0
- addi $16 $10 0
- addi $17 $11 0
- addi $3 $0 2
- beqz $24 skipRefresh
- jal drawAll
- jal drawBallPixel
- jal nopSlide
- skipRefresh:
- jal drawBallPixel
- sw $13 0($23)
- sw $14 1($23)
- sw $15 2($23)
- sw $16 3($23)
- sw $17 4($23)
- addi $1 $13 0
- addi $2 $14 0
- addi $3 $15 0
- addi $4 $16 0
- jal isBallStopped
- beqz $7 calcCycle
- j mainGravityLoop
- lw $1 2483($0)
- lw $2 2482($0)
- addi $17 $0 4
- cycleCheck:
- addi $2 $2 1
- beq $2 $17 skipReset
- addi $2 $0 0
- skipReset:
- addi $13 $0 31
- addi $14 $0 28
- add $14 $14 $1
- sll $2 $2 $14
- srl $2 $2 $13
- beqz $2 cycleCheck
- sw $2 2483($0)
- j mainGravityLoop
- isBallStopped:
- addi $28 $31 0
- jal saveAll
- addi $13 $1 0
- addi $14 $2 0
- addi $15 $3 0
- addi $16 $4 0
- jal getGridCodeFromPos
- addi $23 $7 0
- addi $24 $0 11
- srl $23 $23 $24
- addi $7 $0 0
- bnez $23 isBallStoppedExit
- addi $1 $15 0
- jal absoluteValue
- addi $17 $7 0
- addi $21 $0 100
- addi $7 $0 1
- blt $17 $21 isBallStoppedExit
- addi $7 $0 0
- isBallStoppedExit:
- jal loadAll
- addi $31 $28 0
- jr $31
- slowmo:
- addi $28 $31 0
- jal saveAll
- addi $1 $0 13
- jal getSwitchVal
- beqz $7 slowmoExit
- jal nopSlide
- jal nopSlide
- jal nopSlide
- slowmoExit:
- jal loadAll
- addi $31 $28 0
- jr $31
- debugBallDisplay:
- addi $28 $31 0
- jal saveAll
- addi $1 $0 150
- addi $2 $0 150
- addi $13 $0 10
- sll $1 $1 $13
- sll $2 $2 $13
- addi $3 $0 2
- jal drawBall
- jal loadAll
- addi $31 $28 0
- jr $31
- userInput:
- addi $28 $31 0
- jal saveAll
- jal nopSlide
- jal nopSlide
- addi $13, $0, 0
- addi $14, $0, 0
- addi $15, $0, 0
- addi $16, $0, 10
- addi $17, $0, -10
- addi $23 $1 0
- addi $18 $2 0
- addi $19 $3 0
- addi $20 $4 0
- beqz $23 inputLoopKB
- j inputLoopCT
- inputLoopKB:
- addi $1 $18 0
- addi $2 $19 0
- addi $3 $20 0
- addi $21 $0 10
- srl $1 $1 $21
- srl $2 $2 $21
- jal saveGridSquareFromPos
- sll $1 $1 $21
- sll $2 $2 $21
- jal drawBallPixel
- add $1 $1 $13
- add $2 $2 $14
- addi $3 $0 30
- srl $1 $1 $21
- srl $2 $2 $21
- sll $1 $1 $21
- sll $2 $2 $21
- jal drawBallPixel
- jal waitKBInput
- addi $15, $0, 90
- beq $7, t2, userInputExit
- addi $15, $0, 117
- beq $7, $15, readUpArrow
- addi $15, $0, 114
- beq $7, $15, readDownArrow
- addi $15, $0, 116
- beq $7, $15, readRightArrow
- addi $15, $0, 107
- beq $7, $15, readLeftArrow
- j inputLoopKB
- readUpArrow:
- beq $14, $16, inputLoopKB
- addi $14, $14, 1
- j inputLoopKB
- readDownArrow:
- beq $14, $17, inputLoopKB
- addi $14, $14, -1
- j inputLoopKB
- readRightArrow:
- beq $13, $16, inputLoopKB
- addi $13, $13, 1
- j inputLoopKB
- readLeftArrow:
- beq $13, $17, inputLoopKB
- addi $13, $13, -1
- j inputLoopKB
- waitKBInput:
- addi $28 $31 0
- jal saveAll
- addi $13, $0, 0
- addi $14, $0, 0
- addi $15, $0, 65
- waitKBInputLoop:
- addi $14, $13, 0
- kb $13
- beq $13 $14 waitKBInputLoop
- bne $14 $15 waitKBInputLoop
- addi $7, $13, 0
- jal loadAll
- addi $31 $28 0
- jr $31
- inputLoopCTmov:
- addi $28 $31 0
- jal saveAll
- addi $1 $18 0
- addi $2 $19 0
- addi $3 $13 0
- addi $4 $14 0
- jal refreshPrev
- jal loadAll
- addi $31 $28 0
- jr $31
- inputLoopCT:
- addi $1 $18 0
- addi $2 $19 0
- addi $3 $20 0
- jal drawBallPixel
- addi $21 $0 10
- sll $27 $13 $21
- sll $26 $14 $21
- add $1 $1 $27
- add $2 $2 $26
- addi $3 $0 4
- jal drawBallPixel
- jal waitCTInput
- addi $15, $0, 73
- beq $7, $15, userInputExit
- addi $15, $0, 81
- beq $7, $15, readUpKey
- addi $15, $0, 69
- beq $7, $15, readDownKey
- addi $15, $0, 97
- beq $7, $15, readRightKey
- addi $15, $0, 67
- beq $7, $15, readLeftKey
- j inputLoopCT
- readUpKey:
- beq $14, $17, inputLoopCT
- jal inputLoopCTmov
- addi $14, $14, -1
- j inputLoopCT
- readDownKey:
- beq $14, $16, inputLoopCT
- jal inputLoopCTmov
- addi $14, $14, 1
- j inputLoopCT
- readRightKey:
- beq $13, $16, inputLoopCT
- jal inputLoopCTmov
- addi $13, $13, 1
- j inputLoopCT
- readLeftKey:
- beq $13, $17, inputLoopCT
- jal inputLoopCTmov
- addi $13, $13, -1
- j inputLoopCT
- waitCTInput:
- addi $28 $31 0
- jal saveAll
- addi $13, $0, 0
- addi $14, $0, 0
- addi $15, $0, 65
- addi $16, $0, 65535
- addi $17, $0, 1
- sll $16 $16 $17
- stgpioloop:
- addi $15 $0 0
- gpio $13
- addi $14 $13 0
- waitCTInputLoop:
- gpio $13
- bne $13 $14 stgpioloop
- addi $15 $15 1
- bne $15 $16 waitCTInputLoop
- addi $7, $13, 0
- addi $1 $7 0
- jal nopSlide
- jal loadAll
- addi $31 $28 0
- jr $31
- userInputExit:
- addi $7, $13, 0
- addi $8, $14, 0
- addi $21 $0 9
- sll $7 $7 $21
- sll $8 $8 $21
- jal loadAll
- addi $31 $28 0
- jr $31
- bgtz $7 conX
- sub $7 $0 $7
- sll $7 $7 $21
- sub $7 $0 $7
- j negX
- conX:
- sll $7 $7 $21
- negX:
- bgtz $8 conY
- sub $8 $0 $8
- sll $8 $8 $21
- sub $8 $0 $8
- j negY
- conY:
- sll $8 $8 $21
- negY:
- jal loadAll
- addi $31 $28 0
- jr $31
- refreshPrev:
- addi $28 $31 0
- jal saveAll
- addi $21 $0 10
- sll $3 $3 $21
- sll $4 $4 $21
- add $1 $1 $3
- add $2 $2 $4
- jal saveGridSquareFromPos
- jal loadAll
- addi $31 $28 0
- jr $31
- genPosition:
- addi $28 $31 0
- jal saveAll
- lw $13 1600($1)
- addi $14 $0 10
- addi $7 $1 0
- addi $21 $0 8
- addi $22 $0 12
- mult $7 $7 $21
- sll $7 $7 $14
- addi $15 $0 40
- sub $8 $15 $13
- addi $8 $8 -1
- mult $8 $8 $22
- sll $8 $8 $14
- jal loadAll
- addi $31 $28 0
- jr $31
- saveAll:
- addi $29, $29, -1
- sw $13, 0($29)
- addi $29, $29, -1
- sw $14, 0($29)
- addi $29, $29, -1
- sw $15, 0($29)
- addi $29, $29, -1
- sw $16, 0($29)
- addi $29, $29, -1
- sw $17, 0($29)
- addi $29, $29, -1
- sw $18, 0($29)
- addi $29, $29, -1
- sw $19, 0($29)
- addi $29, $29, -1
- sw $20, 0($29)
- addi $29, $29, -1
- sw $21, 0($29)
- addi $29, $29, -1
- sw $22, 0($29)
- addi $29, $29, -1
- sw $23, 0($29)
- addi $29, $29, -1
- sw $24, 0($29)
- addi $29, $29, -1
- sw $25, 0($29)
- addi $29, $29, -1
- sw $26, 0($29)
- addi $29, $29, -1
- sw $27, 0($29)
- addi $29, $29, -1
- sw $1, 0($29)
- addi $29, $29, -1
- sw $2, 0($29)
- addi $29, $29, -1
- sw $3, 0($29)
- addi $29, $29, -1
- sw $4, 0($29)
- addi $29, $29, -1
- sw $5, 0($29)
- addi $29, $29, -1
- sw $6, 0($29)
- addi $29, $29, -1
- sw $28, 0($29)
- jr $31
- loadAll:
- lw $28, 0($29)
- addi $29, $29, 1
- lw $6, 0($29)
- addi $29, $29, 1
- lw $5, 0($29)
- addi $29, $29, 1
- lw $4, 0($29)
- addi $29, $29, 1
- lw $3, 0($29)
- addi $29, $29, 1
- lw $2, 0($29)
- addi $29, $29, 1
- lw $1, 0($29)
- addi $29, $29, 1
- lw $27, 0($29)
- addi $29, $29, 1
- lw $26, 0($29)
- addi $29, $29, 1
- lw $25, 0($29)
- addi $29, $29, 1
- lw $24, 0($29)
- addi $29, $29, 1
- lw $23, 0($29)
- addi $29, $29, 1
- lw $22, 0($29)
- addi $29, $29, 1
- lw $21, 0($29)
- addi $29, $29, 1
- lw $20, 0($29)
- addi $29, $29, 1
- lw $19, 0($29)
- addi $29, $29, 1
- lw $18, 0($29)
- addi $29, $29, 1
- lw $17, 0($29)
- addi $29, $29, 1
- lw $16, 0($29)
- addi $29, $29, 1
- lw $15, 0($29)
- addi $29, $29, 1
- lw $14, 0($29)
- addi $29, $29, 1
- lw $13, 0($29)
- addi $29, $29, 1
- jr $31
- dotProduct:
- addi $28 $31 0
- jal saveAll
- mult $13 $1 $3
- mult $14 $2 $4
- addi $15 $0 10
- sra $13 $13 $15
- sra $14 $14 $15
- add $7 $13 $14
- jal loadAll
- addi $31 $28 0
- jr $31
- collision:
- addi $28 $31 0
- jal saveAll
- addi $13 $1 0
- addi $14 $2 0
- addi $15 $3 0
- addi $16 $4 0
- addi $22 $0 10
- jal dotProduct
- addi $17 $7 0
- addi $1 $15 0
- addi $2 $16 0
- jal dotProduct
- sll $17 $17 $22
- div $17 $17 $7
- mult $18 $15 $17
- mult $19 $16 $17
- sra $18 $18 $22
- sra $19 $19 $22
- sub $20 $13 $18
- sub $21 $14 $19
- mult $20 $20 $5
- mult $21 $21 $5
- sra $20 $20 $22
- sra $21 $21 $22
- mult $18 $18 $6
- mult $19 $19 $in6
- sra $18 $18 $22
- sra $19 $19 $22
- sub $7 $20 $17
- sub $8 $21 $19
- addi $23 $0 900
- addi $22 $0 10
- mult $7 $7 $23
- mult $8 $8 $23
- sra $7 $7 $22
- sra $8 $8 $22
- jal loadAll
- addi $31 $28 0
- jr $31
- timeStepAcceleration:
- addi $28 $31 0
- jal saveAll
- addi $13 $1 0
- addi $14 $2 0
- addi $15 $3 0
- addi $16 $4 0
- jal getGridCodeFromPos
- addi $1 $7 0
- addi $23 $7 0
- addi $24 $0 11
- srl $23 $23 $24
- jal getBlockConstants
- addi $17 $7 0
- bnez $23 notGrounded
- add $1 $16 $17
- j passnotGrounded
- notGrounded:
- sub $1 $16 $17
- sub $1 $16 $17
- passnotGrounded:
- jal normalizeToPlusMinusOne
- addi $10 $7 0
- addi $1 $15 0
- jal normalizeToPlusMinusOne
- addi $9 $7 0
- add $8 $14 $10
- add $7 $13 $9
- jal loadAll
- addi $31 $28 0
- jr $31
- isCollision:
- addi $28 $31 0
- jal saveAll
- addi $13 $0 10
- srl $14 $1 $13
- srl $15 $2 $13
- addi $27 $0 640
- mult $26 $27 $15
- add $26 $26 $14
- lp $16 0($26)
- addi $16 $7 0
- addi $17, $0, 1
- beq $16, $17, hasCollided
- addi $17, $0, 2
- beq $16, $17, hasCollided
- addi $17, $0, 3
- beq $16, $17, hasCollided
- addi $17, $0, 4
- beq $16, $17, hasCollided
- addi $17, $0, 7
- beq $16, $17, hasCollided
- addi $17, $0, 8
- beq $16, $17, hasCollided
- addi $17, $0, 9
- beq $16, $17, hasCollided
- addi $17, $0, 10
- beq $16, $17, hasCollided
- addi $17, $0, 11
- beq $16, $17, hasCollided
- addi $17, $0, 12
- beq $16, $17, hasCollided
- addi $17, $0, 14
- beq $16, $17, hasCollided
- addi $17, $0, 15
- beq $16, $17, hasCollided
- addi $17, $0, 16
- beq $16, $17, hasCollided
- addi $7, $0, 0
- j isCollisionExit
- isCollisionExit:
- jal loadAll
- addi $31 $28 0
- jr $31
- hasCollided: addi $7, $0, 1
- j isCollisionExit
- x
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement