Empty Sonic 1 (Disassembly) + Art Importing Guide

Unlimited Trees

Going home
Aug 28, 2017
Hello my dudes. I am Unlimited Trees. So for awhile now I've been thinking about how not many hacks have original art/level art edits, and the ones that do aren't very good. So I've decided to make a disassembly of Sonic 1 which is designed for people who want to focus on artwork. I'm not sure if this idea has been done before but I felt like it'd be fun to do. Also included in this thread is a guide on easily importing level art, so if you want to learn about that you can just scroll down.

So, Empty Sonic 1 is a modifed disassembly of MarkeyJester's original Sonic 1 Two-Eight disassembly. And as the name implies, each level has had all of its art, chunks, and object placement stripped away. The Special Stages even have their layouts completely blank, so you can make your own layouts without having to worry about getting rid of the layout itself.

Some various things to know about this disassembly includes:
-With it being based off the original Two-Eight disassembly, it's based off the Hivebrain disassembly, so if you're familiar with that disassembly everything should be pretty much the same
-In case you aren't already aware, the Two-Eight disassembly makes it so that level chunks are 128x128 pixels big instead of 256x256, and this also means you can make more chunks
-The Advanced Error Handler by vladikcomper has been already implemented, so you don't need to worry about installing an error handler
-Not only has everything in each zone been removed, but the level sizes have been changed, so you can use the entire level space.
-The Pattern load cues.asm file has been modifed, so each zone only loads the main level art and springs/spikes. This means you can either use all the space while sacrificing level gimmicks, or you can change the pattern load cues yourself so that they use their own objects
-The PalCycle and AniArt routines have an rts instruction, so this means the levels don't use Palette cycling or animated art, so you can worry about just importing the art first and then putting in the palette cycling and animated art.
-The Art importing guide is also included in the disassembly inside the ImportGuide folder

Empty Sonic 1 Disassembly
Example Game

Beginners' Art Importing Guide - How to Easily Import Artwork
Though this can be found in the diassembly, here is the complete guide in a single spoiler tag. But,
before I start this guide, let me first start by thanking LuigiXHero for originally teaching me how to do this. If it weren't for him I wouldn't know how to do any of this, so here we go.

I've noticed that in the hacking community, not many people know how to actually make custom artwork for ROM hacks. So, not only have I created a disassembly specifically for this purpose, but also decided to
make a simple public guide that teaches people how to easily import art. So here we go.

First you'll need the following tools:
-A basic Paint program (I use Paint.NET but you can use whatever)
-a tool called "IrfanView"

So here we go!
First, before we start anything, make sure that for the level you're importing the art into, you first
delete all of the chunks/blocks/tiles. If you're using the Empty Sonic 1 disassembly, you wouldn't have to
worry about this.

Next, you're going to want to make a little spritesheet which will contain all the art you'll be importing.
If you're importing chunks, you'll want to make sure the size of the picture is a multiple of 128 (or 256, if you're using the original Sonic 1 disassembly). If you're importing blocks, you'll want it to be a multiple of 16.

Anyways, once you've saved the art, you then want to open the file in IrfanView. Then, you'll want to go to Image>Decrease Color Depth. At this point, you're going to want to then set the Color Depth to 4BPP (16 colors)

Once this is done, you're going to want to go to Image>Palette>Edit Palette.

Here, you're going to see all the colors used. This is where SonLVL comes in. You'll notice that in InfanView
it shows the RGB values. You want to take these values and copy them into the color palette. Once you've copied all the colors, you're going to want to then export the color palette as a JASC-PAL.

After you've exported the palette and put the palette file somewhere, you want to go back to InfanView, and
go to Image>Palette>Import Palette. From here, you want to select the palette file you exported. After this,
you want to then save the picture.

Finally, you want to go in SonLVL, and in the Art section, you want to go to the chunks and simply import the art. Make sure you have the correct palette line selected, by the way! Then after this, you're done and you can now use the art in the level and give the blocks collisions.

Anyways, that's pretty much it. Special Thanks to Novedicus, who helped out with the background scrolling for the Example Game (it was actually for a different game but I decided to simply reuse the code for this thing aswell since I thought it'd look cool)
EDIT: I tried fixing the images. I'm also thinking of making a mini guide for setting up collisions


Last edited: