Objects usually don't load art themselves, they just store art pointer and mappings offset to display sprite. Objects expect tiles to be loaded already at specified VRAM offset. There is only one exception in Sonic 1, the Sonic's object. It has a routine that loads his tiles dynamically, only ones for the current frame (sprite). I'd add Spin Dust object (Obj05) here, in case you added it with the Spin Dash guide. Most of art is loaded during title cards sequence and another part of it is loaded afterwards, overwriting title cards tiles (VRAM space is usually not enough to keep everything, so art is dynamically loaded in certain moments of game). Loading Nemesis compressed art is mainly held by Pattern Load Cues system, there are data blocks telling what to load. Check out _incPattern Load Cues.asm. I assume you want to load static uncompressed art on level's init. You can't change the existing code to load some art as uncompressed as there is no 'system' besides PLC to handle this. You need to write a new code for your needs. Actually, it's not a hard thing to do and it doesn't take too much lines. First off, you need to set VRAM access at the offset you want to write to. This requires a special request to be sent to the VDP Control Port, format can be found here: http://sonicresearch.org/forums/index.php?showtopic=2199. Dealing with it is a real pain, so I'd suggest using a special macro here: ; ============================================================= ; Macro to set VRAM write access ; Arguments: 1 - raw VRAM offset ; 2 - register to write access bitfield in (Optional) ; ------------------------------------------------------------- vram macro if (narg=1) move.l #($40000000+((1&$3FFF)<<16)+((1&$C000)>>14)),($C00004).l else move.l #($40000000+((1&$3FFF)<<16)+((1&$C000)>>14)),2 endc endm This macro was taken from SVN disassembly and slightly edited by me. If you are using SVN diasm, it's already there, called vramLoc. Now, the code: move #$2700,sr ; 68K => disable interrupts lea ($C00000).l,a6 ; a6 => VDP Data Port vram $XXXX ; VDP => set VRAM access lea (YOUR_UNC_ART).l,a1 ; a1 => Uncompressed art moveq #XX,d1 ; d1 -> Number of tiles to load minus one jsr LoadTiles This code should be placed somewhere in "Level:" routine, after 'jsr Hud_Base' line is a good place for it. The code uses standard 'LoadTiles' subroutine, which is just designed to load uncompressed tiles. This subroutine needs art offset to be loaded in A1 and number of tiles in D1. Disabling interrupts in the first line will pervert art from being spoiled occasionally, if LoadTiles gets interrupted (interrupt routines set VDP to write to many other locations, breaking the current VRAM offset).