Advertisement
Kirkq

Lawn Mower Test Script 4

Apr 6th, 2014
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 9.39 KB | None | 0 0
  1. local Base1= 0x0000
  2. local Base2 = 0x0001 --Per pixel in bar
  3. local CurrFuelAd2 = 0x00CB  --Continuous
  4. local GrassesLeftAd = 0x00CC  --Continuous
  5.  
  6. local XAd = 0x00EA  --Also 0x00D8
  7. local XSubAd = 0x00E9
  8. local YAd = 0x00E8  --Also 0x00D2, 0x00D7
  9. local YSubAd = 0x00E7
  10.  
  11. local VelocityAd = 0x00D4
  12. local DoubleSubPxAd = 0x00D9
  13.  
  14. local Percentage = 0x00B2
  15. local Percentage2 = 0x00D1
  16. local NextFuelYAd = 0x00B7
  17. local NextFuelXAd = 0x00B8
  18. local FuelCounterAd = 0x00BC
  19.  
  20. local WHERETOGETAD = 0x00B5  -- Locking all two of these locks the fuel spawn, it sometimes goes invis as a side effect.
  21. local WHERETOGETAD2 = 0x00B6
  22.  
  23. local WHERETOGETAD3 = 0x00E3
  24.  
  25. local CurrFuelYAd = 0x00C0
  26. local CurrFuelXAd = 0x00C1
  27.  
  28. local GAME_CAM_X = 0x00D5
  29.  
  30. local CuttingGrassAnimAd = 0x00FD
  31. local Counter1 = 0x00FE  -- This causes you to stop every 5th frame.
  32. local Counter2 = 0x00FF  -- This is related to draining fuel. Locking it locks fuel.
  33.  
  34. local RandSeedAd = 0x00FD
  35.  
  36. local FuelHackThing = 0x00BE  --Invisible Fuel Hack?  Bad
  37.  
  38. local Grass1Ad = 0x40A  --These are grass sprites, i think there are two types
  39. local Grass2Ad = 0x40B
  40. local Grass3Ad = 0x40C
  41. local Grass4Ad = 0x40D
  42.  
  43. local GAME_MAP_WDT = 0x00C9
  44.  
  45. local XX
  46. local YY
  47.  
  48. local x = {}
  49. local y = {}
  50.  
  51. local i
  52.  
  53. x[1]=8
  54. y[1]=8
  55. x[2]=9
  56. y[2]=7
  57. x[3]=6
  58. y[3]=9
  59. x[4]=6
  60. y[4]=8
  61. x[5]=9
  62. y[5]=3
  63. x[6]=13
  64. y[6]=3
  65. x[7]=3
  66. y[7]=3
  67. x[8]=7
  68. y[8]=6
  69. x[9]=1
  70. y[9]=4
  71. x[10]=1
  72. y[10]=7
  73. x[11]=9
  74. y[11]=4
  75. x[12]=1
  76. y[12]=11
  77. x[13]=14
  78. y[13]=8
  79. x[14]=11
  80. y[14]=7
  81. x[15]=7
  82. y[15]=4
  83. x[16]=10
  84. y[16]=5
  85. x[17]=3
  86. y[17]=7
  87. x[18]=5
  88. y[18]=11
  89. x[19]=3
  90. y[19]=4
  91. x[20]=1
  92. y[20]=10
  93. x[21]=1
  94. y[21]=3
  95. x[22]=10
  96. y[22]=6
  97. x[23]=4
  98. y[23]=4
  99. x[24]=4
  100. y[24]=5
  101. x[25]=10
  102. y[25]=4
  103. x[26]=2
  104. y[26]=13
  105. x[27]=8
  106. y[27]=13
  107. x[28]=1
  108. y[28]=6
  109. x[29]=6
  110. y[29]=13
  111. x[30]=14
  112. y[30]=12
  113. x[31]=9
  114. y[31]=6
  115. x[32]=8
  116. y[32]=6
  117. x[33]=6
  118. y[33]=12
  119. x[34]=1
  120. y[34]=10
  121. x[35]=2
  122. y[35]=8
  123. x[36]=12
  124. y[36]=5
  125. x[37]=13
  126. y[37]=10
  127. x[38]=13
  128. y[38]=7
  129. x[39]=2
  130. y[39]=6
  131. x[40]=4
  132. y[40]=9
  133. x[41]=3
  134. y[41]=6
  135. x[42]=5
  136. y[42]=10
  137. x[43]=11
  138. y[43]=3
  139. x[44]=2
  140. y[44]=5
  141. local N=44
  142.  
  143.  
  144. local RNGArray = {}
  145.  
  146. RNGArray[1] = 246
  147. RNGArray[2] = 35
  148. RNGArray[3] = 70
  149. RNGArray[4] = 140
  150. RNGArray[5] = 215
  151. RNGArray[6] = 97
  152. RNGArray[7] = 194
  153. RNGArray[8] = 75
  154. RNGArray[9] = 150
  155. RNGArray[10] = 227
  156. RNGArray[11] = 9
  157. RNGArray[12] = 18
  158. RNGArray[13] = 36
  159. RNGArray[14] = 72
  160. RNGArray[15] = 144
  161. RNGArray[16] = 239
  162. RNGArray[17] = 17
  163. RNGArray[18] = 34
  164. RNGArray[19] = 68
  165. RNGArray[20] = 136
  166. RNGArray[21] = 223
  167. RNGArray[22] = 113
  168. RNGArray[23] = 226
  169. RNGArray[24] = 11
  170. RNGArray[25] = 22
  171. RNGArray[26] = 44
  172. RNGArray[27] = 88
  173. RNGArray[28] = 176
  174. RNGArray[29] = 175
  175. RNGArray[30] = 145
  176. RNGArray[31] = 237
  177. RNGArray[32] = 21
  178. RNGArray[33] = 42
  179. RNGArray[34] = 84
  180. RNGArray[35] = 168
  181. RNGArray[36] = 159
  182. RNGArray[37] = 241
  183. RNGArray[38] = 45
  184. RNGArray[39] = 90
  185. RNGArray[40] = 180
  186. RNGArray[41] = 167
  187. RNGArray[42] = 129
  188. RNGArray[43] = 205
  189. RNGArray[44] = 85
  190. RNGArray[45] = 170
  191. RNGArray[46] = 155
  192. RNGArray[47] = 249
  193. RNGArray[48] = 61
  194. RNGArray[49] = 122
  195. RNGArray[50] = 244
  196. RNGArray[51] = 39
  197. RNGArray[52] = 78
  198. RNGArray[53] = 156
  199. RNGArray[54] = 247
  200. RNGArray[55] = 33
  201. RNGArray[56] = 66
  202. RNGArray[57] = 132
  203. RNGArray[58] = 199
  204. RNGArray[59] = 65
  205. RNGArray[60] = 130
  206. RNGArray[61] = 203
  207. RNGArray[62] = 89
  208. RNGArray[63] = 178
  209. RNGArray[64] = 171
  210. RNGArray[65] = 153
  211. RNGArray[66] = 253
  212. RNGArray[67] = 53
  213. RNGArray[68] = 106
  214. RNGArray[69] = 212
  215. RNGArray[70] = 103
  216. RNGArray[71] = 206
  217. RNGArray[72] = 83
  218. RNGArray[73] = 166
  219. RNGArray[74] = 131
  220. RNGArray[75] = 201
  221. RNGArray[76] = 93
  222. RNGArray[77] = 186
  223. RNGArray[78] = 187
  224. RNGArray[79] = 185
  225. RNGArray[80] = 189
  226. RNGArray[81] = 181
  227. RNGArray[82] = 165
  228. RNGArray[83] = 133
  229. RNGArray[84] = 197
  230. RNGArray[85] = 69
  231. RNGArray[86] = 138
  232. RNGArray[87] = 219
  233. RNGArray[88] = 121
  234. RNGArray[89] = 242
  235. RNGArray[90] = 43
  236. RNGArray[91] = 86
  237. RNGArray[92] = 172
  238. RNGArray[93] = 151
  239. RNGArray[94] = 225
  240. RNGArray[95] = 13
  241. RNGArray[96] = 26
  242. RNGArray[97] = 52
  243. RNGArray[98] = 104
  244. RNGArray[99] = 208
  245. RNGArray[100] = 111
  246. RNGArray[101] = 222
  247. RNGArray[102] = 115
  248. RNGArray[103] = 230
  249. RNGArray[104] = 3
  250. RNGArray[105] = 6
  251. RNGArray[106] = 12
  252. RNGArray[107] = 24
  253. RNGArray[108] = 48
  254. RNGArray[109] = 96
  255. RNGArray[110] = 192
  256. RNGArray[111] = 79
  257. RNGArray[112] = 158
  258. RNGArray[113] = 243
  259. RNGArray[114] = 41
  260. RNGArray[115] = 82
  261. RNGArray[116] = 164
  262. RNGArray[117] = 135
  263. RNGArray[118] = 193
  264. RNGArray[119] = 77
  265. RNGArray[120] = 154
  266. RNGArray[121] = 251
  267. RNGArray[122] = 57
  268. RNGArray[123] = 114
  269. RNGArray[124] = 228
  270. RNGArray[125] = 7
  271. RNGArray[126] = 14
  272. RNGArray[127] = 28
  273. RNGArray[128] = 56
  274. RNGArray[129] = 112
  275. RNGArray[130] = 224
  276. RNGArray[131] = 15
  277. RNGArray[132] = 30
  278. RNGArray[133] = 60
  279. RNGArray[134] = 120
  280. RNGArray[135] = 240
  281. RNGArray[136] = 47
  282. RNGArray[137] = 94
  283. RNGArray[138] = 188
  284. RNGArray[139] = 183
  285. RNGArray[140] = 161
  286. RNGArray[141] = 141
  287. RNGArray[142] = 213
  288. RNGArray[143] = 101
  289. RNGArray[144] = 202
  290. RNGArray[145] = 91
  291. RNGArray[146] = 182
  292. RNGArray[147] = 163
  293. RNGArray[148] = 137
  294. RNGArray[149] = 221
  295. RNGArray[150] = 117
  296. RNGArray[151] = 234
  297. RNGArray[152] = 27
  298. RNGArray[153] = 54
  299. RNGArray[154] = 108
  300. RNGArray[155] = 216
  301. RNGArray[156] = 127
  302. RNGArray[157] = 254
  303. RNGArray[158] = 51
  304. RNGArray[159] = 102
  305. RNGArray[160] = 204
  306. RNGArray[161] = 87
  307. RNGArray[162] = 174
  308. RNGArray[163] = 147
  309. RNGArray[164] = 233
  310. RNGArray[165] = 29
  311. RNGArray[166] = 58
  312. RNGArray[167] = 116
  313. RNGArray[168] = 232
  314. RNGArray[169] = 31
  315. RNGArray[170] = 62
  316. RNGArray[171] = 124
  317. RNGArray[172] = 248
  318. RNGArray[173] = 63
  319. RNGArray[174] = 126
  320. RNGArray[175] = 252
  321. RNGArray[176] = 55
  322. RNGArray[177] = 110
  323. RNGArray[178] = 220
  324. RNGArray[179] = 119
  325. RNGArray[180] = 238
  326. RNGArray[181] = 19
  327. RNGArray[182] = 38
  328. RNGArray[183] = 76
  329. RNGArray[184] = 152
  330. RNGArray[185] = 255
  331. RNGArray[186] = 49
  332. RNGArray[187] = 98
  333. RNGArray[188] = 196
  334. RNGArray[189] = 71
  335. RNGArray[190] = 142
  336. RNGArray[191] = 211
  337. RNGArray[192] = 105
  338. RNGArray[193] = 210
  339. RNGArray[194] = 107
  340. RNGArray[195] = 214
  341. RNGArray[196] = 99
  342. RNGArray[197] = 198
  343. RNGArray[198] = 67
  344. RNGArray[199] = 134
  345. RNGArray[200] = 195
  346. RNGArray[201] = 73
  347. RNGArray[202] = 146
  348. RNGArray[203] = 235
  349. RNGArray[204] = 25
  350. RNGArray[205] = 50
  351. RNGArray[206] = 100
  352. RNGArray[207] = 200
  353. RNGArray[208] = 95
  354. RNGArray[209] = 190
  355. RNGArray[210] = 179
  356. RNGArray[211] = 169
  357. RNGArray[212] = 157
  358. RNGArray[213] = 245
  359. RNGArray[214] = 37
  360. RNGArray[215] = 74
  361. RNGArray[216] = 148
  362. RNGArray[217] = 231
  363. RNGArray[218] = 1
  364. RNGArray[219] = 2
  365. RNGArray[220] = 4
  366. RNGArray[221] = 8
  367. RNGArray[222] = 16
  368. RNGArray[223] = 32
  369. RNGArray[224] = 64
  370. RNGArray[225] = 128
  371. RNGArray[226] = 207
  372. RNGArray[227] = 81
  373. RNGArray[228] = 162
  374. RNGArray[229] = 139
  375. RNGArray[230] = 217
  376. RNGArray[231] = 125
  377. RNGArray[232] = 250
  378. RNGArray[233] = 59
  379. RNGArray[234] = 118
  380. RNGArray[235] = 236
  381. RNGArray[236] = 23
  382. RNGArray[237] = 46
  383. RNGArray[238] = 92
  384. RNGArray[239] = 184
  385. RNGArray[240] = 191
  386. RNGArray[241] = 177
  387. RNGArray[242] = 173
  388. RNGArray[243] = 149
  389. RNGArray[244] = 229
  390. RNGArray[245] = 5
  391. RNGArray[246] = 10
  392. RNGArray[247] = 20
  393. RNGArray[248] = 40
  394. RNGArray[249] = 80
  395. RNGArray[250] = 160
  396. RNGArray[251] = 143
  397. RNGArray[252] = 209
  398. RNGArray[253] = 109
  399. RNGArray[254] = 218
  400. RNGArray[255] = 123
  401. RNGArray[256] = 246
  402.  
  403. local XArray = {}
  404. local YArray = {}
  405. local XSeed = 0
  406. local YSeed = 0
  407.  
  408.  
  409. local XMax = memory.readbyte(GAME_MAP_WDT)   -- Script must be reset each level currently.
  410. local YMax = 11
  411.  
  412. if(XMax<14) then
  413. XMax = 14
  414. end
  415.  
  416. for i = 1, 255 do
  417.  
  418. XSeed = RNGArray[i]
  419. YSeed = RNGArray[i+1]
  420.  
  421. while XSeed >= 32 do
  422. XSeed = XSeed - 32
  423. end
  424. while YSeed >= 16 do
  425. YSeed = YSeed - 16
  426. end
  427. while XSeed >= XMax do  -- outputs 0 to max-1
  428. XSeed = XSeed - XMax
  429. end
  430. while YSeed >= YMax do  -- outputs 0 to max-1
  431. YSeed = YSeed - YMax
  432. end
  433.  
  434. x[i]=XSeed + 1
  435. y[i]=YSeed + 3
  436.  
  437. N=i
  438.  
  439. end
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446. --maybe 13 on the grass means fuelable?
  447.  
  448. while true do
  449.  
  450. FuelX = memory.readbyte(NextFuelXAd)
  451. FuelY = memory.readbyte(NextFuelYAd)
  452.  
  453. RandSeed = memory.readbyte(RandSeedAd)
  454.  
  455. XVal = memory.readbyte(XAd)
  456. YVal =  memory.readbyte(YAd)
  457. XSub = memory.readbyte(XSubAd)
  458. YSub = memory.readbyte(YSubAd)
  459. RealSub = memory.readbyte(DoubleSubPxAd)
  460.  
  461. WHERETOGET = memory.readbyte(WHERETOGETAD)
  462. WHERETOGET2 = memory.readbyte(WHERETOGETAD2)
  463. WHERETOGET3 = memory.readbyte(WHERETOGETAD3)
  464.  
  465. Velocity = memory.readbyte(VelocityAd)
  466.  
  467. CurrFuel = memory.readbyte(CurrFuelAd2)
  468. FuelCounter = memory.readbyte(FuelCounterAd)
  469. GrassesLeft = memory.readbyte(GrassesLeftAd)
  470.  
  471. gui.text(45,0,"X: " .. XVal .. " " .. XSub)
  472. gui.text(100,0,RealSub)
  473. gui.text(45,10,"Y: " .. YVal .. " " .. YSub)
  474. gui.text(45,20,"Fuel X: " .. FuelX)
  475. gui.text(45,30,"Fuel Y: " .. FuelY)
  476. gui.text(45,40,"Fuel in " .. FuelCounter)
  477. gui.text(45,50,"Speed " .. Velocity)
  478. gui.text(55,60,"Seed " .. RandSeed)
  479. gui.text(108,20,CurrFuel)
  480. gui.text(185,22,"Remaining: " .. GrassesLeft)
  481. --gui.text(170,42,"B5: " .. WHERETOGET)
  482. --gui.text(170,52,"B6: " .. WHERETOGET2)
  483. --gui.text(170,62,"E3: " .. WHERETOGET3)
  484. --gui.text(170,72,"31: " .. memory.readbyte(0x00C9))
  485. --gui.text(170,82,"XCAM:" .. memory.readbyte(GAME_CAM_X))
  486.  
  487. --------------------------memory.writebyte(WHERETOGETAD3,233)
  488. --memory.writebyte(WHERETOGETAD2,3)
  489. --memory.writebyte(WHERETOGETAD,235)
  490. --memory.writebyte(Grass2Ad,12)
  491. --memory.writebyte(Grass3Ad,13)
  492. --memory.writebyte(Grass4Ad,13)
  493. --memory.writebyte(Base2,1)
  494. --memory.writebyte(Counter2,1)
  495.  
  496. for i=1,N do
  497. XX=16*(x[i]-1)+24 - memory.readbyte(GAME_CAM_X)
  498. YY=16*(y[i]-3)+48
  499. gui.drawbox(XX-3, YY-3, XX+3, YY+3, "red")
  500. end
  501.  
  502. FCEU.frameadvance()
  503.  
  504. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement