@Billy: I don't think it's about objects, since objects are stored far from this in memory: Code: $0000 - $7FFF Metablock table $8000 - $8FFF Level layout $9000 - $A9FF Block table $AA00 - $A?FF Decompression buffer $AC00 - $AFFF Sprite table input. Intermediate storage for sprite attribute table data destined for $DD00 or $F800. $B000 - $D5FF Object attribute table $D600 - $D8FF Primary collision index $D900 - $DBFF Secondary collision index As you can see, the first group in memory are the "metablocks" ie the chunks. I'm pretty sure they're safe here, otherwise the only visible chunk would likely be garbled. Then there's the level layout, the problem could be here. Maybe there are too many chunks and one of them overwrites the level layout. Problem: isn't the level layout used for collisions? if so, the collisions should be wrong, but they're right. I could be wrong though. If this is the problem, there may be too many chunks, so if you added new chunks, you may have too many of them. If that's the problem, you'll either have to delete some chunks or to load uncompressed chunks from the rom rather than decompressing them into the ram. Like this: http://info.sonicretro.org/SCHG_How-to:Loa..._ROM_in_Sonic_1 but you'll have to adapt the solution to work with S2.