Once upon a time, there was a young little boy who is very naive. But since there was a bad man, and soon the boy was kidnapped by him. After then, the poor little boy has been hired for over 30 years for arranging millions of boxes, without any wages. This, is a definite scene of a sweatshop, and is caught by one of the civic groups. Therefore, they filed a complaint to the Ministry of Employment and Labor, but it was not settled yet. And this is how the story of Sokoban begins.
...Well, it was a joke, you know. To tell the truth, Sokoban (倉庫番, pronounced as "sōkoban") is a classic puzzle game was released in 1982. The name comes from Japan and means "warehouse keeper". As simple as that name is, so is the idea of this game: A level represents a store room, where boxes appear to be randomly placed. You help the warehouse keeper to push the boxes around the maze of the room so that, at the end, all boxes are on marked fields. The only restrictions are that the warehouse keeper can only push a box, never pull, and that just one box may be pushed at a time. Ref.
This run solves all 255 levels including five tutorial levels.
Game objectives
- Emulator used: DeSmuME 0.9.9
- Aims for fastest time (to clear the game)
Addresses
- X Camera: 02156480 - Fixed Point, 2 bytes
- Y Camera: 02156488 - Fixed Point, 2 bytes
- Z Camera: 02156484 - Fixed Point, 2 bytes
- Steps: 020D9604 - Unsigned, 1 byte
Notes
- An each step requires at least 10 frames, but it consumes more when there are more objects in specific stages. For example, Stage 232 requires 12~15 frames for an each step.
- The way to spend the least frames for an each step is inserting one input into the earliest frame which does accept the input as a step. Touching the screen will spend 2 more frames than it, and continuing pressing the buttons may cause of delay between steps.
- While trying various ways to optimize between steps, I've found an exception to the method above. Let's see the 25th step at Stage 232. In this run, the step's input (using the method above) is on frame 458778, but if you add (206,166) to frame 458584, the 25th step's input at the stage could be on frame 458767. So, we can figure out that it saves 11 frames. (But this trick consumes more later frames so couldn't be used in this movie.)
- The re-record count doesn't show the actual count, because I re-recorded with text-editing most of the movie. This process would be very shorted if there were Piano Roll in DeSmuME.
- This run does not aims for shortest input. Since the game doesn't show credits automatically after clearing the whole stages, I added some inputs that show and end up credits for encoding. So, if you want to beat this movie, make sure to be faster than this movie which does aim for shortest input.
Possible Improvements
- Optimizing solution is the most simple way to save frames. This can save at least 10 frames per steps.
- Optimizing frame count between steps could be another way to improve the run. Try to optimize it with various ways like using touch screen, etc.
Special Thanks
Thanks to Nitrodon's run for giving me motivation to make this run.
And also thanks to Brian Damgaard for making YASC to help me optimize solutions.
Screenshot Suggestion
12490, 15772, 19715, 30697, 52030, 87660, 109208, 114850, 132032, 141916, 155511, 183461, 217703
Others
Since the screen at the end of each stage is passed quickly, I have listed the step counts here.
Stage | Steps |
---|---|
T01 | 14 |
T02 | 7 |
T03 | 14 |
T04 | 17 |
T05 | 23 |
001 | 23 |
002 | 46 |
003 | 45 |
004 | 31 |
005 | 148 |
006 | 66 |
007 | 110 |
008 | 194 |
009 | 127 |
010 | 54 |
011 | 84 |
012 | 95 |
013 | 44 |
014 | 93 |
015 | 89 |
016 | 98 |
017 | 152 |
018 | 59 |
019 | 62 |
020 | 30 |
021 | 82 |
022 | 31 |
023 | 31 |
024 | 174 |
025 | 75 |
026 | 40 |
027 | 40 |
028 | 110 |
029 | 195 |
030 | 132 |
031 | 230 |
032 | 142 |
033 | 110 |
034 | 98 |
035 | 251 |
036 | 51 |
037 | 229 |
038 | 104 |
039 | 177 |
040 | 135 |
041 | 87 |
042 | 44 |
043 | 97 |
044 | 50 |
045 | 60 |
046 | 27 |
047 | 158 |
048 | 35 |
049 | 41 |
050 | 72 |
051 | 28 |
052 | 52 |
053 | 68 |
054 | 95 |
055 | 79 |
056 | 115 |
057 | 86 |
058 | 122 |
059 | 243 |
060 | 266 |
061 | 59 |
062 | 57 |
063 | 222 |
064 | 41 |
065 | 81 |
066 | 75 |
067 | 316 |
068 | 257 |
069 | 61 |
070 | 84 |
071 | 129 |
072 | 244 |
073 | 168 |
074 | 135 |
075 | 124 |
076 | 153 |
077 | 506 |
078 | 76 |
079 | 284 |
080 | 282 |
081 | 49 |
082 | 329 |
083 | 38 |
084 | 57 |
085 | 51 |
086 | 44 |
087 | 70 |
088 | 110 |
089 | 63 |
090 | 121 |
091 | 104 |
092 | 267 |
093 | 100 |
094 | 88 |
095 | 432 |
096 | 454 |
097 | 111 |
098 | 214 |
099 | 219 |
100 | 76 |
101 | 144 |
102 | 107 |
103 | 118 |
104 | 268 |
105 | 199 |
106 | 476 |
107 | 130 |
108 | 247 |
109 | 352 |
110 | 80 |
111 | 115 |
112 | 80 |
113 | 85 |
114 | 73 |
115 | 36 |
116 | 66 |
117 | 77 |
118 | 51 |
119 | 78 |
120 | 239 |
121 | 146 |
122 | 161 |
123 | 129 |
124 | 196 |
125 | 184 |
126 | 517 |
127 | 277 |
128 | 117 |
129 | 382 |
130 | 97 |
131 | 191 |
132 | 208 |
133 | 230 |
134 | 335 |
135 | 265 |
136 | 412 |
137 | 42 |
138 | 436 |
139 | 546 |
140 | 67 |
141 | 88 |
142 | 123 |
143 | 57 |
144 | 54 |
145 | 67 |
146 | 89 |
147 | 198 |
148 | 49 |
149 | 99 |
150 | 195 |
151 | 131 |
152 | 118 |
153 | 137 |
154 | 314 |
155 | 67 |
156 | 60 |
157 | 102 |
158 | 81 |
159 | 217 |
160 | 196 |
161 | 153 |
162 | 248 |
163 | 156 |
164 | 152 |
165 | 82 |
166 | 166 |
167 | 488 |
168 | 179 |
169 | 254 |
170 | 388 |
171 | 300 |
172 | 416 |
173 | 273 |
174 | 316 |
175 | 289 |
176 | 228 |
177 | 159 |
178 | 714 |
179 | 421 |
180 | 202 |
181 | 293 |
182 | 198 |
183 | 224 |
184 | 227 |
185 | 223 |
186 | 259 |
187 | 254 |
188 | 128 |
189 | 646 |
190 | 108 |
191 | 273 |
192 | 222 |
193 | 245 |
194 | 278 |
195 | 362 |
196 | 284 |
197 | 150 |
198 | 251 |
199 | 306 |
200 | 155 |
201 | 461 |
202 | 261 |
203 | 248 |
204 | 487 |
205 | 140 |
206 | 240 |
207 | 217 |
208 | 547 |
209 | 191 |
210 | 386 |
211 | 207 |
212 | 172 |
213 | 230 |
214 | 444 |
215 | 377 |
216 | 220 |
217 | 207 |
218 | 340 |
219 | 325 |
220 | 247 |
221 | 435 |
222 | 348 |
223 | 518 |
224 | 518 |
225 | 465 |
226 | 559 |
227 | 388 |
228 | 457 |
229 | 304 |
230 | 303 |
231 | 220 |
232 | 639 |
233 | 542 |
234 | 396 |
235 | 704 |
236 | 534 |
237 | 118 |
238 | 838 |
239 | 302 |
240 | 407 |
241 | 366 |
242 | 292 |
243 | 510 |
244 | 734 |
245 | 751 |
246 | 989 |
247 | 273 |
248 | 741 |
249 | 482 |
250 | 644 |
Total | 54133 |
Noxxa: Claiming for judgment.
Noxxa: I can't get the run to sync. Setting to "needs more info" until more sync information is provided (see discussion thread). This has been resolved now.
Noxxa: Added YouTube encode, and accepting for the Vault.
Guga: Processing...