Actions

SCHG How-to

Separate title art from GHZ/make GHZ load alternate art

From Sonic Retro

Revision as of 04:54, 11 August 2008 by MKAmeX (talk | contribs)

(Guide originally written by MKAmeX)

This guide assumes you have already merged the two GHZ files to make a single file (In this case, it should be 8x8GHZ.bin), this is actually a really easy thing to do.


First, load _inc/Main level load blocks.asm

You should see something like:

<asm> dc.l Nem_GHZ_2nd+$4000000 dc.l Blk16_GHZ+$5000000 dc.l Blk256_GHZ</asm>

Change it into:

<asm> dc.l Nem_GHZ+$4000000  ;changed from Nem_GHZ_2nd dc.l Blk16_GHZ+$5000000 dc.l Blk256_GHZ</asm>

Next, open sonic1.asm and look for:

<asm>Blk16_GHZ: incbin map16\ghz.bin even Nem_GHZ_1st: incbin artnem\8x8ghz1.bin; Now only title screen and ending use this. even Nem_GHZ_2nd: incbin artnem\8x8ghz2.bin; Title Screen and ending only. even Blk256_GHZ: incbin map256\ghz.bin even Blk16_LZ: incbin map16\lz.bin even</asm>

add this above Nem_GHZ_1st:: <asm>Nem_GHZ: incbin artnem\8x8ghz.bin  ; New GHZ file. even</asm>

It should look like:

<asm>Blk16_GHZ: incbin map16\ghz.bin even Nem_GHZ: incbin artnem\8x8ghz.bin  ; New GHZ file. even Nem_GHZ_1st: incbin artnem\8x8ghz1.bin; Now only title screen uses this. even Nem_GHZ_2nd: incbin artnem\8x8ghz2.bin; Title Screen only. even Blk256_GHZ: incbin map256\ghz.bin even Blk16_LZ: incbin map16\lz.bin even</asm>

Next, go to _inc/Pattern load cues.asm and find:

<asm>PLC_GHZ: dc.w $B dc.l Nem_GHZ_1st; GHZ main patterns dc.w 0 dc.l Nem_GHZ_2nd; GHZ secondary patterns dc.w $39A0</asm>

Change Nem_GHZ_1st into Nem_GHZ and remove Nem_GHZ_2nd. Next, you have to change $B into $A so it knows how many files to load. You code should look like this.

<asm>PLC_GHZ: dc.w $A dc.l Nem_GHZ; GHZ main patterns dc.w 0</asm>

Load up your rom and it should load Correctly. You won't be able to tell if it worked or not unless you edit the art.

Also, If you're going to be editing the art, it's best that you make a seperate file for the title screen. To do this, open sonic1.asm and look for Title_LoadText: and scroll down until you see:

<asm> lea (Blk16_GHZ).l,a0; load GHZ 16x16 mappings move.w #0,d0 bsr.w EniDec lea (Blk256_GHZ).l,a0; load GHZ 256x256 mappings</asm>

change it into:

<asm> lea (Blk16_title).l,a0; load title 16x16 mappings move.w #0,d0 bsr.w EniDec lea (Blk256_title).l,a0; load title 256x256 mappings</asm>

Now scroll down a little more to:

<asm>lea (Nem_GHZ_1st).l,a0; load GHZ patterns</asm>

change it into:

<asm>lea (Nem_title).l,a0; load title patterns</asm>

Now go to Blk16_GHZ and you should see:

<asm>Blk16_GHZ: incbin map16\ghz.bin even Nem_GHZ: incbin artnem\8x8ghz.bin; GHZ primary patterns even Nem_GHZ_1st: incbin artnem\8x8ghz1.bin; GHZ primary patterns even Nem_GHZ_2nd: incbin artnem\8x8ghz2.bin; GHZ secondary patterns even Blk256_GHZ: incbin map256\ghz.bin even</asm>

Copy Blk16_GHZ: and BLk256_GHZ: and past them both above Blk16_GHZ:.

<asm>Blk16_GHZ: incbin map16\ghz.bin even Blk256_GHZ: incbin map256\ghz.bin even Blk16_GHZ: incbin map16\ghz.bin even Nem_GHZ: incbin artnem\8x8ghz.bin; GHZ primary patterns even Nem_GHZ_1st: incbin artnem\8x8ghz1.bin; GHZ primary patterns even Nem_GHZ_2nd: incbin artnem\8x8ghz2.bin; GHZ secondary patterns even Blk256_GHZ: incbin map256\ghz.bin even</asm>

Change it so it looks like this:

<asm>Blk16_title: incbin map16\title.bin even Blk256_title: incbin map256\title.bin even Blk16_GHZ: incbin map16\ghz.bin even Nem_GHZ: incbin artnem\8x8ghz.bin; GHZ primary patterns even Nem_GHZ_1st: incbin artnem\8x8ghz1.bin; GHZ primary patterns even Nem_GHZ_2nd: incbin artnem\8x8ghz2.bin; GHZ secondary patterns even Blk256_GHZ: incbin map256\ghz.bin even</asm>

Then add:

<asm>Nem_title: incbin artnem\8x8title.bin even</asm>

Add that right above Blk16_title:. You should have:

<asm>Nem_title: incbin artnem\8x8title.bin even Blk16_title: incbin map16\title.bin even Blk256_title: incbin map256\title.bin even Blk16_GHZ: incbin map16\ghz.bin even Nem_GHZ: incbin artnem\8x8ghz.bin; GHZ primary patterns even Nem_GHZ_1st: incbin artnem\8x8ghz1.bin; GHZ primary patterns even Nem_GHZ_2nd: incbin artnem\8x8ghz2.bin; GHZ secondary patterns even Blk256_GHZ: incbin map256\ghz.bin even</asm>


Now you have to add those files. Go to artnem and copy 8x8ghz1.bin and rename it into 8x8title.bin Then, go to map16 and copy ghz.bin and rename that into title.bin. Do the same thing for map256.

If you did it correct, congratulations! Your ending background might get messed up if you edit GHZ's art, so let's fix that. Go to _inc/Main level load blocks.asm and edit:

<asm> dc.l Nem_GHZ_2nd ; main load block for ending dc.l Blk16_GHZ dc.l Blk256_GHZ </asm>

into:

<asm> dc.l Nem_title_2nd ; main load block for ending dc.l Blk16_title dc.l Blk256_title </asm>

Next, go to artnem and make a copy of 8x8ghz2.bin and rename it into 8x8title2.bin. Open sonic1.asm and look for: <asm> Nem_title: incbin artnem\8x8title.bin even Blk16_title: incbin map16\title.bin even Blk256_title: incbin map256\title.bin even </asm>

change it into:

<asm> Nem_title: incbin artnem\8x8title.bin even Nem_title_2nd: incbin artnem\8x8title2.bin even Blk16_title: incbin map16\title.bin even Blk256_title: incbin map256\title.bin even </asm>

Next, go to Pattern load cues.asm and look for:

<asm> PLC_Ending: dc.w $E dc.l Nem_GHZ_1st ; GHZ main patterns dc.w 0 dc.l Nem_GHZ_2nd ; GHZ secondary patterns dc.w $39A0 </asm>

Change it to: <asm> PLC_Ending: dc.w $E dc.l Nem_title_1st ; title main patterns dc.w 0 dc.l Nem_title_2nd ; title secondary patterns dc.w $39A0 </asm>

And it should fix your ending art. OR you could do what you did with the title screen and make the ending load totally different art all together.