Oay, so I need some help from some one who knows a few things about working with Sonic 3k. I'm trying to port Sonic 3k's level layout format into Sonic 2 for many reasons, mainly just because it's better, and conserves both ROM and RAM space, and while I have made some progress, I'm having a problem. First off, I ported the actual level layout reading code into my hack, and made the necessary changes to have support for 3 acts: Code (Text): loadLevelLayout: moveq #0,d0 move.w (Current_ZoneAndAct).w,d0 ror.b #2,d0 lsr.w #4,d0 andi.w #$FC,d0 lea (off_level).l,a0 movea.l (a0,d0.w),a0 lea (Level_layout_header).w,a1 move.w #$7FF,d2 loc_1C382: move.w (a0)+,(a1)+ dbf d2,loc_1C382 rts ; End of function loadLevelLayout I also changed the RAM equates a bit: Code (Text): Level_Layout: Level_layout_header: ds.w 4 Level_layout_main: ds.w $40 Level_Layout_End: ds.b $F78 ;Unused I'm going to ask my first question here: are the $F78 bytes going to always be unused? From my understanding, all it will need in RAM is the 8-byte header and $40 words to function, so the other bytes would be free. After this, I basically just used SonLvL level converter to convert a few of the level layouts to use the new format, and changed the array at Off_Level to something more like this: Code (Text): Off_Level: dc.l Level_EHZ1 ; $00 ;Emerald Hill Zone dc.l Level_EHZ2 Clearly however, I missed something; the end result is this: (Yes, I did convert this level properly). Does anyone know what I have forgotten?