{"name":"Warp Road","description":"Warp to the Star & Ztar Realms!","game":3,"type":"NORMAL","difficulty":2,"spaces":[{"x":851,"y":701,"type":7},{"x":786,"y":657,"z":0,"type":1,"events":[]},{"x":818,"y":643,"z":0,"type":1,"events":[{"id":"Standard Prompt Junction (Rat)","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Behind":41,"Next":1,"Current":2,"Invisible":125}}]},{"x":715,"y":665,"z":0,"type":12,"events":[{"id":"BANK","activationType":1,"executionType":1}]},{"x":680,"y":661,"z":0,"type":1,"events":[]},{"x":646,"y":653,"z":0,"type":1,"events":[]},{"x":616,"y":642,"z":0,"type":0,"events":[{"id":"(New Junction 1)","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Left":7,"Right":81}}]},{"x":580,"y":631,"z":0,"type":1,"events":[]},{"x":546,"y":616,"z":0,"type":10,"events":[]},{"x":510,"y":598,"z":0,"type":0,"events":[{"id":"(New Junction 2)","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Left":10,"Right":58}}]},{"x":474,"y":579,"z":0,"type":1},{"x":434,"y":551,"z":0,"type":13,"events":[{"id":"Item Shop Shopkeeper Editor","activationType":1,"executionType":1,"custom":true,"parameterValues":{"BabyBowserChance":50}},{"id":"ITEMSHOP","activationType":1,"executionType":1}],"rotation":328},{"x":404,"y":534,"z":0,"type":11},{"x":273,"y":420,"z":0,"type":1},{"x":251,"y":394,"z":0,"type":11},{"x":233,"y":368,"z":0,"type":1},{"x":219,"y":338,"z":0,"type":1},{"x":205,"y":308,"z":0,"type":10},{"x":199,"y":271,"z":0,"type":1},{"x":438,"y":427,"z":0,"type":1,"star":true},{"x":231,"y":201,"z":0,"type":10},{"x":296,"y":445,"z":0,"type":1},{"x":266,"y":181,"z":0,"type":1},{"x":377,"y":175,"z":0,"type":0,"events":[{"id":"(New Junction 3)","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Left":24,"Right":68}}]},{"x":410,"y":180,"z":0,"type":13,"rotation":343,"events":[{"id":"Item Shop Shopkeeper Editor","activationType":1,"executionType":1,"custom":true,"parameterValues":{"BabyBowserChance":50}},{"id":"ITEMSHOP","activationType":1,"executionType":1}]},{"x":445,"y":192,"z":0,"type":1},{"x":479,"y":203,"z":0,"type":11},{"x":206,"y":232,"z":0,"type":1,"star":true},{"x":544,"y":235,"z":0,"type":1},{"x":574,"y":251,"z":0,"type":10},{"x":604,"y":268,"z":0,"type":2},{"x":635,"y":289,"z":0,"type":1},{"x":666,"y":311,"z":0,"type":12,"events":[{"id":"BANK","activationType":1,"executionType":1}]},{"x":695,"y":332,"z":0,"type":1},{"x":321,"y":468,"z":0,"type":2},{"x":348,"y":490,"z":0,"type":1},{"x":301,"y":171,"z":0,"type":1,"events":[]},{"x":339,"y":169,"z":0,"type":1},{"x":860,"y":567,"z":0,"type":0,"events":[{"id":"BOO","activationType":1,"executionType":1}]},{"x":848,"y":506,"z":0,"type":2},{"x":856,"y":594,"z":0,"type":10},{"x":842,"y":620,"z":0,"type":1},{"x":859,"y":537,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":100,"PreviousSpace":101,"NextSpace":101}}]},{"x":834,"y":477,"z":0,"type":15},{"x":815,"y":450,"z":0,"type":1},{"x":794,"y":422,"z":0,"type":9},{"x":717,"y":350,"z":0,"type":0,"events":[{"id":"(New Junction 4)","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Left":117,"Right":50}}]},{"x":374,"y":512,"z":0,"type":1},{"x":290,"y":320,"z":0,"type":1,"events":[]},{"x":257,"y":333,"z":0,"type":1},{"x":703,"y":384,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"SpaceToFace":50,"Destinations":[99,100],"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":5}}]},{"x":475,"y":435,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"SpaceToFace":51,"Destinations":[99,100],"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":2}}]},{"x":505,"y":457,"z":0,"type":10},{"x":526,"y":488,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"SpaceToFace":53,"Destinations":[99,100],"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":1}}]},{"x":512,"y":219,"z":0,"type":1,"star":true},{"x":534,"y":523,"z":0,"type":9},{"x":712,"y":503,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":99,"PreviousSpace":83,"NextSpace":83}}]},{"x":699,"y":465,"z":0,"type":11},{"x":529,"y":560,"z":0,"type":1},{"x":400,"y":435,"z":0,"type":10},{"x":372,"y":458,"z":0,"type":1},{"x":771,"y":563,"z":0,"type":1},{"x":736,"y":536,"z":0,"type":1,"star":true},{"x":696,"y":424,"z":0,"type":1},{"x":443,"y":225,"z":0,"type":1},{"x":320,"y":302,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"SpaceToFace":65,"Destinations":[99,100],"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":4}}]},{"x":343,"y":277,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"SpaceToFace":66,"Destinations":[99,100],"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":3}}]},{"x":360,"y":248,"z":0,"type":9},{"x":372,"y":214,"z":0,"type":1},{"x":447,"y":262,"z":0,"type":6},{"x":458,"y":297,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"SpaceToFace":70,"Destinations":[99,100],"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":9}}]},{"x":478,"y":332,"z":0,"type":1},{"x":502,"y":364,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"SpaceToFace":72,"Destinations":[99,100],"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":8}}]},{"x":532,"y":395,"z":0,"type":1,"star":true},{"x":604,"y":316,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"SpaceToFace":74,"Destinations":[99,100],"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":11}}]},{"x":585,"y":347,"z":0,"type":1},{"x":592,"y":378,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"SpaceToFace":76,"Destinations":[99,100],"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":10}}]},{"x":594,"y":414,"z":0,"type":1,"star":true},{"x":595,"y":470,"z":0,"type":1},{"x":619,"y":511,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"SpaceToFace":79,"Destinations":[99,100],"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":7}}]},{"x":632,"y":552,"z":0,"type":4,"events":[{"id":"Random Warp (MP3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destinations":[99,100],"SpaceToFace":80,"Dest1Forward":[83,101],"Dest1Behind":[83,101],"Dest2Behind":[97,104],"SpaceNumber":6}}]},{"x":633,"y":597,"z":0,"type":1},{"x":562,"y":428,"z":0,"type":0,"events":[{"id":"(New Junction 5)","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Left":73,"Right":77}}]},{"x":1011,"y":212,"z":0,"type":1,"events":[{"id":"Give Current Player a Range of Coins (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"MIN_COINS":10,"MAX_COINS":40}},{"id":"Good Star Prompt Junction (Rat)","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Behind":97,"Next":84,"Current":83,"Secondinvisible":123,"Firstinvisible":99,"Invisible":123}}]},{"x":961,"y":252,"z":0,"type":1,"events":[{"id":"Lucky Space (1.3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Timeable":true}}]},{"x":951,"y":302,"z":0,"type":1,"events":[{"id":"Give Current Player a Range of Coins (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"MIN_COINS":10,"MAX_COINS":40}}]},{"x":961,"y":362,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"PreviousSpace":2,"NextSpace":2}}]},{"x":911,"y":332,"z":0,"type":1,"events":[{"id":"Give Current Player a Range of Coins (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"MIN_COINS":10,"MAX_COINS":40}}]},{"x":849,"y":332,"z":0,"type":1,"events":[{"id":"Give Current Player a Range of Coins (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"MIN_COINS":10,"MAX_COINS":40}}]},{"x":799,"y":362,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"PreviousSpace":2,"NextSpace":2}}]},{"x":809,"y":302,"z":0,"type":1,"events":[{"id":"Give Current Player a Range of Coins (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"MIN_COINS":10,"MAX_COINS":40}}]},{"x":800,"y":252,"z":0,"type":1,"events":[{"id":"Lucky Space (1.3)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Timeable":true}}]},{"x":750,"y":212,"z":0,"type":1,"events":[{"id":"Give Current Player a Range of Coins (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"MIN_COINS":10,"MAX_COINS":40}}]},{"x":807,"y":199,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"PreviousSpace":2,"NextSpace":2}}]},{"x":855,"y":173,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"PreviousSpace":2,"NextSpace":2}}]},{"x":880,"y":113,"z":0,"type":1,"events":[{"id":"Give Current Player a Range of Coins (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"MIN_COINS":40,"MAX_COINS":35}}]},{"x":904,"y":173,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"NextSpace":2,"PreviousSpace":2}}]},{"x":953,"y":199,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"NextSpace":2,"PreviousSpace":2}}]},{"x":880,"y":312,"z":0,"type":0,"events":[{"id":"Custom Ultra Super Good Item Shop [SMP-Style] (Airsola™)","activationType":1,"executionType":1,"custom":true,"parameterValues":{"MinToShop":5,"CellularShopperPrice":5,"LuckyCharmPrice":5,"KoopaKardPrice":10,"BooRepellentPrice":10,"BarterBoxPrice":15,"BooBellPrice":15,"MagicLampPrice":20,"ItemBagPrice":30}}]},{"x":881,"y":228,"z":0,"type":0},{"x":272,"y":618,"z":0,"type":0},{"x":141,"y":602,"z":0,"type":2,"events":[{"id":"Bad Luck Space Final","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Timeable":false}},{"id":"Bad Star Prompt Junction (Rat)","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Behind":104,"Next":102,"Current":101,"Secondinvisible":122,"Firstinvisible":100,"Invisible":122}}]},{"x":191,"y":642,"z":0,"type":2,"events":[{"id":"Give Everyone Coins except the Current Player (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"coinamount":10}}]},{"x":200,"y":692,"z":0,"type":2,"events":[{"id":"Bad Luck Space Final","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Timeable":false}}]},{"x":198,"y":589,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"NextSpace":2,"PreviousSpace":2}}]},{"x":246,"y":563,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"PreviousSpace":2,"NextSpace":2}}]},{"x":295,"y":563,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"PreviousSpace":2,"NextSpace":2}}]},{"x":344,"y":589,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"NextSpace":2,"PreviousSpace":2}}]},{"x":271,"y":503,"z":0,"type":2,"events":[{"id":"Bad Luck Space Final","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Timeable":false}}]},{"x":402,"y":602,"z":0,"type":2,"events":[{"id":"Bad Luck Space Final","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Timeable":false}}]},{"x":352,"y":642,"z":0,"type":2,"events":[{"id":"Give Everyone Coins except the Current Player (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"coinamount":10}}]},{"x":342,"y":692,"z":0,"type":2,"events":[{"id":"Bad Luck Space Final","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Timeable":false}}]},{"x":352,"y":752,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"PreviousSpace":2,"NextSpace":2}}]},{"x":302,"y":722,"z":0,"type":2,"events":[{"id":"Bad Luck Space Final","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Timeable":false}}]},{"x":240,"y":722,"z":0,"type":2,"events":[{"id":"Bad Luck Space Final","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Timeable":false}}]},{"x":190,"y":752,"z":0,"type":4,"events":[{"id":"Space Warp v3 (with purple) (Airsola™)","activationType":3,"executionType":1,"custom":true,"parameterValues":{"Destination":0,"PreviousSpace":2,"NextSpace":2}}]},{"x":770,"y":395,"z":0,"type":1},{"x":744,"y":372,"z":0,"type":1},{"x":752,"y":665,"z":0,"type":1,"events":[]},{"x":811,"y":582,"z":0,"type":6},{"x":899,"y":576,"z":0,"type":0,"subtype":3},{"x":271,"y":702,"z":0,"type":0,"events":[{"id":"Custom Scam Item Shop [SMP-Style] (Airsola™)","activationType":1,"executionType":1,"custom":true,"parameterValues":{"MinToShop":25,"LuckyCharmPrice":25,"WarpBlockPrice":25,"BowserPhonePrice":50,"DuelingGlovePrice":50,"PlunderChestPrice":50,"BarterBoxPrice":75,"MagicLampPrice":100,"ItemBagPrice":150}}]},{"x":198,"y":615,"z":0,"type":0,"events":[{"id":"Next Space Setup","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Next":101}}]},{"x":946,"y":228,"z":0,"type":0,"events":[{"id":"Next Space Setup","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Next":83}}]},{"x":450,"y":524,"z":0,"type":0,"subtype":7},{"x":835,"y":671,"z":0,"type":0,"events":[{"id":"Next Space Setup","activationType":1,"executionType":1,"custom":true,"parameterValues":{"Next":2}}]},{"x":438,"y":394,"z":0,"type":0,"subtype":0},{"x":627,"y":433,"z":0,"type":0,"subtype":0},{"x":552,"y":373,"z":0,"type":0,"subtype":0},{"x":240,"y":246,"z":0,"type":0,"subtype":0},{"x":762,"y":513,"z":0,"type":0,"subtype":0},{"x":528,"y":189,"z":0,"type":0,"subtype":0},{"x":692,"y":285,"z":0,"type":0,"subtype":5},{"x":721,"y":310,"z":0,"type":0,"subtype":6},{"x":420,"y":147,"z":0,"type":0,"subtype":7},{"x":715,"y":631,"z":0,"type":0,"subtype":5},{"x":751,"y":632,"z":0,"type":0,"subtype":6}],"links":{"0":125,"1":118,"2":1,"3":4,"4":5,"5":6,"6":[7,81],"7":8,"8":9,"9":[10,58],"10":11,"11":12,"12":47,"13":14,"14":15,"15":16,"16":17,"17":18,"18":27,"19":59,"20":22,"21":13,"22":36,"23":[24,68],"24":25,"25":26,"26":54,"27":20,"28":29,"29":30,"30":31,"31":32,"32":33,"33":46,"34":21,"35":34,"36":37,"37":23,"38":40,"39":42,"40":41,"41":2,"42":38,"43":39,"44":43,"45":44,"46":[50,117],"47":35,"48":49,"49":16,"50":63,"51":19,"52":51,"53":52,"54":28,"55":53,"56":62,"57":56,"58":55,"59":60,"60":35,"61":119,"62":61,"63":57,"64":25,"65":48,"66":65,"67":66,"68":67,"69":64,"70":69,"71":70,"72":71,"73":72,"74":31,"75":74,"76":75,"77":76,"78":82,"79":78,"80":79,"81":80,"82":[73,77],"83":84,"84":85,"85":86,"86":87,"87":98,"88":89,"89":90,"90":91,"91":92,"92":93,"93":94,"94":95,"95":96,"96":97,"97":83,"98":88,"99":123,"100":122,"101":102,"102":103,"103":115,"104":101,"105":104,"106":108,"107":106,"108":105,"109":107,"110":109,"111":110,"112":111,"113":112,"114":121,"115":114,"116":45,"117":116,"118":3,"119":40,"121":113},"events":{"Item Shop Shopkeeper Editor":{"language":0,"code":"; NAME: Item Shop Shopkeeper Editor\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: Number|BabyBowserChance\n\nADDIU SP SP -120\nSW RA 116(SP)\nSW S0 112(SP)\nSW S1 108(SP) \nSW S2 104(SP)\nSW S3 100(SP)\nSW S4 96(SP) \nSW S5 92(SP) \nSW S6 88(SP)\nSW S7 84(SP)\nSW FP 80(SP)\n\n\n\n; Normally, on Mario Party 3, there's a 66% chance for Toad to show up in the Item Shop,\n; and a 33% chance for Baby Bowser to show up. This event allows you to set the percent\n; chance for Baby Bowser to show up. Make sure the number is between 0 and 100. When\n; using this event, place it on the Item Shop Space FIRST and THEN place the \"Visit \n; Item Shop\" event right AFTER in the same space.\nJAL RNGPercentChance ; 1 if Baby Bowser, 0 if Toad\nLI A0 BabyBowserChance ; Baby Bowser % chance\nADDIU V0 V0 1 ; Add 1 to get Toad's Index (1) and Baby Bowser's Index (2)\n\nLUI T0 0x800C\nORI T0 T0 0xCD0AC ; Item Shopkeeper Index\nSH V0 0(T0) ; Store Shopkeeper's Index\n\n\n\nLW S0 112(SP)\nLW S1 108(SP) \nLW S2 104(SP)\nLW S3 100(SP)\nLW S4 96(SP) \nLW S5 92(SP) \nLW S6 88(SP)\nLW S7 84(SP)\nLW FP 80(SP)\nLW RA 116(SP)\nJR RA\nADDIU SP SP 120\n\n\n"},"Custom Scam Item Shop [SMP-Style] (Airsola™)":{"language":0,"code":"; NAME: Custom Scam Item Shop [SMP-Style] (Airsola™)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: +Number|MinToShop\n; PARAM: +Number|LuckyCharmPrice\n; PARAM: +Number|WarpBlockPrice\n; PARAM: +Number|BowserPhonePrice\n; PARAM: +Number|DuelingGlovePrice\n; PARAM: +Number|PlunderChestPrice\n; PARAM: +Number|BarterBoxPrice\n; PARAM: +Number|MagicLampPrice\n; PARAM: +Number|ItemBagPrice\n\n;====================================================================\n; IMPORTANT: This code is specifically designed to allow the landing\n;            or passing player to purchase an item from an inventory\n;            of your choice. If the player's inventory is full, they\n;            don't get to buy anything.\n;===================================================================\n\nADDIU SP SP -40\nSW RA 36(SP)\nSW S1 32(SP)\nSW S2 28(SP)\nSW S0 24(SP)\nSW S3 20(SP)\nSW S4 16(SP)\nSW S5 8(SP)\n\n\n;BEGIN Checks that prevent purchase===================================\nLUI S1 hi(total_turns)\nADDIU S1 S1 lo(total_turns) ; Load address of Total Turns to S1\nLBU S1 0(S1) ; Load value of Total Turns to S1\n\nLUI S2 hi(current_turn)\nADDIU S2 S2 lo(current_turn) ; Load address of Current Turn to S2\nLBU S2 0(S2) ; Load value of Current Turn to S2\n\nBEQ S2 S1 LastTurn ; If it's the last turn, branch\nNOP\n\nJAL GetCurrentPlayerIndex ; Current Player's Index at V0\nNOP\n\nMOVE S4 V0 ; Copy Current Player Index to S4\nMOVE A0 S4 ; Copy Current Player Index to A0\nLI A1 MinToShop ; A1 = The minimum amount of Coins to shop\nJAL PlayerHasCoins ; Checks if Player has the minimum Coins \nNOP\n\nBEQ V0 R0 NoCoinsToShop ; If the player doesn't have the Coins, exit\nNOP\n\nLUI S1 hi(p1_item3)\nADDIU S1 S1 lo(p1_item3) ; Load Player 1's Item slot #3 address\nLI S3 0x38 ; This is the distance between each player's Item #3\nMULT S4 S3 ;  Multiply Current Player Index by S3\nMFLO S3 ; Move the result to S3\n\nADDU S1 S1 S3 ; Add result to get current Player's item slot #3\nLBU S2 0(S1) ; Load address value into S2\n\nLI T0 0xFF ; No Item Value\nBNE S2 T0 TooManyItems ; If the player's inventory is full, exit\nNOP\n;END Checks that prevent purchase=====================================\n\n;BEGIN GREETING=======================================================\nJAL PlaySound\nLI A0 0x298 ; Toad: Yahoo! ^_^/\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 0xD ; Character image (Alt Toad)\nLUI A1 hi(Greeting_Message)\nADDIU A1 A1 lo(Greeting_Message)\nADDU A2 R0 R0\nJAL 0x800EC8EC ; ShowMessage\nADDU A3 R0 R0\n\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n;END GREETING=========================================================\n\n;BEGIN ITEM SELECTION PROMPT==========================================\nSTART:\nSW R0 20(SP) ; A4\nSW R0 24(SP) ; A5\nSW R0 28(SP) ; A6\nLI A0 0xD ; Character image (Alt Toad)\nLUI A1 hi(ItemSelection_Prompt)\nADDIU A1 A1 lo(ItemSelection_Prompt)\nADDU A2 R0 R0\nJAL 0x800EC8EC ; ShowMessage\nADDU A3 R0 R0\n\n; Get the selection, either from the player or CPU.\n; If A0 is a pointer to AI data, AI logic is ran to pick for CPUs.\n; If A0 is 0 or 1, the 0th or 1st option is chosen by CPUs.\n; If A0 is 2, then the value of A1 is the CPUs option index choice.\nLI A0 0\nJAL GetBasicPromptSelection\nLI A1 0 ; A1 now has the AI's decision\nMOVE S0 V0 ; S0 now has the chosen option index\n\n; Obligatory message box closing/cleanup calls.\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n\n; Change the player's destination based on the choice.\nLI A0 0\nBEQ S0 A0 item1\nNOP\nLI A0 1\nBEQ S0 A0 item2\nNOP\nLI A0 2\nBEQ S0 A0 item3\nNOP\nLI A0 3\nBEQ S0 A0 item4\nNOP\nLI A0 4\nBEQ S0 A0 item5\nNOP\nLI A0 5\nBEQ S0 A0 item6\nNOP\nLI A0 6\nBEQ S0 A0 item7\nNOP\nLI A0 7\nBEQ S0 A0 itembag\nNOP\nLI A0 8\nBEQ S0 A0 exit\nNOP\nLI A0 9\nBEQ S0 A0 view_map\nNOP\n;END ITEM SELECTION PROMPT============================================\n\n;BEGIN Item Values====================================================\n; 0x00 = Mushroom\n; 0x01 = Skeleton Key\n; 0x02 = Poison Mushroom\n; 0x03 = Reverse Mushroom\n; 0x04 = Cellular Shopper\n; 0x05 = Warp Block\n; 0x06 = Plunder Chest\n; 0x07 = Bowser Phone\n; 0x08 = Dueling Glove\n; 0x09 = Lucky Lamp\n; 0x0A = Golden Mushroom\n; 0x0B = Boo Bell\n; 0x0C = Boo Repellant\n; 0x0D = Bowser Suit\n; 0x0E = Magic Lamp\n; 0x0F = Koopa Card\n; 0x10 = Barter Box\n; 0x11 = Lucky Coin\n; 0x12 = Wacky Watch\n;END Item Values======================================================\n\n;BEGIN Selected Option================================================\nitem1:\nLI S0 0x11 ; Mushroom Value\nLI S3 LuckyCharmPrice ; S3 contains Lucky Charm\nJ payprice\nNOP\nitem2:\nLI S0 0x05 ; Warp Block Value\nLI S3 WarpBlockPrice ; S3 contains Warp Block Price\nJ payprice\nNOP\nitem3:\nLI S0 0x07 ; Poison Mushroom Value\nLI S3 BowserPhonePrice ; S3 contains Bowser Phone Price\nJ payprice\nNOP\nitem4:\nLI S0 0x08 ; Skeleton Key Value\nLI S3 DuelingGlovePrice ; S3 contains Dueling Glove Price\nJ payprice\nNOP\nitem5:\nLI S0 0x06 ; Bowser Phone Value\nLI S3 PlunderChestPrice ; S3 contains Plunder Chest Price\nJ payprice\nNOP\nitem6:\nLI S0 0x10 ; Bowser Suit Value\nLI S3 BarterBoxPrice ; S3 contains Barter Box Price\nJ payprice\nNOP\nitem7:\nLI S0 0x0E ; Lucky Lamp Value\nLI S3 MagicLampPrice ; S3 contains Magic Lamp Price\nJ payprice\nNOP\nitembag:\nLI S3 ItemBagPrice ; S3 contains Item Bag Price\nMOVE A0 S4 ; Current Player's Index moved to A0\nMOVE A1 S3 ; Amount of coins to check\nJAL PlayerHasCoins ; Checks if Player has A1's amount of Coins\nNOP\n\nBEQ V0 R0 NotEnoughCoins ; If insufficient funds, branch\nNOP\n\nMOVE A0 S4 ; Current Player's Index moved to A0\nSUBU A1 R0 S3 ; Amount to pay\nJAL AdjustPlayerCoinsGradual ; Changes Player's coin amount\nNOP\n\nMOVE A0 S4 ; Current Player's Index moved to A0\nSUBU A1 R0 S3 ; Amount to display\nJAL ShowPlayerCoinChange ; Displays Player's coin loss on-screen \nNOP\n\nADDIU A0 R0 30\nJAL SleepProcess ; Sleeps for 30 frames\nNOP\n\nLI T1 2 \nSUBU S1 S1 T1 ; This loads the current player's first Item address\nLI S5 1 ; S5 is the counter to stop giving Items once full\nLoop:\nLI T0 0x4\nSLT A2 S5 T0 ; A2 = 1 if S5 is less than 4\nNOP\nBEQ A2 R0 exit ; exit once player's item inventory is full\nNOP\n\nLBU S2 0(S1) ; Load slot #1's Item Value into S2\nLI T1 0xFF ; No Item Value\nBNE S2 T1 next ; If the player has an item, load next address\nNOP\n\nJAL GetRandomByte ; Integer at V0\nNOP\n\nLI A0 0x6 \nSLT S0 V0 A0 ; S0 = 1 if the number is less than 6\nNOP\nBNE S0 R0 getKoopaKard ; Branch if true\nNOP\n\nLI A0 0xF \nSLT S0 V0 A0 ; S0 = 1 if the number is less than 15\nNOP\nBNE S0 R0 getLuckyCharm ; Branch if true\nNOP\n\nLI A0 0x21 \nSLT S0 V0 A0 ; S0 = 1 if the number is less than 33\nNOP\nBNE S0 R0 getBowserPhone ; Branch if true\nNOP\n\nLI A0 0x33\nSLT S0 V0 A0 ; S0 = 1 if the number is less than 51\nNOP\nBNE S0 R0 getBowserSuit ; Branch if true\nNOP\n\nLI A0 0x45\nSLT S0 V0 A0 ; S0 = 1 if the number is less than 69\nNOP\nBNE S0 R0 getLuckyLamp ; Branch if true\nNOP\n\nLI A0 0x74\nSLT S0 V0 A0 ; S0 = 1 if the number is less than 116\nNOP\nBNE S0 R0 getWarpBlock ; Branch if true\nNOP\n\nLI A0 0xA3\nSLT S0 V0 A0 ; S0 = 1 if the number is less than 163\nNOP\nBNE S0 R0 getPoisonMushroom ; Branch if true\nNOP\n\nLI A0 0xD2\nSLT S0 V0 A0 ; S0 = 1 if the number is less than 210\nNOP\nBNE S0 R0 getMushroom ; Branch if true\nNOP\n\nJ getSkeletonKey\nNOP\n\ngetKoopaKard:\nLI T0 0xF ; Koopa Kard value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetLuckyCharm:\nLI T0 0x11 ; Lucky Charm value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetBowserPhone:\nLI T0 0x7 ; Bowser Phone value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetBowserSuit:\nLI T0 0xD ; Bowser Suit value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetLuckyLamp:\nLI T0 0x9 ; Lucky Lamp value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetWarpBlock:\nLI T0 0x5 ; Warp Block value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetPoisonMushroom:\nLI T0 0x2 ; Poison Mushroom value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetMushroom:\nLI T0 0x0 ; Mushroom value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetSkeletonKey:\nLI T0 0x1 ; Skeleton Key value\nSB T0 0(S1)\n\nsound:\nJAL PlaySound\nADDIU A0 R0 0x10C ; Turn Start sound\n\nADDIU A0 R0 30\nJAL SleepProcess ; Sleeps for 30 frames\nNOP\n\nnext:\nADDIU S1 S1 1 ; Load next item's address\nADDIU S5 S5 1 ; Raise the item counter by 1\nJ Loop ; Loop back to give the next item\nNOP\n\nview_map:\nJAL ViewBoardMap\nNOP\nJ START\nNOP\n;END Item Values======================================================\n\n;BEGIN Checking Player For Necessary Coins To Purchase================\npayprice:\nMOVE A0 S4 ; Current Player's Index moved to A0\nMOVE A1 S3 ; Amount of coins to check\nJAL PlayerHasCoins ; Checks if Player has A1's amount of Coins\nNOP\n\nBEQ V0 R0 NotEnoughCoins ; If insufficient funds, branch\nNOP\n;END Checking Player For Necessary Coins To Purchase==================\n\n;BEGIN Taking Coins From Player=======================================\nMOVE A0 S4 ; Current Player's Index moved to A0\nSUBU A1 R0 S3 ; Amount to pay\nJAL AdjustPlayerCoinsGradual ; Changes Player's coin amount\nNOP\n\nMOVE A0 S4 ; Current Player's Index moved to A0\nSUBU A1 R0 S3 ; Amount to display\nJAL ShowPlayerCoinChange ; Displays Player's coin loss on-screen \nNOP\n\nADDIU A0 R0 30\nJAL SleepProcess ; Sleeps for 30 frames\nNOP\n;END Taking Coins From Player=========================================\n\n;BEGIN Checking Player Item Slots=====================================\nLI T1 2\nSUBU S1 S1 T1 ; This loads the current player's first Item address\nLBU S2 0(S1) ; Load slot #1's Item Value into S2\nLI T1 0xFF ; No Item Value\nBEQ S2 T1 giveitem ; Go to giveitem if the slot is empty\nNOP\nADDIU S1 S1 1 ; Add 1 to load current player's second Item address\nLBU S2 0(S1) ; Load slot #2's Item Value into S2\nBEQ S2 T1 giveitem ; Go to giveitem if the slot is empty\nNOP\nADDIU S1 S1 1 ; Add 1 to load current player's third Item address\n\ngiveitem:\nSB S0 0(S1)\n;END Checking Player Item Slots=======================================\n\n;BEGIN Item Sound Effect==============================================\nJAL PlaySound\nLI A0 0x10C ; Turn Start sound\n\nLI A0 15 ; Frames to wait after the sound plays\nJAL SleepProcess ; Sleeps for 15 frames\nNOP\n\nJ exit\nNOP\n;END Item Sound Effect================================================\n\n;BEGIN CANNOT BUY ITEM MESSAGE========================================\nNotEnoughCoins:\nJAL PlaySound\nLI A0 0x29A ; Toad: Oooh :(\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 0xD ; Character image (Alt Toad)\nLUI A1 hi(NotEnoughCoins_Message)\nADDIU A1 A1 lo(NotEnoughCoins_Message)\nADDU A2 R0 R0\nJAL 0x800EC8EC ; ShowMessage\nADDU A3 R0 R0\n\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n\nJ START\nNOP\n;END CANNOT BUY ITEM MESSAGE==========================================\n\n;BEGIN TOO MANY ITEMS MESSAGE=========================================\nTooManyItems:\nJAL PlaySound\nLI A0 0x29A ; Toad: Oooh :(\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 0xD ; Character image (Alt Toad)\nLUI A1 hi(TooManyItems_Message)\nADDIU A1 A1 lo(TooManyItems_Message)\n\nJ FinalizeMessage\nNOP\n;END TOO MANY ITEMS MESSAGE===========================================\n\n;BEGIN NOT ENOUGH COINS MESSAGE=======================================\nNoCoinsToShop:\nJAL PlaySound\nLI A0 0x29A ; Toad: Oooh :(\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 0xD ; Character image (Alt Toad)\nLUI A1 hi(NoCoinsToShop_Message)\nADDIU A1 A1 lo(NoCoinsToShop_Message)\n\nJ FinalizeMessage\nNOP\n;END NOT ENOUGH COINS MESSAGE=========================================\n\n;BEGIN Last Turn MESSAGE==============================================\nLastTurn:\nJAL PlaySound\nLI A0 0x29A ; Toad: Oooh :(\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 0xD ; Character image (Alt Toad)\nLUI A1 hi(LastTurn_Message)\nADDIU A1 A1 lo(LastTurn_Message)\n;END Last Turn MESSAGE================================================\n\nFinalizeMessage:\nADDU A2 R0 R0\nJAL 0x800EC8EC ; ShowMessage\nADDU A3 R0 R0\n\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n\n\n\nexit:\nLW S5 8(SP)\nLW S4 16(SP)\nLW S3 20(SP)\nLW S1 32(SP)\nLW S2 28(SP)\nLW S0 24(SP)\nLW RA 36(SP)\nJR RA\nADDIU SP SP 40\n\n\n\n.align 16\nLastTurn_Message:\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"I can\"\n.byte 0x5C ; Apostrophe (')\n.ascii \" t scam\"\n.byte 0x85 ; Period (.)\n.byte 0x85 ; Period (.)\n.byte 0x85 ; Period (.)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"I mean\"\n.byte 0x82 ; Comma (,)\n.byte 0x10 ; space\n.ascii \"sell you items in the last turn\"\n.byte 0x85 ; Period (.)\n.byte 0xFF,0 ; FF=Pause\n\n.align 16\nNoCoinsToShop_Message:\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"I don\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"t allow the poors in my store\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Get lost before I call bowser\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0xFF,0 ; FF=Pause\n\n.align 16\nTooManyItems_Message:\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"You have too many items\"\n.byte 0x85 ; Period (.)\n.byte 0x85 ; Period (.)\n.byte 0x85 ; Period (.)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"I can\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"t sell you anything\"\n.byte 0x85 ; Period (.)\n.byte 0x10 ; space\n.byte 0x5D ;\n.ascii \"cries\"\n.byte 0x5E ;\n.byte 0xFF,0 ; FF=Pause\n\n.align 16\nGreeting_Message:\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Hey Chum\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Welcome to the bestest shop\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Check out my GREAT deals\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0xFF,0 ; FF=Pause\n\n.align 20\nItemSelection_Prompt:\n.byte 0x0B ; Start the message\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Would you like to get a GREAT deal\"\n.byte 0xC3 ; Question Mark (?)\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Lucky Charm\"\n.byte 0x08 ; White Font\n.byte 0x10,0x10,0x10 ; Space x3( )\n.byte 0x1A,0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \" 25\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font  \n.ascii \"Warp Block   \"\n.byte 0x10,0x10,0x10,0x10,0x10 ; Space x5 ( )\n.byte 0x08 ; White Font\n.byte 0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \" 25\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Bowser Phone  \"\n.byte 0x10,0x10 ; Space x2 ( )\n.byte 0x08 ; White Font\n.byte 0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \" 50\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Dueling Glove\"\n.byte 0x10 ; Space (  )\n.byte 0x08 ; White Font\n.byte 0x1A,0x1A,0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \" 50\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Plunder Chest   \"\n.byte 0x10,0x10,0x10,0x10 ; Space 4x (  )\n.byte 0x08 ; White Font\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \" 50\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Barter Box    \"\n.byte 0x10,0x10,0x10,0x10 ; Space 4x (  )\n.byte 0x08 ; White Font\n.byte 0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \" 75\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Magic Lamp  \"\n.byte 0x10,0x10,0x10 ; Space 3x (  )\n.byte 0x08 ; White Font\n.byte 0x1A,0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \"100\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Item Bag  \"\n.byte 0x10,0x10,0x10,0x10 ; Space x4 (  )\n.byte 0x08 ; White Font\n.byte 0x1A,0x1A,0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \"150\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A \n.byte 0x0C ; Start option\n.ascii \"Nah\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A \n.byte 0x0C ; Start option\n.ascii \"View Map\"\n.byte 0x0D ; End option\n.byte 0\n\n.align 16\nNotEnoughCoins_Message:\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \" I don\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"t believe in charity\"\n.byte 0x85 ; Period (.)\n.byte 0xFF,0 ; FF=Pause"},"Give Current Player a Range of Coins (Airsola™)":{"language":0,"code":"; NAME: Give Current Player a Range of Coins (Airsola™)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: +Number|MIN_COINS\n; PARAM: +Number|MAX_COINS\n\n;====================================================================\n; IMPORTANT: This code is specifically designed to give the landing\n;            or passing player a random amount of coins from a range.\n;            MIN_COINS is the minimum amount of coins to give out.\n;            MAX_COINS is added to MIN_COINS to determine the maximum\n;            amount of coins to give out.\n;\n;            Example: If MIN_COINS is 5 and MAX_COINS is 6, the\n;            minimum amount of coins given will be 5, and the maximum\n;            will be 11.\n;===================================================================\n\nADDIU SP SP -40\nSW RA 36(SP)\nSW S1 32(SP)\n\n\n\n;GOT COINS MESSAGE DISPLAY START-------------------------------------\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 -1 ; Character image (-1 for none)\n; Visit the following link to get the full list of Character Images\n; https://github.com/PartyPlanner64/PartyPlanner64/wiki/Displaying-Messages\n; If you use a character image, check the bottom of the code\nLUI A1 hi(coins)\nADDIU A1 A1 lo(coins) ; This loads \"coins\" into the Textbox\nLI A2 0x0\nJAL 0x800EC8EC ; ShowMessage\nLI A3 0x0\n\n; The rest here perform the \"wait for confirmation\"\n; and probably messagebox teardown.\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n;GOT COINS MESSAGE DISPLAY END---------------------------------------\n\n;GIVE COINS START----------------------------------------------------\nJAL GetRandomByte ; Generates a number from 0-255 into V0\nNOP\n\nADDIU T0 R0 MAX_COINS ; T0 holds value of MAX_COINS\nADDIU T0 T0 1 \nDIVU V0 T0 ; Divide the random number by T0\nMFHI S1 ; HI contains the remainder, pull that into S1\n\nJAL GetCurrentPlayerIndex ; Current Player's Index at V0\nNOP\n\nMOVE A0 V0 ; Assigns Current Player's Index to A0\nADDIU A1 S1 MIN_COINS ; Add minimum amount of coins to remainder\nJAL AdjustPlayerCoinsGradual ; Changes player's coin amount\nNOP\n\nJAL GetCurrentPlayerIndex ; Current Player's Index at V0\nNOP\n\nMOVE A0 V0 ; Assigns Current Player's Index to A0\nADDIU A1 S1 MIN_COINS ; Add minimum amount of coins to remainder\nJAL ShowPlayerCoinChange ; Shows how the amount on-screen\nNOP\n;GIVE COINS END------------------------------------------------------\n\n;WAIT START----------------------------------------------------------\nADDIU A0 R0 30 ; Amount of frames the game waits for coin handouts\nJAL SleepProcess\nNOP\n;WAIT END------------------------------------------------------------\n\n\n\nLW S1 32(SP)\nLW RA 36(SP)\nJR RA\nADDIU SP SP 40\n\n; .ascii is used to output Text. Anything surrounded by \" will be \n; displayed in the message (Special characters are not included).\n; For those, you must use .byte and the respective byte value.\n; Bytes that change text color will change the color of everything\n; that is written after it, until another color is used.\n\n.align 16\ncoins:\n.ascii \"You got a bunch of\"\n.byte 0x06 ; Blue font\n.ascii \"coins\"\n.byte 0x08 ; White Font\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0xFF,0 ; FF=Pause (THIS ALWAYS GOES AT THE END)\n\n; Here's a list of the most common bytes you'll need\n; .byte 0x01 ; Black Font\n; .byte 0x03 ; Red Font\n; .byte 0x04 ; Purple Font\n; .byte 0x05 ; Green Font\n; .byte 0x06 ; Blue font\n; .byte 0x07 ; Yellow Font\n; .byte 0x08 ; White Font\n; .byte 0x85 ; Period (.)\n; .byte 0xC2 ; Exclamation Mark (!)\n; .byte 0xC3 ; Question Mark (?)\n; .byte 0x82 ; Comma (,)\n; .byte 0x0A ; New Line (Writes Below)\n; .byte 0x5C ; Apostrophe (')\n; .byte 0x29 ; Coin icon\n; .byte 0x3D ; - (minus)\n; .byte 0x3E ; x (multiply)\n; .byte 0xFF,0 ; FF=Pause\n\n; If your message has an image, use this at the start of each line\n; .byte 0x1A,0x1A,0x1A,0x1A ; Padding for picture"},"Give Everyone Coins except the Current Player (Airsola™)":{"language":0,"code":"; NAME: Give Everyone Coins except the Current Player (Airsola™)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: Number|coinamount\n\n;====================================================================\n; IMPORTANT: This code is specifically designed to give every player\n;            a fixed amount of coins except for the player who lands\n;            or passes through the space.\n;====================================================================\n\nADDIU SP SP -40\nSW RA 36(SP)\nSW S0 32(SP)\n\n\n\n;MESSAGE DISPLAY START-----------------------------------------------\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 -1 ; Character image (-1 for none)\n; Visit the following link to get the full list of Character Images\n; https://github.com/PartyPlanner64/PartyPlanner64/wiki/Displaying-Messages\n; If you use a character image, check the bottom of the code\nLUI A1 hi(Message)\nADDIU A1 A1 lo(Message) ; This loads \"Message\" into the Textbox\nLI A2 0x0\nJAL 0x800EC8EC ; ShowMessage\nLI A3 0x0\n\n; The rest here perform the \"wait for confirmation\"\n; and probably messagebox teardown.\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n;MESSAGE DISPLAY END-------------------------------------------------\n\n;GIVE COINS START----------------------------------------------------\nLI S0 0x0 ; Begin with Player 1\n\nSTART:\nJAL GetCurrentPlayerIndex ; Current Player Index at V0\nNOP\n\nLI T0 0x4 ; If all Players have been given coins, stop\nBEQ S0 T0 wait\nNOP\n\nBEQ V0 S0 nextplayer ; If the current player is S0, skip them\nNOP\n\nMOVE A0 S0 ; A0 = S0\nADDIU A1 R0 coinamount\nJAL AdjustPlayerCoinsGradual ; Changes player's coin amount\nNOP\n\nnextplayer:\nADDIU S0 S0 1 ; Add 1 to S0 to check next player\nJ START\nNOP\n;GIVE COINS END------------------------------------------------------\n\n;WAIT START----------------------------------------------------------\nwait:\nADDIU A0 R0 30 ; Amount of frames the game waits for coin handouts\nJAL SleepProcess\nNOP\n;WAIT END------------------------------------------------------------\n\n\n\nLW S0 32(SP)\nLW RA 36(SP)\nJR RA\nADDIU SP SP 40\n\n; .ascii is used to output Text. Anything surrounded by \" will be \n; displayed in the message (Special characters are not included).\n; For those, you must use .byte and the respective byte value.\n; Bytes that change text color will change the color of everything\n; that is written after it, until another color is used.\n\n.align 16\nMessage:\n.ascii \"Everyone else got some\"\n.byte 0x06 ; Blue font\n.ascii \" coins\"\n.byte 0x08 ; White Font\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0xFF,0 ; FF=Pause (THIS ALWAYS GOES AT THE END)\n\n; Here's a list of the most common bytes you'll need\n; .byte 0x01 ; Black Font\n; .byte 0x03 ; Red Font\n; .byte 0x04 ; Purple Font\n; .byte 0x05 ; Green Font\n; .byte 0x06 ; Blue font\n; .byte 0x07 ; Yellow Font\n; .byte 0x08 ; White Font\n; .byte 0x85 ; Period (.)\n; .byte 0xC2 ; Exclamation Mark (!)\n; .byte 0xC3 ; Question Mark (?)\n; .byte 0x82 ; Comma (,)\n; .byte 0x0A ; New Line (Writes Below)\n; .byte 0x5C ; Apostrophe (')\n; .byte 0x29 ; Coin icon\n; .byte 0x3D ; - (minus)\n; .byte 0x3E ; x (multiply)\n; .byte 0xFF,0 ; FF=Pause\n\n; If your message has an image, use this at the start of each line\n; .byte 0x1A,0x1A,0x1A,0x1A ; Padding for picture"},"Lucky Space (1.3)":{"language":0,"code":"; NAME: Lucky Space (1.3)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: Boolean|Timeable\n\nADDIU SP SP -120\nSW RA 116(SP)\nSW S0 112(SP)\nSW S1 108(SP) \nSW S2 104(SP)\nSW S3 100(SP)\nSW S4 96(SP) \nSW S5 92(SP) \nSW S6 88(SP)\nSW S7 84(SP)\nSW FP 80(SP)\n\n\n; Set Timeable to TRUE so that the wheel can be timed\n; Set Timeable to FALSE so that the result is random\n\nJAL PlayMusic\nLI A0 112 ; Game Guy Fanfare\n\nJAL PlaySound\nLI A0 0x248 ; Crowd Cheering\n\nSW R0 16(SP) ; Parameter 3\nSW R0 20(SP) ; Parameter 4\nSW R0 24(SP) ; Parameter 5\nLI A0 -1 ; Character image (None)\nLUI A1 hi(LuckySpace_Message)\nADDIU A1 A1 lo(LuckySpace_Message)\nLI A2 0 ; Parameter 1\nJAL ShowMessage\nLI A3 0 ; Parameter 2\n\nJAL SleepProcess\nLI A0 60\n\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP ; These 3 close the message\n\nJAL GetBoardAudioIndex\nNOP\n\nJAL PlayMusic\nMOVE A0 V0 ; Play regular music again\n\nJAL GetPlayerStruct\nLI A0 -1 \nMOVE S4 V0\n\nJAL GetPlayerPlacement ; 0-3 at V0\nLBU A0 29(S4) ; Player Index\n\nSLL V0 V0 4 ; Shift bit by 4 \n\nLUI S2 hi(1stPlace_Array)\nADDIU S2 S2 lo(1stPlace_Array)\nADDU S2 S2 V0 ; Add to get correct Array\n\nLUI T3 hi(RouletteOutcomes_Array)\nADDIU T3 T3 lo(RouletteOutcomes_Array)\nLI T0 0xFF ; No Chest Index\nSB T0 0(T3)\nSB T0 1(T3)\nSB T0 2(T3)\nSB T0 3(T3) ; Make all addresses -1\nSB T0 4(T3) \n\nJAL GetRandomByte\nNOP\n\nLI T0 5\nDIVU V0 T0 ; Divide by 5\nMFHI S6 ; 0-4, where the Roulette highlight will begin\nSB S6 72(SP) ; Store this value in case they select Random\n\nLI S0 4 ; Loop Counter\noutcomeloop:\nBLTZ S0 setuproulette ; exit once all roulette slots are filled\nNOP\n\nJAL GetRandomByte ; 0-255 at V0\nNOP\n\nLI T0 8 ; 8 Outcomes total\nDIVU V0 T0\nMFHI V0 ; 0-8 \nADDU T2 S2 V0 ; Add to get correct Array spot\nLBU S1 0(T2) ; Index of option to put on Roulette\n\nLI T1 7 ; Item Bag\nBNE S1 T1 loadroulettearray ; If it's not an Item Bag, Ignore\nNOP\n; It is an Item Bag, check item slots\nJAL PlayerHasEmptyItemSlot ; -1 if no available slots\nLBU A0 29(S4) ; Player Index\n\nBLTZ V0 outcomeloop ; If it's -1, loop back\nNOP\n; It's not -1, so they have open slots\n\nloadroulettearray:\nLUI T3 hi(RouletteOutcomes_Array)\nADDIU T3 T3 lo(RouletteOutcomes_Array)\nMOVE S3 T3 ; Copy to S3\nLI S7 4 ; Loop Counter\noutcomeloop2:\nADDU T5 T3 S7 ; Add loop counter to get Array spot\nLB T4 0(T5) ; Current Outcome Index\n\nBLTZ T4 writeonroulette ; If -1, there's nothing here, store it on roulette\nNOP\n; There's an outcome written here\nBEQ T4 S1 outcomeloop ; If it's the same outcome, reroll\nNOP\n; It's not the same, check next slot\nJ outcomeloop2\nADDIU S7 S7 -1 ; Subtract from loop counter\n\nwriteonroulette:\nSB S1 0(T5) ; Write outcome on Array\nJ outcomeloop\nADDIU S0 S0 -1 ; Subtract 1 from loop counter\n\n\nsetuproulette:\nLUI T0 hi(Outcomes_Strings)\nADDIU T0 T0 lo(Outcomes_Strings)\nLBU T2 0(S3) ; Load 1st Outcome Index\nSLL T1 T2 5 ; Multiply by 20 for alignment\nLBU T2 1(S3) ; Load 2nd Outcome Index\nSLL T3 T2 5 ; Multiply by 20 for alignment\nLBU T2 2(S3) ; Load 3rd Outcome Index\nSLL T5 T2 5 ; Multiply by 20 for alignment\nADDU T5 T5 T0\nLBU T2 3(S3) ; Load 4th Outcome Index\nSLL T7 T2 5 ; Multiply by 20 for alignment\nADDU T7 T7 T0 \nLBU T2 4(S3) ; Load 5th Outcome Index\nSLL T9 T2 5 ; Multiply by 20 for alignment\nADDU T9 T9 T0 \n\nLUI A0 hi(A_Pointer_With_Enough_Space) \nADDIU A0 A0 lo(A_Pointer_With_Enough_Space) ; String destination\nLUI A1 hi(Roulette_Prompt) \nADDIU A1 A1 lo(Roulette_Prompt) ; String destination\nADDU A2 T0 T1 ; 1st Outcome String pointer\nADDU A3 T0 T3 ; 2nd Outcome String pointer\nSW T5 16(SP) ; 3rd Outcome String pointer\nSW T7 20(SP) ; 4th Outcome String pointer\nSW T9 24(SP) ; 5th Outcome String pointer\nJAL sprintf\nSW R0 28(SP) ; Terminator \n\nLUI A2 hi(Arg1_Pointer)\nADDIU A2 A2 lo(Arg1_Pointer)\nLUI A3 hi(Arg2_Pointer)\nADDIU A3 A3 lo(Arg2_Pointer)\nLUI T0 hi(Arg3_Pointer)\nADDIU T0 T0 lo(Arg3_Pointer)\nSW T0 16(SP) ; A4\nLUI T0 hi(Arg4_Pointer)\nADDIU T0 T0 lo(Arg4_Pointer)\nSW T0 20(SP) ; A5\nLUI T0 hi(Arg5_Pointer)\nADDIU T0 T0 lo(Arg5_Pointer)\nSW T0 24(SP)\n\nLUI T6 hi(Arg1_Pointer)\nADDIU T6 T6 lo(Arg1_Pointer)\nSLL T8 S6 4 ; Shift by 4 \nADDU T6 T6 T8 ; Add to get correct Array\n\nLI T1 0x21 ; A button\nSB T1 0(T6) ; Insert Roulette Highlight\n\ndisplayroulette:\nLI A0 -1 ; Character image (None)\nLUI A1 hi(A_Pointer_With_Enough_Space)\nADDIU A1 A1 lo(A_Pointer_With_Enough_Space)\nJAL ShowMessage \nNOP\nSW A0 76(SP) ; Window ID\n\n\nLI S0 0 ; Indicator of whether to move the arrow or not \nrefreshloop:\nBEQZ S0 checkinput ; If 0 don't update, just check controller input\nNOP\n; It's 1, move the arrow\n\nLUI S1 hi(Arg1_Pointer)\nADDIU S1 S1 lo(Arg1_Pointer)\nSLL T8 S6 4 ; Shift by 4 \nADDU T6 S1 T8 ; Add to get correct Array\n\nLI T1 0x24 ; Nothing\nSB T1 0(T6) ; Delete Roulette Highlight\n\nADDIU S6 S6 1 ; Add 1 to Roulette Highlight Index\nLI T0 5 \nBEQL S6 T0 updateroulettehighlight\nMOVE S6 R0 ; Make it 0 if it's 5\n; Do not change the Highlight Index\n\nupdateroulettehighlight:\nSLL T8 S6 4 ; Shift by 4 \nADDU T6 S1 T8 ; Add to get correct Array\n\nLI T1 0x21 ; A Button\nSB T1 0(T6) ; Insert Roulette Highlight\n\nLW A0 76(SP) ; Window ID\nLUI A1 hi(A_Pointer_With_Enough_Space)\nADDIU A1 A1 lo(A_Pointer_With_Enough_Space)\nLI A2 -1\nJAL 0x8005B43C\nLI A3 -1\n\nJAL PlaySound \nLI A0 0x104 ; Scrolling through Minigame Roulette Sound Index\n\ncheckinput:\nJAL PlayerIsCPU ; 1 if CPU\nLBU A0 29(S4) ; Player Index\n\nBEQZ V0 checkinputbutactually ; It's a human player, ignore\nNOP\n; It's  CPU\nJAL GetRandomByte\nNOP\n\nSLTI T5 V0 4 ; ON IF 0-3\nBNEZ T5 exitloop ; If 1, the CPU pressed A\nNOP\n; They didn't press A\nJ checkinputsleepframe ; Skip Player controller check\nNOP\n\ncheckinputbutactually:\nJAL DetectABInput\nLBU A0 29(S4) ; Player Index\n\nBNEZ V0 exitloop ; If 1, they pressed A\nNOP \n\ncheckinputsleepframe:\nJAL SleepVProcess ; Sleep 1 Frame\nNOP \nADDIU S0 S0 1 ; Add 1 to loop counter\nLI T0 2 ; check to make sure it's not 2\nBEQL S0 T0 refreshloop\nMOVE S0 R0 ; Make it 0 if it's 2\nJ refreshloop\nNOP\n\nexitloop:\nLI T0 Timeable ; 1 if Timeable, 0 if Random\n\nBNEZ T0 exitloop2 ; If it's Timeable, continue\nNOP\n; They selected Random, change the result\nLUI S1 hi(Arg1_Pointer)\nADDIU S1 S1 lo(Arg1_Pointer)\nSLL T8 S6 4 ; Shift by 4 \nADDU T6 S1 T8 ; Add to get correct Array\n\nLI T1 0x24 ; Nothing\nSB T1 0(T6) ; Delete Roulette Highlight\n\n\nLB S6 72(SP) ; Load the randomized result\n\n\nSLL T8 S6 4 ; Shift by 4 \nADDU T6 S1 T8 ; Add to get correct Array\n\nLI T1 0x21 ; A Button\nSB T1 0(T6) ; Insert Roulette Highlight\n\nLW A0 76(SP) ; Window ID\nLUI A1 hi(A_Pointer_With_Enough_Space)\nADDIU A1 A1 lo(A_Pointer_With_Enough_Space)\nLI A2 -1\nJAL 0x8005B43C\nLI A3 -1\n\nJAL PlaySound \nLI A0 0x104 ; Scrolling through Minigame Roulette Sound Index\n\nexitloop2:\nJAL PlaySound \nLI A0 0x4FD ; Scrolling through Minigame Roulette Sound Index\n\nJAL SleepProcess\nLI A0 45 ; Frames\n\nLBU A0 76(SP) ; Window ID\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n\nLUI T0 hi(RouletteOutcomes_Array)\nADDIU T0 T0 lo(RouletteOutcomes_Array)\nADDU T0 T0 S6 ; Add Index of Roulette Option\nLBU T1 0(T0) ; Load Index Value\n\nBEQZ T1 giveitem ; Outcome 0 is Get a Mushroom\nLI S5 0 ; Mushroom index\n\nLI T0 1\nBEQ T0 T1 giveitem ; Outcome 1 is Get a Reverse Mushroom\nLI S5 3 ; Reverse Mushroom index\n\nLI T0 2\nBEQ T0 T1 giveitem ; Outcome 2 is Get a Poison Mushroom\nLI S5 2 ; Poison Mushroom index\n\nLI T0 3\nBEQ T0 T1 giveitem ; Outcome 3 is Get a Warp Block\nLI S5 5 ; Warp Block index\n\nLI T0 4\nBEQ T0 T1 giveitem ; Outcome 4 is Get a Dueling Glove\nLI S5 8 ; Dueling Glove index\n\nLI T0 5\nBEQ T0 T1 giveitem ; Outcome 5 is Get a Lucky Lamp\nLI S5 9 ; Lucky Lamp index\n\nLI T0 6\nBEQ T0 T1 giveitem ; Outcome 6 is Get a Golden Mushroom\nLI S5 10 ; Golden Mushroom index\n\nLI T0 7\nBEQ T0 T1 giveitembag ; Outcome 7 is Get an Item Bag\nNOP\n\nLI T0 8\nBEQ T0 T1 givecoins ; Outcome 8 is Get 10 Coins\nLI S5 10 ; Coins\n\nLI T0 9\nBEQ T0 T1 givecoins ; Outcome 9 is Get 20 Coins\nLI S5 20 ; Coins\n\nLI T0 10\nBEQ T0 T1 givecoins ; Outcome 10 is Get 30 Coins\nLI S5 30 ; Coins\n\nLI T0 11\nBEQ T0 T1 givecoins ; Outcome 11 is Get 40 Coins\nLI S5 40 ; Coins\n\nLI T0 12\nBEQ T0 T1 givecoins ; Outcome 12 is Get 50 Coins\nLI S5 50 ; Coins\n; There is no outcome 13, it should never go through here\n\ngiveitem:\nJAL PlayerHasEmptyItemSlot ; -1 if no space\nLBU A0 29(S4) ; Player Index\n\nBLTZ V0 fullonitems ; If they're full on items, prepare prompt to discard item\nNOP\n;They have space for the item\n\nADDIU T4 S4 24 ; Item Slot #1\nADDU T4 T4 V0 ; Add to get Empty Item Slot\nSB S5 0(T4) ; Store Item\n\nJAL PlaySound\nLI A0 25 ; Got Item Sound Index\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 0 ; Happy\n\nJ exit\nNOP\n\nfullonitems:\nLBU T1 24(S4) ; Item 1 Value\nLBU T2 25(S4) ; Item 2 Value\nLBU T3 26(S4) ; Item 3 Value\n\nLUI T0 hi(Item_Strings)\nADDIU T0 T0 lo(Item_Strings)\n\nSLL T1 T1 0x0005 ; Multiply by 20 for alignment\nSLL T2 T2 0x0005 ; Multiply by 20 for alignment\nSLL T3 T3 0x0005 ; Multiply by 20 for alignment\nADDU T3 T0 T3\nSLL T4, S5, 0x0005 ; Multiply by 20 for alignment\nADDU T4 T0 T4\n\nLUI A0 hi(A_Pointer_With_Enough_Space)\nADDIU A0 A0 lo(A_Pointer_With_Enough_Space)\nLUI A1 hi(DeleteItem_Prompt)\nADDIU A1 A1 lo(DeleteItem_Prompt)\nADDU A2 T0 T1 ; Add Item Index to Item string pointer\nADDU A3 T0 T2 ; Add Item Index to Item string pointer\nSW T3 16(SP)\nSW T4 20(SP)\nJAL sprintf\nSW R0 24(SP)\n\npromptdisplay:\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nLI A0 -1 ; Character image (None)\nLUI A1 hi(A_Pointer_With_Enough_Space)\nADDIU A1 A1 lo(A_Pointer_With_Enough_Space)\nLI A2 0\nJAL ShowMessage \nLI A3 0\n\nJAL GetRandomByte ; 0-255 at V0\nNOP\nLI T0 4\nDIVU V0 T0 ; MOD 4\n\nLI A0 2\nJAL GetBasicPromptSelection\nMFHI A1 ; 0 - 3 passed\nMOVE S0 V0 ; S0 now has the chosen option index\n\nJAL 0x800EC9DC\nNOP\nJAL CloseMessage\nNOP\nJAL 0x800EC6EC\nNOP\n\n; Change the player's destination based on the choice.\nBEQL S0 R0 replaceitem\nSB S5 24(S4) ; Replace Item 1\nLI A0 1\nBEQL S0 A0 replaceitem\nSB S5 25(S4) ; Replace Item 2\nLI A0 2\nBEQL S0 A0 replaceitem\nSB S5 26(S4) ; Replace Item 3\nLI A0 3\nBEQ S0 A0 exit\nNOP\n\nview_map:\nJAL ViewBoardMap\nNOP\nJ fullonitems\nNOP\n\nreplaceitem:\nJAL PlaySound\nLI A0 25 ; Got Item Sound Index\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 0 ; Happy\n\nJ exit\nNOP\n\n\ngivecoins:\nLBU A0 29(S4) ; Player Index\nJAL AdjustPlayerCoinsGradual\nMOVE A1 S5 ; Coins\n\nLBU A0 29(S4) ; Player Index\nJAL ShowPlayerCoinChange\nMOVE A1 S5 ; Coins\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 0 ; Happy\n\nJ exit\nNOP\n\ngiveitembag:\nJAL PlayerHasEmptyItemSlot ; -1 if no space\nLBU A0 29(S4) ; Player Index\nMOVE S1 V0 \nBLTZ V0 itembagcelebrate ; exit when the player can't hold any more items\nNOP\n\nJAL GetRandomByte\nNOP\n\nLI T0 17 ; Number of items\nDIVU V0 T0 ; Divide by 17\nMFHI V0 ; 0-16 \n\nADDIU T1 S4 24 ; Item Slot #1\nADDU T1 T1 S1 ; Add to get Empty Item Slot\nSB V0 0(T1) ; Store Item\n\nJAL PlaySound\nLI A0 25 ; Got Item Sound Index\n\nJAL SleepProcess\nLI A0 20\n\nJ giveitembag\nNOP\n\nitembagcelebrate:\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 0 ; Happy\n\nJ exit\nNOP\n\n\n\nexit:\nLW S0 112(SP)\nLW S1 108(SP) \nLW S2 104(SP)\nLW S3 100(SP)\nLW S4 96(SP) \nLW S5 92(SP) \nLW S6 88(SP)\nLW S7 84(SP)\nLW FP 80(SP)\nLW RA 116(SP)\nJR RA\nADDIU SP SP 120\n\n\n\n.align 16\nArg1_Pointer:\n.byte 0x24\n\n.align 16\nArg2_Pointer:\n.byte 0x24\n\n.align 16\nArg3_Pointer:\n.byte 0x24\n\n.align 16\nArg4_Pointer:\n.byte 0x24\n\n.align 16\nArg5_Pointer:\n.byte 0x24\n\n.align 16\nRouletteOutcomes_Array:\n.byte 0xFF,0xFF,0xFF,0xFF,0xFF\n\n.align 16\n1stPlace_Array:\n.byte 0,1,2,3,4,5,8,9\n\n.align 16\n2ndPlace_Array:\n.byte 0,1,2,3,4,5,9,10\n\n.align 16\n3rdPlace_Array:\n.byte 1,3,4,5,6,7,10,11\n\n.align 16\n4thPlace_Array:\n.byte 1,3,4,5,6,7,11,12\n\n.align 16\nLuckySpace_Message:\n.ascii \"\\x06L \\x05U \\x03C \\x07K \\x04Y  \\x06S \\x05P \\x03A \\x07C \\x04E\\x00\"\n\n.align 16\nRoulette_Prompt:\n.ascii \"\\x0B\\x1A\\x1A\\x0EPress \\x21 to stop the wheel\\x0A\\x0A\"\n.ascii \"\\x1A\\x1A\\x11\\x0E\" \"%s\" \"\\x0E   \\x0E\\x0A\"\n.ascii \"\\x1A\\x1A\\x12\\x0E\" \"%s\" \"\\x0E   \\x0E\\x0A\"\n.ascii \"\\x1A\\x1A\\x13\\x0E\" \"%s\" \"\\x0E   \\x0E\\x0A\"\n.ascii \"\\x1A\\x1A\\x14\\x0E\" \"%s\" \"\\x0E   \\x0E\\x0A\"\n.ascii \"\\x1A\\x1A\\x15\\x0E\" \"%s\" \"\\x0E   \\x0E\\x0A\\x00\"\n\n.align 16\nDeleteItem_Prompt:\n.byte 0x0B ; Start the message\n.ascii \"You can\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"t carry any more items\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0x0A ; Newline\n.ascii \"Choose one you\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"re willing to throw away\"\n.byte 0x85 ; .\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.ascii \"%s\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A \n.byte 0x0C ; Start option\n.ascii \"%s\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A \n.byte 0x0C ; Start option\n.ascii \"%s\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A \n.byte 0x0C ; Start option\n.ascii \"%s\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A \n.byte 0x0C ; Start option\n.ascii \"View Map\"\n.byte 0x0D ; End option\n.byte 0\n\n\n.align 16\nA_Pointer_With_Enough_Space:\n.fill 0x1024\n\n.align 0x20\nOutcomes_Strings:\n.asciiz \"Get a Mushroom\" ; 00\n.align 0x20\n.asciiz \"Get a Reverse Mushroom\" ; 01\n.align 0x20\n.asciiz \"Get a Poison Mushroom\" ; 02\n.align 0x20\n.asciiz \"Get a Warp Block\" ; 03\n.align 0x20\n.asciiz \"Get a Dueling Glove\" ; 04\n.align 0x20\n.asciiz \"Get a Lucky Lamp\" ; 05\n.align 0x20\n.asciiz \"Get a Golden Mushroom\" ; 06\n.align 0x20\n.asciiz \"Get an Item Bag\" ; 07\n.align 0x20\n.asciiz \"Get 10 Coins\" ; 08\n.align 0x20\n.asciiz \"Get 20 Coins\" ; 9\n.align 0x20\n.asciiz \"Get 30 Coins\" ; 10\n.align 0x20\n.asciiz \"Get 40 Coins\" ; 11\n.align 0x20\n.asciiz \"Get 50 Coins\" ; 12\n\n.align 0x20\nItem_Strings:\n.asciiz \"Mushroom\" ; 00\n.align 0x20\n.asciiz \"Skeleton Key\" ; 01\n.align 0x20\n.asciiz \"Poison Mushroom\" ; 02\n.align 0x20\n.asciiz \"Reverse Mushroom\" ; 03\n.align 0x20\n.asciiz \"Cellular Shopper\" ; 04\n.align 0x20\n.asciiz \"Warp Block\" ; 05\n.align 0x20\n.asciiz \"Plunder Chest\" ; 06\n.align 0x20\n.asciiz \"Bowser Phone\" ; 07\n.align 0x20\n.asciiz \"Dueling Glove\" ; 08\n.align 0x20\n.asciiz \"Lucky Lamp\" ; 09\n.align 0x20\n.asciiz \"Golden Mushroom\" ; 10\n.align 0x20\n.asciiz \"Boo Bell\" ; 11\n.align 0x20\n.asciiz \"Boo Repellant\" ; 12\n.align 0x20\n.asciiz \"Bowser Suit\" ; 13\n.align 0x20\n.asciiz \"Magic Lamp\" ; 14\n.align 0x20\n.asciiz \"Koopa Kard\"\n.align 0x20\n.asciiz \"Barter Box\"\n.align 0x20\n.asciiz \"Lucky Charm\"\n.align 0x20\n.asciiz \"Wacky Watch\"\n.align 0x20\n.asciiz \"Item Bag\"\n\n.align 16\nDetectABInput:\nADDIU SP SP -20\nSW RA 16(SP)\n\nLUI T1 hi(p1_controller)\nADDIU T1 T1 lo(p1_controller) ; Load P1's Controller\nLI T0 0x38 ; This is the distance between each player's Controller\nMULT A0 T0 ;  Multiply Current Player Index by S3\nMFLO T0 ; Move the result to S3\n\nADDU T1 T1 T0 ; Add result to get Current Player's Controller Addr\nLBU T0 0(T1) ; Load address value into A1\n\nLUI T1 hi(0x800C9520)\nADDIU T1 T1 lo(0x800C9520) ; Load P1's Button Press Address\nLI A2 0x2 ; This is the distance between each player's Button Address\nMULT A2 T0 ;  Multiply Controller value by 2\nMFLO T0 ; Move the result to S3\n\nADDU T1 T1 T0 ; Add result to get Current Player's Y Axis\nLBU T0 0(T1) ; Load address value into A1\n\nLI T1 0x80\nBEQ T0 T1 APress\nNOP\n\nNoPress:\nLI V0 0\nJ DetectABInputexit\nNOP\n\nAPress:\nLI V0 1\nJ DetectABInputexit\nNOP\n\nDetectABInputexit:\nLW RA 16(SP)\nJR RA\nADDIU SP SP 20\n\n; A0 = Player's Index\n; A1 = 0 = Happy / 1 = Sad Index\n.align 16\nSetBoardPlayerAnimationWithSound:\nADDIU SP SP -80\nSW RA 76(SP)\nSW A0 72(SP)\nSW A1 68(SP)\n\nJAL GetPlayerStruct ; Struct Pointer at V0\nNOP\n\nLBU T0 3(V0) ; Character Index\n\nBNEZ A1 sad\nNOP\n\nhappy:\nJAL PlaySound\nADDIU A0 T0 0x275 ; Mario's Happy Voice Index + Current Character Index\n\nLW A0 72(SP) ; Player Index\nLI A1 5 ; Happy Animation\nJAL SetBoardPlayerAnimation\nLI A2 0 ; Don't loop\n\nJAL SleepProcess\nLI A0 30 ; Frames\n\nJ SetBoardAnimationWithSound_exit\nNOP\n\nsad:\nJAL PlaySound\nADDIU A0 T0 0x287 ; Mario's Sad Voice Index + Current Character Index\n\nLW A0 72(SP) ; Player Index\nLI A1 3 ; Despair Animation\nJAL SetBoardPlayerAnimation\nLI A2 0 ; Don't loop\n\nJAL SleepProcess\nLI A0 60 ; Frames\n\nSetBoardAnimationWithSound_exit:\nLW A0 72(SP) ; Player Index\nLI A1 -1 ; Despair Animation\nJAL SetBoardPlayerAnimation\nLI A2 2 ; Loop\n\nLW A1 68(SP)\nLW A0 72(SP)\nLW RA 76(SP)\nJR RA\nADDIU SP SP 80"},"Random Warp (MP3)":{"language":0,"code":"; NAME: Random Warp (MP3)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: +Number|SpaceNumber\n; PARAM: Space|SpaceToFace\n; PARAM: Space[]|Destinations\n; PARAM: Space[]|Dest1Forward\n; PARAM: Space[]|Dest1Behind\n; PARAM: Space[]|Dest2Behind\n\nADDIU SP SP -64\nSW RA 60(SP)\nSW S0 56(SP)\nSW S1 52(SP)\nSW S2 48(SP)\nSW S3 44(SP)\n\n; S0 = Current Player Struct\n; S1 = Prompt Choice / Reverse Flag\n; S2 = Price / Destination Array\n; S3 = Randomised Destination\n\n;===Hide Dice Roll===\nJAL GetPlayerStruct\nLI A0 -1 ; Get current player struct at V0\nMOVE S0 V0 ; Copy V0 to S0 little tool that will help us with later code\n\n\n\n;===Fade-out and Sound===\nLI A0 1 ; Assigns circle fade-out\nJAL InitFadeOut ; Fade to black\nLI A1 16 ; Assigns 16 frames of fade-out\n\nJAL SleepProcess\nLI A0 17 ; Wait 17 frames for fade-out\n\nJAL PlaySound\nLI A0 0x107 ; Warp Block sound\n\nJAL SleepProcess\nLI A0 20 ; Wait 20 frames for sound\n\n;===Determine Destination===\nLUI S1 0x800C ; 0x800C0000\nORI S1 S1 0xD096 ; 0x800CD096, Warp Dest Address\nADDIU S1 S1 SpaceNumber ; Add Space Number (0-10) to get its address\nLBU T1 0(S1) ; Load Warp Dest value into T1\nBNEZ T1 ApplyDestination ; If T1 =/= 0, apply destination\nADDIU S3 T1 -1 ; Subtract 1 for destination array\n\nJAL GetRandomByte ; Get random byte (0-255) at V0\nNOP\nLI T0 Destinations_length ; Load no. of destinations into T0\nDIVU V0 T0 ; Divide V0 by T0\nMFHI S3 ; Move the remainder into S3\nADDIU T1 S3 1 ; Add 1 for Warp Dest value\nSB T1 0(S1) ; Store Warp Dest value\n\nApplyDestination:\nLUI S2 hi(DestinationArray)\nADDIU S2 S2 lo(DestinationArray)\nADDU S2 S2 S3 ; Add random number to DestinationArray\n\n\n;===Set Destination===\nLUI T0 hi(DestChArray)\nADDIU T0 T0 lo(DestChArray) ; Load DestinationChainArray into T0\nADDU T0 T0 S3 ; Add to get randomised destination chain\nLUI T1 hi(DestChSpArray)\nADDIU T1 T1 lo(DestChSpArray) ; Load DestinationChainSpaceArray into T1\nADDU T1 T1 S3 ; Add to get randomised destination chain space\n\nLI A0 -1 ; Set current player\nLBU A1 0(T0) ; Pass Destination chain index on A1\nJAL SetPlayerOntoChain\nLBU A2 0(T1) ; Pass Destination chain space index on A2\n\n;===Check Reverse Status for Next===\nLBU T0 0x17(S0) ; Load status flags from offset of player struct\nANDI S1 T0 1 ; AND with 1 (going backwards)\nBNEZ S1 SetReverseNext ; If S1 = 1, set reverse next\nNOP\n; else, set forward next\n\n;===Set Forward Next===\nLUI T0 hi(Dest1FChArray)\nADDIU T0 T0 lo(Dest1FChArray) ; Load Dest1ForwardChainArray into T0\nADDU T0 T0 S3 ; Add to get randomised destination 1 forward chain\nLUI T1 hi(Dest1FChSpArray)\nADDIU T1 T1 lo(Dest1FChSpArray) ; Load Dest1ForwardChainSpaceArray into T1\nJ SetNext\nADDU T1 T1 S3 ; Add to get randomised destination 1 forward chain space\n\n;===Set Reverse Next===\nSetReverseNext:\nLUI T0 hi(Dest1BChArray)\nADDIU T0 T0 lo(Dest1BChArray) ; Load Dest1BehindChainArray into T0\nADDU T0 T0 S3 ; Add to get randomised destination 1 behind chain\nLUI T1 hi(Dest1BChSpArray)\nADDIU T1 T1 lo(Dest1BChSpArray) ; Load Dest1BehindChainSpaceArray into T1\nADDU T1 T1 S3 ; Add to get randomised destination 1 behind chain space\n\n;===Set Next===\nSetNext:\nLI A0 -1 ; Set current player\nLBU A1 0(T0) ; Pass next chain index on A1\nJAL SetNextChainAndSpace\nLBU A2 0(T1) ; Pass next chain space index on A2\n\nBNEZ S1 SetReversePrev ; If S1 = 1, set reverse prev\nNOP\n; else, set forward prev\n\n;===Set Forward Prev===\nLUI T0 hi(Dest1BChArray)\nADDIU T0 T0 lo(Dest1BChArray) ; Load Dest1BehindChainArray into T0\nADDU T0 T0 S3 ; Add to get randomised destination 1 behind chain\nLUI T1 hi(Dest1BChSpArray)\nADDIU T1 T1 lo(Dest1BChSpArray) ; Load Dest1BehindChainSpaceArray into T1\nJ SetPrev\nADDU T1 T1 S3 ; Add to get randomised destination 1 behind chain space\n\n;===Set Reverse Prev===\nSetReversePrev:\nLUI T0 hi(Dest2BChArray)\nADDIU T0 T0 lo(Dest2BChArray) ; Load Dest2BehindChainArray into T0\nADDU T0 T0 S3 ; Add to get randomised destination 2 behind chain\nLUI T1 hi(Dest2BChSpArray)\nADDIU T1 T1 lo(Dest2BChSpArray) ; Load Dest2BehindChainSpaceArray into T1\nADDU T1 T1 S3 ; Add to get randomised destination 2 behind chain space\n\n;===Set Prev===\nSetPrev:\nLI A0 -1 ; Set current player\nLBU A1 0(T0) ; Pass prev chain index on A1\nJAL SetPrevChainAndSpace\nLBU A2 0(T1) ; Pass prev chain space index on A2\n\n;===Set Player Coords===\nJAL GetSpaceData\nLBU A0 0(S2) ; Get Destination space data at V0\nLW T0 8(V0) ; Load space x coords into T0\nLW T1 16(V0) ; Load space y coords into T1\n\nLI T2 0x41200000 ; Float value for 10\nMTC1 T2 F2 ; Move float value to F2\nMTC1 T1 F4 ; Move space y coords float to F4\nADD.S F6 F2 F4 ; Add the floats for maximum floatiness (TM of Airsola)\nMFC1 T1 F6 ; Move total float to T1\n\nLW T2 0x24(S0) ; Load coords pointer from offset of player struct\nSW T0 12(T2) ; Store space x coords into player coords\nSW T1 20(T2) ; Store space y coords into player coords\n\n;===Finish Warp===\nLI A0 -1 ; Set current player\nLI A1 1 ; Rotate in 1 frame\nJAL RotatePlayerModel\nLBU A2 0(S2) ; Face Destination space\n\nLI A0 1 ; Assigns circle fade-in\nJAL InitFadeIn ; Fade from black\nLI A1 16 ; Assigns 16 frames of fade-in\n\nJAL SleepProcess\nLI A0 17 ; Wait 17 frames for fade-in\n\n;===Message and Turn Flag ON===\nLI A0 0 ; Display message\nLUI A1 hi(WarpedMessage)\nADDIU A1 A1 lo(WarpedMessage) ; Display WarpedMessage\nJAL CallMessage\nLI A2 0 ; No string\n\nJ exit\nNOP\n\nexit:\nLW RA 60(SP)\nLW S0 56(SP)\nLW S1 52(SP)\nLW S2 48(SP)\nLW S3 44(SP)\nJR RA\nADDIU SP SP 64\n\n;===Mini Func to Call Message===\n.align 4\nCallMessage:\nADDIU SP SP -40\nSW RA 36(SP)\nSW S0 32(SP)\n\n; A0 / S0 = Message or Prompt\n; A1 = Message Address\n; A2 = String #1\n\nMOVE S0 A0 ; Copy A0 to S0\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nLI A0 -1 ; Character image (-1 for none, 0x3A for Blooper)\n; Visit the following link to get the full list of Character Images\n; https://github.com/PartyPlanner64/PartyPlanner64/wiki/Displaying-Messages\n; If you use a character image, check the bottom of the code\n; Pass message address on A1\n; Pass string #1 on A2\nJAL ShowMessage\nLI A3 0\n\nBNEZ S0 CallMessageExit ; If displaying a prompt, exit\nNOP\n\n; Obligatory message box closing/cleanup calls.\nJAL 0x800EC9DC\nNOP\nJAL CloseMessage\nNOP\nJAL 0x800EC6EC\nNOP\n\nCallMessageExit:\nLW RA 36(SP)\nLW S0 32(SP)\nJR RA\nADDIU SP SP 40\n\n;===Destination Arrays===\n.align 8\nDestinationArray:\n.byte Destinations ; Destination space indexes\n\n.align 8\nDestChArray:\n.byte Destinations_chain_indices ; Destination chain indexes\n\n.align 8\nDestChSpArray:\n.byte Destinations_chain_space_indices ; Destination chain space indexes\n\n.align 8\nDest1FChArray:\n.byte Dest1Forward_chain_indices ; Destination 1 forward chain indexes\n\n.align 8\nDest1FChSpArray:\n.byte Dest1Forward_chain_space_indices ; Destination 1 forward chain space indexes\n\n.align 8\nDest1BChArray:\n.byte Dest1Behind_chain_indices ; Destination 1 behind chain indexes\n\n.align 8\nDest1BChSpArray:\n.byte Dest1Behind_chain_space_indices ; Destination 1 behind chain space indexes\n\n.align 8\nDest2BChArray:\n.byte Dest2Behind_chain_indices ; Destination 2 behind chain indexes\n\n.align 8\nDest2BChSpArray:\n.byte Dest2Behind_chain_space_indices ; Destination 2 behind chain space indexes\n\n;===Message Text===\n.align 16\nWarpedMessage:\n.ascii \"You\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"ve been\"\n.byte 0x04 ; Purple font\n.ascii \" warped\"\n.byte 0x08 ; White font\n.ascii \" to another space\"\n.byte 0xC2 ; Exclamation mark (!)\n.byte 0xFF,0 ; Wait, press A to confirm\n\n.align 16\nNoMessage:\n.byte 0x1A,0x1A,0x1A,0x1A ; Padding for character image\n.ascii \"Well\"\n.byte 0x82 ; Comma (,)\n.ascii \" if you ever want to\"\n.byte 0x04 ; Purple font\n.ascii \" warp\"\n.byte 0x08,0x82 ; White font, Comma (,)\n.byte 0x0A,0x1A,0x1A,0x1A,0x1A ; New line + character image padding\n.ascii \"you know where to go\"\n.byte 0xC2 ; Exclamation mark (!)\n.byte 0xFF,0 ; Wait, press A to confirm\n\n\n; Here's a list of the most common bytes you'll need\n; .byte 0x01 ; Black Font\n; .byte 0x03 ; Red Font\n; .byte 0x04 ; Purple Font\n; .byte 0x05 ; Green Font\n; .byte 0x06 ; Blue font\n; .byte 0x07 ; Yellow Font\n; .byte 0x08 ; White Font\n; .byte 0x85 ; Period (.)\n; .byte 0xC2 ; Exclamation Mark (!)\n; .byte 0xC3 ; Question Mark (?)\n; .byte 0x82 ; Comma (,)\n; .byte 0x0A ; New line (writes below)\n; .byte 0x5C ; Apostrophe (')\n; .byte 0x29 ; Coin icon\n; .byte 0x3D ; - (minus)\n; .byte 0x3E ; x (multiply)\n; .byte 0xFF,0 ; FF=Pause\n\n; If your message has an image, use this at the start of each line\n; .byte 0x1A,0x1A,0x1A,0x1A ; Padding for character image"},"Space Warp v3 (with purple) (Airsola™)":{"language":0,"code":"; NAME: Space Warp v3 (with purple) (Airsola™)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: Space|Destination\n; PARAM: Space|PreviousSpace\n; PARAM: Space|NextSpace\n\n;====================================================================\n; IMPORTANT: This code is specifically designed to warp a player who\n;            lands on a Space into a Space of the same type.\n;            This is due to limitations on how warps execute.\n;\n;            Destination is where the player will warp to.\n;            PreviousSpace is the space the player will step into if\n;            they go in reverse after the warp.\n;            NextSpace is the next space that the player will step\n;            into if they roll normally.\n;====================================================================\n\nADDIU SP SP -80\nSW RA 76(SP)\nSW S4 72(SP) ; Current Player's Index\nSW S5 68(SP) ; Current Player's Struct\n\n;FADE-OUT START------------------------------------------------------\nLI A0 4 ; Happening Space Fade-out \nJAL InitFadeOut\nLI A1 16 ; Fade Out for 16 Frames\n\nJAL SleepProcess\nLI A0 16 ; Sleep 16 Frames\n;FADE-OUT END--------------------------------------------------------\n\nJAL PlaySadVoice ; Plays Current Player Character's Scream\nNOP\n\nJAL SleepVProcess\nNOP\n\n;WARP START----------------------------------------------------------\nJAL GetCurrentPlayerIndex ; Player Index located at V0\nNOP\nMOVE S4 V0 ; Copy Current Player's Index to S4\n\nMOVE A0 S4 ; Assigns Current Player Index to A0\nLI A1 Destination_chain_index ; Assigns Chain Index to A1\nJAL SetPlayerOntoChain\nLI A2 Destination_chain_space_index ; Assigns Space Index to A2\n\nMOVE A0 S4 ; Assigns Current Player Index to A0\nLI A1 PreviousSpace_chain_index ; Assigns Chain Index to A1\nJAL SetPrevChainAndSpace\nLI A2 PreviousSpace_chain_space_index ; Assigns Space Index to A2\n\nMOVE A0 S4 ; Assigns Current Player Index to A0\nLI A1 NextSpace_chain_index ; Assigns Chain Index to A1\nJAL SetNextChainAndSpace\nLI A2 NextSpace_chain_space_index ; Assigns Space Index to A2\n\nJAL GetPlayerStruct ; Player Struct at V0\nLI A0 -1 ; Current Player\nMOVE S5 V0\n\nLI A0 Destination_chain_index\nJAL GetAbsSpaceIndexFromChainSpaceIndex ; Gets True Space Index at V0\nLI A1 Destination_chain_space_index\n\nJAL GetSpaceData ; Pointer to Space Data at V0\nMOVE A0 V0 ; True Space Index\n\nADDIU V0 V0 8 ; This gets the X pos of the space\nLW V1 0(V0) \nMOVE T0 V1 ; Copy to T0\n\nADDIU V0 V0 8 ; This gets the Y pos of the space\nLW V1 0(V0)\nMOVE T1 V1 ; Copy to T1\n\nLI T2 0x41200000 ; Float value for 10?\nMTC1 T2 F0 ; Move Float to F1?\nMTC1 T1 F1 ; Move Space Y Pos float to F1?\nADD.S F0 F0 F1 ; Add the floats for maximum floatiness\nMFC1 T1 F0 ; Move total to T1?\n\nLW V1 0x24(S5) ; Load Offset 24 into V1\nADDIU V1 V1 0xC ; Add 0xC to get current player's X Coords\nSW T0 0(V1) \n\nADDIU V1 V1 8 ; This should load current player's Y Coords\nSW T1 0(V1)\n;WARP END------------------------------------------------------------\n\n;SOUND START---------------------------------------------------------\n; Use the Audio Player on PP64 to find other sound indexes to use\n; Then use the following link to know what Sound Index you need\n; https://pastebin.com/H1jxNFqr\nJAL PlaySound \nLI A0 0x107 ; Warp Block Sound Index\n\nJAL SleepProcess \nLI A0 15 ; Number of frames the game waits for sound to finish\n\nJAL PlaySound \nLI A0 0x107 ; Warp Block Sound Index\n\nJAL SleepProcess \nLI A0 15 ; Number of frames the game waits for sound to finish\n;SOUND END-----------------------------------------------------------\n\n;FADE-IN START-------------------------------------------------------\nLI A0 4 ; Happening Space Fade-in\nJAL InitFadeIn\nLI A1 16 ; 16 Frames of Fade-in\n\nJAL SleepProcess\nLI A0 31 ; Sleep for 31 Frames\n;FADE-IN END---------------------------------------------------------\n\n;MESSAGE DISPLAY START-----------------------------------------------\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nLI A0 -1 ; Character image (-1 for none)\n; Visit the following link to get the full list of Character Images\n; https://github.com/PartyPlanner64/PartyPlanner64/wiki/Displaying-Messages\n; If you use a character image, check the bottom of the code\nLUI A1 hi(Message)\nADDIU A1 A1 lo(Message) ; This loads \"Message\" into the Textbox\nLI A2 0x0\nJAL ShowMessage\nLI A3 0x0\n\nJAL CloseMessage\nNOP\n;MESSAGE DISPLAY END-------------------------------------------------\n\n\n\nLW RA 76(SP)\nLW S4 72(SP)\nLW S5 68(SP)\nJR RA\nADDIU SP SP 80\n\n; .ascii is used to output Text. Anything surrounded by \" will be \n; displayed in the message (Special characters are not included).\n; For those, you must use .byte and the respective byte value.\n; Bytes that change text color will change the color of everything\n; that is written after it, until another color is used.\n\n.align 16\nMessage:\n.ascii \"You\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"ve been\"\n.byte 0x04 ; Purple font\n.ascii \" warped\"\n.byte 0x08 ; White font\n.ascii \" to another space\"\n.byte 0xC2 ; Exclamation mark (!)\n.byte 0xFF,0 ; Wait, press A to confirm\n\n; Here's a list of the most common bytes you'll need\n; .byte 0x01 ; Black Font\n; .byte 0x03 ; Red Font\n; .byte 0x04 ; Purple Font\n; .byte 0x05 ; Green Font\n; .byte 0x06 ; Blue font\n; .byte 0x07 ; Yellow Font\n; .byte 0x08 ; White Font\n; .byte 0x85 ; Period (.)\n; .byte 0xC2 ; Exclamation Mark (!)\n; .byte 0xC3 ; Question Mark (?)\n; .byte 0x82 ; Comma (,)\n; .byte 0x0A ; New Line (Writes Below)\n; .byte 0x5C ; Apostrophe (')\n; .byte 0x29 ; Coin icon\n; .byte 0x3D ; - (minus)\n; .byte 0x3E ; x (multiply)\n; .byte 0xFF,0 ; FF=Pause\n\n; If your message has an image, use this at the start of each line\n; .byte 0x1A,0x1A,0x1A,0x1A ; Padding for picture\n\n.align 4\nPlaySadVoice:\nADDIU SP SP -32\nSW RA 28(SP)\n\nJAL GetCurrentPlayerIndex\nNOP \n\nLUI T1 hi(p1_char)\nADDIU T1 T1 lo(p1_char) ; Load Player 1's Character address\nLI T0 0x38 ; Distance between each player's Character address\nMULT V0 T0 ;  Multiply Current Player Index by T0\nMFLO T0 ; Move the result to T0\n\nADDU T1 T1 T0 ; Add result to get current Player's Character address\nLBU T0 0(T1) ; Load address value into T0\n\nADDIU V0 T0 0x287 ; Mario's Sad Voice Index\n\nJAL PlaySound\nMOVE A0 V0 ; Pass the Voice Index to A0\n\nLW RA 28(SP)\nJR RA\nADDIU SP SP 32"},"Bad Luck Space Final":{"language":0,"code":"; NAME: Bad Luck Space Final\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: Boolean|Timeable\n\nADDIU SP SP -120\nSW RA 116(SP)\nSW S0 112(SP)\nSW S1 108(SP) \nSW S2 104(SP)\nSW S3 100(SP)\nSW S4 96(SP) \nSW S5 92(SP) \nSW S6 88(SP)\nSW S7 84(SP)\nSW FP 80(SP)\n\n\n; Set Timeable to TRUE so that the wheel can be timed\n; Set Timeable to FALSE so that the result is random\n\nJAL PlayMusic\nLI A0 113 ; Game Guy Lose\n\nJAL PlaySound\nLI A0 0x4CF ; Crowd Surprised\n\nLUI T0 hi(total_turns)\nADDIU T0 T0 lo(total_turns)\nLBU T1 0(T0) ; Total Turns\n\nLUI T0 hi(current_turn)\nADDIU T0 T0 lo(current_turn)\nLBU T6 0(T0) ; Current Turn \n\nSUBU T3 T1 T6 ; Subtract\nSLTI T2 T3 5 ; ON IF 0-4 Last 5 Turns\nBEQL T2 R0 badluckspacemessagesetup\nLI FP 0 ; Bad Luck Space Event Flag\n; Extra Bad Luck Space \nLI FP 1 ; Extra Bad Lucl Space Event Flag\n\nLUI A1 hi(ExtraBadLuckSpace_Message)\nADDIU A1 A1 lo(ExtraBadLuckSpace_Message)\nJ badluckspacemessage\nNOP\n\nbadluckspacemessagesetup:\nLUI A1 hi(BadLuckSpace_Message)\nADDIU A1 A1 lo(BadLuckSpace_Message)\nbadluckspacemessage:\nSW R0 16(SP) ; Parameter 3\nSW R0 20(SP) ; Parameter 4\nSW R0 24(SP) ; Parameter 5\nLI A0 -1 ; Character image (None)\nLI A2 0 ; Parameter 1\nJAL ShowMessage\nLI A3 0 ; Parameter 2\n\nJAL SleepProcess\nLI A0 60\n\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP ; These 3 close the message\n\nJAL PlayMusic\nLI A0 33 ; Foolish Bowser Music\n\nJAL GetPlayerStruct\nLI A0 -1 \nMOVE S4 V0\n\nJAL GetPlayerPlacement ; 0-3 at V0\nLBU A0 29(S4) ; Player Index\n\nSLL V0 V0 4 ; Shift bit by 4 \n\nLUI S2 hi(EBL1stPlace_Array)\nADDIU S2 S2 lo(EBL1stPlace_Array)\n\nBNEZ FP getroulettearray ; Take the Extra Bad Luck Array\nNOP\n; Take regular array\n\nLUI S2 hi(1stPlace_Array)\nADDIU S2 S2 lo(1stPlace_Array)\ngetroulettearray:\nADDU S2 S2 V0 ; Add to get correct Array\n\nLUI T3 hi(RouletteOutcomes_Array)\nADDIU T3 T3 lo(RouletteOutcomes_Array)\nLI T0 0xFF ; No Chest Index\nSB T0 0(T3)\nSB T0 1(T3)\nSB T0 2(T3)\nSB T0 3(T3) ; Make all addresses -1\nSB T0 4(T3) \n\nJAL GetRandomByte\nNOP\n\nLI T0 5\nDIVU V0 T0 ; Divide by 5\nMFHI S6 ; 0-4, where the Roulette highlight will begin\nSB S6 72(SP) ; Store this value in case they select Random\n\nLI S0 4 ; Loop Counter\noutcomeloop:\nBLTZ S0 setuproulette ; exit once all roulette slots are filled\nNOP\n\nJAL GetRandomByte ; 0-255 at V0\nNOP\n\nBNEZL FP outcomeloopextraornormal\nLI T0 6 ; 6 Outcomes for Extra Bad Luck Event\n\nLI T0 5 ; 5 Outcomes Bad Luck Event\noutcomeloopextraornormal:\nDIVU V0 T0\nMFHI V0 ; 0-4\nADDU T2 S2 V0 ; Add to get correct Array spot\nLBU S1 0(T2) ; Index of option to put on Roulette\n\nloadroulettearray:\nLUI T3 hi(RouletteOutcomes_Array)\nADDIU T3 T3 lo(RouletteOutcomes_Array)\nMOVE S3 T3 ; Copy to S3\nLI S7 4 ; Loop Counter\noutcomeloop2:\nADDU T5 T3 S7 ; Add loop counter to get Array spot\nLB T4 0(T5) ; Current Outcome Index\n\nBLTZ T4 writeonroulette ; If -1, there's nothing here, store it on roulette\nNOP\n; There's an outcome written here\nBEQ T4 S1 outcomeloop ; If it's the same outcome, reroll\nNOP\n; It's not the same, check next slot\nJ outcomeloop2\nADDIU S7 S7 -1 ; Subtract from loop counter\n\nwriteonroulette:\nSB S1 0(T5) ; Write outcome on Array\nJ outcomeloop\nADDIU S0 S0 -1 ; Subtract 1 from loop counter\n\n\nsetuproulette:\nLUI T0 hi(Outcomes_Strings)\nADDIU T0 T0 lo(Outcomes_Strings)\nLBU T2 0(S3) ; Load 1st Outcome Index\nSLL T1 T2 5 ; Multiply by 20 for alignment\nLBU T2 1(S3) ; Load 2nd Outcome Index\nSLL T3 T2 5 ; Multiply by 20 for alignment\nLBU T2 2(S3) ; Load 3rd Outcome Index\nSLL T5 T2 5 ; Multiply by 20 for alignment\nADDU T5 T5 T0\nLBU T2 3(S3) ; Load 4th Outcome Index\nSLL T7 T2 5 ; Multiply by 20 for alignment\nADDU T7 T7 T0 \nLBU T2 4(S3) ; Load 5th Outcome Index\nSLL T9 T2 5 ; Multiply by 20 for alignment\nADDU T9 T9 T0 \n\nLUI A0 hi(A_Pointer_With_Enough_Space) \nADDIU A0 A0 lo(A_Pointer_With_Enough_Space) ; String destination\nLUI A1 hi(Roulette_Prompt) \nADDIU A1 A1 lo(Roulette_Prompt) ; String destination\nADDU A2 T0 T1 ; 1st Outcome String pointer\nADDU A3 T0 T3 ; 2nd Outcome String pointer\nSW T5 16(SP) ; 3rd Outcome String pointer\nSW T7 20(SP) ; 4th Outcome String pointer\nSW T9 24(SP) ; 5th Outcome String pointer\nJAL sprintf\nSW R0 28(SP) ; Terminator \n\nLUI A2 hi(Arg1_Pointer)\nADDIU A2 A2 lo(Arg1_Pointer)\nLUI A3 hi(Arg2_Pointer)\nADDIU A3 A3 lo(Arg2_Pointer)\nLUI T0 hi(Arg3_Pointer)\nADDIU T0 T0 lo(Arg3_Pointer)\nSW T0 16(SP) ; A4\nLUI T0 hi(Arg4_Pointer)\nADDIU T0 T0 lo(Arg4_Pointer)\nSW T0 20(SP) ; A5\nLUI T0 hi(Arg5_Pointer)\nADDIU T0 T0 lo(Arg5_Pointer)\nSW T0 24(SP)\n\nLUI T6 hi(Arg1_Pointer)\nADDIU T6 T6 lo(Arg1_Pointer)\nSLL T8 S6 4 ; Shift by 4 \nADDU T6 T6 T8 ; Add to get correct Array\n\nLI T1 0x21 ; A button\nSB T1 0(T6) ; Insert Roulette Highlight\n\ndisplayroulette:\nLI A0 -1 ; Character image (None)\nLUI A1 hi(A_Pointer_With_Enough_Space)\nADDIU A1 A1 lo(A_Pointer_With_Enough_Space)\nJAL ShowMessage \nNOP\nSW A0 76(SP) ; Window ID\n\n\nLI S0 0 ; Indicator of whether to move the arrow or not \nrefreshloop:\nBEQZ S0 checkinput ; If 0 don't update, just check controller input\nNOP\n; It's 1, move the arrow\n\nLUI S1 hi(Arg1_Pointer)\nADDIU S1 S1 lo(Arg1_Pointer)\nSLL T8 S6 4 ; Shift by 4 \nADDU T6 S1 T8 ; Add to get correct Array\n\nLI T1 0x24 ; Nothing\nSB T1 0(T6) ; Delete Roulette Highlight\n\nADDIU S6 S6 1 ; Add 1 to Roulette Highlight Index\nLI T0 5 \nBEQL S6 T0 updateroulettehighlight\nMOVE S6 R0 ; Make it 0 if it's 5\n; Do not change the Highlight Index\n\nupdateroulettehighlight:\nSLL T8 S6 4 ; Shift by 4 \nADDU T6 S1 T8 ; Add to get correct Array\n\nLI T1 0x21 ; A Button\nSB T1 0(T6) ; Insert Roulette Highlight\n\nLW A0 76(SP) ; Window ID\nLUI A1 hi(A_Pointer_With_Enough_Space)\nADDIU A1 A1 lo(A_Pointer_With_Enough_Space)\nLI A2 -1\nJAL 0x8005B43C\nLI A3 -1\n\nJAL PlaySound \nLI A0 0x104 ; Scrolling through Minigame Roulette Sound Index\n\ncheckinput:\nJAL PlayerIsCPU ; 1 if CPU\nLBU A0 29(S4) ; Player Index\n\nBEQZ V0 checkinputbutactually ; It's a human player, ignore\nNOP\n; It's  CPU\nJAL GetRandomByte\nNOP\n\nSLTI T5 V0 4 ; ON IF 0-3\nBNEZ T5 exitloop ; If 1, the CPU pressed A\nNOP\n; They didn't press A\nJ checkinputsleepframe ; Skip Player controller check\nNOP\n\ncheckinputbutactually:\nJAL DetectABInput\nLBU A0 29(S4) ; Player Index\n\nBNEZ V0 exitloop ; If 1, they pressed A\nNOP \n\ncheckinputsleepframe:\nJAL SleepVProcess ; Sleep 1 Frame\nNOP \nADDIU S0 S0 1 ; Add 1 to loop counter\nLI T0 2 ; check to make sure it's not 2\nBEQL S0 T0 refreshloop\nMOVE S0 R0 ; Make it 0 if it's 2\nJ refreshloop\nNOP\n\nexitloop:\nLI T0 Timeable ; 1 if Timeable, 0 if Random\n\nBNEZ T0 exitloop2 ; If it's Timeable, continue\nNOP\n; They selected Random, change the result\nLUI S1 hi(Arg1_Pointer)\nADDIU S1 S1 lo(Arg1_Pointer)\nSLL T8 S6 4 ; Shift by 4 \nADDU T6 S1 T8 ; Add to get correct Array\n\nLI T1 0x24 ; Nothing\nSB T1 0(T6) ; Delete Roulette Highlight\n\n\nLB S6 72(SP) ; Load the randomized result\n\n\nSLL T8 S6 4 ; Shift by 4 \nADDU T6 S1 T8 ; Add to get correct Array\n\nLI T1 0x21 ; A Button\nSB T1 0(T6) ; Insert Roulette Highlight\n\nLW A0 76(SP) ; Window ID\nLUI A1 hi(A_Pointer_With_Enough_Space)\nADDIU A1 A1 lo(A_Pointer_With_Enough_Space)\nLI A2 -1\nJAL 0x8005B43C\nLI A3 -1\n\nJAL PlaySound \nLI A0 0x104 ; Scrolling through Minigame Roulette Sound Index\n\nexitloop2:\nJAL PlaySound \nLI A0 0x4FD ; Scrolling through Minigame Roulette Sound Index\n\nJAL SleepProcess\nLI A0 45 ; Frames\n\nLBU A0 76(SP) ; Window ID\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n\nLUI T0 hi(RouletteOutcomes_Array)\nADDIU T0 T0 lo(RouletteOutcomes_Array)\nADDU T0 T0 S6 ; Add Index of Roulette Option\nLBU T1 0(T0) ; Load Index Value\n\nBEQZ T1 losetwostars ; Outcome 0 is Lose 2 Stars\nNOP\n\nLI T0 1\nBEQ T0 T1 givetwostars ; Outcome 1 is Give 2 Stars to 4th Place\nNOP\n\nLI T0 2\nBEQ T0 T1 losecoins ; Outcome 2 is Lose 30 Coins\nLI S5 30 ; Coins\n\nLI T0 3\nBEQ T0 T1 losecoins ; Outcome 3 is Lose 40 Coins\nLI S5 40 ; Coins\n\nLI T0 4\nBEQ T0 T1 losecoins ; Outcome 4 is Lose 50 Coins\nLI S5 50 ; Coins\n\nLI T0 5\nBEQ T0 T1 give4th ; Outcome 5 is Give 20 coins to 4th Place \nLI S5 20 ; Coins\n\nLI T0 6\nBEQ T0 T1 losecoins ; Outcome 6 is Lose 60 Coins\nLI S5 60 ; Coins\n\nLI T0 7\nBEQ T0 T1 starmoves ; Outcome 7 is The Star Moves\nNOP\n\nLI T0 8\nBEQ T0 T1 loseitem ; Outcome 8 is Lose 1 Item\nNOP\n\nLI T0 9\nBEQ T0 T1 losecoins ; Outcome 9 is Lose 30 Coins\nLI S5 30 ; Coins\n\nLI T0 10\nBEQ T0 T1 givecoins ; Outcome 10 is Give 60 coins to rivals\nLI S5 60 ; Coins\n\nLI T0 11\nBEQ T0 T1 loseall ; Outcome 11 is Lose all of your Coins\nNOP\n\nLI T0 12\nBEQ T0 T1 getcoins ; Outcome 12 is Get 1 Coins\nLI S5 1 ; Coins\n\nLI T0 13\nBEQ T0 T1 losehalf ; Outcome 13 is Lose half your Coins\nNOP\n\nLI T0 14\nBEQ T0 T1 losestar ; Outcome 14 is Lose 1 Star\nNOP\n\nLI T0 15\nBEQ T0 T1 givestar ; Outcome 15 is Give 1 Star to 4th Place\nNOP\n; There is no outcome 16, it should never go through here\n\nlosecoins:\nLBU A0 29(S4) ; Player Index\nJAL AdjustPlayerCoinsGradual\nSUBU A1 R0 S5 ; Coins to lose\n\nLBU A0 29(S4) ; Player Index\nJAL ShowPlayerCoinChange\nSUBU A1 R0 S5 ; Coins to lose\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJ exit\nNOP\n\ngive4th:\nLI S0 99 ; Loop Counter\nLI S3 3 ; 4th Place\ngive4thloop:\nBLTZL S0 give4thresetloop ; Player in this placing was never found, try another placing\nNOP\n\nJAL GetRandomByte\nNOP\nLI T0 4 ; Players\nDIVU V0 T0 \nMFHI V0 ; 0-3 \n\nLBU T1 29(S4) ; Current Player Index\nBEQ V0 T1 give4thloop ; If it's the current player, roll a new number\nNOP\nMOVE S7 V0\n\nJAL GetPlayerPlacement ; Placement at V0 (0-3)\nMOVE A0 S7 ; Chosen Player Index\n\nBNEL V0 S3 give4thloop\nADDIU S0 S0 -1 ; Subtract 1 to try to find another player\n; They're in the correct placing\n\nLBU A0 29(S4) ; Player Index\nJAL PlayerHasCoins\nMOVE A1 S5 ; Coins\n\nBEQL V0 R0 give4thgivecoins ; Give them all player's coins if they don't have enough\nLHU S5 10(S4) ; Current Player's Coins\n; They have enough coins\n\ngive4thgivecoins:\nLBU A0 29(S4) ; Player Index\nJAL AdjustPlayerCoinsGradual\nSUBU A1 R0 S5 ; Coins to lose\n\nLBU A0 29(S4) ; Player Index\nJAL 0x800E1F28 \nSUBU A1 R0 S5 ; Coins to lose\n\nMOVE A0 S7 ; Player Index\nJAL AdjustPlayerCoinsGradual\nMOVE A1 S5 ; Coins to lose\n\nMOVE A0 S7 ; Player Index\nJAL 0x800E1F28 \nMOVE A1 S5 ; Coins to lose\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJ exit\nNOP\n\ngive4thresetloop:\nADDIU S3 S3 -1 ; Subtract 1 to find a player in another placing\nJ give4thloop\nLI S0 99 ; Reset Loop Counter\n\ngiverandom:\nJAL GetRandomByte\nNOP\nLI T0 4 ; Players\nDIVU V0 T0 ; Divide by 4\nMFHI V0 ; 0-3\n\nLBU T1 29(S4) ; Current Player Index\nBEQ V0 T1 giverandom ; If it's the current player, find another\nNOP\nMOVE S7 V0\n\nLBU A0 29(S4) ; Player Index\nJAL PlayerHasCoins\nMOVE A1 S5 ; Coins\n\nBEQL V0 R0 giverandomgivecoins ; Give them all player's coins if they don't have enough\nLHU S5 10(S4) ; Current Player's Coins\n; They have enough coins\n\ngiverandomgivecoins:\nLBU A0 29(S4) ; Player Index\nJAL AdjustPlayerCoinsGradual\nSUBU A1 R0 S5 ; Coins to lose\n\nLBU A0 29(S4) ; Player Index\nJAL 0x800E1F28 \nSUBU A1 R0 S5 ; Coins to lose\n\nMOVE A0 S7 ; Player Index\nJAL AdjustPlayerCoinsGradual\nMOVE A1 S5 ; Coins to lose\n\nMOVE A0 S7 ; Player Index\nJAL 0x800E1F28 \nMOVE A1 S5 ; Coins to lose\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJ exit\nNOP\n\nstarmoves: \nJAL 0x800EDA58 ; ChangeStarLocation\nNOP\n\nJ exit\nNOP\n\nloseitem:\nJAL PlayerHasEmptyItemSlot ; 0 if no items\nLBU A0 29(S4) ; Player Index\n\nBEQZ V0 exit ; Exit if they have no items\nNOP\n; They have at least 1 item\nloseitemroll:\nJAL GetRandomByte\nNOP\nLI T0 3 ; Item Slots\nDIVU V0 T0 \nMFHI V0\n\nADDIU T4 S4 24 ; Add to get Item Slot #1\nADDU T4 T4 V0 ; Add to get correct Item Slot\nLB T1 0(T4) ; Item Slot Value\n\nBLTZ T1 loseitemroll ; Reroll if this slot is empty\nNOP\n; There's an item here\nLI T0 0xFF\nSB T0 0(T4) ; Delete Item\n\nJAL PlaySound\nLI A0 0x126 ; Item Delete sfx\n\nJAL FixUpPlayerItemSlots\nLBU A0 29(S4) ; Player Index\n\nJAL RefreshHUD\nLBU A0 29(S4) ; Player Index\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJ exit\nNOP\n\ngetcoins:\nLBU A0 29(S4) ; Player Index\nJAL AdjustPlayerCoinsGradual\nMOVE A1 S5 ; Coins to gain\n\nLBU A0 29(S4) ; Player Index\nJAL ShowPlayerCoinChange\nMOVE A1 S5 ; Coins to gain\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 0 ; Happy\n\nJ exit\nNOP\n\nlosehalf:\nLHU T0 10(S4) ; Coins\nLI T1 2 \nDIVU T0 T1 ; Divide by 2\nMFLO S5\n\nLBU A0 29(S4) ; Player Index\nJAL AdjustPlayerCoinsGradual\nSUBU A1 R0 S5 ; Coins to lose\n\nLBU A0 29(S4) ; Player Index\nJAL ShowPlayerCoinChange\nSUBU A1 R0 S5 ; Coins to lose\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJ exit\nNOP\n\n\n\nloseall:\nLHU T0 10(S4) ; Coins\nLI T1 1 \nDIVU T0 T1 ; Divide by 1\nMFLO S5\n\nLBU A0 29(S4) ; Player Index\nJAL AdjustPlayerCoinsGradual\nSUBU A1 R0 S5 ; Coins to lose\n\nLBU A0 29(S4) ; Player Index\nJAL ShowPlayerCoinChange\nSUBU A1 R0 S5 ; Coins to lose\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJ exit\nNOP\n\n\n\nlosestar:\nLBU T0 14(S4) ; Stars\n\nBEQZ T0 exit ; Exit if no stars \nNOP\n\nADDIU T0 T0 -1 ; Subtract 1 Star\nSB T0 14(S4) ; Store new Star amount\n\nJAL PlayMusic\nLI A0 0x6B ; Game Over \n\nJAL PlaySound\nLI A0 283 ; Star Space Sound Index\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJAL GetBoardAudioIndex\nNOP\n\nJAL PlayMusic\nMOVE A0 V0 \n\nJ exit\nNOP\n\nlosetwostars:\nLBU T0 14(S4) ; Stars\n\nLI T1 1\nBEQ T1 T0 losestar ; Remove 1 star if the player only has 1 star\nNOP \n\nBEQZ T0 exit ; Exit if no stars \nNOP\n\nADDIU T0 T0 -2 ; Subtract 2 Stars\nSB T0 14(S4) ; Store new Star amount\n\nJAL PlayMusic\nLI A0 0x6B ; Game Over \n\nJAL PlaySound\nLI A0 283 ; Star Space Sound Index\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJAL GetBoardAudioIndex\nNOP\n\nJAL PlayMusic\nMOVE A0 V0 \n\nJ exit\nNOP\n\ngivestar: \nLBU T0 14(S4) ; Stars\n\nBEQZ T0 exit ; Exit if no stars \nNOP\n\nLI S0 99 ; Loop Counter\nLI S3 3 ; 4th Place\ngivestarloop:\nBLTZL S0 givestarresetloop ; Player in this placing was never found, try another placing\nNOP\n\nJAL GetRandomByte\nNOP\nLI T0 4 ; Players\nDIVU V0 T0 \nMFHI V0 ; 0-3 \n\nLBU T1 29(S4) ; Current Player Index\nBEQ V0 T1 givestarloop ; If it's the current player, roll a new number\nNOP\nMOVE S7 V0\n\nJAL GetPlayerPlacement ; Placement at V0 (0-3)\nMOVE A0 S7 ; Chosen Player Index\n\nBNEL V0 S3 givestarloop\nADDIU S0 S0 -1 ; Subtract 1 to try to find another player\n; They're in the correct placing\n\ngivestargivestar:\nLBU T0 14(S4) ; Stars\nADDIU T0 T0 -1 ; Subtract 1 Star\nSB T0 14(S4) ; Stars\n\nJAL PlayMusic\nLI A0 0x6B ; Game Over \n\nJAL PlaySound\nLI A0 283 ; Star Space Sound Index\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJAL GetPlayerStruct\nMOVE A0 S7 ; Chosen Player Index\n\nLBU T0 14(V0) ; Stars\nADDIU T0 T0 1 ; Add 1 Star\nSB T0 14(V0) \n\nJAL PlaySound\nLI A0 283 ; Star Space Sound Index\n\nJAL SleepProcess\nLI A0 20 \n\nJ exit\nNOP\n\ngivestarresetloop:\nADDIU S3 S3 -1 ; Subtract 1 to find a player in another placing\nJ givestarloop\nLI S0 99 ; Reset Loop Counter\n\n\n\nlosetwostars:\nLBU T0 14(S4) ; Stars\n\nBEQZ T0 exit ; Exit if no stars \nNOP\n\nLI T1 1\nBEQ T1 T0 losestar ; Remove 1 star if the player only has 1 star\nNOP \n\nADDIU T0 T0 -2 ; Subtract 2 Stars\nSB T0 14(S4) ; Store new Star amount\n\nJAL PlayMusic\nLI A0 0x6B ; Game Over \n\nJAL PlaySound\nLI A0 283 ; Star Space Sound Index\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJAL GetBoardAudioIndex\nNOP\n\nJAL PlayMusic\nMOVE A0 V0 \n\nJ exit\nNOP\n\n\n\ngivetwostars: \nLBU T0 14(S4) ; Stars\n\nBEQZ T0 exit ; Exit if no stars \nNOP\n\nLI T1 1\nBEQ T1 T0 givestar ; Give 1 star if the player only has 1 star\nNOP \n\nLI S0 99 ; Loop Counter\nLI S3 3 ; 4th Place\ngivetwostarsloop:\nBLTZL S0 givestarsresetloop ; Player in this placing was never found, try another placing\nNOP\n\nJAL GetRandomByte\nNOP\nLI T0 4 ; Players\nDIVU V0 T0 \nMFHI V0 ; 0-3 \n\nLBU T1 29(S4) ; Current Player Index\nBEQ V0 T1 givetwostarsloop ; If it's the current player, roll a new number\nNOP\nMOVE S7 V0\n\nJAL GetPlayerPlacement ; Placement at V0 (0-3)\nMOVE A0 S7 ; Chosen Player Index\n\nBNEL V0 S3 givetwostarsloop\nADDIU S0 S0 -1 ; Subtract 1 to try to find another player\n; They're in the correct placing\n\ngivestarsgivestars:\nLBU T0 14(S4) ; Stars\nADDIU T0 T0 -2 ; Subtract 2 Stars\nSB T0 14(S4) ; Stars\n\nJAL PlayMusic\nLI A0 0x6B ; Game Over \n\nJAL PlaySound\nLI A0 283 ; Star Space Sound Index\n\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\nJAL GetPlayerStruct\nMOVE A0 S7 ; Chosen Player Index\n\nLBU T0 14(V0) ; Stars\nADDIU T0 T0 2 ; Adds 2 Star\nSB T0 14(V0) \n\nJAL PlaySound\nLI A0 283 ; Star Space Sound Index\n\nJAL SleepProcess\nLI A0 20 \n\nJ exit\nNOP\n\ngivestarsresetloop:\nADDIU S3 S3 -1 ; Subtract 1 to find a player in another placing\nJ givetwostarsloop\nLI S0 99 ; Reset Loop Counter\n\n\n\ngivecoins:\nLI T0 3 \nMULT S5 T0\nMFLO S7\n\nLBU A0 29(S4) ; Player Index\nJAL PlayerHasCoins\nMOVE A1 S7 ; Coins to give * 3 \nSUBU S7 R0 S7 ; Turn the value negative\n\nBNEZ V0 givecoinssetuploop ; If they have enough coins, continue normally\nNOP\n; They're missing coins\nLHU S7 10(S4) ; Coins\n\nLBU A0 29(S4) ; Player Index\nJAL AdjustPlayerCoinsGradual\nSUBU A1 R0 S7 ; Coins\n\nLBU A0 29(S4) ; Player Index\nJAL 0x800E1F28 ; ShowCoinChangeHUD\nSUBU A1 R0 S7 ; Coins\n\nLI S0 0 ; Player Flag\nLI S3 3 ; Divide by 3\ngivecoinsrollindex:\nJAL GetRandomByte\nNOP\nLI T0 4 ; Players\nDIVU V0 T0\nMFHI V0 ; Player Index \n\nLBU T0 29(S4) ; Current Player Index\nBEQ T0 V0 givecoinsrollindex ; Reroll if it's the turn player\nNOP\nLI T1 1 ; bit \nSLLV T0 T1 V0 ; Shift by Player Index\nAND T2 S0 T0 ; 1 if that player has already been given coins\n\nBNEZ T2 givecoinsrollindex ; Loop if that player has already been given coins\nNOP\n; that player has not been given coins\n\nADDU S0 S0 T0 ; Add flag \nDIVU S7 S3 ; Divide by S3\nMFLO S5\nSUBU S7 S7 S5 ; Subtract from total coins to give\n\nMOVE S6 V0 ; Player Index\nMOVE A0 S6\nJAL AdjustPlayerCoinsGradual\nMOVE A1 S5 ; Amount to give\n\nMOVE A0 S6\nJAL 0x800E1F28 ; ShowCoinChangeHUD\nMOVE A1 S5 ; Amount to give\n\nBEQZ S7 givecoinsloopexit ; exit once there's no more coins left to give\nNOP\n\nJ givecoinsrollindex\nADDIU S3 S3 -1 ; Subtract 1 to divide by less \n\n\n\ngivecoinssetuploop:\nLI S0 3 ; Player 4\ngivecoinsloop:\nBLTZ S0 givecoinsloopexit ; exit once all players are effected\nNOP\nLBU T0 29(S4) ; Current Player Index\n\nBEQL S0 T0 givecoinsbutactually\nMOVE S3 S7 ; Coins to lose\n; It's a different player, give them coins\nMOVE S3 S5 ; Coins to gain\n\ngivecoinsbutactually:\nMOVE A0 S0 ; Player Index\nJAL AdjustPlayerCoinsGradual\nMOVE A1 S3 ; Coins\n\nMOVE A0 S0 ; Player Index\nJAL 0x800E1F28 ; ShowCoinChangeHUD\nMOVE A1 S3 ; Coins\n\nJ givecoinsloop\nADDIU S0 S0 -1 ; Subtract 1 to get next player\n\ngivecoinsloopexit:\nLBU A0 29(S4) ; Player Index\nJAL SetBoardPlayerAnimationWithSound\nLI A1 1 ; Sad\n\n\nexit:\nJAL GetBoardAudioIndex\nNOP\n\nJAL PlayMusic\nMOVE A0 V0 ; Return Music to normal\n\n\n\nLW S0 112(SP)\nLW S1 108(SP) \nLW S2 104(SP)\nLW S3 100(SP)\nLW S4 96(SP) \nLW S5 92(SP) \nLW S6 88(SP)\nLW S7 84(SP)\nLW FP 80(SP)\nLW RA 116(SP)\nJR RA\nADDIU SP SP 120\n\n\n\n.align 16\nArg1_Pointer:\n.byte 0x24\n\n.align 16\nArg2_Pointer:\n.byte 0x24\n\n.align 16\nArg3_Pointer:\n.byte 0x24\n\n.align 16\nArg4_Pointer:\n.byte 0x24\n\n.align 16\nArg5_Pointer:\n.byte 0x24\n\n.align 16\nRouletteOutcomes_Array:\n.byte 0xFF,0xFF,0xFF,0xFF,0xFF\n\n.align 16\n1stPlace_Array:\n.byte 08,13,15,05,10\n\n.align 16\n2ndPlace_Array:\n.byte 08,13,15,05,10\n\n.align 16\n3rdPlace_Array:\n.byte 08,13,14,12,02\n\n.align 16\n4thPlace_Array:\n.byte 08,13,14,12,02\n\n.align 16\nEBL1stPlace_Array:\n.byte 08,11,01,14,04,06\n\n.align 16\nEBL2ndPlace_Array:\n.byte 08,11,01,14,04,06\n\n.align 16\nEBL3rdPlace_Array:\n.byte 08,11,12,00,02,03\n\n.align 16\nEBL4thPlace_Array:\n.byte 08,11,12,00,02,03\n\n.align 16\nBadLuckSpace_Message:\n.ascii \"\\x03B \\x03A \\x03D  \\x03L \\x03U \\x03C \\x03K  \\x03S \\x03P \\x03A \\x03C \\x03E\\x00\"\n\n.align 16\nExtraBadLuckSpace_Message:\n.ascii \"\\x01E \\x01X \\x01T \\x01R \\x01A  \\x03B \\x03A \\x03D  \\x03L \\x03U \\x03C \\x03K  \\x03S \\x03P \\x03A \\x03C \\x03E\\x00\"\n\n.align 16\nRoulette_Prompt:\n.ascii \"\\x0B\\x1A\\x1A\\x0EPress \\x21 to stop the wheel\\x0A\\x0A\"\n.ascii \"\\x1A\\x1A\\x11\\x0E\" \"%s\" \"\\x0E   \\x0E\\x0A\"\n.ascii \"\\x1A\\x1A\\x12\\x0E\" \"%s\" \"\\x0E   \\x0E\\x0A\"\n.ascii \"\\x1A\\x1A\\x13\\x0E\" \"%s\" \"\\x0E   \\x0E\\x0A\"\n.ascii \"\\x1A\\x1A\\x14\\x0E\" \"%s\" \"\\x0E   \\x0E\\x0A\"\n.ascii \"\\x1A\\x1A\\x15\\x0E\" \"%s\" \"\\x0E   \\x0E\\x0A\\x00\"\n\n\n.align 16\nA_Pointer_With_Enough_Space:\n.fill 0x1024\n\n.align 0x20\nOutcomes_Strings:\n.asciiz \"Lose 2 \\x2A Stars\" ; 00\n.align 0x20\n.asciiz \"Give 2 \\x2A Stars to 4th place\" ; 01\n.align 0x20\n.asciiz \"Lose 30 Coins\" ; 02\n.align 0x20\n.asciiz \"Lose 40 Coins\" ; 03\n.align 0x20\n.asciiz \"Lose 50 Coins\" ; 04\n.align 0x20\n.asciiz \"Give 20 Coins to 4th place\" ; 05\n.align 0x20\n.asciiz \"Lose 60 Coins\" ; 06\n.align 0x20\n.asciiz \"The \\x2A Star moves\" ; 07\n.align 0x20\n.asciiz \"Lose 1 item\" ; 08\n.align 0x20\n.asciiz \"Lose 30 Coins\" ; 09\n.align 0x20\n.asciiz \"Give 60 Coins to rivals\" ; 10\n.align 0x20\n.asciiz \"Lose all of your Coins\" ; 11\n.align 0x20\n.asciiz \"Pity Coin\" ; 12\n.align 0x20\n.asciiz \"Lose half your Coins\" ; 13\n.align 0x20\n.asciiz \"Lose 1 \\x2A Star\" ; 14\n.align 0x20\n.asciiz \"Give 1 \\x2A Star to 4th place\" ; 15\n\n\n.align 0x20\nItem_Strings:\n.asciiz \"Mushroom\" ; 00\n.align 0x20\n.asciiz \"Skeleton Key\" ; 01\n.align 0x20\n.asciiz \"Poison Mushroom\" ; 02\n.align 0x20\n.asciiz \"Reverse Mushroom\" ; 03\n.align 0x20\n.asciiz \"Cellular Shopper\" ; 04\n.align 0x20\n.asciiz \"Warp Block\" ; 05\n.align 0x20\n.asciiz \"Plunder Chest\" ; 06\n.align 0x20\n.asciiz \"Bowser Phone\" ; 07\n.align 0x20\n.asciiz \"Dueling Glove\" ; 08\n.align 0x20\n.asciiz \"Lucky Lamp\" ; 09\n.align 0x20\n.asciiz \"Golden Mushroom\" ; 10\n.align 0x20\n.asciiz \"Boo Bell\" ; 11\n.align 0x20\n.asciiz \"Boo Repellant\" ; 12\n.align 0x20\n.asciiz \"Bowser Suit\" ; 13\n.align 0x20\n.asciiz \"Magic Lamp\" ; 14\n.align 0x20\n.asciiz \"Koopa Kard\"\n.align 0x20\n.asciiz \"Barter Box\"\n.align 0x20\n.asciiz \"Lucky Charm\"\n.align 0x20\n.asciiz \"Wacky Watch\"\n.align 0x20\n.asciiz \"Item Bag\"\n\n.align 16\nDetectABInput:\nADDIU SP SP -20\nSW RA 16(SP)\n\nLUI T1 hi(p1_controller)\nADDIU T1 T1 lo(p1_controller) ; Load P1's Controller\nLI T0 0x38 ; This is the distance between each player's Controller\nMULT A0 T0 ;  Multiply Current Player Index by S3\nMFLO T0 ; Move the result to S3\n\nADDU T1 T1 T0 ; Add result to get Current Player's Controller Addr\nLBU T0 0(T1) ; Load address value into A1\n\nLUI T1 hi(0x800C9520)\nADDIU T1 T1 lo(0x800C9520) ; Load P1's Button Press Address\nLI A2 0x2 ; This is the distance between each player's Button Address\nMULT A2 T0 ;  Multiply Controller value by 2\nMFLO T0 ; Move the result to S3\n\nADDU T1 T1 T0 ; Add result to get Current Player's Y Axis\nLBU T0 0(T1) ; Load address value into A1\n\nLI T1 0x80\nBEQ T0 T1 APress\nNOP\n\nNoPress:\nLI V0 0\nJ DetectABInputexit\nNOP\n\nAPress:\nLI V0 1\nJ DetectABInputexit\nNOP\n\nDetectABInputexit:\nLW RA 16(SP)\nJR RA\nADDIU SP SP 20\n\n; A0 = Player's Index\n; A1 = 0 = Happy / 1 = Sad Index\n.align 16\nSetBoardPlayerAnimationWithSound:\nADDIU SP SP -80\nSW RA 76(SP)\nSW A0 72(SP)\nSW A1 68(SP)\n\nJAL GetPlayerStruct ; Struct Pointer at V0\nNOP\n\nLBU T0 3(V0) ; Character Index\n\nBNEZ A1 sad\nNOP\n\nhappy:\nJAL PlaySound\nADDIU A0 T0 0x275 ; Mario's Happy Voice Index + Current Character Index\n\nLW A0 72(SP) ; Player Index\nLI A1 5 ; Happy Animation\nJAL SetBoardPlayerAnimation\nLI A2 0 ; Don't loop\n\nJAL SleepProcess\nLI A0 30 ; Frames\n\nJ SetBoardAnimationWithSound_exit\nNOP\n\nsad:\nJAL PlaySound\nADDIU A0 T0 0x287 ; Mario's Sad Voice Index + Current Character Index\n\nLW A0 72(SP) ; Player Index\nLI A1 3 ; Despair Animation\nJAL SetBoardPlayerAnimation\nLI A2 0 ; Don't loop\n\nJAL SleepProcess\nLI A0 75 ; Frames\n\nSetBoardAnimationWithSound_exit:\nLW A0 72(SP) ; Player Index\nLI A1 -1 ; Despair Animation\nJAL SetBoardPlayerAnimation\nLI A2 2 ; Loop\n\nLW A1 68(SP)\nLW A0 72(SP)\nLW RA 76(SP)\nJR RA\nADDIU SP SP 80"},"Next Space Setup":{"language":0,"code":"; NAME: Next Space Setup\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: Space|Next\n\nADDIU SP SP -40\nSW RA 36(SP)\n\nJAL GetCurrentPlayerIndex\nNOP\n\nADD A0 R0 V0 ; Assigns Current Player Index to A0\nADDIU A1 R0 Next_chain_index ; Assigns Chain Index to A1\nADDIU A2 R0 Next_chain_space_index ; Assigns Space Index to A2\n\nJAL SetNextChainAndSpace \nNOP\n\n\nLW RA 36(SP)\nJR RA\nADDIU SP SP 40"},"Custom Ultra Super Good Item Shop [SMP-Style] (Airsola™)":{"language":0,"code":"; NAME: Custom Ultra Super Good Item Shop [SMP-Style] (Airsola™)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: +Number|MinToShop\n; PARAM: +Number|CellularShopperPrice\n; PARAM: +Number|LuckyCharmPrice\n; PARAM: +Number|KoopaKardPrice\n; PARAM: +Number|BooRepellentPrice\n; PARAM: +Number|BarterBoxPrice\n; PARAM: +Number|BooBellPrice\n; PARAM: +Number|MagicLampPrice\n; PARAM: +Number|ItemBagPrice\n\n;====================================================================\n; IMPORTANT: This code is specifically designed to allow the landing\n;            or passing player to purchase an item from an inventory\n;            of your choice. If the player's inventory is full, they\n;            don't get to buy anything.\n;===================================================================\n\nADDIU SP SP -40\nSW RA 36(SP)\nSW S1 32(SP)\nSW S2 28(SP)\nSW S0 24(SP)\nSW S3 20(SP)\nSW S4 16(SP)\nSW S5 8(SP)\n\n\n;BEGIN Checks that prevent purchase===================================\nLUI S1 hi(total_turns)\nADDIU S1 S1 lo(total_turns) ; Load address of Total Turns to S1\nLBU S1 0(S1) ; Load value of Total Turns to S1\n\nLUI S2 hi(current_turn)\nADDIU S2 S2 lo(current_turn) ; Load address of Current Turn to S2\nLBU S2 0(S2) ; Load value of Current Turn to S2\n\nBEQ S2 S1 LastTurn ; If it's the last turn, branch\nNOP\n\nJAL GetCurrentPlayerIndex ; Current Player's Index at V0\nNOP\n\nMOVE S4 V0 ; Copy Current Player Index to S4\nMOVE A0 S4 ; Copy Current Player Index to A0\nLI A1 MinToShop ; A1 = The minimum amount of Coins to shop\nJAL PlayerHasCoins ; Checks if Player has the minimum Coins \nNOP\n\nBEQ V0 R0 NoCoinsToShop ; If the player doesn't have the Coins, exit\nNOP\n\nLUI S1 hi(p1_item3)\nADDIU S1 S1 lo(p1_item3) ; Load Player 1's Item slot #3 address\nLI S3 0x38 ; This is the distance between each player's Item #3\nMULT S4 S3 ;  Multiply Current Player Index by S3\nMFLO S3 ; Move the result to S3\n\nADDU S1 S1 S3 ; Add result to get current Player's item slot #3\nLBU S2 0(S1) ; Load address value into S2\n\nLI T0 0xFF ; No Item Value\nBNE S2 T0 TooManyItems ; If the player's inventory is full, exit\nNOP\n;END Checks that prevent purchase=====================================\n\n;BEGIN GREETING=======================================================\nJAL PlaySound\nLI A0 0x298 ; Toad: Yahoo! ^_^/\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 0xD ; Character image (Alt Toad)\nLUI A1 hi(Greeting_Message)\nADDIU A1 A1 lo(Greeting_Message)\nADDU A2 R0 R0\nJAL 0x800EC8EC ; ShowMessage\nADDU A3 R0 R0\n\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n;END GREETING=========================================================\n\n;BEGIN ITEM SELECTION PROMPT==========================================\nSTART:\nSW R0 20(SP) ; A4\nSW R0 24(SP) ; A5\nSW R0 28(SP) ; A6\nLI A0 0xD ; Character image (Alt Toad)\nLUI A1 hi(ItemSelection_Prompt)\nADDIU A1 A1 lo(ItemSelection_Prompt)\nADDU A2 R0 R0\nJAL 0x800EC8EC ; ShowMessage\nADDU A3 R0 R0\n\n; Get the selection, either from the player or CPU.\n; If A0 is a pointer to AI data, AI logic is ran to pick for CPUs.\n; If A0 is 0 or 1, the 0th or 1st option is chosen by CPUs.\n; If A0 is 2, then the value of A1 is the CPUs option index choice.\nLI A0 0\nJAL GetBasicPromptSelection\nLI A1 0 ; A1 now has the AI's decision\nMOVE S0 V0 ; S0 now has the chosen option index\n\n; Obligatory message box closing/cleanup calls.\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n\n; Change the player's destination based on the choice.\nLI A0 0\nBEQ S0 A0 item1\nNOP\nLI A0 1\nBEQ S0 A0 item2\nNOP\nLI A0 2\nBEQ S0 A0 item3\nNOP\nLI A0 3\nBEQ S0 A0 item4\nNOP\nLI A0 4\nBEQ S0 A0 item5\nNOP\nLI A0 5\nBEQ S0 A0 item6\nNOP\nLI A0 6\nBEQ S0 A0 item7\nNOP\nLI A0 7\nBEQ S0 A0 itembag\nNOP\nLI A0 8\nBEQ S0 A0 exit\nNOP\nLI A0 9\nBEQ S0 A0 view_map\nNOP\n;END ITEM SELECTION PROMPT============================================\n\n;BEGIN Item Values====================================================\n; 0x00 = Mushroom\n; 0x01 = Skeleton Key\n; 0x02 = Poison Mushroom\n; 0x03 = Reverse Mushroom\n; 0x04 = Cellular Shopper\n; 0x05 = Warp Block\n; 0x06 = Plunder Chest\n; 0x07 = Bowser Phone\n; 0x08 = Dueling Glove\n; 0x09 = Lucky Lamp\n; 0x0A = Golden Mushroom\n; 0x0B = Boo Bell\n; 0x0C = Boo Repellant\n; 0x0D = Bowser Suit\n; 0x0E = Magic Lamp\n; 0x0F = Koopa Card\n; 0x10 = Barter Box\n; 0x11 = Lucky Charm\n; 0x12 = Wacky Watch\n;END Item Values======================================================\n\n;BEGIN Selected Option================================================\nitem1:\nLI S0 0x04 ; Cellular Shopper Value\nLI S3 CellularShopperPrice ; S3 contains Cellular Shopper Price\nJ payprice\nNOP\nitem2:\nLI S0 0x11 ; Lucky Charm Value\nLI S3 LuckyCharmPrice ; S3 contains Lucky Charm Price\nJ payprice\nNOP\nitem3:\nLI S0 0x0F ; Koopa Kard Value\nLI S3 KoopaKardPrice ; S3 contains Koopa Kard Price\nJ payprice\nNOP\nitem4:\nLI S0 0x0C ; Boo Repellent Value\nLI S3 BooRepellentPrice ; S3 contains Boo Repellent Price\nJ payprice\nNOP\nitem5:\nLI S0 0x10 ; Barter Box Value\nLI S3 BarterBoxPrice ; S3 contains Barter Box Price\nJ payprice\nNOP\nitem6:\nLI S0 0x0B ; Boo Bell Value\nLI S3 BooBellPrice ; S3 contains Boo Bell Price\nJ payprice\nNOP\nitem7:\nLI S0 0x0E ; Magic Lamp Value\nLI S3 MagicLampPrice ; S3 contains Magic Lamp Price\nJ payprice\nNOP\nitembag:\nLI S3 ItemBagPrice ; S3 contains Item Bag Price\nMOVE A0 S4 ; Current Player's Index moved to A0\nMOVE A1 S3 ; Amount of coins to check\nJAL PlayerHasCoins ; Checks if Player has A1's amount of Coins\nNOP\n\nBEQ V0 R0 NotEnoughCoins ; If insufficient funds, branch\nNOP\n\nMOVE A0 S4 ; Current Player's Index moved to A0\nSUBU A1 R0 S3 ; Amount to pay\nJAL AdjustPlayerCoinsGradual ; Changes Player's coin amount\nNOP\n\nMOVE A0 S4 ; Current Player's Index moved to A0\nSUBU A1 R0 S3 ; Amount to display\nJAL ShowPlayerCoinChange ; Displays Player's coin loss on-screen \nNOP\n\nADDIU A0 R0 30\nJAL SleepProcess ; Sleeps for 30 frames\nNOP\n\nLI T1 2 \nSUBU S1 S1 T1 ; This loads the current player's first Item address\nLI S5 1 ; S5 is the counter to stop giving Items once full\nLoop:\nLI T0 0x4\nSLT A2 S5 T0 ; A2 = 1 if S5 is less than 4\nNOP\nBEQ A2 R0 exit ; exit once player's item inventory is full\nNOP\n\nLBU S2 0(S1) ; Load slot #1's Item Value into S2\nLI T1 0xFF ; No Item Value\nBNE S2 T1 next ; If the player has an item, load next address\nNOP\n\nJAL GetRandomByte ; Integer at V0\nNOP\n\nLI A0 0x1A \nSLT S0 V0 A0 ; S0 = 1 if the number is less than 26\nNOP\nBNE S0 R0 getMagicLamp ; Branch if true\nNOP\n\nLI A0 0x34 \nSLT S0 V0 A0 ; S0 = 1 if the number is less than 52\nNOP\nBNE S0 R0 getBooBell ; Branch if true\nNOP\n\nLI A0 0x4E \nSLT S0 V0 A0 ; S0 = 1 if the number is less than 78\nNOP\nBNE S0 R0 getBarterBox ; Branch if true\nNOP\n\nLI A0 0x74\nSLT S0 V0 A0 ; S0 = 1 if the number is less than 116\nNOP\nBNE S0 R0 getBooRepellent ; Branch if true\nNOP\n\nLI A0 0x9A\nSLT S0 V0 A0 ; S0 = 1 if the number is less than 154\nNOP\nBNE S0 R0 getKoopaKard ; Branch if true\nNOP\n\nLI A0 0xCD\nSLT S0 V0 A0 ; S0 = 1 if the number is less than 205\nNOP\nBNE S0 R0 getLuckyCharm ; Branch if true\nNOP\n\nJ getCellularShopper\nNOP\n\ngetMagicLamp:\nLI T0 0x0E ; Magic Lamp value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetBooBell:\nLI T0 0x0B ; Boo Bell value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetBarterBox:\nLI T0 0x10 ; Barter Box value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetBooRepellent:\nLI T0 0x0C ; Boo Repellent value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetKoopaKard:\nLI T0 0xF ; Koopa Kard value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetLuckyCharm:\nLI T0 0x11 ; Lucky Charm value\nSB T0 0(S1)\nJ sound\nNOP\n\ngetCellularShopper:\nLI T0 0x04 ; Cellular Shopper value\nSB T0 0(S1)\nJ sound\nNOP\n\nsound:\nJAL PlaySound\nADDIU A0 R0 0x10C ; Turn Start sound\n\nADDIU A0 R0 30\nJAL SleepProcess ; Sleeps for 30 frames\nNOP\n\nnext:\nADDIU S1 S1 1 ; Load next item's address\nADDIU S5 S5 1 ; Raise the item counter by 1\nJ Loop ; Loop back to give the next item\nNOP\n\nview_map:\nJAL ViewBoardMap\nNOP\nJ START\nNOP\n;END Item Values======================================================\n\n;BEGIN Checking Player For Necessary Coins To Purchase================\npayprice:\nMOVE A0 S4 ; Current Player's Index moved to A0\nMOVE A1 S3 ; Amount of coins to check\nJAL PlayerHasCoins ; Checks if Player has A1's amount of Coins\nNOP\n\nBEQ V0 R0 NotEnoughCoins ; If insufficient funds, branch\nNOP\n;END Checking Player For Necessary Coins To Purchase==================\n\n;BEGIN Taking Coins From Player=======================================\nMOVE A0 S4 ; Current Player's Index moved to A0\nSUBU A1 R0 S3 ; Amount to pay\nJAL AdjustPlayerCoinsGradual ; Changes Player's coin amount\nNOP\n\nMOVE A0 S4 ; Current Player's Index moved to A0\nSUBU A1 R0 S3 ; Amount to display\nJAL ShowPlayerCoinChange ; Displays Player's coin loss on-screen \nNOP\n\nADDIU A0 R0 30\nJAL SleepProcess ; Sleeps for 30 frames\nNOP\n;END Taking Coins From Player=========================================\n\n;BEGIN Checking Player Item Slots=====================================\nLI T1 2\nSUBU S1 S1 T1 ; This loads the current player's first Item address\nLBU S2 0(S1) ; Load slot #1's Item Value into S2\nLI T1 0xFF ; No Item Value\nBEQ S2 T1 giveitem ; Go to giveitem if the slot is empty\nNOP\nADDIU S1 S1 1 ; Add 1 to load current player's second Item address\nLBU S2 0(S1) ; Load slot #2's Item Value into S2\nBEQ S2 T1 giveitem ; Go to giveitem if the slot is empty\nNOP\nADDIU S1 S1 1 ; Add 1 to load current player's third Item address\n\ngiveitem:\nSB S0 0(S1)\n;END Checking Player Item Slots=======================================\n\n;BEGIN Item Sound Effect==============================================\nJAL PlaySound\nLI A0 0x10C ; Turn Start sound\n\nLI A0 15 ; Frames to wait after the sound plays\nJAL SleepProcess ; Sleeps for 15 frames\nNOP\n\nJ exit\nNOP\n;END Item Sound Effect================================================\n\n;BEGIN CANNOT BUY ITEM MESSAGE========================================\nNotEnoughCoins:\nJAL PlaySound\nLI A0 0x29A ; Toad: Oooh :(\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 0xD ; Character image (Alt Toad)\nLUI A1 hi(NotEnoughCoins_Message)\nADDIU A1 A1 lo(NotEnoughCoins_Message)\nADDU A2 R0 R0\nJAL 0x800EC8EC ; ShowMessage\nADDU A3 R0 R0\n\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n\nJ START\nNOP\n;END CANNOT BUY ITEM MESSAGE==========================================\n\n;BEGIN TOO MANY ITEMS MESSAGE=========================================\nTooManyItems:\nJAL PlaySound\nLI A0 0x29A ; Toad: Oooh :(\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 0xD ; Character image (Alt Toad)\nLUI A1 hi(TooManyItems_Message)\nADDIU A1 A1 lo(TooManyItems_Message)\n\nJ FinalizeMessage\nNOP\n;END TOO MANY ITEMS MESSAGE===========================================\n\n;BEGIN NOT ENOUGH COINS MESSAGE=======================================\nNoCoinsToShop:\nJAL PlaySound\nLI A0 0x29A ; Toad: Oooh :(\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 0xD ; Character image (Alt Toad)\nLUI A1 hi(NoCoinsToShop_Message)\nADDIU A1 A1 lo(NoCoinsToShop_Message)\n\nJ FinalizeMessage\nNOP\n;END NOT ENOUGH COINS MESSAGE=========================================\n\n;BEGIN Last Turn MESSAGE==============================================\nLastTurn:\nJAL PlaySound\nLI A0 0x29A ; Toad: Oooh :(\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nADDI A0 R0 0xD ; Character image (Alt Toad)\nLUI A1 hi(LastTurn_Message)\nADDIU A1 A1 lo(LastTurn_Message)\n;END Last Turn MESSAGE================================================\n\nFinalizeMessage:\nADDU A2 R0 R0\nJAL 0x800EC8EC ; ShowMessage\nADDU A3 R0 R0\n\nJAL 0x800EC9DC\nNOP\nJAL 0x800EC6C8\nNOP\nJAL 0x800EC6EC\nNOP\n\n\n\nexit:\nLW S5 8(SP)\nLW S4 16(SP)\nLW S3 20(SP)\nLW S1 32(SP)\nLW S2 28(SP)\nLW S0 24(SP)\nLW RA 36(SP)\nJR RA\nADDIU SP SP 40\n\n\n\n.align 16\nLastTurn_Message:\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Welcome to the\"\n.byte 0x06 ; Blue font\n.ascii \" Item Emporium\"\n.byte 0x08 ; White Font\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Sadly\"\n.byte 0x82 ; Comma (,)\n.ascii \" I\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"m out of stock\"\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Please come back another time\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0xFF,0 ; FF=Pause\n\n.align 16\nNoCoinsToShop_Message:\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Oh dear\"\n.byte 0x85,0x85,0x85 ; Period (...)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"You don\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"t have enough coins\"\n.byte 0x85 ; Period (.)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Come back when you have more coins\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0xFF,0 ; FF=Pause\n\n.align 16\nTooManyItems_Message:\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"It seems you can\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"t carry any more items\"\n.byte 0x85 ; Period (.)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Come back later when you have space\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0xFF,0 ; FF=Pause\n\n.align 16\nGreeting_Message:\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Hello there\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Welcome to the\"\n.byte 0x06 ; Blue font\n.ascii \" Item Emporium\"\n.byte 0x08 ; White Font\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Check out my wares\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0xFF,0 ; FF=Pause\n\n.align 20\nItemSelection_Prompt:\n.byte 0x0B ; Start the message\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Would you like to buy an item\"\n.byte 0xC3 ; Question Mark (?)\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Cellular Shopper \"\n.byte 0x08 ; White Font\n.byte 0x10,0x10,0x10; Space 3x ( )\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \" 5\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Lucky Charm\"\n.byte 0x08 ; White Font\n.byte 0x10,0x10,0x10 ; Space 3x( )\n.byte 0x1A,0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \" 5\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Koopa Kard \"\n.byte 0x08 ; White Font\n.byte 0x10,0x10,0x10,0x10; Space 4x ( )\n.byte 0x1A,0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \"10\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Boo Repellent\t\t\"\n.byte 0x10,0x10,0x10; Space x3 ( )\n.byte 0x08 ; White Font\n.byte 0x1A,0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \"10\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Barter Box    \"\n.byte 0x10,0x10,0x10,0x10 ; Space 4x (  )\n.byte 0x08 ; White Font\n.byte 0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \"15\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Boo Bell\t\t\t \"\n.byte 0x10,0x10,0x10,0x10 ; Space 4x (  )\n.byte 0x08 ; White Font\n.byte 0x1A,0x1A,0x1A,0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \"15\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Magic Lamp   \"\n.byte 0x10,0x10 ; Space 2x (  )\n.byte 0x08 ; White Font\n.byte 0x1A,0x1A  ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \"20\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.byte 0x06 ; Blue font\n.ascii \"Item Bag   \"\n.byte 0x08 ; White Font\n.byte 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10 ; Space 6x (  )\n.byte 0x1A ; padding\n.byte 0x29 ; Coin icon\n.byte 0x3E ; x (multiply)\n.ascii \"30\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A \n.byte 0x0C ; Start option\n.ascii \"Nah\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A \n.byte 0x0C ; Start option\n.ascii \"View Map\"\n.byte 0x0D ; End option\n.byte 0\n\n.align 16\nNotEnoughCoins_Message:\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"You don\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"t have enough coins\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0x0A ; New Line (Writes Below)\n.byte 0x1A,0x1A,0x1A,0x1A ; Standard padding for picture\n.ascii \"Please select something else\"\n.byte 0xC2 ; Exclamation Mark (!)\n.byte 0xFF,0 ; FF=Pause"},"(New Junction 1)":{"language":0,"code":"; NAME: (New Junction 1)\r\n; GAMES: MP3_USA\r\n; EXECUTION: Direct\r\n; PARAM: Space|Left\r\n; PARAM: Space|Right\r\n\r\nADDIU SP SP -200\r\nSW RA 196(SP)\r\nSW S0 192(SP)\r\nSW S1 188(SP)\r\nSW S2 184(SP)\r\nSW S3 180(SP)\r\nSW S4 176(SP)\r\nSW S5 172(SP)\r\nSW S6 168(SP)\r\nSW S7 164(SP)\r\n\r\n;Register Guide:\r\n;S0, main array array left or right\r\n;S1, latest points left or right\r\n;S2, main array left or right\r\n;S3, player structure\r\n;S4, passing or future array\r\n;S5, left_points biggest\r\n;S6, right_points biggest\r\n;S7, estimated_coins\r\n;\r\n;Saved to Stack:\r\n;\r\n;current spaces remaining\t\t\t\t\t\t160\r\n;item_estimate\t\t\t\t\t\t\t\t\t156\r\n;which side is currently being counted\t\t\t152\r\n;p1 coins\t\t\t\t\t\t\t\t\t\t148\r\n;p1 stars\t\t\t\t\t\t\t\t\t\t144\r\n;p2 coins\t\t\t\t\t\t\t\t\t\t140\r\n;p2 stars\t\t\t\t\t\t\t\t\t\t136\r\n;p3 coins\t\t\t\t\t\t\t\t\t\t132\r\n;p3 stars\t\t\t\t\t\t\t\t\t\t128\r\n;p4 coins\t\t\t\t\t\t\t\t\t\t124\r\n;p4 stars\t\t\t\t\t\t\t\t\t\t120\r\n;p1 item1\t\t\t\t\t\t\t\t\t\t116\r\n;p1 item2\t\t\t\t\t\t\t\t\t\t112\r\n;p1 item3\t\t\t\t\t\t\t\t\t\t108\r\n;p2 item1\t\t\t\t\t\t\t\t\t\t104\r\n;p2 item2\t\t\t\t\t\t\t\t\t\t100\r\n;p2 item3\t\t\t\t\t\t\t\t\t\t96\r\n;p3 item1\t\t\t\t\t\t\t\t\t\t92\r\n;p3 item2\t\t\t\t\t\t\t\t\t\t88\r\n;p3 item3\t\t\t\t\t\t\t\t\t\t84\r\n;p4 item1\t\t\t\t\t\t\t\t\t\t80\r\n;p4 item2\t\t\t\t\t\t\t\t\t\t76\r\n;p4 item3\t\t\t\t\t\t\t\t\t\t72\r\n;wacky watch check\t\t\t\t\t\t\t\t68\r\n;landed on spot id\t\t\t\t\t\t\t\t64\r\n;storage in between JALs (not currently used)\t60\r\n;\r\n;\r\n;Space ID Guide:\r\n;\r\n;Values and their locations on the map https://imgur.com/a/tbSnJuz\r\n;\r\n;blue\t\t\t\t1\r\n;red\t\t\t\t2\r\n;chance time\t\t3\r\n;bowser\t\t\t\t4\r\n;item\t\t\t\t5\r\n;battle\t\t\t\t6\r\n;game guy\t\t\t7\r\n;\r\n;Noticed when passing and count as space traversed\r\n;bank\t\t\t\t8\r\n;\r\n;Noticed when passing and does not count as space traversed\r\n;item shop\t\t\t9\r\n;boo\t\t\t\t10\r\n;\r\n;Noticed when passing and does not count as space traversed only when that space is currently holding the star\r\n;(labeled with an S on the map)\r\n;Star0\t\t\t\t11\r\n;Star1\t\t\t\t12\r\n;Star2\t\t\t\t13\r\n;Star3\t\t\t\t14\r\n;Star4\t\t\t\t15\r\n;Star5\t\t\t\t16\r\n;Star6\t\t\t\t17\r\n;Star7\t\t\t\t18\r\n;\r\n;Board Exclusive Values:\r\n;G1\t\t\t\t\t19\r\n;G2\t\t\t\t\t20\r\n;G3\t\t\t\t\t21\r\n;G4\t\t\t\t\t22\r\n;G5\t\t\t\t\t23\r\n;G6\t\t\t\t\t24\r\n;G7\t\t\t\t\t25\r\n;G8\t\t\t\t\t26\r\n;G9\t\t\t\t\t27\r\n;G10\t\t\t\t28\r\n;G11\t\t\t\t29\r\n;Good Happening\t\t30\r\n;Bad Happening\t\t31\r\n\r\n\r\n\r\nLI t0, 0x807FFFFC\r\nSW r0, 0x0000 (t0)\r\n\r\nSB R0 68(SP) ; this is where the wacky watch check is stored\r\n\r\nJAL GetPlayerStruct\r\nLI A0 0\r\n\r\nLHU T1 10(V0)\r\nSH T1 148(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 144(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 116(SP)\r\nLBU T1 25(V0)\r\nSB T1 112(SP)\r\nLBU T1 26(V0)\r\nSB T1 108(SP)\r\n\r\nJAL GetPlayerStruct\r\nLI A0 1\r\n\r\nLHU T1 10(V0)\r\nSH T1 140(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 136(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 104(SP)\r\nLBU T1 25(V0)\r\nSB T1 100(SP)\r\nLBU T1 26(V0)\r\nSB T1 96(SP)\r\n\r\n\r\nJAL GetPlayerStruct\r\nLI A0 2\r\n\r\nLHU T1 10(V0)\r\nSH T1 132(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 128(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 92(SP)\r\nLBU T1 25(V0)\r\nSB T1 88(SP)\r\nLBU T1 26(V0)\r\nSB T1 84(SP)\r\n\r\n\r\nJAL GetPlayerStruct\r\nLI A0 3\r\n\r\nLHU T1 10(V0)\r\nSH T1 124(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 120(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 80(SP)\r\nLBU T1 25(V0)\r\nSB T1 76(SP)\r\nLBU T1 26(V0)\r\nSB T1 72(SP)\r\n\r\nLI T5 18\r\n\r\nLB T1 116(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 112(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 108(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 104(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 100(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 96(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 92(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 88(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 84(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 80(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 76(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 72(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nJ get_player_structure\r\nNOP\r\n\r\nwacky_watch_has_been_detected:\r\nLI T1 1\r\nSB T1 68(SP)\r\n\r\nget_player_structure:\r\nJAL GetPlayerStruct\r\nLI A0 -1\r\nMOVE S3 V0 ;loads player structure in S3\r\n\r\nLBU T0 23(S3) ; Status Flags\r\nSRL T0 T0 7 ; Shift bits to the right by 7 for Reverse flag\r\nBNEZ T0 exit ; exit if player is in reverse\r\nNOP\r\n\r\nJAL PlayerIsCPU ; makes sure that player is a cpu\r\nLI A0 -1 \r\n\r\nBEQZ V0 exit ; If 0, exit because it's a human\r\nNOP\r\n\r\n;======================================================================================================================================\r\n; This is where the big boi code begins \r\n;======================================================================================================================================\r\nDADDU S0 R0 R0\r\nDADDU S1 R0 R0\r\nDADDU S2 R0 R0\r\nDADDU S5 R0 R0\r\nDADDU S6 R0 R0\r\nSB R0 152(SP) ; this is where the direction is stored\r\n\r\nLUI T0 hi(current_star_spawn)\r\nADDIU T0 T0 lo(current_star_spawn) ; Address of current Star Spawn Cycle\r\nADDIU T1 T0 1 ; Address of first Star Spawn Index in the Cycle\r\nLBU T0 0(T0) ; Load Index of Star Spawn to T0\r\nADDU T0 T0 T1 ; Add to get address of current Star Spawn Index\r\nLBU T2 0(T0) ; Load current Star Spawn Index to T2\r\n\r\nADDIU T2 T2 11 ; adds 11 to star spawn index to match custom id system\r\n\r\nLUI T0 hi(skip_space_array)\r\nADDIU T0 T0 lo(skip_space_array) ; loads array with spaces that will be skipped into T0\r\n\r\nLUI T1 hi(save_to_passing_arrays_array)\r\nADDIU T1 T1 lo(save_to_passing_arrays_array) ; loads array with spaces that will stored for passby calculations into T1\r\n\r\n\r\nSB T2 0(T0) ; stores the current star's location into the skip space array\r\nSB T2 0(T1) ; stores the current star's location into the passby array\r\n\r\n;======================================================================================================================================\r\n; This is where the main loop begins\r\n;======================================================================================================================================\r\nLUI S0 hi(main_left_array_array)\r\nADDIU S0 S0 lo(main_left_array_array) ; loads the array that checks which array is to be checked next for its respective side\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\nswitch_to_right_array_array:\r\nLI T0 1\r\nSB T0 152(SP)\r\nLUI S0 hi(main_right_array_array)\r\nADDIU S0 S0 lo(main_right_array_array) ; loads the array that checks which array is to be checked next for its respective side\r\n\r\nmain_array_processing_loop:\r\nLBU T3 0(S0) ; loads the number in the array for arrays to start checking which array should be loaded next\r\nLBU T0 152(SP)\r\nBNEZ T0 right_arrays\r\nNOP\r\n\r\nleft_arrays:\r\n\r\nBEQZ T3 switch_to_right_array_array\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T3 T5 load_main_left_array_one\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T3 T5 load_main_left_array_two\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T3 T5 load_main_left_array_three\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T3 T5 load_main_left_array_four\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T3 T5 load_main_left_array_five\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T3 T5 load_main_left_array_six\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T3 T5 load_main_left_array_seven\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T3 T5 load_main_left_array_eight\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T3 T5 load_main_left_array_nine\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T3 T5 load_main_left_array_ten\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T3 T5 load_main_left_array_eleven\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T3 T5 load_main_left_array_twelve\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T3 T5 load_main_left_array_thirteen\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T3 T5 load_main_left_array_fourteen\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T3 T5 load_main_left_array_fifteen\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T3 T5 load_main_left_array_sixteen\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T3 T5 load_main_left_array_seventeen\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T3 T5 load_main_left_array_eighteen\r\nNOP\r\n\r\nLI T5 19\r\nBEQ T3 T5 load_main_left_array_nineteen\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T3 T5 load_main_left_array_twenty\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T3 T5 load_main_left_array_twenty_one\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T3 T5 load_main_left_array_twenty_two\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T3 T5 load_main_left_array_twenty_three\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T3 T5 load_main_left_array_twenty_four\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T3 T5 load_main_left_array_twenty_five\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T3 T5 load_main_left_array_twenty_six\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T3 T5 load_main_left_array_twenty_seven\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T3 T5 load_main_left_array_twenty_eight\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T3 T5 load_main_left_array_twenty_nine\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T3 T5 load_main_left_array_thirty\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T3 T5 load_main_left_array_thirty_one\r\nNOP\r\n\r\nLI T5 32\r\nBEQ T3 T5 load_main_left_array_thirty_two\r\nNOP\r\n\r\nLI T5 33\r\nBEQ T3 T5 load_main_left_array_thirty_three\r\nNOP\r\n\r\nLI T5 34\r\nBEQ T3 T5 load_main_left_array_thirty_four\r\nNOP\r\n\r\nLI T5 35\r\nBEQ T3 T5 load_main_left_array_thirty_five\r\nNOP\r\n\r\nLI T5 36\r\nBEQ T3 T5 load_main_left_array_thirty_six\r\nNOP\r\n\r\nLI T5 37\r\nBEQ T3 T5 load_main_left_array_thirty_seven\r\nNOP\r\n\r\nLI T5 38\r\nBEQ T3 T5 load_main_left_array_thirty_eight\r\nNOP\r\n\r\nLI T5 39\r\nBEQ T3 T5 load_main_left_array_thirty_nine\r\nNOP\r\n\r\nLI T5 40\r\nBEQ T3 T5 load_main_left_array_forty\r\nNOP\r\n\r\nLI T5 41\r\nBEQ T3 T5 load_main_left_array_forty_one\r\nNOP\r\n\r\nLI T5 42\r\nBEQ T3 T5 load_main_left_array_forty_two\r\nNOP\r\n\r\nLI T5 43\r\nBEQ T3 T5 load_main_left_array_forty_three\r\nNOP\r\n\r\nLI T5 44\r\nBEQ T3 T5 load_main_left_array_forty_four\r\nNOP\r\n\r\nLI T5 45\r\nBEQ T3 T5 load_main_left_array_forty_five\r\nNOP\r\n\r\nLI T5 46\r\nBEQ T3 T5 load_main_left_array_forty_six\r\nNOP\r\n\r\nLI T5 47\r\nBEQ T3 T5 load_main_left_array_forty_seven\r\nNOP\r\n\r\nLI T5 48\r\nBEQ T3 T5 load_main_left_array_forty_eight\r\nNOP\r\n\r\nLI T5 49\r\nBEQ T3 T5 load_main_left_array_forty_nine\r\nNOP\r\n\r\nLI T5 50\r\nBEQ T3 T5 load_main_left_array_fifty\r\nNOP\r\n\r\n;======================================================================================================================================\r\n;This is where we switch sides by saving 1 to the stack at 108 for it to be detected when comparing points\r\n;======================================================================================================================================\r\nright_arrays:\r\nBEQZ T3 Choose_Side\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T3 T5 load_main_right_array_one\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T3 T5 load_main_right_array_two\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T3 T5 load_main_right_array_three\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T3 T5 load_main_right_array_four\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T3 T5 load_main_right_array_five\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T3 T5 load_main_right_array_six\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T3 T5 load_main_right_array_seven\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T3 T5 load_main_right_array_eight\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T3 T5 load_main_right_array_nine\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T3 T5 load_main_right_array_ten\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T3 T5 load_main_right_array_eleven\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T3 T5 load_main_right_array_twelve\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T3 T5 load_main_right_array_thirteen\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T3 T5 load_main_right_array_fourteen\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T3 T5 load_main_right_array_fifteen\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T3 T5 load_main_right_array_sixteen\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T3 T5 load_main_right_array_seventeen\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T3 T5 load_main_right_array_eighteen\r\nNOP\r\n\r\nLI T5 19\r\nBEQ T3 T5 load_main_right_array_nineteen\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T3 T5 load_main_right_array_twenty\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T3 T5 load_main_right_array_twenty_one\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T3 T5 load_main_right_array_twenty_two\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T3 T5 load_main_right_array_twenty_three\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T3 T5 load_main_right_array_twenty_four\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T3 T5 load_main_right_array_twenty_five\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T3 T5 load_main_right_array_twenty_six\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T3 T5 load_main_right_array_twenty_seven\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T3 T5 load_main_right_array_twenty_eight\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T3 T5 load_main_right_array_twenty_nine\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T3 T5 load_main_right_array_thirty\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T3 T5 load_main_right_array_thirty_one\r\nNOP\r\n\r\nLI T5 32\r\nBEQ T3 T5 load_main_right_array_thirty_two\r\nNOP\r\n\r\nLI T5 33\r\nBEQ T3 T5 load_main_right_array_thirty_three\r\nNOP\r\n\r\nLI T5 34\r\nBEQ T3 T5 load_main_right_array_thirty_four\r\nNOP\r\n\r\nLI T5 35\r\nBEQ T3 T5 load_main_right_array_thirty_five\r\nNOP\r\n\r\nLI T5 36\r\nBEQ T3 T5 load_main_right_array_thirty_six\r\nNOP\r\n\r\nLI T5 37\r\nBEQ T3 T5 load_main_right_array_thirty_seven\r\nNOP\r\n\r\nLI T5 38\r\nBEQ T3 T5 load_main_right_array_thirty_eight\r\nNOP\r\n\r\nLI T5 39\r\nBEQ T3 T5 load_main_right_array_thirty_nine\r\nNOP\r\n\r\nLI T5 40\r\nBEQ T3 T5 load_main_right_array_forty\r\nNOP\r\n\r\nLI T5 41\r\nBEQ T3 T5 load_main_right_array_forty_one\r\nNOP\r\n\r\nLI T5 42\r\nBEQ T3 T5 load_main_right_array_forty_two\r\nNOP\r\n\r\nLI T5 43\r\nBEQ T3 T5 load_main_right_array_forty_three\r\nNOP\r\n\r\nLI T5 44\r\nBEQ T3 T5 load_main_right_array_forty_four\r\nNOP\r\n\r\nLI T5 45\r\nBEQ T3 T5 load_main_right_array_forty_five\r\nNOP\r\n\r\nLI T5 46\r\nBEQ T3 T5 load_main_right_array_forty_six\r\nNOP\r\n\r\nLI T5 47\r\nBEQ T3 T5 load_main_right_array_forty_seven\r\nNOP\r\n\r\nLI T5 48\r\nBEQ T3 T5 load_main_right_array_forty_eight\r\nNOP\r\n\r\nLI T5 49\r\nBEQ T3 T5 load_main_right_array_forty_nine\r\nNOP\r\n\r\nLI T5 50\r\nBEQ T3 T5 load_main_right_array_fifty\r\nNOP\r\n\r\n\r\n;======================================================================================================================================\r\n; This is where the arrays are loaded with all of the possible places you can go based on the current junction and roll\r\n;======================================================================================================================================\r\n\r\nload_main_left_array_one:\r\nLUI S2 hi(main_left_array_one)\r\nADDIU S2 S2 lo(main_left_array_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_two:\r\nLUI S2 hi(main_left_array_two)\r\nADDIU S2 S2 lo(main_left_array_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_three:\r\nLUI S2 hi(main_left_array_three)\r\nADDIU S2 S2 lo(main_left_array_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_four:\r\nLUI S2 hi(main_left_array_four)\r\nADDIU S2 S2 lo(main_left_array_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_five:\r\nLUI S2 hi(main_left_array_five)\r\nADDIU S2 S2 lo(main_left_array_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_six:\r\nLUI S2 hi(main_left_array_six)\r\nADDIU S2 S2 lo(main_left_array_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_seven:\r\nLUI S2 hi(main_left_array_seven)\r\nADDIU S2 S2 lo(main_left_array_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eight:\r\nLUI S2 hi(main_left_array_eight)\r\nADDIU S2 S2 lo(main_left_array_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_nine:\r\nLUI S2 hi(main_left_array_nine)\r\nADDIU S2 S2 lo(main_left_array_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_ten:\r\nLUI S2 hi(main_left_array_ten)\r\nADDIU S2 S2 lo(main_left_array_ten)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eleven:\r\nLUI S2 hi(main_left_array_eleven)\r\nADDIU S2 S2 lo(main_left_array_eleven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twelve:\r\nLUI S2 hi(main_left_array_twelve)\r\nADDIU S2 S2 lo(main_left_array_twelve)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirteen:\r\nLUI S2 hi(main_left_array_thirteen)\r\nADDIU S2 S2 lo(main_left_array_thirteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fourteen:\r\nLUI S2 hi(main_left_array_fourteen)\r\nADDIU S2 S2 lo(main_left_array_fourteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fifteen:\r\nLUI S2 hi(main_left_array_fifteen)\r\nADDIU S2 S2 lo(main_left_array_fifteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_sixteen:\r\nLUI S2 hi(main_left_array_sixteen)\r\nADDIU S2 S2 lo(main_left_array_sixteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_seventeen:\r\nLUI S2 hi(main_left_array_seventeen)\r\nADDIU S2 S2 lo(main_left_array_seventeen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eighteen:\r\nLUI S2 hi(main_left_array_eighteen)\r\nADDIU S2 S2 lo(main_left_array_eighteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_nineteen:\r\nLUI S2 hi(main_left_array_nineteen)\r\nADDIU S2 S2 lo(main_left_array_nineteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty:\r\nLUI S2 hi(main_left_array_twenty)\r\nADDIU S2 S2 lo(main_left_array_twenty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_one:\r\nLUI S2 hi(main_left_array_twenty_one)\r\nADDIU S2 S2 lo(main_left_array_twenty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_two:\r\nLUI S2 hi(main_left_array_twenty_two)\r\nADDIU S2 S2 lo(main_left_array_twenty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_three:\r\nLUI S2 hi(main_left_array_twenty_three)\r\nADDIU S2 S2 lo(main_left_array_twenty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_four:\r\nLUI S2 hi(main_left_array_twenty_four)\r\nADDIU S2 S2 lo(main_left_array_twenty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_five:\r\nLUI S2 hi(main_left_array_twenty_five)\r\nADDIU S2 S2 lo(main_left_array_twenty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_six:\r\nLUI S2 hi(main_left_array_twenty_six)\r\nADDIU S2 S2 lo(main_left_array_twenty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_seven:\r\nLUI S2 hi(main_left_array_twenty_seven)\r\nADDIU S2 S2 lo(main_left_array_twenty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_eight:\r\nLUI S2 hi(main_left_array_twenty_eight)\r\nADDIU S2 S2 lo(main_left_array_twenty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_nine:\r\nLUI S2 hi(main_left_array_twenty_nine)\r\nADDIU S2 S2 lo(main_left_array_twenty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty:\r\nLUI S2 hi(main_left_array_thirty)\r\nADDIU S2 S2 lo(main_left_array_thirty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_one:\r\nLUI S2 hi(main_left_array_thirty_one)\r\nADDIU S2 S2 lo(main_left_array_thirty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_two:\r\nLUI S2 hi(main_left_array_thirty_two)\r\nADDIU S2 S2 lo(main_left_array_thirty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_three:\r\nLUI S2 hi(main_left_array_thirty_three)\r\nADDIU S2 S2 lo(main_left_array_thirty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_four:\r\nLUI S2 hi(main_left_array_thirty_four)\r\nADDIU S2 S2 lo(main_left_array_thirty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_five:\r\nLUI S2 hi(main_left_array_thirty_five)\r\nADDIU S2 S2 lo(main_left_array_thirty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_six:\r\nLUI S2 hi(main_left_array_thirty_six)\r\nADDIU S2 S2 lo(main_left_array_thirty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_seven:\r\nLUI S2 hi(main_left_array_thirty_seven)\r\nADDIU S2 S2 lo(main_left_array_thirty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_eight:\r\nLUI S2 hi(main_left_array_thirty_eight)\r\nADDIU S2 S2 lo(main_left_array_thirty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_nine:\r\nLUI S2 hi(main_left_array_thirty_nine)\r\nADDIU S2 S2 lo(main_left_array_thirty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty:\r\nLUI S2 hi(main_left_array_forty)\r\nADDIU S2 S2 lo(main_left_array_forty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_one:\r\nLUI S2 hi(main_left_array_forty_one)\r\nADDIU S2 S2 lo(main_left_array_forty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_two:\r\nLUI S2 hi(main_left_array_forty_two)\r\nADDIU S2 S2 lo(main_left_array_forty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_three:\r\nLUI S2 hi(main_left_array_forty_three)\r\nADDIU S2 S2 lo(main_left_array_forty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_four:\r\nLUI S2 hi(main_left_array_forty_four)\r\nADDIU S2 S2 lo(main_left_array_forty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_five:\r\nLUI S2 hi(main_left_array_forty_five)\r\nADDIU S2 S2 lo(main_left_array_forty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_six:\r\nLUI S2 hi(main_left_array_forty_six)\r\nADDIU S2 S2 lo(main_left_array_forty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_seven:\r\nLUI S2 hi(main_left_array_forty_seven)\r\nADDIU S2 S2 lo(main_left_array_forty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_eight:\r\nLUI S2 hi(main_left_array_forty_eight)\r\nADDIU S2 S2 lo(main_left_array_forty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_nine:\r\nLUI S2 hi(main_left_array_forty_nine)\r\nADDIU S2 S2 lo(main_left_array_forty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fifty:\r\nLUI S2 hi(main_left_array_fifty)\r\nADDIU S2 S2 lo(main_left_array_fifty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nload_main_right_array_one:\r\nLUI S2 hi(main_right_array_one)\r\nADDIU S2 S2 lo(main_right_array_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_two:\r\nLUI S2 hi(main_right_array_two)\r\nADDIU S2 S2 lo(main_right_array_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_three:\r\nLUI S2 hi(main_right_array_three)\r\nADDIU S2 S2 lo(main_right_array_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_four:\r\nLUI S2 hi(main_right_array_four)\r\nADDIU S2 S2 lo(main_right_array_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_five:\r\nLUI S2 hi(main_right_array_five)\r\nADDIU S2 S2 lo(main_right_array_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_six:\r\nLUI S2 hi(main_right_array_six)\r\nADDIU S2 S2 lo(main_right_array_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_seven:\r\nLUI S2 hi(main_right_array_seven)\r\nADDIU S2 S2 lo(main_right_array_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eight:\r\nLUI S2 hi(main_right_array_eight)\r\nADDIU S2 S2 lo(main_right_array_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_nine:\r\nLUI S2 hi(main_right_array_nine)\r\nADDIU S2 S2 lo(main_right_array_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_ten:\r\nLUI S2 hi(main_right_array_ten)\r\nADDIU S2 S2 lo(main_right_array_ten)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eleven:\r\nLUI S2 hi(main_right_array_eleven)\r\nADDIU S2 S2 lo(main_right_array_eleven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twelve:\r\nLUI S2 hi(main_right_array_twelve)\r\nADDIU S2 S2 lo(main_right_array_twelve)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirteen:\r\nLUI S2 hi(main_right_array_thirteen)\r\nADDIU S2 S2 lo(main_right_array_thirteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fourteen:\r\nLUI S2 hi(main_right_array_fourteen)\r\nADDIU S2 S2 lo(main_right_array_fourteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fifteen:\r\nLUI S2 hi(main_right_array_fifteen)\r\nADDIU S2 S2 lo(main_right_array_fifteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_sixteen:\r\nLUI S2 hi(main_right_array_sixteen)\r\nADDIU S2 S2 lo(main_right_array_sixteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_seventeen:\r\nLUI S2 hi(main_right_array_seventeen)\r\nADDIU S2 S2 lo(main_right_array_seventeen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eighteen:\r\nLUI S2 hi(main_right_array_eighteen)\r\nADDIU S2 S2 lo(main_right_array_eighteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_nineteen:\r\nLUI S2 hi(main_right_array_nineteen)\r\nADDIU S2 S2 lo(main_right_array_nineteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty:\r\nLUI S2 hi(main_right_array_twenty)\r\nADDIU S2 S2 lo(main_right_array_twenty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_one:\r\nLUI S2 hi(main_right_array_twenty_one)\r\nADDIU S2 S2 lo(main_right_array_twenty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_two:\r\nLUI S2 hi(main_right_array_twenty_two)\r\nADDIU S2 S2 lo(main_right_array_twenty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_three:\r\nLUI S2 hi(main_right_array_twenty_three)\r\nADDIU S2 S2 lo(main_right_array_twenty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_four:\r\nLUI S2 hi(main_right_array_twenty_four)\r\nADDIU S2 S2 lo(main_right_array_twenty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_five:\r\nLUI S2 hi(main_right_array_twenty_five)\r\nADDIU S2 S2 lo(main_right_array_twenty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_six:\r\nLUI S2 hi(main_right_array_twenty_six)\r\nADDIU S2 S2 lo(main_right_array_twenty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_seven:\r\nLUI S2 hi(main_right_array_twenty_seven)\r\nADDIU S2 S2 lo(main_right_array_twenty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_eight:\r\nLUI S2 hi(main_right_array_twenty_eight)\r\nADDIU S2 S2 lo(main_right_array_twenty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_nine:\r\nLUI S2 hi(main_right_array_twenty_nine)\r\nADDIU S2 S2 lo(main_right_array_twenty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty:\r\nLUI S2 hi(main_right_array_thirty)\r\nADDIU S2 S2 lo(main_right_array_thirty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_one:\r\nLUI S2 hi(main_right_array_thirty_one)\r\nADDIU S2 S2 lo(main_right_array_thirty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_two:\r\nLUI S2 hi(main_right_array_thirty_two)\r\nADDIU S2 S2 lo(main_right_array_thirty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_three:\r\nLUI S2 hi(main_right_array_thirty_three)\r\nADDIU S2 S2 lo(main_right_array_thirty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_four:\r\nLUI S2 hi(main_right_array_thirty_four)\r\nADDIU S2 S2 lo(main_right_array_thirty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_five:\r\nLUI S2 hi(main_right_array_thirty_five)\r\nADDIU S2 S2 lo(main_right_array_thirty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_six:\r\nLUI S2 hi(main_right_array_thirty_six)\r\nADDIU S2 S2 lo(main_right_array_thirty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_seven:\r\nLUI S2 hi(main_right_array_thirty_seven)\r\nADDIU S2 S2 lo(main_right_array_thirty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_eight:\r\nLUI S2 hi(main_right_array_thirty_eight)\r\nADDIU S2 S2 lo(main_right_array_thirty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_nine:\r\nLUI S2 hi(main_right_array_thirty_nine)\r\nADDIU S2 S2 lo(main_right_array_thirty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty:\r\nLUI S2 hi(main_right_array_forty)\r\nADDIU S2 S2 lo(main_right_array_forty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_one:\r\nLUI S2 hi(main_right_array_forty_one)\r\nADDIU S2 S2 lo(main_right_array_forty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_two:\r\nLUI S2 hi(main_right_array_forty_two)\r\nADDIU S2 S2 lo(main_right_array_forty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_three:\r\nLUI S2 hi(main_right_array_forty_three)\r\nADDIU S2 S2 lo(main_right_array_forty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_four:\r\nLUI S2 hi(main_right_array_forty_four)\r\nADDIU S2 S2 lo(main_right_array_forty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_five:\r\nLUI S2 hi(main_right_array_forty_five)\r\nADDIU S2 S2 lo(main_right_array_forty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_six:\r\nLUI S2 hi(main_right_array_forty_six)\r\nADDIU S2 S2 lo(main_right_array_forty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_seven:\r\nLUI S2 hi(main_right_array_forty_seven)\r\nADDIU S2 S2 lo(main_right_array_forty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_eight:\r\nLUI S2 hi(main_right_array_forty_eight)\r\nADDIU S2 S2 lo(main_right_array_forty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_nine:\r\nLUI S2 hi(main_right_array_forty_nine)\r\nADDIU S2 S2 lo(main_right_array_forty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fifty:\r\nLUI S2 hi(main_right_array_fifty)\r\nADDIU S2 S2 lo(main_right_array_fifty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n;======================================================================================================================================\r\n;This is where we loop through the chosen path to figure out where we will land and what passing spaces to store in the passing array\r\n;======================================================================================================================================\r\n\r\nmain_preprocessing:\r\n\r\nLHU S7 10(S3) ; stores player coins in S7 which is used to estimate what will happen to the coins based on spaces encountered in the future\r\n\r\nLUI T9 hi(cur_player_spaces_remaining)\r\nADDIU T9 T9 lo(cur_player_spaces_remaining)\r\nLW T9 0(T9) ; loads Current Spaces Remaining in T9\r\nSW T9 160(SP)\r\n\r\nADDU T2 R0 R0 ; set loop counter to 0\r\n\r\nLUI T0 hi(passing_space_array)\r\nADDIU T0 T0 lo(passing_space_array) ; loads passing space array into T0 so we can clear it\r\n\r\n\r\nLUI T1 hi(future_space_array)\r\nADDIU T1 T1 lo(future_space_array) ; loads future space array into T1 so we can clear it\r\n\r\n; this clears the loop for future\r\nloop_clearing:\r\n\r\nSB R0 0(T0)\r\nSB R0 0(T1)\r\n\r\nADDIU T0 T0 1\r\nADDIU T1 T1 1\r\nADDIU T2 T2 1\r\nSLTI V0 T2 60 ; if T2 is less than 60, V0 equals 1\r\n\r\nBNEZ V0 loop_clearing\r\nNOP\r\n\r\n\r\nLUI S4 hi(passing_space_array)\r\nADDIU S4 S4 lo(passing_space_array) ; loads passing space array into S4 so we can start adding passing by spaces to it\r\n\r\n; below is where we get the code to see how many items the player currently has which will be used to simulate changes to it for each possible path\r\nitem_estimate:\r\nLI T0 -1\r\nLB T1 24(S3) \r\n\r\nBEQ T0 T1 item_slot_one_is_empty\r\nNOP\r\n\r\nLB T1 25(S3) \r\nBEQ T0 T1 item_slot_two_is_empty\r\nNOP\r\n\r\nLB T1 26(S3) \r\nBEQ T0 T1 item_slot_three_is_empty\r\nNOP\r\n\r\nLI T9 3\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_one_is_empty:\r\nDADDU T9 R0 R0\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_two_is_empty:\r\nLI T9 1\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_three_is_empty:\r\nLI T9 2\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\n\r\n; this loop is used to store passby spaces and figure out where the cpu will land\r\nmain_space_processing_loop:\r\n\r\nLBU T7 0(S2) ; looks at current value in S2 which is where this current array is stored\r\nBEQZ T7 array_is_too_short\r\nNOP\r\n\r\nLUI T5 hi(skip_space_array)\r\nADDIU T5 T5 lo(skip_space_array) ; sets T5 equal to the skip space array\r\n\r\nLUI T4 hi(save_to_passing_arrays_array)\r\nADDIU T4 T4 lo(save_to_passing_arrays_array) ; sets T4 equal to the passing arrays array\r\n\r\ncheck_if_space_will_not_count_towards_remaining_spaces_loop:\r\nLB T6 0(T5) ; loads skip space array's current value into T6\r\n\r\nBEQ T6 T7 add_one_to_main_space_processing_loop ; checks if the current space id matches skip space array's current value, if it matches then another loop will be added to account for the fact that it won't be counted towards the roll\r\nNOP\r\n\r\nreturn_to_check_if_space_will_not_count_towards_remaining_spaces_loop:\r\nBEQZ T6 check_if_space_is_counted_in_passing_array_loop ; checks if the skip space array's value is zero which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\nADDIU T5 T5 1 ; adds 1 to the count down for the check_if_space_will_not_count_towards_remaining_spaces_loop which goes to the next value in the skip space array\r\n\r\nJ check_if_space_will_not_count_towards_remaining_spaces_loop\r\nNOP\r\n\r\n\r\nadd_one_to_main_space_processing_loop:\r\nLW T9 160(SP)\r\nADDIU T9 T9 1 ; adds 1 to the count down for the main_space_processing_loop\r\nSW T9 160(SP)\r\nJ return_to_check_if_space_will_not_count_towards_remaining_spaces_loop\r\nNOP\r\n\r\n\r\ncheck_if_space_is_counted_in_passing_array_loop:\r\nLW T9 160(SP)\r\n\r\nLB T6 0(T4) ; loads passing space array's current value into T6\r\nBEQ T6 T7 save_to_passing_array ; checks if the current space id matches passing space array's current value, if it matches then it is added to the passing space array for point calculations later on\r\nNOP\r\n\r\nreturn_to_check_if_space_is_counted_in_passing_array_loop:\r\nBEQZ T6 return_to_main_loop ; checks if the passing space array's value is zero which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\nADDIU T4 T4 1 ; adds 1 to go to the next value in the passing space array\r\n\r\nJ check_if_space_is_counted_in_passing_array_loop\r\nNOP\r\n\r\n\r\nsave_to_passing_array:\r\nSB T7 0(S4) ; this is where values are stored in the passing array\r\nADDIU S4 S4 1\r\n\r\nJ return_to_check_if_space_is_counted_in_passing_array_loop\r\nNOP\r\n\r\n\r\nreturn_to_main_loop:\r\n\r\nADDIU S2 S2 1 ; adds to the main array to check the next value\r\n\r\nLW T9 160(SP)\r\nADDIU T9 T9 -1 ; removes one from roll to check next space\r\n\r\nBEQZ T9 passing_array_processing  ; checks if the roll count down value is zero which means it is the end of the main_space_processing_loop and it is time to move on\r\nNOP\r\n\r\nSW T9 160(SP)\r\n\r\n\r\nJ main_space_processing_loop\r\nNOP\r\n\r\n\r\n\r\npassing_array_processing:\r\nSB T7 64(SP) ; saves the currently landed on space id for future usage\r\nLUI S4 hi(passing_space_array)\r\nADDIU S4 S4 lo(passing_space_array) ; reloads passing space array into S4 to reset position\r\n\r\npassing_array_processing_loop:\r\nLB T6 0(S4) ; checks the current value of the passing space array\r\n\r\nBEQZ T6 land_processing ; checks if the value is 0 which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\n\r\nLI T5 8\r\nBEQ T6 T5 bank_passing ; checks if the id matches the bank where it goes to remove 5 coins from the estimate\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T6 T5 item_shop_passing ; checks if the id matches the item shop where it adds and item to the item estimate to figure out the value of an item space later on\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T6 T5 boo_passing ; checks if the id matches boo where it calculates if it can steal stars or coins\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\n\r\n\r\nreturn_to_passing_array_processing:\r\nADDIU S4 S4 1 ; adds 1 to move to the next value in the passing array\r\n\r\nJ passing_array_processing_loop\r\nNOP\r\n\r\n\r\n; passing 1 $\r\nstar_passing:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 will_pass_star_with_enough_coins\r\nNOP\r\n\r\nBEQ S7 T5 will_pass_star_with_enough_coins ; checks if have enough coins to buy a star\r\nNOP\r\n\r\nJ return_to_passing_array_processing ; we do not have enough coins so passing the star will not be useful in any way so it will be ignored\r\nNOP\r\n\r\nwill_pass_star_with_enough_coins:\r\nADDIU S7 S7 -20 ; this subtracts 20 from the current coin estimate\r\nADDIU S1 S1 500 ; if we have enough points to buy a star 500 points will be added by default\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\n; passing 2 $\r\nitem_shop_passing:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nDADDU T2 R0 R0 ; sets T2 to 0\r\nSUBU T2 T0 T1 ; T2 tells you have many turns are left\r\nBGTZ T2 item_shop_passing_item_check ; if we are not on the last turn then we go to item_shop_passing_item_check\r\nNOP\r\nJ return_to_passing_array_processing ; this is only reached for the last turn so item shops are pointless\r\nNOP\r\n\r\n\r\n\r\nitem_shop_passing_item_check:\r\nLI T5 3\r\nLBU T9 156(SP) ; load item estimate for usage in near future\r\nSLT T0 T9 T5 ; makes sure we have less than 3 estimated items before moving on\r\nBNEZ T0 item_shop_passing_point_check ; if T0 is not zero then run this code\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\nitem_shop_passing_point_check:\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_twenty\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_twenty\r\nNOP\r\n\r\nLI T5 15\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_fifteen\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_fifteen\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_ten\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_ten\r\nNOP\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_five\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_five\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_twenty:\r\nADDIU S1 S1 10 ; adds points if the cpu has 20 coins and it will pass a shop 10 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_fifteen:\r\nADDIU S1 S1 7 ; adds points if the cpu has 15 coins and it will pass a shop 7 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_ten:\r\nADDIU S1 S1 5 ; adds points if the cpu has 10 coins and it will pass a shop 5 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_five:\r\nADDIU S1 S1 3 ; adds points if the cpu has 5 coins and it will pass a shop 3 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n; passing 3 $\r\nboo_passing:\r\n\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_star_check\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_star_check ; checks if cpu has enough coins to steal a star\r\nNOP\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_coin_check\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_coin_check ; checks if cpu has enough coins to steal coins\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nboo_passing_star_check:\r\nJAL GetSumOfPlayerStars ; Sum of all stars at V0\r\nNOP\r\n\r\nLBU T7 14(S3) ; puts current player's stars in T7\r\n\r\nBNE V0 T7 boo_passing_star_steal_estimate ; makes sure that there are stars for cpu to steal\r\nNOP\r\n\r\nBEQ V0 T7 boo_passing_coin_check ; jumps to coin stealing if there are no stars to steal\r\nNOP\r\n\r\nboo_passing_star_steal_estimate:\r\nADDIU S1 S1 100 ; adds points for passing boo and being able to steal a star 100 points will be added by default\r\nADDIU S7 S7 -50 ; removes 50 coins for assumed star steal\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nboo_passing_coin_check:\r\nJAL GetCurrentPlayerIndex ; returns current player's position\r\nNOP\r\nDADDU T1 R0 R0 ; clears T1\r\nDADDU T2 R0 R0 ; clears T2\r\nDADDU T3 R0 R0 ; clears T3\r\nDADDU T4 R0 R0 ; clears T4\r\n\r\ncheck_player_one_is_not_current_for_coins:\r\nBNEZ V0 load_player_one_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_coins:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_coins:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_coins:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\nplayer_coin_comparison_start:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_coin_comparison_one_two_is_larger\r\nNOP \r\n\r\nplayer_coin_comparison_three:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_coin_comparison_two_three_is_larger\r\nNOP\r\n\r\nplayer_coin_comparison_four:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_coin_comparison_three_four_is_larger\r\nNOP\r\n\r\n; the above code was used to store the largest coin amount belonging to another player in T1\r\n\r\nboo_passing_coin_check_final:\r\nLI T5 5\r\nSLT T6 T1 T5 ; if there are not enough coins to steal we set T6 to 1\r\nBNEZ T6 boo_passing_coin_check_failed ; we run this code to ignore boo if T6 is not zero\r\nNOP\r\n\r\nADDIU S1 S1 19; add boo points for coins 19 points will be added by default\r\nADDIU S7 S7 -5 ; subtract 5 for paying boo to steal coins\r\nLUI T0 hi(current_turn)\r\nADDIU T0 T0 lo(current_turn) ; Address of current turn\r\nLBU T0 0(T0) ; Load current turn to T0\r\n\r\n ; the code below estimates the minimum amount of money to be recieved from boo and code that we jumped to in previous bits of this boo code and we jump back to earlier\r\n\r\nLI T5 46\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_six\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_six ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 36\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_three\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_three ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 26\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_one\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_one ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 16\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_eighteen\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_eighteen ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 6\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_sixteen\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_sixteen ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nSLT T6 T0 T5 ; checks current turn to see what the minimum amount stolen from boo will be\r\nBNEZ T6 coins_to_be_checked_six\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_six:\r\nLI T5 26\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_six\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_six\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_three:\r\nLI T5 23\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_three\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_three\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_one:\r\nLI T5 21\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_one\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_one\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_eighteen:\r\nLI T5 18\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_eighteen\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_eighteen\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\n\r\ncoins_to_be_checked_sixteen:\r\nLI T5 16\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_sixteen\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_sixteen\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_six:\r\nLI T5 6\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_six\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_six\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\n\r\ncoins_to_be_stolen_twenty_six:\r\nADDIU S7 S7 26\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_twenty_three:\r\nADDIU S7 S7 23\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_twenty_one:\r\nADDIU S7 S7 21\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_eighteen:\r\nADDIU S7 S7 18\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_sixteen:\r\nADDIU S7 S7 16\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_six:\r\nADDIU S7 S7 6\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nnot_enough_coins:\r\nADDU S7 S7 T1\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nboo_passing_coin_check_failed:\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nload_player_one_coins:\r\nLBU T1 148(SP)\r\nJ check_player_two_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_two_coins:\r\nLHU T2 140(SP)\r\nJ check_player_three_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_three_coins:\r\nLHU T3 132(SP)\r\nJ check_player_four_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_four_coins:\r\nLHU T4 124(SP)\r\nJ player_coin_comparison_start\r\nNOP\r\n\r\nplayer_coin_comparison_one_two_is_larger:\r\nMOVE T1 T2\r\nJ player_coin_comparison_three\r\nNOP\r\n\r\nplayer_coin_comparison_two_three_is_larger:\r\nMOVE T1 T3\r\nJ player_coin_comparison_four\r\nNOP\r\n\r\nplayer_coin_comparison_three_four_is_larger:\r\nMOVE T1 T4\r\nJ boo_passing_coin_check_final\r\nNOP\r\n\r\n\r\n\r\n\r\n; passing 4 $\r\nbank_passing:\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_five_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_five_from_estimated_coins ; runs code to estimate the loss of 5 coins if the cpu has at least 5 coins\r\nNOP\r\n\r\nSLT T6 S7 T5 ; runs code to clear out the estimated coins because the cpu has less than 5 coins\r\nBNEZ T6 set_estimated_coins_to_zero_for_bank_passing\r\nNOP\r\n\r\nset_estimated_coins_to_zero_for_bank_passing:\r\nDADDU S7 R0 R0 ; sets estimated coins to 0\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nsubtract_five_from_estimated_coins:\r\nADDIU S7 S7 -5 ; subtracts 5 from estimated coins\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nland_processing:\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLBU T8 64(SP)\r\n\r\n\r\nLI T5 1\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T8 T5 red_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T8 T5 chance_time_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T8 T5 bowser_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T8 T5 item_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T8 T5 battle_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T8 T5 game_guy_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T8 T5 bank_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLI T5 19\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T8 T5 happening_space_good ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T8 T5 happening_space_bad ; runs the right code for the right ids\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 1 $\r\nitem_space:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nBEQ T1 T0 last_turn_so_item_spaces_cannot_give_items\r\nNOP\r\n\r\nLI T5 3\r\nLBU T9 156(SP)\r\n\r\nSLT T6 T9 T5 \r\nBNEZ T6 less_than_three_items\r\nNOP\r\n\r\nSLT T6 T5 T9\r\nBNEZ T6 too_many_items\r\nNOP\r\n\r\nBEQ T9 T5 too_many_items\r\nNOP\r\n\r\nless_than_three_items:\r\nADDIU S1 S1 18 ; adds points for landing on an item space and you can accept an item 18 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ntoo_many_items:\r\nADDIU S1 S1 12 ; adds points for landing on an item space while being full on items 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nlast_turn_so_item_spaces_cannot_give_items:\r\nADDIU S1 S1 12 ; adds points for landing on an item space in the last turn 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n; landing 2 $\r\nbank_space:\r\n\r\nADDIU S7 S7 5\r\n\r\nLUI T1 hi(bank_coin_total)\r\nADDIU T1 T1 lo(bank_coin_total) ; Address of coin count in bank\r\nLHU T1 0(T1) ; Load current coin count in bank to T1\r\n\r\nBEQZ T1 bank_is_empty ; runs code if bank is empty\r\nNOP\r\n\r\n\r\nADDU T0 T1 S7 ; gets an estimate for the bank coin count added with current coin estimate\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 coin_estimate_is_at_least_fifty\r\nNOP\r\n\r\nBEQ S7 T5 coin_estimate_is_at_least_fifty ; runs code if the cpu's coin count is at least 50 \r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 coin_estimate_is_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 coin_estimate_is_at_least_twenty ; runs code if the cpu's coin count is at least 20 \r\nNOP\r\n\r\n\r\nSLT T6 S7 T5  ; runs code if the cpu's coin count is less than 20\r\nBNEZ T6 coin_estimate_is_less_than_twenty\r\nNOP\r\n\r\n ; the code below calculates if points should be added based on the bank's current coin count or the estimated coin count along with the bank total which is all based on the cpu's currently estimated coins\r\ncoin_estimate_is_at_least_fifty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_less_than_twenty\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_are_less_than_twenty\r\nNOP\r\n\r\n\r\n\r\ncoin_estimate_is_less_than_twenty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T0 T5 \r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_less_than_twenty\r\nNOP\r\n\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty:\r\nADDIU S1 S1 19 ; adds points if the cpu has at least 50 coins and the bank also has at least 50 coins 19 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has at least 50 coins and the bank also has at least 20 coins 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_less_than_twenty:\r\nADDIU S1 S1 17 ; adds points if the cpu has at least 50 coins and the bank also has less than 20 coins 17 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty:\r\nADDIU S1 S1 20 ; adds points if the cpu has at least 20 coins and the bank coin count + the cpu's current estimated coin count is at least 50 20 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has at least 20 coins and the bank coin count is at least 20 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_are_less_than_twenty:\r\nADDIU S1 S1 17 ; adds points if the cpu has at least 20 coins and the bank coin count is less than 20 17 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty:\r\nADDIU S1 S1 20 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is at least 50 20 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty:\r\nADDIU S1 S1 19 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is at least 20 19 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_less_than_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is less than 20 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbank_is_empty:\r\nADDIU S1 S1 14 ; adds points for an empty bank 14 points will be added by default\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 3 $\r\nblue_space:\r\nADDIU S1 S1 16 ; adds points for a blue space 16 points will be added by default\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\nLI T5 5\r\nSLT T6 T5 T2 ; runs code when it is not the last 5 turns\r\nBNEZ T6 add_coins_to_coin_estimate_normal_blue_space\r\nNOP\r\n\r\nSLT T6 T2 T5\r\nBNEZ T6 add_coins_to_coin_estimate_last_five_turn_blue_space\r\nNOP\r\n\r\nBEQ T2 T5 add_coins_to_coin_estimate_last_five_turn_blue_space ; runs code when it is the last 5 turns\r\nNOP\r\n\r\nadd_coins_to_coin_estimate_normal_blue_space:\r\nADDIU S7 S7 3 ; adds estimated coins for landing on a blue space when it is not the last 5 turns\r\nJ pre_future_point\r\nNOP\r\n\r\nadd_coins_to_coin_estimate_last_five_turn_blue_space:\r\nADDIU S7 S7 6 ; adds estimated coins for landing on a blue space during the last 5 turns\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 4 $\r\nbattle_space:\r\nLI T5 20\r\n\r\nSLT T6 T5 S7\r\nBNEZ T6 battle_space_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 battle_space_at_least_twenty ; loads code if the current estimated coins are at least 20\r\nNOP\r\n\r\nSLT T6 S7 T5  ; loads code if the current estimated coins are less than 20\r\nBNEZ T6 battle_space_less_than_twenty\r\nNOP\r\n\r\nbattle_space_at_least_twenty:\r\nADDIU S1 S1 6 ; adds points for a battle space when you have over 20 coins 6 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nbattle_space_less_than_twenty:\r\nADDIU S1 S1 12 ; adds points for a battle space when you have less than 20 coins 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n; landing 5 $\r\nred_space:\r\nADDIU S1 S1 8 ; adds points for a red space 8 points will be added by default\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\n\r\nLI T5 5\r\nSLT T6 T5 T2 ; runs code when it is not the last 5 turns\r\nBNEZ T6 remove_coins_to_coin_estimate_normal_red_space\r\nNOP\r\n\r\nSLT T6 T2 T5\r\nBNEZ T6 remove_coins_to_coin_estimate_last_five_turn_red_space\r\nNOP\r\n\r\nBEQ T2 T5 remove_coins_to_coin_estimate_last_five_turn_red_space ; runs code when it is the last 5 turns\r\nNOP\r\n\r\nremove_coins_to_coin_estimate_normal_red_space:\r\nLI T5 3\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_three_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_three_from_estimated_coins ; runs code for when coin count to be taken is not less than estimated coin count\r\nNOP\r\n\r\nSLT T6 S7 T5  ; runs code for when coin count to be taken is less than estimated coin count\r\nBNEZ T6 set_estimated_coins_to_zero_for_red_space_landing\r\nNOP\r\n\r\nsubtract_three_from_estimated_coins:\r\nADDIU S7 S7 -3 ; subtracts 3 coins from estimated coin count\r\nJ pre_future_point\r\nNOP\r\n\r\nremove_coins_to_coin_estimate_last_five_turn_red_space:\r\nLI T5 6\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_six_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_six_from_estimated_coins ; runs code for when coin count to be taken is not less than estimated coin count\r\nNOP\r\n\r\nSLT T6 S7 T5  ; runs code for when coin count to be taken is less than estimated coin count\r\nBNEZ T6 set_estimated_coins_to_zero_for_red_space_landing\r\nNOP\r\n\r\nsubtract_six_from_estimated_coins:\r\nADDIU S7 S7 -6 ; subtracts 6 coins from estimated coin count\r\nJ pre_future_point\r\nNOP\r\n\r\nset_estimated_coins_to_zero_for_red_space_landing:\r\nDADDU S7 R0 R0 ; clears current coin count\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 6 $\r\nbowser_space:\r\n\r\nBEQZ S7 bowser_space_has_no_coins\r\nNOP\r\n\r\nBNEZ S7 bowser_space_has_coins\r\nNOP\r\n\r\nbowser_space_has_coins:\r\nADDIU S1 S1 6 ; adds points for landing on bowser when the CPU has coins 6 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nbowser_space_has_no_coins:\r\nADDIU S1 S1 18 ; adds points for landing on bowser when the CPU has no coins 18 points will be added by default\r\n\r\nJAL GetPlayerPlacement ; 0-3 at V0\r\nLBU A0 29(S3) ; Player Index\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\n; the code below is to estimate the amount of coins that bowser will give when you have 0 coins based on placement and turn count\r\n\r\nLI T5 5\r\nSLT T6 T1 T5\r\nBNEZ T6 bowser_space_early_game\r\nNOP\r\n\r\nBEQ T1 T5 bowser_space_early_game\r\nNOP\r\n\r\nSLT T6 T5 T2\r\nBNEZ T6 bowser_space_late_game\r\nNOP\r\n\r\nBEQ T2 T5 bowser_space_late_game\r\nNOP\r\n\r\n\r\nbowser_space_mid_game:\r\n\r\nLI T5 1\r\nSLT T6 V0 T5\r\nBNEZ T6 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_fourty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_fourty_coins\r\nNOP\r\n\r\n\r\nbowser_space_early_game:\r\n\r\nLI T5 1\r\nSLT T6 V0 T5\r\nBNEZ T6 bowser_space_add_twenty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_twenty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_thirty_coins\r\nNOP\r\n\r\n\r\nbowser_space_late_game:\r\nBEQZ V0 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nLI T5 1\r\nBEQ V0 T5 bowser_space_add_fourty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_fifty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_fifty_coins\r\nNOP\r\n\r\n\r\n\r\nbowser_space_add_twenty_coins:\r\nADDIU S7 S7 20\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_thirty_coins:\r\nADDIU S7 S7 30\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_fourty_coins:\r\nADDIU S7 S7 40\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_fifty_coins:\r\nADDIU S7 S7 50\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n; landing 7 $\r\ngame_guy_space:\r\nBEQZ S7 game_guy_zero_coins\r\nNOP\r\n\r\nLI T5 41\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_forty\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 game_guy_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 game_guy_less_than_twenty\r\nNOP\r\n\r\ngame_guy_at_least_forty:\r\nADDIU S1 S1 2 ; adds points when the cpu has at least 40 coins and they will land on gameguy 2 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ngame_guy_at_least_twenty:\r\nADDIU S1 S1 4 ; adds points when the cpu has at least 20 coins and they will land on gameguy 4 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_less_than_twenty:\r\nADDIU S1 S1 14 ; adds points when the cpu has less than 20 coins and they will land on gameguy 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_zero_coins:\r\nADDIU S1 S1 12 ; adds points when the cpu will have 0 coins and they will land on gameguy 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n; landing 8 $\r\nchance_time_space:\r\n ; the code below tries to find the largest star count that does not belong to the CPU, it is similar to the code used to find the largest coin value not belonging to the current CPU\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\nDADDU T1 R0 R0\r\nDADDU T2 R0 R0\r\nDADDU T3 R0 R0\r\nDADDU T4 R0 R0\r\n\r\ncheck_player_one_is_not_current_for_stars:\r\nBNEZ V0 load_player_one_stars\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_stars:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_stars\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_stars:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_stars\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_stars:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_stars\r\nNOP\r\n\r\nplayer_star_comparison_start:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_star_comparison_one_two_is_larger\r\nNOP \r\n\r\nplayer_star_comparison_three:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_star_comparison_two_three_is_larger\r\nNOP\r\n\r\nplayer_star_comparison_four:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_star_comparison_three_four_is_larger\r\nNOP\r\n\r\nchance_time_star_check_final:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\nLBU T2 14(S3) ; puts current player's stars in T2\r\n\r\nLI T5 3 ; this value is the number of turns to be considered end game (S1 S1 might be useful to change)\r\nSLT T6 T5 T3  \r\nBNEZ T6 early_or_mid_game_chance_time ; runs code if it is not the last 3 turns\r\nNOP\r\n\r\nSLT T6 T3 T5\r\nBNEZ T6 end_game_chance_time\r\nNOP\r\n\r\nBEQ T3 T5 end_game_chance_time ; runs code if it is the last 3 turns\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time:\r\nADDIU T2 T2 2 ; adds a number that is the gap between the first place player's star count and the current player's star count. Changing this number will change the gap required between the cpu and 1st place to make chance time more appealing. By default this number is 2 which means that if the gap is larger than 2 then chance time will be more appealing (S1 S1 here for guidance to change stuff)\r\n\r\nSLT T6 T2 T1  \r\nBNEZ T6 early_or_mid_game_chance_time_add_points ; if the gap is larger than what was set above then it runs this code\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points if the gap between the cpu and 1st place was not large enough 4 points will be added by default\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_add_points:\r\nADDIU S1 S1 14 ; adds points if the gap between the cpu and 1st place was large enough 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nend_game_chance_time:\r\nSLT T6 T2 T1  ; checks if the star count is the same as 1st place\r\nBNEZ T6 end_game_chance_time_add_points\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points if the star count is the same as 1st place 4 points will be added by default\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nend_game_chance_time_add_points:\r\nADDIU S1 S1 14 ; adds points if the star count is less than 1st place 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nload_player_one_stars:\r\nLBU T1 144(SP)\r\n\r\nJ check_player_two_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_two_stars:\r\nLBU T2 136(SP)\r\n\r\nJ check_player_three_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_three_stars:\r\nLBU T3 128(SP)\r\n\r\nJ check_player_four_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_four_stars:\r\nLBU T4 120(SP)\r\n\r\nJ player_star_comparison_start\r\nNOP\r\n\r\nplayer_star_comparison_one_two_is_larger:\r\nMOVE T1 T2\r\n\r\nJ player_star_comparison_three\r\nNOP\r\n\r\nplayer_star_comparison_two_three_is_larger:\r\nMOVE T1 T3\r\n\r\nJ player_star_comparison_four\r\nNOP\r\n\r\nplayer_star_comparison_three_four_is_larger:\r\nMOVE T1 T4\r\n\r\nJ chance_time_star_check_final\r\nNOP\r\n\r\n\r\n\r\n; landing 9 $\r\nhappening_space:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\nLBU T9 64(SP)\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_one_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_two_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_three_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_four_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_five_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_six_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_seven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_eight_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_nine_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_ten_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_eleven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_one_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_two_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_three_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_four_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_five_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_six_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_seven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eight_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_nine_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_ten_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eleven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nbonus_stars_are_not_enabled_happening_space:\r\n\r\nBEQZ T1 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_not_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_not_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\n\r\nLBU T9 64(SP)\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_one_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_two_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_three_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_four_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_five_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_six_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_seven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_eight_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_nine_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_ten_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_eleven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_one_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_two_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_three_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_four_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_five_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_six_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_seven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eight_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_nine_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_ten_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eleven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nbonus_stars_are_enabled_happening_space:\r\nBEQZ T1 happening_space_bonus_stars_are_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n; landing 20 $\r\nhappening_space_good:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_good_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_good_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_good_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_good_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n; landing 21 $\r\nhappening_space_bad:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_bad_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_bad_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_bad_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\nhappening_space_bad_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 12 ; adds points for landing on this space when it is unknown and there are no bonus stars and it is not the last turn, default is 12\r\n\r\nADDIU S1 S1 60 ; adds points for future spaces instead of using the future array code, default is 60\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is unknown and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 20 ; adds points for landing on this space when it is good and there are no bonus stars and it is not the last turn, default is 20\r\n\r\nADDIU S1 S1 100 ; adds points for future spaces instead of using the future array code, default is 100\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is good and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 0 ; adds points for landing on this space when it is bad and there are no bonus stars and it is not the last turn, default is 0\r\n\r\nADDIU S1 S1 0 ; adds points for future spaces instead of using the future array code, default is 0\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is bad and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 14 ; adds points for landing on this space when it is unknown and there are bonus stars and it is not the last turn, default is 14\r\n\r\nADDIU S1 S1 70 ; adds points for future spaces instead of using the future array code, default is 70\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is unknown and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 22 ; adds points for landing on this space when it is good and there are bonus stars and it is not the last turn, default is 22\r\n\r\nADDIU S1 S1 110 ; adds points for future spaces instead of using the future array code, default is 110\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is good and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 2 ; adds points for landing on this space when it is bad and there are bonus stars and it is not the last turn, default is 2\r\n\r\nADDIU S1 S1 0 ; adds points for future spaces instead of using the future array code, default is 0\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is bad and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\npre_future_point:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nLB T5 68(SP)\r\nBNEZ T5 wacky_watch_might_extend_game\r\nNOP\r\n\r\nBEQ T0 T1 pick_point_comparison\r\nNOP\r\n\r\nwacky_watch_might_extend_game:\r\nLUI S4 hi(future_space_array)\r\nADDIU S4 S4 lo(future_space_array) ; loads the future space array into S4\r\nLI T8 10 ; sets T8 to 10 which will be used to estimate the next 10 spaces\r\n\r\nfuture_point_loop:\r\nLBU T7 0(S2) ; loads the currently selected space in S2 to T7\r\n\r\nBEQZ T7 array_is_too_short\r\nNOP\r\n\r\nLUI T5 hi(skip_space_array)\r\nADDIU T5 T5 lo(skip_space_array) ; loads skip space array into T5 also used for resetting position as it loops\r\n\r\ncheck_if_space_will_not_count_towards_remaining_future_spaces_loop:\r\nLB T6 0(T5) ; loads the currently selected space in T5 to T6\r\n\r\nBEQ T6 T7 add_one_to_future_point_loop ; compares id in main space array to the skip space array to see if one should be added in the estimation\r\nNOP\r\n\r\nBEQZ T6 return_to_future_point_loop ; if the id in T6 is 0 that means the skip space array is over and it is time to move on\r\nNOP\r\n\r\nADDIU T5 T5 1 ; adds 1 to T5 to check the next spot's info\r\n\r\nJ check_if_space_will_not_count_towards_remaining_future_spaces_loop\r\nNOP\r\n\r\nadd_one_to_future_point_loop:\r\nADDIU T8 T8 1 ; adds 1 to the estimated roll because a passing space/event has been detected\r\n\r\nreturn_to_future_point_loop:\r\n\r\nBEQZ T8 future_array_processing ; if T8 is zero that means we have reached the 10 spaces and any passing spaces we may have encountered, the position for this here is very important to make sure we don't miscount spaces\r\nNOP\r\n\r\nSB T7 0(S4) ; writes the current space ID to the future space array for point evaluation later on\r\nADDIU S4 S4 1 ; moves to the next value in S4 to prevent overwriting the ID we just wrote\r\nADDIU S2 S2 1 ; adds 1 to S2 to check the next space ID\r\nADDIU T8 T8 -1 ; removes 1 from roll to check next space\r\n\r\nJ future_point_loop\r\nNOP\r\n\r\n\r\n\r\n; future 1 $\r\nstar_passing_future:\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\n\r\n; the code below checks if there are any lucky lamps or magic lamps, if it finds a magic lamp then it checks if that player has enough coins to use it to get the star and then it picks between adding points if there are no items that can prevent the cpu from getting the star or not\r\n\r\ncheck_player_one_is_not_current_for_items:\r\nBNEZ V0 load_player_one_items\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_items:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_items\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_items:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_items\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_items:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_items\r\nNOP\r\n\r\n\r\nstar_passing_future_no_item:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_no_item_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_no_item_at_least_twenty\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_no_item_at_least_ten\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_no_item_at_least_ten\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 star_passing_future_no_item_less_than_ten\r\nNOP\r\n\r\n\r\n\r\nstar_passing_future_item:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_item_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_item_at_least_twenty\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_item_at_least_ten\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_item_at_least_ten\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 star_passing_future_item_less_than_ten\r\nNOP\r\n\r\n\r\n\r\n\r\nstar_passing_future_item_at_least_twenty:\r\nADDIU S1 S1 50 ; adds points when the star is within the next 10 spaces and the coin estimate is enough to buy the star, but another player has an item that may prevent the cpu from getting the star 50 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_item_at_least_ten:\r\nADDIU S1 S1 25 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star but is large enough that winning a minigame can give the cpu enough coins, but another player has an item that may prevent the cpu from getting the star 25 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_item_less_than_ten:\r\nADDIU S1 S1 10 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star even if the cpu wins a minigame, but another player has an item that may prevent the cpu from getting the star 10 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_at_least_twenty:\r\nADDIU S1 S1 100 ; adds points when the star is within the next 10 spaces and the coin estimate is enough to buy the star, and no other players have items that will prevent the cpu from getting the star 100 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_at_least_ten:\r\nADDIU S1 S1 50 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star but will be if a minigame is won, and no other players have items that will prevent the cpu from getting the star 50 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_less_than_ten:\r\nADDIU S1 S1 25 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star even if the cpu wins a minigame, and no other players have items that will prevent the cpu from getting the star 25 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nload_player_one_items:\r\nLBU T0 116(SP)\r\n\r\nLHU T1 148(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_one_coin_check\r\nNOP\r\n\r\n\r\n\r\ncheck_player_one_items_two:\r\nLBU T0 112(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_one_coin_check\r\nNOP\r\n\r\ncheck_player_one_items_three:\r\nLBU T0 108(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_one_coin_check\r\nNOP\r\n\r\nJ check_player_two_is_not_current_for_items\r\nNOP\r\n\r\nload_player_two_items:\r\nLBU T0 104(SP)\r\n\r\nLHU T1 140(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_two_coin_check\r\nNOP\r\n\r\ncheck_player_two_items_two:\r\nLBU T0 100(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_two_coin_check\r\nNOP\r\n\r\ncheck_player_two_items_three:\r\nLBU T0 96(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_two_coin_check\r\nNOP\r\n\r\nJ check_player_three_is_not_current_for_items\r\nNOP\r\n\r\nload_player_three_items:\r\nLBU T0 92(SP)\r\n\r\nLHU T1 132(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_three_coin_check\r\nNOP\r\n\r\ncheck_player_three_items_two:\r\nLBU T0 88(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_three_coin_check\r\nNOP\r\n\r\ncheck_player_three_items_three:\r\nLBU T0 84(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_three_coin_check\r\nNOP\r\n\r\nJ check_player_four_is_not_current_for_items\r\nNOP\r\n\r\n\r\nload_player_four_items:\r\nLBU T0 80(SP)\r\n\r\nLHU T1 124(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_four_coin_check\r\nNOP\r\n\r\ncheck_player_four_items_two:\r\nLBU T0 76(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_four_coin_check\r\nNOP\r\n\r\ncheck_player_four_items_three:\r\nLBU T0 72(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_four_coin_check\r\nNOP\r\n\r\nJ star_passing_future_no_item\r\nNOP\r\n\r\n\r\n\r\nstar_passing_future_item_one_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_one_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_one_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ star_passing_future_no_item\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 2 $\r\nitem_shop_passing_future:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nDADDU T2 R0 R0\r\n\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\nLI T5 1\r\nSLT T6 T5 T2  \r\nBNEZ T6 item_shop_passing_future_enough_turns ; makes sure that when it might be possible to reach the store it will not be the last turn\r\nNOP\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_enough_turns:\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_twenty_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_twenty_coins\r\nNOP\r\n\r\nLI T5 15\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_fifteen_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_fifteen_coins\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_ten_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_ten_coins\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 item_shop_passing_future_add_points_for_less_than_ten_coins\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_twenty_coins:\r\nADDIU S1 S1 10 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 20, 10 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_fifteen_coins:\r\nADDIU S1 S1 7 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 15, 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_ten_coins:\r\nADDIU S1 S1 5 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 10, 5 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_less_than_ten_coins:\r\nADDIU S1 S1 3 ; adds points if a store is within the next 10 spaces and the current coin estimate is less than 10, 3 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n; future 3 $\r\nboo_passing_future:\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_future_can_steal_stars\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_future_can_steal_stars\r\nNOP\r\n\r\nboo_passing_future_cannot_steal_stars:\r\nADDIU S1 S1 35 ; adds points for being able to steal coins using boo within the next 10 spaces 35 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nboo_passing_future_can_steal_stars:\r\nJAL GetSumOfPlayerStars ; Sum of all stars at V0\r\nNOP\r\n\r\nLBU T0 14(S3)\r\n\r\nSLT T6 T0 V0  \r\nBNEZ T6 boo_passing_future_can_steal_stars_gameguy_check\r\nNOP\r\n\r\nJ boo_passing_future_cannot_steal_stars\r\nNOP\r\n\r\n\r\nboo_passing_future_can_steal_stars_gameguy_check:\r\nLBU T9 64(SP)\r\nLI T5 7 \r\nBEQ T9 T5 boo_passing_future_can_steal_stars_gameguy_confirmed\r\nNOP\r\n\r\nADDIU S1 S1 75 ; adds points for being able to steal stars using boo within the next 10 spaces 75 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nboo_passing_future_can_steal_stars_gameguy_confirmed:\r\nADDIU S1 S1 55 ; adds points for being able to steal stars using boo within the next 10 spaces but the cpu will land on gameguy 55 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 4 $\r\nitem_space_future:\r\nADDIU S1 S1 9 ; adds points for future item space within the next 10 spaces 9 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 5 $\r\nbank_space_future:\r\nLUI T1 hi(bank_coin_total)\r\nADDIU T1 T1 lo(bank_coin_total) ; Address of coin count in bank\r\nLHU T1 0(T1) ; Load current coin count in bank to T1\r\n\r\nLI T5 50\r\nSLT T6 T5 T1\r\nBNEZ T6 bank_space_future_at_least_fifty_coins\r\nNOP\r\n\r\nBEQ T1 T5 bank_space_future_at_least_fifty_coins\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 bank_space_future_at_least_twenty_coins\r\nNOP\r\n\r\nBEQ T1 T5 bank_space_future_at_least_twenty_coins\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 bank_space_future_less_than_twenty_coins\r\nNOP\r\n\r\nbank_space_future_at_least_fifty_coins:\r\nADDIU S1 S1 7 ; adds points for a bank space within the next 10 spaces that has at least 50 coins 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbank_space_future_at_least_twenty_coins:\r\nADDIU S1 S1 6 ; adds points for a bank space within the next 10 spaces that has at least 20 coins 6 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbank_space_future_less_than_twenty_coins:\r\nADDIU S1 S1 5 ; adds points for a bank space within the next 10 spaces that has less than 20 coins 5 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 6 $\r\nblue_space_future:\r\nADDIU S1 S1 8 ; adds points for a blue space within the next 10 spaces 8 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 7 $\r\nbattle_space_future:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 battle_space_future_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 battle_space_future_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 battle_space_future_less_than_twenty\r\nNOP\r\n\r\nbattle_space_future_at_least_twenty:\r\nADDIU S1 S1 3 ; adds points for a battle space within the next 10 spaces when the cpu's coin estimate is at least 20, 3 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbattle_space_future_less_than_twenty:\r\nADDIU S1 S1 6 ; adds points for a battle space within the next 10 spaces when the cpu's coin estimate is less than 20, 6 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n; future 8 $\r\nred_space_future:\r\nADDIU S1 S1 4 ; adds points for a red space within the next 10 spaces 4 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 9 $\r\nbowser_space_future:\r\nADDIU S1 S1 3 ; adds points for a bowser space within the next 10 spaces 3 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 10 $\r\ngame_guy_space_future:\r\n\r\nLI T5 41\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_forty_future\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_space_future_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 game_guy_space_future_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 game_guy_space_future_less_than_twenty\r\nNOP\r\n\r\n\r\ngame_guy_at_least_forty_future:\r\nADDIU S1 S1 1 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is at least 40, 1 point will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_space_future_at_least_twenty:\r\nADDIU S1 S1 2 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is at least 20, 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\ngame_guy_space_future_less_than_twenty:\r\nADDIU S1 S1 7 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is less than 20, 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 11 $\r\nchance_time_space_future:\r\n; the code below finds the largest star count belonging to a different player\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\nDADDU T1 R0 R0\r\nDADDU T2 R0 R0\r\nDADDU T3 R0 R0\r\nDADDU T4 R0 R0\r\n\r\ncheck_player_one_is_not_current_for_stars_future:\r\nBNEZ V0 load_player_one_stars_future\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_stars_future:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_stars_future\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_stars_future:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_stars_future\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_stars_future:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_stars_future\r\nNOP\r\n\r\nplayer_star_comparison_start_future:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_star_comparison_one_two_is_larger_future\r\nNOP \r\n\r\nplayer_star_comparison_three_future:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_star_comparison_two_three_is_larger_future\r\nNOP\r\n\r\nplayer_star_comparison_four_future:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_star_comparison_three_four_is_larger_future\r\nNOP\r\n\r\nchance_time_star_check_final_future:\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nLBU T2 14(S3) ; puts current player's stars in T2\r\n\r\nLI T5 3 ; this value is the number of turns to be considered end game (S1 S1 might be useful to change)\r\n\r\nSLT T6 T5 T3  \r\nBNEZ T6 early_or_mid_game_chance_time_future\r\nNOP\r\n\r\nSLT T6 T3 T5\r\nBNEZ T6 end_game_chance_time_future\r\nNOP\r\n\r\nBEQ T3 T5 end_game_chance_time_future\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_future:\r\nADDIU T2 T2 2 ; adds a number that is the gap between the first place player's star count and the current player's star count. Changing this number will change the gap required to make chance time more appealing. By default this number is 2 which means that if the gap is larger than 2 then chance time will be more appealing (S1 S1 here for guidance to change stuff)\r\n\r\nSLT T6 T2 T1  \r\nBNEZ T6 early_or_mid_game_chance_time_future_add_points\r\nNOP\r\n\r\nADDIU S1 S1 2 ; adds points for a chance time within the next 10 spaces when the gap between the cpu and first place is not large enough and it is not the end game 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_future_add_points:\r\nADDIU S1 S1 7 ; adds points for a chance time within the next 10 spaces when the gap between the cpu and first place is large enough and it is not the end game 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nend_game_chance_time_future:\r\nSLT T6 T2 T1 \r\nBNEZ T6 end_game_chance_time_future_add_points\r\nNOP\r\n\r\nADDIU S1 S1 2 ; adds points for a chance time within the next 10 spaces when there is no gap between the cpu and first place and it is the end game 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nend_game_chance_time_future_add_points:\r\nADDIU S1 S1 7 ; adds points for a chance time within the next 10 spaces when there is a gap between the cpu and first place and it is the end game 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nload_player_one_stars_future:\r\nLBU T1 144(SP)\r\nJ check_player_two_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_two_stars_future:\r\nLBU T2 136(SP)\r\nJ check_player_three_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_three_stars_future:\r\nLBU T3 128(SP)\r\nJ check_player_four_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_four_stars_future:\r\nLBU T4 120(SP)\r\nJ player_star_comparison_start_future\r\nNOP\r\n\r\nplayer_star_comparison_one_two_is_larger_future:\r\nMOVE T1 T2\r\nJ player_star_comparison_three_future\r\nNOP\r\n\r\nplayer_star_comparison_two_three_is_larger_future:\r\nMOVE T1 T3\r\nJ player_star_comparison_four_future\r\nNOP\r\n\r\nplayer_star_comparison_three_four_is_larger_future:\r\nMOVE T1 T4\r\nJ chance_time_star_check_final_future\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 12 $\r\nhappening_space_future:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_one_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_two_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_three_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_four_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_five_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_six_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_seven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eight_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_nine_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_ten_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eleven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_one_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_two_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_three_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_four_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_five_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_six_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_seven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eight_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_nine_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_ten_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eleven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nbonus_stars_are_not_enabled_happening_space_future:\r\nBEQZ T1 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_one_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_two_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_three_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_four_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_five_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_six_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_seven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eight_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_nine_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_ten_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eleven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_one_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_two_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_three_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_four_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_five_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_six_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_seven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eight_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_nine_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_ten_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eleven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nbonus_stars_are_enabled_happening_space_future:\r\nBEQZ T1 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n; future 23 $\r\nhappening_space_future_good:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_good_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_good_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_good_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_good_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 24 $\r\nhappening_space_future_bad:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_bad_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_bad_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_bad_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_bad_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 6 ; adds points for being in the next 10 spaces when it is unknown and there are no bonus stars and it is not the last turn, default is 6\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is unknown and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 10 ; adds points for being in the next 10 spaces when it is good and there are no bonus stars and it is not the last turn, default is 10\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is good and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 0 ; adds points for being in the next 10 spaces when it is bad and there are no bonus stars and it is not the last turn, default is 0\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is bad and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 7 ; adds points for being in the next 10 spaces when it is unknown and there are bonus stars and it is not the last turn, default is 6\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is unknown and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 11 ; adds points for being in the next 10 spaces when it is good and there are bonus stars and it is not the last turn, default is 10\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is good and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 1 ; adds points for being in the next 10 spaces when it is bad and there are bonus stars and it is not the last turn, default is 0\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is bad and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfuture_array_processing:\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\n\r\nLUI S4 hi(future_space_array)\r\nADDIU S4 S4 lo(future_space_array) ; loads future space array in S4 to reset the position for processing\r\n\r\nfuture_array_processing_loop:\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\n\r\nBEQZ T9 pick_point_comparison ; checks if the ID is 0 which means the end of the array has been reached and it is time to compare point values with previous point values\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T9 T5 blue_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T9 T5 red_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T9 T5 chance_time_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T9 T5 bowser_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T9 T5 item_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T9 T5 battle_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T9 T5 game_guy_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T9 T5 bank_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T9 T5 item_shop_passing_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T9 T5 boo_passing_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLI T5 19\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T9 T5 happening_space_future_good ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T9 T5 happening_space_future_bad ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nreturn_to_future_array_processing_loop:\r\nADDIU S4 S4 1 ; this is where we add 1 to S4 to check the next value\r\n\r\nJ future_array_processing_loop\r\nNOP\r\n\r\n\r\ncheck_if_space_has_star:\r\nLUI T6 hi(skip_space_array)\r\nADDIU T6 T6 lo(skip_space_array) ; this loads the skip space array \r\nLBU T9 0(T6) ; here we check the first value in the skip space array which is where the current star spawn value is\r\n\r\nBEQ T9 T8 star_passing_future ; if the current star spawn value is the same as the current ID then we run the code for a future star\r\nNOP\r\n\r\nBNE T9 T8 blue_space_future ; if the current star spawn value is not the same as the current ID then we run the code for a future blue space\r\nNOP\r\n\r\n\r\narray_is_too_short:\r\nLI t0, 0x807FFFFC\r\nSW r0, 0x0000 (t0)\r\n;the array has detected a 0 which means that you improperly placed a 0 in one of the arrays or you did not make your array long enough\r\n\r\n\r\npick_point_comparison:\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLB T0 152(SP)\r\nBEQZ T0 left_point_comparison\r\nNOP\r\n\r\nBNEZ T0 right_point_comparison\r\nNOP\r\n\r\nleft_new_largest_point_value:\r\nMOVE S5 S1 ; this is used to overwrite the previous largest value with a new one\r\n\r\nleft_point_comparison:\r\nSLT T0 S5 S1 ; if S5 is less than S1 then T0 will equal 1 otherwise it will equal 0\r\nBNEZ T0 left_new_largest_point_value ; if T0 is not zero then run this code\r\nNOP\r\n\r\n\r\nMOVE S1 R0 ; clears S1 to make sure that it will not cause issues for the next round of adding points\r\nADDIU S0 S0 1 ; this adds 1 to S0 to start checking the next array in the list or to go to the next steps if we have reached that point\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\nright_new_largest_point_value:\r\nMOVE S6 S1 ; this is used to overwrite the previous largest value with a new one\r\n\r\nright_point_comparison:\r\nSLT T0 S6 S1 ; if S6 is less than S1 then T0 will equal 1 otherwise it will equal 0\r\nBNEZ T0 right_new_largest_point_value ; if T0 is not zero then run this code\r\nNOP\r\n\r\nADDIU S0 S0 1 ; this adds 1 to S0 to start checking the next array in the list or to go to the next steps if we have reached that point\r\nMOVE S1 R0 ; clears S1 to make sure that it will not cause issues for the next round of adding points\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\nChoose_Side:\r\nSLT T6 S6 S5 \r\nBNEZ T6 Go_Left\r\nNOP\r\n\r\nSLT T6 S5 S6 \r\nBNEZ T6 Go_Right\r\nNOP\r\n\r\nBEQ S5 S6 exit\r\nNOP\r\n\r\nGo_Left:\r\nLBU A0 29(S3)\r\nLI A1 Left_chain_index\r\nLI A2 Left_chain_space_index\r\n\r\nJ SetDecision\r\nNOP\r\n\r\nGo_Right:\r\nLBU A0 29(S3)\r\nLI A1 Right_chain_index\r\nLI A2 Right_chain_space_index\r\n\r\nJ SetDecision\r\nNOP\r\n\r\nSetDecision:\r\nJAL SetNextChainAndSpace\r\nNOP\r\n\r\nJ exit\r\nNOP\r\n\r\n\r\n\r\nexit:\r\nLW S7 164(SP)\r\nLW S6 168(SP)\r\nLW S5 172(SP)\r\nLW S4 176(SP)\r\nLW S3 180(SP)\r\nLW S2 184(SP)\r\nLW S1 188(SP)\r\nLW S0 192(SP)\r\nLW RA 196(SP)\r\nJR RA\r\nADDIU SP SP 200\r\n\r\n.align 16\r\npassing_space_array:\r\n.byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r\n\r\n.align 16\r\nfuture_space_array:\r\n.byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r\n\r\n.align 16\r\nskip_space_array:\r\n.byte 00,09,10,00\r\n\r\n.align 16\r\nsave_to_passing_arrays_array:\r\n.byte 00,08,09,10,00\r\n\r\n\r\n.align 16\r\nmain_left_array_array:\r\n.byte 01,02,03,04,05,06,07,08,09,00\r\n\r\n\r\n.align 16\r\nmain_left_array_one:\r\n.byte 01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n.align 16\r\nmain_left_array_two:\r\n.byte 01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n.align 16\r\nmain_left_array_three:\r\n.byte 01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n.align 16\r\nmain_left_array_four:\r\n.byte 01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n.align 16\r\nmain_left_array_five:\r\n.byte 01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n.align 16\r\nmain_left_array_six:\r\n.byte 01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n.align 16\r\nmain_left_array_seven:\r\n.byte 01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n.align 16\r\nmain_left_array_eight:\r\n.byte 01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,00\r\n\r\n.align 16\r\nmain_left_array_nine:\r\n.byte 01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n.align 16\r\nmain_left_array_ten:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_eleven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twelve:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fourteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fifteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_sixteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_seventeen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_eighteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_nineteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fifty:\r\n.byte 00,00\r\n\r\n\r\n.align 16\r\nmain_right_array_array:\r\n.byte 01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,00\r\n\r\n\r\n.align 16\r\nmain_right_array_one:\r\n.byte 01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n.align 16\r\nmain_right_array_two:\r\n.byte 01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n.align 16\r\nmain_right_array_three:\r\n.byte 01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,00\r\n\r\n.align 16\r\nmain_right_array_four:\r\n.byte 01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,00\r\n\r\n.align 16\r\nmain_right_array_five:\r\n.byte 01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n.align 16\r\nmain_right_array_six:\r\n.byte 01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n.align 16\r\nmain_right_array_seven:\r\n.byte 01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,00\r\n\r\n.align 16\r\nmain_right_array_eight:\r\n.byte 01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,00\r\n\r\n.align 16\r\nmain_right_array_nine:\r\n.byte 01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n.align 16\r\nmain_right_array_ten:\r\n.byte 01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n.align 16\r\nmain_right_array_eleven:\r\n.byte 01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,00\r\n\r\n.align 16\r\nmain_right_array_twelve:\r\n.byte 01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n.align 16\r\nmain_right_array_thirteen:\r\n.byte 01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n.align 16\r\nmain_right_array_fourteen:\r\n.byte 01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n.align 16\r\nmain_right_array_fifteen:\r\n.byte 01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n.align 16\r\nmain_right_array_sixteen:\r\n.byte 01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,00\r\n\r\n.align 16\r\nmain_right_array_seventeen:\r\n.byte 01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n.align 16\r\nmain_right_array_eighteen:\r\n.byte 01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n.align 16\r\nmain_right_array_nineteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fifty:\r\n.byte 00,00\r\n"},"(New Junction 2)":{"language":0,"code":"; NAME: (New Junction 2)\r\n; GAMES: MP3_USA\r\n; EXECUTION: Direct\r\n; PARAM: Space|Left\r\n; PARAM: Space|Right\r\n\r\nADDIU SP SP -200\r\nSW RA 196(SP)\r\nSW S0 192(SP)\r\nSW S1 188(SP)\r\nSW S2 184(SP)\r\nSW S3 180(SP)\r\nSW S4 176(SP)\r\nSW S5 172(SP)\r\nSW S6 168(SP)\r\nSW S7 164(SP)\r\n\r\n;Register Guide:\r\n;S0, main array array left or right\r\n;S1, latest points left or right\r\n;S2, main array left or right\r\n;S3, player structure\r\n;S4, passing or future array\r\n;S5, left_points biggest\r\n;S6, right_points biggest\r\n;S7, estimated_coins\r\n;\r\n;Saved to Stack:\r\n;\r\n;current spaces remaining\t\t\t\t\t\t160\r\n;item_estimate\t\t\t\t\t\t\t\t\t156\r\n;which side is currently being counted\t\t\t152\r\n;p1 coins\t\t\t\t\t\t\t\t\t\t148\r\n;p1 stars\t\t\t\t\t\t\t\t\t\t144\r\n;p2 coins\t\t\t\t\t\t\t\t\t\t140\r\n;p2 stars\t\t\t\t\t\t\t\t\t\t136\r\n;p3 coins\t\t\t\t\t\t\t\t\t\t132\r\n;p3 stars\t\t\t\t\t\t\t\t\t\t128\r\n;p4 coins\t\t\t\t\t\t\t\t\t\t124\r\n;p4 stars\t\t\t\t\t\t\t\t\t\t120\r\n;p1 item1\t\t\t\t\t\t\t\t\t\t116\r\n;p1 item2\t\t\t\t\t\t\t\t\t\t112\r\n;p1 item3\t\t\t\t\t\t\t\t\t\t108\r\n;p2 item1\t\t\t\t\t\t\t\t\t\t104\r\n;p2 item2\t\t\t\t\t\t\t\t\t\t100\r\n;p2 item3\t\t\t\t\t\t\t\t\t\t96\r\n;p3 item1\t\t\t\t\t\t\t\t\t\t92\r\n;p3 item2\t\t\t\t\t\t\t\t\t\t88\r\n;p3 item3\t\t\t\t\t\t\t\t\t\t84\r\n;p4 item1\t\t\t\t\t\t\t\t\t\t80\r\n;p4 item2\t\t\t\t\t\t\t\t\t\t76\r\n;p4 item3\t\t\t\t\t\t\t\t\t\t72\r\n;wacky watch check\t\t\t\t\t\t\t\t68\r\n;landed on spot id\t\t\t\t\t\t\t\t64\r\n;storage in between JALs (not currently used)\t60\r\n;\r\n;\r\n;Space ID Guide:\r\n;\r\n;Values and their locations on the map https://imgur.com/a/tbSnJuz\r\n;\r\n;blue\t\t\t\t1\r\n;red\t\t\t\t2\r\n;chance time\t\t3\r\n;bowser\t\t\t\t4\r\n;item\t\t\t\t5\r\n;battle\t\t\t\t6\r\n;game guy\t\t\t7\r\n;\r\n;Noticed when passing and count as space traversed\r\n;bank\t\t\t\t8\r\n;\r\n;Noticed when passing and does not count as space traversed\r\n;item shop\t\t\t9\r\n;boo\t\t\t\t10\r\n;\r\n;Noticed when passing and does not count as space traversed only when that space is currently holding the star\r\n;(labeled with an S on the map)\r\n;Star0\t\t\t\t11\r\n;Star1\t\t\t\t12\r\n;Star2\t\t\t\t13\r\n;Star3\t\t\t\t14\r\n;Star4\t\t\t\t15\r\n;Star5\t\t\t\t16\r\n;Star6\t\t\t\t17\r\n;Star7\t\t\t\t18\r\n;\r\n;Board Exclusive Values:\r\n;G1\t\t\t\t\t19\r\n;G2\t\t\t\t\t20\r\n;G3\t\t\t\t\t21\r\n;G4\t\t\t\t\t22\r\n;G5\t\t\t\t\t23\r\n;G6\t\t\t\t\t24\r\n;G7\t\t\t\t\t25\r\n;G8\t\t\t\t\t26\r\n;G9\t\t\t\t\t27\r\n;G10\t\t\t\t28\r\n;G11\t\t\t\t29\r\n;Good Happening\t\t30\r\n;Bad Happening\t\t31\r\n\r\n\r\n\r\nLI t0, 0x807FFFFC\r\nSW r0, 0x0000 (t0)\r\n\r\nSB R0 68(SP) ; this is where the wacky watch check is stored\r\n\r\nJAL GetPlayerStruct\r\nLI A0 0\r\n\r\nLHU T1 10(V0)\r\nSH T1 148(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 144(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 116(SP)\r\nLBU T1 25(V0)\r\nSB T1 112(SP)\r\nLBU T1 26(V0)\r\nSB T1 108(SP)\r\n\r\nJAL GetPlayerStruct\r\nLI A0 1\r\n\r\nLHU T1 10(V0)\r\nSH T1 140(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 136(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 104(SP)\r\nLBU T1 25(V0)\r\nSB T1 100(SP)\r\nLBU T1 26(V0)\r\nSB T1 96(SP)\r\n\r\n\r\nJAL GetPlayerStruct\r\nLI A0 2\r\n\r\nLHU T1 10(V0)\r\nSH T1 132(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 128(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 92(SP)\r\nLBU T1 25(V0)\r\nSB T1 88(SP)\r\nLBU T1 26(V0)\r\nSB T1 84(SP)\r\n\r\n\r\nJAL GetPlayerStruct\r\nLI A0 3\r\n\r\nLHU T1 10(V0)\r\nSH T1 124(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 120(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 80(SP)\r\nLBU T1 25(V0)\r\nSB T1 76(SP)\r\nLBU T1 26(V0)\r\nSB T1 72(SP)\r\n\r\nLI T5 18\r\n\r\nLB T1 116(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 112(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 108(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 104(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 100(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 96(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 92(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 88(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 84(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 80(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 76(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 72(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nJ get_player_structure\r\nNOP\r\n\r\nwacky_watch_has_been_detected:\r\nLI T1 1\r\nSB T1 68(SP)\r\n\r\nget_player_structure:\r\nJAL GetPlayerStruct\r\nLI A0 -1\r\nMOVE S3 V0 ;loads player structure in S3\r\n\r\nLBU T0 23(S3) ; Status Flags\r\nSRL T0 T0 7 ; Shift bits to the right by 7 for Reverse flag\r\nBNEZ T0 exit ; exit if player is in reverse\r\nNOP\r\n\r\nJAL PlayerIsCPU ; makes sure that player is a cpu\r\nLI A0 -1 \r\n\r\nBEQZ V0 exit ; If 0, exit because it's a human\r\nNOP\r\n\r\n;======================================================================================================================================\r\n; This is where the big boi code begins \r\n;======================================================================================================================================\r\nDADDU S0 R0 R0\r\nDADDU S1 R0 R0\r\nDADDU S2 R0 R0\r\nDADDU S5 R0 R0\r\nDADDU S6 R0 R0\r\nSB R0 152(SP) ; this is where the direction is stored\r\n\r\nLUI T0 hi(current_star_spawn)\r\nADDIU T0 T0 lo(current_star_spawn) ; Address of current Star Spawn Cycle\r\nADDIU T1 T0 1 ; Address of first Star Spawn Index in the Cycle\r\nLBU T0 0(T0) ; Load Index of Star Spawn to T0\r\nADDU T0 T0 T1 ; Add to get address of current Star Spawn Index\r\nLBU T2 0(T0) ; Load current Star Spawn Index to T2\r\n\r\nADDIU T2 T2 11 ; adds 11 to star spawn index to match custom id system\r\n\r\nLUI T0 hi(skip_space_array)\r\nADDIU T0 T0 lo(skip_space_array) ; loads array with spaces that will be skipped into T0\r\n\r\nLUI T1 hi(save_to_passing_arrays_array)\r\nADDIU T1 T1 lo(save_to_passing_arrays_array) ; loads array with spaces that will stored for passby calculations into T1\r\n\r\n\r\nSB T2 0(T0) ; stores the current star's location into the skip space array\r\nSB T2 0(T1) ; stores the current star's location into the passby array\r\n\r\n;======================================================================================================================================\r\n; This is where the main loop begins\r\n;======================================================================================================================================\r\nLUI S0 hi(main_left_array_array)\r\nADDIU S0 S0 lo(main_left_array_array) ; loads the array that checks which array is to be checked next for its respective side\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\nswitch_to_right_array_array:\r\nLI T0 1\r\nSB T0 152(SP)\r\nLUI S0 hi(main_right_array_array)\r\nADDIU S0 S0 lo(main_right_array_array) ; loads the array that checks which array is to be checked next for its respective side\r\n\r\nmain_array_processing_loop:\r\nLBU T3 0(S0) ; loads the number in the array for arrays to start checking which array should be loaded next\r\nLBU T0 152(SP)\r\nBNEZ T0 right_arrays\r\nNOP\r\n\r\nleft_arrays:\r\n\r\nBEQZ T3 switch_to_right_array_array\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T3 T5 load_main_left_array_one\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T3 T5 load_main_left_array_two\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T3 T5 load_main_left_array_three\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T3 T5 load_main_left_array_four\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T3 T5 load_main_left_array_five\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T3 T5 load_main_left_array_six\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T3 T5 load_main_left_array_seven\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T3 T5 load_main_left_array_eight\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T3 T5 load_main_left_array_nine\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T3 T5 load_main_left_array_ten\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T3 T5 load_main_left_array_eleven\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T3 T5 load_main_left_array_twelve\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T3 T5 load_main_left_array_thirteen\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T3 T5 load_main_left_array_fourteen\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T3 T5 load_main_left_array_fifteen\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T3 T5 load_main_left_array_sixteen\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T3 T5 load_main_left_array_seventeen\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T3 T5 load_main_left_array_eighteen\r\nNOP\r\n\r\nLI T5 19\r\nBEQ T3 T5 load_main_left_array_nineteen\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T3 T5 load_main_left_array_twenty\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T3 T5 load_main_left_array_twenty_one\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T3 T5 load_main_left_array_twenty_two\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T3 T5 load_main_left_array_twenty_three\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T3 T5 load_main_left_array_twenty_four\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T3 T5 load_main_left_array_twenty_five\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T3 T5 load_main_left_array_twenty_six\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T3 T5 load_main_left_array_twenty_seven\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T3 T5 load_main_left_array_twenty_eight\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T3 T5 load_main_left_array_twenty_nine\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T3 T5 load_main_left_array_thirty\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T3 T5 load_main_left_array_thirty_one\r\nNOP\r\n\r\nLI T5 32\r\nBEQ T3 T5 load_main_left_array_thirty_two\r\nNOP\r\n\r\nLI T5 33\r\nBEQ T3 T5 load_main_left_array_thirty_three\r\nNOP\r\n\r\nLI T5 34\r\nBEQ T3 T5 load_main_left_array_thirty_four\r\nNOP\r\n\r\nLI T5 35\r\nBEQ T3 T5 load_main_left_array_thirty_five\r\nNOP\r\n\r\nLI T5 36\r\nBEQ T3 T5 load_main_left_array_thirty_six\r\nNOP\r\n\r\nLI T5 37\r\nBEQ T3 T5 load_main_left_array_thirty_seven\r\nNOP\r\n\r\nLI T5 38\r\nBEQ T3 T5 load_main_left_array_thirty_eight\r\nNOP\r\n\r\nLI T5 39\r\nBEQ T3 T5 load_main_left_array_thirty_nine\r\nNOP\r\n\r\nLI T5 40\r\nBEQ T3 T5 load_main_left_array_forty\r\nNOP\r\n\r\nLI T5 41\r\nBEQ T3 T5 load_main_left_array_forty_one\r\nNOP\r\n\r\nLI T5 42\r\nBEQ T3 T5 load_main_left_array_forty_two\r\nNOP\r\n\r\nLI T5 43\r\nBEQ T3 T5 load_main_left_array_forty_three\r\nNOP\r\n\r\nLI T5 44\r\nBEQ T3 T5 load_main_left_array_forty_four\r\nNOP\r\n\r\nLI T5 45\r\nBEQ T3 T5 load_main_left_array_forty_five\r\nNOP\r\n\r\nLI T5 46\r\nBEQ T3 T5 load_main_left_array_forty_six\r\nNOP\r\n\r\nLI T5 47\r\nBEQ T3 T5 load_main_left_array_forty_seven\r\nNOP\r\n\r\nLI T5 48\r\nBEQ T3 T5 load_main_left_array_forty_eight\r\nNOP\r\n\r\nLI T5 49\r\nBEQ T3 T5 load_main_left_array_forty_nine\r\nNOP\r\n\r\nLI T5 50\r\nBEQ T3 T5 load_main_left_array_fifty\r\nNOP\r\n\r\n;======================================================================================================================================\r\n;This is where we switch sides by saving 1 to the stack at 108 for it to be detected when comparing points\r\n;======================================================================================================================================\r\nright_arrays:\r\nBEQZ T3 Choose_Side\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T3 T5 load_main_right_array_one\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T3 T5 load_main_right_array_two\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T3 T5 load_main_right_array_three\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T3 T5 load_main_right_array_four\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T3 T5 load_main_right_array_five\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T3 T5 load_main_right_array_six\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T3 T5 load_main_right_array_seven\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T3 T5 load_main_right_array_eight\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T3 T5 load_main_right_array_nine\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T3 T5 load_main_right_array_ten\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T3 T5 load_main_right_array_eleven\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T3 T5 load_main_right_array_twelve\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T3 T5 load_main_right_array_thirteen\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T3 T5 load_main_right_array_fourteen\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T3 T5 load_main_right_array_fifteen\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T3 T5 load_main_right_array_sixteen\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T3 T5 load_main_right_array_seventeen\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T3 T5 load_main_right_array_eighteen\r\nNOP\r\n\r\nLI T5 19\r\nBEQ T3 T5 load_main_right_array_nineteen\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T3 T5 load_main_right_array_twenty\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T3 T5 load_main_right_array_twenty_one\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T3 T5 load_main_right_array_twenty_two\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T3 T5 load_main_right_array_twenty_three\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T3 T5 load_main_right_array_twenty_four\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T3 T5 load_main_right_array_twenty_five\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T3 T5 load_main_right_array_twenty_six\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T3 T5 load_main_right_array_twenty_seven\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T3 T5 load_main_right_array_twenty_eight\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T3 T5 load_main_right_array_twenty_nine\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T3 T5 load_main_right_array_thirty\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T3 T5 load_main_right_array_thirty_one\r\nNOP\r\n\r\nLI T5 32\r\nBEQ T3 T5 load_main_right_array_thirty_two\r\nNOP\r\n\r\nLI T5 33\r\nBEQ T3 T5 load_main_right_array_thirty_three\r\nNOP\r\n\r\nLI T5 34\r\nBEQ T3 T5 load_main_right_array_thirty_four\r\nNOP\r\n\r\nLI T5 35\r\nBEQ T3 T5 load_main_right_array_thirty_five\r\nNOP\r\n\r\nLI T5 36\r\nBEQ T3 T5 load_main_right_array_thirty_six\r\nNOP\r\n\r\nLI T5 37\r\nBEQ T3 T5 load_main_right_array_thirty_seven\r\nNOP\r\n\r\nLI T5 38\r\nBEQ T3 T5 load_main_right_array_thirty_eight\r\nNOP\r\n\r\nLI T5 39\r\nBEQ T3 T5 load_main_right_array_thirty_nine\r\nNOP\r\n\r\nLI T5 40\r\nBEQ T3 T5 load_main_right_array_forty\r\nNOP\r\n\r\nLI T5 41\r\nBEQ T3 T5 load_main_right_array_forty_one\r\nNOP\r\n\r\nLI T5 42\r\nBEQ T3 T5 load_main_right_array_forty_two\r\nNOP\r\n\r\nLI T5 43\r\nBEQ T3 T5 load_main_right_array_forty_three\r\nNOP\r\n\r\nLI T5 44\r\nBEQ T3 T5 load_main_right_array_forty_four\r\nNOP\r\n\r\nLI T5 45\r\nBEQ T3 T5 load_main_right_array_forty_five\r\nNOP\r\n\r\nLI T5 46\r\nBEQ T3 T5 load_main_right_array_forty_six\r\nNOP\r\n\r\nLI T5 47\r\nBEQ T3 T5 load_main_right_array_forty_seven\r\nNOP\r\n\r\nLI T5 48\r\nBEQ T3 T5 load_main_right_array_forty_eight\r\nNOP\r\n\r\nLI T5 49\r\nBEQ T3 T5 load_main_right_array_forty_nine\r\nNOP\r\n\r\nLI T5 50\r\nBEQ T3 T5 load_main_right_array_fifty\r\nNOP\r\n\r\n\r\n;======================================================================================================================================\r\n; This is where the arrays are loaded with all of the possible places you can go based on the current junction and roll\r\n;======================================================================================================================================\r\n\r\nload_main_left_array_one:\r\nLUI S2 hi(main_left_array_one)\r\nADDIU S2 S2 lo(main_left_array_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_two:\r\nLUI S2 hi(main_left_array_two)\r\nADDIU S2 S2 lo(main_left_array_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_three:\r\nLUI S2 hi(main_left_array_three)\r\nADDIU S2 S2 lo(main_left_array_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_four:\r\nLUI S2 hi(main_left_array_four)\r\nADDIU S2 S2 lo(main_left_array_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_five:\r\nLUI S2 hi(main_left_array_five)\r\nADDIU S2 S2 lo(main_left_array_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_six:\r\nLUI S2 hi(main_left_array_six)\r\nADDIU S2 S2 lo(main_left_array_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_seven:\r\nLUI S2 hi(main_left_array_seven)\r\nADDIU S2 S2 lo(main_left_array_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eight:\r\nLUI S2 hi(main_left_array_eight)\r\nADDIU S2 S2 lo(main_left_array_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_nine:\r\nLUI S2 hi(main_left_array_nine)\r\nADDIU S2 S2 lo(main_left_array_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_ten:\r\nLUI S2 hi(main_left_array_ten)\r\nADDIU S2 S2 lo(main_left_array_ten)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eleven:\r\nLUI S2 hi(main_left_array_eleven)\r\nADDIU S2 S2 lo(main_left_array_eleven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twelve:\r\nLUI S2 hi(main_left_array_twelve)\r\nADDIU S2 S2 lo(main_left_array_twelve)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirteen:\r\nLUI S2 hi(main_left_array_thirteen)\r\nADDIU S2 S2 lo(main_left_array_thirteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fourteen:\r\nLUI S2 hi(main_left_array_fourteen)\r\nADDIU S2 S2 lo(main_left_array_fourteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fifteen:\r\nLUI S2 hi(main_left_array_fifteen)\r\nADDIU S2 S2 lo(main_left_array_fifteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_sixteen:\r\nLUI S2 hi(main_left_array_sixteen)\r\nADDIU S2 S2 lo(main_left_array_sixteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_seventeen:\r\nLUI S2 hi(main_left_array_seventeen)\r\nADDIU S2 S2 lo(main_left_array_seventeen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eighteen:\r\nLUI S2 hi(main_left_array_eighteen)\r\nADDIU S2 S2 lo(main_left_array_eighteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_nineteen:\r\nLUI S2 hi(main_left_array_nineteen)\r\nADDIU S2 S2 lo(main_left_array_nineteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty:\r\nLUI S2 hi(main_left_array_twenty)\r\nADDIU S2 S2 lo(main_left_array_twenty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_one:\r\nLUI S2 hi(main_left_array_twenty_one)\r\nADDIU S2 S2 lo(main_left_array_twenty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_two:\r\nLUI S2 hi(main_left_array_twenty_two)\r\nADDIU S2 S2 lo(main_left_array_twenty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_three:\r\nLUI S2 hi(main_left_array_twenty_three)\r\nADDIU S2 S2 lo(main_left_array_twenty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_four:\r\nLUI S2 hi(main_left_array_twenty_four)\r\nADDIU S2 S2 lo(main_left_array_twenty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_five:\r\nLUI S2 hi(main_left_array_twenty_five)\r\nADDIU S2 S2 lo(main_left_array_twenty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_six:\r\nLUI S2 hi(main_left_array_twenty_six)\r\nADDIU S2 S2 lo(main_left_array_twenty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_seven:\r\nLUI S2 hi(main_left_array_twenty_seven)\r\nADDIU S2 S2 lo(main_left_array_twenty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_eight:\r\nLUI S2 hi(main_left_array_twenty_eight)\r\nADDIU S2 S2 lo(main_left_array_twenty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_nine:\r\nLUI S2 hi(main_left_array_twenty_nine)\r\nADDIU S2 S2 lo(main_left_array_twenty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty:\r\nLUI S2 hi(main_left_array_thirty)\r\nADDIU S2 S2 lo(main_left_array_thirty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_one:\r\nLUI S2 hi(main_left_array_thirty_one)\r\nADDIU S2 S2 lo(main_left_array_thirty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_two:\r\nLUI S2 hi(main_left_array_thirty_two)\r\nADDIU S2 S2 lo(main_left_array_thirty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_three:\r\nLUI S2 hi(main_left_array_thirty_three)\r\nADDIU S2 S2 lo(main_left_array_thirty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_four:\r\nLUI S2 hi(main_left_array_thirty_four)\r\nADDIU S2 S2 lo(main_left_array_thirty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_five:\r\nLUI S2 hi(main_left_array_thirty_five)\r\nADDIU S2 S2 lo(main_left_array_thirty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_six:\r\nLUI S2 hi(main_left_array_thirty_six)\r\nADDIU S2 S2 lo(main_left_array_thirty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_seven:\r\nLUI S2 hi(main_left_array_thirty_seven)\r\nADDIU S2 S2 lo(main_left_array_thirty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_eight:\r\nLUI S2 hi(main_left_array_thirty_eight)\r\nADDIU S2 S2 lo(main_left_array_thirty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_nine:\r\nLUI S2 hi(main_left_array_thirty_nine)\r\nADDIU S2 S2 lo(main_left_array_thirty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty:\r\nLUI S2 hi(main_left_array_forty)\r\nADDIU S2 S2 lo(main_left_array_forty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_one:\r\nLUI S2 hi(main_left_array_forty_one)\r\nADDIU S2 S2 lo(main_left_array_forty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_two:\r\nLUI S2 hi(main_left_array_forty_two)\r\nADDIU S2 S2 lo(main_left_array_forty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_three:\r\nLUI S2 hi(main_left_array_forty_three)\r\nADDIU S2 S2 lo(main_left_array_forty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_four:\r\nLUI S2 hi(main_left_array_forty_four)\r\nADDIU S2 S2 lo(main_left_array_forty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_five:\r\nLUI S2 hi(main_left_array_forty_five)\r\nADDIU S2 S2 lo(main_left_array_forty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_six:\r\nLUI S2 hi(main_left_array_forty_six)\r\nADDIU S2 S2 lo(main_left_array_forty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_seven:\r\nLUI S2 hi(main_left_array_forty_seven)\r\nADDIU S2 S2 lo(main_left_array_forty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_eight:\r\nLUI S2 hi(main_left_array_forty_eight)\r\nADDIU S2 S2 lo(main_left_array_forty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_nine:\r\nLUI S2 hi(main_left_array_forty_nine)\r\nADDIU S2 S2 lo(main_left_array_forty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fifty:\r\nLUI S2 hi(main_left_array_fifty)\r\nADDIU S2 S2 lo(main_left_array_fifty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nload_main_right_array_one:\r\nLUI S2 hi(main_right_array_one)\r\nADDIU S2 S2 lo(main_right_array_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_two:\r\nLUI S2 hi(main_right_array_two)\r\nADDIU S2 S2 lo(main_right_array_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_three:\r\nLUI S2 hi(main_right_array_three)\r\nADDIU S2 S2 lo(main_right_array_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_four:\r\nLUI S2 hi(main_right_array_four)\r\nADDIU S2 S2 lo(main_right_array_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_five:\r\nLUI S2 hi(main_right_array_five)\r\nADDIU S2 S2 lo(main_right_array_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_six:\r\nLUI S2 hi(main_right_array_six)\r\nADDIU S2 S2 lo(main_right_array_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_seven:\r\nLUI S2 hi(main_right_array_seven)\r\nADDIU S2 S2 lo(main_right_array_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eight:\r\nLUI S2 hi(main_right_array_eight)\r\nADDIU S2 S2 lo(main_right_array_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_nine:\r\nLUI S2 hi(main_right_array_nine)\r\nADDIU S2 S2 lo(main_right_array_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_ten:\r\nLUI S2 hi(main_right_array_ten)\r\nADDIU S2 S2 lo(main_right_array_ten)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eleven:\r\nLUI S2 hi(main_right_array_eleven)\r\nADDIU S2 S2 lo(main_right_array_eleven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twelve:\r\nLUI S2 hi(main_right_array_twelve)\r\nADDIU S2 S2 lo(main_right_array_twelve)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirteen:\r\nLUI S2 hi(main_right_array_thirteen)\r\nADDIU S2 S2 lo(main_right_array_thirteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fourteen:\r\nLUI S2 hi(main_right_array_fourteen)\r\nADDIU S2 S2 lo(main_right_array_fourteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fifteen:\r\nLUI S2 hi(main_right_array_fifteen)\r\nADDIU S2 S2 lo(main_right_array_fifteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_sixteen:\r\nLUI S2 hi(main_right_array_sixteen)\r\nADDIU S2 S2 lo(main_right_array_sixteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_seventeen:\r\nLUI S2 hi(main_right_array_seventeen)\r\nADDIU S2 S2 lo(main_right_array_seventeen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eighteen:\r\nLUI S2 hi(main_right_array_eighteen)\r\nADDIU S2 S2 lo(main_right_array_eighteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_nineteen:\r\nLUI S2 hi(main_right_array_nineteen)\r\nADDIU S2 S2 lo(main_right_array_nineteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty:\r\nLUI S2 hi(main_right_array_twenty)\r\nADDIU S2 S2 lo(main_right_array_twenty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_one:\r\nLUI S2 hi(main_right_array_twenty_one)\r\nADDIU S2 S2 lo(main_right_array_twenty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_two:\r\nLUI S2 hi(main_right_array_twenty_two)\r\nADDIU S2 S2 lo(main_right_array_twenty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_three:\r\nLUI S2 hi(main_right_array_twenty_three)\r\nADDIU S2 S2 lo(main_right_array_twenty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_four:\r\nLUI S2 hi(main_right_array_twenty_four)\r\nADDIU S2 S2 lo(main_right_array_twenty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_five:\r\nLUI S2 hi(main_right_array_twenty_five)\r\nADDIU S2 S2 lo(main_right_array_twenty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_six:\r\nLUI S2 hi(main_right_array_twenty_six)\r\nADDIU S2 S2 lo(main_right_array_twenty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_seven:\r\nLUI S2 hi(main_right_array_twenty_seven)\r\nADDIU S2 S2 lo(main_right_array_twenty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_eight:\r\nLUI S2 hi(main_right_array_twenty_eight)\r\nADDIU S2 S2 lo(main_right_array_twenty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_nine:\r\nLUI S2 hi(main_right_array_twenty_nine)\r\nADDIU S2 S2 lo(main_right_array_twenty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty:\r\nLUI S2 hi(main_right_array_thirty)\r\nADDIU S2 S2 lo(main_right_array_thirty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_one:\r\nLUI S2 hi(main_right_array_thirty_one)\r\nADDIU S2 S2 lo(main_right_array_thirty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_two:\r\nLUI S2 hi(main_right_array_thirty_two)\r\nADDIU S2 S2 lo(main_right_array_thirty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_three:\r\nLUI S2 hi(main_right_array_thirty_three)\r\nADDIU S2 S2 lo(main_right_array_thirty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_four:\r\nLUI S2 hi(main_right_array_thirty_four)\r\nADDIU S2 S2 lo(main_right_array_thirty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_five:\r\nLUI S2 hi(main_right_array_thirty_five)\r\nADDIU S2 S2 lo(main_right_array_thirty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_six:\r\nLUI S2 hi(main_right_array_thirty_six)\r\nADDIU S2 S2 lo(main_right_array_thirty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_seven:\r\nLUI S2 hi(main_right_array_thirty_seven)\r\nADDIU S2 S2 lo(main_right_array_thirty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_eight:\r\nLUI S2 hi(main_right_array_thirty_eight)\r\nADDIU S2 S2 lo(main_right_array_thirty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_nine:\r\nLUI S2 hi(main_right_array_thirty_nine)\r\nADDIU S2 S2 lo(main_right_array_thirty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty:\r\nLUI S2 hi(main_right_array_forty)\r\nADDIU S2 S2 lo(main_right_array_forty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_one:\r\nLUI S2 hi(main_right_array_forty_one)\r\nADDIU S2 S2 lo(main_right_array_forty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_two:\r\nLUI S2 hi(main_right_array_forty_two)\r\nADDIU S2 S2 lo(main_right_array_forty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_three:\r\nLUI S2 hi(main_right_array_forty_three)\r\nADDIU S2 S2 lo(main_right_array_forty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_four:\r\nLUI S2 hi(main_right_array_forty_four)\r\nADDIU S2 S2 lo(main_right_array_forty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_five:\r\nLUI S2 hi(main_right_array_forty_five)\r\nADDIU S2 S2 lo(main_right_array_forty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_six:\r\nLUI S2 hi(main_right_array_forty_six)\r\nADDIU S2 S2 lo(main_right_array_forty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_seven:\r\nLUI S2 hi(main_right_array_forty_seven)\r\nADDIU S2 S2 lo(main_right_array_forty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_eight:\r\nLUI S2 hi(main_right_array_forty_eight)\r\nADDIU S2 S2 lo(main_right_array_forty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_nine:\r\nLUI S2 hi(main_right_array_forty_nine)\r\nADDIU S2 S2 lo(main_right_array_forty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fifty:\r\nLUI S2 hi(main_right_array_fifty)\r\nADDIU S2 S2 lo(main_right_array_fifty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n;======================================================================================================================================\r\n;This is where we loop through the chosen path to figure out where we will land and what passing spaces to store in the passing array\r\n;======================================================================================================================================\r\n\r\nmain_preprocessing:\r\n\r\nLHU S7 10(S3) ; stores player coins in S7 which is used to estimate what will happen to the coins based on spaces encountered in the future\r\n\r\nLUI T9 hi(cur_player_spaces_remaining)\r\nADDIU T9 T9 lo(cur_player_spaces_remaining)\r\nLW T9 0(T9) ; loads Current Spaces Remaining in T9\r\nSW T9 160(SP)\r\n\r\nADDU T2 R0 R0 ; set loop counter to 0\r\n\r\nLUI T0 hi(passing_space_array)\r\nADDIU T0 T0 lo(passing_space_array) ; loads passing space array into T0 so we can clear it\r\n\r\n\r\nLUI T1 hi(future_space_array)\r\nADDIU T1 T1 lo(future_space_array) ; loads future space array into T1 so we can clear it\r\n\r\n; this clears the loop for future\r\nloop_clearing:\r\n\r\nSB R0 0(T0)\r\nSB R0 0(T1)\r\n\r\nADDIU T0 T0 1\r\nADDIU T1 T1 1\r\nADDIU T2 T2 1\r\nSLTI V0 T2 60 ; if T2 is less than 60, V0 equals 1\r\n\r\nBNEZ V0 loop_clearing\r\nNOP\r\n\r\n\r\nLUI S4 hi(passing_space_array)\r\nADDIU S4 S4 lo(passing_space_array) ; loads passing space array into S4 so we can start adding passing by spaces to it\r\n\r\n; below is where we get the code to see how many items the player currently has which will be used to simulate changes to it for each possible path\r\nitem_estimate:\r\nLI T0 -1\r\nLB T1 24(S3) \r\n\r\nBEQ T0 T1 item_slot_one_is_empty\r\nNOP\r\n\r\nLB T1 25(S3) \r\nBEQ T0 T1 item_slot_two_is_empty\r\nNOP\r\n\r\nLB T1 26(S3) \r\nBEQ T0 T1 item_slot_three_is_empty\r\nNOP\r\n\r\nLI T9 3\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_one_is_empty:\r\nDADDU T9 R0 R0\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_two_is_empty:\r\nLI T9 1\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_three_is_empty:\r\nLI T9 2\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\n\r\n; this loop is used to store passby spaces and figure out where the cpu will land\r\nmain_space_processing_loop:\r\n\r\nLBU T7 0(S2) ; looks at current value in S2 which is where this current array is stored\r\nBEQZ T7 array_is_too_short\r\nNOP\r\n\r\nLUI T5 hi(skip_space_array)\r\nADDIU T5 T5 lo(skip_space_array) ; sets T5 equal to the skip space array\r\n\r\nLUI T4 hi(save_to_passing_arrays_array)\r\nADDIU T4 T4 lo(save_to_passing_arrays_array) ; sets T4 equal to the passing arrays array\r\n\r\ncheck_if_space_will_not_count_towards_remaining_spaces_loop:\r\nLB T6 0(T5) ; loads skip space array's current value into T6\r\n\r\nBEQ T6 T7 add_one_to_main_space_processing_loop ; checks if the current space id matches skip space array's current value, if it matches then another loop will be added to account for the fact that it won't be counted towards the roll\r\nNOP\r\n\r\nreturn_to_check_if_space_will_not_count_towards_remaining_spaces_loop:\r\nBEQZ T6 check_if_space_is_counted_in_passing_array_loop ; checks if the skip space array's value is zero which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\nADDIU T5 T5 1 ; adds 1 to the count down for the check_if_space_will_not_count_towards_remaining_spaces_loop which goes to the next value in the skip space array\r\n\r\nJ check_if_space_will_not_count_towards_remaining_spaces_loop\r\nNOP\r\n\r\n\r\nadd_one_to_main_space_processing_loop:\r\nLW T9 160(SP)\r\nADDIU T9 T9 1 ; adds 1 to the count down for the main_space_processing_loop\r\nSW T9 160(SP)\r\nJ return_to_check_if_space_will_not_count_towards_remaining_spaces_loop\r\nNOP\r\n\r\n\r\ncheck_if_space_is_counted_in_passing_array_loop:\r\nLW T9 160(SP)\r\n\r\nLB T6 0(T4) ; loads passing space array's current value into T6\r\nBEQ T6 T7 save_to_passing_array ; checks if the current space id matches passing space array's current value, if it matches then it is added to the passing space array for point calculations later on\r\nNOP\r\n\r\nreturn_to_check_if_space_is_counted_in_passing_array_loop:\r\nBEQZ T6 return_to_main_loop ; checks if the passing space array's value is zero which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\nADDIU T4 T4 1 ; adds 1 to go to the next value in the passing space array\r\n\r\nJ check_if_space_is_counted_in_passing_array_loop\r\nNOP\r\n\r\n\r\nsave_to_passing_array:\r\nSB T7 0(S4) ; this is where values are stored in the passing array\r\nADDIU S4 S4 1\r\n\r\nJ return_to_check_if_space_is_counted_in_passing_array_loop\r\nNOP\r\n\r\n\r\nreturn_to_main_loop:\r\n\r\nADDIU S2 S2 1 ; adds to the main array to check the next value\r\n\r\nLW T9 160(SP)\r\nADDIU T9 T9 -1 ; removes one from roll to check next space\r\n\r\nBEQZ T9 passing_array_processing  ; checks if the roll count down value is zero which means it is the end of the main_space_processing_loop and it is time to move on\r\nNOP\r\n\r\nSW T9 160(SP)\r\n\r\n\r\nJ main_space_processing_loop\r\nNOP\r\n\r\n\r\n\r\npassing_array_processing:\r\nSB T7 64(SP) ; saves the currently landed on space id for future usage\r\nLUI S4 hi(passing_space_array)\r\nADDIU S4 S4 lo(passing_space_array) ; reloads passing space array into S4 to reset position\r\n\r\npassing_array_processing_loop:\r\nLB T6 0(S4) ; checks the current value of the passing space array\r\n\r\nBEQZ T6 land_processing ; checks if the value is 0 which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\n\r\nLI T5 8\r\nBEQ T6 T5 bank_passing ; checks if the id matches the bank where it goes to remove 5 coins from the estimate\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T6 T5 item_shop_passing ; checks if the id matches the item shop where it adds and item to the item estimate to figure out the value of an item space later on\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T6 T5 boo_passing ; checks if the id matches boo where it calculates if it can steal stars or coins\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\n\r\n\r\nreturn_to_passing_array_processing:\r\nADDIU S4 S4 1 ; adds 1 to move to the next value in the passing array\r\n\r\nJ passing_array_processing_loop\r\nNOP\r\n\r\n\r\n; passing 1 $\r\nstar_passing:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 will_pass_star_with_enough_coins\r\nNOP\r\n\r\nBEQ S7 T5 will_pass_star_with_enough_coins ; checks if have enough coins to buy a star\r\nNOP\r\n\r\nJ return_to_passing_array_processing ; we do not have enough coins so passing the star will not be useful in any way so it will be ignored\r\nNOP\r\n\r\nwill_pass_star_with_enough_coins:\r\nADDIU S7 S7 -20 ; this subtracts 20 from the current coin estimate\r\nADDIU S1 S1 500 ; if we have enough points to buy a star 500 points will be added by default\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\n; passing 2 $\r\nitem_shop_passing:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nDADDU T2 R0 R0 ; sets T2 to 0\r\nSUBU T2 T0 T1 ; T2 tells you have many turns are left\r\nBGTZ T2 item_shop_passing_item_check ; if we are not on the last turn then we go to item_shop_passing_item_check\r\nNOP\r\nJ return_to_passing_array_processing ; this is only reached for the last turn so item shops are pointless\r\nNOP\r\n\r\n\r\n\r\nitem_shop_passing_item_check:\r\nLI T5 3\r\nLBU T9 156(SP) ; load item estimate for usage in near future\r\nSLT T0 T9 T5 ; makes sure we have less than 3 estimated items before moving on\r\nBNEZ T0 item_shop_passing_point_check ; if T0 is not zero then run this code\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\nitem_shop_passing_point_check:\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_twenty\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_twenty\r\nNOP\r\n\r\nLI T5 15\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_fifteen\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_fifteen\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_ten\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_ten\r\nNOP\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_five\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_five\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_twenty:\r\nADDIU S1 S1 10 ; adds points if the cpu has 20 coins and it will pass a shop 10 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_fifteen:\r\nADDIU S1 S1 7 ; adds points if the cpu has 15 coins and it will pass a shop 7 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_ten:\r\nADDIU S1 S1 5 ; adds points if the cpu has 10 coins and it will pass a shop 5 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_five:\r\nADDIU S1 S1 3 ; adds points if the cpu has 5 coins and it will pass a shop 3 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n; passing 3 $\r\nboo_passing:\r\n\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_star_check\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_star_check ; checks if cpu has enough coins to steal a star\r\nNOP\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_coin_check\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_coin_check ; checks if cpu has enough coins to steal coins\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nboo_passing_star_check:\r\nJAL GetSumOfPlayerStars ; Sum of all stars at V0\r\nNOP\r\n\r\nLBU T7 14(S3) ; puts current player's stars in T7\r\n\r\nBNE V0 T7 boo_passing_star_steal_estimate ; makes sure that there are stars for cpu to steal\r\nNOP\r\n\r\nBEQ V0 T7 boo_passing_coin_check ; jumps to coin stealing if there are no stars to steal\r\nNOP\r\n\r\nboo_passing_star_steal_estimate:\r\nADDIU S1 S1 100 ; adds points for passing boo and being able to steal a star 100 points will be added by default\r\nADDIU S7 S7 -50 ; removes 50 coins for assumed star steal\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nboo_passing_coin_check:\r\nJAL GetCurrentPlayerIndex ; returns current player's position\r\nNOP\r\nDADDU T1 R0 R0 ; clears T1\r\nDADDU T2 R0 R0 ; clears T2\r\nDADDU T3 R0 R0 ; clears T3\r\nDADDU T4 R0 R0 ; clears T4\r\n\r\ncheck_player_one_is_not_current_for_coins:\r\nBNEZ V0 load_player_one_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_coins:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_coins:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_coins:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\nplayer_coin_comparison_start:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_coin_comparison_one_two_is_larger\r\nNOP \r\n\r\nplayer_coin_comparison_three:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_coin_comparison_two_three_is_larger\r\nNOP\r\n\r\nplayer_coin_comparison_four:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_coin_comparison_three_four_is_larger\r\nNOP\r\n\r\n; the above code was used to store the largest coin amount belonging to another player in T1\r\n\r\nboo_passing_coin_check_final:\r\nLI T5 5\r\nSLT T6 T1 T5 ; if there are not enough coins to steal we set T6 to 1\r\nBNEZ T6 boo_passing_coin_check_failed ; we run this code to ignore boo if T6 is not zero\r\nNOP\r\n\r\nADDIU S1 S1 19; add boo points for coins 19 points will be added by default\r\nADDIU S7 S7 -5 ; subtract 5 for paying boo to steal coins\r\nLUI T0 hi(current_turn)\r\nADDIU T0 T0 lo(current_turn) ; Address of current turn\r\nLBU T0 0(T0) ; Load current turn to T0\r\n\r\n ; the code below estimates the minimum amount of money to be recieved from boo and code that we jumped to in previous bits of this boo code and we jump back to earlier\r\n\r\nLI T5 46\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_six\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_six ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 36\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_three\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_three ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 26\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_one\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_one ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 16\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_eighteen\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_eighteen ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 6\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_sixteen\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_sixteen ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nSLT T6 T0 T5 ; checks current turn to see what the minimum amount stolen from boo will be\r\nBNEZ T6 coins_to_be_checked_six\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_six:\r\nLI T5 26\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_six\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_six\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_three:\r\nLI T5 23\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_three\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_three\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_one:\r\nLI T5 21\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_one\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_one\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_eighteen:\r\nLI T5 18\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_eighteen\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_eighteen\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\n\r\ncoins_to_be_checked_sixteen:\r\nLI T5 16\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_sixteen\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_sixteen\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_six:\r\nLI T5 6\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_six\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_six\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\n\r\ncoins_to_be_stolen_twenty_six:\r\nADDIU S7 S7 26\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_twenty_three:\r\nADDIU S7 S7 23\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_twenty_one:\r\nADDIU S7 S7 21\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_eighteen:\r\nADDIU S7 S7 18\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_sixteen:\r\nADDIU S7 S7 16\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_six:\r\nADDIU S7 S7 6\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nnot_enough_coins:\r\nADDU S7 S7 T1\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nboo_passing_coin_check_failed:\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nload_player_one_coins:\r\nLBU T1 148(SP)\r\nJ check_player_two_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_two_coins:\r\nLHU T2 140(SP)\r\nJ check_player_three_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_three_coins:\r\nLHU T3 132(SP)\r\nJ check_player_four_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_four_coins:\r\nLHU T4 124(SP)\r\nJ player_coin_comparison_start\r\nNOP\r\n\r\nplayer_coin_comparison_one_two_is_larger:\r\nMOVE T1 T2\r\nJ player_coin_comparison_three\r\nNOP\r\n\r\nplayer_coin_comparison_two_three_is_larger:\r\nMOVE T1 T3\r\nJ player_coin_comparison_four\r\nNOP\r\n\r\nplayer_coin_comparison_three_four_is_larger:\r\nMOVE T1 T4\r\nJ boo_passing_coin_check_final\r\nNOP\r\n\r\n\r\n\r\n\r\n; passing 4 $\r\nbank_passing:\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_five_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_five_from_estimated_coins ; runs code to estimate the loss of 5 coins if the cpu has at least 5 coins\r\nNOP\r\n\r\nSLT T6 S7 T5 ; runs code to clear out the estimated coins because the cpu has less than 5 coins\r\nBNEZ T6 set_estimated_coins_to_zero_for_bank_passing\r\nNOP\r\n\r\nset_estimated_coins_to_zero_for_bank_passing:\r\nDADDU S7 R0 R0 ; sets estimated coins to 0\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nsubtract_five_from_estimated_coins:\r\nADDIU S7 S7 -5 ; subtracts 5 from estimated coins\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nland_processing:\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLBU T8 64(SP)\r\n\r\n\r\nLI T5 1\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T8 T5 red_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T8 T5 chance_time_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T8 T5 bowser_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T8 T5 item_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T8 T5 battle_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T8 T5 game_guy_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T8 T5 bank_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLI T5 19\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T8 T5 happening_space_good ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T8 T5 happening_space_bad ; runs the right code for the right ids\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 1 $\r\nitem_space:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nBEQ T1 T0 last_turn_so_item_spaces_cannot_give_items\r\nNOP\r\n\r\nLI T5 3\r\nLBU T9 156(SP)\r\n\r\nSLT T6 T9 T5 \r\nBNEZ T6 less_than_three_items\r\nNOP\r\n\r\nSLT T6 T5 T9\r\nBNEZ T6 too_many_items\r\nNOP\r\n\r\nBEQ T9 T5 too_many_items\r\nNOP\r\n\r\nless_than_three_items:\r\nADDIU S1 S1 18 ; adds points for landing on an item space and you can accept an item 18 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ntoo_many_items:\r\nADDIU S1 S1 12 ; adds points for landing on an item space while being full on items 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nlast_turn_so_item_spaces_cannot_give_items:\r\nADDIU S1 S1 12 ; adds points for landing on an item space in the last turn 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n; landing 2 $\r\nbank_space:\r\n\r\nADDIU S7 S7 5\r\n\r\nLUI T1 hi(bank_coin_total)\r\nADDIU T1 T1 lo(bank_coin_total) ; Address of coin count in bank\r\nLHU T1 0(T1) ; Load current coin count in bank to T1\r\n\r\nBEQZ T1 bank_is_empty ; runs code if bank is empty\r\nNOP\r\n\r\n\r\nADDU T0 T1 S7 ; gets an estimate for the bank coin count added with current coin estimate\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 coin_estimate_is_at_least_fifty\r\nNOP\r\n\r\nBEQ S7 T5 coin_estimate_is_at_least_fifty ; runs code if the cpu's coin count is at least 50 \r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 coin_estimate_is_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 coin_estimate_is_at_least_twenty ; runs code if the cpu's coin count is at least 20 \r\nNOP\r\n\r\n\r\nSLT T6 S7 T5  ; runs code if the cpu's coin count is less than 20\r\nBNEZ T6 coin_estimate_is_less_than_twenty\r\nNOP\r\n\r\n ; the code below calculates if points should be added based on the bank's current coin count or the estimated coin count along with the bank total which is all based on the cpu's currently estimated coins\r\ncoin_estimate_is_at_least_fifty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_less_than_twenty\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_are_less_than_twenty\r\nNOP\r\n\r\n\r\n\r\ncoin_estimate_is_less_than_twenty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T0 T5 \r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_less_than_twenty\r\nNOP\r\n\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty:\r\nADDIU S1 S1 19 ; adds points if the cpu has at least 50 coins and the bank also has at least 50 coins 19 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has at least 50 coins and the bank also has at least 20 coins 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_less_than_twenty:\r\nADDIU S1 S1 17 ; adds points if the cpu has at least 50 coins and the bank also has less than 20 coins 17 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty:\r\nADDIU S1 S1 20 ; adds points if the cpu has at least 20 coins and the bank coin count + the cpu's current estimated coin count is at least 50 20 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has at least 20 coins and the bank coin count is at least 20 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_are_less_than_twenty:\r\nADDIU S1 S1 17 ; adds points if the cpu has at least 20 coins and the bank coin count is less than 20 17 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty:\r\nADDIU S1 S1 20 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is at least 50 20 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty:\r\nADDIU S1 S1 19 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is at least 20 19 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_less_than_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is less than 20 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbank_is_empty:\r\nADDIU S1 S1 14 ; adds points for an empty bank 14 points will be added by default\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 3 $\r\nblue_space:\r\nADDIU S1 S1 16 ; adds points for a blue space 16 points will be added by default\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\nLI T5 5\r\nSLT T6 T5 T2 ; runs code when it is not the last 5 turns\r\nBNEZ T6 add_coins_to_coin_estimate_normal_blue_space\r\nNOP\r\n\r\nSLT T6 T2 T5\r\nBNEZ T6 add_coins_to_coin_estimate_last_five_turn_blue_space\r\nNOP\r\n\r\nBEQ T2 T5 add_coins_to_coin_estimate_last_five_turn_blue_space ; runs code when it is the last 5 turns\r\nNOP\r\n\r\nadd_coins_to_coin_estimate_normal_blue_space:\r\nADDIU S7 S7 3 ; adds estimated coins for landing on a blue space when it is not the last 5 turns\r\nJ pre_future_point\r\nNOP\r\n\r\nadd_coins_to_coin_estimate_last_five_turn_blue_space:\r\nADDIU S7 S7 6 ; adds estimated coins for landing on a blue space during the last 5 turns\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 4 $\r\nbattle_space:\r\nLI T5 20\r\n\r\nSLT T6 T5 S7\r\nBNEZ T6 battle_space_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 battle_space_at_least_twenty ; loads code if the current estimated coins are at least 20\r\nNOP\r\n\r\nSLT T6 S7 T5  ; loads code if the current estimated coins are less than 20\r\nBNEZ T6 battle_space_less_than_twenty\r\nNOP\r\n\r\nbattle_space_at_least_twenty:\r\nADDIU S1 S1 6 ; adds points for a battle space when you have over 20 coins 6 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nbattle_space_less_than_twenty:\r\nADDIU S1 S1 12 ; adds points for a battle space when you have less than 20 coins 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n; landing 5 $\r\nred_space:\r\nADDIU S1 S1 8 ; adds points for a red space 8 points will be added by default\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\n\r\nLI T5 5\r\nSLT T6 T5 T2 ; runs code when it is not the last 5 turns\r\nBNEZ T6 remove_coins_to_coin_estimate_normal_red_space\r\nNOP\r\n\r\nSLT T6 T2 T5\r\nBNEZ T6 remove_coins_to_coin_estimate_last_five_turn_red_space\r\nNOP\r\n\r\nBEQ T2 T5 remove_coins_to_coin_estimate_last_five_turn_red_space ; runs code when it is the last 5 turns\r\nNOP\r\n\r\nremove_coins_to_coin_estimate_normal_red_space:\r\nLI T5 3\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_three_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_three_from_estimated_coins ; runs code for when coin count to be taken is not less than estimated coin count\r\nNOP\r\n\r\nSLT T6 S7 T5  ; runs code for when coin count to be taken is less than estimated coin count\r\nBNEZ T6 set_estimated_coins_to_zero_for_red_space_landing\r\nNOP\r\n\r\nsubtract_three_from_estimated_coins:\r\nADDIU S7 S7 -3 ; subtracts 3 coins from estimated coin count\r\nJ pre_future_point\r\nNOP\r\n\r\nremove_coins_to_coin_estimate_last_five_turn_red_space:\r\nLI T5 6\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_six_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_six_from_estimated_coins ; runs code for when coin count to be taken is not less than estimated coin count\r\nNOP\r\n\r\nSLT T6 S7 T5  ; runs code for when coin count to be taken is less than estimated coin count\r\nBNEZ T6 set_estimated_coins_to_zero_for_red_space_landing\r\nNOP\r\n\r\nsubtract_six_from_estimated_coins:\r\nADDIU S7 S7 -6 ; subtracts 6 coins from estimated coin count\r\nJ pre_future_point\r\nNOP\r\n\r\nset_estimated_coins_to_zero_for_red_space_landing:\r\nDADDU S7 R0 R0 ; clears current coin count\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 6 $\r\nbowser_space:\r\n\r\nBEQZ S7 bowser_space_has_no_coins\r\nNOP\r\n\r\nBNEZ S7 bowser_space_has_coins\r\nNOP\r\n\r\nbowser_space_has_coins:\r\nADDIU S1 S1 6 ; adds points for landing on bowser when the CPU has coins 6 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nbowser_space_has_no_coins:\r\nADDIU S1 S1 18 ; adds points for landing on bowser when the CPU has no coins 18 points will be added by default\r\n\r\nJAL GetPlayerPlacement ; 0-3 at V0\r\nLBU A0 29(S3) ; Player Index\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\n; the code below is to estimate the amount of coins that bowser will give when you have 0 coins based on placement and turn count\r\n\r\nLI T5 5\r\nSLT T6 T1 T5\r\nBNEZ T6 bowser_space_early_game\r\nNOP\r\n\r\nBEQ T1 T5 bowser_space_early_game\r\nNOP\r\n\r\nSLT T6 T5 T2\r\nBNEZ T6 bowser_space_late_game\r\nNOP\r\n\r\nBEQ T2 T5 bowser_space_late_game\r\nNOP\r\n\r\n\r\nbowser_space_mid_game:\r\n\r\nLI T5 1\r\nSLT T6 V0 T5\r\nBNEZ T6 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_fourty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_fourty_coins\r\nNOP\r\n\r\n\r\nbowser_space_early_game:\r\n\r\nLI T5 1\r\nSLT T6 V0 T5\r\nBNEZ T6 bowser_space_add_twenty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_twenty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_thirty_coins\r\nNOP\r\n\r\n\r\nbowser_space_late_game:\r\nBEQZ V0 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nLI T5 1\r\nBEQ V0 T5 bowser_space_add_fourty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_fifty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_fifty_coins\r\nNOP\r\n\r\n\r\n\r\nbowser_space_add_twenty_coins:\r\nADDIU S7 S7 20\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_thirty_coins:\r\nADDIU S7 S7 30\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_fourty_coins:\r\nADDIU S7 S7 40\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_fifty_coins:\r\nADDIU S7 S7 50\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n; landing 7 $\r\ngame_guy_space:\r\nBEQZ S7 game_guy_zero_coins\r\nNOP\r\n\r\nLI T5 41\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_forty\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 game_guy_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 game_guy_less_than_twenty\r\nNOP\r\n\r\ngame_guy_at_least_forty:\r\nADDIU S1 S1 2 ; adds points when the cpu has at least 40 coins and they will land on gameguy 2 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ngame_guy_at_least_twenty:\r\nADDIU S1 S1 4 ; adds points when the cpu has at least 20 coins and they will land on gameguy 4 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_less_than_twenty:\r\nADDIU S1 S1 14 ; adds points when the cpu has less than 20 coins and they will land on gameguy 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_zero_coins:\r\nADDIU S1 S1 12 ; adds points when the cpu will have 0 coins and they will land on gameguy 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n; landing 8 $\r\nchance_time_space:\r\n ; the code below tries to find the largest star count that does not belong to the CPU, it is similar to the code used to find the largest coin value not belonging to the current CPU\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\nDADDU T1 R0 R0\r\nDADDU T2 R0 R0\r\nDADDU T3 R0 R0\r\nDADDU T4 R0 R0\r\n\r\ncheck_player_one_is_not_current_for_stars:\r\nBNEZ V0 load_player_one_stars\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_stars:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_stars\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_stars:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_stars\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_stars:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_stars\r\nNOP\r\n\r\nplayer_star_comparison_start:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_star_comparison_one_two_is_larger\r\nNOP \r\n\r\nplayer_star_comparison_three:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_star_comparison_two_three_is_larger\r\nNOP\r\n\r\nplayer_star_comparison_four:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_star_comparison_three_four_is_larger\r\nNOP\r\n\r\nchance_time_star_check_final:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\nLBU T2 14(S3) ; puts current player's stars in T2\r\n\r\nLI T5 3 ; this value is the number of turns to be considered end game (S1 S1 might be useful to change)\r\nSLT T6 T5 T3  \r\nBNEZ T6 early_or_mid_game_chance_time ; runs code if it is not the last 3 turns\r\nNOP\r\n\r\nSLT T6 T3 T5\r\nBNEZ T6 end_game_chance_time\r\nNOP\r\n\r\nBEQ T3 T5 end_game_chance_time ; runs code if it is the last 3 turns\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time:\r\nADDIU T2 T2 2 ; adds a number that is the gap between the first place player's star count and the current player's star count. Changing this number will change the gap required between the cpu and 1st place to make chance time more appealing. By default this number is 2 which means that if the gap is larger than 2 then chance time will be more appealing (S1 S1 here for guidance to change stuff)\r\n\r\nSLT T6 T2 T1  \r\nBNEZ T6 early_or_mid_game_chance_time_add_points ; if the gap is larger than what was set above then it runs this code\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points if the gap between the cpu and 1st place was not large enough 4 points will be added by default\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_add_points:\r\nADDIU S1 S1 14 ; adds points if the gap between the cpu and 1st place was large enough 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nend_game_chance_time:\r\nSLT T6 T2 T1  ; checks if the star count is the same as 1st place\r\nBNEZ T6 end_game_chance_time_add_points\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points if the star count is the same as 1st place 4 points will be added by default\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nend_game_chance_time_add_points:\r\nADDIU S1 S1 14 ; adds points if the star count is less than 1st place 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nload_player_one_stars:\r\nLBU T1 144(SP)\r\n\r\nJ check_player_two_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_two_stars:\r\nLBU T2 136(SP)\r\n\r\nJ check_player_three_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_three_stars:\r\nLBU T3 128(SP)\r\n\r\nJ check_player_four_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_four_stars:\r\nLBU T4 120(SP)\r\n\r\nJ player_star_comparison_start\r\nNOP\r\n\r\nplayer_star_comparison_one_two_is_larger:\r\nMOVE T1 T2\r\n\r\nJ player_star_comparison_three\r\nNOP\r\n\r\nplayer_star_comparison_two_three_is_larger:\r\nMOVE T1 T3\r\n\r\nJ player_star_comparison_four\r\nNOP\r\n\r\nplayer_star_comparison_three_four_is_larger:\r\nMOVE T1 T4\r\n\r\nJ chance_time_star_check_final\r\nNOP\r\n\r\n\r\n\r\n; landing 9 $\r\nhappening_space:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\nLBU T9 64(SP)\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_one_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_two_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_three_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_four_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_five_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_six_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_seven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_eight_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_nine_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_ten_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_eleven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_one_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_two_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_three_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_four_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_five_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_six_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_seven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eight_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_nine_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_ten_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eleven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nbonus_stars_are_not_enabled_happening_space:\r\n\r\nBEQZ T1 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_not_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_not_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\n\r\nLBU T9 64(SP)\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_one_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_two_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_three_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_four_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_five_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_six_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_seven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_eight_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_nine_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_ten_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_eleven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_one_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_two_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_three_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_four_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_five_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_six_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_seven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eight_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_nine_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_ten_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eleven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nbonus_stars_are_enabled_happening_space:\r\nBEQZ T1 happening_space_bonus_stars_are_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n; landing 20 $\r\nhappening_space_good:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_good_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_good_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_good_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_good_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n; landing 21 $\r\nhappening_space_bad:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_bad_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_bad_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_bad_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\nhappening_space_bad_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 12 ; adds points for landing on this space when it is unknown and there are no bonus stars and it is not the last turn, default is 12\r\n\r\nADDIU S1 S1 60 ; adds points for future spaces instead of using the future array code, default is 60\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is unknown and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 20 ; adds points for landing on this space when it is good and there are no bonus stars and it is not the last turn, default is 20\r\n\r\nADDIU S1 S1 100 ; adds points for future spaces instead of using the future array code, default is 100\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is good and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 0 ; adds points for landing on this space when it is bad and there are no bonus stars and it is not the last turn, default is 0\r\n\r\nADDIU S1 S1 0 ; adds points for future spaces instead of using the future array code, default is 0\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is bad and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 14 ; adds points for landing on this space when it is unknown and there are bonus stars and it is not the last turn, default is 14\r\n\r\nADDIU S1 S1 70 ; adds points for future spaces instead of using the future array code, default is 70\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is unknown and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 22 ; adds points for landing on this space when it is good and there are bonus stars and it is not the last turn, default is 22\r\n\r\nADDIU S1 S1 110 ; adds points for future spaces instead of using the future array code, default is 110\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is good and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 2 ; adds points for landing on this space when it is bad and there are bonus stars and it is not the last turn, default is 2\r\n\r\nADDIU S1 S1 0 ; adds points for future spaces instead of using the future array code, default is 0\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is bad and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\npre_future_point:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nLB T5 68(SP)\r\nBNEZ T5 wacky_watch_might_extend_game\r\nNOP\r\n\r\nBEQ T0 T1 pick_point_comparison\r\nNOP\r\n\r\nwacky_watch_might_extend_game:\r\nLUI S4 hi(future_space_array)\r\nADDIU S4 S4 lo(future_space_array) ; loads the future space array into S4\r\nLI T8 10 ; sets T8 to 10 which will be used to estimate the next 10 spaces\r\n\r\nfuture_point_loop:\r\nLBU T7 0(S2) ; loads the currently selected space in S2 to T7\r\n\r\nBEQZ T7 array_is_too_short\r\nNOP\r\n\r\nLUI T5 hi(skip_space_array)\r\nADDIU T5 T5 lo(skip_space_array) ; loads skip space array into T5 also used for resetting position as it loops\r\n\r\ncheck_if_space_will_not_count_towards_remaining_future_spaces_loop:\r\nLB T6 0(T5) ; loads the currently selected space in T5 to T6\r\n\r\nBEQ T6 T7 add_one_to_future_point_loop ; compares id in main space array to the skip space array to see if one should be added in the estimation\r\nNOP\r\n\r\nBEQZ T6 return_to_future_point_loop ; if the id in T6 is 0 that means the skip space array is over and it is time to move on\r\nNOP\r\n\r\nADDIU T5 T5 1 ; adds 1 to T5 to check the next spot's info\r\n\r\nJ check_if_space_will_not_count_towards_remaining_future_spaces_loop\r\nNOP\r\n\r\nadd_one_to_future_point_loop:\r\nADDIU T8 T8 1 ; adds 1 to the estimated roll because a passing space/event has been detected\r\n\r\nreturn_to_future_point_loop:\r\n\r\nBEQZ T8 future_array_processing ; if T8 is zero that means we have reached the 10 spaces and any passing spaces we may have encountered, the position for this here is very important to make sure we don't miscount spaces\r\nNOP\r\n\r\nSB T7 0(S4) ; writes the current space ID to the future space array for point evaluation later on\r\nADDIU S4 S4 1 ; moves to the next value in S4 to prevent overwriting the ID we just wrote\r\nADDIU S2 S2 1 ; adds 1 to S2 to check the next space ID\r\nADDIU T8 T8 -1 ; removes 1 from roll to check next space\r\n\r\nJ future_point_loop\r\nNOP\r\n\r\n\r\n\r\n; future 1 $\r\nstar_passing_future:\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\n\r\n; the code below checks if there are any lucky lamps or magic lamps, if it finds a magic lamp then it checks if that player has enough coins to use it to get the star and then it picks between adding points if there are no items that can prevent the cpu from getting the star or not\r\n\r\ncheck_player_one_is_not_current_for_items:\r\nBNEZ V0 load_player_one_items\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_items:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_items\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_items:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_items\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_items:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_items\r\nNOP\r\n\r\n\r\nstar_passing_future_no_item:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_no_item_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_no_item_at_least_twenty\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_no_item_at_least_ten\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_no_item_at_least_ten\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 star_passing_future_no_item_less_than_ten\r\nNOP\r\n\r\n\r\n\r\nstar_passing_future_item:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_item_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_item_at_least_twenty\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_item_at_least_ten\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_item_at_least_ten\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 star_passing_future_item_less_than_ten\r\nNOP\r\n\r\n\r\n\r\n\r\nstar_passing_future_item_at_least_twenty:\r\nADDIU S1 S1 50 ; adds points when the star is within the next 10 spaces and the coin estimate is enough to buy the star, but another player has an item that may prevent the cpu from getting the star 50 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_item_at_least_ten:\r\nADDIU S1 S1 25 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star but is large enough that winning a minigame can give the cpu enough coins, but another player has an item that may prevent the cpu from getting the star 25 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_item_less_than_ten:\r\nADDIU S1 S1 10 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star even if the cpu wins a minigame, but another player has an item that may prevent the cpu from getting the star 10 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_at_least_twenty:\r\nADDIU S1 S1 100 ; adds points when the star is within the next 10 spaces and the coin estimate is enough to buy the star, and no other players have items that will prevent the cpu from getting the star 100 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_at_least_ten:\r\nADDIU S1 S1 50 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star but will be if a minigame is won, and no other players have items that will prevent the cpu from getting the star 50 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_less_than_ten:\r\nADDIU S1 S1 25 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star even if the cpu wins a minigame, and no other players have items that will prevent the cpu from getting the star 25 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nload_player_one_items:\r\nLBU T0 116(SP)\r\n\r\nLHU T1 148(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_one_coin_check\r\nNOP\r\n\r\n\r\n\r\ncheck_player_one_items_two:\r\nLBU T0 112(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_one_coin_check\r\nNOP\r\n\r\ncheck_player_one_items_three:\r\nLBU T0 108(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_one_coin_check\r\nNOP\r\n\r\nJ check_player_two_is_not_current_for_items\r\nNOP\r\n\r\nload_player_two_items:\r\nLBU T0 104(SP)\r\n\r\nLHU T1 140(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_two_coin_check\r\nNOP\r\n\r\ncheck_player_two_items_two:\r\nLBU T0 100(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_two_coin_check\r\nNOP\r\n\r\ncheck_player_two_items_three:\r\nLBU T0 96(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_two_coin_check\r\nNOP\r\n\r\nJ check_player_three_is_not_current_for_items\r\nNOP\r\n\r\nload_player_three_items:\r\nLBU T0 92(SP)\r\n\r\nLHU T1 132(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_three_coin_check\r\nNOP\r\n\r\ncheck_player_three_items_two:\r\nLBU T0 88(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_three_coin_check\r\nNOP\r\n\r\ncheck_player_three_items_three:\r\nLBU T0 84(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_three_coin_check\r\nNOP\r\n\r\nJ check_player_four_is_not_current_for_items\r\nNOP\r\n\r\n\r\nload_player_four_items:\r\nLBU T0 80(SP)\r\n\r\nLHU T1 124(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_four_coin_check\r\nNOP\r\n\r\ncheck_player_four_items_two:\r\nLBU T0 76(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_four_coin_check\r\nNOP\r\n\r\ncheck_player_four_items_three:\r\nLBU T0 72(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_four_coin_check\r\nNOP\r\n\r\nJ star_passing_future_no_item\r\nNOP\r\n\r\n\r\n\r\nstar_passing_future_item_one_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_one_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_one_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ star_passing_future_no_item\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 2 $\r\nitem_shop_passing_future:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nDADDU T2 R0 R0\r\n\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\nLI T5 1\r\nSLT T6 T5 T2  \r\nBNEZ T6 item_shop_passing_future_enough_turns ; makes sure that when it might be possible to reach the store it will not be the last turn\r\nNOP\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_enough_turns:\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_twenty_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_twenty_coins\r\nNOP\r\n\r\nLI T5 15\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_fifteen_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_fifteen_coins\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_ten_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_ten_coins\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 item_shop_passing_future_add_points_for_less_than_ten_coins\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_twenty_coins:\r\nADDIU S1 S1 10 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 20, 10 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_fifteen_coins:\r\nADDIU S1 S1 7 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 15, 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_ten_coins:\r\nADDIU S1 S1 5 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 10, 5 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_less_than_ten_coins:\r\nADDIU S1 S1 3 ; adds points if a store is within the next 10 spaces and the current coin estimate is less than 10, 3 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n; future 3 $\r\nboo_passing_future:\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_future_can_steal_stars\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_future_can_steal_stars\r\nNOP\r\n\r\nboo_passing_future_cannot_steal_stars:\r\nADDIU S1 S1 35 ; adds points for being able to steal coins using boo within the next 10 spaces 35 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nboo_passing_future_can_steal_stars:\r\nJAL GetSumOfPlayerStars ; Sum of all stars at V0\r\nNOP\r\n\r\nLBU T0 14(S3)\r\n\r\nSLT T6 T0 V0  \r\nBNEZ T6 boo_passing_future_can_steal_stars_gameguy_check\r\nNOP\r\n\r\nJ boo_passing_future_cannot_steal_stars\r\nNOP\r\n\r\n\r\nboo_passing_future_can_steal_stars_gameguy_check:\r\nLBU T9 64(SP)\r\nLI T5 7 \r\nBEQ T9 T5 boo_passing_future_can_steal_stars_gameguy_confirmed\r\nNOP\r\n\r\nADDIU S1 S1 75 ; adds points for being able to steal stars using boo within the next 10 spaces 75 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nboo_passing_future_can_steal_stars_gameguy_confirmed:\r\nADDIU S1 S1 55 ; adds points for being able to steal stars using boo within the next 10 spaces but the cpu will land on gameguy 55 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 4 $\r\nitem_space_future:\r\nADDIU S1 S1 9 ; adds points for future item space within the next 10 spaces 9 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 5 $\r\nbank_space_future:\r\nLUI T1 hi(bank_coin_total)\r\nADDIU T1 T1 lo(bank_coin_total) ; Address of coin count in bank\r\nLHU T1 0(T1) ; Load current coin count in bank to T1\r\n\r\nLI T5 50\r\nSLT T6 T5 T1\r\nBNEZ T6 bank_space_future_at_least_fifty_coins\r\nNOP\r\n\r\nBEQ T1 T5 bank_space_future_at_least_fifty_coins\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 bank_space_future_at_least_twenty_coins\r\nNOP\r\n\r\nBEQ T1 T5 bank_space_future_at_least_twenty_coins\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 bank_space_future_less_than_twenty_coins\r\nNOP\r\n\r\nbank_space_future_at_least_fifty_coins:\r\nADDIU S1 S1 7 ; adds points for a bank space within the next 10 spaces that has at least 50 coins 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbank_space_future_at_least_twenty_coins:\r\nADDIU S1 S1 6 ; adds points for a bank space within the next 10 spaces that has at least 20 coins 6 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbank_space_future_less_than_twenty_coins:\r\nADDIU S1 S1 5 ; adds points for a bank space within the next 10 spaces that has less than 20 coins 5 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 6 $\r\nblue_space_future:\r\nADDIU S1 S1 8 ; adds points for a blue space within the next 10 spaces 8 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 7 $\r\nbattle_space_future:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 battle_space_future_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 battle_space_future_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 battle_space_future_less_than_twenty\r\nNOP\r\n\r\nbattle_space_future_at_least_twenty:\r\nADDIU S1 S1 3 ; adds points for a battle space within the next 10 spaces when the cpu's coin estimate is at least 20, 3 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbattle_space_future_less_than_twenty:\r\nADDIU S1 S1 6 ; adds points for a battle space within the next 10 spaces when the cpu's coin estimate is less than 20, 6 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n; future 8 $\r\nred_space_future:\r\nADDIU S1 S1 4 ; adds points for a red space within the next 10 spaces 4 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 9 $\r\nbowser_space_future:\r\nADDIU S1 S1 3 ; adds points for a bowser space within the next 10 spaces 3 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 10 $\r\ngame_guy_space_future:\r\n\r\nLI T5 41\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_forty_future\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_space_future_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 game_guy_space_future_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 game_guy_space_future_less_than_twenty\r\nNOP\r\n\r\n\r\ngame_guy_at_least_forty_future:\r\nADDIU S1 S1 1 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is at least 40, 1 point will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_space_future_at_least_twenty:\r\nADDIU S1 S1 2 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is at least 20, 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\ngame_guy_space_future_less_than_twenty:\r\nADDIU S1 S1 7 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is less than 20, 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 11 $\r\nchance_time_space_future:\r\n; the code below finds the largest star count belonging to a different player\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\nDADDU T1 R0 R0\r\nDADDU T2 R0 R0\r\nDADDU T3 R0 R0\r\nDADDU T4 R0 R0\r\n\r\ncheck_player_one_is_not_current_for_stars_future:\r\nBNEZ V0 load_player_one_stars_future\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_stars_future:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_stars_future\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_stars_future:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_stars_future\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_stars_future:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_stars_future\r\nNOP\r\n\r\nplayer_star_comparison_start_future:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_star_comparison_one_two_is_larger_future\r\nNOP \r\n\r\nplayer_star_comparison_three_future:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_star_comparison_two_three_is_larger_future\r\nNOP\r\n\r\nplayer_star_comparison_four_future:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_star_comparison_three_four_is_larger_future\r\nNOP\r\n\r\nchance_time_star_check_final_future:\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nLBU T2 14(S3) ; puts current player's stars in T2\r\n\r\nLI T5 3 ; this value is the number of turns to be considered end game (S1 S1 might be useful to change)\r\n\r\nSLT T6 T5 T3  \r\nBNEZ T6 early_or_mid_game_chance_time_future\r\nNOP\r\n\r\nSLT T6 T3 T5\r\nBNEZ T6 end_game_chance_time_future\r\nNOP\r\n\r\nBEQ T3 T5 end_game_chance_time_future\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_future:\r\nADDIU T2 T2 2 ; adds a number that is the gap between the first place player's star count and the current player's star count. Changing this number will change the gap required to make chance time more appealing. By default this number is 2 which means that if the gap is larger than 2 then chance time will be more appealing (S1 S1 here for guidance to change stuff)\r\n\r\nSLT T6 T2 T1  \r\nBNEZ T6 early_or_mid_game_chance_time_future_add_points\r\nNOP\r\n\r\nADDIU S1 S1 2 ; adds points for a chance time within the next 10 spaces when the gap between the cpu and first place is not large enough and it is not the end game 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_future_add_points:\r\nADDIU S1 S1 7 ; adds points for a chance time within the next 10 spaces when the gap between the cpu and first place is large enough and it is not the end game 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nend_game_chance_time_future:\r\nSLT T6 T2 T1 \r\nBNEZ T6 end_game_chance_time_future_add_points\r\nNOP\r\n\r\nADDIU S1 S1 2 ; adds points for a chance time within the next 10 spaces when there is no gap between the cpu and first place and it is the end game 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nend_game_chance_time_future_add_points:\r\nADDIU S1 S1 7 ; adds points for a chance time within the next 10 spaces when there is a gap between the cpu and first place and it is the end game 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nload_player_one_stars_future:\r\nLBU T1 144(SP)\r\nJ check_player_two_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_two_stars_future:\r\nLBU T2 136(SP)\r\nJ check_player_three_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_three_stars_future:\r\nLBU T3 128(SP)\r\nJ check_player_four_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_four_stars_future:\r\nLBU T4 120(SP)\r\nJ player_star_comparison_start_future\r\nNOP\r\n\r\nplayer_star_comparison_one_two_is_larger_future:\r\nMOVE T1 T2\r\nJ player_star_comparison_three_future\r\nNOP\r\n\r\nplayer_star_comparison_two_three_is_larger_future:\r\nMOVE T1 T3\r\nJ player_star_comparison_four_future\r\nNOP\r\n\r\nplayer_star_comparison_three_four_is_larger_future:\r\nMOVE T1 T4\r\nJ chance_time_star_check_final_future\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 12 $\r\nhappening_space_future:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_one_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_two_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_three_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_four_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_five_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_six_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_seven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eight_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_nine_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_ten_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eleven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_one_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_two_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_three_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_four_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_five_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_six_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_seven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eight_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_nine_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_ten_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eleven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nbonus_stars_are_not_enabled_happening_space_future:\r\nBEQZ T1 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_one_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_two_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_three_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_four_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_five_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_six_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_seven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eight_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_nine_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_ten_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eleven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_one_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_two_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_three_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_four_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_five_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_six_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_seven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eight_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_nine_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_ten_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eleven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nbonus_stars_are_enabled_happening_space_future:\r\nBEQZ T1 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n; future 23 $\r\nhappening_space_future_good:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_good_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_good_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_good_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_good_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 24 $\r\nhappening_space_future_bad:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_bad_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_bad_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_bad_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_bad_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 6 ; adds points for being in the next 10 spaces when it is unknown and there are no bonus stars and it is not the last turn, default is 6\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is unknown and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 10 ; adds points for being in the next 10 spaces when it is good and there are no bonus stars and it is not the last turn, default is 10\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is good and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 0 ; adds points for being in the next 10 spaces when it is bad and there are no bonus stars and it is not the last turn, default is 0\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is bad and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 7 ; adds points for being in the next 10 spaces when it is unknown and there are bonus stars and it is not the last turn, default is 6\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is unknown and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 11 ; adds points for being in the next 10 spaces when it is good and there are bonus stars and it is not the last turn, default is 10\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is good and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 1 ; adds points for being in the next 10 spaces when it is bad and there are bonus stars and it is not the last turn, default is 0\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is bad and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfuture_array_processing:\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\n\r\nLUI S4 hi(future_space_array)\r\nADDIU S4 S4 lo(future_space_array) ; loads future space array in S4 to reset the position for processing\r\n\r\nfuture_array_processing_loop:\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\n\r\nBEQZ T9 pick_point_comparison ; checks if the ID is 0 which means the end of the array has been reached and it is time to compare point values with previous point values\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T9 T5 blue_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T9 T5 red_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T9 T5 chance_time_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T9 T5 bowser_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T9 T5 item_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T9 T5 battle_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T9 T5 game_guy_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T9 T5 bank_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T9 T5 item_shop_passing_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T9 T5 boo_passing_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLI T5 19\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T9 T5 happening_space_future_good ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T9 T5 happening_space_future_bad ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nreturn_to_future_array_processing_loop:\r\nADDIU S4 S4 1 ; this is where we add 1 to S4 to check the next value\r\n\r\nJ future_array_processing_loop\r\nNOP\r\n\r\n\r\ncheck_if_space_has_star:\r\nLUI T6 hi(skip_space_array)\r\nADDIU T6 T6 lo(skip_space_array) ; this loads the skip space array \r\nLBU T9 0(T6) ; here we check the first value in the skip space array which is where the current star spawn value is\r\n\r\nBEQ T9 T8 star_passing_future ; if the current star spawn value is the same as the current ID then we run the code for a future star\r\nNOP\r\n\r\nBNE T9 T8 blue_space_future ; if the current star spawn value is not the same as the current ID then we run the code for a future blue space\r\nNOP\r\n\r\n\r\narray_is_too_short:\r\nLI t0, 0x807FFFFC\r\nSW r0, 0x0000 (t0)\r\n;the array has detected a 0 which means that you improperly placed a 0 in one of the arrays or you did not make your array long enough\r\n\r\n\r\npick_point_comparison:\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLB T0 152(SP)\r\nBEQZ T0 left_point_comparison\r\nNOP\r\n\r\nBNEZ T0 right_point_comparison\r\nNOP\r\n\r\nleft_new_largest_point_value:\r\nMOVE S5 S1 ; this is used to overwrite the previous largest value with a new one\r\n\r\nleft_point_comparison:\r\nSLT T0 S5 S1 ; if S5 is less than S1 then T0 will equal 1 otherwise it will equal 0\r\nBNEZ T0 left_new_largest_point_value ; if T0 is not zero then run this code\r\nNOP\r\n\r\n\r\nMOVE S1 R0 ; clears S1 to make sure that it will not cause issues for the next round of adding points\r\nADDIU S0 S0 1 ; this adds 1 to S0 to start checking the next array in the list or to go to the next steps if we have reached that point\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\nright_new_largest_point_value:\r\nMOVE S6 S1 ; this is used to overwrite the previous largest value with a new one\r\n\r\nright_point_comparison:\r\nSLT T0 S6 S1 ; if S6 is less than S1 then T0 will equal 1 otherwise it will equal 0\r\nBNEZ T0 right_new_largest_point_value ; if T0 is not zero then run this code\r\nNOP\r\n\r\nADDIU S0 S0 1 ; this adds 1 to S0 to start checking the next array in the list or to go to the next steps if we have reached that point\r\nMOVE S1 R0 ; clears S1 to make sure that it will not cause issues for the next round of adding points\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\nChoose_Side:\r\nSLT T6 S6 S5 \r\nBNEZ T6 Go_Left\r\nNOP\r\n\r\nSLT T6 S5 S6 \r\nBNEZ T6 Go_Right\r\nNOP\r\n\r\nBEQ S5 S6 exit\r\nNOP\r\n\r\nGo_Left:\r\nLBU A0 29(S3)\r\nLI A1 Left_chain_index\r\nLI A2 Left_chain_space_index\r\n\r\nJ SetDecision\r\nNOP\r\n\r\nGo_Right:\r\nLBU A0 29(S3)\r\nLI A1 Right_chain_index\r\nLI A2 Right_chain_space_index\r\n\r\nJ SetDecision\r\nNOP\r\n\r\nSetDecision:\r\nJAL SetNextChainAndSpace\r\nNOP\r\n\r\nJ exit\r\nNOP\r\n\r\n\r\n\r\nexit:\r\nLW S7 164(SP)\r\nLW S6 168(SP)\r\nLW S5 172(SP)\r\nLW S4 176(SP)\r\nLW S3 180(SP)\r\nLW S2 184(SP)\r\nLW S1 188(SP)\r\nLW S0 192(SP)\r\nLW RA 196(SP)\r\nJR RA\r\nADDIU SP SP 200\r\n\r\n.align 16\r\npassing_space_array:\r\n.byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r\n\r\n.align 16\r\nfuture_space_array:\r\n.byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r\n\r\n.align 16\r\nskip_space_array:\r\n.byte 00,09,10,00\r\n\r\n.align 16\r\nsave_to_passing_arrays_array:\r\n.byte 00,08,09,10,00\r\n\r\n\r\n.align 16\r\nmain_left_array_array:\r\n.byte 01,02,03,04,05,06,07,00\r\n\r\n.align 16\r\nmain_left_array_one:\r\n.byte 01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,00\r\n\r\n\r\n.align 16\r\nmain_left_array_two:\r\n.byte 01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,00\r\n\r\n\r\n.align 16\r\nmain_left_array_three:\r\n.byte 01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,00\r\n\r\n\r\n.align 16\r\nmain_left_array_four:\r\n.byte 01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,00\r\n\r\n\r\n.align 16\r\nmain_left_array_five:\r\n.byte 01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n.align 16\r\nmain_left_array_six:\r\n.byte 01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n.align 16\r\nmain_left_array_seven:\r\n.byte 01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n.align 16\r\nmain_left_array_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_ten:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_eleven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twelve:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fourteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fifteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_sixteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_seventeen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_eighteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_nineteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fifty:\r\n.byte 00,00\r\n\r\n\r\n.align 16\r\nmain_right_array_array:\r\n.byte 00,00\r\n\r\n\r\n.align 16\r\nmain_right_array_array:\r\n.byte 01,02,03,04,00\r\n\r\n.align 16\r\nmain_right_array_one:\r\n.byte 01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n.align 16\r\nmain_right_array_two:\r\n.byte 01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n.align 16\r\nmain_right_array_three:\r\n.byte 01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n.align 16\r\nmain_right_array_four:\r\n.byte 01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_ten:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_eleven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twelve:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fourteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fifteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_sixteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_seventeen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_eighteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_nineteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fifty:\r\n.byte 00,00\r\n"},"(New Junction 3)":{"language":0,"code":"; NAME: (New Junction 3)\r\n; GAMES: MP3_USA\r\n; EXECUTION: Direct\r\n; PARAM: Space|Left\r\n; PARAM: Space|Right\r\n\r\nADDIU SP SP -200\r\nSW RA 196(SP)\r\nSW S0 192(SP)\r\nSW S1 188(SP)\r\nSW S2 184(SP)\r\nSW S3 180(SP)\r\nSW S4 176(SP)\r\nSW S5 172(SP)\r\nSW S6 168(SP)\r\nSW S7 164(SP)\r\n\r\n;Register Guide:\r\n;S0, main array array left or right\r\n;S1, latest points left or right\r\n;S2, main array left or right\r\n;S3, player structure\r\n;S4, passing or future array\r\n;S5, left_points biggest\r\n;S6, right_points biggest\r\n;S7, estimated_coins\r\n;\r\n;Saved to Stack:\r\n;\r\n;current spaces remaining\t\t\t\t\t\t160\r\n;item_estimate\t\t\t\t\t\t\t\t\t156\r\n;which side is currently being counted\t\t\t152\r\n;p1 coins\t\t\t\t\t\t\t\t\t\t148\r\n;p1 stars\t\t\t\t\t\t\t\t\t\t144\r\n;p2 coins\t\t\t\t\t\t\t\t\t\t140\r\n;p2 stars\t\t\t\t\t\t\t\t\t\t136\r\n;p3 coins\t\t\t\t\t\t\t\t\t\t132\r\n;p3 stars\t\t\t\t\t\t\t\t\t\t128\r\n;p4 coins\t\t\t\t\t\t\t\t\t\t124\r\n;p4 stars\t\t\t\t\t\t\t\t\t\t120\r\n;p1 item1\t\t\t\t\t\t\t\t\t\t116\r\n;p1 item2\t\t\t\t\t\t\t\t\t\t112\r\n;p1 item3\t\t\t\t\t\t\t\t\t\t108\r\n;p2 item1\t\t\t\t\t\t\t\t\t\t104\r\n;p2 item2\t\t\t\t\t\t\t\t\t\t100\r\n;p2 item3\t\t\t\t\t\t\t\t\t\t96\r\n;p3 item1\t\t\t\t\t\t\t\t\t\t92\r\n;p3 item2\t\t\t\t\t\t\t\t\t\t88\r\n;p3 item3\t\t\t\t\t\t\t\t\t\t84\r\n;p4 item1\t\t\t\t\t\t\t\t\t\t80\r\n;p4 item2\t\t\t\t\t\t\t\t\t\t76\r\n;p4 item3\t\t\t\t\t\t\t\t\t\t72\r\n;wacky watch check\t\t\t\t\t\t\t\t68\r\n;landed on spot id\t\t\t\t\t\t\t\t64\r\n;storage in between JALs (not currently used)\t60\r\n;\r\n;\r\n;Space ID Guide:\r\n;\r\n;Values and their locations on the map https://imgur.com/a/tbSnJuz\r\n;\r\n;blue\t\t\t\t1\r\n;red\t\t\t\t2\r\n;chance time\t\t3\r\n;bowser\t\t\t\t4\r\n;item\t\t\t\t5\r\n;battle\t\t\t\t6\r\n;game guy\t\t\t7\r\n;\r\n;Noticed when passing and count as space traversed\r\n;bank\t\t\t\t8\r\n;\r\n;Noticed when passing and does not count as space traversed\r\n;item shop\t\t\t9\r\n;boo\t\t\t\t10\r\n;\r\n;Noticed when passing and does not count as space traversed only when that space is currently holding the star\r\n;(labeled with an S on the map)\r\n;Star0\t\t\t\t11\r\n;Star1\t\t\t\t12\r\n;Star2\t\t\t\t13\r\n;Star3\t\t\t\t14\r\n;Star4\t\t\t\t15\r\n;Star5\t\t\t\t16\r\n;Star6\t\t\t\t17\r\n;Star7\t\t\t\t18\r\n;\r\n;Board Exclusive Values:\r\n;G1\t\t\t\t\t19\r\n;G2\t\t\t\t\t20\r\n;G3\t\t\t\t\t21\r\n;G4\t\t\t\t\t22\r\n;G5\t\t\t\t\t23\r\n;G6\t\t\t\t\t24\r\n;G7\t\t\t\t\t25\r\n;G8\t\t\t\t\t26\r\n;G9\t\t\t\t\t27\r\n;G10\t\t\t\t28\r\n;G11\t\t\t\t29\r\n;Good Happening\t\t30\r\n;Bad Happening\t\t31\r\n\r\n\r\n\r\nLI t0, 0x807FFFFC\r\nSW r0, 0x0000 (t0)\r\n\r\nSB R0 68(SP) ; this is where the wacky watch check is stored\r\n\r\nJAL GetPlayerStruct\r\nLI A0 0\r\n\r\nLHU T1 10(V0)\r\nSH T1 148(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 144(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 116(SP)\r\nLBU T1 25(V0)\r\nSB T1 112(SP)\r\nLBU T1 26(V0)\r\nSB T1 108(SP)\r\n\r\nJAL GetPlayerStruct\r\nLI A0 1\r\n\r\nLHU T1 10(V0)\r\nSH T1 140(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 136(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 104(SP)\r\nLBU T1 25(V0)\r\nSB T1 100(SP)\r\nLBU T1 26(V0)\r\nSB T1 96(SP)\r\n\r\n\r\nJAL GetPlayerStruct\r\nLI A0 2\r\n\r\nLHU T1 10(V0)\r\nSH T1 132(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 128(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 92(SP)\r\nLBU T1 25(V0)\r\nSB T1 88(SP)\r\nLBU T1 26(V0)\r\nSB T1 84(SP)\r\n\r\n\r\nJAL GetPlayerStruct\r\nLI A0 3\r\n\r\nLHU T1 10(V0)\r\nSH T1 124(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 120(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 80(SP)\r\nLBU T1 25(V0)\r\nSB T1 76(SP)\r\nLBU T1 26(V0)\r\nSB T1 72(SP)\r\n\r\nLI T5 18\r\n\r\nLB T1 116(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 112(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 108(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 104(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 100(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 96(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 92(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 88(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 84(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 80(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 76(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 72(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nJ get_player_structure\r\nNOP\r\n\r\nwacky_watch_has_been_detected:\r\nLI T1 1\r\nSB T1 68(SP)\r\n\r\nget_player_structure:\r\nJAL GetPlayerStruct\r\nLI A0 -1\r\nMOVE S3 V0 ;loads player structure in S3\r\n\r\nLBU T0 23(S3) ; Status Flags\r\nSRL T0 T0 7 ; Shift bits to the right by 7 for Reverse flag\r\nBNEZ T0 exit ; exit if player is in reverse\r\nNOP\r\n\r\nJAL PlayerIsCPU ; makes sure that player is a cpu\r\nLI A0 -1 \r\n\r\nBEQZ V0 exit ; If 0, exit because it's a human\r\nNOP\r\n\r\n;======================================================================================================================================\r\n; This is where the big boi code begins \r\n;======================================================================================================================================\r\nDADDU S0 R0 R0\r\nDADDU S1 R0 R0\r\nDADDU S2 R0 R0\r\nDADDU S5 R0 R0\r\nDADDU S6 R0 R0\r\nSB R0 152(SP) ; this is where the direction is stored\r\n\r\nLUI T0 hi(current_star_spawn)\r\nADDIU T0 T0 lo(current_star_spawn) ; Address of current Star Spawn Cycle\r\nADDIU T1 T0 1 ; Address of first Star Spawn Index in the Cycle\r\nLBU T0 0(T0) ; Load Index of Star Spawn to T0\r\nADDU T0 T0 T1 ; Add to get address of current Star Spawn Index\r\nLBU T2 0(T0) ; Load current Star Spawn Index to T2\r\n\r\nADDIU T2 T2 11 ; adds 11 to star spawn index to match custom id system\r\n\r\nLUI T0 hi(skip_space_array)\r\nADDIU T0 T0 lo(skip_space_array) ; loads array with spaces that will be skipped into T0\r\n\r\nLUI T1 hi(save_to_passing_arrays_array)\r\nADDIU T1 T1 lo(save_to_passing_arrays_array) ; loads array with spaces that will stored for passby calculations into T1\r\n\r\n\r\nSB T2 0(T0) ; stores the current star's location into the skip space array\r\nSB T2 0(T1) ; stores the current star's location into the passby array\r\n\r\n;======================================================================================================================================\r\n; This is where the main loop begins\r\n;======================================================================================================================================\r\nLUI S0 hi(main_left_array_array)\r\nADDIU S0 S0 lo(main_left_array_array) ; loads the array that checks which array is to be checked next for its respective side\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\nswitch_to_right_array_array:\r\nLI T0 1\r\nSB T0 152(SP)\r\nLUI S0 hi(main_right_array_array)\r\nADDIU S0 S0 lo(main_right_array_array) ; loads the array that checks which array is to be checked next for its respective side\r\n\r\nmain_array_processing_loop:\r\nLBU T3 0(S0) ; loads the number in the array for arrays to start checking which array should be loaded next\r\nLBU T0 152(SP)\r\nBNEZ T0 right_arrays\r\nNOP\r\n\r\nleft_arrays:\r\n\r\nBEQZ T3 switch_to_right_array_array\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T3 T5 load_main_left_array_one\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T3 T5 load_main_left_array_two\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T3 T5 load_main_left_array_three\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T3 T5 load_main_left_array_four\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T3 T5 load_main_left_array_five\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T3 T5 load_main_left_array_six\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T3 T5 load_main_left_array_seven\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T3 T5 load_main_left_array_eight\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T3 T5 load_main_left_array_nine\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T3 T5 load_main_left_array_ten\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T3 T5 load_main_left_array_eleven\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T3 T5 load_main_left_array_twelve\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T3 T5 load_main_left_array_thirteen\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T3 T5 load_main_left_array_fourteen\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T3 T5 load_main_left_array_fifteen\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T3 T5 load_main_left_array_sixteen\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T3 T5 load_main_left_array_seventeen\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T3 T5 load_main_left_array_eighteen\r\nNOP\r\n\r\nLI T5 19\r\nBEQ T3 T5 load_main_left_array_nineteen\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T3 T5 load_main_left_array_twenty\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T3 T5 load_main_left_array_twenty_one\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T3 T5 load_main_left_array_twenty_two\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T3 T5 load_main_left_array_twenty_three\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T3 T5 load_main_left_array_twenty_four\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T3 T5 load_main_left_array_twenty_five\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T3 T5 load_main_left_array_twenty_six\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T3 T5 load_main_left_array_twenty_seven\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T3 T5 load_main_left_array_twenty_eight\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T3 T5 load_main_left_array_twenty_nine\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T3 T5 load_main_left_array_thirty\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T3 T5 load_main_left_array_thirty_one\r\nNOP\r\n\r\nLI T5 32\r\nBEQ T3 T5 load_main_left_array_thirty_two\r\nNOP\r\n\r\nLI T5 33\r\nBEQ T3 T5 load_main_left_array_thirty_three\r\nNOP\r\n\r\nLI T5 34\r\nBEQ T3 T5 load_main_left_array_thirty_four\r\nNOP\r\n\r\nLI T5 35\r\nBEQ T3 T5 load_main_left_array_thirty_five\r\nNOP\r\n\r\nLI T5 36\r\nBEQ T3 T5 load_main_left_array_thirty_six\r\nNOP\r\n\r\nLI T5 37\r\nBEQ T3 T5 load_main_left_array_thirty_seven\r\nNOP\r\n\r\nLI T5 38\r\nBEQ T3 T5 load_main_left_array_thirty_eight\r\nNOP\r\n\r\nLI T5 39\r\nBEQ T3 T5 load_main_left_array_thirty_nine\r\nNOP\r\n\r\nLI T5 40\r\nBEQ T3 T5 load_main_left_array_forty\r\nNOP\r\n\r\nLI T5 41\r\nBEQ T3 T5 load_main_left_array_forty_one\r\nNOP\r\n\r\nLI T5 42\r\nBEQ T3 T5 load_main_left_array_forty_two\r\nNOP\r\n\r\nLI T5 43\r\nBEQ T3 T5 load_main_left_array_forty_three\r\nNOP\r\n\r\nLI T5 44\r\nBEQ T3 T5 load_main_left_array_forty_four\r\nNOP\r\n\r\nLI T5 45\r\nBEQ T3 T5 load_main_left_array_forty_five\r\nNOP\r\n\r\nLI T5 46\r\nBEQ T3 T5 load_main_left_array_forty_six\r\nNOP\r\n\r\nLI T5 47\r\nBEQ T3 T5 load_main_left_array_forty_seven\r\nNOP\r\n\r\nLI T5 48\r\nBEQ T3 T5 load_main_left_array_forty_eight\r\nNOP\r\n\r\nLI T5 49\r\nBEQ T3 T5 load_main_left_array_forty_nine\r\nNOP\r\n\r\nLI T5 50\r\nBEQ T3 T5 load_main_left_array_fifty\r\nNOP\r\n\r\n;======================================================================================================================================\r\n;This is where we switch sides by saving 1 to the stack at 108 for it to be detected when comparing points\r\n;======================================================================================================================================\r\nright_arrays:\r\nBEQZ T3 Choose_Side\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T3 T5 load_main_right_array_one\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T3 T5 load_main_right_array_two\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T3 T5 load_main_right_array_three\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T3 T5 load_main_right_array_four\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T3 T5 load_main_right_array_five\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T3 T5 load_main_right_array_six\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T3 T5 load_main_right_array_seven\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T3 T5 load_main_right_array_eight\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T3 T5 load_main_right_array_nine\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T3 T5 load_main_right_array_ten\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T3 T5 load_main_right_array_eleven\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T3 T5 load_main_right_array_twelve\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T3 T5 load_main_right_array_thirteen\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T3 T5 load_main_right_array_fourteen\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T3 T5 load_main_right_array_fifteen\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T3 T5 load_main_right_array_sixteen\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T3 T5 load_main_right_array_seventeen\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T3 T5 load_main_right_array_eighteen\r\nNOP\r\n\r\nLI T5 19\r\nBEQ T3 T5 load_main_right_array_nineteen\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T3 T5 load_main_right_array_twenty\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T3 T5 load_main_right_array_twenty_one\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T3 T5 load_main_right_array_twenty_two\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T3 T5 load_main_right_array_twenty_three\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T3 T5 load_main_right_array_twenty_four\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T3 T5 load_main_right_array_twenty_five\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T3 T5 load_main_right_array_twenty_six\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T3 T5 load_main_right_array_twenty_seven\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T3 T5 load_main_right_array_twenty_eight\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T3 T5 load_main_right_array_twenty_nine\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T3 T5 load_main_right_array_thirty\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T3 T5 load_main_right_array_thirty_one\r\nNOP\r\n\r\nLI T5 32\r\nBEQ T3 T5 load_main_right_array_thirty_two\r\nNOP\r\n\r\nLI T5 33\r\nBEQ T3 T5 load_main_right_array_thirty_three\r\nNOP\r\n\r\nLI T5 34\r\nBEQ T3 T5 load_main_right_array_thirty_four\r\nNOP\r\n\r\nLI T5 35\r\nBEQ T3 T5 load_main_right_array_thirty_five\r\nNOP\r\n\r\nLI T5 36\r\nBEQ T3 T5 load_main_right_array_thirty_six\r\nNOP\r\n\r\nLI T5 37\r\nBEQ T3 T5 load_main_right_array_thirty_seven\r\nNOP\r\n\r\nLI T5 38\r\nBEQ T3 T5 load_main_right_array_thirty_eight\r\nNOP\r\n\r\nLI T5 39\r\nBEQ T3 T5 load_main_right_array_thirty_nine\r\nNOP\r\n\r\nLI T5 40\r\nBEQ T3 T5 load_main_right_array_forty\r\nNOP\r\n\r\nLI T5 41\r\nBEQ T3 T5 load_main_right_array_forty_one\r\nNOP\r\n\r\nLI T5 42\r\nBEQ T3 T5 load_main_right_array_forty_two\r\nNOP\r\n\r\nLI T5 43\r\nBEQ T3 T5 load_main_right_array_forty_three\r\nNOP\r\n\r\nLI T5 44\r\nBEQ T3 T5 load_main_right_array_forty_four\r\nNOP\r\n\r\nLI T5 45\r\nBEQ T3 T5 load_main_right_array_forty_five\r\nNOP\r\n\r\nLI T5 46\r\nBEQ T3 T5 load_main_right_array_forty_six\r\nNOP\r\n\r\nLI T5 47\r\nBEQ T3 T5 load_main_right_array_forty_seven\r\nNOP\r\n\r\nLI T5 48\r\nBEQ T3 T5 load_main_right_array_forty_eight\r\nNOP\r\n\r\nLI T5 49\r\nBEQ T3 T5 load_main_right_array_forty_nine\r\nNOP\r\n\r\nLI T5 50\r\nBEQ T3 T5 load_main_right_array_fifty\r\nNOP\r\n\r\n\r\n;======================================================================================================================================\r\n; This is where the arrays are loaded with all of the possible places you can go based on the current junction and roll\r\n;======================================================================================================================================\r\n\r\nload_main_left_array_one:\r\nLUI S2 hi(main_left_array_one)\r\nADDIU S2 S2 lo(main_left_array_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_two:\r\nLUI S2 hi(main_left_array_two)\r\nADDIU S2 S2 lo(main_left_array_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_three:\r\nLUI S2 hi(main_left_array_three)\r\nADDIU S2 S2 lo(main_left_array_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_four:\r\nLUI S2 hi(main_left_array_four)\r\nADDIU S2 S2 lo(main_left_array_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_five:\r\nLUI S2 hi(main_left_array_five)\r\nADDIU S2 S2 lo(main_left_array_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_six:\r\nLUI S2 hi(main_left_array_six)\r\nADDIU S2 S2 lo(main_left_array_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_seven:\r\nLUI S2 hi(main_left_array_seven)\r\nADDIU S2 S2 lo(main_left_array_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eight:\r\nLUI S2 hi(main_left_array_eight)\r\nADDIU S2 S2 lo(main_left_array_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_nine:\r\nLUI S2 hi(main_left_array_nine)\r\nADDIU S2 S2 lo(main_left_array_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_ten:\r\nLUI S2 hi(main_left_array_ten)\r\nADDIU S2 S2 lo(main_left_array_ten)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eleven:\r\nLUI S2 hi(main_left_array_eleven)\r\nADDIU S2 S2 lo(main_left_array_eleven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twelve:\r\nLUI S2 hi(main_left_array_twelve)\r\nADDIU S2 S2 lo(main_left_array_twelve)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirteen:\r\nLUI S2 hi(main_left_array_thirteen)\r\nADDIU S2 S2 lo(main_left_array_thirteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fourteen:\r\nLUI S2 hi(main_left_array_fourteen)\r\nADDIU S2 S2 lo(main_left_array_fourteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fifteen:\r\nLUI S2 hi(main_left_array_fifteen)\r\nADDIU S2 S2 lo(main_left_array_fifteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_sixteen:\r\nLUI S2 hi(main_left_array_sixteen)\r\nADDIU S2 S2 lo(main_left_array_sixteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_seventeen:\r\nLUI S2 hi(main_left_array_seventeen)\r\nADDIU S2 S2 lo(main_left_array_seventeen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eighteen:\r\nLUI S2 hi(main_left_array_eighteen)\r\nADDIU S2 S2 lo(main_left_array_eighteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_nineteen:\r\nLUI S2 hi(main_left_array_nineteen)\r\nADDIU S2 S2 lo(main_left_array_nineteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty:\r\nLUI S2 hi(main_left_array_twenty)\r\nADDIU S2 S2 lo(main_left_array_twenty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_one:\r\nLUI S2 hi(main_left_array_twenty_one)\r\nADDIU S2 S2 lo(main_left_array_twenty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_two:\r\nLUI S2 hi(main_left_array_twenty_two)\r\nADDIU S2 S2 lo(main_left_array_twenty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_three:\r\nLUI S2 hi(main_left_array_twenty_three)\r\nADDIU S2 S2 lo(main_left_array_twenty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_four:\r\nLUI S2 hi(main_left_array_twenty_four)\r\nADDIU S2 S2 lo(main_left_array_twenty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_five:\r\nLUI S2 hi(main_left_array_twenty_five)\r\nADDIU S2 S2 lo(main_left_array_twenty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_six:\r\nLUI S2 hi(main_left_array_twenty_six)\r\nADDIU S2 S2 lo(main_left_array_twenty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_seven:\r\nLUI S2 hi(main_left_array_twenty_seven)\r\nADDIU S2 S2 lo(main_left_array_twenty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_eight:\r\nLUI S2 hi(main_left_array_twenty_eight)\r\nADDIU S2 S2 lo(main_left_array_twenty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_nine:\r\nLUI S2 hi(main_left_array_twenty_nine)\r\nADDIU S2 S2 lo(main_left_array_twenty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty:\r\nLUI S2 hi(main_left_array_thirty)\r\nADDIU S2 S2 lo(main_left_array_thirty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_one:\r\nLUI S2 hi(main_left_array_thirty_one)\r\nADDIU S2 S2 lo(main_left_array_thirty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_two:\r\nLUI S2 hi(main_left_array_thirty_two)\r\nADDIU S2 S2 lo(main_left_array_thirty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_three:\r\nLUI S2 hi(main_left_array_thirty_three)\r\nADDIU S2 S2 lo(main_left_array_thirty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_four:\r\nLUI S2 hi(main_left_array_thirty_four)\r\nADDIU S2 S2 lo(main_left_array_thirty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_five:\r\nLUI S2 hi(main_left_array_thirty_five)\r\nADDIU S2 S2 lo(main_left_array_thirty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_six:\r\nLUI S2 hi(main_left_array_thirty_six)\r\nADDIU S2 S2 lo(main_left_array_thirty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_seven:\r\nLUI S2 hi(main_left_array_thirty_seven)\r\nADDIU S2 S2 lo(main_left_array_thirty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_eight:\r\nLUI S2 hi(main_left_array_thirty_eight)\r\nADDIU S2 S2 lo(main_left_array_thirty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_nine:\r\nLUI S2 hi(main_left_array_thirty_nine)\r\nADDIU S2 S2 lo(main_left_array_thirty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty:\r\nLUI S2 hi(main_left_array_forty)\r\nADDIU S2 S2 lo(main_left_array_forty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_one:\r\nLUI S2 hi(main_left_array_forty_one)\r\nADDIU S2 S2 lo(main_left_array_forty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_two:\r\nLUI S2 hi(main_left_array_forty_two)\r\nADDIU S2 S2 lo(main_left_array_forty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_three:\r\nLUI S2 hi(main_left_array_forty_three)\r\nADDIU S2 S2 lo(main_left_array_forty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_four:\r\nLUI S2 hi(main_left_array_forty_four)\r\nADDIU S2 S2 lo(main_left_array_forty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_five:\r\nLUI S2 hi(main_left_array_forty_five)\r\nADDIU S2 S2 lo(main_left_array_forty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_six:\r\nLUI S2 hi(main_left_array_forty_six)\r\nADDIU S2 S2 lo(main_left_array_forty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_seven:\r\nLUI S2 hi(main_left_array_forty_seven)\r\nADDIU S2 S2 lo(main_left_array_forty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_eight:\r\nLUI S2 hi(main_left_array_forty_eight)\r\nADDIU S2 S2 lo(main_left_array_forty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_nine:\r\nLUI S2 hi(main_left_array_forty_nine)\r\nADDIU S2 S2 lo(main_left_array_forty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fifty:\r\nLUI S2 hi(main_left_array_fifty)\r\nADDIU S2 S2 lo(main_left_array_fifty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nload_main_right_array_one:\r\nLUI S2 hi(main_right_array_one)\r\nADDIU S2 S2 lo(main_right_array_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_two:\r\nLUI S2 hi(main_right_array_two)\r\nADDIU S2 S2 lo(main_right_array_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_three:\r\nLUI S2 hi(main_right_array_three)\r\nADDIU S2 S2 lo(main_right_array_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_four:\r\nLUI S2 hi(main_right_array_four)\r\nADDIU S2 S2 lo(main_right_array_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_five:\r\nLUI S2 hi(main_right_array_five)\r\nADDIU S2 S2 lo(main_right_array_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_six:\r\nLUI S2 hi(main_right_array_six)\r\nADDIU S2 S2 lo(main_right_array_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_seven:\r\nLUI S2 hi(main_right_array_seven)\r\nADDIU S2 S2 lo(main_right_array_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eight:\r\nLUI S2 hi(main_right_array_eight)\r\nADDIU S2 S2 lo(main_right_array_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_nine:\r\nLUI S2 hi(main_right_array_nine)\r\nADDIU S2 S2 lo(main_right_array_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_ten:\r\nLUI S2 hi(main_right_array_ten)\r\nADDIU S2 S2 lo(main_right_array_ten)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eleven:\r\nLUI S2 hi(main_right_array_eleven)\r\nADDIU S2 S2 lo(main_right_array_eleven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twelve:\r\nLUI S2 hi(main_right_array_twelve)\r\nADDIU S2 S2 lo(main_right_array_twelve)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirteen:\r\nLUI S2 hi(main_right_array_thirteen)\r\nADDIU S2 S2 lo(main_right_array_thirteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fourteen:\r\nLUI S2 hi(main_right_array_fourteen)\r\nADDIU S2 S2 lo(main_right_array_fourteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fifteen:\r\nLUI S2 hi(main_right_array_fifteen)\r\nADDIU S2 S2 lo(main_right_array_fifteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_sixteen:\r\nLUI S2 hi(main_right_array_sixteen)\r\nADDIU S2 S2 lo(main_right_array_sixteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_seventeen:\r\nLUI S2 hi(main_right_array_seventeen)\r\nADDIU S2 S2 lo(main_right_array_seventeen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eighteen:\r\nLUI S2 hi(main_right_array_eighteen)\r\nADDIU S2 S2 lo(main_right_array_eighteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_nineteen:\r\nLUI S2 hi(main_right_array_nineteen)\r\nADDIU S2 S2 lo(main_right_array_nineteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty:\r\nLUI S2 hi(main_right_array_twenty)\r\nADDIU S2 S2 lo(main_right_array_twenty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_one:\r\nLUI S2 hi(main_right_array_twenty_one)\r\nADDIU S2 S2 lo(main_right_array_twenty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_two:\r\nLUI S2 hi(main_right_array_twenty_two)\r\nADDIU S2 S2 lo(main_right_array_twenty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_three:\r\nLUI S2 hi(main_right_array_twenty_three)\r\nADDIU S2 S2 lo(main_right_array_twenty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_four:\r\nLUI S2 hi(main_right_array_twenty_four)\r\nADDIU S2 S2 lo(main_right_array_twenty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_five:\r\nLUI S2 hi(main_right_array_twenty_five)\r\nADDIU S2 S2 lo(main_right_array_twenty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_six:\r\nLUI S2 hi(main_right_array_twenty_six)\r\nADDIU S2 S2 lo(main_right_array_twenty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_seven:\r\nLUI S2 hi(main_right_array_twenty_seven)\r\nADDIU S2 S2 lo(main_right_array_twenty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_eight:\r\nLUI S2 hi(main_right_array_twenty_eight)\r\nADDIU S2 S2 lo(main_right_array_twenty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_nine:\r\nLUI S2 hi(main_right_array_twenty_nine)\r\nADDIU S2 S2 lo(main_right_array_twenty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty:\r\nLUI S2 hi(main_right_array_thirty)\r\nADDIU S2 S2 lo(main_right_array_thirty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_one:\r\nLUI S2 hi(main_right_array_thirty_one)\r\nADDIU S2 S2 lo(main_right_array_thirty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_two:\r\nLUI S2 hi(main_right_array_thirty_two)\r\nADDIU S2 S2 lo(main_right_array_thirty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_three:\r\nLUI S2 hi(main_right_array_thirty_three)\r\nADDIU S2 S2 lo(main_right_array_thirty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_four:\r\nLUI S2 hi(main_right_array_thirty_four)\r\nADDIU S2 S2 lo(main_right_array_thirty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_five:\r\nLUI S2 hi(main_right_array_thirty_five)\r\nADDIU S2 S2 lo(main_right_array_thirty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_six:\r\nLUI S2 hi(main_right_array_thirty_six)\r\nADDIU S2 S2 lo(main_right_array_thirty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_seven:\r\nLUI S2 hi(main_right_array_thirty_seven)\r\nADDIU S2 S2 lo(main_right_array_thirty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_eight:\r\nLUI S2 hi(main_right_array_thirty_eight)\r\nADDIU S2 S2 lo(main_right_array_thirty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_nine:\r\nLUI S2 hi(main_right_array_thirty_nine)\r\nADDIU S2 S2 lo(main_right_array_thirty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty:\r\nLUI S2 hi(main_right_array_forty)\r\nADDIU S2 S2 lo(main_right_array_forty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_one:\r\nLUI S2 hi(main_right_array_forty_one)\r\nADDIU S2 S2 lo(main_right_array_forty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_two:\r\nLUI S2 hi(main_right_array_forty_two)\r\nADDIU S2 S2 lo(main_right_array_forty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_three:\r\nLUI S2 hi(main_right_array_forty_three)\r\nADDIU S2 S2 lo(main_right_array_forty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_four:\r\nLUI S2 hi(main_right_array_forty_four)\r\nADDIU S2 S2 lo(main_right_array_forty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_five:\r\nLUI S2 hi(main_right_array_forty_five)\r\nADDIU S2 S2 lo(main_right_array_forty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_six:\r\nLUI S2 hi(main_right_array_forty_six)\r\nADDIU S2 S2 lo(main_right_array_forty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_seven:\r\nLUI S2 hi(main_right_array_forty_seven)\r\nADDIU S2 S2 lo(main_right_array_forty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_eight:\r\nLUI S2 hi(main_right_array_forty_eight)\r\nADDIU S2 S2 lo(main_right_array_forty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_nine:\r\nLUI S2 hi(main_right_array_forty_nine)\r\nADDIU S2 S2 lo(main_right_array_forty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fifty:\r\nLUI S2 hi(main_right_array_fifty)\r\nADDIU S2 S2 lo(main_right_array_fifty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n;======================================================================================================================================\r\n;This is where we loop through the chosen path to figure out where we will land and what passing spaces to store in the passing array\r\n;======================================================================================================================================\r\n\r\nmain_preprocessing:\r\n\r\nLHU S7 10(S3) ; stores player coins in S7 which is used to estimate what will happen to the coins based on spaces encountered in the future\r\n\r\nLUI T9 hi(cur_player_spaces_remaining)\r\nADDIU T9 T9 lo(cur_player_spaces_remaining)\r\nLW T9 0(T9) ; loads Current Spaces Remaining in T9\r\nSW T9 160(SP)\r\n\r\nADDU T2 R0 R0 ; set loop counter to 0\r\n\r\nLUI T0 hi(passing_space_array)\r\nADDIU T0 T0 lo(passing_space_array) ; loads passing space array into T0 so we can clear it\r\n\r\n\r\nLUI T1 hi(future_space_array)\r\nADDIU T1 T1 lo(future_space_array) ; loads future space array into T1 so we can clear it\r\n\r\n; this clears the loop for future\r\nloop_clearing:\r\n\r\nSB R0 0(T0)\r\nSB R0 0(T1)\r\n\r\nADDIU T0 T0 1\r\nADDIU T1 T1 1\r\nADDIU T2 T2 1\r\nSLTI V0 T2 60 ; if T2 is less than 60, V0 equals 1\r\n\r\nBNEZ V0 loop_clearing\r\nNOP\r\n\r\n\r\nLUI S4 hi(passing_space_array)\r\nADDIU S4 S4 lo(passing_space_array) ; loads passing space array into S4 so we can start adding passing by spaces to it\r\n\r\n; below is where we get the code to see how many items the player currently has which will be used to simulate changes to it for each possible path\r\nitem_estimate:\r\nLI T0 -1\r\nLB T1 24(S3) \r\n\r\nBEQ T0 T1 item_slot_one_is_empty\r\nNOP\r\n\r\nLB T1 25(S3) \r\nBEQ T0 T1 item_slot_two_is_empty\r\nNOP\r\n\r\nLB T1 26(S3) \r\nBEQ T0 T1 item_slot_three_is_empty\r\nNOP\r\n\r\nLI T9 3\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_one_is_empty:\r\nDADDU T9 R0 R0\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_two_is_empty:\r\nLI T9 1\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_three_is_empty:\r\nLI T9 2\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\n\r\n; this loop is used to store passby spaces and figure out where the cpu will land\r\nmain_space_processing_loop:\r\n\r\nLBU T7 0(S2) ; looks at current value in S2 which is where this current array is stored\r\nBEQZ T7 array_is_too_short\r\nNOP\r\n\r\nLUI T5 hi(skip_space_array)\r\nADDIU T5 T5 lo(skip_space_array) ; sets T5 equal to the skip space array\r\n\r\nLUI T4 hi(save_to_passing_arrays_array)\r\nADDIU T4 T4 lo(save_to_passing_arrays_array) ; sets T4 equal to the passing arrays array\r\n\r\ncheck_if_space_will_not_count_towards_remaining_spaces_loop:\r\nLB T6 0(T5) ; loads skip space array's current value into T6\r\n\r\nBEQ T6 T7 add_one_to_main_space_processing_loop ; checks if the current space id matches skip space array's current value, if it matches then another loop will be added to account for the fact that it won't be counted towards the roll\r\nNOP\r\n\r\nreturn_to_check_if_space_will_not_count_towards_remaining_spaces_loop:\r\nBEQZ T6 check_if_space_is_counted_in_passing_array_loop ; checks if the skip space array's value is zero which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\nADDIU T5 T5 1 ; adds 1 to the count down for the check_if_space_will_not_count_towards_remaining_spaces_loop which goes to the next value in the skip space array\r\n\r\nJ check_if_space_will_not_count_towards_remaining_spaces_loop\r\nNOP\r\n\r\n\r\nadd_one_to_main_space_processing_loop:\r\nLW T9 160(SP)\r\nADDIU T9 T9 1 ; adds 1 to the count down for the main_space_processing_loop\r\nSW T9 160(SP)\r\nJ return_to_check_if_space_will_not_count_towards_remaining_spaces_loop\r\nNOP\r\n\r\n\r\ncheck_if_space_is_counted_in_passing_array_loop:\r\nLW T9 160(SP)\r\n\r\nLB T6 0(T4) ; loads passing space array's current value into T6\r\nBEQ T6 T7 save_to_passing_array ; checks if the current space id matches passing space array's current value, if it matches then it is added to the passing space array for point calculations later on\r\nNOP\r\n\r\nreturn_to_check_if_space_is_counted_in_passing_array_loop:\r\nBEQZ T6 return_to_main_loop ; checks if the passing space array's value is zero which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\nADDIU T4 T4 1 ; adds 1 to go to the next value in the passing space array\r\n\r\nJ check_if_space_is_counted_in_passing_array_loop\r\nNOP\r\n\r\n\r\nsave_to_passing_array:\r\nSB T7 0(S4) ; this is where values are stored in the passing array\r\nADDIU S4 S4 1\r\n\r\nJ return_to_check_if_space_is_counted_in_passing_array_loop\r\nNOP\r\n\r\n\r\nreturn_to_main_loop:\r\n\r\nADDIU S2 S2 1 ; adds to the main array to check the next value\r\n\r\nLW T9 160(SP)\r\nADDIU T9 T9 -1 ; removes one from roll to check next space\r\n\r\nBEQZ T9 passing_array_processing  ; checks if the roll count down value is zero which means it is the end of the main_space_processing_loop and it is time to move on\r\nNOP\r\n\r\nSW T9 160(SP)\r\n\r\n\r\nJ main_space_processing_loop\r\nNOP\r\n\r\n\r\n\r\npassing_array_processing:\r\nSB T7 64(SP) ; saves the currently landed on space id for future usage\r\nLUI S4 hi(passing_space_array)\r\nADDIU S4 S4 lo(passing_space_array) ; reloads passing space array into S4 to reset position\r\n\r\npassing_array_processing_loop:\r\nLB T6 0(S4) ; checks the current value of the passing space array\r\n\r\nBEQZ T6 land_processing ; checks if the value is 0 which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\n\r\nLI T5 8\r\nBEQ T6 T5 bank_passing ; checks if the id matches the bank where it goes to remove 5 coins from the estimate\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T6 T5 item_shop_passing ; checks if the id matches the item shop where it adds and item to the item estimate to figure out the value of an item space later on\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T6 T5 boo_passing ; checks if the id matches boo where it calculates if it can steal stars or coins\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\n\r\n\r\nreturn_to_passing_array_processing:\r\nADDIU S4 S4 1 ; adds 1 to move to the next value in the passing array\r\n\r\nJ passing_array_processing_loop\r\nNOP\r\n\r\n\r\n; passing 1 $\r\nstar_passing:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 will_pass_star_with_enough_coins\r\nNOP\r\n\r\nBEQ S7 T5 will_pass_star_with_enough_coins ; checks if have enough coins to buy a star\r\nNOP\r\n\r\nJ return_to_passing_array_processing ; we do not have enough coins so passing the star will not be useful in any way so it will be ignored\r\nNOP\r\n\r\nwill_pass_star_with_enough_coins:\r\nADDIU S7 S7 -20 ; this subtracts 20 from the current coin estimate\r\nADDIU S1 S1 500 ; if we have enough points to buy a star 500 points will be added by default\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\n; passing 2 $\r\nitem_shop_passing:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nDADDU T2 R0 R0 ; sets T2 to 0\r\nSUBU T2 T0 T1 ; T2 tells you have many turns are left\r\nBGTZ T2 item_shop_passing_item_check ; if we are not on the last turn then we go to item_shop_passing_item_check\r\nNOP\r\nJ return_to_passing_array_processing ; this is only reached for the last turn so item shops are pointless\r\nNOP\r\n\r\n\r\n\r\nitem_shop_passing_item_check:\r\nLI T5 3\r\nLBU T9 156(SP) ; load item estimate for usage in near future\r\nSLT T0 T9 T5 ; makes sure we have less than 3 estimated items before moving on\r\nBNEZ T0 item_shop_passing_point_check ; if T0 is not zero then run this code\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\nitem_shop_passing_point_check:\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_twenty\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_twenty\r\nNOP\r\n\r\nLI T5 15\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_fifteen\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_fifteen\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_ten\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_ten\r\nNOP\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_five\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_five\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_twenty:\r\nADDIU S1 S1 10 ; adds points if the cpu has 20 coins and it will pass a shop 10 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_fifteen:\r\nADDIU S1 S1 7 ; adds points if the cpu has 15 coins and it will pass a shop 7 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_ten:\r\nADDIU S1 S1 5 ; adds points if the cpu has 10 coins and it will pass a shop 5 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_five:\r\nADDIU S1 S1 3 ; adds points if the cpu has 5 coins and it will pass a shop 3 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n; passing 3 $\r\nboo_passing:\r\n\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_star_check\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_star_check ; checks if cpu has enough coins to steal a star\r\nNOP\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_coin_check\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_coin_check ; checks if cpu has enough coins to steal coins\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nboo_passing_star_check:\r\nJAL GetSumOfPlayerStars ; Sum of all stars at V0\r\nNOP\r\n\r\nLBU T7 14(S3) ; puts current player's stars in T7\r\n\r\nBNE V0 T7 boo_passing_star_steal_estimate ; makes sure that there are stars for cpu to steal\r\nNOP\r\n\r\nBEQ V0 T7 boo_passing_coin_check ; jumps to coin stealing if there are no stars to steal\r\nNOP\r\n\r\nboo_passing_star_steal_estimate:\r\nADDIU S1 S1 100 ; adds points for passing boo and being able to steal a star 100 points will be added by default\r\nADDIU S7 S7 -50 ; removes 50 coins for assumed star steal\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nboo_passing_coin_check:\r\nJAL GetCurrentPlayerIndex ; returns current player's position\r\nNOP\r\nDADDU T1 R0 R0 ; clears T1\r\nDADDU T2 R0 R0 ; clears T2\r\nDADDU T3 R0 R0 ; clears T3\r\nDADDU T4 R0 R0 ; clears T4\r\n\r\ncheck_player_one_is_not_current_for_coins:\r\nBNEZ V0 load_player_one_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_coins:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_coins:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_coins:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\nplayer_coin_comparison_start:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_coin_comparison_one_two_is_larger\r\nNOP \r\n\r\nplayer_coin_comparison_three:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_coin_comparison_two_three_is_larger\r\nNOP\r\n\r\nplayer_coin_comparison_four:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_coin_comparison_three_four_is_larger\r\nNOP\r\n\r\n; the above code was used to store the largest coin amount belonging to another player in T1\r\n\r\nboo_passing_coin_check_final:\r\nLI T5 5\r\nSLT T6 T1 T5 ; if there are not enough coins to steal we set T6 to 1\r\nBNEZ T6 boo_passing_coin_check_failed ; we run this code to ignore boo if T6 is not zero\r\nNOP\r\n\r\nADDIU S1 S1 19; add boo points for coins 19 points will be added by default\r\nADDIU S7 S7 -5 ; subtract 5 for paying boo to steal coins\r\nLUI T0 hi(current_turn)\r\nADDIU T0 T0 lo(current_turn) ; Address of current turn\r\nLBU T0 0(T0) ; Load current turn to T0\r\n\r\n ; the code below estimates the minimum amount of money to be recieved from boo and code that we jumped to in previous bits of this boo code and we jump back to earlier\r\n\r\nLI T5 46\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_six\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_six ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 36\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_three\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_three ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 26\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_one\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_one ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 16\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_eighteen\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_eighteen ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 6\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_sixteen\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_sixteen ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nSLT T6 T0 T5 ; checks current turn to see what the minimum amount stolen from boo will be\r\nBNEZ T6 coins_to_be_checked_six\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_six:\r\nLI T5 26\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_six\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_six\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_three:\r\nLI T5 23\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_three\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_three\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_one:\r\nLI T5 21\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_one\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_one\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_eighteen:\r\nLI T5 18\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_eighteen\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_eighteen\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\n\r\ncoins_to_be_checked_sixteen:\r\nLI T5 16\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_sixteen\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_sixteen\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_six:\r\nLI T5 6\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_six\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_six\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\n\r\ncoins_to_be_stolen_twenty_six:\r\nADDIU S7 S7 26\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_twenty_three:\r\nADDIU S7 S7 23\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_twenty_one:\r\nADDIU S7 S7 21\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_eighteen:\r\nADDIU S7 S7 18\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_sixteen:\r\nADDIU S7 S7 16\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_six:\r\nADDIU S7 S7 6\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nnot_enough_coins:\r\nADDU S7 S7 T1\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nboo_passing_coin_check_failed:\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nload_player_one_coins:\r\nLBU T1 148(SP)\r\nJ check_player_two_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_two_coins:\r\nLHU T2 140(SP)\r\nJ check_player_three_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_three_coins:\r\nLHU T3 132(SP)\r\nJ check_player_four_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_four_coins:\r\nLHU T4 124(SP)\r\nJ player_coin_comparison_start\r\nNOP\r\n\r\nplayer_coin_comparison_one_two_is_larger:\r\nMOVE T1 T2\r\nJ player_coin_comparison_three\r\nNOP\r\n\r\nplayer_coin_comparison_two_three_is_larger:\r\nMOVE T1 T3\r\nJ player_coin_comparison_four\r\nNOP\r\n\r\nplayer_coin_comparison_three_four_is_larger:\r\nMOVE T1 T4\r\nJ boo_passing_coin_check_final\r\nNOP\r\n\r\n\r\n\r\n\r\n; passing 4 $\r\nbank_passing:\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_five_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_five_from_estimated_coins ; runs code to estimate the loss of 5 coins if the cpu has at least 5 coins\r\nNOP\r\n\r\nSLT T6 S7 T5 ; runs code to clear out the estimated coins because the cpu has less than 5 coins\r\nBNEZ T6 set_estimated_coins_to_zero_for_bank_passing\r\nNOP\r\n\r\nset_estimated_coins_to_zero_for_bank_passing:\r\nDADDU S7 R0 R0 ; sets estimated coins to 0\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nsubtract_five_from_estimated_coins:\r\nADDIU S7 S7 -5 ; subtracts 5 from estimated coins\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nland_processing:\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLBU T8 64(SP)\r\n\r\n\r\nLI T5 1\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T8 T5 red_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T8 T5 chance_time_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T8 T5 bowser_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T8 T5 item_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T8 T5 battle_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T8 T5 game_guy_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T8 T5 bank_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLI T5 19\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T8 T5 happening_space_good ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T8 T5 happening_space_bad ; runs the right code for the right ids\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 1 $\r\nitem_space:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nBEQ T1 T0 last_turn_so_item_spaces_cannot_give_items\r\nNOP\r\n\r\nLI T5 3\r\nLBU T9 156(SP)\r\n\r\nSLT T6 T9 T5 \r\nBNEZ T6 less_than_three_items\r\nNOP\r\n\r\nSLT T6 T5 T9\r\nBNEZ T6 too_many_items\r\nNOP\r\n\r\nBEQ T9 T5 too_many_items\r\nNOP\r\n\r\nless_than_three_items:\r\nADDIU S1 S1 18 ; adds points for landing on an item space and you can accept an item 18 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ntoo_many_items:\r\nADDIU S1 S1 12 ; adds points for landing on an item space while being full on items 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nlast_turn_so_item_spaces_cannot_give_items:\r\nADDIU S1 S1 12 ; adds points for landing on an item space in the last turn 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n; landing 2 $\r\nbank_space:\r\n\r\nADDIU S7 S7 5\r\n\r\nLUI T1 hi(bank_coin_total)\r\nADDIU T1 T1 lo(bank_coin_total) ; Address of coin count in bank\r\nLHU T1 0(T1) ; Load current coin count in bank to T1\r\n\r\nBEQZ T1 bank_is_empty ; runs code if bank is empty\r\nNOP\r\n\r\n\r\nADDU T0 T1 S7 ; gets an estimate for the bank coin count added with current coin estimate\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 coin_estimate_is_at_least_fifty\r\nNOP\r\n\r\nBEQ S7 T5 coin_estimate_is_at_least_fifty ; runs code if the cpu's coin count is at least 50 \r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 coin_estimate_is_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 coin_estimate_is_at_least_twenty ; runs code if the cpu's coin count is at least 20 \r\nNOP\r\n\r\n\r\nSLT T6 S7 T5  ; runs code if the cpu's coin count is less than 20\r\nBNEZ T6 coin_estimate_is_less_than_twenty\r\nNOP\r\n\r\n ; the code below calculates if points should be added based on the bank's current coin count or the estimated coin count along with the bank total which is all based on the cpu's currently estimated coins\r\ncoin_estimate_is_at_least_fifty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_less_than_twenty\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_are_less_than_twenty\r\nNOP\r\n\r\n\r\n\r\ncoin_estimate_is_less_than_twenty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T0 T5 \r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_less_than_twenty\r\nNOP\r\n\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty:\r\nADDIU S1 S1 19 ; adds points if the cpu has at least 50 coins and the bank also has at least 50 coins 19 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has at least 50 coins and the bank also has at least 20 coins 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_less_than_twenty:\r\nADDIU S1 S1 17 ; adds points if the cpu has at least 50 coins and the bank also has less than 20 coins 17 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty:\r\nADDIU S1 S1 20 ; adds points if the cpu has at least 20 coins and the bank coin count + the cpu's current estimated coin count is at least 50 20 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has at least 20 coins and the bank coin count is at least 20 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_are_less_than_twenty:\r\nADDIU S1 S1 17 ; adds points if the cpu has at least 20 coins and the bank coin count is less than 20 17 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty:\r\nADDIU S1 S1 20 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is at least 50 20 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty:\r\nADDIU S1 S1 19 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is at least 20 19 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_less_than_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is less than 20 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbank_is_empty:\r\nADDIU S1 S1 14 ; adds points for an empty bank 14 points will be added by default\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 3 $\r\nblue_space:\r\nADDIU S1 S1 16 ; adds points for a blue space 16 points will be added by default\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\nLI T5 5\r\nSLT T6 T5 T2 ; runs code when it is not the last 5 turns\r\nBNEZ T6 add_coins_to_coin_estimate_normal_blue_space\r\nNOP\r\n\r\nSLT T6 T2 T5\r\nBNEZ T6 add_coins_to_coin_estimate_last_five_turn_blue_space\r\nNOP\r\n\r\nBEQ T2 T5 add_coins_to_coin_estimate_last_five_turn_blue_space ; runs code when it is the last 5 turns\r\nNOP\r\n\r\nadd_coins_to_coin_estimate_normal_blue_space:\r\nADDIU S7 S7 3 ; adds estimated coins for landing on a blue space when it is not the last 5 turns\r\nJ pre_future_point\r\nNOP\r\n\r\nadd_coins_to_coin_estimate_last_five_turn_blue_space:\r\nADDIU S7 S7 6 ; adds estimated coins for landing on a blue space during the last 5 turns\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 4 $\r\nbattle_space:\r\nLI T5 20\r\n\r\nSLT T6 T5 S7\r\nBNEZ T6 battle_space_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 battle_space_at_least_twenty ; loads code if the current estimated coins are at least 20\r\nNOP\r\n\r\nSLT T6 S7 T5  ; loads code if the current estimated coins are less than 20\r\nBNEZ T6 battle_space_less_than_twenty\r\nNOP\r\n\r\nbattle_space_at_least_twenty:\r\nADDIU S1 S1 6 ; adds points for a battle space when you have over 20 coins 6 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nbattle_space_less_than_twenty:\r\nADDIU S1 S1 12 ; adds points for a battle space when you have less than 20 coins 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n; landing 5 $\r\nred_space:\r\nADDIU S1 S1 8 ; adds points for a red space 8 points will be added by default\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\n\r\nLI T5 5\r\nSLT T6 T5 T2 ; runs code when it is not the last 5 turns\r\nBNEZ T6 remove_coins_to_coin_estimate_normal_red_space\r\nNOP\r\n\r\nSLT T6 T2 T5\r\nBNEZ T6 remove_coins_to_coin_estimate_last_five_turn_red_space\r\nNOP\r\n\r\nBEQ T2 T5 remove_coins_to_coin_estimate_last_five_turn_red_space ; runs code when it is the last 5 turns\r\nNOP\r\n\r\nremove_coins_to_coin_estimate_normal_red_space:\r\nLI T5 3\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_three_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_three_from_estimated_coins ; runs code for when coin count to be taken is not less than estimated coin count\r\nNOP\r\n\r\nSLT T6 S7 T5  ; runs code for when coin count to be taken is less than estimated coin count\r\nBNEZ T6 set_estimated_coins_to_zero_for_red_space_landing\r\nNOP\r\n\r\nsubtract_three_from_estimated_coins:\r\nADDIU S7 S7 -3 ; subtracts 3 coins from estimated coin count\r\nJ pre_future_point\r\nNOP\r\n\r\nremove_coins_to_coin_estimate_last_five_turn_red_space:\r\nLI T5 6\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_six_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_six_from_estimated_coins ; runs code for when coin count to be taken is not less than estimated coin count\r\nNOP\r\n\r\nSLT T6 S7 T5  ; runs code for when coin count to be taken is less than estimated coin count\r\nBNEZ T6 set_estimated_coins_to_zero_for_red_space_landing\r\nNOP\r\n\r\nsubtract_six_from_estimated_coins:\r\nADDIU S7 S7 -6 ; subtracts 6 coins from estimated coin count\r\nJ pre_future_point\r\nNOP\r\n\r\nset_estimated_coins_to_zero_for_red_space_landing:\r\nDADDU S7 R0 R0 ; clears current coin count\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 6 $\r\nbowser_space:\r\n\r\nBEQZ S7 bowser_space_has_no_coins\r\nNOP\r\n\r\nBNEZ S7 bowser_space_has_coins\r\nNOP\r\n\r\nbowser_space_has_coins:\r\nADDIU S1 S1 6 ; adds points for landing on bowser when the CPU has coins 6 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nbowser_space_has_no_coins:\r\nADDIU S1 S1 18 ; adds points for landing on bowser when the CPU has no coins 18 points will be added by default\r\n\r\nJAL GetPlayerPlacement ; 0-3 at V0\r\nLBU A0 29(S3) ; Player Index\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\n; the code below is to estimate the amount of coins that bowser will give when you have 0 coins based on placement and turn count\r\n\r\nLI T5 5\r\nSLT T6 T1 T5\r\nBNEZ T6 bowser_space_early_game\r\nNOP\r\n\r\nBEQ T1 T5 bowser_space_early_game\r\nNOP\r\n\r\nSLT T6 T5 T2\r\nBNEZ T6 bowser_space_late_game\r\nNOP\r\n\r\nBEQ T2 T5 bowser_space_late_game\r\nNOP\r\n\r\n\r\nbowser_space_mid_game:\r\n\r\nLI T5 1\r\nSLT T6 V0 T5\r\nBNEZ T6 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_fourty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_fourty_coins\r\nNOP\r\n\r\n\r\nbowser_space_early_game:\r\n\r\nLI T5 1\r\nSLT T6 V0 T5\r\nBNEZ T6 bowser_space_add_twenty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_twenty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_thirty_coins\r\nNOP\r\n\r\n\r\nbowser_space_late_game:\r\nBEQZ V0 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nLI T5 1\r\nBEQ V0 T5 bowser_space_add_fourty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_fifty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_fifty_coins\r\nNOP\r\n\r\n\r\n\r\nbowser_space_add_twenty_coins:\r\nADDIU S7 S7 20\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_thirty_coins:\r\nADDIU S7 S7 30\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_fourty_coins:\r\nADDIU S7 S7 40\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_fifty_coins:\r\nADDIU S7 S7 50\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n; landing 7 $\r\ngame_guy_space:\r\nBEQZ S7 game_guy_zero_coins\r\nNOP\r\n\r\nLI T5 41\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_forty\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 game_guy_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 game_guy_less_than_twenty\r\nNOP\r\n\r\ngame_guy_at_least_forty:\r\nADDIU S1 S1 2 ; adds points when the cpu has at least 40 coins and they will land on gameguy 2 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ngame_guy_at_least_twenty:\r\nADDIU S1 S1 4 ; adds points when the cpu has at least 20 coins and they will land on gameguy 4 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_less_than_twenty:\r\nADDIU S1 S1 14 ; adds points when the cpu has less than 20 coins and they will land on gameguy 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_zero_coins:\r\nADDIU S1 S1 12 ; adds points when the cpu will have 0 coins and they will land on gameguy 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n; landing 8 $\r\nchance_time_space:\r\n ; the code below tries to find the largest star count that does not belong to the CPU, it is similar to the code used to find the largest coin value not belonging to the current CPU\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\nDADDU T1 R0 R0\r\nDADDU T2 R0 R0\r\nDADDU T3 R0 R0\r\nDADDU T4 R0 R0\r\n\r\ncheck_player_one_is_not_current_for_stars:\r\nBNEZ V0 load_player_one_stars\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_stars:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_stars\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_stars:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_stars\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_stars:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_stars\r\nNOP\r\n\r\nplayer_star_comparison_start:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_star_comparison_one_two_is_larger\r\nNOP \r\n\r\nplayer_star_comparison_three:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_star_comparison_two_three_is_larger\r\nNOP\r\n\r\nplayer_star_comparison_four:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_star_comparison_three_four_is_larger\r\nNOP\r\n\r\nchance_time_star_check_final:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\nLBU T2 14(S3) ; puts current player's stars in T2\r\n\r\nLI T5 3 ; this value is the number of turns to be considered end game (S1 S1 might be useful to change)\r\nSLT T6 T5 T3  \r\nBNEZ T6 early_or_mid_game_chance_time ; runs code if it is not the last 3 turns\r\nNOP\r\n\r\nSLT T6 T3 T5\r\nBNEZ T6 end_game_chance_time\r\nNOP\r\n\r\nBEQ T3 T5 end_game_chance_time ; runs code if it is the last 3 turns\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time:\r\nADDIU T2 T2 2 ; adds a number that is the gap between the first place player's star count and the current player's star count. Changing this number will change the gap required between the cpu and 1st place to make chance time more appealing. By default this number is 2 which means that if the gap is larger than 2 then chance time will be more appealing (S1 S1 here for guidance to change stuff)\r\n\r\nSLT T6 T2 T1  \r\nBNEZ T6 early_or_mid_game_chance_time_add_points ; if the gap is larger than what was set above then it runs this code\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points if the gap between the cpu and 1st place was not large enough 4 points will be added by default\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_add_points:\r\nADDIU S1 S1 14 ; adds points if the gap between the cpu and 1st place was large enough 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nend_game_chance_time:\r\nSLT T6 T2 T1  ; checks if the star count is the same as 1st place\r\nBNEZ T6 end_game_chance_time_add_points\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points if the star count is the same as 1st place 4 points will be added by default\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nend_game_chance_time_add_points:\r\nADDIU S1 S1 14 ; adds points if the star count is less than 1st place 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nload_player_one_stars:\r\nLBU T1 144(SP)\r\n\r\nJ check_player_two_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_two_stars:\r\nLBU T2 136(SP)\r\n\r\nJ check_player_three_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_three_stars:\r\nLBU T3 128(SP)\r\n\r\nJ check_player_four_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_four_stars:\r\nLBU T4 120(SP)\r\n\r\nJ player_star_comparison_start\r\nNOP\r\n\r\nplayer_star_comparison_one_two_is_larger:\r\nMOVE T1 T2\r\n\r\nJ player_star_comparison_three\r\nNOP\r\n\r\nplayer_star_comparison_two_three_is_larger:\r\nMOVE T1 T3\r\n\r\nJ player_star_comparison_four\r\nNOP\r\n\r\nplayer_star_comparison_three_four_is_larger:\r\nMOVE T1 T4\r\n\r\nJ chance_time_star_check_final\r\nNOP\r\n\r\n\r\n\r\n; landing 9 $\r\nhappening_space:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\nLBU T9 64(SP)\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_one_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_two_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_three_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_four_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_five_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_six_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_seven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_eight_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_nine_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_ten_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_eleven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_one_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_two_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_three_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_four_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_five_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_six_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_seven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eight_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_nine_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_ten_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eleven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nbonus_stars_are_not_enabled_happening_space:\r\n\r\nBEQZ T1 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_not_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_not_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\n\r\nLBU T9 64(SP)\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_one_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_two_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_three_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_four_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_five_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_six_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_seven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_eight_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_nine_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_ten_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_eleven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_one_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_two_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_three_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_four_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_five_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_six_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_seven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eight_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_nine_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_ten_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eleven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nbonus_stars_are_enabled_happening_space:\r\nBEQZ T1 happening_space_bonus_stars_are_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n; landing 20 $\r\nhappening_space_good:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_good_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_good_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_good_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_good_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n; landing 21 $\r\nhappening_space_bad:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_bad_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_bad_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_bad_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\nhappening_space_bad_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 12 ; adds points for landing on this space when it is unknown and there are no bonus stars and it is not the last turn, default is 12\r\n\r\nADDIU S1 S1 60 ; adds points for future spaces instead of using the future array code, default is 60\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is unknown and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 20 ; adds points for landing on this space when it is good and there are no bonus stars and it is not the last turn, default is 20\r\n\r\nADDIU S1 S1 100 ; adds points for future spaces instead of using the future array code, default is 100\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is good and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 0 ; adds points for landing on this space when it is bad and there are no bonus stars and it is not the last turn, default is 0\r\n\r\nADDIU S1 S1 0 ; adds points for future spaces instead of using the future array code, default is 0\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is bad and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 14 ; adds points for landing on this space when it is unknown and there are bonus stars and it is not the last turn, default is 14\r\n\r\nADDIU S1 S1 70 ; adds points for future spaces instead of using the future array code, default is 70\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is unknown and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 22 ; adds points for landing on this space when it is good and there are bonus stars and it is not the last turn, default is 22\r\n\r\nADDIU S1 S1 110 ; adds points for future spaces instead of using the future array code, default is 110\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is good and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 2 ; adds points for landing on this space when it is bad and there are bonus stars and it is not the last turn, default is 2\r\n\r\nADDIU S1 S1 0 ; adds points for future spaces instead of using the future array code, default is 0\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is bad and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\npre_future_point:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nLB T5 68(SP)\r\nBNEZ T5 wacky_watch_might_extend_game\r\nNOP\r\n\r\nBEQ T0 T1 pick_point_comparison\r\nNOP\r\n\r\nwacky_watch_might_extend_game:\r\nLUI S4 hi(future_space_array)\r\nADDIU S4 S4 lo(future_space_array) ; loads the future space array into S4\r\nLI T8 10 ; sets T8 to 10 which will be used to estimate the next 10 spaces\r\n\r\nfuture_point_loop:\r\nLBU T7 0(S2) ; loads the currently selected space in S2 to T7\r\n\r\nBEQZ T7 array_is_too_short\r\nNOP\r\n\r\nLUI T5 hi(skip_space_array)\r\nADDIU T5 T5 lo(skip_space_array) ; loads skip space array into T5 also used for resetting position as it loops\r\n\r\ncheck_if_space_will_not_count_towards_remaining_future_spaces_loop:\r\nLB T6 0(T5) ; loads the currently selected space in T5 to T6\r\n\r\nBEQ T6 T7 add_one_to_future_point_loop ; compares id in main space array to the skip space array to see if one should be added in the estimation\r\nNOP\r\n\r\nBEQZ T6 return_to_future_point_loop ; if the id in T6 is 0 that means the skip space array is over and it is time to move on\r\nNOP\r\n\r\nADDIU T5 T5 1 ; adds 1 to T5 to check the next spot's info\r\n\r\nJ check_if_space_will_not_count_towards_remaining_future_spaces_loop\r\nNOP\r\n\r\nadd_one_to_future_point_loop:\r\nADDIU T8 T8 1 ; adds 1 to the estimated roll because a passing space/event has been detected\r\n\r\nreturn_to_future_point_loop:\r\n\r\nBEQZ T8 future_array_processing ; if T8 is zero that means we have reached the 10 spaces and any passing spaces we may have encountered, the position for this here is very important to make sure we don't miscount spaces\r\nNOP\r\n\r\nSB T7 0(S4) ; writes the current space ID to the future space array for point evaluation later on\r\nADDIU S4 S4 1 ; moves to the next value in S4 to prevent overwriting the ID we just wrote\r\nADDIU S2 S2 1 ; adds 1 to S2 to check the next space ID\r\nADDIU T8 T8 -1 ; removes 1 from roll to check next space\r\n\r\nJ future_point_loop\r\nNOP\r\n\r\n\r\n\r\n; future 1 $\r\nstar_passing_future:\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\n\r\n; the code below checks if there are any lucky lamps or magic lamps, if it finds a magic lamp then it checks if that player has enough coins to use it to get the star and then it picks between adding points if there are no items that can prevent the cpu from getting the star or not\r\n\r\ncheck_player_one_is_not_current_for_items:\r\nBNEZ V0 load_player_one_items\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_items:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_items\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_items:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_items\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_items:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_items\r\nNOP\r\n\r\n\r\nstar_passing_future_no_item:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_no_item_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_no_item_at_least_twenty\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_no_item_at_least_ten\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_no_item_at_least_ten\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 star_passing_future_no_item_less_than_ten\r\nNOP\r\n\r\n\r\n\r\nstar_passing_future_item:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_item_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_item_at_least_twenty\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_item_at_least_ten\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_item_at_least_ten\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 star_passing_future_item_less_than_ten\r\nNOP\r\n\r\n\r\n\r\n\r\nstar_passing_future_item_at_least_twenty:\r\nADDIU S1 S1 50 ; adds points when the star is within the next 10 spaces and the coin estimate is enough to buy the star, but another player has an item that may prevent the cpu from getting the star 50 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_item_at_least_ten:\r\nADDIU S1 S1 25 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star but is large enough that winning a minigame can give the cpu enough coins, but another player has an item that may prevent the cpu from getting the star 25 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_item_less_than_ten:\r\nADDIU S1 S1 10 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star even if the cpu wins a minigame, but another player has an item that may prevent the cpu from getting the star 10 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_at_least_twenty:\r\nADDIU S1 S1 100 ; adds points when the star is within the next 10 spaces and the coin estimate is enough to buy the star, and no other players have items that will prevent the cpu from getting the star 100 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_at_least_ten:\r\nADDIU S1 S1 50 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star but will be if a minigame is won, and no other players have items that will prevent the cpu from getting the star 50 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_less_than_ten:\r\nADDIU S1 S1 25 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star even if the cpu wins a minigame, and no other players have items that will prevent the cpu from getting the star 25 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nload_player_one_items:\r\nLBU T0 116(SP)\r\n\r\nLHU T1 148(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_one_coin_check\r\nNOP\r\n\r\n\r\n\r\ncheck_player_one_items_two:\r\nLBU T0 112(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_one_coin_check\r\nNOP\r\n\r\ncheck_player_one_items_three:\r\nLBU T0 108(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_one_coin_check\r\nNOP\r\n\r\nJ check_player_two_is_not_current_for_items\r\nNOP\r\n\r\nload_player_two_items:\r\nLBU T0 104(SP)\r\n\r\nLHU T1 140(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_two_coin_check\r\nNOP\r\n\r\ncheck_player_two_items_two:\r\nLBU T0 100(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_two_coin_check\r\nNOP\r\n\r\ncheck_player_two_items_three:\r\nLBU T0 96(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_two_coin_check\r\nNOP\r\n\r\nJ check_player_three_is_not_current_for_items\r\nNOP\r\n\r\nload_player_three_items:\r\nLBU T0 92(SP)\r\n\r\nLHU T1 132(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_three_coin_check\r\nNOP\r\n\r\ncheck_player_three_items_two:\r\nLBU T0 88(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_three_coin_check\r\nNOP\r\n\r\ncheck_player_three_items_three:\r\nLBU T0 84(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_three_coin_check\r\nNOP\r\n\r\nJ check_player_four_is_not_current_for_items\r\nNOP\r\n\r\n\r\nload_player_four_items:\r\nLBU T0 80(SP)\r\n\r\nLHU T1 124(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_four_coin_check\r\nNOP\r\n\r\ncheck_player_four_items_two:\r\nLBU T0 76(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_four_coin_check\r\nNOP\r\n\r\ncheck_player_four_items_three:\r\nLBU T0 72(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_four_coin_check\r\nNOP\r\n\r\nJ star_passing_future_no_item\r\nNOP\r\n\r\n\r\n\r\nstar_passing_future_item_one_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_one_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_one_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ star_passing_future_no_item\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 2 $\r\nitem_shop_passing_future:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nDADDU T2 R0 R0\r\n\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\nLI T5 1\r\nSLT T6 T5 T2  \r\nBNEZ T6 item_shop_passing_future_enough_turns ; makes sure that when it might be possible to reach the store it will not be the last turn\r\nNOP\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_enough_turns:\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_twenty_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_twenty_coins\r\nNOP\r\n\r\nLI T5 15\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_fifteen_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_fifteen_coins\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_ten_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_ten_coins\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 item_shop_passing_future_add_points_for_less_than_ten_coins\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_twenty_coins:\r\nADDIU S1 S1 10 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 20, 10 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_fifteen_coins:\r\nADDIU S1 S1 7 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 15, 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_ten_coins:\r\nADDIU S1 S1 5 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 10, 5 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_less_than_ten_coins:\r\nADDIU S1 S1 3 ; adds points if a store is within the next 10 spaces and the current coin estimate is less than 10, 3 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n; future 3 $\r\nboo_passing_future:\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_future_can_steal_stars\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_future_can_steal_stars\r\nNOP\r\n\r\nboo_passing_future_cannot_steal_stars:\r\nADDIU S1 S1 35 ; adds points for being able to steal coins using boo within the next 10 spaces 35 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nboo_passing_future_can_steal_stars:\r\nJAL GetSumOfPlayerStars ; Sum of all stars at V0\r\nNOP\r\n\r\nLBU T0 14(S3)\r\n\r\nSLT T6 T0 V0  \r\nBNEZ T6 boo_passing_future_can_steal_stars_gameguy_check\r\nNOP\r\n\r\nJ boo_passing_future_cannot_steal_stars\r\nNOP\r\n\r\n\r\nboo_passing_future_can_steal_stars_gameguy_check:\r\nLBU T9 64(SP)\r\nLI T5 7 \r\nBEQ T9 T5 boo_passing_future_can_steal_stars_gameguy_confirmed\r\nNOP\r\n\r\nADDIU S1 S1 75 ; adds points for being able to steal stars using boo within the next 10 spaces 75 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nboo_passing_future_can_steal_stars_gameguy_confirmed:\r\nADDIU S1 S1 55 ; adds points for being able to steal stars using boo within the next 10 spaces but the cpu will land on gameguy 55 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 4 $\r\nitem_space_future:\r\nADDIU S1 S1 9 ; adds points for future item space within the next 10 spaces 9 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 5 $\r\nbank_space_future:\r\nLUI T1 hi(bank_coin_total)\r\nADDIU T1 T1 lo(bank_coin_total) ; Address of coin count in bank\r\nLHU T1 0(T1) ; Load current coin count in bank to T1\r\n\r\nLI T5 50\r\nSLT T6 T5 T1\r\nBNEZ T6 bank_space_future_at_least_fifty_coins\r\nNOP\r\n\r\nBEQ T1 T5 bank_space_future_at_least_fifty_coins\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 bank_space_future_at_least_twenty_coins\r\nNOP\r\n\r\nBEQ T1 T5 bank_space_future_at_least_twenty_coins\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 bank_space_future_less_than_twenty_coins\r\nNOP\r\n\r\nbank_space_future_at_least_fifty_coins:\r\nADDIU S1 S1 7 ; adds points for a bank space within the next 10 spaces that has at least 50 coins 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbank_space_future_at_least_twenty_coins:\r\nADDIU S1 S1 6 ; adds points for a bank space within the next 10 spaces that has at least 20 coins 6 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbank_space_future_less_than_twenty_coins:\r\nADDIU S1 S1 5 ; adds points for a bank space within the next 10 spaces that has less than 20 coins 5 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 6 $\r\nblue_space_future:\r\nADDIU S1 S1 8 ; adds points for a blue space within the next 10 spaces 8 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 7 $\r\nbattle_space_future:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 battle_space_future_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 battle_space_future_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 battle_space_future_less_than_twenty\r\nNOP\r\n\r\nbattle_space_future_at_least_twenty:\r\nADDIU S1 S1 3 ; adds points for a battle space within the next 10 spaces when the cpu's coin estimate is at least 20, 3 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbattle_space_future_less_than_twenty:\r\nADDIU S1 S1 6 ; adds points for a battle space within the next 10 spaces when the cpu's coin estimate is less than 20, 6 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n; future 8 $\r\nred_space_future:\r\nADDIU S1 S1 4 ; adds points for a red space within the next 10 spaces 4 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 9 $\r\nbowser_space_future:\r\nADDIU S1 S1 3 ; adds points for a bowser space within the next 10 spaces 3 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 10 $\r\ngame_guy_space_future:\r\n\r\nLI T5 41\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_forty_future\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_space_future_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 game_guy_space_future_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 game_guy_space_future_less_than_twenty\r\nNOP\r\n\r\n\r\ngame_guy_at_least_forty_future:\r\nADDIU S1 S1 1 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is at least 40, 1 point will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_space_future_at_least_twenty:\r\nADDIU S1 S1 2 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is at least 20, 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\ngame_guy_space_future_less_than_twenty:\r\nADDIU S1 S1 7 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is less than 20, 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 11 $\r\nchance_time_space_future:\r\n; the code below finds the largest star count belonging to a different player\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\nDADDU T1 R0 R0\r\nDADDU T2 R0 R0\r\nDADDU T3 R0 R0\r\nDADDU T4 R0 R0\r\n\r\ncheck_player_one_is_not_current_for_stars_future:\r\nBNEZ V0 load_player_one_stars_future\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_stars_future:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_stars_future\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_stars_future:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_stars_future\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_stars_future:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_stars_future\r\nNOP\r\n\r\nplayer_star_comparison_start_future:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_star_comparison_one_two_is_larger_future\r\nNOP \r\n\r\nplayer_star_comparison_three_future:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_star_comparison_two_three_is_larger_future\r\nNOP\r\n\r\nplayer_star_comparison_four_future:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_star_comparison_three_four_is_larger_future\r\nNOP\r\n\r\nchance_time_star_check_final_future:\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nLBU T2 14(S3) ; puts current player's stars in T2\r\n\r\nLI T5 3 ; this value is the number of turns to be considered end game (S1 S1 might be useful to change)\r\n\r\nSLT T6 T5 T3  \r\nBNEZ T6 early_or_mid_game_chance_time_future\r\nNOP\r\n\r\nSLT T6 T3 T5\r\nBNEZ T6 end_game_chance_time_future\r\nNOP\r\n\r\nBEQ T3 T5 end_game_chance_time_future\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_future:\r\nADDIU T2 T2 2 ; adds a number that is the gap between the first place player's star count and the current player's star count. Changing this number will change the gap required to make chance time more appealing. By default this number is 2 which means that if the gap is larger than 2 then chance time will be more appealing (S1 S1 here for guidance to change stuff)\r\n\r\nSLT T6 T2 T1  \r\nBNEZ T6 early_or_mid_game_chance_time_future_add_points\r\nNOP\r\n\r\nADDIU S1 S1 2 ; adds points for a chance time within the next 10 spaces when the gap between the cpu and first place is not large enough and it is not the end game 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_future_add_points:\r\nADDIU S1 S1 7 ; adds points for a chance time within the next 10 spaces when the gap between the cpu and first place is large enough and it is not the end game 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nend_game_chance_time_future:\r\nSLT T6 T2 T1 \r\nBNEZ T6 end_game_chance_time_future_add_points\r\nNOP\r\n\r\nADDIU S1 S1 2 ; adds points for a chance time within the next 10 spaces when there is no gap between the cpu and first place and it is the end game 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nend_game_chance_time_future_add_points:\r\nADDIU S1 S1 7 ; adds points for a chance time within the next 10 spaces when there is a gap between the cpu and first place and it is the end game 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nload_player_one_stars_future:\r\nLBU T1 144(SP)\r\nJ check_player_two_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_two_stars_future:\r\nLBU T2 136(SP)\r\nJ check_player_three_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_three_stars_future:\r\nLBU T3 128(SP)\r\nJ check_player_four_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_four_stars_future:\r\nLBU T4 120(SP)\r\nJ player_star_comparison_start_future\r\nNOP\r\n\r\nplayer_star_comparison_one_two_is_larger_future:\r\nMOVE T1 T2\r\nJ player_star_comparison_three_future\r\nNOP\r\n\r\nplayer_star_comparison_two_three_is_larger_future:\r\nMOVE T1 T3\r\nJ player_star_comparison_four_future\r\nNOP\r\n\r\nplayer_star_comparison_three_four_is_larger_future:\r\nMOVE T1 T4\r\nJ chance_time_star_check_final_future\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 12 $\r\nhappening_space_future:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_one_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_two_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_three_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_four_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_five_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_six_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_seven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eight_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_nine_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_ten_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eleven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_one_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_two_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_three_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_four_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_five_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_six_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_seven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eight_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_nine_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_ten_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eleven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nbonus_stars_are_not_enabled_happening_space_future:\r\nBEQZ T1 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_one_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_two_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_three_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_four_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_five_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_six_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_seven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eight_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_nine_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_ten_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eleven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_one_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_two_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_three_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_four_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_five_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_six_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_seven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eight_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_nine_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_ten_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eleven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nbonus_stars_are_enabled_happening_space_future:\r\nBEQZ T1 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n; future 23 $\r\nhappening_space_future_good:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_good_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_good_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_good_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_good_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 24 $\r\nhappening_space_future_bad:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_bad_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_bad_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_bad_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_bad_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 6 ; adds points for being in the next 10 spaces when it is unknown and there are no bonus stars and it is not the last turn, default is 6\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is unknown and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 10 ; adds points for being in the next 10 spaces when it is good and there are no bonus stars and it is not the last turn, default is 10\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is good and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 0 ; adds points for being in the next 10 spaces when it is bad and there are no bonus stars and it is not the last turn, default is 0\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is bad and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 7 ; adds points for being in the next 10 spaces when it is unknown and there are bonus stars and it is not the last turn, default is 6\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is unknown and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 11 ; adds points for being in the next 10 spaces when it is good and there are bonus stars and it is not the last turn, default is 10\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is good and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 1 ; adds points for being in the next 10 spaces when it is bad and there are bonus stars and it is not the last turn, default is 0\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is bad and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfuture_array_processing:\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\n\r\nLUI S4 hi(future_space_array)\r\nADDIU S4 S4 lo(future_space_array) ; loads future space array in S4 to reset the position for processing\r\n\r\nfuture_array_processing_loop:\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\n\r\nBEQZ T9 pick_point_comparison ; checks if the ID is 0 which means the end of the array has been reached and it is time to compare point values with previous point values\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T9 T5 blue_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T9 T5 red_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T9 T5 chance_time_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T9 T5 bowser_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T9 T5 item_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T9 T5 battle_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T9 T5 game_guy_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T9 T5 bank_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T9 T5 item_shop_passing_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T9 T5 boo_passing_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLI T5 19\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T9 T5 happening_space_future_good ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T9 T5 happening_space_future_bad ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nreturn_to_future_array_processing_loop:\r\nADDIU S4 S4 1 ; this is where we add 1 to S4 to check the next value\r\n\r\nJ future_array_processing_loop\r\nNOP\r\n\r\n\r\ncheck_if_space_has_star:\r\nLUI T6 hi(skip_space_array)\r\nADDIU T6 T6 lo(skip_space_array) ; this loads the skip space array \r\nLBU T9 0(T6) ; here we check the first value in the skip space array which is where the current star spawn value is\r\n\r\nBEQ T9 T8 star_passing_future ; if the current star spawn value is the same as the current ID then we run the code for a future star\r\nNOP\r\n\r\nBNE T9 T8 blue_space_future ; if the current star spawn value is not the same as the current ID then we run the code for a future blue space\r\nNOP\r\n\r\n\r\narray_is_too_short:\r\nLI t0, 0x807FFFFC\r\nSW r0, 0x0000 (t0)\r\n;the array has detected a 0 which means that you improperly placed a 0 in one of the arrays or you did not make your array long enough\r\n\r\n\r\npick_point_comparison:\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLB T0 152(SP)\r\nBEQZ T0 left_point_comparison\r\nNOP\r\n\r\nBNEZ T0 right_point_comparison\r\nNOP\r\n\r\nleft_new_largest_point_value:\r\nMOVE S5 S1 ; this is used to overwrite the previous largest value with a new one\r\n\r\nleft_point_comparison:\r\nSLT T0 S5 S1 ; if S5 is less than S1 then T0 will equal 1 otherwise it will equal 0\r\nBNEZ T0 left_new_largest_point_value ; if T0 is not zero then run this code\r\nNOP\r\n\r\n\r\nMOVE S1 R0 ; clears S1 to make sure that it will not cause issues for the next round of adding points\r\nADDIU S0 S0 1 ; this adds 1 to S0 to start checking the next array in the list or to go to the next steps if we have reached that point\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\nright_new_largest_point_value:\r\nMOVE S6 S1 ; this is used to overwrite the previous largest value with a new one\r\n\r\nright_point_comparison:\r\nSLT T0 S6 S1 ; if S6 is less than S1 then T0 will equal 1 otherwise it will equal 0\r\nBNEZ T0 right_new_largest_point_value ; if T0 is not zero then run this code\r\nNOP\r\n\r\nADDIU S0 S0 1 ; this adds 1 to S0 to start checking the next array in the list or to go to the next steps if we have reached that point\r\nMOVE S1 R0 ; clears S1 to make sure that it will not cause issues for the next round of adding points\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\nChoose_Side:\r\nSLT T6 S6 S5 \r\nBNEZ T6 Go_Left\r\nNOP\r\n\r\nSLT T6 S5 S6 \r\nBNEZ T6 Go_Right\r\nNOP\r\n\r\nBEQ S5 S6 exit\r\nNOP\r\n\r\nGo_Left:\r\nLBU A0 29(S3)\r\nLI A1 Left_chain_index\r\nLI A2 Left_chain_space_index\r\n\r\nJ SetDecision\r\nNOP\r\n\r\nGo_Right:\r\nLBU A0 29(S3)\r\nLI A1 Right_chain_index\r\nLI A2 Right_chain_space_index\r\n\r\nJ SetDecision\r\nNOP\r\n\r\nSetDecision:\r\nJAL SetNextChainAndSpace\r\nNOP\r\n\r\nJ exit\r\nNOP\r\n\r\n\r\n\r\nexit:\r\nLW S7 164(SP)\r\nLW S6 168(SP)\r\nLW S5 172(SP)\r\nLW S4 176(SP)\r\nLW S3 180(SP)\r\nLW S2 184(SP)\r\nLW S1 188(SP)\r\nLW S0 192(SP)\r\nLW RA 196(SP)\r\nJR RA\r\nADDIU SP SP 200\r\n\r\n.align 16\r\npassing_space_array:\r\n.byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r\n\r\n.align 16\r\nfuture_space_array:\r\n.byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r\n\r\n.align 16\r\nskip_space_array:\r\n.byte 00,09,10,00\r\n\r\n.align 16\r\nsave_to_passing_arrays_array:\r\n.byte 00,08,09,10,00\r\n\r\n\r\n.align 16\r\nmain_left_array_array:\r\n.byte 01,02,03,04,05,06,07,08,09,10,11,00\r\n\r\n.align 16\r\nmain_left_array_one:\r\n.byte 09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_two:\r\n.byte 09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_three:\r\n.byte 09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_four:\r\n.byte 09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_five:\r\n.byte 09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_six:\r\n.byte 09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_seven:\r\n.byte 09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_eight:\r\n.byte 09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_nine:\r\n.byte 09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_ten:\r\n.byte 09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_eleven:\r\n.byte 09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n.align 16\r\nmain_left_array_twelve:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fourteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fifteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_sixteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_seventeen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_eighteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_nineteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fifty:\r\n.byte 00,00\r\n\r\n\r\n.align 16\r\nmain_right_array_array:\r\n.byte 00,00\r\n\r\n\r\n.align 16\r\nmain_right_array_array:\r\n.byte 01,02,03,04,05,06,07,08,09,10,11,00\r\n\r\n.align 16\r\nmain_right_array_one:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_two:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_three:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_four:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_five:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_six:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_seven:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_eight:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_nine:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_ten:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_eleven:\r\n.byte 01,04,21,22,01,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,00\r\n\r\n\r\n.align 16\r\nmain_right_array_twelve:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fourteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fifteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_sixteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_seventeen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_eighteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_nineteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fifty:\r\n.byte 00,00\r\n"},"(New Junction 4)":{"language":0,"code":"; NAME: (New Junction 4)\r\n; GAMES: MP3_USA\r\n; EXECUTION: Direct\r\n; PARAM: Space|Left\r\n; PARAM: Space|Right\r\n\r\nADDIU SP SP -200\r\nSW RA 196(SP)\r\nSW S0 192(SP)\r\nSW S1 188(SP)\r\nSW S2 184(SP)\r\nSW S3 180(SP)\r\nSW S4 176(SP)\r\nSW S5 172(SP)\r\nSW S6 168(SP)\r\nSW S7 164(SP)\r\n\r\n;Register Guide:\r\n;S0, main array array left or right\r\n;S1, latest points left or right\r\n;S2, main array left or right\r\n;S3, player structure\r\n;S4, passing or future array\r\n;S5, left_points biggest\r\n;S6, right_points biggest\r\n;S7, estimated_coins\r\n;\r\n;Saved to Stack:\r\n;\r\n;current spaces remaining\t\t\t\t\t\t160\r\n;item_estimate\t\t\t\t\t\t\t\t\t156\r\n;which side is currently being counted\t\t\t152\r\n;p1 coins\t\t\t\t\t\t\t\t\t\t148\r\n;p1 stars\t\t\t\t\t\t\t\t\t\t144\r\n;p2 coins\t\t\t\t\t\t\t\t\t\t140\r\n;p2 stars\t\t\t\t\t\t\t\t\t\t136\r\n;p3 coins\t\t\t\t\t\t\t\t\t\t132\r\n;p3 stars\t\t\t\t\t\t\t\t\t\t128\r\n;p4 coins\t\t\t\t\t\t\t\t\t\t124\r\n;p4 stars\t\t\t\t\t\t\t\t\t\t120\r\n;p1 item1\t\t\t\t\t\t\t\t\t\t116\r\n;p1 item2\t\t\t\t\t\t\t\t\t\t112\r\n;p1 item3\t\t\t\t\t\t\t\t\t\t108\r\n;p2 item1\t\t\t\t\t\t\t\t\t\t104\r\n;p2 item2\t\t\t\t\t\t\t\t\t\t100\r\n;p2 item3\t\t\t\t\t\t\t\t\t\t96\r\n;p3 item1\t\t\t\t\t\t\t\t\t\t92\r\n;p3 item2\t\t\t\t\t\t\t\t\t\t88\r\n;p3 item3\t\t\t\t\t\t\t\t\t\t84\r\n;p4 item1\t\t\t\t\t\t\t\t\t\t80\r\n;p4 item2\t\t\t\t\t\t\t\t\t\t76\r\n;p4 item3\t\t\t\t\t\t\t\t\t\t72\r\n;wacky watch check\t\t\t\t\t\t\t\t68\r\n;landed on spot id\t\t\t\t\t\t\t\t64\r\n;storage in between JALs (not currently used)\t60\r\n;\r\n;\r\n;Space ID Guide:\r\n;\r\n;Values and their locations on the map https://imgur.com/a/tbSnJuz\r\n;\r\n;blue\t\t\t\t1\r\n;red\t\t\t\t2\r\n;chance time\t\t3\r\n;bowser\t\t\t\t4\r\n;item\t\t\t\t5\r\n;battle\t\t\t\t6\r\n;game guy\t\t\t7\r\n;\r\n;Noticed when passing and count as space traversed\r\n;bank\t\t\t\t8\r\n;\r\n;Noticed when passing and does not count as space traversed\r\n;item shop\t\t\t9\r\n;boo\t\t\t\t10\r\n;\r\n;Noticed when passing and does not count as space traversed only when that space is currently holding the star\r\n;(labeled with an S on the map)\r\n;Star0\t\t\t\t11\r\n;Star1\t\t\t\t12\r\n;Star2\t\t\t\t13\r\n;Star3\t\t\t\t14\r\n;Star4\t\t\t\t15\r\n;Star5\t\t\t\t16\r\n;Star6\t\t\t\t17\r\n;Star7\t\t\t\t18\r\n;\r\n;Board Exclusive Values:\r\n;G1\t\t\t\t\t19\r\n;G2\t\t\t\t\t20\r\n;G3\t\t\t\t\t21\r\n;G4\t\t\t\t\t22\r\n;G5\t\t\t\t\t23\r\n;G6\t\t\t\t\t24\r\n;G7\t\t\t\t\t25\r\n;G8\t\t\t\t\t26\r\n;G9\t\t\t\t\t27\r\n;G10\t\t\t\t28\r\n;G11\t\t\t\t29\r\n;Good Happening\t\t30\r\n;Bad Happening\t\t31\r\n\r\n\r\n\r\nLI t0, 0x807FFFFC\r\nSW r0, 0x0000 (t0)\r\n\r\nSB R0 68(SP) ; this is where the wacky watch check is stored\r\n\r\nJAL GetPlayerStruct\r\nLI A0 0\r\n\r\nLHU T1 10(V0)\r\nSH T1 148(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 144(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 116(SP)\r\nLBU T1 25(V0)\r\nSB T1 112(SP)\r\nLBU T1 26(V0)\r\nSB T1 108(SP)\r\n\r\nJAL GetPlayerStruct\r\nLI A0 1\r\n\r\nLHU T1 10(V0)\r\nSH T1 140(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 136(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 104(SP)\r\nLBU T1 25(V0)\r\nSB T1 100(SP)\r\nLBU T1 26(V0)\r\nSB T1 96(SP)\r\n\r\n\r\nJAL GetPlayerStruct\r\nLI A0 2\r\n\r\nLHU T1 10(V0)\r\nSH T1 132(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 128(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 92(SP)\r\nLBU T1 25(V0)\r\nSB T1 88(SP)\r\nLBU T1 26(V0)\r\nSB T1 84(SP)\r\n\r\n\r\nJAL GetPlayerStruct\r\nLI A0 3\r\n\r\nLHU T1 10(V0)\r\nSH T1 124(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 120(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 80(SP)\r\nLBU T1 25(V0)\r\nSB T1 76(SP)\r\nLBU T1 26(V0)\r\nSB T1 72(SP)\r\n\r\nLI T5 18\r\n\r\nLB T1 116(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 112(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 108(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 104(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 100(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 96(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 92(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 88(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 84(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 80(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 76(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 72(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nJ get_player_structure\r\nNOP\r\n\r\nwacky_watch_has_been_detected:\r\nLI T1 1\r\nSB T1 68(SP)\r\n\r\nget_player_structure:\r\nJAL GetPlayerStruct\r\nLI A0 -1\r\nMOVE S3 V0 ;loads player structure in S3\r\n\r\nLBU T0 23(S3) ; Status Flags\r\nSRL T0 T0 7 ; Shift bits to the right by 7 for Reverse flag\r\nBNEZ T0 exit ; exit if player is in reverse\r\nNOP\r\n\r\nJAL PlayerIsCPU ; makes sure that player is a cpu\r\nLI A0 -1 \r\n\r\nBEQZ V0 exit ; If 0, exit because it's a human\r\nNOP\r\n\r\n;======================================================================================================================================\r\n; This is where the big boi code begins \r\n;======================================================================================================================================\r\nDADDU S0 R0 R0\r\nDADDU S1 R0 R0\r\nDADDU S2 R0 R0\r\nDADDU S5 R0 R0\r\nDADDU S6 R0 R0\r\nSB R0 152(SP) ; this is where the direction is stored\r\n\r\nLUI T0 hi(current_star_spawn)\r\nADDIU T0 T0 lo(current_star_spawn) ; Address of current Star Spawn Cycle\r\nADDIU T1 T0 1 ; Address of first Star Spawn Index in the Cycle\r\nLBU T0 0(T0) ; Load Index of Star Spawn to T0\r\nADDU T0 T0 T1 ; Add to get address of current Star Spawn Index\r\nLBU T2 0(T0) ; Load current Star Spawn Index to T2\r\n\r\nADDIU T2 T2 11 ; adds 11 to star spawn index to match custom id system\r\n\r\nLUI T0 hi(skip_space_array)\r\nADDIU T0 T0 lo(skip_space_array) ; loads array with spaces that will be skipped into T0\r\n\r\nLUI T1 hi(save_to_passing_arrays_array)\r\nADDIU T1 T1 lo(save_to_passing_arrays_array) ; loads array with spaces that will stored for passby calculations into T1\r\n\r\n\r\nSB T2 0(T0) ; stores the current star's location into the skip space array\r\nSB T2 0(T1) ; stores the current star's location into the passby array\r\n\r\n;======================================================================================================================================\r\n; This is where the main loop begins\r\n;======================================================================================================================================\r\nLUI S0 hi(main_left_array_array)\r\nADDIU S0 S0 lo(main_left_array_array) ; loads the array that checks which array is to be checked next for its respective side\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\nswitch_to_right_array_array:\r\nLI T0 1\r\nSB T0 152(SP)\r\nLUI S0 hi(main_right_array_array)\r\nADDIU S0 S0 lo(main_right_array_array) ; loads the array that checks which array is to be checked next for its respective side\r\n\r\nmain_array_processing_loop:\r\nLBU T3 0(S0) ; loads the number in the array for arrays to start checking which array should be loaded next\r\nLBU T0 152(SP)\r\nBNEZ T0 right_arrays\r\nNOP\r\n\r\nleft_arrays:\r\n\r\nBEQZ T3 switch_to_right_array_array\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T3 T5 load_main_left_array_one\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T3 T5 load_main_left_array_two\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T3 T5 load_main_left_array_three\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T3 T5 load_main_left_array_four\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T3 T5 load_main_left_array_five\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T3 T5 load_main_left_array_six\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T3 T5 load_main_left_array_seven\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T3 T5 load_main_left_array_eight\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T3 T5 load_main_left_array_nine\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T3 T5 load_main_left_array_ten\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T3 T5 load_main_left_array_eleven\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T3 T5 load_main_left_array_twelve\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T3 T5 load_main_left_array_thirteen\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T3 T5 load_main_left_array_fourteen\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T3 T5 load_main_left_array_fifteen\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T3 T5 load_main_left_array_sixteen\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T3 T5 load_main_left_array_seventeen\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T3 T5 load_main_left_array_eighteen\r\nNOP\r\n\r\nLI T5 19\r\nBEQ T3 T5 load_main_left_array_nineteen\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T3 T5 load_main_left_array_twenty\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T3 T5 load_main_left_array_twenty_one\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T3 T5 load_main_left_array_twenty_two\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T3 T5 load_main_left_array_twenty_three\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T3 T5 load_main_left_array_twenty_four\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T3 T5 load_main_left_array_twenty_five\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T3 T5 load_main_left_array_twenty_six\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T3 T5 load_main_left_array_twenty_seven\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T3 T5 load_main_left_array_twenty_eight\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T3 T5 load_main_left_array_twenty_nine\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T3 T5 load_main_left_array_thirty\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T3 T5 load_main_left_array_thirty_one\r\nNOP\r\n\r\nLI T5 32\r\nBEQ T3 T5 load_main_left_array_thirty_two\r\nNOP\r\n\r\nLI T5 33\r\nBEQ T3 T5 load_main_left_array_thirty_three\r\nNOP\r\n\r\nLI T5 34\r\nBEQ T3 T5 load_main_left_array_thirty_four\r\nNOP\r\n\r\nLI T5 35\r\nBEQ T3 T5 load_main_left_array_thirty_five\r\nNOP\r\n\r\nLI T5 36\r\nBEQ T3 T5 load_main_left_array_thirty_six\r\nNOP\r\n\r\nLI T5 37\r\nBEQ T3 T5 load_main_left_array_thirty_seven\r\nNOP\r\n\r\nLI T5 38\r\nBEQ T3 T5 load_main_left_array_thirty_eight\r\nNOP\r\n\r\nLI T5 39\r\nBEQ T3 T5 load_main_left_array_thirty_nine\r\nNOP\r\n\r\nLI T5 40\r\nBEQ T3 T5 load_main_left_array_forty\r\nNOP\r\n\r\nLI T5 41\r\nBEQ T3 T5 load_main_left_array_forty_one\r\nNOP\r\n\r\nLI T5 42\r\nBEQ T3 T5 load_main_left_array_forty_two\r\nNOP\r\n\r\nLI T5 43\r\nBEQ T3 T5 load_main_left_array_forty_three\r\nNOP\r\n\r\nLI T5 44\r\nBEQ T3 T5 load_main_left_array_forty_four\r\nNOP\r\n\r\nLI T5 45\r\nBEQ T3 T5 load_main_left_array_forty_five\r\nNOP\r\n\r\nLI T5 46\r\nBEQ T3 T5 load_main_left_array_forty_six\r\nNOP\r\n\r\nLI T5 47\r\nBEQ T3 T5 load_main_left_array_forty_seven\r\nNOP\r\n\r\nLI T5 48\r\nBEQ T3 T5 load_main_left_array_forty_eight\r\nNOP\r\n\r\nLI T5 49\r\nBEQ T3 T5 load_main_left_array_forty_nine\r\nNOP\r\n\r\nLI T5 50\r\nBEQ T3 T5 load_main_left_array_fifty\r\nNOP\r\n\r\n;======================================================================================================================================\r\n;This is where we switch sides by saving 1 to the stack at 108 for it to be detected when comparing points\r\n;======================================================================================================================================\r\nright_arrays:\r\nBEQZ T3 Choose_Side\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T3 T5 load_main_right_array_one\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T3 T5 load_main_right_array_two\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T3 T5 load_main_right_array_three\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T3 T5 load_main_right_array_four\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T3 T5 load_main_right_array_five\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T3 T5 load_main_right_array_six\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T3 T5 load_main_right_array_seven\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T3 T5 load_main_right_array_eight\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T3 T5 load_main_right_array_nine\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T3 T5 load_main_right_array_ten\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T3 T5 load_main_right_array_eleven\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T3 T5 load_main_right_array_twelve\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T3 T5 load_main_right_array_thirteen\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T3 T5 load_main_right_array_fourteen\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T3 T5 load_main_right_array_fifteen\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T3 T5 load_main_right_array_sixteen\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T3 T5 load_main_right_array_seventeen\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T3 T5 load_main_right_array_eighteen\r\nNOP\r\n\r\nLI T5 19\r\nBEQ T3 T5 load_main_right_array_nineteen\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T3 T5 load_main_right_array_twenty\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T3 T5 load_main_right_array_twenty_one\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T3 T5 load_main_right_array_twenty_two\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T3 T5 load_main_right_array_twenty_three\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T3 T5 load_main_right_array_twenty_four\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T3 T5 load_main_right_array_twenty_five\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T3 T5 load_main_right_array_twenty_six\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T3 T5 load_main_right_array_twenty_seven\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T3 T5 load_main_right_array_twenty_eight\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T3 T5 load_main_right_array_twenty_nine\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T3 T5 load_main_right_array_thirty\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T3 T5 load_main_right_array_thirty_one\r\nNOP\r\n\r\nLI T5 32\r\nBEQ T3 T5 load_main_right_array_thirty_two\r\nNOP\r\n\r\nLI T5 33\r\nBEQ T3 T5 load_main_right_array_thirty_three\r\nNOP\r\n\r\nLI T5 34\r\nBEQ T3 T5 load_main_right_array_thirty_four\r\nNOP\r\n\r\nLI T5 35\r\nBEQ T3 T5 load_main_right_array_thirty_five\r\nNOP\r\n\r\nLI T5 36\r\nBEQ T3 T5 load_main_right_array_thirty_six\r\nNOP\r\n\r\nLI T5 37\r\nBEQ T3 T5 load_main_right_array_thirty_seven\r\nNOP\r\n\r\nLI T5 38\r\nBEQ T3 T5 load_main_right_array_thirty_eight\r\nNOP\r\n\r\nLI T5 39\r\nBEQ T3 T5 load_main_right_array_thirty_nine\r\nNOP\r\n\r\nLI T5 40\r\nBEQ T3 T5 load_main_right_array_forty\r\nNOP\r\n\r\nLI T5 41\r\nBEQ T3 T5 load_main_right_array_forty_one\r\nNOP\r\n\r\nLI T5 42\r\nBEQ T3 T5 load_main_right_array_forty_two\r\nNOP\r\n\r\nLI T5 43\r\nBEQ T3 T5 load_main_right_array_forty_three\r\nNOP\r\n\r\nLI T5 44\r\nBEQ T3 T5 load_main_right_array_forty_four\r\nNOP\r\n\r\nLI T5 45\r\nBEQ T3 T5 load_main_right_array_forty_five\r\nNOP\r\n\r\nLI T5 46\r\nBEQ T3 T5 load_main_right_array_forty_six\r\nNOP\r\n\r\nLI T5 47\r\nBEQ T3 T5 load_main_right_array_forty_seven\r\nNOP\r\n\r\nLI T5 48\r\nBEQ T3 T5 load_main_right_array_forty_eight\r\nNOP\r\n\r\nLI T5 49\r\nBEQ T3 T5 load_main_right_array_forty_nine\r\nNOP\r\n\r\nLI T5 50\r\nBEQ T3 T5 load_main_right_array_fifty\r\nNOP\r\n\r\n\r\n;======================================================================================================================================\r\n; This is where the arrays are loaded with all of the possible places you can go based on the current junction and roll\r\n;======================================================================================================================================\r\n\r\nload_main_left_array_one:\r\nLUI S2 hi(main_left_array_one)\r\nADDIU S2 S2 lo(main_left_array_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_two:\r\nLUI S2 hi(main_left_array_two)\r\nADDIU S2 S2 lo(main_left_array_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_three:\r\nLUI S2 hi(main_left_array_three)\r\nADDIU S2 S2 lo(main_left_array_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_four:\r\nLUI S2 hi(main_left_array_four)\r\nADDIU S2 S2 lo(main_left_array_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_five:\r\nLUI S2 hi(main_left_array_five)\r\nADDIU S2 S2 lo(main_left_array_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_six:\r\nLUI S2 hi(main_left_array_six)\r\nADDIU S2 S2 lo(main_left_array_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_seven:\r\nLUI S2 hi(main_left_array_seven)\r\nADDIU S2 S2 lo(main_left_array_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eight:\r\nLUI S2 hi(main_left_array_eight)\r\nADDIU S2 S2 lo(main_left_array_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_nine:\r\nLUI S2 hi(main_left_array_nine)\r\nADDIU S2 S2 lo(main_left_array_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_ten:\r\nLUI S2 hi(main_left_array_ten)\r\nADDIU S2 S2 lo(main_left_array_ten)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eleven:\r\nLUI S2 hi(main_left_array_eleven)\r\nADDIU S2 S2 lo(main_left_array_eleven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twelve:\r\nLUI S2 hi(main_left_array_twelve)\r\nADDIU S2 S2 lo(main_left_array_twelve)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirteen:\r\nLUI S2 hi(main_left_array_thirteen)\r\nADDIU S2 S2 lo(main_left_array_thirteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fourteen:\r\nLUI S2 hi(main_left_array_fourteen)\r\nADDIU S2 S2 lo(main_left_array_fourteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fifteen:\r\nLUI S2 hi(main_left_array_fifteen)\r\nADDIU S2 S2 lo(main_left_array_fifteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_sixteen:\r\nLUI S2 hi(main_left_array_sixteen)\r\nADDIU S2 S2 lo(main_left_array_sixteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_seventeen:\r\nLUI S2 hi(main_left_array_seventeen)\r\nADDIU S2 S2 lo(main_left_array_seventeen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eighteen:\r\nLUI S2 hi(main_left_array_eighteen)\r\nADDIU S2 S2 lo(main_left_array_eighteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_nineteen:\r\nLUI S2 hi(main_left_array_nineteen)\r\nADDIU S2 S2 lo(main_left_array_nineteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty:\r\nLUI S2 hi(main_left_array_twenty)\r\nADDIU S2 S2 lo(main_left_array_twenty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_one:\r\nLUI S2 hi(main_left_array_twenty_one)\r\nADDIU S2 S2 lo(main_left_array_twenty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_two:\r\nLUI S2 hi(main_left_array_twenty_two)\r\nADDIU S2 S2 lo(main_left_array_twenty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_three:\r\nLUI S2 hi(main_left_array_twenty_three)\r\nADDIU S2 S2 lo(main_left_array_twenty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_four:\r\nLUI S2 hi(main_left_array_twenty_four)\r\nADDIU S2 S2 lo(main_left_array_twenty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_five:\r\nLUI S2 hi(main_left_array_twenty_five)\r\nADDIU S2 S2 lo(main_left_array_twenty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_six:\r\nLUI S2 hi(main_left_array_twenty_six)\r\nADDIU S2 S2 lo(main_left_array_twenty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_seven:\r\nLUI S2 hi(main_left_array_twenty_seven)\r\nADDIU S2 S2 lo(main_left_array_twenty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_eight:\r\nLUI S2 hi(main_left_array_twenty_eight)\r\nADDIU S2 S2 lo(main_left_array_twenty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_nine:\r\nLUI S2 hi(main_left_array_twenty_nine)\r\nADDIU S2 S2 lo(main_left_array_twenty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty:\r\nLUI S2 hi(main_left_array_thirty)\r\nADDIU S2 S2 lo(main_left_array_thirty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_one:\r\nLUI S2 hi(main_left_array_thirty_one)\r\nADDIU S2 S2 lo(main_left_array_thirty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_two:\r\nLUI S2 hi(main_left_array_thirty_two)\r\nADDIU S2 S2 lo(main_left_array_thirty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_three:\r\nLUI S2 hi(main_left_array_thirty_three)\r\nADDIU S2 S2 lo(main_left_array_thirty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_four:\r\nLUI S2 hi(main_left_array_thirty_four)\r\nADDIU S2 S2 lo(main_left_array_thirty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_five:\r\nLUI S2 hi(main_left_array_thirty_five)\r\nADDIU S2 S2 lo(main_left_array_thirty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_six:\r\nLUI S2 hi(main_left_array_thirty_six)\r\nADDIU S2 S2 lo(main_left_array_thirty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_seven:\r\nLUI S2 hi(main_left_array_thirty_seven)\r\nADDIU S2 S2 lo(main_left_array_thirty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_eight:\r\nLUI S2 hi(main_left_array_thirty_eight)\r\nADDIU S2 S2 lo(main_left_array_thirty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_nine:\r\nLUI S2 hi(main_left_array_thirty_nine)\r\nADDIU S2 S2 lo(main_left_array_thirty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty:\r\nLUI S2 hi(main_left_array_forty)\r\nADDIU S2 S2 lo(main_left_array_forty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_one:\r\nLUI S2 hi(main_left_array_forty_one)\r\nADDIU S2 S2 lo(main_left_array_forty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_two:\r\nLUI S2 hi(main_left_array_forty_two)\r\nADDIU S2 S2 lo(main_left_array_forty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_three:\r\nLUI S2 hi(main_left_array_forty_three)\r\nADDIU S2 S2 lo(main_left_array_forty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_four:\r\nLUI S2 hi(main_left_array_forty_four)\r\nADDIU S2 S2 lo(main_left_array_forty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_five:\r\nLUI S2 hi(main_left_array_forty_five)\r\nADDIU S2 S2 lo(main_left_array_forty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_six:\r\nLUI S2 hi(main_left_array_forty_six)\r\nADDIU S2 S2 lo(main_left_array_forty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_seven:\r\nLUI S2 hi(main_left_array_forty_seven)\r\nADDIU S2 S2 lo(main_left_array_forty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_eight:\r\nLUI S2 hi(main_left_array_forty_eight)\r\nADDIU S2 S2 lo(main_left_array_forty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_nine:\r\nLUI S2 hi(main_left_array_forty_nine)\r\nADDIU S2 S2 lo(main_left_array_forty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fifty:\r\nLUI S2 hi(main_left_array_fifty)\r\nADDIU S2 S2 lo(main_left_array_fifty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nload_main_right_array_one:\r\nLUI S2 hi(main_right_array_one)\r\nADDIU S2 S2 lo(main_right_array_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_two:\r\nLUI S2 hi(main_right_array_two)\r\nADDIU S2 S2 lo(main_right_array_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_three:\r\nLUI S2 hi(main_right_array_three)\r\nADDIU S2 S2 lo(main_right_array_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_four:\r\nLUI S2 hi(main_right_array_four)\r\nADDIU S2 S2 lo(main_right_array_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_five:\r\nLUI S2 hi(main_right_array_five)\r\nADDIU S2 S2 lo(main_right_array_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_six:\r\nLUI S2 hi(main_right_array_six)\r\nADDIU S2 S2 lo(main_right_array_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_seven:\r\nLUI S2 hi(main_right_array_seven)\r\nADDIU S2 S2 lo(main_right_array_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eight:\r\nLUI S2 hi(main_right_array_eight)\r\nADDIU S2 S2 lo(main_right_array_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_nine:\r\nLUI S2 hi(main_right_array_nine)\r\nADDIU S2 S2 lo(main_right_array_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_ten:\r\nLUI S2 hi(main_right_array_ten)\r\nADDIU S2 S2 lo(main_right_array_ten)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eleven:\r\nLUI S2 hi(main_right_array_eleven)\r\nADDIU S2 S2 lo(main_right_array_eleven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twelve:\r\nLUI S2 hi(main_right_array_twelve)\r\nADDIU S2 S2 lo(main_right_array_twelve)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirteen:\r\nLUI S2 hi(main_right_array_thirteen)\r\nADDIU S2 S2 lo(main_right_array_thirteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fourteen:\r\nLUI S2 hi(main_right_array_fourteen)\r\nADDIU S2 S2 lo(main_right_array_fourteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fifteen:\r\nLUI S2 hi(main_right_array_fifteen)\r\nADDIU S2 S2 lo(main_right_array_fifteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_sixteen:\r\nLUI S2 hi(main_right_array_sixteen)\r\nADDIU S2 S2 lo(main_right_array_sixteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_seventeen:\r\nLUI S2 hi(main_right_array_seventeen)\r\nADDIU S2 S2 lo(main_right_array_seventeen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eighteen:\r\nLUI S2 hi(main_right_array_eighteen)\r\nADDIU S2 S2 lo(main_right_array_eighteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_nineteen:\r\nLUI S2 hi(main_right_array_nineteen)\r\nADDIU S2 S2 lo(main_right_array_nineteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty:\r\nLUI S2 hi(main_right_array_twenty)\r\nADDIU S2 S2 lo(main_right_array_twenty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_one:\r\nLUI S2 hi(main_right_array_twenty_one)\r\nADDIU S2 S2 lo(main_right_array_twenty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_two:\r\nLUI S2 hi(main_right_array_twenty_two)\r\nADDIU S2 S2 lo(main_right_array_twenty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_three:\r\nLUI S2 hi(main_right_array_twenty_three)\r\nADDIU S2 S2 lo(main_right_array_twenty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_four:\r\nLUI S2 hi(main_right_array_twenty_four)\r\nADDIU S2 S2 lo(main_right_array_twenty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_five:\r\nLUI S2 hi(main_right_array_twenty_five)\r\nADDIU S2 S2 lo(main_right_array_twenty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_six:\r\nLUI S2 hi(main_right_array_twenty_six)\r\nADDIU S2 S2 lo(main_right_array_twenty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_seven:\r\nLUI S2 hi(main_right_array_twenty_seven)\r\nADDIU S2 S2 lo(main_right_array_twenty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_eight:\r\nLUI S2 hi(main_right_array_twenty_eight)\r\nADDIU S2 S2 lo(main_right_array_twenty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_nine:\r\nLUI S2 hi(main_right_array_twenty_nine)\r\nADDIU S2 S2 lo(main_right_array_twenty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty:\r\nLUI S2 hi(main_right_array_thirty)\r\nADDIU S2 S2 lo(main_right_array_thirty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_one:\r\nLUI S2 hi(main_right_array_thirty_one)\r\nADDIU S2 S2 lo(main_right_array_thirty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_two:\r\nLUI S2 hi(main_right_array_thirty_two)\r\nADDIU S2 S2 lo(main_right_array_thirty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_three:\r\nLUI S2 hi(main_right_array_thirty_three)\r\nADDIU S2 S2 lo(main_right_array_thirty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_four:\r\nLUI S2 hi(main_right_array_thirty_four)\r\nADDIU S2 S2 lo(main_right_array_thirty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_five:\r\nLUI S2 hi(main_right_array_thirty_five)\r\nADDIU S2 S2 lo(main_right_array_thirty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_six:\r\nLUI S2 hi(main_right_array_thirty_six)\r\nADDIU S2 S2 lo(main_right_array_thirty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_seven:\r\nLUI S2 hi(main_right_array_thirty_seven)\r\nADDIU S2 S2 lo(main_right_array_thirty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_eight:\r\nLUI S2 hi(main_right_array_thirty_eight)\r\nADDIU S2 S2 lo(main_right_array_thirty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_nine:\r\nLUI S2 hi(main_right_array_thirty_nine)\r\nADDIU S2 S2 lo(main_right_array_thirty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty:\r\nLUI S2 hi(main_right_array_forty)\r\nADDIU S2 S2 lo(main_right_array_forty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_one:\r\nLUI S2 hi(main_right_array_forty_one)\r\nADDIU S2 S2 lo(main_right_array_forty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_two:\r\nLUI S2 hi(main_right_array_forty_two)\r\nADDIU S2 S2 lo(main_right_array_forty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_three:\r\nLUI S2 hi(main_right_array_forty_three)\r\nADDIU S2 S2 lo(main_right_array_forty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_four:\r\nLUI S2 hi(main_right_array_forty_four)\r\nADDIU S2 S2 lo(main_right_array_forty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_five:\r\nLUI S2 hi(main_right_array_forty_five)\r\nADDIU S2 S2 lo(main_right_array_forty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_six:\r\nLUI S2 hi(main_right_array_forty_six)\r\nADDIU S2 S2 lo(main_right_array_forty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_seven:\r\nLUI S2 hi(main_right_array_forty_seven)\r\nADDIU S2 S2 lo(main_right_array_forty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_eight:\r\nLUI S2 hi(main_right_array_forty_eight)\r\nADDIU S2 S2 lo(main_right_array_forty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_nine:\r\nLUI S2 hi(main_right_array_forty_nine)\r\nADDIU S2 S2 lo(main_right_array_forty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fifty:\r\nLUI S2 hi(main_right_array_fifty)\r\nADDIU S2 S2 lo(main_right_array_fifty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n;======================================================================================================================================\r\n;This is where we loop through the chosen path to figure out where we will land and what passing spaces to store in the passing array\r\n;======================================================================================================================================\r\n\r\nmain_preprocessing:\r\n\r\nLHU S7 10(S3) ; stores player coins in S7 which is used to estimate what will happen to the coins based on spaces encountered in the future\r\n\r\nLUI T9 hi(cur_player_spaces_remaining)\r\nADDIU T9 T9 lo(cur_player_spaces_remaining)\r\nLW T9 0(T9) ; loads Current Spaces Remaining in T9\r\nSW T9 160(SP)\r\n\r\nADDU T2 R0 R0 ; set loop counter to 0\r\n\r\nLUI T0 hi(passing_space_array)\r\nADDIU T0 T0 lo(passing_space_array) ; loads passing space array into T0 so we can clear it\r\n\r\n\r\nLUI T1 hi(future_space_array)\r\nADDIU T1 T1 lo(future_space_array) ; loads future space array into T1 so we can clear it\r\n\r\n; this clears the loop for future\r\nloop_clearing:\r\n\r\nSB R0 0(T0)\r\nSB R0 0(T1)\r\n\r\nADDIU T0 T0 1\r\nADDIU T1 T1 1\r\nADDIU T2 T2 1\r\nSLTI V0 T2 60 ; if T2 is less than 60, V0 equals 1\r\n\r\nBNEZ V0 loop_clearing\r\nNOP\r\n\r\n\r\nLUI S4 hi(passing_space_array)\r\nADDIU S4 S4 lo(passing_space_array) ; loads passing space array into S4 so we can start adding passing by spaces to it\r\n\r\n; below is where we get the code to see how many items the player currently has which will be used to simulate changes to it for each possible path\r\nitem_estimate:\r\nLI T0 -1\r\nLB T1 24(S3) \r\n\r\nBEQ T0 T1 item_slot_one_is_empty\r\nNOP\r\n\r\nLB T1 25(S3) \r\nBEQ T0 T1 item_slot_two_is_empty\r\nNOP\r\n\r\nLB T1 26(S3) \r\nBEQ T0 T1 item_slot_three_is_empty\r\nNOP\r\n\r\nLI T9 3\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_one_is_empty:\r\nDADDU T9 R0 R0\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_two_is_empty:\r\nLI T9 1\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_three_is_empty:\r\nLI T9 2\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\n\r\n; this loop is used to store passby spaces and figure out where the cpu will land\r\nmain_space_processing_loop:\r\n\r\nLBU T7 0(S2) ; looks at current value in S2 which is where this current array is stored\r\nBEQZ T7 array_is_too_short\r\nNOP\r\n\r\nLUI T5 hi(skip_space_array)\r\nADDIU T5 T5 lo(skip_space_array) ; sets T5 equal to the skip space array\r\n\r\nLUI T4 hi(save_to_passing_arrays_array)\r\nADDIU T4 T4 lo(save_to_passing_arrays_array) ; sets T4 equal to the passing arrays array\r\n\r\ncheck_if_space_will_not_count_towards_remaining_spaces_loop:\r\nLB T6 0(T5) ; loads skip space array's current value into T6\r\n\r\nBEQ T6 T7 add_one_to_main_space_processing_loop ; checks if the current space id matches skip space array's current value, if it matches then another loop will be added to account for the fact that it won't be counted towards the roll\r\nNOP\r\n\r\nreturn_to_check_if_space_will_not_count_towards_remaining_spaces_loop:\r\nBEQZ T6 check_if_space_is_counted_in_passing_array_loop ; checks if the skip space array's value is zero which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\nADDIU T5 T5 1 ; adds 1 to the count down for the check_if_space_will_not_count_towards_remaining_spaces_loop which goes to the next value in the skip space array\r\n\r\nJ check_if_space_will_not_count_towards_remaining_spaces_loop\r\nNOP\r\n\r\n\r\nadd_one_to_main_space_processing_loop:\r\nLW T9 160(SP)\r\nADDIU T9 T9 1 ; adds 1 to the count down for the main_space_processing_loop\r\nSW T9 160(SP)\r\nJ return_to_check_if_space_will_not_count_towards_remaining_spaces_loop\r\nNOP\r\n\r\n\r\ncheck_if_space_is_counted_in_passing_array_loop:\r\nLW T9 160(SP)\r\n\r\nLB T6 0(T4) ; loads passing space array's current value into T6\r\nBEQ T6 T7 save_to_passing_array ; checks if the current space id matches passing space array's current value, if it matches then it is added to the passing space array for point calculations later on\r\nNOP\r\n\r\nreturn_to_check_if_space_is_counted_in_passing_array_loop:\r\nBEQZ T6 return_to_main_loop ; checks if the passing space array's value is zero which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\nADDIU T4 T4 1 ; adds 1 to go to the next value in the passing space array\r\n\r\nJ check_if_space_is_counted_in_passing_array_loop\r\nNOP\r\n\r\n\r\nsave_to_passing_array:\r\nSB T7 0(S4) ; this is where values are stored in the passing array\r\nADDIU S4 S4 1\r\n\r\nJ return_to_check_if_space_is_counted_in_passing_array_loop\r\nNOP\r\n\r\n\r\nreturn_to_main_loop:\r\n\r\nADDIU S2 S2 1 ; adds to the main array to check the next value\r\n\r\nLW T9 160(SP)\r\nADDIU T9 T9 -1 ; removes one from roll to check next space\r\n\r\nBEQZ T9 passing_array_processing  ; checks if the roll count down value is zero which means it is the end of the main_space_processing_loop and it is time to move on\r\nNOP\r\n\r\nSW T9 160(SP)\r\n\r\n\r\nJ main_space_processing_loop\r\nNOP\r\n\r\n\r\n\r\npassing_array_processing:\r\nSB T7 64(SP) ; saves the currently landed on space id for future usage\r\nLUI S4 hi(passing_space_array)\r\nADDIU S4 S4 lo(passing_space_array) ; reloads passing space array into S4 to reset position\r\n\r\npassing_array_processing_loop:\r\nLB T6 0(S4) ; checks the current value of the passing space array\r\n\r\nBEQZ T6 land_processing ; checks if the value is 0 which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\n\r\nLI T5 8\r\nBEQ T6 T5 bank_passing ; checks if the id matches the bank where it goes to remove 5 coins from the estimate\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T6 T5 item_shop_passing ; checks if the id matches the item shop where it adds and item to the item estimate to figure out the value of an item space later on\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T6 T5 boo_passing ; checks if the id matches boo where it calculates if it can steal stars or coins\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\n\r\n\r\nreturn_to_passing_array_processing:\r\nADDIU S4 S4 1 ; adds 1 to move to the next value in the passing array\r\n\r\nJ passing_array_processing_loop\r\nNOP\r\n\r\n\r\n; passing 1 $\r\nstar_passing:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 will_pass_star_with_enough_coins\r\nNOP\r\n\r\nBEQ S7 T5 will_pass_star_with_enough_coins ; checks if have enough coins to buy a star\r\nNOP\r\n\r\nJ return_to_passing_array_processing ; we do not have enough coins so passing the star will not be useful in any way so it will be ignored\r\nNOP\r\n\r\nwill_pass_star_with_enough_coins:\r\nADDIU S7 S7 -20 ; this subtracts 20 from the current coin estimate\r\nADDIU S1 S1 500 ; if we have enough points to buy a star 500 points will be added by default\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\n; passing 2 $\r\nitem_shop_passing:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nDADDU T2 R0 R0 ; sets T2 to 0\r\nSUBU T2 T0 T1 ; T2 tells you have many turns are left\r\nBGTZ T2 item_shop_passing_item_check ; if we are not on the last turn then we go to item_shop_passing_item_check\r\nNOP\r\nJ return_to_passing_array_processing ; this is only reached for the last turn so item shops are pointless\r\nNOP\r\n\r\n\r\n\r\nitem_shop_passing_item_check:\r\nLI T5 3\r\nLBU T9 156(SP) ; load item estimate for usage in near future\r\nSLT T0 T9 T5 ; makes sure we have less than 3 estimated items before moving on\r\nBNEZ T0 item_shop_passing_point_check ; if T0 is not zero then run this code\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\nitem_shop_passing_point_check:\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_twenty\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_twenty\r\nNOP\r\n\r\nLI T5 15\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_fifteen\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_fifteen\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_ten\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_ten\r\nNOP\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_five\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_five\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_twenty:\r\nADDIU S1 S1 10 ; adds points if the cpu has 20 coins and it will pass a shop 10 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_fifteen:\r\nADDIU S1 S1 7 ; adds points if the cpu has 15 coins and it will pass a shop 7 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_ten:\r\nADDIU S1 S1 5 ; adds points if the cpu has 10 coins and it will pass a shop 5 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_five:\r\nADDIU S1 S1 3 ; adds points if the cpu has 5 coins and it will pass a shop 3 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n; passing 3 $\r\nboo_passing:\r\n\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_star_check\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_star_check ; checks if cpu has enough coins to steal a star\r\nNOP\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_coin_check\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_coin_check ; checks if cpu has enough coins to steal coins\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nboo_passing_star_check:\r\nJAL GetSumOfPlayerStars ; Sum of all stars at V0\r\nNOP\r\n\r\nLBU T7 14(S3) ; puts current player's stars in T7\r\n\r\nBNE V0 T7 boo_passing_star_steal_estimate ; makes sure that there are stars for cpu to steal\r\nNOP\r\n\r\nBEQ V0 T7 boo_passing_coin_check ; jumps to coin stealing if there are no stars to steal\r\nNOP\r\n\r\nboo_passing_star_steal_estimate:\r\nADDIU S1 S1 100 ; adds points for passing boo and being able to steal a star 100 points will be added by default\r\nADDIU S7 S7 -50 ; removes 50 coins for assumed star steal\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nboo_passing_coin_check:\r\nJAL GetCurrentPlayerIndex ; returns current player's position\r\nNOP\r\nDADDU T1 R0 R0 ; clears T1\r\nDADDU T2 R0 R0 ; clears T2\r\nDADDU T3 R0 R0 ; clears T3\r\nDADDU T4 R0 R0 ; clears T4\r\n\r\ncheck_player_one_is_not_current_for_coins:\r\nBNEZ V0 load_player_one_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_coins:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_coins:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_coins:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\nplayer_coin_comparison_start:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_coin_comparison_one_two_is_larger\r\nNOP \r\n\r\nplayer_coin_comparison_three:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_coin_comparison_two_three_is_larger\r\nNOP\r\n\r\nplayer_coin_comparison_four:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_coin_comparison_three_four_is_larger\r\nNOP\r\n\r\n; the above code was used to store the largest coin amount belonging to another player in T1\r\n\r\nboo_passing_coin_check_final:\r\nLI T5 5\r\nSLT T6 T1 T5 ; if there are not enough coins to steal we set T6 to 1\r\nBNEZ T6 boo_passing_coin_check_failed ; we run this code to ignore boo if T6 is not zero\r\nNOP\r\n\r\nADDIU S1 S1 19; add boo points for coins 19 points will be added by default\r\nADDIU S7 S7 -5 ; subtract 5 for paying boo to steal coins\r\nLUI T0 hi(current_turn)\r\nADDIU T0 T0 lo(current_turn) ; Address of current turn\r\nLBU T0 0(T0) ; Load current turn to T0\r\n\r\n ; the code below estimates the minimum amount of money to be recieved from boo and code that we jumped to in previous bits of this boo code and we jump back to earlier\r\n\r\nLI T5 46\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_six\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_six ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 36\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_three\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_three ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 26\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_one\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_one ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 16\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_eighteen\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_eighteen ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 6\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_sixteen\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_sixteen ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nSLT T6 T0 T5 ; checks current turn to see what the minimum amount stolen from boo will be\r\nBNEZ T6 coins_to_be_checked_six\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_six:\r\nLI T5 26\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_six\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_six\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_three:\r\nLI T5 23\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_three\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_three\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_one:\r\nLI T5 21\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_one\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_one\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_eighteen:\r\nLI T5 18\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_eighteen\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_eighteen\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\n\r\ncoins_to_be_checked_sixteen:\r\nLI T5 16\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_sixteen\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_sixteen\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_six:\r\nLI T5 6\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_six\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_six\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\n\r\ncoins_to_be_stolen_twenty_six:\r\nADDIU S7 S7 26\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_twenty_three:\r\nADDIU S7 S7 23\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_twenty_one:\r\nADDIU S7 S7 21\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_eighteen:\r\nADDIU S7 S7 18\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_sixteen:\r\nADDIU S7 S7 16\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_six:\r\nADDIU S7 S7 6\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nnot_enough_coins:\r\nADDU S7 S7 T1\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nboo_passing_coin_check_failed:\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nload_player_one_coins:\r\nLBU T1 148(SP)\r\nJ check_player_two_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_two_coins:\r\nLHU T2 140(SP)\r\nJ check_player_three_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_three_coins:\r\nLHU T3 132(SP)\r\nJ check_player_four_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_four_coins:\r\nLHU T4 124(SP)\r\nJ player_coin_comparison_start\r\nNOP\r\n\r\nplayer_coin_comparison_one_two_is_larger:\r\nMOVE T1 T2\r\nJ player_coin_comparison_three\r\nNOP\r\n\r\nplayer_coin_comparison_two_three_is_larger:\r\nMOVE T1 T3\r\nJ player_coin_comparison_four\r\nNOP\r\n\r\nplayer_coin_comparison_three_four_is_larger:\r\nMOVE T1 T4\r\nJ boo_passing_coin_check_final\r\nNOP\r\n\r\n\r\n\r\n\r\n; passing 4 $\r\nbank_passing:\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_five_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_five_from_estimated_coins ; runs code to estimate the loss of 5 coins if the cpu has at least 5 coins\r\nNOP\r\n\r\nSLT T6 S7 T5 ; runs code to clear out the estimated coins because the cpu has less than 5 coins\r\nBNEZ T6 set_estimated_coins_to_zero_for_bank_passing\r\nNOP\r\n\r\nset_estimated_coins_to_zero_for_bank_passing:\r\nDADDU S7 R0 R0 ; sets estimated coins to 0\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nsubtract_five_from_estimated_coins:\r\nADDIU S7 S7 -5 ; subtracts 5 from estimated coins\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nland_processing:\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLBU T8 64(SP)\r\n\r\n\r\nLI T5 1\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T8 T5 red_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T8 T5 chance_time_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T8 T5 bowser_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T8 T5 item_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T8 T5 battle_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T8 T5 game_guy_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T8 T5 bank_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLI T5 19\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T8 T5 happening_space_good ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T8 T5 happening_space_bad ; runs the right code for the right ids\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 1 $\r\nitem_space:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nBEQ T1 T0 last_turn_so_item_spaces_cannot_give_items\r\nNOP\r\n\r\nLI T5 3\r\nLBU T9 156(SP)\r\n\r\nSLT T6 T9 T5 \r\nBNEZ T6 less_than_three_items\r\nNOP\r\n\r\nSLT T6 T5 T9\r\nBNEZ T6 too_many_items\r\nNOP\r\n\r\nBEQ T9 T5 too_many_items\r\nNOP\r\n\r\nless_than_three_items:\r\nADDIU S1 S1 18 ; adds points for landing on an item space and you can accept an item 18 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ntoo_many_items:\r\nADDIU S1 S1 12 ; adds points for landing on an item space while being full on items 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nlast_turn_so_item_spaces_cannot_give_items:\r\nADDIU S1 S1 12 ; adds points for landing on an item space in the last turn 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n; landing 2 $\r\nbank_space:\r\n\r\nADDIU S7 S7 5\r\n\r\nLUI T1 hi(bank_coin_total)\r\nADDIU T1 T1 lo(bank_coin_total) ; Address of coin count in bank\r\nLHU T1 0(T1) ; Load current coin count in bank to T1\r\n\r\nBEQZ T1 bank_is_empty ; runs code if bank is empty\r\nNOP\r\n\r\n\r\nADDU T0 T1 S7 ; gets an estimate for the bank coin count added with current coin estimate\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 coin_estimate_is_at_least_fifty\r\nNOP\r\n\r\nBEQ S7 T5 coin_estimate_is_at_least_fifty ; runs code if the cpu's coin count is at least 50 \r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 coin_estimate_is_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 coin_estimate_is_at_least_twenty ; runs code if the cpu's coin count is at least 20 \r\nNOP\r\n\r\n\r\nSLT T6 S7 T5  ; runs code if the cpu's coin count is less than 20\r\nBNEZ T6 coin_estimate_is_less_than_twenty\r\nNOP\r\n\r\n ; the code below calculates if points should be added based on the bank's current coin count or the estimated coin count along with the bank total which is all based on the cpu's currently estimated coins\r\ncoin_estimate_is_at_least_fifty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_less_than_twenty\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_are_less_than_twenty\r\nNOP\r\n\r\n\r\n\r\ncoin_estimate_is_less_than_twenty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T0 T5 \r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_less_than_twenty\r\nNOP\r\n\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty:\r\nADDIU S1 S1 19 ; adds points if the cpu has at least 50 coins and the bank also has at least 50 coins 19 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has at least 50 coins and the bank also has at least 20 coins 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_less_than_twenty:\r\nADDIU S1 S1 17 ; adds points if the cpu has at least 50 coins and the bank also has less than 20 coins 17 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty:\r\nADDIU S1 S1 20 ; adds points if the cpu has at least 20 coins and the bank coin count + the cpu's current estimated coin count is at least 50 20 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has at least 20 coins and the bank coin count is at least 20 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_are_less_than_twenty:\r\nADDIU S1 S1 17 ; adds points if the cpu has at least 20 coins and the bank coin count is less than 20 17 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty:\r\nADDIU S1 S1 20 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is at least 50 20 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty:\r\nADDIU S1 S1 19 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is at least 20 19 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_less_than_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is less than 20 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbank_is_empty:\r\nADDIU S1 S1 14 ; adds points for an empty bank 14 points will be added by default\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 3 $\r\nblue_space:\r\nADDIU S1 S1 16 ; adds points for a blue space 16 points will be added by default\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\nLI T5 5\r\nSLT T6 T5 T2 ; runs code when it is not the last 5 turns\r\nBNEZ T6 add_coins_to_coin_estimate_normal_blue_space\r\nNOP\r\n\r\nSLT T6 T2 T5\r\nBNEZ T6 add_coins_to_coin_estimate_last_five_turn_blue_space\r\nNOP\r\n\r\nBEQ T2 T5 add_coins_to_coin_estimate_last_five_turn_blue_space ; runs code when it is the last 5 turns\r\nNOP\r\n\r\nadd_coins_to_coin_estimate_normal_blue_space:\r\nADDIU S7 S7 3 ; adds estimated coins for landing on a blue space when it is not the last 5 turns\r\nJ pre_future_point\r\nNOP\r\n\r\nadd_coins_to_coin_estimate_last_five_turn_blue_space:\r\nADDIU S7 S7 6 ; adds estimated coins for landing on a blue space during the last 5 turns\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 4 $\r\nbattle_space:\r\nLI T5 20\r\n\r\nSLT T6 T5 S7\r\nBNEZ T6 battle_space_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 battle_space_at_least_twenty ; loads code if the current estimated coins are at least 20\r\nNOP\r\n\r\nSLT T6 S7 T5  ; loads code if the current estimated coins are less than 20\r\nBNEZ T6 battle_space_less_than_twenty\r\nNOP\r\n\r\nbattle_space_at_least_twenty:\r\nADDIU S1 S1 6 ; adds points for a battle space when you have over 20 coins 6 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nbattle_space_less_than_twenty:\r\nADDIU S1 S1 12 ; adds points for a battle space when you have less than 20 coins 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n; landing 5 $\r\nred_space:\r\nADDIU S1 S1 8 ; adds points for a red space 8 points will be added by default\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\n\r\nLI T5 5\r\nSLT T6 T5 T2 ; runs code when it is not the last 5 turns\r\nBNEZ T6 remove_coins_to_coin_estimate_normal_red_space\r\nNOP\r\n\r\nSLT T6 T2 T5\r\nBNEZ T6 remove_coins_to_coin_estimate_last_five_turn_red_space\r\nNOP\r\n\r\nBEQ T2 T5 remove_coins_to_coin_estimate_last_five_turn_red_space ; runs code when it is the last 5 turns\r\nNOP\r\n\r\nremove_coins_to_coin_estimate_normal_red_space:\r\nLI T5 3\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_three_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_three_from_estimated_coins ; runs code for when coin count to be taken is not less than estimated coin count\r\nNOP\r\n\r\nSLT T6 S7 T5  ; runs code for when coin count to be taken is less than estimated coin count\r\nBNEZ T6 set_estimated_coins_to_zero_for_red_space_landing\r\nNOP\r\n\r\nsubtract_three_from_estimated_coins:\r\nADDIU S7 S7 -3 ; subtracts 3 coins from estimated coin count\r\nJ pre_future_point\r\nNOP\r\n\r\nremove_coins_to_coin_estimate_last_five_turn_red_space:\r\nLI T5 6\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_six_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_six_from_estimated_coins ; runs code for when coin count to be taken is not less than estimated coin count\r\nNOP\r\n\r\nSLT T6 S7 T5  ; runs code for when coin count to be taken is less than estimated coin count\r\nBNEZ T6 set_estimated_coins_to_zero_for_red_space_landing\r\nNOP\r\n\r\nsubtract_six_from_estimated_coins:\r\nADDIU S7 S7 -6 ; subtracts 6 coins from estimated coin count\r\nJ pre_future_point\r\nNOP\r\n\r\nset_estimated_coins_to_zero_for_red_space_landing:\r\nDADDU S7 R0 R0 ; clears current coin count\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 6 $\r\nbowser_space:\r\n\r\nBEQZ S7 bowser_space_has_no_coins\r\nNOP\r\n\r\nBNEZ S7 bowser_space_has_coins\r\nNOP\r\n\r\nbowser_space_has_coins:\r\nADDIU S1 S1 6 ; adds points for landing on bowser when the CPU has coins 6 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nbowser_space_has_no_coins:\r\nADDIU S1 S1 18 ; adds points for landing on bowser when the CPU has no coins 18 points will be added by default\r\n\r\nJAL GetPlayerPlacement ; 0-3 at V0\r\nLBU A0 29(S3) ; Player Index\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\n; the code below is to estimate the amount of coins that bowser will give when you have 0 coins based on placement and turn count\r\n\r\nLI T5 5\r\nSLT T6 T1 T5\r\nBNEZ T6 bowser_space_early_game\r\nNOP\r\n\r\nBEQ T1 T5 bowser_space_early_game\r\nNOP\r\n\r\nSLT T6 T5 T2\r\nBNEZ T6 bowser_space_late_game\r\nNOP\r\n\r\nBEQ T2 T5 bowser_space_late_game\r\nNOP\r\n\r\n\r\nbowser_space_mid_game:\r\n\r\nLI T5 1\r\nSLT T6 V0 T5\r\nBNEZ T6 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_fourty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_fourty_coins\r\nNOP\r\n\r\n\r\nbowser_space_early_game:\r\n\r\nLI T5 1\r\nSLT T6 V0 T5\r\nBNEZ T6 bowser_space_add_twenty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_twenty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_thirty_coins\r\nNOP\r\n\r\n\r\nbowser_space_late_game:\r\nBEQZ V0 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nLI T5 1\r\nBEQ V0 T5 bowser_space_add_fourty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_fifty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_fifty_coins\r\nNOP\r\n\r\n\r\n\r\nbowser_space_add_twenty_coins:\r\nADDIU S7 S7 20\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_thirty_coins:\r\nADDIU S7 S7 30\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_fourty_coins:\r\nADDIU S7 S7 40\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_fifty_coins:\r\nADDIU S7 S7 50\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n; landing 7 $\r\ngame_guy_space:\r\nBEQZ S7 game_guy_zero_coins\r\nNOP\r\n\r\nLI T5 41\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_forty\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 game_guy_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 game_guy_less_than_twenty\r\nNOP\r\n\r\ngame_guy_at_least_forty:\r\nADDIU S1 S1 2 ; adds points when the cpu has at least 40 coins and they will land on gameguy 2 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ngame_guy_at_least_twenty:\r\nADDIU S1 S1 4 ; adds points when the cpu has at least 20 coins and they will land on gameguy 4 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_less_than_twenty:\r\nADDIU S1 S1 14 ; adds points when the cpu has less than 20 coins and they will land on gameguy 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_zero_coins:\r\nADDIU S1 S1 12 ; adds points when the cpu will have 0 coins and they will land on gameguy 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n; landing 8 $\r\nchance_time_space:\r\n ; the code below tries to find the largest star count that does not belong to the CPU, it is similar to the code used to find the largest coin value not belonging to the current CPU\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\nDADDU T1 R0 R0\r\nDADDU T2 R0 R0\r\nDADDU T3 R0 R0\r\nDADDU T4 R0 R0\r\n\r\ncheck_player_one_is_not_current_for_stars:\r\nBNEZ V0 load_player_one_stars\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_stars:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_stars\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_stars:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_stars\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_stars:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_stars\r\nNOP\r\n\r\nplayer_star_comparison_start:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_star_comparison_one_two_is_larger\r\nNOP \r\n\r\nplayer_star_comparison_three:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_star_comparison_two_three_is_larger\r\nNOP\r\n\r\nplayer_star_comparison_four:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_star_comparison_three_four_is_larger\r\nNOP\r\n\r\nchance_time_star_check_final:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\nLBU T2 14(S3) ; puts current player's stars in T2\r\n\r\nLI T5 3 ; this value is the number of turns to be considered end game (S1 S1 might be useful to change)\r\nSLT T6 T5 T3  \r\nBNEZ T6 early_or_mid_game_chance_time ; runs code if it is not the last 3 turns\r\nNOP\r\n\r\nSLT T6 T3 T5\r\nBNEZ T6 end_game_chance_time\r\nNOP\r\n\r\nBEQ T3 T5 end_game_chance_time ; runs code if it is the last 3 turns\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time:\r\nADDIU T2 T2 2 ; adds a number that is the gap between the first place player's star count and the current player's star count. Changing this number will change the gap required between the cpu and 1st place to make chance time more appealing. By default this number is 2 which means that if the gap is larger than 2 then chance time will be more appealing (S1 S1 here for guidance to change stuff)\r\n\r\nSLT T6 T2 T1  \r\nBNEZ T6 early_or_mid_game_chance_time_add_points ; if the gap is larger than what was set above then it runs this code\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points if the gap between the cpu and 1st place was not large enough 4 points will be added by default\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_add_points:\r\nADDIU S1 S1 14 ; adds points if the gap between the cpu and 1st place was large enough 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nend_game_chance_time:\r\nSLT T6 T2 T1  ; checks if the star count is the same as 1st place\r\nBNEZ T6 end_game_chance_time_add_points\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points if the star count is the same as 1st place 4 points will be added by default\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nend_game_chance_time_add_points:\r\nADDIU S1 S1 14 ; adds points if the star count is less than 1st place 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nload_player_one_stars:\r\nLBU T1 144(SP)\r\n\r\nJ check_player_two_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_two_stars:\r\nLBU T2 136(SP)\r\n\r\nJ check_player_three_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_three_stars:\r\nLBU T3 128(SP)\r\n\r\nJ check_player_four_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_four_stars:\r\nLBU T4 120(SP)\r\n\r\nJ player_star_comparison_start\r\nNOP\r\n\r\nplayer_star_comparison_one_two_is_larger:\r\nMOVE T1 T2\r\n\r\nJ player_star_comparison_three\r\nNOP\r\n\r\nplayer_star_comparison_two_three_is_larger:\r\nMOVE T1 T3\r\n\r\nJ player_star_comparison_four\r\nNOP\r\n\r\nplayer_star_comparison_three_four_is_larger:\r\nMOVE T1 T4\r\n\r\nJ chance_time_star_check_final\r\nNOP\r\n\r\n\r\n\r\n; landing 9 $\r\nhappening_space:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\nLBU T9 64(SP)\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_one_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_two_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_three_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_four_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_five_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_six_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_seven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_eight_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_nine_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_ten_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_eleven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_one_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_two_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_three_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_four_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_five_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_six_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_seven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eight_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_nine_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_ten_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eleven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nbonus_stars_are_not_enabled_happening_space:\r\n\r\nBEQZ T1 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_not_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_not_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\n\r\nLBU T9 64(SP)\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_one_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_two_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_three_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_four_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_five_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_six_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_seven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_eight_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_nine_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_ten_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_eleven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_one_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_two_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_three_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_four_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_five_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_six_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_seven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eight_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_nine_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_ten_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eleven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nbonus_stars_are_enabled_happening_space:\r\nBEQZ T1 happening_space_bonus_stars_are_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n; landing 20 $\r\nhappening_space_good:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_good_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_good_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_good_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_good_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n; landing 21 $\r\nhappening_space_bad:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_bad_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_bad_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_bad_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\nhappening_space_bad_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 12 ; adds points for landing on this space when it is unknown and there are no bonus stars and it is not the last turn, default is 12\r\n\r\nADDIU S1 S1 60 ; adds points for future spaces instead of using the future array code, default is 60\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is unknown and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 20 ; adds points for landing on this space when it is good and there are no bonus stars and it is not the last turn, default is 20\r\n\r\nADDIU S1 S1 100 ; adds points for future spaces instead of using the future array code, default is 100\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is good and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 0 ; adds points for landing on this space when it is bad and there are no bonus stars and it is not the last turn, default is 0\r\n\r\nADDIU S1 S1 0 ; adds points for future spaces instead of using the future array code, default is 0\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is bad and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 14 ; adds points for landing on this space when it is unknown and there are bonus stars and it is not the last turn, default is 14\r\n\r\nADDIU S1 S1 70 ; adds points for future spaces instead of using the future array code, default is 70\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is unknown and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 22 ; adds points for landing on this space when it is good and there are bonus stars and it is not the last turn, default is 22\r\n\r\nADDIU S1 S1 110 ; adds points for future spaces instead of using the future array code, default is 110\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is good and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 2 ; adds points for landing on this space when it is bad and there are bonus stars and it is not the last turn, default is 2\r\n\r\nADDIU S1 S1 0 ; adds points for future spaces instead of using the future array code, default is 0\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is bad and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\npre_future_point:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nLB T5 68(SP)\r\nBNEZ T5 wacky_watch_might_extend_game\r\nNOP\r\n\r\nBEQ T0 T1 pick_point_comparison\r\nNOP\r\n\r\nwacky_watch_might_extend_game:\r\nLUI S4 hi(future_space_array)\r\nADDIU S4 S4 lo(future_space_array) ; loads the future space array into S4\r\nLI T8 10 ; sets T8 to 10 which will be used to estimate the next 10 spaces\r\n\r\nfuture_point_loop:\r\nLBU T7 0(S2) ; loads the currently selected space in S2 to T7\r\n\r\nBEQZ T7 array_is_too_short\r\nNOP\r\n\r\nLUI T5 hi(skip_space_array)\r\nADDIU T5 T5 lo(skip_space_array) ; loads skip space array into T5 also used for resetting position as it loops\r\n\r\ncheck_if_space_will_not_count_towards_remaining_future_spaces_loop:\r\nLB T6 0(T5) ; loads the currently selected space in T5 to T6\r\n\r\nBEQ T6 T7 add_one_to_future_point_loop ; compares id in main space array to the skip space array to see if one should be added in the estimation\r\nNOP\r\n\r\nBEQZ T6 return_to_future_point_loop ; if the id in T6 is 0 that means the skip space array is over and it is time to move on\r\nNOP\r\n\r\nADDIU T5 T5 1 ; adds 1 to T5 to check the next spot's info\r\n\r\nJ check_if_space_will_not_count_towards_remaining_future_spaces_loop\r\nNOP\r\n\r\nadd_one_to_future_point_loop:\r\nADDIU T8 T8 1 ; adds 1 to the estimated roll because a passing space/event has been detected\r\n\r\nreturn_to_future_point_loop:\r\n\r\nBEQZ T8 future_array_processing ; if T8 is zero that means we have reached the 10 spaces and any passing spaces we may have encountered, the position for this here is very important to make sure we don't miscount spaces\r\nNOP\r\n\r\nSB T7 0(S4) ; writes the current space ID to the future space array for point evaluation later on\r\nADDIU S4 S4 1 ; moves to the next value in S4 to prevent overwriting the ID we just wrote\r\nADDIU S2 S2 1 ; adds 1 to S2 to check the next space ID\r\nADDIU T8 T8 -1 ; removes 1 from roll to check next space\r\n\r\nJ future_point_loop\r\nNOP\r\n\r\n\r\n\r\n; future 1 $\r\nstar_passing_future:\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\n\r\n; the code below checks if there are any lucky lamps or magic lamps, if it finds a magic lamp then it checks if that player has enough coins to use it to get the star and then it picks between adding points if there are no items that can prevent the cpu from getting the star or not\r\n\r\ncheck_player_one_is_not_current_for_items:\r\nBNEZ V0 load_player_one_items\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_items:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_items\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_items:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_items\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_items:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_items\r\nNOP\r\n\r\n\r\nstar_passing_future_no_item:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_no_item_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_no_item_at_least_twenty\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_no_item_at_least_ten\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_no_item_at_least_ten\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 star_passing_future_no_item_less_than_ten\r\nNOP\r\n\r\n\r\n\r\nstar_passing_future_item:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_item_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_item_at_least_twenty\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_item_at_least_ten\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_item_at_least_ten\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 star_passing_future_item_less_than_ten\r\nNOP\r\n\r\n\r\n\r\n\r\nstar_passing_future_item_at_least_twenty:\r\nADDIU S1 S1 50 ; adds points when the star is within the next 10 spaces and the coin estimate is enough to buy the star, but another player has an item that may prevent the cpu from getting the star 50 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_item_at_least_ten:\r\nADDIU S1 S1 25 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star but is large enough that winning a minigame can give the cpu enough coins, but another player has an item that may prevent the cpu from getting the star 25 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_item_less_than_ten:\r\nADDIU S1 S1 10 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star even if the cpu wins a minigame, but another player has an item that may prevent the cpu from getting the star 10 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_at_least_twenty:\r\nADDIU S1 S1 100 ; adds points when the star is within the next 10 spaces and the coin estimate is enough to buy the star, and no other players have items that will prevent the cpu from getting the star 100 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_at_least_ten:\r\nADDIU S1 S1 50 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star but will be if a minigame is won, and no other players have items that will prevent the cpu from getting the star 50 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_less_than_ten:\r\nADDIU S1 S1 25 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star even if the cpu wins a minigame, and no other players have items that will prevent the cpu from getting the star 25 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nload_player_one_items:\r\nLBU T0 116(SP)\r\n\r\nLHU T1 148(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_one_coin_check\r\nNOP\r\n\r\n\r\n\r\ncheck_player_one_items_two:\r\nLBU T0 112(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_one_coin_check\r\nNOP\r\n\r\ncheck_player_one_items_three:\r\nLBU T0 108(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_one_coin_check\r\nNOP\r\n\r\nJ check_player_two_is_not_current_for_items\r\nNOP\r\n\r\nload_player_two_items:\r\nLBU T0 104(SP)\r\n\r\nLHU T1 140(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_two_coin_check\r\nNOP\r\n\r\ncheck_player_two_items_two:\r\nLBU T0 100(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_two_coin_check\r\nNOP\r\n\r\ncheck_player_two_items_three:\r\nLBU T0 96(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_two_coin_check\r\nNOP\r\n\r\nJ check_player_three_is_not_current_for_items\r\nNOP\r\n\r\nload_player_three_items:\r\nLBU T0 92(SP)\r\n\r\nLHU T1 132(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_three_coin_check\r\nNOP\r\n\r\ncheck_player_three_items_two:\r\nLBU T0 88(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_three_coin_check\r\nNOP\r\n\r\ncheck_player_three_items_three:\r\nLBU T0 84(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_three_coin_check\r\nNOP\r\n\r\nJ check_player_four_is_not_current_for_items\r\nNOP\r\n\r\n\r\nload_player_four_items:\r\nLBU T0 80(SP)\r\n\r\nLHU T1 124(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_four_coin_check\r\nNOP\r\n\r\ncheck_player_four_items_two:\r\nLBU T0 76(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_four_coin_check\r\nNOP\r\n\r\ncheck_player_four_items_three:\r\nLBU T0 72(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_four_coin_check\r\nNOP\r\n\r\nJ star_passing_future_no_item\r\nNOP\r\n\r\n\r\n\r\nstar_passing_future_item_one_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_one_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_one_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ star_passing_future_no_item\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 2 $\r\nitem_shop_passing_future:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nDADDU T2 R0 R0\r\n\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\nLI T5 1\r\nSLT T6 T5 T2  \r\nBNEZ T6 item_shop_passing_future_enough_turns ; makes sure that when it might be possible to reach the store it will not be the last turn\r\nNOP\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_enough_turns:\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_twenty_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_twenty_coins\r\nNOP\r\n\r\nLI T5 15\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_fifteen_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_fifteen_coins\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_ten_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_ten_coins\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 item_shop_passing_future_add_points_for_less_than_ten_coins\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_twenty_coins:\r\nADDIU S1 S1 10 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 20, 10 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_fifteen_coins:\r\nADDIU S1 S1 7 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 15, 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_ten_coins:\r\nADDIU S1 S1 5 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 10, 5 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_less_than_ten_coins:\r\nADDIU S1 S1 3 ; adds points if a store is within the next 10 spaces and the current coin estimate is less than 10, 3 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n; future 3 $\r\nboo_passing_future:\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_future_can_steal_stars\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_future_can_steal_stars\r\nNOP\r\n\r\nboo_passing_future_cannot_steal_stars:\r\nADDIU S1 S1 35 ; adds points for being able to steal coins using boo within the next 10 spaces 35 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nboo_passing_future_can_steal_stars:\r\nJAL GetSumOfPlayerStars ; Sum of all stars at V0\r\nNOP\r\n\r\nLBU T0 14(S3)\r\n\r\nSLT T6 T0 V0  \r\nBNEZ T6 boo_passing_future_can_steal_stars_gameguy_check\r\nNOP\r\n\r\nJ boo_passing_future_cannot_steal_stars\r\nNOP\r\n\r\n\r\nboo_passing_future_can_steal_stars_gameguy_check:\r\nLBU T9 64(SP)\r\nLI T5 7 \r\nBEQ T9 T5 boo_passing_future_can_steal_stars_gameguy_confirmed\r\nNOP\r\n\r\nADDIU S1 S1 75 ; adds points for being able to steal stars using boo within the next 10 spaces 75 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nboo_passing_future_can_steal_stars_gameguy_confirmed:\r\nADDIU S1 S1 55 ; adds points for being able to steal stars using boo within the next 10 spaces but the cpu will land on gameguy 55 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 4 $\r\nitem_space_future:\r\nADDIU S1 S1 9 ; adds points for future item space within the next 10 spaces 9 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 5 $\r\nbank_space_future:\r\nLUI T1 hi(bank_coin_total)\r\nADDIU T1 T1 lo(bank_coin_total) ; Address of coin count in bank\r\nLHU T1 0(T1) ; Load current coin count in bank to T1\r\n\r\nLI T5 50\r\nSLT T6 T5 T1\r\nBNEZ T6 bank_space_future_at_least_fifty_coins\r\nNOP\r\n\r\nBEQ T1 T5 bank_space_future_at_least_fifty_coins\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 bank_space_future_at_least_twenty_coins\r\nNOP\r\n\r\nBEQ T1 T5 bank_space_future_at_least_twenty_coins\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 bank_space_future_less_than_twenty_coins\r\nNOP\r\n\r\nbank_space_future_at_least_fifty_coins:\r\nADDIU S1 S1 7 ; adds points for a bank space within the next 10 spaces that has at least 50 coins 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbank_space_future_at_least_twenty_coins:\r\nADDIU S1 S1 6 ; adds points for a bank space within the next 10 spaces that has at least 20 coins 6 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbank_space_future_less_than_twenty_coins:\r\nADDIU S1 S1 5 ; adds points for a bank space within the next 10 spaces that has less than 20 coins 5 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 6 $\r\nblue_space_future:\r\nADDIU S1 S1 8 ; adds points for a blue space within the next 10 spaces 8 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 7 $\r\nbattle_space_future:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 battle_space_future_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 battle_space_future_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 battle_space_future_less_than_twenty\r\nNOP\r\n\r\nbattle_space_future_at_least_twenty:\r\nADDIU S1 S1 3 ; adds points for a battle space within the next 10 spaces when the cpu's coin estimate is at least 20, 3 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbattle_space_future_less_than_twenty:\r\nADDIU S1 S1 6 ; adds points for a battle space within the next 10 spaces when the cpu's coin estimate is less than 20, 6 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n; future 8 $\r\nred_space_future:\r\nADDIU S1 S1 4 ; adds points for a red space within the next 10 spaces 4 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 9 $\r\nbowser_space_future:\r\nADDIU S1 S1 3 ; adds points for a bowser space within the next 10 spaces 3 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 10 $\r\ngame_guy_space_future:\r\n\r\nLI T5 41\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_forty_future\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_space_future_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 game_guy_space_future_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 game_guy_space_future_less_than_twenty\r\nNOP\r\n\r\n\r\ngame_guy_at_least_forty_future:\r\nADDIU S1 S1 1 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is at least 40, 1 point will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_space_future_at_least_twenty:\r\nADDIU S1 S1 2 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is at least 20, 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\ngame_guy_space_future_less_than_twenty:\r\nADDIU S1 S1 7 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is less than 20, 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 11 $\r\nchance_time_space_future:\r\n; the code below finds the largest star count belonging to a different player\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\nDADDU T1 R0 R0\r\nDADDU T2 R0 R0\r\nDADDU T3 R0 R0\r\nDADDU T4 R0 R0\r\n\r\ncheck_player_one_is_not_current_for_stars_future:\r\nBNEZ V0 load_player_one_stars_future\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_stars_future:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_stars_future\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_stars_future:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_stars_future\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_stars_future:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_stars_future\r\nNOP\r\n\r\nplayer_star_comparison_start_future:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_star_comparison_one_two_is_larger_future\r\nNOP \r\n\r\nplayer_star_comparison_three_future:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_star_comparison_two_three_is_larger_future\r\nNOP\r\n\r\nplayer_star_comparison_four_future:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_star_comparison_three_four_is_larger_future\r\nNOP\r\n\r\nchance_time_star_check_final_future:\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nLBU T2 14(S3) ; puts current player's stars in T2\r\n\r\nLI T5 3 ; this value is the number of turns to be considered end game (S1 S1 might be useful to change)\r\n\r\nSLT T6 T5 T3  \r\nBNEZ T6 early_or_mid_game_chance_time_future\r\nNOP\r\n\r\nSLT T6 T3 T5\r\nBNEZ T6 end_game_chance_time_future\r\nNOP\r\n\r\nBEQ T3 T5 end_game_chance_time_future\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_future:\r\nADDIU T2 T2 2 ; adds a number that is the gap between the first place player's star count and the current player's star count. Changing this number will change the gap required to make chance time more appealing. By default this number is 2 which means that if the gap is larger than 2 then chance time will be more appealing (S1 S1 here for guidance to change stuff)\r\n\r\nSLT T6 T2 T1  \r\nBNEZ T6 early_or_mid_game_chance_time_future_add_points\r\nNOP\r\n\r\nADDIU S1 S1 2 ; adds points for a chance time within the next 10 spaces when the gap between the cpu and first place is not large enough and it is not the end game 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_future_add_points:\r\nADDIU S1 S1 7 ; adds points for a chance time within the next 10 spaces when the gap between the cpu and first place is large enough and it is not the end game 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nend_game_chance_time_future:\r\nSLT T6 T2 T1 \r\nBNEZ T6 end_game_chance_time_future_add_points\r\nNOP\r\n\r\nADDIU S1 S1 2 ; adds points for a chance time within the next 10 spaces when there is no gap between the cpu and first place and it is the end game 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nend_game_chance_time_future_add_points:\r\nADDIU S1 S1 7 ; adds points for a chance time within the next 10 spaces when there is a gap between the cpu and first place and it is the end game 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nload_player_one_stars_future:\r\nLBU T1 144(SP)\r\nJ check_player_two_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_two_stars_future:\r\nLBU T2 136(SP)\r\nJ check_player_three_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_three_stars_future:\r\nLBU T3 128(SP)\r\nJ check_player_four_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_four_stars_future:\r\nLBU T4 120(SP)\r\nJ player_star_comparison_start_future\r\nNOP\r\n\r\nplayer_star_comparison_one_two_is_larger_future:\r\nMOVE T1 T2\r\nJ player_star_comparison_three_future\r\nNOP\r\n\r\nplayer_star_comparison_two_three_is_larger_future:\r\nMOVE T1 T3\r\nJ player_star_comparison_four_future\r\nNOP\r\n\r\nplayer_star_comparison_three_four_is_larger_future:\r\nMOVE T1 T4\r\nJ chance_time_star_check_final_future\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 12 $\r\nhappening_space_future:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_one_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_two_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_three_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_four_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_five_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_six_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_seven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eight_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_nine_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_ten_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eleven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_one_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_two_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_three_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_four_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_five_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_six_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_seven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eight_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_nine_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_ten_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eleven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nbonus_stars_are_not_enabled_happening_space_future:\r\nBEQZ T1 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_one_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_two_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_three_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_four_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_five_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_six_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_seven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eight_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_nine_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_ten_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eleven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_one_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_two_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_three_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_four_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_five_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_six_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_seven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eight_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_nine_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_ten_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eleven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nbonus_stars_are_enabled_happening_space_future:\r\nBEQZ T1 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n; future 23 $\r\nhappening_space_future_good:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_good_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_good_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_good_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_good_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 24 $\r\nhappening_space_future_bad:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_bad_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_bad_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_bad_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_bad_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 6 ; adds points for being in the next 10 spaces when it is unknown and there are no bonus stars and it is not the last turn, default is 6\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is unknown and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 10 ; adds points for being in the next 10 spaces when it is good and there are no bonus stars and it is not the last turn, default is 10\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is good and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 0 ; adds points for being in the next 10 spaces when it is bad and there are no bonus stars and it is not the last turn, default is 0\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is bad and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 7 ; adds points for being in the next 10 spaces when it is unknown and there are bonus stars and it is not the last turn, default is 6\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is unknown and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 11 ; adds points for being in the next 10 spaces when it is good and there are bonus stars and it is not the last turn, default is 10\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is good and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 1 ; adds points for being in the next 10 spaces when it is bad and there are bonus stars and it is not the last turn, default is 0\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is bad and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfuture_array_processing:\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\n\r\nLUI S4 hi(future_space_array)\r\nADDIU S4 S4 lo(future_space_array) ; loads future space array in S4 to reset the position for processing\r\n\r\nfuture_array_processing_loop:\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\n\r\nBEQZ T9 pick_point_comparison ; checks if the ID is 0 which means the end of the array has been reached and it is time to compare point values with previous point values\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T9 T5 blue_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T9 T5 red_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T9 T5 chance_time_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T9 T5 bowser_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T9 T5 item_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T9 T5 battle_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T9 T5 game_guy_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T9 T5 bank_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T9 T5 item_shop_passing_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T9 T5 boo_passing_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLI T5 19\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T9 T5 happening_space_future_good ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T9 T5 happening_space_future_bad ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nreturn_to_future_array_processing_loop:\r\nADDIU S4 S4 1 ; this is where we add 1 to S4 to check the next value\r\n\r\nJ future_array_processing_loop\r\nNOP\r\n\r\n\r\ncheck_if_space_has_star:\r\nLUI T6 hi(skip_space_array)\r\nADDIU T6 T6 lo(skip_space_array) ; this loads the skip space array \r\nLBU T9 0(T6) ; here we check the first value in the skip space array which is where the current star spawn value is\r\n\r\nBEQ T9 T8 star_passing_future ; if the current star spawn value is the same as the current ID then we run the code for a future star\r\nNOP\r\n\r\nBNE T9 T8 blue_space_future ; if the current star spawn value is not the same as the current ID then we run the code for a future blue space\r\nNOP\r\n\r\n\r\narray_is_too_short:\r\nLI t0, 0x807FFFFC\r\nSW r0, 0x0000 (t0)\r\n;the array has detected a 0 which means that you improperly placed a 0 in one of the arrays or you did not make your array long enough\r\n\r\n\r\npick_point_comparison:\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLB T0 152(SP)\r\nBEQZ T0 left_point_comparison\r\nNOP\r\n\r\nBNEZ T0 right_point_comparison\r\nNOP\r\n\r\nleft_new_largest_point_value:\r\nMOVE S5 S1 ; this is used to overwrite the previous largest value with a new one\r\n\r\nleft_point_comparison:\r\nSLT T0 S5 S1 ; if S5 is less than S1 then T0 will equal 1 otherwise it will equal 0\r\nBNEZ T0 left_new_largest_point_value ; if T0 is not zero then run this code\r\nNOP\r\n\r\n\r\nMOVE S1 R0 ; clears S1 to make sure that it will not cause issues for the next round of adding points\r\nADDIU S0 S0 1 ; this adds 1 to S0 to start checking the next array in the list or to go to the next steps if we have reached that point\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\nright_new_largest_point_value:\r\nMOVE S6 S1 ; this is used to overwrite the previous largest value with a new one\r\n\r\nright_point_comparison:\r\nSLT T0 S6 S1 ; if S6 is less than S1 then T0 will equal 1 otherwise it will equal 0\r\nBNEZ T0 right_new_largest_point_value ; if T0 is not zero then run this code\r\nNOP\r\n\r\nADDIU S0 S0 1 ; this adds 1 to S0 to start checking the next array in the list or to go to the next steps if we have reached that point\r\nMOVE S1 R0 ; clears S1 to make sure that it will not cause issues for the next round of adding points\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\nChoose_Side:\r\nSLT T6 S6 S5 \r\nBNEZ T6 Go_Left\r\nNOP\r\n\r\nSLT T6 S5 S6 \r\nBNEZ T6 Go_Right\r\nNOP\r\n\r\nBEQ S5 S6 exit\r\nNOP\r\n\r\nGo_Left:\r\nLBU A0 29(S3)\r\nLI A1 Left_chain_index\r\nLI A2 Left_chain_space_index\r\n\r\nJ SetDecision\r\nNOP\r\n\r\nGo_Right:\r\nLBU A0 29(S3)\r\nLI A1 Right_chain_index\r\nLI A2 Right_chain_space_index\r\n\r\nJ SetDecision\r\nNOP\r\n\r\nSetDecision:\r\nJAL SetNextChainAndSpace\r\nNOP\r\n\r\nJ exit\r\nNOP\r\n\r\n\r\n\r\nexit:\r\nLW S7 164(SP)\r\nLW S6 168(SP)\r\nLW S5 172(SP)\r\nLW S4 176(SP)\r\nLW S3 180(SP)\r\nLW S2 184(SP)\r\nLW S1 188(SP)\r\nLW S0 192(SP)\r\nLW RA 196(SP)\r\nJR RA\r\nADDIU SP SP 200\r\n\r\n.align 16\r\npassing_space_array:\r\n.byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r\n\r\n.align 16\r\nfuture_space_array:\r\n.byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r\n\r\n.align 16\r\nskip_space_array:\r\n.byte 00,09,10,00\r\n\r\n.align 16\r\nsave_to_passing_arrays_array:\r\n.byte 00,08,09,10,00\r\n\r\n\r\n.align 16\r\nmain_left_array_array:\r\n.byte 01,02,03,04,05,06,07,08,09,00\r\n\r\n.align 16\r\nmain_left_array_one:\r\n.byte 01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_two:\r\n.byte 01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_three:\r\n.byte 01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_four:\r\n.byte 01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_five:\r\n.byte 01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_six:\r\n.byte 01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_seven:\r\n.byte 01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_eight:\r\n.byte 01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_nine:\r\n.byte 01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,00\r\n\r\n\r\n.align 16\r\nmain_left_array_ten:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_eleven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twelve:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fourteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fifteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_sixteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_seventeen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_eighteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_nineteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fifty:\r\n.byte 00,00\r\n\r\n\r\n.align 16\r\nmain_right_array_array:\r\n.byte 01,02,03,04,05,06,07,08,09,10,00\r\n\r\n.align 16\r\nmain_right_array_one:\r\n.byte 23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_two:\r\n.byte 23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_three:\r\n.byte 23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_four:\r\n.byte 23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_five:\r\n.byte 23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_six:\r\n.byte 23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_seven:\r\n.byte 23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_eight:\r\n.byte 23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_nine:\r\n.byte 23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_ten:\r\n.byte 23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_eleven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twelve:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fourteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fifteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_sixteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_seventeen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_eighteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_nineteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fifty:\r\n.byte 00,00\r\n"},"(New Junction 5)":{"language":0,"code":"; NAME: (New Junction 5)\r\n; GAMES: MP3_USA\r\n; EXECUTION: Direct\r\n; PARAM: Space|Left\r\n; PARAM: Space|Right\r\n\r\nADDIU SP SP -200\r\nSW RA 196(SP)\r\nSW S0 192(SP)\r\nSW S1 188(SP)\r\nSW S2 184(SP)\r\nSW S3 180(SP)\r\nSW S4 176(SP)\r\nSW S5 172(SP)\r\nSW S6 168(SP)\r\nSW S7 164(SP)\r\n\r\n;Register Guide:\r\n;S0, main array array left or right\r\n;S1, latest points left or right\r\n;S2, main array left or right\r\n;S3, player structure\r\n;S4, passing or future array\r\n;S5, left_points biggest\r\n;S6, right_points biggest\r\n;S7, estimated_coins\r\n;\r\n;Saved to Stack:\r\n;\r\n;current spaces remaining\t\t\t\t\t\t160\r\n;item_estimate\t\t\t\t\t\t\t\t\t156\r\n;which side is currently being counted\t\t\t152\r\n;p1 coins\t\t\t\t\t\t\t\t\t\t148\r\n;p1 stars\t\t\t\t\t\t\t\t\t\t144\r\n;p2 coins\t\t\t\t\t\t\t\t\t\t140\r\n;p2 stars\t\t\t\t\t\t\t\t\t\t136\r\n;p3 coins\t\t\t\t\t\t\t\t\t\t132\r\n;p3 stars\t\t\t\t\t\t\t\t\t\t128\r\n;p4 coins\t\t\t\t\t\t\t\t\t\t124\r\n;p4 stars\t\t\t\t\t\t\t\t\t\t120\r\n;p1 item1\t\t\t\t\t\t\t\t\t\t116\r\n;p1 item2\t\t\t\t\t\t\t\t\t\t112\r\n;p1 item3\t\t\t\t\t\t\t\t\t\t108\r\n;p2 item1\t\t\t\t\t\t\t\t\t\t104\r\n;p2 item2\t\t\t\t\t\t\t\t\t\t100\r\n;p2 item3\t\t\t\t\t\t\t\t\t\t96\r\n;p3 item1\t\t\t\t\t\t\t\t\t\t92\r\n;p3 item2\t\t\t\t\t\t\t\t\t\t88\r\n;p3 item3\t\t\t\t\t\t\t\t\t\t84\r\n;p4 item1\t\t\t\t\t\t\t\t\t\t80\r\n;p4 item2\t\t\t\t\t\t\t\t\t\t76\r\n;p4 item3\t\t\t\t\t\t\t\t\t\t72\r\n;wacky watch check\t\t\t\t\t\t\t\t68\r\n;landed on spot id\t\t\t\t\t\t\t\t64\r\n;storage in between JALs (not currently used)\t60\r\n;\r\n;\r\n;Space ID Guide:\r\n;\r\n;Values and their locations on the map https://imgur.com/a/tbSnJuz\r\n;\r\n;blue\t\t\t\t1\r\n;red\t\t\t\t2\r\n;chance time\t\t3\r\n;bowser\t\t\t\t4\r\n;item\t\t\t\t5\r\n;battle\t\t\t\t6\r\n;game guy\t\t\t7\r\n;\r\n;Noticed when passing and count as space traversed\r\n;bank\t\t\t\t8\r\n;\r\n;Noticed when passing and does not count as space traversed\r\n;item shop\t\t\t9\r\n;boo\t\t\t\t10\r\n;\r\n;Noticed when passing and does not count as space traversed only when that space is currently holding the star\r\n;(labeled with an S on the map)\r\n;Star0\t\t\t\t11\r\n;Star1\t\t\t\t12\r\n;Star2\t\t\t\t13\r\n;Star3\t\t\t\t14\r\n;Star4\t\t\t\t15\r\n;Star5\t\t\t\t16\r\n;Star6\t\t\t\t17\r\n;Star7\t\t\t\t18\r\n;\r\n;Board Exclusive Values:\r\n;G1\t\t\t\t\t19\r\n;G2\t\t\t\t\t20\r\n;G3\t\t\t\t\t21\r\n;G4\t\t\t\t\t22\r\n;G5\t\t\t\t\t23\r\n;G6\t\t\t\t\t24\r\n;G7\t\t\t\t\t25\r\n;G8\t\t\t\t\t26\r\n;G9\t\t\t\t\t27\r\n;G10\t\t\t\t28\r\n;G11\t\t\t\t29\r\n;Good Happening\t\t30\r\n;Bad Happening\t\t31\r\n\r\n\r\n\r\nLI t0, 0x807FFFFC\r\nSW r0, 0x0000 (t0)\r\n\r\nSB R0 68(SP) ; this is where the wacky watch check is stored\r\n\r\nJAL GetPlayerStruct\r\nLI A0 0\r\n\r\nLHU T1 10(V0)\r\nSH T1 148(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 144(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 116(SP)\r\nLBU T1 25(V0)\r\nSB T1 112(SP)\r\nLBU T1 26(V0)\r\nSB T1 108(SP)\r\n\r\nJAL GetPlayerStruct\r\nLI A0 1\r\n\r\nLHU T1 10(V0)\r\nSH T1 140(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 136(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 104(SP)\r\nLBU T1 25(V0)\r\nSB T1 100(SP)\r\nLBU T1 26(V0)\r\nSB T1 96(SP)\r\n\r\n\r\nJAL GetPlayerStruct\r\nLI A0 2\r\n\r\nLHU T1 10(V0)\r\nSH T1 132(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 128(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 92(SP)\r\nLBU T1 25(V0)\r\nSB T1 88(SP)\r\nLBU T1 26(V0)\r\nSB T1 84(SP)\r\n\r\n\r\nJAL GetPlayerStruct\r\nLI A0 3\r\n\r\nLHU T1 10(V0)\r\nSH T1 124(SP)\r\n\r\nLBU T1 14(V0)\r\nSB T1 120(SP)\r\n\r\nLBU T1 24(V0)\r\nSB T1 80(SP)\r\nLBU T1 25(V0)\r\nSB T1 76(SP)\r\nLBU T1 26(V0)\r\nSB T1 72(SP)\r\n\r\nLI T5 18\r\n\r\nLB T1 116(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 112(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 108(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 104(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 100(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 96(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 92(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 88(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 84(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 80(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 76(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nLB T1 72(SP)\r\nBEQ T1 T5 wacky_watch_has_been_detected\r\nNOP\r\n\r\nJ get_player_structure\r\nNOP\r\n\r\nwacky_watch_has_been_detected:\r\nLI T1 1\r\nSB T1 68(SP)\r\n\r\nget_player_structure:\r\nJAL GetPlayerStruct\r\nLI A0 -1\r\nMOVE S3 V0 ;loads player structure in S3\r\n\r\nLBU T0 23(S3) ; Status Flags\r\nSRL T0 T0 7 ; Shift bits to the right by 7 for Reverse flag\r\nBNEZ T0 exit ; exit if player is in reverse\r\nNOP\r\n\r\nJAL PlayerIsCPU ; makes sure that player is a cpu\r\nLI A0 -1 \r\n\r\nBEQZ V0 exit ; If 0, exit because it's a human\r\nNOP\r\n\r\n;======================================================================================================================================\r\n; This is where the big boi code begins \r\n;======================================================================================================================================\r\nDADDU S0 R0 R0\r\nDADDU S1 R0 R0\r\nDADDU S2 R0 R0\r\nDADDU S5 R0 R0\r\nDADDU S6 R0 R0\r\nSB R0 152(SP) ; this is where the direction is stored\r\n\r\nLUI T0 hi(current_star_spawn)\r\nADDIU T0 T0 lo(current_star_spawn) ; Address of current Star Spawn Cycle\r\nADDIU T1 T0 1 ; Address of first Star Spawn Index in the Cycle\r\nLBU T0 0(T0) ; Load Index of Star Spawn to T0\r\nADDU T0 T0 T1 ; Add to get address of current Star Spawn Index\r\nLBU T2 0(T0) ; Load current Star Spawn Index to T2\r\n\r\nADDIU T2 T2 11 ; adds 11 to star spawn index to match custom id system\r\n\r\nLUI T0 hi(skip_space_array)\r\nADDIU T0 T0 lo(skip_space_array) ; loads array with spaces that will be skipped into T0\r\n\r\nLUI T1 hi(save_to_passing_arrays_array)\r\nADDIU T1 T1 lo(save_to_passing_arrays_array) ; loads array with spaces that will stored for passby calculations into T1\r\n\r\n\r\nSB T2 0(T0) ; stores the current star's location into the skip space array\r\nSB T2 0(T1) ; stores the current star's location into the passby array\r\n\r\n;======================================================================================================================================\r\n; This is where the main loop begins\r\n;======================================================================================================================================\r\nLUI S0 hi(main_left_array_array)\r\nADDIU S0 S0 lo(main_left_array_array) ; loads the array that checks which array is to be checked next for its respective side\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\nswitch_to_right_array_array:\r\nLI T0 1\r\nSB T0 152(SP)\r\nLUI S0 hi(main_right_array_array)\r\nADDIU S0 S0 lo(main_right_array_array) ; loads the array that checks which array is to be checked next for its respective side\r\n\r\nmain_array_processing_loop:\r\nLBU T3 0(S0) ; loads the number in the array for arrays to start checking which array should be loaded next\r\nLBU T0 152(SP)\r\nBNEZ T0 right_arrays\r\nNOP\r\n\r\nleft_arrays:\r\n\r\nBEQZ T3 switch_to_right_array_array\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T3 T5 load_main_left_array_one\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T3 T5 load_main_left_array_two\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T3 T5 load_main_left_array_three\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T3 T5 load_main_left_array_four\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T3 T5 load_main_left_array_five\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T3 T5 load_main_left_array_six\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T3 T5 load_main_left_array_seven\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T3 T5 load_main_left_array_eight\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T3 T5 load_main_left_array_nine\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T3 T5 load_main_left_array_ten\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T3 T5 load_main_left_array_eleven\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T3 T5 load_main_left_array_twelve\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T3 T5 load_main_left_array_thirteen\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T3 T5 load_main_left_array_fourteen\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T3 T5 load_main_left_array_fifteen\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T3 T5 load_main_left_array_sixteen\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T3 T5 load_main_left_array_seventeen\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T3 T5 load_main_left_array_eighteen\r\nNOP\r\n\r\nLI T5 19\r\nBEQ T3 T5 load_main_left_array_nineteen\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T3 T5 load_main_left_array_twenty\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T3 T5 load_main_left_array_twenty_one\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T3 T5 load_main_left_array_twenty_two\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T3 T5 load_main_left_array_twenty_three\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T3 T5 load_main_left_array_twenty_four\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T3 T5 load_main_left_array_twenty_five\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T3 T5 load_main_left_array_twenty_six\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T3 T5 load_main_left_array_twenty_seven\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T3 T5 load_main_left_array_twenty_eight\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T3 T5 load_main_left_array_twenty_nine\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T3 T5 load_main_left_array_thirty\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T3 T5 load_main_left_array_thirty_one\r\nNOP\r\n\r\nLI T5 32\r\nBEQ T3 T5 load_main_left_array_thirty_two\r\nNOP\r\n\r\nLI T5 33\r\nBEQ T3 T5 load_main_left_array_thirty_three\r\nNOP\r\n\r\nLI T5 34\r\nBEQ T3 T5 load_main_left_array_thirty_four\r\nNOP\r\n\r\nLI T5 35\r\nBEQ T3 T5 load_main_left_array_thirty_five\r\nNOP\r\n\r\nLI T5 36\r\nBEQ T3 T5 load_main_left_array_thirty_six\r\nNOP\r\n\r\nLI T5 37\r\nBEQ T3 T5 load_main_left_array_thirty_seven\r\nNOP\r\n\r\nLI T5 38\r\nBEQ T3 T5 load_main_left_array_thirty_eight\r\nNOP\r\n\r\nLI T5 39\r\nBEQ T3 T5 load_main_left_array_thirty_nine\r\nNOP\r\n\r\nLI T5 40\r\nBEQ T3 T5 load_main_left_array_forty\r\nNOP\r\n\r\nLI T5 41\r\nBEQ T3 T5 load_main_left_array_forty_one\r\nNOP\r\n\r\nLI T5 42\r\nBEQ T3 T5 load_main_left_array_forty_two\r\nNOP\r\n\r\nLI T5 43\r\nBEQ T3 T5 load_main_left_array_forty_three\r\nNOP\r\n\r\nLI T5 44\r\nBEQ T3 T5 load_main_left_array_forty_four\r\nNOP\r\n\r\nLI T5 45\r\nBEQ T3 T5 load_main_left_array_forty_five\r\nNOP\r\n\r\nLI T5 46\r\nBEQ T3 T5 load_main_left_array_forty_six\r\nNOP\r\n\r\nLI T5 47\r\nBEQ T3 T5 load_main_left_array_forty_seven\r\nNOP\r\n\r\nLI T5 48\r\nBEQ T3 T5 load_main_left_array_forty_eight\r\nNOP\r\n\r\nLI T5 49\r\nBEQ T3 T5 load_main_left_array_forty_nine\r\nNOP\r\n\r\nLI T5 50\r\nBEQ T3 T5 load_main_left_array_fifty\r\nNOP\r\n\r\n;======================================================================================================================================\r\n;This is where we switch sides by saving 1 to the stack at 108 for it to be detected when comparing points\r\n;======================================================================================================================================\r\nright_arrays:\r\nBEQZ T3 Choose_Side\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T3 T5 load_main_right_array_one\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T3 T5 load_main_right_array_two\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T3 T5 load_main_right_array_three\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T3 T5 load_main_right_array_four\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T3 T5 load_main_right_array_five\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T3 T5 load_main_right_array_six\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T3 T5 load_main_right_array_seven\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T3 T5 load_main_right_array_eight\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T3 T5 load_main_right_array_nine\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T3 T5 load_main_right_array_ten\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T3 T5 load_main_right_array_eleven\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T3 T5 load_main_right_array_twelve\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T3 T5 load_main_right_array_thirteen\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T3 T5 load_main_right_array_fourteen\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T3 T5 load_main_right_array_fifteen\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T3 T5 load_main_right_array_sixteen\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T3 T5 load_main_right_array_seventeen\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T3 T5 load_main_right_array_eighteen\r\nNOP\r\n\r\nLI T5 19\r\nBEQ T3 T5 load_main_right_array_nineteen\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T3 T5 load_main_right_array_twenty\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T3 T5 load_main_right_array_twenty_one\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T3 T5 load_main_right_array_twenty_two\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T3 T5 load_main_right_array_twenty_three\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T3 T5 load_main_right_array_twenty_four\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T3 T5 load_main_right_array_twenty_five\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T3 T5 load_main_right_array_twenty_six\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T3 T5 load_main_right_array_twenty_seven\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T3 T5 load_main_right_array_twenty_eight\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T3 T5 load_main_right_array_twenty_nine\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T3 T5 load_main_right_array_thirty\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T3 T5 load_main_right_array_thirty_one\r\nNOP\r\n\r\nLI T5 32\r\nBEQ T3 T5 load_main_right_array_thirty_two\r\nNOP\r\n\r\nLI T5 33\r\nBEQ T3 T5 load_main_right_array_thirty_three\r\nNOP\r\n\r\nLI T5 34\r\nBEQ T3 T5 load_main_right_array_thirty_four\r\nNOP\r\n\r\nLI T5 35\r\nBEQ T3 T5 load_main_right_array_thirty_five\r\nNOP\r\n\r\nLI T5 36\r\nBEQ T3 T5 load_main_right_array_thirty_six\r\nNOP\r\n\r\nLI T5 37\r\nBEQ T3 T5 load_main_right_array_thirty_seven\r\nNOP\r\n\r\nLI T5 38\r\nBEQ T3 T5 load_main_right_array_thirty_eight\r\nNOP\r\n\r\nLI T5 39\r\nBEQ T3 T5 load_main_right_array_thirty_nine\r\nNOP\r\n\r\nLI T5 40\r\nBEQ T3 T5 load_main_right_array_forty\r\nNOP\r\n\r\nLI T5 41\r\nBEQ T3 T5 load_main_right_array_forty_one\r\nNOP\r\n\r\nLI T5 42\r\nBEQ T3 T5 load_main_right_array_forty_two\r\nNOP\r\n\r\nLI T5 43\r\nBEQ T3 T5 load_main_right_array_forty_three\r\nNOP\r\n\r\nLI T5 44\r\nBEQ T3 T5 load_main_right_array_forty_four\r\nNOP\r\n\r\nLI T5 45\r\nBEQ T3 T5 load_main_right_array_forty_five\r\nNOP\r\n\r\nLI T5 46\r\nBEQ T3 T5 load_main_right_array_forty_six\r\nNOP\r\n\r\nLI T5 47\r\nBEQ T3 T5 load_main_right_array_forty_seven\r\nNOP\r\n\r\nLI T5 48\r\nBEQ T3 T5 load_main_right_array_forty_eight\r\nNOP\r\n\r\nLI T5 49\r\nBEQ T3 T5 load_main_right_array_forty_nine\r\nNOP\r\n\r\nLI T5 50\r\nBEQ T3 T5 load_main_right_array_fifty\r\nNOP\r\n\r\n\r\n;======================================================================================================================================\r\n; This is where the arrays are loaded with all of the possible places you can go based on the current junction and roll\r\n;======================================================================================================================================\r\n\r\nload_main_left_array_one:\r\nLUI S2 hi(main_left_array_one)\r\nADDIU S2 S2 lo(main_left_array_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_two:\r\nLUI S2 hi(main_left_array_two)\r\nADDIU S2 S2 lo(main_left_array_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_three:\r\nLUI S2 hi(main_left_array_three)\r\nADDIU S2 S2 lo(main_left_array_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_four:\r\nLUI S2 hi(main_left_array_four)\r\nADDIU S2 S2 lo(main_left_array_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_five:\r\nLUI S2 hi(main_left_array_five)\r\nADDIU S2 S2 lo(main_left_array_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_six:\r\nLUI S2 hi(main_left_array_six)\r\nADDIU S2 S2 lo(main_left_array_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_seven:\r\nLUI S2 hi(main_left_array_seven)\r\nADDIU S2 S2 lo(main_left_array_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eight:\r\nLUI S2 hi(main_left_array_eight)\r\nADDIU S2 S2 lo(main_left_array_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_nine:\r\nLUI S2 hi(main_left_array_nine)\r\nADDIU S2 S2 lo(main_left_array_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_ten:\r\nLUI S2 hi(main_left_array_ten)\r\nADDIU S2 S2 lo(main_left_array_ten)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eleven:\r\nLUI S2 hi(main_left_array_eleven)\r\nADDIU S2 S2 lo(main_left_array_eleven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twelve:\r\nLUI S2 hi(main_left_array_twelve)\r\nADDIU S2 S2 lo(main_left_array_twelve)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirteen:\r\nLUI S2 hi(main_left_array_thirteen)\r\nADDIU S2 S2 lo(main_left_array_thirteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fourteen:\r\nLUI S2 hi(main_left_array_fourteen)\r\nADDIU S2 S2 lo(main_left_array_fourteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fifteen:\r\nLUI S2 hi(main_left_array_fifteen)\r\nADDIU S2 S2 lo(main_left_array_fifteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_sixteen:\r\nLUI S2 hi(main_left_array_sixteen)\r\nADDIU S2 S2 lo(main_left_array_sixteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_seventeen:\r\nLUI S2 hi(main_left_array_seventeen)\r\nADDIU S2 S2 lo(main_left_array_seventeen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_eighteen:\r\nLUI S2 hi(main_left_array_eighteen)\r\nADDIU S2 S2 lo(main_left_array_eighteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_nineteen:\r\nLUI S2 hi(main_left_array_nineteen)\r\nADDIU S2 S2 lo(main_left_array_nineteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty:\r\nLUI S2 hi(main_left_array_twenty)\r\nADDIU S2 S2 lo(main_left_array_twenty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_one:\r\nLUI S2 hi(main_left_array_twenty_one)\r\nADDIU S2 S2 lo(main_left_array_twenty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_two:\r\nLUI S2 hi(main_left_array_twenty_two)\r\nADDIU S2 S2 lo(main_left_array_twenty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_three:\r\nLUI S2 hi(main_left_array_twenty_three)\r\nADDIU S2 S2 lo(main_left_array_twenty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_four:\r\nLUI S2 hi(main_left_array_twenty_four)\r\nADDIU S2 S2 lo(main_left_array_twenty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_five:\r\nLUI S2 hi(main_left_array_twenty_five)\r\nADDIU S2 S2 lo(main_left_array_twenty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_six:\r\nLUI S2 hi(main_left_array_twenty_six)\r\nADDIU S2 S2 lo(main_left_array_twenty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_seven:\r\nLUI S2 hi(main_left_array_twenty_seven)\r\nADDIU S2 S2 lo(main_left_array_twenty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_eight:\r\nLUI S2 hi(main_left_array_twenty_eight)\r\nADDIU S2 S2 lo(main_left_array_twenty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_twenty_nine:\r\nLUI S2 hi(main_left_array_twenty_nine)\r\nADDIU S2 S2 lo(main_left_array_twenty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty:\r\nLUI S2 hi(main_left_array_thirty)\r\nADDIU S2 S2 lo(main_left_array_thirty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_one:\r\nLUI S2 hi(main_left_array_thirty_one)\r\nADDIU S2 S2 lo(main_left_array_thirty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_two:\r\nLUI S2 hi(main_left_array_thirty_two)\r\nADDIU S2 S2 lo(main_left_array_thirty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_three:\r\nLUI S2 hi(main_left_array_thirty_three)\r\nADDIU S2 S2 lo(main_left_array_thirty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_four:\r\nLUI S2 hi(main_left_array_thirty_four)\r\nADDIU S2 S2 lo(main_left_array_thirty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_five:\r\nLUI S2 hi(main_left_array_thirty_five)\r\nADDIU S2 S2 lo(main_left_array_thirty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_six:\r\nLUI S2 hi(main_left_array_thirty_six)\r\nADDIU S2 S2 lo(main_left_array_thirty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_seven:\r\nLUI S2 hi(main_left_array_thirty_seven)\r\nADDIU S2 S2 lo(main_left_array_thirty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_eight:\r\nLUI S2 hi(main_left_array_thirty_eight)\r\nADDIU S2 S2 lo(main_left_array_thirty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_thirty_nine:\r\nLUI S2 hi(main_left_array_thirty_nine)\r\nADDIU S2 S2 lo(main_left_array_thirty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty:\r\nLUI S2 hi(main_left_array_forty)\r\nADDIU S2 S2 lo(main_left_array_forty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_one:\r\nLUI S2 hi(main_left_array_forty_one)\r\nADDIU S2 S2 lo(main_left_array_forty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_two:\r\nLUI S2 hi(main_left_array_forty_two)\r\nADDIU S2 S2 lo(main_left_array_forty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_three:\r\nLUI S2 hi(main_left_array_forty_three)\r\nADDIU S2 S2 lo(main_left_array_forty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_four:\r\nLUI S2 hi(main_left_array_forty_four)\r\nADDIU S2 S2 lo(main_left_array_forty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_five:\r\nLUI S2 hi(main_left_array_forty_five)\r\nADDIU S2 S2 lo(main_left_array_forty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_six:\r\nLUI S2 hi(main_left_array_forty_six)\r\nADDIU S2 S2 lo(main_left_array_forty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_seven:\r\nLUI S2 hi(main_left_array_forty_seven)\r\nADDIU S2 S2 lo(main_left_array_forty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_eight:\r\nLUI S2 hi(main_left_array_forty_eight)\r\nADDIU S2 S2 lo(main_left_array_forty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_forty_nine:\r\nLUI S2 hi(main_left_array_forty_nine)\r\nADDIU S2 S2 lo(main_left_array_forty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_left_array_fifty:\r\nLUI S2 hi(main_left_array_fifty)\r\nADDIU S2 S2 lo(main_left_array_fifty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nload_main_right_array_one:\r\nLUI S2 hi(main_right_array_one)\r\nADDIU S2 S2 lo(main_right_array_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_two:\r\nLUI S2 hi(main_right_array_two)\r\nADDIU S2 S2 lo(main_right_array_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_three:\r\nLUI S2 hi(main_right_array_three)\r\nADDIU S2 S2 lo(main_right_array_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_four:\r\nLUI S2 hi(main_right_array_four)\r\nADDIU S2 S2 lo(main_right_array_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_five:\r\nLUI S2 hi(main_right_array_five)\r\nADDIU S2 S2 lo(main_right_array_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_six:\r\nLUI S2 hi(main_right_array_six)\r\nADDIU S2 S2 lo(main_right_array_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_seven:\r\nLUI S2 hi(main_right_array_seven)\r\nADDIU S2 S2 lo(main_right_array_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eight:\r\nLUI S2 hi(main_right_array_eight)\r\nADDIU S2 S2 lo(main_right_array_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_nine:\r\nLUI S2 hi(main_right_array_nine)\r\nADDIU S2 S2 lo(main_right_array_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_ten:\r\nLUI S2 hi(main_right_array_ten)\r\nADDIU S2 S2 lo(main_right_array_ten)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eleven:\r\nLUI S2 hi(main_right_array_eleven)\r\nADDIU S2 S2 lo(main_right_array_eleven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twelve:\r\nLUI S2 hi(main_right_array_twelve)\r\nADDIU S2 S2 lo(main_right_array_twelve)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirteen:\r\nLUI S2 hi(main_right_array_thirteen)\r\nADDIU S2 S2 lo(main_right_array_thirteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fourteen:\r\nLUI S2 hi(main_right_array_fourteen)\r\nADDIU S2 S2 lo(main_right_array_fourteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fifteen:\r\nLUI S2 hi(main_right_array_fifteen)\r\nADDIU S2 S2 lo(main_right_array_fifteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_sixteen:\r\nLUI S2 hi(main_right_array_sixteen)\r\nADDIU S2 S2 lo(main_right_array_sixteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_seventeen:\r\nLUI S2 hi(main_right_array_seventeen)\r\nADDIU S2 S2 lo(main_right_array_seventeen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_eighteen:\r\nLUI S2 hi(main_right_array_eighteen)\r\nADDIU S2 S2 lo(main_right_array_eighteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_nineteen:\r\nLUI S2 hi(main_right_array_nineteen)\r\nADDIU S2 S2 lo(main_right_array_nineteen)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty:\r\nLUI S2 hi(main_right_array_twenty)\r\nADDIU S2 S2 lo(main_right_array_twenty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_one:\r\nLUI S2 hi(main_right_array_twenty_one)\r\nADDIU S2 S2 lo(main_right_array_twenty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_two:\r\nLUI S2 hi(main_right_array_twenty_two)\r\nADDIU S2 S2 lo(main_right_array_twenty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_three:\r\nLUI S2 hi(main_right_array_twenty_three)\r\nADDIU S2 S2 lo(main_right_array_twenty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_four:\r\nLUI S2 hi(main_right_array_twenty_four)\r\nADDIU S2 S2 lo(main_right_array_twenty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_five:\r\nLUI S2 hi(main_right_array_twenty_five)\r\nADDIU S2 S2 lo(main_right_array_twenty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_six:\r\nLUI S2 hi(main_right_array_twenty_six)\r\nADDIU S2 S2 lo(main_right_array_twenty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_seven:\r\nLUI S2 hi(main_right_array_twenty_seven)\r\nADDIU S2 S2 lo(main_right_array_twenty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_eight:\r\nLUI S2 hi(main_right_array_twenty_eight)\r\nADDIU S2 S2 lo(main_right_array_twenty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_twenty_nine:\r\nLUI S2 hi(main_right_array_twenty_nine)\r\nADDIU S2 S2 lo(main_right_array_twenty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty:\r\nLUI S2 hi(main_right_array_thirty)\r\nADDIU S2 S2 lo(main_right_array_thirty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_one:\r\nLUI S2 hi(main_right_array_thirty_one)\r\nADDIU S2 S2 lo(main_right_array_thirty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_two:\r\nLUI S2 hi(main_right_array_thirty_two)\r\nADDIU S2 S2 lo(main_right_array_thirty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_three:\r\nLUI S2 hi(main_right_array_thirty_three)\r\nADDIU S2 S2 lo(main_right_array_thirty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_four:\r\nLUI S2 hi(main_right_array_thirty_four)\r\nADDIU S2 S2 lo(main_right_array_thirty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_five:\r\nLUI S2 hi(main_right_array_thirty_five)\r\nADDIU S2 S2 lo(main_right_array_thirty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_six:\r\nLUI S2 hi(main_right_array_thirty_six)\r\nADDIU S2 S2 lo(main_right_array_thirty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_seven:\r\nLUI S2 hi(main_right_array_thirty_seven)\r\nADDIU S2 S2 lo(main_right_array_thirty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_eight:\r\nLUI S2 hi(main_right_array_thirty_eight)\r\nADDIU S2 S2 lo(main_right_array_thirty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_thirty_nine:\r\nLUI S2 hi(main_right_array_thirty_nine)\r\nADDIU S2 S2 lo(main_right_array_thirty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty:\r\nLUI S2 hi(main_right_array_forty)\r\nADDIU S2 S2 lo(main_right_array_forty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_one:\r\nLUI S2 hi(main_right_array_forty_one)\r\nADDIU S2 S2 lo(main_right_array_forty_one)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_two:\r\nLUI S2 hi(main_right_array_forty_two)\r\nADDIU S2 S2 lo(main_right_array_forty_two)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_three:\r\nLUI S2 hi(main_right_array_forty_three)\r\nADDIU S2 S2 lo(main_right_array_forty_three)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_four:\r\nLUI S2 hi(main_right_array_forty_four)\r\nADDIU S2 S2 lo(main_right_array_forty_four)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_five:\r\nLUI S2 hi(main_right_array_forty_five)\r\nADDIU S2 S2 lo(main_right_array_forty_five)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_six:\r\nLUI S2 hi(main_right_array_forty_six)\r\nADDIU S2 S2 lo(main_right_array_forty_six)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_seven:\r\nLUI S2 hi(main_right_array_forty_seven)\r\nADDIU S2 S2 lo(main_right_array_forty_seven)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_eight:\r\nLUI S2 hi(main_right_array_forty_eight)\r\nADDIU S2 S2 lo(main_right_array_forty_eight)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_forty_nine:\r\nLUI S2 hi(main_right_array_forty_nine)\r\nADDIU S2 S2 lo(main_right_array_forty_nine)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n\r\nload_main_right_array_fifty:\r\nLUI S2 hi(main_right_array_fifty)\r\nADDIU S2 S2 lo(main_right_array_fifty)\r\n\r\nJ main_preprocessing\r\nNOP\r\n\r\n;======================================================================================================================================\r\n;This is where we loop through the chosen path to figure out where we will land and what passing spaces to store in the passing array\r\n;======================================================================================================================================\r\n\r\nmain_preprocessing:\r\n\r\nLHU S7 10(S3) ; stores player coins in S7 which is used to estimate what will happen to the coins based on spaces encountered in the future\r\n\r\nLUI T9 hi(cur_player_spaces_remaining)\r\nADDIU T9 T9 lo(cur_player_spaces_remaining)\r\nLW T9 0(T9) ; loads Current Spaces Remaining in T9\r\nSW T9 160(SP)\r\n\r\nADDU T2 R0 R0 ; set loop counter to 0\r\n\r\nLUI T0 hi(passing_space_array)\r\nADDIU T0 T0 lo(passing_space_array) ; loads passing space array into T0 so we can clear it\r\n\r\n\r\nLUI T1 hi(future_space_array)\r\nADDIU T1 T1 lo(future_space_array) ; loads future space array into T1 so we can clear it\r\n\r\n; this clears the loop for future\r\nloop_clearing:\r\n\r\nSB R0 0(T0)\r\nSB R0 0(T1)\r\n\r\nADDIU T0 T0 1\r\nADDIU T1 T1 1\r\nADDIU T2 T2 1\r\nSLTI V0 T2 60 ; if T2 is less than 60, V0 equals 1\r\n\r\nBNEZ V0 loop_clearing\r\nNOP\r\n\r\n\r\nLUI S4 hi(passing_space_array)\r\nADDIU S4 S4 lo(passing_space_array) ; loads passing space array into S4 so we can start adding passing by spaces to it\r\n\r\n; below is where we get the code to see how many items the player currently has which will be used to simulate changes to it for each possible path\r\nitem_estimate:\r\nLI T0 -1\r\nLB T1 24(S3) \r\n\r\nBEQ T0 T1 item_slot_one_is_empty\r\nNOP\r\n\r\nLB T1 25(S3) \r\nBEQ T0 T1 item_slot_two_is_empty\r\nNOP\r\n\r\nLB T1 26(S3) \r\nBEQ T0 T1 item_slot_three_is_empty\r\nNOP\r\n\r\nLI T9 3\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_one_is_empty:\r\nDADDU T9 R0 R0\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_two_is_empty:\r\nLI T9 1\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\nitem_slot_three_is_empty:\r\nLI T9 2\r\nSB T9 156(SP) ; saves the estimated item count to the stack\r\nJ main_space_processing_loop\r\nNOP\r\n\r\n\r\n; this loop is used to store passby spaces and figure out where the cpu will land\r\nmain_space_processing_loop:\r\n\r\nLBU T7 0(S2) ; looks at current value in S2 which is where this current array is stored\r\nBEQZ T7 array_is_too_short\r\nNOP\r\n\r\nLUI T5 hi(skip_space_array)\r\nADDIU T5 T5 lo(skip_space_array) ; sets T5 equal to the skip space array\r\n\r\nLUI T4 hi(save_to_passing_arrays_array)\r\nADDIU T4 T4 lo(save_to_passing_arrays_array) ; sets T4 equal to the passing arrays array\r\n\r\ncheck_if_space_will_not_count_towards_remaining_spaces_loop:\r\nLB T6 0(T5) ; loads skip space array's current value into T6\r\n\r\nBEQ T6 T7 add_one_to_main_space_processing_loop ; checks if the current space id matches skip space array's current value, if it matches then another loop will be added to account for the fact that it won't be counted towards the roll\r\nNOP\r\n\r\nreturn_to_check_if_space_will_not_count_towards_remaining_spaces_loop:\r\nBEQZ T6 check_if_space_is_counted_in_passing_array_loop ; checks if the skip space array's value is zero which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\nADDIU T5 T5 1 ; adds 1 to the count down for the check_if_space_will_not_count_towards_remaining_spaces_loop which goes to the next value in the skip space array\r\n\r\nJ check_if_space_will_not_count_towards_remaining_spaces_loop\r\nNOP\r\n\r\n\r\nadd_one_to_main_space_processing_loop:\r\nLW T9 160(SP)\r\nADDIU T9 T9 1 ; adds 1 to the count down for the main_space_processing_loop\r\nSW T9 160(SP)\r\nJ return_to_check_if_space_will_not_count_towards_remaining_spaces_loop\r\nNOP\r\n\r\n\r\ncheck_if_space_is_counted_in_passing_array_loop:\r\nLW T9 160(SP)\r\n\r\nLB T6 0(T4) ; loads passing space array's current value into T6\r\nBEQ T6 T7 save_to_passing_array ; checks if the current space id matches passing space array's current value, if it matches then it is added to the passing space array for point calculations later on\r\nNOP\r\n\r\nreturn_to_check_if_space_is_counted_in_passing_array_loop:\r\nBEQZ T6 return_to_main_loop ; checks if the passing space array's value is zero which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\nADDIU T4 T4 1 ; adds 1 to go to the next value in the passing space array\r\n\r\nJ check_if_space_is_counted_in_passing_array_loop\r\nNOP\r\n\r\n\r\nsave_to_passing_array:\r\nSB T7 0(S4) ; this is where values are stored in the passing array\r\nADDIU S4 S4 1\r\n\r\nJ return_to_check_if_space_is_counted_in_passing_array_loop\r\nNOP\r\n\r\n\r\nreturn_to_main_loop:\r\n\r\nADDIU S2 S2 1 ; adds to the main array to check the next value\r\n\r\nLW T9 160(SP)\r\nADDIU T9 T9 -1 ; removes one from roll to check next space\r\n\r\nBEQZ T9 passing_array_processing  ; checks if the roll count down value is zero which means it is the end of the main_space_processing_loop and it is time to move on\r\nNOP\r\n\r\nSW T9 160(SP)\r\n\r\n\r\nJ main_space_processing_loop\r\nNOP\r\n\r\n\r\n\r\npassing_array_processing:\r\nSB T7 64(SP) ; saves the currently landed on space id for future usage\r\nLUI S4 hi(passing_space_array)\r\nADDIU S4 S4 lo(passing_space_array) ; reloads passing space array into S4 to reset position\r\n\r\npassing_array_processing_loop:\r\nLB T6 0(S4) ; checks the current value of the passing space array\r\n\r\nBEQZ T6 land_processing ; checks if the value is 0 which means it is the end of the array and it is time to move on\r\nNOP\r\n\r\n\r\nLI T5 8\r\nBEQ T6 T5 bank_passing ; checks if the id matches the bank where it goes to remove 5 coins from the estimate\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T6 T5 item_shop_passing ; checks if the id matches the item shop where it adds and item to the item estimate to figure out the value of an item space later on\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T6 T5 boo_passing ; checks if the id matches boo where it calculates if it can steal stars or coins\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T6 T5 star_passing ; checks if the id matches the current star spawn, only the actual star spawn can appear because of when we put the star spawn id first in the passing array array so inactive star spawns will never be placed in the passing array\r\nNOP\r\n\r\n\r\n\r\nreturn_to_passing_array_processing:\r\nADDIU S4 S4 1 ; adds 1 to move to the next value in the passing array\r\n\r\nJ passing_array_processing_loop\r\nNOP\r\n\r\n\r\n; passing 1 $\r\nstar_passing:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 will_pass_star_with_enough_coins\r\nNOP\r\n\r\nBEQ S7 T5 will_pass_star_with_enough_coins ; checks if have enough coins to buy a star\r\nNOP\r\n\r\nJ return_to_passing_array_processing ; we do not have enough coins so passing the star will not be useful in any way so it will be ignored\r\nNOP\r\n\r\nwill_pass_star_with_enough_coins:\r\nADDIU S7 S7 -20 ; this subtracts 20 from the current coin estimate\r\nADDIU S1 S1 500 ; if we have enough points to buy a star 500 points will be added by default\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\n; passing 2 $\r\nitem_shop_passing:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nDADDU T2 R0 R0 ; sets T2 to 0\r\nSUBU T2 T0 T1 ; T2 tells you have many turns are left\r\nBGTZ T2 item_shop_passing_item_check ; if we are not on the last turn then we go to item_shop_passing_item_check\r\nNOP\r\nJ return_to_passing_array_processing ; this is only reached for the last turn so item shops are pointless\r\nNOP\r\n\r\n\r\n\r\nitem_shop_passing_item_check:\r\nLI T5 3\r\nLBU T9 156(SP) ; load item estimate for usage in near future\r\nSLT T0 T9 T5 ; makes sure we have less than 3 estimated items before moving on\r\nBNEZ T0 item_shop_passing_point_check ; if T0 is not zero then run this code\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\nitem_shop_passing_point_check:\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_twenty\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_twenty\r\nNOP\r\n\r\nLI T5 15\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_fifteen\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_fifteen\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_ten\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_ten\r\nNOP\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 give_shop_points_five\r\nNOP\r\n\r\nBEQ S7 T5 give_shop_points_five\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_twenty:\r\nADDIU S1 S1 10 ; adds points if the cpu has 20 coins and it will pass a shop 10 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_fifteen:\r\nADDIU S1 S1 7 ; adds points if the cpu has 15 coins and it will pass a shop 7 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_ten:\r\nADDIU S1 S1 5 ; adds points if the cpu has 10 coins and it will pass a shop 5 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ngive_shop_points_five:\r\nADDIU S1 S1 3 ; adds points if the cpu has 5 coins and it will pass a shop 3 points will be added by default\r\nADDIU T9 T9 1 ; adds 1 to the item estimate\r\nSB T9 156(SP) ; stores the new item estimate to where the old item estimate was\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n; passing 3 $\r\nboo_passing:\r\n\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_star_check\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_star_check ; checks if cpu has enough coins to steal a star\r\nNOP\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_coin_check\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_coin_check ; checks if cpu has enough coins to steal coins\r\nNOP\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nboo_passing_star_check:\r\nJAL GetSumOfPlayerStars ; Sum of all stars at V0\r\nNOP\r\n\r\nLBU T7 14(S3) ; puts current player's stars in T7\r\n\r\nBNE V0 T7 boo_passing_star_steal_estimate ; makes sure that there are stars for cpu to steal\r\nNOP\r\n\r\nBEQ V0 T7 boo_passing_coin_check ; jumps to coin stealing if there are no stars to steal\r\nNOP\r\n\r\nboo_passing_star_steal_estimate:\r\nADDIU S1 S1 100 ; adds points for passing boo and being able to steal a star 100 points will be added by default\r\nADDIU S7 S7 -50 ; removes 50 coins for assumed star steal\r\n\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nboo_passing_coin_check:\r\nJAL GetCurrentPlayerIndex ; returns current player's position\r\nNOP\r\nDADDU T1 R0 R0 ; clears T1\r\nDADDU T2 R0 R0 ; clears T2\r\nDADDU T3 R0 R0 ; clears T3\r\nDADDU T4 R0 R0 ; clears T4\r\n\r\ncheck_player_one_is_not_current_for_coins:\r\nBNEZ V0 load_player_one_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_coins:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_coins:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_coins:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_coins ; runs code if this position is occupied by a different player\r\nNOP\r\n\r\nplayer_coin_comparison_start:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_coin_comparison_one_two_is_larger\r\nNOP \r\n\r\nplayer_coin_comparison_three:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_coin_comparison_two_three_is_larger\r\nNOP\r\n\r\nplayer_coin_comparison_four:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_coin_comparison_three_four_is_larger\r\nNOP\r\n\r\n; the above code was used to store the largest coin amount belonging to another player in T1\r\n\r\nboo_passing_coin_check_final:\r\nLI T5 5\r\nSLT T6 T1 T5 ; if there are not enough coins to steal we set T6 to 1\r\nBNEZ T6 boo_passing_coin_check_failed ; we run this code to ignore boo if T6 is not zero\r\nNOP\r\n\r\nADDIU S1 S1 19; add boo points for coins 19 points will be added by default\r\nADDIU S7 S7 -5 ; subtract 5 for paying boo to steal coins\r\nLUI T0 hi(current_turn)\r\nADDIU T0 T0 lo(current_turn) ; Address of current turn\r\nLBU T0 0(T0) ; Load current turn to T0\r\n\r\n ; the code below estimates the minimum amount of money to be recieved from boo and code that we jumped to in previous bits of this boo code and we jump back to earlier\r\n\r\nLI T5 46\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_six\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_six ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 36\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_three\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_three ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 26\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_twenty_one\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_twenty_one ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 16\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_eighteen\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_eighteen ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nLI T5 6\r\nSLT T6 T5 T0\r\nBNEZ T6 coins_to_be_checked_sixteen\r\nNOP\r\n\r\nBEQ T0 T5 coins_to_be_checked_sixteen ; checks current turn to see what the minimum amount stolen from boo will be\r\nNOP\r\n\r\nSLT T6 T0 T5 ; checks current turn to see what the minimum amount stolen from boo will be\r\nBNEZ T6 coins_to_be_checked_six\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_six:\r\nLI T5 26\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_six\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_six\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_three:\r\nLI T5 23\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_three\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_three\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_twenty_one:\r\nLI T5 21\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_twenty_one\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_twenty_one\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_eighteen:\r\nLI T5 18\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_eighteen\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_eighteen\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\n\r\ncoins_to_be_checked_sixteen:\r\nLI T5 16\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_sixteen\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_sixteen\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\ncoins_to_be_checked_six:\r\nLI T5 6\r\nSLT T6 T5 T1\r\nBNEZ T6 coins_to_be_stolen_six\r\nNOP\r\n\r\nBEQ T1 T5 coins_to_be_stolen_six\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 not_enough_coins\r\nNOP\r\n\r\n\r\ncoins_to_be_stolen_twenty_six:\r\nADDIU S7 S7 26\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_twenty_three:\r\nADDIU S7 S7 23\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_twenty_one:\r\nADDIU S7 S7 21\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_eighteen:\r\nADDIU S7 S7 18\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_sixteen:\r\nADDIU S7 S7 16\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\ncoins_to_be_stolen_six:\r\nADDIU S7 S7 6\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nnot_enough_coins:\r\nADDU S7 S7 T1\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nboo_passing_coin_check_failed:\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\nload_player_one_coins:\r\nLBU T1 148(SP)\r\nJ check_player_two_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_two_coins:\r\nLHU T2 140(SP)\r\nJ check_player_three_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_three_coins:\r\nLHU T3 132(SP)\r\nJ check_player_four_is_not_current_for_coins\r\nNOP\r\n\r\nload_player_four_coins:\r\nLHU T4 124(SP)\r\nJ player_coin_comparison_start\r\nNOP\r\n\r\nplayer_coin_comparison_one_two_is_larger:\r\nMOVE T1 T2\r\nJ player_coin_comparison_three\r\nNOP\r\n\r\nplayer_coin_comparison_two_three_is_larger:\r\nMOVE T1 T3\r\nJ player_coin_comparison_four\r\nNOP\r\n\r\nplayer_coin_comparison_three_four_is_larger:\r\nMOVE T1 T4\r\nJ boo_passing_coin_check_final\r\nNOP\r\n\r\n\r\n\r\n\r\n; passing 4 $\r\nbank_passing:\r\n\r\nLI T5 5\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_five_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_five_from_estimated_coins ; runs code to estimate the loss of 5 coins if the cpu has at least 5 coins\r\nNOP\r\n\r\nSLT T6 S7 T5 ; runs code to clear out the estimated coins because the cpu has less than 5 coins\r\nBNEZ T6 set_estimated_coins_to_zero_for_bank_passing\r\nNOP\r\n\r\nset_estimated_coins_to_zero_for_bank_passing:\r\nDADDU S7 R0 R0 ; sets estimated coins to 0\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\nsubtract_five_from_estimated_coins:\r\nADDIU S7 S7 -5 ; subtracts 5 from estimated coins\r\nJ return_to_passing_array_processing\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nland_processing:\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLBU T8 64(SP)\r\n\r\n\r\nLI T5 1\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T8 T5 red_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T8 T5 chance_time_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T8 T5 bowser_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T8 T5 item_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T8 T5 battle_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T8 T5 game_guy_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T8 T5 bank_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T8 T5 blue_space ; runs the right code for the right ids\r\nNOP\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLI T5 19\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T8 T5 happening_space ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T8 T5 happening_space_good ; runs the right code for the right ids\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T8 T5 happening_space_bad ; runs the right code for the right ids\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 1 $\r\nitem_space:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nBEQ T1 T0 last_turn_so_item_spaces_cannot_give_items\r\nNOP\r\n\r\nLI T5 3\r\nLBU T9 156(SP)\r\n\r\nSLT T6 T9 T5 \r\nBNEZ T6 less_than_three_items\r\nNOP\r\n\r\nSLT T6 T5 T9\r\nBNEZ T6 too_many_items\r\nNOP\r\n\r\nBEQ T9 T5 too_many_items\r\nNOP\r\n\r\nless_than_three_items:\r\nADDIU S1 S1 18 ; adds points for landing on an item space and you can accept an item 18 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ntoo_many_items:\r\nADDIU S1 S1 12 ; adds points for landing on an item space while being full on items 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nlast_turn_so_item_spaces_cannot_give_items:\r\nADDIU S1 S1 12 ; adds points for landing on an item space in the last turn 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n; landing 2 $\r\nbank_space:\r\n\r\nADDIU S7 S7 5\r\n\r\nLUI T1 hi(bank_coin_total)\r\nADDIU T1 T1 lo(bank_coin_total) ; Address of coin count in bank\r\nLHU T1 0(T1) ; Load current coin count in bank to T1\r\n\r\nBEQZ T1 bank_is_empty ; runs code if bank is empty\r\nNOP\r\n\r\n\r\nADDU T0 T1 S7 ; gets an estimate for the bank coin count added with current coin estimate\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 coin_estimate_is_at_least_fifty\r\nNOP\r\n\r\nBEQ S7 T5 coin_estimate_is_at_least_fifty ; runs code if the cpu's coin count is at least 50 \r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 coin_estimate_is_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 coin_estimate_is_at_least_twenty ; runs code if the cpu's coin count is at least 20 \r\nNOP\r\n\r\n\r\nSLT T6 S7 T5  ; runs code if the cpu's coin count is less than 20\r\nBNEZ T6 coin_estimate_is_less_than_twenty\r\nNOP\r\n\r\n ; the code below calculates if points should be added based on the bank's current coin count or the estimated coin count along with the bank total which is all based on the cpu's currently estimated coins\r\ncoin_estimate_is_at_least_fifty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 coin_estimate_is_at_least_fifty_and_bank_coins_are_less_than_twenty\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T1 T5 coin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 coin_estimate_is_at_least_twenty_and_bank_coins_are_less_than_twenty\r\nNOP\r\n\r\n\r\n\r\ncoin_estimate_is_less_than_twenty:\r\n\r\nLI T5 50\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty\r\nNOP\r\n\r\n\r\nLI T5 20\r\nSLT T6 T5 T0\r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty\r\nNOP\r\n\r\nBEQ T0 T5 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty\r\nNOP\r\n\r\n\r\nSLT T6 T0 T5 \r\nBNEZ T6 coin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_less_than_twenty\r\nNOP\r\n\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_fifty:\r\nADDIU S1 S1 19 ; adds points if the cpu has at least 50 coins and the bank also has at least 50 coins 19 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_at_least_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has at least 50 coins and the bank also has at least 20 coins 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_fifty_and_bank_coins_are_less_than_twenty:\r\nADDIU S1 S1 17 ; adds points if the cpu has at least 50 coins and the bank also has less than 20 coins 17 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty:\r\nADDIU S1 S1 20 ; adds points if the cpu has at least 20 coins and the bank coin count + the cpu's current estimated coin count is at least 50 20 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_are_at_least_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has at least 20 coins and the bank coin count is at least 20 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_at_least_twenty_and_bank_coins_are_less_than_twenty:\r\nADDIU S1 S1 17 ; adds points if the cpu has at least 20 coins and the bank coin count is less than 20 17 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_fifty:\r\nADDIU S1 S1 20 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is at least 50 20 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_at_least_twenty:\r\nADDIU S1 S1 19 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is at least 20 19 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ncoin_estimate_is_less_than_twenty_and_bank_coins_added_with_coin_estimate_are_less_than_twenty:\r\nADDIU S1 S1 18 ; adds points if the cpu has less than 20 coins and the bank coin count + the cpu's current estimated coin count is less than 20 18 points will be added by default\r\nADDU S7 S7 T1 ; adding bank count to coin estimate\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbank_is_empty:\r\nADDIU S1 S1 14 ; adds points for an empty bank 14 points will be added by default\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 3 $\r\nblue_space:\r\nADDIU S1 S1 16 ; adds points for a blue space 16 points will be added by default\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\nLI T5 5\r\nSLT T6 T5 T2 ; runs code when it is not the last 5 turns\r\nBNEZ T6 add_coins_to_coin_estimate_normal_blue_space\r\nNOP\r\n\r\nSLT T6 T2 T5\r\nBNEZ T6 add_coins_to_coin_estimate_last_five_turn_blue_space\r\nNOP\r\n\r\nBEQ T2 T5 add_coins_to_coin_estimate_last_five_turn_blue_space ; runs code when it is the last 5 turns\r\nNOP\r\n\r\nadd_coins_to_coin_estimate_normal_blue_space:\r\nADDIU S7 S7 3 ; adds estimated coins for landing on a blue space when it is not the last 5 turns\r\nJ pre_future_point\r\nNOP\r\n\r\nadd_coins_to_coin_estimate_last_five_turn_blue_space:\r\nADDIU S7 S7 6 ; adds estimated coins for landing on a blue space during the last 5 turns\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 4 $\r\nbattle_space:\r\nLI T5 20\r\n\r\nSLT T6 T5 S7\r\nBNEZ T6 battle_space_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 battle_space_at_least_twenty ; loads code if the current estimated coins are at least 20\r\nNOP\r\n\r\nSLT T6 S7 T5  ; loads code if the current estimated coins are less than 20\r\nBNEZ T6 battle_space_less_than_twenty\r\nNOP\r\n\r\nbattle_space_at_least_twenty:\r\nADDIU S1 S1 6 ; adds points for a battle space when you have over 20 coins 6 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nbattle_space_less_than_twenty:\r\nADDIU S1 S1 12 ; adds points for a battle space when you have less than 20 coins 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n; landing 5 $\r\nred_space:\r\nADDIU S1 S1 8 ; adds points for a red space 8 points will be added by default\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\n\r\nLI T5 5\r\nSLT T6 T5 T2 ; runs code when it is not the last 5 turns\r\nBNEZ T6 remove_coins_to_coin_estimate_normal_red_space\r\nNOP\r\n\r\nSLT T6 T2 T5\r\nBNEZ T6 remove_coins_to_coin_estimate_last_five_turn_red_space\r\nNOP\r\n\r\nBEQ T2 T5 remove_coins_to_coin_estimate_last_five_turn_red_space ; runs code when it is the last 5 turns\r\nNOP\r\n\r\nremove_coins_to_coin_estimate_normal_red_space:\r\nLI T5 3\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_three_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_three_from_estimated_coins ; runs code for when coin count to be taken is not less than estimated coin count\r\nNOP\r\n\r\nSLT T6 S7 T5  ; runs code for when coin count to be taken is less than estimated coin count\r\nBNEZ T6 set_estimated_coins_to_zero_for_red_space_landing\r\nNOP\r\n\r\nsubtract_three_from_estimated_coins:\r\nADDIU S7 S7 -3 ; subtracts 3 coins from estimated coin count\r\nJ pre_future_point\r\nNOP\r\n\r\nremove_coins_to_coin_estimate_last_five_turn_red_space:\r\nLI T5 6\r\nSLT T6 T5 S7\r\nBNEZ T6 subtract_six_from_estimated_coins\r\nNOP\r\n\r\nBEQ S7 T5 subtract_six_from_estimated_coins ; runs code for when coin count to be taken is not less than estimated coin count\r\nNOP\r\n\r\nSLT T6 S7 T5  ; runs code for when coin count to be taken is less than estimated coin count\r\nBNEZ T6 set_estimated_coins_to_zero_for_red_space_landing\r\nNOP\r\n\r\nsubtract_six_from_estimated_coins:\r\nADDIU S7 S7 -6 ; subtracts 6 coins from estimated coin count\r\nJ pre_future_point\r\nNOP\r\n\r\nset_estimated_coins_to_zero_for_red_space_landing:\r\nDADDU S7 R0 R0 ; clears current coin count\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n; landing 6 $\r\nbowser_space:\r\n\r\nBEQZ S7 bowser_space_has_no_coins\r\nNOP\r\n\r\nBNEZ S7 bowser_space_has_coins\r\nNOP\r\n\r\nbowser_space_has_coins:\r\nADDIU S1 S1 6 ; adds points for landing on bowser when the CPU has coins 6 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\nbowser_space_has_no_coins:\r\nADDIU S1 S1 18 ; adds points for landing on bowser when the CPU has no coins 18 points will be added by default\r\n\r\nJAL GetPlayerPlacement ; 0-3 at V0\r\nLBU A0 29(S3) ; Player Index\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\nDADDU T2 R0 R0\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\n; the code below is to estimate the amount of coins that bowser will give when you have 0 coins based on placement and turn count\r\n\r\nLI T5 5\r\nSLT T6 T1 T5\r\nBNEZ T6 bowser_space_early_game\r\nNOP\r\n\r\nBEQ T1 T5 bowser_space_early_game\r\nNOP\r\n\r\nSLT T6 T5 T2\r\nBNEZ T6 bowser_space_late_game\r\nNOP\r\n\r\nBEQ T2 T5 bowser_space_late_game\r\nNOP\r\n\r\n\r\nbowser_space_mid_game:\r\n\r\nLI T5 1\r\nSLT T6 V0 T5\r\nBNEZ T6 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_fourty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_fourty_coins\r\nNOP\r\n\r\n\r\nbowser_space_early_game:\r\n\r\nLI T5 1\r\nSLT T6 V0 T5\r\nBNEZ T6 bowser_space_add_twenty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_twenty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_thirty_coins\r\nNOP\r\n\r\n\r\nbowser_space_late_game:\r\nBEQZ V0 bowser_space_add_thirty_coins\r\nNOP\r\n\r\nLI T5 1\r\nBEQ V0 T5 bowser_space_add_fourty_coins\r\nNOP\r\n\r\nLI T5 2\r\nSLT T6 T5 V0\r\nBNEZ T6 bowser_space_add_fifty_coins\r\nNOP\r\n\r\nBEQ V0 T5 bowser_space_add_fifty_coins\r\nNOP\r\n\r\n\r\n\r\nbowser_space_add_twenty_coins:\r\nADDIU S7 S7 20\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_thirty_coins:\r\nADDIU S7 S7 30\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_fourty_coins:\r\nADDIU S7 S7 40\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nbowser_space_add_fifty_coins:\r\nADDIU S7 S7 50\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\n\r\n; landing 7 $\r\ngame_guy_space:\r\nBEQZ S7 game_guy_zero_coins\r\nNOP\r\n\r\nLI T5 41\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_forty\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 game_guy_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 game_guy_less_than_twenty\r\nNOP\r\n\r\ngame_guy_at_least_forty:\r\nADDIU S1 S1 2 ; adds points when the cpu has at least 40 coins and they will land on gameguy 2 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\ngame_guy_at_least_twenty:\r\nADDIU S1 S1 4 ; adds points when the cpu has at least 20 coins and they will land on gameguy 4 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_less_than_twenty:\r\nADDIU S1 S1 14 ; adds points when the cpu has less than 20 coins and they will land on gameguy 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_zero_coins:\r\nADDIU S1 S1 12 ; adds points when the cpu will have 0 coins and they will land on gameguy 12 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n; landing 8 $\r\nchance_time_space:\r\n ; the code below tries to find the largest star count that does not belong to the CPU, it is similar to the code used to find the largest coin value not belonging to the current CPU\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\nDADDU T1 R0 R0\r\nDADDU T2 R0 R0\r\nDADDU T3 R0 R0\r\nDADDU T4 R0 R0\r\n\r\ncheck_player_one_is_not_current_for_stars:\r\nBNEZ V0 load_player_one_stars\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_stars:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_stars\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_stars:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_stars\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_stars:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_stars\r\nNOP\r\n\r\nplayer_star_comparison_start:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_star_comparison_one_two_is_larger\r\nNOP \r\n\r\nplayer_star_comparison_three:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_star_comparison_two_three_is_larger\r\nNOP\r\n\r\nplayer_star_comparison_four:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_star_comparison_three_four_is_larger\r\nNOP\r\n\r\nchance_time_star_check_final:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\nLBU T2 14(S3) ; puts current player's stars in T2\r\n\r\nLI T5 3 ; this value is the number of turns to be considered end game (S1 S1 might be useful to change)\r\nSLT T6 T5 T3  \r\nBNEZ T6 early_or_mid_game_chance_time ; runs code if it is not the last 3 turns\r\nNOP\r\n\r\nSLT T6 T3 T5\r\nBNEZ T6 end_game_chance_time\r\nNOP\r\n\r\nBEQ T3 T5 end_game_chance_time ; runs code if it is the last 3 turns\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time:\r\nADDIU T2 T2 2 ; adds a number that is the gap between the first place player's star count and the current player's star count. Changing this number will change the gap required between the cpu and 1st place to make chance time more appealing. By default this number is 2 which means that if the gap is larger than 2 then chance time will be more appealing (S1 S1 here for guidance to change stuff)\r\n\r\nSLT T6 T2 T1  \r\nBNEZ T6 early_or_mid_game_chance_time_add_points ; if the gap is larger than what was set above then it runs this code\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points if the gap between the cpu and 1st place was not large enough 4 points will be added by default\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_add_points:\r\nADDIU S1 S1 14 ; adds points if the gap between the cpu and 1st place was large enough 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nend_game_chance_time:\r\nSLT T6 T2 T1  ; checks if the star count is the same as 1st place\r\nBNEZ T6 end_game_chance_time_add_points\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points if the star count is the same as 1st place 4 points will be added by default\r\n\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nend_game_chance_time_add_points:\r\nADDIU S1 S1 14 ; adds points if the star count is less than 1st place 14 points will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\n\r\n\r\nload_player_one_stars:\r\nLBU T1 144(SP)\r\n\r\nJ check_player_two_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_two_stars:\r\nLBU T2 136(SP)\r\n\r\nJ check_player_three_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_three_stars:\r\nLBU T3 128(SP)\r\n\r\nJ check_player_four_is_not_current_for_stars\r\nNOP\r\n\r\nload_player_four_stars:\r\nLBU T4 120(SP)\r\n\r\nJ player_star_comparison_start\r\nNOP\r\n\r\nplayer_star_comparison_one_two_is_larger:\r\nMOVE T1 T2\r\n\r\nJ player_star_comparison_three\r\nNOP\r\n\r\nplayer_star_comparison_two_three_is_larger:\r\nMOVE T1 T3\r\n\r\nJ player_star_comparison_four\r\nNOP\r\n\r\nplayer_star_comparison_three_four_is_larger:\r\nMOVE T1 T4\r\n\r\nJ chance_time_star_check_final\r\nNOP\r\n\r\n\r\n\r\n; landing 9 $\r\nhappening_space:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\nLBU T9 64(SP)\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_one_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_two_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_three_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_four_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_five_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_six_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_seven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_eight_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_nine_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_ten_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_eleven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_one_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_two_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_three_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_four_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_five_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_six_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_seven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eight_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_nine_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_ten_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eleven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space\r\nNOP\r\n\r\nbonus_stars_are_not_enabled_happening_space:\r\n\r\nBEQZ T1 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_not_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_not_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\n\r\nLBU T9 64(SP)\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_one_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_two_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_three_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_four_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_five_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_six_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_seven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_eight_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_nine_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_ten_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_eleven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_one_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_two_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_three_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_four_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_five_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_six_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_seven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eight_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_nine_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_ten_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_eleven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space\r\nNOP\r\n\r\nbonus_stars_are_enabled_happening_space:\r\nBEQZ T1 happening_space_bonus_stars_are_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_bonus_stars_are_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n; landing 20 $\r\nhappening_space_good:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_good_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_good_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_good_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_good_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n; landing 21 $\r\nhappening_space_bad:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_bad_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_bad_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_bad_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\nhappening_space_bad_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nBNEZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 12 ; adds points for landing on this space when it is unknown and there are no bonus stars and it is not the last turn, default is 12\r\n\r\nADDIU S1 S1 60 ; adds points for future spaces instead of using the future array code, default is 60\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is unknown and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 20 ; adds points for landing on this space when it is good and there are no bonus stars and it is not the last turn, default is 20\r\n\r\nADDIU S1 S1 100 ; adds points for future spaces instead of using the future array code, default is 100\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is good and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 0 ; adds points for landing on this space when it is bad and there are no bonus stars and it is not the last turn, default is 0\r\n\r\nADDIU S1 S1 0 ; adds points for future spaces instead of using the future array code, default is 0\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_not_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 6 ; adds points for landing on this space when it is bad and there are no bonus stars and it is the last turn, default is 6\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 14 ; adds points for landing on this space when it is unknown and there are bonus stars and it is not the last turn, default is 14\r\n\r\nADDIU S1 S1 70 ; adds points for future spaces instead of using the future array code, default is 70\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is unknown and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 22 ; adds points for landing on this space when it is good and there are bonus stars and it is not the last turn, default is 22\r\n\r\nADDIU S1 S1 110 ; adds points for future spaces instead of using the future array code, default is 110\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is good and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 2 ; adds points for landing on this space when it is bad and there are bonus stars and it is not the last turn, default is 2\r\n\r\nADDIU S1 S1 0 ; adds points for future spaces instead of using the future array code, default is 0\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\nhappening_space_bonus_stars_are_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_bonus_stars_are_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 8 ; adds points for landing on this space when it is bad and there are bonus stars and it is the last turn, default is 8\r\n\r\nJ pick_point_comparison\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\npre_future_point:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nLB T5 68(SP)\r\nBNEZ T5 wacky_watch_might_extend_game\r\nNOP\r\n\r\nBEQ T0 T1 pick_point_comparison\r\nNOP\r\n\r\nwacky_watch_might_extend_game:\r\nLUI S4 hi(future_space_array)\r\nADDIU S4 S4 lo(future_space_array) ; loads the future space array into S4\r\nLI T8 10 ; sets T8 to 10 which will be used to estimate the next 10 spaces\r\n\r\nfuture_point_loop:\r\nLBU T7 0(S2) ; loads the currently selected space in S2 to T7\r\n\r\nBEQZ T7 array_is_too_short\r\nNOP\r\n\r\nLUI T5 hi(skip_space_array)\r\nADDIU T5 T5 lo(skip_space_array) ; loads skip space array into T5 also used for resetting position as it loops\r\n\r\ncheck_if_space_will_not_count_towards_remaining_future_spaces_loop:\r\nLB T6 0(T5) ; loads the currently selected space in T5 to T6\r\n\r\nBEQ T6 T7 add_one_to_future_point_loop ; compares id in main space array to the skip space array to see if one should be added in the estimation\r\nNOP\r\n\r\nBEQZ T6 return_to_future_point_loop ; if the id in T6 is 0 that means the skip space array is over and it is time to move on\r\nNOP\r\n\r\nADDIU T5 T5 1 ; adds 1 to T5 to check the next spot's info\r\n\r\nJ check_if_space_will_not_count_towards_remaining_future_spaces_loop\r\nNOP\r\n\r\nadd_one_to_future_point_loop:\r\nADDIU T8 T8 1 ; adds 1 to the estimated roll because a passing space/event has been detected\r\n\r\nreturn_to_future_point_loop:\r\n\r\nBEQZ T8 future_array_processing ; if T8 is zero that means we have reached the 10 spaces and any passing spaces we may have encountered, the position for this here is very important to make sure we don't miscount spaces\r\nNOP\r\n\r\nSB T7 0(S4) ; writes the current space ID to the future space array for point evaluation later on\r\nADDIU S4 S4 1 ; moves to the next value in S4 to prevent overwriting the ID we just wrote\r\nADDIU S2 S2 1 ; adds 1 to S2 to check the next space ID\r\nADDIU T8 T8 -1 ; removes 1 from roll to check next space\r\n\r\nJ future_point_loop\r\nNOP\r\n\r\n\r\n\r\n; future 1 $\r\nstar_passing_future:\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\n\r\n; the code below checks if there are any lucky lamps or magic lamps, if it finds a magic lamp then it checks if that player has enough coins to use it to get the star and then it picks between adding points if there are no items that can prevent the cpu from getting the star or not\r\n\r\ncheck_player_one_is_not_current_for_items:\r\nBNEZ V0 load_player_one_items\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_items:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_items\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_items:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_items\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_items:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_items\r\nNOP\r\n\r\n\r\nstar_passing_future_no_item:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_no_item_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_no_item_at_least_twenty\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_no_item_at_least_ten\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_no_item_at_least_ten\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 star_passing_future_no_item_less_than_ten\r\nNOP\r\n\r\n\r\n\r\nstar_passing_future_item:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_item_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_item_at_least_twenty\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 star_passing_future_item_at_least_ten\r\nNOP\r\n\r\nBEQ S7 T5 star_passing_future_item_at_least_ten\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 star_passing_future_item_less_than_ten\r\nNOP\r\n\r\n\r\n\r\n\r\nstar_passing_future_item_at_least_twenty:\r\nADDIU S1 S1 50 ; adds points when the star is within the next 10 spaces and the coin estimate is enough to buy the star, but another player has an item that may prevent the cpu from getting the star 50 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_item_at_least_ten:\r\nADDIU S1 S1 25 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star but is large enough that winning a minigame can give the cpu enough coins, but another player has an item that may prevent the cpu from getting the star 25 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_item_less_than_ten:\r\nADDIU S1 S1 10 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star even if the cpu wins a minigame, but another player has an item that may prevent the cpu from getting the star 10 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_at_least_twenty:\r\nADDIU S1 S1 100 ; adds points when the star is within the next 10 spaces and the coin estimate is enough to buy the star, and no other players have items that will prevent the cpu from getting the star 100 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_at_least_ten:\r\nADDIU S1 S1 50 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star but will be if a minigame is won, and no other players have items that will prevent the cpu from getting the star 50 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nstar_passing_future_no_item_less_than_ten:\r\nADDIU S1 S1 25 ; adds points when the star is within the next 10 spaces and the coin estimate is not enough to buy the star even if the cpu wins a minigame, and no other players have items that will prevent the cpu from getting the star 25 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nload_player_one_items:\r\nLBU T0 116(SP)\r\n\r\nLHU T1 148(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_one_coin_check\r\nNOP\r\n\r\n\r\n\r\ncheck_player_one_items_two:\r\nLBU T0 112(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_one_coin_check\r\nNOP\r\n\r\ncheck_player_one_items_three:\r\nLBU T0 108(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_one_coin_check\r\nNOP\r\n\r\nJ check_player_two_is_not_current_for_items\r\nNOP\r\n\r\nload_player_two_items:\r\nLBU T0 104(SP)\r\n\r\nLHU T1 140(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_two_coin_check\r\nNOP\r\n\r\ncheck_player_two_items_two:\r\nLBU T0 100(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_two_coin_check\r\nNOP\r\n\r\ncheck_player_two_items_three:\r\nLBU T0 96(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_two_coin_check\r\nNOP\r\n\r\nJ check_player_three_is_not_current_for_items\r\nNOP\r\n\r\nload_player_three_items:\r\nLBU T0 92(SP)\r\n\r\nLHU T1 132(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_three_coin_check\r\nNOP\r\n\r\ncheck_player_three_items_two:\r\nLBU T0 88(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_three_coin_check\r\nNOP\r\n\r\ncheck_player_three_items_three:\r\nLBU T0 84(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_three_coin_check\r\nNOP\r\n\r\nJ check_player_four_is_not_current_for_items\r\nNOP\r\n\r\n\r\nload_player_four_items:\r\nLBU T0 80(SP)\r\n\r\nLHU T1 124(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_one_player_four_coin_check\r\nNOP\r\n\r\ncheck_player_four_items_two:\r\nLBU T0 76(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_two_player_four_coin_check\r\nNOP\r\n\r\ncheck_player_four_items_three:\r\nLBU T0 72(SP)\r\n\r\nLI T5 9\r\nBEQ T0 T5 star_passing_future_item\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T0 T5 star_passing_future_item_three_player_four_coin_check\r\nNOP\r\n\r\nJ star_passing_future_no_item\r\nNOP\r\n\r\n\r\n\r\nstar_passing_future_item_one_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_one_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_one_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_one_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_two_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_two_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_three_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_three_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_is_not_current_for_items\r\nNOP\r\n\r\nstar_passing_future_item_one_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_items_two\r\nNOP\r\n\r\nstar_passing_future_item_two_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ check_player_four_items_three\r\nNOP\r\n\r\nstar_passing_future_item_three_player_four_coin_check:\r\nLI T5 20\r\n\r\nSLT T6 T5 T1\r\nBNEZ T6 star_passing_future_item\r\nNOP\r\n\r\nBEQ T1 T5 star_passing_future_item\r\nNOP\r\n\r\nJ star_passing_future_no_item\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 2 $\r\nitem_shop_passing_future:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nDADDU T2 R0 R0\r\n\r\nSUBU T2 T0 T1; T2 tells you have many turns are left\r\n\r\nLI T5 1\r\nSLT T6 T5 T2  \r\nBNEZ T6 item_shop_passing_future_enough_turns ; makes sure that when it might be possible to reach the store it will not be the last turn\r\nNOP\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_enough_turns:\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_twenty_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_twenty_coins\r\nNOP\r\n\r\nLI T5 15\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_fifteen_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_fifteen_coins\r\nNOP\r\n\r\nLI T5 10\r\nSLT T6 T5 S7\r\nBNEZ T6 item_shop_passing_future_add_points_for_ten_coins\r\nNOP\r\n\r\nBEQ S7 T5 item_shop_passing_future_add_points_for_ten_coins\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 item_shop_passing_future_add_points_for_less_than_ten_coins\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_twenty_coins:\r\nADDIU S1 S1 10 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 20, 10 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_fifteen_coins:\r\nADDIU S1 S1 7 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 15, 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_ten_coins:\r\nADDIU S1 S1 5 ; adds points if a store is within the next 10 spaces and the current coin estimate is at least 10, 5 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nitem_shop_passing_future_add_points_for_less_than_ten_coins:\r\nADDIU S1 S1 3 ; adds points if a store is within the next 10 spaces and the current coin estimate is less than 10, 3 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n; future 3 $\r\nboo_passing_future:\r\nLI T5 50\r\nSLT T6 T5 S7\r\nBNEZ T6 boo_passing_future_can_steal_stars\r\nNOP\r\n\r\nBEQ S7 T5 boo_passing_future_can_steal_stars\r\nNOP\r\n\r\nboo_passing_future_cannot_steal_stars:\r\nADDIU S1 S1 35 ; adds points for being able to steal coins using boo within the next 10 spaces 35 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nboo_passing_future_can_steal_stars:\r\nJAL GetSumOfPlayerStars ; Sum of all stars at V0\r\nNOP\r\n\r\nLBU T0 14(S3)\r\n\r\nSLT T6 T0 V0  \r\nBNEZ T6 boo_passing_future_can_steal_stars_gameguy_check\r\nNOP\r\n\r\nJ boo_passing_future_cannot_steal_stars\r\nNOP\r\n\r\n\r\nboo_passing_future_can_steal_stars_gameguy_check:\r\nLBU T9 64(SP)\r\nLI T5 7 \r\nBEQ T9 T5 boo_passing_future_can_steal_stars_gameguy_confirmed\r\nNOP\r\n\r\nADDIU S1 S1 75 ; adds points for being able to steal stars using boo within the next 10 spaces 75 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nboo_passing_future_can_steal_stars_gameguy_confirmed:\r\nADDIU S1 S1 55 ; adds points for being able to steal stars using boo within the next 10 spaces but the cpu will land on gameguy 55 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 4 $\r\nitem_space_future:\r\nADDIU S1 S1 9 ; adds points for future item space within the next 10 spaces 9 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 5 $\r\nbank_space_future:\r\nLUI T1 hi(bank_coin_total)\r\nADDIU T1 T1 lo(bank_coin_total) ; Address of coin count in bank\r\nLHU T1 0(T1) ; Load current coin count in bank to T1\r\n\r\nLI T5 50\r\nSLT T6 T5 T1\r\nBNEZ T6 bank_space_future_at_least_fifty_coins\r\nNOP\r\n\r\nBEQ T1 T5 bank_space_future_at_least_fifty_coins\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 T1\r\nBNEZ T6 bank_space_future_at_least_twenty_coins\r\nNOP\r\n\r\nBEQ T1 T5 bank_space_future_at_least_twenty_coins\r\nNOP\r\n\r\nSLT T6 T1 T5 \r\nBNEZ T6 bank_space_future_less_than_twenty_coins\r\nNOP\r\n\r\nbank_space_future_at_least_fifty_coins:\r\nADDIU S1 S1 7 ; adds points for a bank space within the next 10 spaces that has at least 50 coins 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbank_space_future_at_least_twenty_coins:\r\nADDIU S1 S1 6 ; adds points for a bank space within the next 10 spaces that has at least 20 coins 6 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbank_space_future_less_than_twenty_coins:\r\nADDIU S1 S1 5 ; adds points for a bank space within the next 10 spaces that has less than 20 coins 5 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 6 $\r\nblue_space_future:\r\nADDIU S1 S1 8 ; adds points for a blue space within the next 10 spaces 8 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 7 $\r\nbattle_space_future:\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 battle_space_future_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 battle_space_future_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 battle_space_future_less_than_twenty\r\nNOP\r\n\r\nbattle_space_future_at_least_twenty:\r\nADDIU S1 S1 3 ; adds points for a battle space within the next 10 spaces when the cpu's coin estimate is at least 20, 3 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nbattle_space_future_less_than_twenty:\r\nADDIU S1 S1 6 ; adds points for a battle space within the next 10 spaces when the cpu's coin estimate is less than 20, 6 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n; future 8 $\r\nred_space_future:\r\nADDIU S1 S1 4 ; adds points for a red space within the next 10 spaces 4 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 9 $\r\nbowser_space_future:\r\nADDIU S1 S1 3 ; adds points for a bowser space within the next 10 spaces 3 points will be added by default\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n; future 10 $\r\ngame_guy_space_future:\r\n\r\nLI T5 41\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_at_least_forty_future\r\nNOP\r\n\r\nLI T5 20\r\nSLT T6 T5 S7\r\nBNEZ T6 game_guy_space_future_at_least_twenty\r\nNOP\r\n\r\nBEQ S7 T5 game_guy_space_future_at_least_twenty\r\nNOP\r\n\r\nSLT T6 S7 T5 \r\nBNEZ T6 game_guy_space_future_less_than_twenty\r\nNOP\r\n\r\n\r\ngame_guy_at_least_forty_future:\r\nADDIU S1 S1 1 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is at least 40, 1 point will be added by default\r\n\r\nJ pre_future_point\r\nNOP\r\n\r\ngame_guy_space_future_at_least_twenty:\r\nADDIU S1 S1 2 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is at least 20, 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\ngame_guy_space_future_less_than_twenty:\r\nADDIU S1 S1 7 ; adds points for a future game guy space within the next 10 spaces while the coin estimate is less than 20, 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n; future 11 $\r\nchance_time_space_future:\r\n; the code below finds the largest star count belonging to a different player\r\nJAL GetCurrentPlayerIndex\r\nNOP\r\nDADDU T1 R0 R0\r\nDADDU T2 R0 R0\r\nDADDU T3 R0 R0\r\nDADDU T4 R0 R0\r\n\r\ncheck_player_one_is_not_current_for_stars_future:\r\nBNEZ V0 load_player_one_stars_future\r\nNOP\r\n\r\ncheck_player_two_is_not_current_for_stars_future:\r\nLI T5 1\r\nBNE V0 T5 load_player_two_stars_future\r\nNOP\r\n\r\ncheck_player_three_is_not_current_for_stars_future:\r\nLI T5 2\r\nBNE V0 T5 load_player_three_stars_future\r\nNOP\r\n\r\ncheck_player_four_is_not_current_for_stars_future:\r\nLI T5 3\r\nBNE V0 T5 load_player_four_stars_future\r\nNOP\r\n\r\nplayer_star_comparison_start_future:\r\nSLT T6 T1 T2 \r\nBNEZ T6 player_star_comparison_one_two_is_larger_future\r\nNOP \r\n\r\nplayer_star_comparison_three_future:\r\nSLT T6 T1 T3 \r\nBNEZ T6 player_star_comparison_two_three_is_larger_future\r\nNOP\r\n\r\nplayer_star_comparison_four_future:\r\nSLT T6 T1 T4 \r\nBNEZ T6 player_star_comparison_three_four_is_larger_future\r\nNOP\r\n\r\nchance_time_star_check_final_future:\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\n\r\n\r\nLBU T2 14(S3) ; puts current player's stars in T2\r\n\r\nLI T5 3 ; this value is the number of turns to be considered end game (S1 S1 might be useful to change)\r\n\r\nSLT T6 T5 T3  \r\nBNEZ T6 early_or_mid_game_chance_time_future\r\nNOP\r\n\r\nSLT T6 T3 T5\r\nBNEZ T6 end_game_chance_time_future\r\nNOP\r\n\r\nBEQ T3 T5 end_game_chance_time_future\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_future:\r\nADDIU T2 T2 2 ; adds a number that is the gap between the first place player's star count and the current player's star count. Changing this number will change the gap required to make chance time more appealing. By default this number is 2 which means that if the gap is larger than 2 then chance time will be more appealing (S1 S1 here for guidance to change stuff)\r\n\r\nSLT T6 T2 T1  \r\nBNEZ T6 early_or_mid_game_chance_time_future_add_points\r\nNOP\r\n\r\nADDIU S1 S1 2 ; adds points for a chance time within the next 10 spaces when the gap between the cpu and first place is not large enough and it is not the end game 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nearly_or_mid_game_chance_time_future_add_points:\r\nADDIU S1 S1 7 ; adds points for a chance time within the next 10 spaces when the gap between the cpu and first place is large enough and it is not the end game 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nend_game_chance_time_future:\r\nSLT T6 T2 T1 \r\nBNEZ T6 end_game_chance_time_future_add_points\r\nNOP\r\n\r\nADDIU S1 S1 2 ; adds points for a chance time within the next 10 spaces when there is no gap between the cpu and first place and it is the end game 2 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nend_game_chance_time_future_add_points:\r\nADDIU S1 S1 7 ; adds points for a chance time within the next 10 spaces when there is a gap between the cpu and first place and it is the end game 7 points will be added by default\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nload_player_one_stars_future:\r\nLBU T1 144(SP)\r\nJ check_player_two_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_two_stars_future:\r\nLBU T2 136(SP)\r\nJ check_player_three_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_three_stars_future:\r\nLBU T3 128(SP)\r\nJ check_player_four_is_not_current_for_stars_future\r\nNOP\r\n\r\nload_player_four_stars_future:\r\nLBU T4 120(SP)\r\nJ player_star_comparison_start_future\r\nNOP\r\n\r\nplayer_star_comparison_one_two_is_larger_future:\r\nMOVE T1 T2\r\nJ player_star_comparison_three_future\r\nNOP\r\n\r\nplayer_star_comparison_two_three_is_larger_future:\r\nMOVE T1 T3\r\nJ player_star_comparison_four_future\r\nNOP\r\n\r\nplayer_star_comparison_three_four_is_larger_future:\r\nMOVE T1 T4\r\nJ chance_time_star_check_final_future\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 12 $\r\nhappening_space_future:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_one_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_two_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_three_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_four_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_five_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_six_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_seven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eight_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_nine_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_ten_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eleven_bonus_stars_are_not_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_one_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_two_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_three_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_four_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_five_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_six_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_seven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eight_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_nine_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_ten_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eleven_bonus_stars_are_not_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_not_enabled_happening_space_future\r\nNOP\r\n\r\nbonus_stars_are_not_enabled_happening_space_future:\r\nBEQZ T1 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn ; makes sure it is the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\nLI T5 19\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_one_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_two_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_three_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_four_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_five_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_six_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_seven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eight_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_nine_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_ten_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 load_memory_address_for_happening_space_future_eleven_bonus_stars_are_enabled ; checks space id to get the right memory address for the happening space\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_one_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 1(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_two_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 2(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_three_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 3(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_four_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 4(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_five_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 5(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_six_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 6(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_seven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 7(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eight_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 8(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_nine_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 9(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_ten_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 10(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nload_memory_address_for_happening_space_future_eleven_bonus_stars_are_enabled:\r\nLUI T1 0x800C ; 0x800C0000\r\nORI T1 T1 0xD096 ; 0x800CD096, Warp Dest Address\r\nLBU T1 11(T1) ; Load info for happening space to T1\r\nJ bonus_stars_are_enabled_happening_space_future\r\nNOP\r\n\r\nbonus_stars_are_enabled_happening_space_future:\r\nBEQZ T1 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown ; checks if the happening space's location is unknown\r\nNOP\r\nLI T5 1\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_enabled_and_space_is_good ; checks if the happening space's location is the lucky star\r\nNOP\r\nLI T5 2\r\n\r\nBEQ T1 T5 happening_space_future_bonus_stars_are_enabled_and_space_is_bad ; checks if the happening space's location is the unlucky star\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad:\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of happening space location/bonus stars/turn count\r\nNOP\r\n\r\n\r\n; future 23 $\r\nhappening_space_future_good:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_good_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_good_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_good_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_good_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n; future 24 $\r\nhappening_space_future_bad:\r\n\r\nLUI T0 hi(hidden_block_star_space_index)\r\nADDIU T0 T0 lo(hidden_block_star_space_index) ; Address of hidden block star spaces\r\nLB T0 0(T0) ; Load hidden block star spaces to T0\r\n\r\nLUI T2 hi(hidden_block_item_space_index)\r\nADDIU T2 T2 lo(hidden_block_item_space_index) ; Address of hidden block item spaces\r\nLB T2 0(T2) ; Load hidden block item spaces to T2\r\n\r\nLUI T3 hi(hidden_block_coins_space_index)\r\nADDIU T3 T3 lo(hidden_block_coins_space_index) ; Address of hidden block coin spaces\r\nLB T3 0(T3) ; Load hidden block coin spaces to T3\r\n\r\nLI T5 -1\r\nBNE T5 T0 happening_space_future_bad_bonus_stars_are_enabled ; checks to see if these hidden blocks exist, hidden blocks will only appear if bonus stars are enabled and enough of the right kind of spaces exist on the board\r\nNOP\r\n\r\nBNE T5 T2 happening_space_future_bad_bonus_stars_are_enabled ; checking all types of hidden blocks just in-case some of them don't always appear because idk specifics of hidden block mechanics\r\nNOP\r\n\r\nBNE T5 T3 happening_space_future_bad_bonus_stars_are_enabled ; same as above\r\nNOP\r\n\r\n\r\n\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\nhappening_space_future_bad_bonus_stars_are_enabled:\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T2 hi(current_turn)\r\nADDIU T2 T2 lo(current_turn) ; Address of current turn\r\nLBU T2 0(T2) ; Load current turn to T2\r\nSUBU T3 T0 T2; T3 tells you have many turns are left\r\nADDIU T3 T3 -1; adds -1 to T3 to make it count the second to last turn\r\n\r\n\r\nBNEZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn ; makes sure it is not the last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\nBEQZ T3 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn ; makes sure it is the second to last turn and directs to point addition for this combo of bonus stars/turn count\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 6 ; adds points for being in the next 10 spaces when it is unknown and there are no bonus stars and it is not the last turn, default is 6\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is unknown and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 10 ; adds points for being in the next 10 spaces when it is good and there are no bonus stars and it is not the last turn, default is 10\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is good and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 0 ; adds points for being in the next 10 spaces when it is bad and there are no bonus stars and it is not the last turn, default is 0\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_not_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 3 ; adds points for being in the next 10 spaces when it is bad and there are no bonus stars and it is the second to last turn, default is 3\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn:\r\nADDIU S1 S1 7 ; adds points for being in the next 10 spaces when it is unknown and there are bonus stars and it is not the last turn, default is 6\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_unknown_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_unknown_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is unknown and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn:\r\nADDIU S1 S1 11 ; adds points for being in the next 10 spaces when it is good and there are bonus stars and it is not the last turn, default is 10\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_good_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_good_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is good and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn:\r\nADDIU S1 S1 1 ; adds points for being in the next 10 spaces when it is bad and there are bonus stars and it is not the last turn, default is 0\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\nhappening_space_future_bonus_stars_are_enabled_and_space_is_bad_last_turn:\r\nLB T5 68(SP)\r\nBNEZ T5 happening_space_future_bonus_stars_are_enabled_and_space_is_bad_not_last_turn\r\nNOP\r\n\r\nADDIU S1 S1 4 ; adds points for being in the next 10 spaces when it is bad and there are bonus stars and it is the second to last turn, default is 4\r\n\r\nJ return_to_future_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfuture_array_processing:\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\n\r\nLUI S4 hi(future_space_array)\r\nADDIU S4 S4 lo(future_space_array) ; loads future space array in S4 to reset the position for processing\r\n\r\nfuture_array_processing_loop:\r\nLBU T9 0(S4) ; checks the current ID loaded in S4 and stores it in T9\r\n\r\nBEQZ T9 pick_point_comparison ; checks if the ID is 0 which means the end of the array has been reached and it is time to compare point values with previous point values\r\nNOP\r\n\r\nLI T5 1\r\nBEQ T9 T5 blue_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 2\r\nBEQ T9 T5 red_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 3\r\nBEQ T9 T5 chance_time_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 4\r\nBEQ T9 T5 bowser_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 5\r\nBEQ T9 T5 item_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 6\r\nBEQ T9 T5 battle_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 7\r\nBEQ T9 T5 game_guy_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 8\r\nBEQ T9 T5 bank_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 9\r\nBEQ T9 T5 item_shop_passing_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 10\r\nBEQ T9 T5 boo_passing_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 11\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 12\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 13\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 14\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 15\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 16\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 17\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 18\r\nBEQ T9 T5 check_if_space_has_star ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLI T5 19\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 20\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 21\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 22\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 23\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 24\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 25\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 26\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 27\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 28\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 29\r\nBEQ T9 T5 happening_space_future ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 30\r\nBEQ T9 T5 happening_space_future_good ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nLI T5 31\r\nBEQ T9 T5 happening_space_future_bad ; compares the currently loaded ID and runs the code to match that ID\r\nNOP\r\n\r\nreturn_to_future_array_processing_loop:\r\nADDIU S4 S4 1 ; this is where we add 1 to S4 to check the next value\r\n\r\nJ future_array_processing_loop\r\nNOP\r\n\r\n\r\ncheck_if_space_has_star:\r\nLUI T6 hi(skip_space_array)\r\nADDIU T6 T6 lo(skip_space_array) ; this loads the skip space array \r\nLBU T9 0(T6) ; here we check the first value in the skip space array which is where the current star spawn value is\r\n\r\nBEQ T9 T8 star_passing_future ; if the current star spawn value is the same as the current ID then we run the code for a future star\r\nNOP\r\n\r\nBNE T9 T8 blue_space_future ; if the current star spawn value is not the same as the current ID then we run the code for a future blue space\r\nNOP\r\n\r\n\r\narray_is_too_short:\r\nLI t0, 0x807FFFFC\r\nSW r0, 0x0000 (t0)\r\n;the array has detected a 0 which means that you improperly placed a 0 in one of the arrays or you did not make your array long enough\r\n\r\n\r\npick_point_comparison:\r\n\r\n;LI t5, 0x807FFFFC\r\n;SW r0, 0x0000 (t5)\r\n\r\nLB T0 152(SP)\r\nBEQZ T0 left_point_comparison\r\nNOP\r\n\r\nBNEZ T0 right_point_comparison\r\nNOP\r\n\r\nleft_new_largest_point_value:\r\nMOVE S5 S1 ; this is used to overwrite the previous largest value with a new one\r\n\r\nleft_point_comparison:\r\nSLT T0 S5 S1 ; if S5 is less than S1 then T0 will equal 1 otherwise it will equal 0\r\nBNEZ T0 left_new_largest_point_value ; if T0 is not zero then run this code\r\nNOP\r\n\r\n\r\nMOVE S1 R0 ; clears S1 to make sure that it will not cause issues for the next round of adding points\r\nADDIU S0 S0 1 ; this adds 1 to S0 to start checking the next array in the list or to go to the next steps if we have reached that point\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\nright_new_largest_point_value:\r\nMOVE S6 S1 ; this is used to overwrite the previous largest value with a new one\r\n\r\nright_point_comparison:\r\nSLT T0 S6 S1 ; if S6 is less than S1 then T0 will equal 1 otherwise it will equal 0\r\nBNEZ T0 right_new_largest_point_value ; if T0 is not zero then run this code\r\nNOP\r\n\r\nADDIU S0 S0 1 ; this adds 1 to S0 to start checking the next array in the list or to go to the next steps if we have reached that point\r\nMOVE S1 R0 ; clears S1 to make sure that it will not cause issues for the next round of adding points\r\n\r\nJ main_array_processing_loop\r\nNOP\r\n\r\n\r\n\r\n\r\nChoose_Side:\r\nSLT T6 S6 S5 \r\nBNEZ T6 Go_Left\r\nNOP\r\n\r\nSLT T6 S5 S6 \r\nBNEZ T6 Go_Right\r\nNOP\r\n\r\nBEQ S5 S6 exit\r\nNOP\r\n\r\nGo_Left:\r\nLBU A0 29(S3)\r\nLI A1 Left_chain_index\r\nLI A2 Left_chain_space_index\r\n\r\nJ SetDecision\r\nNOP\r\n\r\nGo_Right:\r\nLBU A0 29(S3)\r\nLI A1 Right_chain_index\r\nLI A2 Right_chain_space_index\r\n\r\nJ SetDecision\r\nNOP\r\n\r\nSetDecision:\r\nJAL SetNextChainAndSpace\r\nNOP\r\n\r\nJ exit\r\nNOP\r\n\r\n\r\n\r\nexit:\r\nLW S7 164(SP)\r\nLW S6 168(SP)\r\nLW S5 172(SP)\r\nLW S4 176(SP)\r\nLW S3 180(SP)\r\nLW S2 184(SP)\r\nLW S1 188(SP)\r\nLW S0 192(SP)\r\nLW RA 196(SP)\r\nJR RA\r\nADDIU SP SP 200\r\n\r\n.align 16\r\npassing_space_array:\r\n.byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r\n\r\n.align 16\r\nfuture_space_array:\r\n.byte 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\r\n\r\n.align 16\r\nskip_space_array:\r\n.byte 00,09,10,00\r\n\r\n.align 16\r\nsave_to_passing_arrays_array:\r\n.byte 00,08,09,10,00\r\n\r\n\r\n.align 16\r\nmain_left_array_array:\r\n.byte 01,02,03,04,05,06,07,08,09,10,00\r\n\r\n.align 16\r\nmain_left_array_one:\r\n.byte 15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_two:\r\n.byte 15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_three:\r\n.byte 15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_four:\r\n.byte 15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_five:\r\n.byte 15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_six:\r\n.byte 15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_seven:\r\n.byte 15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_eight:\r\n.byte 15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_nine:\r\n.byte 15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_left_array_ten:\r\n.byte 15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n.align 16\r\nmain_left_array_eleven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twelve:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fourteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fifteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_sixteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_seventeen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_eighteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_nineteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_twenty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_thirty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_forty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_left_array_fifty:\r\n.byte 00,00\r\n\r\n\r\n.align 16\r\nmain_right_array_array:\r\n.byte 01,02,03,04,05,06,07,08,09,10,11,12,13,14,00\r\n\r\n.align 16\r\nmain_right_array_one:\r\n.byte 16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_two:\r\n.byte 16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_three:\r\n.byte 16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_four:\r\n.byte 16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,09,01,06,13,01,05,02,01,08,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_five:\r\n.byte 16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,09,06,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,01,04,21,22,01,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_six:\r\n.byte 16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,05,01,04,19,05,20,11,05,01,01,02,01,01,06,01,01,05,01,12,05,01,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_seven:\r\n.byte 16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_eight:\r\n.byte 16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_nine:\r\n.byte 16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_ten:\r\n.byte 16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,15,26,01,27,03,01,01,06,13,01,05,02,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_eleven:\r\n.byte 16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_twelve:\r\n.byte 16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_thirteen:\r\n.byte 16,28,01,29,01,08,01,01,01,04,01,07,02,31,10,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_fourteen:\r\n.byte 16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,01,24,25,01,16,28,01,29,01,08,01,23,01,06,30,14,01,03,05,01,01,01,01,08,01,01,00\r\n\r\n\r\n\r\n.align 16\r\nmain_right_array_fifteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_sixteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_seventeen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_eighteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_nineteen:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_twenty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_thirty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_one:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_two:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_three:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_four:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_five:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_six:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_seven:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_eight:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_forty_nine:\r\n.byte 00,00\r\n\r\n.align 16\r\nmain_right_array_fifty:\r\n.byte 00,00\r\n"},"(Restrict CPU Item Usage)":{"language":0,"code":"; NAME: (Restrict CPU Item Usage)\r\n; GAMES: MP3_USA\r\n; EXECUTION: Direct\r\n; PARAM: Space|One\r\n; PARAM: Space|Two\r\n; PARAM: Space|Three\r\n; PARAM: Space|Four\r\n; PARAM: Space|Five\r\n; PARAM: Space|Six\r\n; PARAM: Space|Seven\r\n; PARAM: Space|Eight\r\n; PARAM: Space|Nine\r\n; PARAM: Space|Ten\r\n\r\nADDIU SP SP -160\r\nSW RA 156(SP)\r\nSW S0 152(SP)\r\nSW S1 148(SP)\r\nSW S2 144(SP)\r\nSW S3 140(SP)\r\nSW S4 136(SP)\r\nSW S5 132(SP)\r\nSW S6 128(SP)\r\nSW S7 124(SP)\r\n\r\n;disable item usage for cpus if they are on the good star and \r\n;\t\tit is not the last 4 turns\r\n;\t\tthey have room for more items\r\n;\t\tnobody else has dangerous items\r\n;\t\tthe current cpu has a magic lamp or a warp block\r\n;\t\tthe current cpu does not have a boo bell, plunder chest, lucky charm, bowser phone, bowser suit (while another player is on the good star), a poison mushroom, a reverse mushroom and/or a golden mushroom\r\n;\t\tthe current cpu has enough coins to buy a star if the restricting item is a magic lamp\r\n;\t\tthe star is not near boo\r\n\r\nJAL PlayerIsCPU ; makes sure that player is a cpu\r\nLI A0 -1 \r\n\r\nBEQZ V0 exit ; If 0, exit because it's a human\r\nNOP\r\n\r\nLUI T0 hi(total_turns)\r\nADDIU T0 T0 lo(total_turns) ; Address of total turns\r\nLBU T0 0(T0) ; Load total turns to T0\r\n\r\nLUI T1 hi(current_turn)\r\nADDIU T1 T1 lo(current_turn) ; Address of current turn\r\nLBU T1 0(T1) ; Load current turn to T1\r\n\r\nSUBU T2 T0 T1 ; T2 tells you have many turns are left\r\n\r\nSLTI T0 T2 5\r\n\r\nBNEZ T0 exit\r\nNOP\r\n\r\nJAL GetPlayerStruct\r\nLI A0 -1\r\n\r\nMOVE S0 V0\r\n\r\nLBU T0 26(S0)\r\n\r\nLI T1 0xFF\r\n\r\nBNE T1 T0 exit\r\nNOP\r\n\r\nLBU T0 24(S0)\r\nLI T1 5\r\nBEQ T0 T1 has_warp_block\r\nNOP\r\n\r\nLBU T0 25(S0)\r\nLI T1 5\r\nBEQ T0 T1 has_warp_block\r\nNOP\r\n\r\n\r\n\r\nLBU T0 24(S0)\r\nLI T1 14 \r\nBEQ T0 T1 has_magic_lamp\r\nNOP\r\n\r\nLBU T0 25(S0)\r\nLI T1 14 \r\nBEQ T0 T1 has_magic_lamp\r\nNOP\r\n\r\nJ exit\r\nNOP\r\n\r\nhas_warp_block:\r\nLBU T0 24(S0)\r\nLI T1 16 \r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLBU T0 25(S0)\r\nLI T1 16 \r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nJ passed_check\r\nNOP\r\n\r\nhas_magic_lamp:\r\nLHU T0 10(S0)\r\n\r\nSLTI T1 T0 20\r\nBNEZ T1 exit\r\nNOP\r\n\r\npassed_check:\r\nLUI T0 hi(current_star_spawn)\r\nADDIU T0 T0 lo(current_star_spawn) ; Address of current Star Spawn Cycle\r\nADDIU T1 T0 1 ; Address of first Star Spawn Index in the Cycle\r\nLBU T0 0(T0) ; Load Index of Star Spawn to T0\r\nADDU T0 T0 T1 ; Add to get address of current Star Spawn Index\r\nLBU T2 0(T0) ; Load current Star Spawn Index to T2\r\n\r\nLI T0 2\r\nBEQ T0 T2 exit\r\nNOP\r\n\r\n; the star is not near boo\r\n\r\nLBU T0 24(S0)\r\n\r\nLI T1 0x00\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x02\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x03\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x06\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x07\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x08\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x09\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x0A\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x0B\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x0D\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x11\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x12\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\n\r\n\r\nLBU T0 25(S0)\r\n\r\nLI T1 0x00\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x02\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x03\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x06\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x07\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x08\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x09\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x0A\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x0B\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x0D\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x11\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\nLI T1 0x12\r\nBEQ T0 T1 exit\r\nNOP\r\n\r\n\r\nLBU S5 29(S0)\r\n\r\n\r\nBNEZ S5 check_player_one_for_dangerous_items\r\nNOP\r\n\r\nis_current_player_player_two:\r\nLI T1 1\r\nBNE T1 S5 check_player_two_for_dangerous_items\r\nNOP\r\n\r\nis_current_player_player_three:\r\nLI T1 2\r\nBNE T1 S5 check_player_three_for_dangerous_items\r\nNOP\r\n\r\nis_current_player_player_four:\r\nLI T1 3\r\nBNE T1 S5 check_player_four_for_dangerous_items\r\nNOP\r\n\r\nJ check_if_player_is_on_star\r\nNOP\r\n\r\n\r\ncheck_player_one_for_dangerous_items:\r\nLI A0 0\r\nLI A1 16\r\n\r\nJAL PlayerHasItem\r\nNOP\r\n\r\nLI T1 -1\r\nBNE T1 V0 exit\r\nNOP\r\n\r\n\r\nLI A0 0\r\nLI A1 6\r\n\r\nJAL PlayerHasItem\r\nNOP\r\n\r\nLI T1 -1\r\nBNE T1 V0 exit\r\nNOP\r\n\r\nJ is_current_player_player_two\r\nNOP\r\n\r\ncheck_player_two_for_dangerous_items:\r\nLI A0 1\r\nLI A1 16\r\n\r\nJAL PlayerHasItem\r\nNOP\r\n\r\nLI T1 -1\r\nBNE T1 V0 exit\r\nNOP\r\n\r\n\r\nLI A0 1\r\nLI A1 6\r\n\r\nJAL PlayerHasItem\r\nNOP\r\n\r\nLI T1 -1\r\nBNE T1 V0 exit\r\nNOP\r\n\r\nJ is_current_player_player_three\r\nNOP\r\n\r\ncheck_player_three_for_dangerous_items:\r\nLI A0 2\r\nLI A1 16\r\n\r\nJAL PlayerHasItem\r\nNOP\r\n\r\nLI T1 -1\r\nBNE T1 V0 exit\r\nNOP\r\n\r\n\r\nLI A0 2\r\nLI A1 6\r\n\r\nJAL PlayerHasItem\r\nNOP\r\n\r\nLI T1 -1\r\nBNE T1 V0 exit\r\nNOP\r\n\r\nJ is_current_player_player_four\r\nNOP\r\n\r\ncheck_player_four_for_dangerous_items:\r\nLI A0 3\r\nLI A1 16\r\n\r\nJAL PlayerHasItem\r\nNOP\r\n\r\nLI T1 -1\r\nBNE T1 V0 exit\r\nNOP\r\n\r\n\r\nLI A0 3\r\nLI A1 6\r\n\r\nJAL PlayerHasItem\r\nNOP\r\n\r\nLI T1 -1\r\nBNE T1 V0 exit\r\nNOP\r\n\r\ncheck_if_player_is_on_star:\r\nLI T4 One_chain_index\r\nLI T5 One_chain_space_index\r\n\r\nLBU T6 15(S0)\r\nLBU T7 16(S0)\r\n\r\nBEQ T4 T6 at_good_star\r\nNOP\r\n\r\nBEQ T5 T7 at_good_star\r\nNOP\r\n\r\n\r\nLI T4 Two_chain_index\r\nLI T5 Two_chain_space_index\r\n\r\nLBU T6 15(S0)\r\nLBU T7 16(S0)\r\n\r\nBEQ T4 T6 at_good_star\r\nNOP\r\n\r\nBEQ T5 T7 at_good_star\r\nNOP\r\n\r\n\r\nLI T4 Three_chain_index\r\nLI T5 Three_chain_space_index\r\n\r\nLBU T6 15(S0)\r\nLBU T7 16(S0)\r\n\r\nBEQ T4 T6 at_good_star\r\nNOP\r\n\r\nBEQ T5 T7 at_good_star\r\nNOP\r\n\r\n\r\nLI T4 Four_chain_index\r\nLI T5 Four_chain_space_index\r\n\r\nLBU T6 15(S0)\r\nLBU T7 16(S0)\r\n\r\nBEQ T4 T6 at_good_star\r\nNOP\r\n\r\nBEQ T5 T7 at_good_star\r\nNOP\r\n\r\n\r\nLI T4 Five_chain_index\r\nLI T5 Five_chain_space_index\r\n\r\nLBU T6 15(S0)\r\nLBU T7 16(S0)\r\n\r\nBEQ T4 T6 at_good_star\r\nNOP\r\n\r\nBEQ T5 T7 at_good_star\r\nNOP\r\n\r\n\r\nLI T4 Six_chain_index\r\nLI T5 Six_chain_space_index\r\n\r\nLBU T6 15(S0)\r\nLBU T7 16(S0)\r\n\r\nBEQ T4 T6 at_good_star\r\nNOP\r\n\r\nBEQ T5 T7 at_good_star\r\nNOP\r\n\r\n\r\nLI T4 Seven_chain_index\r\nLI T5 Seven_chain_space_index\r\n\r\nLBU T6 15(S0)\r\nLBU T7 16(S0)\r\n\r\nBEQ T4 T6 at_good_star\r\nNOP\r\n\r\nBEQ T5 T7 at_good_star\r\nNOP\r\n\r\n\r\nLI T4 Eight_chain_index\r\nLI T5 Eight_chain_space_index\r\n\r\nLBU T6 15(S0)\r\nLBU T7 16(S0)\r\n\r\nBEQ T4 T6 at_good_star\r\nNOP\r\n\r\nBEQ T5 T7 at_good_star\r\nNOP\r\n\r\n\r\nLI T4 Nine_chain_index\r\nLI T5 Nine_chain_space_index\r\n\r\nLBU T6 15(S0)\r\nLBU T7 16(S0)\r\n\r\nBEQ T4 T6 at_good_star\r\nNOP\r\n\r\nBEQ T5 T7 at_good_star\r\nNOP\r\n\r\n\r\nLI T4 Ten_chain_index\r\nLI T5 Ten_chain_space_index\r\n\r\nLBU T6 15(S0)\r\nLBU T7 16(S0)\r\n\r\nBEQ T4 T6 at_good_star\r\nNOP\r\n\r\nBEQ T5 T7 at_good_star\r\nNOP\r\n\r\nJ exit\r\nNOP\r\n\r\nat_good_star:\r\nLUI T0 hi(cur_player_used_item)\r\nADDIU T0 T0 lo(cur_player_used_item)\r\nLI T1 1\r\nSB T1 0(T0)\r\n\r\n\r\n\r\n\r\nexit:\r\nLW S7 124(SP)\r\nLW S6 128(SP)\r\nLW S5 132(SP)\r\nLW S4 136(SP)\r\nLW S3 140(SP)\r\nLW S2 144(SP)\r\nLW S1 148(SP)\r\nLW S0 152(SP)\r\nLW RA 156(SP)\r\nJR RA\r\nADDIU SP SP 160"},"Snifit Patrol (Arrays)":{"language":0,"code":"; NAME: Snifit Patrol (Arrays)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n\nADDIU SP SP -64\nSW RA 60(SP)\nSW S0 56(SP)\nSW S1 52(SP)\nSW S2 48(SP)\nSW S3 44(SP)\nSW S4 40(SP)\nSW S5 36(SP)\nSW S6 32(SP)\n\n; This code is designed to remove specific items from a player's\n; inventory at the start of their turn and exchange them for coins.\n; The items removed are determined by the Item Array and the coins\n; received are determined by the corresponding value in the Price\n; Array.\n\n; When using this version of the event, be sure to directly edit the\n; arrays to customize the event to your liking. They can be found\n; near the bottom of the event, just before the Message Text.\n\n; S0 = Current Player Struct\n; S1 = Current Player Struct + Item Offset\n; S2 = Coin Tally\n; S3 = Item Array\n; S4 = Price Array\n; S5 = Item Slot Loop Counter\n; S6 = Hit Flag (0 or 1)\n\n;===Get Player Struct===\nJAL GetPlayerStruct\nLI A0 -1 ; Get current player struct at V0\nMOVE S0 V0 ; Copy V0 to S0\n\n;===Inventory Check===\nJAL PlayerHasEmptyItemSlot\nLBU A0 0x1D(S0) ; Load player index from offset of player struct\nBEQZ V0 exit ; If player has no items, exit\nNOP\n; else, check for items\n\n;===Get Arrays===\nLUI S3 hi(ItemArray)\nADDIU S3 S3 lo(ItemArray) ; Load ItemArray into S3\nLBU T3 0(S3) ; Load illegal item into T3\n\nLUI S4 hi(PriceArray)\nADDIU S4 S4 lo(PriceArray) ; Load PriceArray into S4\nLHU T4 0(S4) ; Load item price into T4\n\nLI T0 0xFF ; No item index\nLI S6 0 ; Start with no hits\n\n;===Check Items===\nRestartItemSlots:\nMOVE S1 S0 ; Copy S0 to S1\nLI S5 0 ; Start with item slot #1\n\nCheckItems:\nLBU T1 0x18(S1) ; Load item #1 from offset of player struct\nBNE T1 T3 NextItemSlot ; If not illegal item, go to NextItemSlot\nNOP\n; else, remove illegal item from inventory and tally coins received\n\nSB T0 0x18(S1) ; Store no item index into offset of player struct\nADDU S2 S2 T4 ; Add item price to coin tally\nLI S6 1 ; There is at least one hit\n\nNextItemSlot:\nLI T5 2\nBEQ S5 T5 CheckNextItem ; If all item slots checked, check next item\nNOP\nADDIU S5 S5 1 ; Add 1 to item slot loop counter\nJ CheckItems\nADDIU S1 S1 1 ; Add 1 to check next item slot\n\nCheckNextItem:\nADDIU S3 S3 1 ; Add 1 to get next illegal item\nLBU T3 0(S3) ; Load illegal item into T3\nLI T2 0x13 ; Terminator byte\nBEQ T2 T3 CheckResults ; If finished checking ItemArray, check results\nNOP\nADDIU S4 S4 2 ; Add 2 to get next price\nJ RestartItemSlots\nLHU T4 0(S4) ; Load item price into T4\n\n;===Check Results===\nCheckResults:\nBEQZ S6 exit ; If no hits, exit\nNOP\n; else, Snifit Patrol removed at least 1 item\n\n;===Greeting Message===\nLI A0 0 ; No string\nLUI A1 hi(GreetingMessage)\nJAL CallMessage\nADDIU A1 A1 lo(GreetingMessage) ; Display GreetingMessage\n\n;===Refresh Player Items HUD===\nJAL FixUpPlayerItemSlots\nLBU A0 0x1D(S0) ; Load player index from offset of player struct\nJAL FixUpPlayerItemSlots\nLBU A0 0x1D(S0) ; Load player index from offset of player struct\nJAL RefreshHUD\nLBU A0 0x1D(S0) ; Load player index from offset of player struct\n\n;===Check for Coins===\nBEQZ S2 exit2 ; If no coins received, exit\nNOP\n; else, player receives coins\n\n;===Prepare Coins Message===\nLUI A0 hi(CoinString)\nADDIU A0 A0 lo(CoinString) ; Parse destination\nLUI A1 hi(percent_d)\nADDIU A1 A1 lo(percent_d) ; String formatter\nJAL sprintf\nMOVE A2 S2 ; Convert coins gained to text string\n\n;===Coins Message===\nLUI A0 hi(CoinString)\nADDIU A0 A0 lo(CoinString) ; String #1 (CoinString)\nLUI A1 hi(CoinsMessage)\nJAL CallMessage\nADDIU A1 A1 lo(CoinsMessage) ; Display CoinsMessage\n\n;===Receive Coins===\nLBU A0 0x1D(S0) ; Load player index from offset of player struct\nJAL AdjustPlayerCoinsGradual\nMOVE A1 S2 ; Gain coins\n\nLBU A0 0x1D(S0) ; Load player index from offset of player struct\nJAL ShowPlayerCoinChange\nMOVE A1 S2 ; Gain coins\n\nJAL SleepProcess\nLI A0 30 ; Wait 30 frames for coin change\n\n;===Play Happy Voice and Animation===\nLBU A0 3(S0) ; Load character value from offset of player struct\nJAL PlaySound\nADDIU A0 A0 0x2BE ; Add character value to Mario's happy voice\n; Character voices are their \"character value\" distance away from\n; Mario's, e.g. Luigi's character value = 1, so Luigi's happy voice\n; is 1 away from Mario's.\n; 0x2BE = Happy Voice, 0x287 = Sad Voice\n\nLI A0 -1 ; Set current player\nLI A1 5 ; Set joy animation\nJAL SetBoardPlayerAnimation\nLI A2 0 ; Do not loop animation\n\nJAL SleepProcess\nLI A0 40 ; Wait 40 frames for animation\n\n;===Reset Player Idle Animation===\nexit2:\nLI A0 -1 ; Set current player\nLI A1 -1 ; Set idle animation\nJAL SetBoardPlayerAnimation\nLI A2 2 ; Loop the animation\n\nexit:\nLW RA 60(SP)\nLW S0 56(SP)\nLW S1 52(SP)\nLW S2 48(SP)\nLW S3 44(SP)\nLW S4 40(SP)\nLW S5 36(SP)\nLW S6 32(SP)\nJR RA\nADDIU SP SP 64\n\n;===Prep for Displaying Coin String===\n.align 16\npercent_d:\n.asciiz \"%d\" ; 0x25640000\n\n.align 16\nCoinString:\n.fill 8\n\n;===Mini Func to Call Message===\n.align 4\nCallMessage:\nADDIU SP SP -40\nSW RA 36(SP)\nSW S0 32(SP)\nSW S1 28(SP)\n\n; A0 / S1 = String #1\n; A1 / S0 = Message Address\n\nMOVE S1 A0 ; Copy A0 to S1\nMOVE S0 A1 ; Copy A1 to S0\n\nJAL PlaySound\nLI A0 0x2A1 ; Shy Guy voice\n\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nLI A0 0x9 ; Character image (-1 for none, 0x9 for Snifit Patrol)\n; Visit the following link to get the full list of Character Images\n; https://github.com/PartyPlanner64/PartyPlanner64/wiki/Displaying-Messages\n; If you use a character image, check the bottom of the code\nMOVE A1 S0 ; Pass message address on A1\nMOVE A2 S1 ; Pass String #1 on A2\nJAL ShowMessage\nLI A3 0\n\n; Obligatory message box closing/cleanup calls.\nJAL 0x800EC9DC\nNOP\nJAL CloseMessage\nNOP\nJAL 0x800EC6EC\nNOP\n\nLW RA 36(SP)\nLW S0 32(SP)\nLW S1 28(SP)\nJR RA\nADDIU SP SP 40\n\n;===Item Array===\n; This is the Item Array. To set item(s) to remove, follow the\n; formula of .byte [item index] and insert the items before the\n; terminator byte. The order of the items is not significant. However,\n; the terminator byte (.byte 0x13) must always be last in the list.\n; For a list of item indexes, see below the Price Array.\n\n.align 16\nItemArray:\n.byte 0x12 ; Wacky Watch Index\n.byte 0x13 ; Terminator byte\n\n;===Price Array===\n; This is the Price Array. To set prices for the items, follow the\n; formula of .halfword [price] and ensure that the order of prices\n; matches the order of items. Prices from 0 to 999 coins are\n; supported. Negative prices (i.e. losing coins) are not supported.\n\n.align 16\nPriceArray:\n.halfword 25 ; Wacky Watch price\n\n; Item Indexes:\n; 0x00 = Mushroom\n; 0x01 = Skeleton Key\n; 0x02 = Poison Mushroom\n; 0x03 = Reverse Mushroom\n; 0x04 = Cellular Shopper\n; 0x05 = Warp Block\n; 0x06 = Plunder Chest\n; 0x07 = Bowser Phone\n; 0x08 = Dueling Glove\n; 0x09 = Lucky Lamp\n; 0x0A = Golden Mushroom\n; 0x0B = Boo Bell\n; 0x0C = Boo Repellant\n; 0x0D = Bowser Suit\n; 0x0E = Magic Lamp\n; 0x0F = Koopa Card\n; 0x10 = Barter Box\n; 0x11 = Lucky Coin\n; 0x12 = Wacky Watch\n\n;===Message Text===\n.align 16\nGreetingMessage:\n.byte 0x1A,0x1A,0x1A,0x1A ; Padding for character image\n.ascii \"I\"\n.byte 0x5C ; Apostrophe (')\n.ascii \"m the Snifit Patrol\"\n.byte 0x85 ; Period (.)\n.byte 0x0A,0x1A,0x1A,0x1A,0x1A ; New line + character image padding\n.ascii \"I see you are in possession\"\n.byte 0x0A,0x1A,0x1A,0x1A,0x1A ; New line + character image padding\n.ascii \"of an\"\n.byte 0x03 ; Red font\n.ascii \" illegal item\"\n.byte 0x08,0x85 ; White font, Period (.)\n.byte 0x0A,0x1A,0x1A,0x1A,0x1A ; New line + character image padding\n.ascii \"Let me just confiscate that\"\n.byte 0x85 ; Period (.)\n.byte 0xFF,0 ; Wait, press A to confirm\n\n.align 16\nCoinsMessage:\n.byte 0x1A,0x1A,0x1A,0x1A ; Padding for character image\n.ascii \"Thanks for cooperating with\"\n.byte 0x0A,0x1A,0x1A,0x1A,0x1A ; New line + character image padding\n.ascii \"the law\"\n.byte 0x85 ; Period (.)\n.ascii \" Take \"\n.byte 0x06,0x11 ; Blue font, String #1 stored on A2 (CoinString)\n.ascii \" coins\"\n.byte 0x08 ; White font\n.ascii \" as thanks\"\n.byte 0x85 ; Period (.)\n.byte 0xFF,0 ; Wait, press A to confirm\n\n; Here's a list of the most common bytes you'll need\n; .byte 0x01 ; Black font\n; .byte 0x03 ; Red font\n; .byte 0x04 ; Purple font\n; .byte 0x05 ; Green font\n; .byte 0x06 ; Blue font\n; .byte 0x07 ; Yellow font\n; .byte 0x08 ; White font\n; .byte 0x85 ; Period (.)\n; .byte 0xC2 ; Exclamation mark (!)\n; .byte 0xC3 ; Question mark (?)\n; .byte 0x82 ; Comma (,)\n; .byte 0x0A ; New line (writes below)\n; .byte 0x5C ; Apostrophe (')\n; .byte 0x29 ; Coin icon\n; .byte 0x3D ; Minus (-)\n; .byte 0x3E ; Multiply (x)\n; .byte 0xFF,0 ; Wait, press A to confirm\n\n; If your message has an image, use this at the start of each line\n; .byte 0x1A,0x1A,0x1A,0x1A ; Padding for character image"},"Bad Star Prompt Junction (Rat)":{"language":0,"code":"; NAME: Bad Star Prompt Junction (Rat)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: Space|Behind\n; PARAM: Space|Next\n; PARAM: Space|Current\n; PARAM: Space|Invisible\n\nADDIU SP SP -80\nSW RA 76(SP)\nSW S1 72(SP) ; Status Flag Address\nSW S4 68(SP) ; Current Player's Index\nSW S7 64(SP) ; Spaces Remaining\nSW S2 60(SP)\nSW S3 56(SP)\nSW S0 52(SP)\nSW S5 48(SP) ; Current Player's Structure\n\n;LI t0, 0x807FFFFC\n;SW r0, 0x0000 (t0)\nJAL GetPlayerStruct ; at V0\nLI A0 -1\nMOVE S5 V0 ; Copy to S5\n\nLBU T0 23(S5) ; Status Flags\nSRL T0 T0 7 ; Shift bits to the right by 7 for Reverse flag\nBEQZ T0 go_next ; go forward if player is not reversed\nNOP\n\nLBU T1 21(S5) ; Previous Chain Index\nADDIU T0 R0 Invisible_chain_index\nBEQ T0 T1 startedfrominvisible\nNOP\n\nJ go_back\nNOP\n\nstartedfrominvisible:\nLUI T0 hi(cur_player_spaces_remaining)\nADDIU T0 T0 lo(cur_player_spaces_remaining)\nLWU S7 0(T0)\n\nBEQZ S7 clear_reverse\nNOP\n\nLI A0 -1\nLI A1 -1\nJAL SetBoardPlayerAnimation\nLI A2 2\n\nPROMPT:\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nLI A0 -1 ; Character image (None)\nLUI A1 hi(Junction_Prompt)\nADDIU A1 A1 lo(Junction_Prompt)\nLI A2 0\nJAL ShowMessage ; ShowMessage\nLI A3 0\n\nJ AIChoice\nNOP\nAISelect:\nLI A0 0x2\nJAL GetBasicPromptSelection\nMOVE A1 V0 ; A1 now has the AI's decision\nMOVE S0 V0 ; S0 now has the chosen option index\n\nJAL CloseMessage\nNOP\n\nLI A0 0\nBEQ S0 A0 clear_reverse\nNOP\nLI A0 1\nBEQ S0 A0 go_back\nNOP\n\nJAL ViewBoardMap\nNOP\n\nJ PROMPT\nNOP\n\n\nclear_reverse:\nLI T1 0x80\nSB T1 0x17(S5)\n\nJ go_next\nNOP\n\n\ngo_back:\nADDIU T1 R0 Behind_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Behind_chain_space_index ; Assigns Space Index to A2\n\nSB T1 17(S5) ; saves Behind_chain_index to next chain index\nSB T2 18(S5) ; saved Behind_chain_space_index to next chain space index\n\n\nADDIU T1 R0 Current_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Current_chain_space_index ; Assigns Space Index to A2\n\nSB T1 15(S5) ; saves Current_chain_index to Current chain index\nSB T2 16(S5) ; saved Current_chain_space_index to Current chain space index\n\n\nADDIU T1 R0 Next_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Next_chain_space_index ; Assigns Space Index to A2\n\nSB T1 21(S5) ; saves Behind_chain_index to previous chain index\nSB T2 22(S5) ; saved Behind_chain_space_index to previous chain space index\n\n\nJ exit\nNOP\n\ngo_next:\nADDIU T1 R0 Next_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Next_chain_space_index ; Assigns Space Index to A2\n\nSB T1 17(S5) ; saves Behind_chain_index to previous chain index\nSB T2 18(S5) ; saved Behind_chain_space_index to previous chain space index\n\n\nADDIU T1 R0 Current_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Current_chain_space_index ; Assigns Space Index to A2\n\nSB T1 15(S5) ; saves Current_chain_index to Current chain index\nSB T2 16(S5) ; saved Current_chain_space_index to Current chain space index\n\n\nADDIU T1 R0 Behind_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Behind_chain_space_index ; Assigns Space Index to A2\n\nSB T1 21(S5) ; saves Behind_chain_index to next chain index\nSB T2 22(S5) ; saved Behind_chain_space_index to next chain space index\n\n\n\nexit:\nLW RA 76(SP)\nLW S1 72(SP) ; Current Player's Status Flag Address\nLW S4 68(SP) ; Current Player's Index\nLW S7 64(SP) ; Spaces Remaining\nLW S2 60(SP)\nLW S3 56(SP)\nLW S0 52(SP)\nLW S5 48(SP) ; Current Player's Structure\nJR RA\nADDIU SP SP 80\n\n.align 4\nAIChoice:\nJAL GetPlayerStruct ; at V0\nLI A0 -1\nMOVE T1 V0 ; Copy to S5\n\nLUI T0 hi(cur_player_spaces_remaining)\nADDIU T0 T0 lo(cur_player_spaces_remaining)\nLWU T2 0(T0)\n\nLI T3 1\nBEQ T3 T2 ChooseLeft\nNOP\n\nLI T3 2\nBEQ T3 T2 ChooseLeft\nNOP\n\nLI T3 3\nBEQ T3 T2 ChooseRight\nNOP\n\nLI T3 4\nBEQ T3 T2 ChooseLeft\nNOP\n\nLI T3 5\nBEQ T3 T2 ChooseLeft\nNOP\n\nLI T3 6\nBEQ T3 T2 ChooseRight\nNOP\n\nLI T3 7\nBEQ T3 T2 ChooseLeft\nNOP\n\nLI T3 8\nBEQ T3 T2 ChooseRight\nNOP\n\nLI T3 9\nBEQ T3 T2 ChooseLeft\nNOP\n\nJ ChooseLeft\nNOP\n\n\nChooseLeft:\nLI V0 0x0\nJ AISelect\nNOP\n\nChooseRight:\nLI V0 0x1\nJ AISelect\nNOP\n\n\n\n.align 16\nJunction_Prompt:\n.byte 0x0B ; Start the message\n.ascii \"Which way will you go\"\n.byte 0xC3 ; Question Mark (?)\n.byte 0x0A ; Newline\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.ascii \"Up\" ;left\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.ascii \"Down\" ;right\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A\n.byte 0x0C ; Start option\n.ascii \"View Map\"\n.byte 0x0D ; End option\n.byte 0"},"Good Star Prompt Junction (Rat)":{"language":0,"code":"; NAME: Good Star Prompt Junction (Rat)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: Space|Behind\n; PARAM: Space|Next\n; PARAM: Space|Current\n; PARAM: Space|Invisible\n\nADDIU SP SP -80\nSW RA 76(SP)\nSW S1 72(SP) ; Status Flag Address\nSW S4 68(SP) ; Current Player's Index\nSW S7 64(SP) ; Spaces Remaining\nSW S2 60(SP)\nSW S3 56(SP)\nSW S0 52(SP)\nSW S5 48(SP) ; Current Player's Structure\n\n;LI t0, 0x807FFFFC\n;SW r0, 0x0000 (t0)\n\nJAL GetPlayerStruct ; at V0\nLI A0 -1\nMOVE S5 V0 ; Copy to S5\n\nLBU T0 23(S5) ; Status Flags\nSRL T0 T0 7 ; Shift bits to the right by 7 for Reverse flag\nBEQZ T0 go_next ; go forward if player is not reversed\nNOP\n\nLBU T1 21(S5) ; Previous Chain Index\nADDIU T0 R0 Invisible_chain_index\nBEQ T0 T1 startedfrominvisible\nNOP\n\nJ go_back\nNOP\n\nstartedfrominvisible:\nLUI T0 hi(cur_player_spaces_remaining)\nADDIU T0 T0 lo(cur_player_spaces_remaining)\nLWU S7 0(T0)\n\nBEQZ S7 clear_reverse\nNOP\n\nLI A0 -1\nLI A1 -1\nJAL SetBoardPlayerAnimation\nLI A2 2\n\nPROMPT:\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nLI A0 -1 ; Character image (None)\nLUI A1 hi(Junction_Prompt)\nADDIU A1 A1 lo(Junction_Prompt)\nLI A2 0\nJAL ShowMessage ; ShowMessage\nLI A3 0\n\nJ AIChoice\nNOP\nAISelect:\nLI A0 0x2\nJAL GetBasicPromptSelection\nMOVE A1 V0 ; A1 now has the AI's decision\nMOVE S0 V0 ; S0 now has the chosen option index\n\nJAL CloseMessage\nNOP\n\nLI A0 0\nBEQ S0 A0 clear_reverse\nNOP\nLI A0 1\nBEQ S0 A0 go_back\nNOP\n\nJAL ViewBoardMap\nNOP\n\nJ PROMPT\nNOP\n\n\nclear_reverse:\nLI T1 0x80\nSB T1 0x17(S5)\n\nJ go_next\nNOP\n\n\ngo_back:\nADDIU T1 R0 Behind_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Behind_chain_space_index ; Assigns Space Index to A2\n\nSB T1 17(S5) ; saves Behind_chain_index to next chain index\nSB T2 18(S5) ; saved Behind_chain_space_index to next chain space index\n\n\nADDIU T1 R0 Current_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Current_chain_space_index ; Assigns Space Index to A2\n\nSB T1 15(S5) ; saves Current_chain_index to Current chain index\nSB T2 16(S5) ; saved Current_chain_space_index to Current chain space index\n\n\nADDIU T1 R0 Next_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Next_chain_space_index ; Assigns Space Index to A2\n\nSB T1 21(S5) ; saves Behind_chain_index to previous chain index\nSB T2 22(S5) ; saved Behind_chain_space_index to previous chain space index\n\n\nJ exit\nNOP\n\ngo_next:\nADDIU T1 R0 Next_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Next_chain_space_index ; Assigns Space Index to A2\n\nSB T1 17(S5) ; saves Behind_chain_index to previous chain index\nSB T2 18(S5) ; saved Behind_chain_space_index to previous chain space index\n\n\nADDIU T1 R0 Current_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Current_chain_space_index ; Assigns Space Index to A2\n\nSB T1 15(S5) ; saves Current_chain_index to Current chain index\nSB T2 16(S5) ; saved Current_chain_space_index to Current chain space index\n\n\nADDIU T1 R0 Behind_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Behind_chain_space_index ; Assigns Space Index to A2\n\nSB T1 21(S5) ; saves Behind_chain_index to next chain index\nSB T2 22(S5) ; saved Behind_chain_space_index to next chain space index\n\n\n\nexit:\nLW RA 76(SP)\nLW S1 72(SP) ; Current Player's Status Flag Address\nLW S4 68(SP) ; Current Player's Index\nLW S7 64(SP) ; Spaces Remaining\nLW S2 60(SP)\nLW S3 56(SP)\nLW S0 52(SP)\nLW S5 48(SP) ; Current Player's Structure\nJR RA\nADDIU SP SP 80\n\n.align 4\nAIChoice:\nJAL GetPlayerStruct ; at V0\nLI A0 -1\nMOVE T1 V0 ; Copy to S5\n\nLUI T0 hi(cur_player_spaces_remaining)\nADDIU T0 T0 lo(cur_player_spaces_remaining)\nLWU T2 0(T0)\n\nLI T3 1\nBEQ T3 T2 ChooseRight\nNOP\n\nLI T3 2\nBEQ T3 T2 ChooseRight\nNOP\n\nLI T3 3\nBEQ T3 T2 ChooseLeft\nNOP\n\nLI T3 4\nBEQ T3 T2 ChooseRight\nNOP\n\nLI T3 5\nBEQ T3 T2 ChooseRight\nNOP\n\nLI T3 6\nBEQ T3 T2 ChooseLeft\nNOP\n\nLI T3 7\nBEQ T3 T2 ChooseRight\nNOP\n\nLI T3 8\nBEQ T3 T2 ChooseRight\nNOP\n\nLI T3 9\nBEQ T3 T2 ChooseRight\nNOP\n\nJ ChooseRight\nNOP\n\n\nChooseLeft:\nLI V0 0x0\nJ AISelect\nNOP\n\nChooseRight:\nLI V0 0x1\nJ AISelect\nNOP\n\n\n\n.align 16\nJunction_Prompt:\n.byte 0x0B ; Start the message\n.ascii \"Which way will you go\"\n.byte 0xC3 ; Question Mark (?)\n.byte 0x0A ; Newline\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.ascii \"Up\" ; Left\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.ascii \"Down\" ; Right\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A\n.byte 0x0C ; Start option\n.ascii \"View Map\"\n.byte 0x0D ; End option\n.byte 0"},"Standard Prompt Junction (Rat)":{"language":0,"code":"; NAME:Standard Prompt Junction (Rat)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n; PARAM: Space|Behind\n; PARAM: Space|Next\n; PARAM: Space|Current\n; PARAM: Space|Invisible\n\nADDIU SP SP -80\nSW RA 76(SP)\nSW S1 72(SP) ; Status Flag Address\nSW S4 68(SP) ; Current Player's Index\nSW S7 64(SP) ; Spaces Remaining\nSW S2 60(SP)\nSW S3 56(SP)\nSW S0 52(SP)\nSW S5 48(SP) ; Current Player's Structure\n\n;LI t0, 0x807FFFFC\n;SW r0, 0x0000 (t0)\n\nJAL GetPlayerStruct ; at V0\nLI A0 -1\nMOVE S5 V0 ; Copy to S5\n\nLBU T0 23(S5) ; Status Flags\nSRL T0 T0 7 ; Shift bits to the right by 7 for Reverse flag\nBEQZ T0 go_next ; go forward if player is not reversed\nNOP\n\nLBU T1 21(S5) ; Previous Chain Index\nADDIU T0 R0 Invisible_chain_index\nBEQ T0 T1 startedfrominvisible\nNOP\n\nJ go_back\nNOP\n\nstartedfrominvisible:\nLUI T0 hi(cur_player_spaces_remaining)\nADDIU T0 T0 lo(cur_player_spaces_remaining)\nLWU S7 0(T0)\n\nBEQZ S7 clear_reverse\nNOP\n\nLI A0 -1\nLI A1 -1\nJAL SetBoardPlayerAnimation\nLI A2 2\n\nPROMPT:\nSW R0 16(SP) ; A4\nSW R0 20(SP) ; A5\nSW R0 24(SP) ; A6\nLI A0 -1 ; Character image (None)\nLUI A1 hi(Junction_Prompt)\nADDIU A1 A1 lo(Junction_Prompt)\nLI A2 0\nJAL ShowMessage ; ShowMessage\nLI A3 0\n\nJ AIChoice\nNOP\nAISelect:\nLI A0 0x2\nJAL GetBasicPromptSelection\nMOVE A1 V0 ; A1 now has the AI's decision\nMOVE S0 V0 ; S0 now has the chosen option index\n\nJAL CloseMessage\nNOP\n\nLI A0 0\nBEQ S0 A0 clear_reverse\nNOP\nLI A0 1\nBEQ S0 A0 go_back\nNOP\n\nJAL ViewBoardMap\nNOP\n\nJ PROMPT\nNOP\n\n\nclear_reverse:\nLI T1 0x80\nSB T1 0x17(S5)\n\nJ go_next\nNOP\n\n\ngo_back:\nADDIU T1 R0 Behind_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Behind_chain_space_index ; Assigns Space Index to A2\n\nSB T1 17(S5) ; saves Behind_chain_index to next chain index\nSB T2 18(S5) ; saved Behind_chain_space_index to next chain space index\n\n\nADDIU T1 R0 Current_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Current_chain_space_index ; Assigns Space Index to A2\n\nSB T1 15(S5) ; saves Current_chain_index to Current chain index\nSB T2 16(S5) ; saved Current_chain_space_index to Current chain space index\n\n\nADDIU T1 R0 Next_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Next_chain_space_index ; Assigns Space Index to A2\n\nSB T1 21(S5) ; saves Behind_chain_index to previous chain index\nSB T2 22(S5) ; saved Behind_chain_space_index to previous chain space index\n\n\nJ exit\nNOP\n\ngo_next:\nADDIU T1 R0 Next_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Next_chain_space_index ; Assigns Space Index to A2\n\nSB T1 17(S5) ; saves Behind_chain_index to previous chain index\nSB T2 18(S5) ; saved Behind_chain_space_index to previous chain space index\n\n\nADDIU T1 R0 Current_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Current_chain_space_index ; Assigns Space Index to A2\n\nSB T1 15(S5) ; saves Current_chain_index to Current chain index\nSB T2 16(S5) ; saved Current_chain_space_index to Current chain space index\n\n\nADDIU T1 R0 Behind_chain_index ; Assigns Chain Index to A1\nADDIU T2 R0 Behind_chain_space_index ; Assigns Space Index to A2\n\nSB T1 21(S5) ; saves Behind_chain_index to next chain index\nSB T2 22(S5) ; saved Behind_chain_space_index to next chain space index\n\n\n\nexit:\nLW RA 76(SP)\nLW S1 72(SP) ; Current Player's Status Flag Address\nLW S4 68(SP) ; Current Player's Index\nLW S7 64(SP) ; Spaces Remaining\nLW S2 60(SP)\nLW S3 56(SP)\nLW S0 52(SP)\nLW S5 48(SP) ; Current Player's Structure\nJR RA\nADDIU SP SP 80\n\n.align 4\nAIChoice:\nJAL GetRandomByte\nNOP\n\nLI T0 2\nDIVU V0 T0\nMFHI T0\n\nBEQZ T0 ChooseLeft\nNOP\n\nJ ChooseRight\nNOP\n\nChooseLeft:\nLI V0 0x0\nJ AISelect\nNOP\n\nChooseRight:\nLI V0 0x1\nJ AISelect\nNOP\n\n\n\n.align 16\nJunction_Prompt:\n.byte 0x0B ; Start the message\n.ascii \"Which way will you go\"\n.byte 0xC3 ; Question Mark (?)\n.byte 0x0A ; Newline\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.ascii \"Left\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A ; Little more for option indent\n.byte 0x0C ; Start option\n.ascii \"Right\"\n.byte 0x0D ; End option\n.byte 0x0A ; Newline\n.byte 0x1A,0x1A\n.byte 0x0C ; Start option\n.ascii \"View Map\"\n.byte 0x0D ; End option\n.byte 0"},"(playerstatadjustments2)":{"language":0,"code":"; NAME: (playerstatadjustments2)\n; GAMES: MP3_USA\n; EXECUTION: Direct\n\nADDIU SP SP -160\nSW RA 156(SP)\nSW S0 152(SP)\nSW S1 148(SP)\nSW S2 144(SP)\nSW S3 140(SP)\nSW S4 136(SP)\nSW S5 132(SP)\nSW S6 128(SP)\nSW S7 124(SP)\n\n\nJAL GetPlayerStruct\nLI A0 0\nMOVE S0 V0 ;loads player structure in S0\n\n\nJAL GetPlayerStruct\nLI A0 1\nMOVE S1 V0 ;loads player structure in S1\n\n\nJAL GetPlayerStruct\nLI A0 2\nMOVE S2 V0 ;loads player structure in S2\n\n\nJAL GetPlayerStruct\nLI A0 3\nMOVE S3 V0 ;loads player structure in S3\n\n\n;LI T0 0\n;LI T1 10\n;LI T2 20\n;LI T3 50\n;\n;SH T0 10(S0)\n;SH T1 10(S1)\n;SH T2 10(S2)\n;SH T3 10(S3)\n\nLI T5 0x02\nLI T6 0x03\n;LI T1 9\n;LI T2 7\n;LI T3 5\n\n;SB T0 14(S0)\n;SB T1 14(S1)\n;SB T2 14(S2)\n;SB T3 14(S3)\n\n\nSB T5 24(S0)\nSB T5 24(S1)\nSB T5 24(S2)\nSB T5 24(S3)\n\n\nSB T6 25(S0)\nSB T6 25(S1)\nSB T6 25(S2)\nSB T6 25(S3)\n\n;\tLI T1 0x81\n;\tSB T1 0x17(S0)\n;\tSB T1 0x17(S1)\n;\tSB T1 0x17(S2)\n;\tSB T1 0x17(S3)\n\n;make_last_turn:\n;LUI T1 hi(current_turn)\n;ADDIU T1 T1 lo(current_turn) ; Address of current turn\n;LI T0 10\n;SB T0 0(T1)\n;\n;bank_fifty:\n;LI T0 50\n;LUI T1 hi(bank_coin_total)\n;ADDIU T1 T1 lo(bank_coin_total) \n;SH T0 0(T1) \n\n\nexit:\nLW S7 124(SP)\nLW S6 128(SP)\nLW S5 132(SP)\nLW S4 136(SP)\nLW S3 140(SP)\nLW S2 144(SP)\nLW S1 148(SP)\nLW S0 152(SP)\nLW RA 156(SP)\nJR RA\nADDIU SP SP 160"}},"audioType":0,"bg":{"width":1152,"height":864,"src":"data:image/png;base64,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","fov":15,"scaleFactor":0.1,"cameraEyePosX":0,"cameraEyePosY":300,"cameraEyePosZ":300,"lookatPointX":0,"lookatPointY":0,"lookatPointZ":0},"audioIndex":27,"otherbg":{"boardselect":"data:image/png;base64,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","boardlogo":"data:image/png;base64,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","boardlogotext":"data:image/png;base64,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","largescene":"data:image/png;base64,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"},"additionalbg":[],"boardevents":[{"id":"(Restrict CPU Item Usage)","activationType":-4,"executionType":1,"custom":true,"parameterValues":{"One":83,"Two":84,"Three":85,"Four":87,"Five":88,"Six":90,"Seven":91,"Eight":92,"Nine":95,"Ten":99}}]}