It is a patch that expands the item memory table and makes it possible to store coin acquisition records etc. in units of 1 tile both vertically and horizontally. Eliminates the loss of untaken coins above and below the taken coins when warp you to another level. The same applies to Yoshi blocks. In addition, you can use a dedicated memory table for each level to record earned coins at more levels. It is also possible to share a memory table at several levels. By moving the level, in addition to erasing all coins at the source level, it is also possible to initialize the memory table. It also comes with a memory table read routine for Objectool 0.5.
If you exceed the memory table usage permission range, Mario's graphic will be strange and you can see that it exceeds the permission range. The permission range can be expanded.
It uses a lot of FreeRAM. Also consider using a patch that adds FreeRAM.
-Caution- If layer 2 is used as the terrain and coins overlap at the initial positions of layer 1 and layer 2, even if only one coin is acquired, it will be recorded in the memory table as if both coins were acquired.
While a useful patch (in fact, I'd say even a very useful one), it has got one ultimate flaw:
Item memord 2 removes not just item memory dependent extended objects but also objects 0x01 to 0x0E (see ?-blocks and cement blocks).
While we're rejecting it: It would be nice if you'd include some shared routines to allow reading to and writing from item memory, especially because set item memory is SNES only. You should also include an UberASM code to clear item memory since the current method (check if the screen number is equal to the last five bytes of the secondary exit number) is very unintuitive and can happen unintentionally with teleport blocks which use a set destination instead of the current screen number (the method to share item memory between two levels is cool, though, not to mention necessary). Tip: Use load: which runs before objects are loaded.