Game objectives
- Emulator used: BizHawk 2.9.1 (SubNesHawk core)
- Aims for fastest time
- Uses hardest difficulty
- Manipulates luck
Every block chunk is determined by the value of address $98, and this value depends on the RNG.
The RNG depends on CPU cycles, and every frame this game polls input twice (to avoid the
DPCM glitch). So, you can manipulate the RNG with subframe inputs. That's why I used SubNesHawk core.
In this run, basically, block chunk 0x09 and 0x00 appear alternately.
Block chunk 0x00 doesn't contain any block, but it doesn't appear continuously.
I
put a script for block chunk manipulation.
This script takes an input sequence (you can copy-paste it from TAStudio), and mutates it to manipulate a block chunk.
I made a romhack for route planning. In the romhack, block chunk 0x09 and 0x00 always appear alternately.
I
put the romhack patch and a testrun on the romhack.
There might still be a small room of micro-optimizations, but anyway I did my best.
Note about the "E" item:
I haven't thoroughly analyzed this game, but I think you probably have to erase 3 or more blocks at once 3 times in order to obtain the "E" item. (See the code near $A799)
Here is a memory map:
addr | type | description |
---|
$71 | u8 | scroll subpixel |
$78 | u8 | wait timer for player1 movement |
$79 | u8 | wait timer for player2 movement |
$98 | u8 | block chunk ID |
$FC | u8 | PPU scroll y |
$0460-$06CF | u8[24 * 26] | board (24 columns, 26 rows) |
nymx: Claiming for judging.
nymx: I checked with our staff, and it appears that there is no problem with the submitted file...even though my first thought appeared so. The time shows correctly, but the frame count is higher....which is not a problem, since they are sub-frames. I have so little experience seeing the result of subframe created TASes, that it was a bit odd.
In regards to subframes, I thought it was amazing to see the manipulation difference over the previous submission. NIce job.