Actions

SCHG How-to

Difference between revisions of "Add Dynamic Palettes to Sonic 2 SMS"

From Sonic Retro

m (Text replacement - "</asm>" to "</syntaxhighlight>")
m (Text replacement - "<asm>" to "<syntaxhighlight lang="asm">")
Line 8: Line 8:
  
 
First, go to LevelPaletteValues in the Sonic 2 SMS disassembly, located in src/s2.asm, and you will get something like this:
 
First, go to LevelPaletteValues in the Sonic 2 SMS disassembly, located in src/s2.asm, and you will get something like this:
<asm>LevelPaletteValues:
+
<syntaxhighlight lang="asm">LevelPaletteValues:
 
.db $0E, $09
 
.db $0E, $09
 
.db $0E, $09
 
.db $0E, $09
Line 37: Line 37:
 
.db $17, $0D</syntaxhighlight>
 
.db $17, $0D</syntaxhighlight>
 
Take a look at Underground Zone for example:
 
Take a look at Underground Zone for example:
<asm>.db $0E, $09
+
<syntaxhighlight lang="asm">.db $0E, $09
 
.db $0E, $09
 
.db $0E, $09
 
.db $0E, $09</syntaxhighlight>
 
.db $0E, $09</syntaxhighlight>
Line 57: Line 57:
  
 
Then, If you want Underground to go through a Day-to-Night, do this:
 
Then, If you want Underground to go through a Day-to-Night, do this:
<asm>;ugz
+
<syntaxhighlight lang="asm">;ugz
 
.db $0E, $09
 
.db $0E, $09
 
.db $2F, $09
 
.db $2F, $09
 
.db $30, $09</syntaxhighlight>
 
.db $30, $09</syntaxhighlight>
 
And for Green Hills Zone to Scrambled Egg, do this:
 
And for Green Hills Zone to Scrambled Egg, do this:
<asm>;ghz
+
<syntaxhighlight lang="asm">;ghz
 
.db $13, $04
 
.db $13, $04
 
.db $31, $04
 
.db $31, $04
Line 75: Line 75:
 
.db $36, $0B</syntaxhighlight>
 
.db $36, $0B</syntaxhighlight>
 
And lastly, add these lines at the end of src/includes/palettes.asm:
 
And lastly, add these lines at the end of src/includes/palettes.asm:
<asm>Palette_UGZ_2:    ;$2F
+
<syntaxhighlight lang="asm">Palette_UGZ_2:    ;$2F
 
.incbin "palettes\palette_ugz2.bin"
 
.incbin "palettes\palette_ugz2.bin"
  

Revision as of 21:46, 20 December 2015

(Original guide by Mikel)

Ok, if you have been playing Sonic 2 SMS in the past, you may notice that four zones in the game lack the use of Dynamic Palettes, as only three of the zones in the original game use them. The four zones that lacked Dynamic Palettes were:

Underground Zone, Green Hills Zone, Gimmick Mountain Zone and Scrambled Egg Zone.

So, if you want to add Dynamic Palettes for those four zones in Sonic 2 SMS, follow these instrcutions below:

First, go to LevelPaletteValues in the Sonic 2 SMS disassembly, located in src/s2.asm, and you will get something like this:

LevelPaletteValues:
.db $0E, $09
.db $0E, $09
.db $0E, $09
;shz
.db $0F, $05
.db $10, $06
.db $0F, $05
;alz
.db $11, $07
.db $12, $08
.db $11, $07
;ghz
.db $13, $04
.db $13, $04
.db $13, $04

.db $14, $0A
.db $14, $0A
.db $14, $0A

.db $15, $0B
.db $15, $0B
.db $15, $0B

.db $16, $0C
.db $16, $0C
.db $17, $0D

Take a look at Underground Zone for example:

.db $0E, $09
.db $0E, $09
.db $0E, $09

As you can see, $0E is the zone palette for Underground Zone, and $09 is the palette for Sonic in Underground Zone.

Then, Open up Aspect Edit, and click on the Open Palette button: AspectEditOpenPalette.png

Right now, we are going to edit Underground Zone's palette, so click on "palette_ugz.bin" (Which is located in the palettes folder) in the file browser: AspectEditPaletteFile.png

Then, you can edit the colors in the palette, after you're done, click the Save Palette as button: AspectEditPaletteEditor.png When it asks for a new filename, save it as "palette_ugz2.bin" for Act 2, and "palette_ugz3.bin" for Act 3.

For GHZ, do the same method, but open "palette_ghz.bin", and save it as "palette_ghz2.bin" for Act 2, and "palette_ghz3.bin" for Act 3.

Same goes for SEZ, and GMZ. open "palette_sez.bin" for SEZ, and "palette_gmz.bin" for GMZ, for SEZ, save it as "palette_sez2.bin" for Act 2, and "palette_sez3.bin" for Act 3. And for GMZ, save it as "palette_gmz2.bin" for Act 2, and "palette_gmz3.bin" for Act 3.

Then, If you want Underground to go through a Day-to-Night, do this:

;ugz
.db $0E, $09
.db $2F, $09
.db $30, $09

And for Green Hills Zone to Scrambled Egg, do this:

;ghz
.db $13, $04
.db $31, $04
.db $32, $04
;gmz
.db $14, $0A
.db $33, $0A
.db $34, $0A
;sez
.db $15, $0B
.db $35, $0B
.db $36, $0B

And lastly, add these lines at the end of src/includes/palettes.asm:

Palette_UGZ_2:    ;$2F
.incbin "palettes\palette_ugz2.bin"

Palette_UGZ_3:    ;$30
.incbin "palettes\palette_ugz3.bin"

Palette_GHZ_2:    ;$31
.incbin "palettes\palette_ghz2.bin"

Palette_GHZ_3:    ;$32
.incbin "palettes\palette_ghz3.bin"

Palette_GMZ_2:    ;$33
.incbin "palettes\palette_gmz2.bin"

Palette_GMZ_3:    ;$34
.incbin "palettes\palette_gmz3.bin"

Palette_SEZ_2:    ;$35
.incbin "palettes\palette_sez2.bin"

Palette_SEZ_3:    ;$36
.incbin "palettes\palette_sez3.bin"

Then, build the rom, and check out your new Dynamic palettes for UGZ, GHZ, GMZ, and SEZ.

That's all, if you have any questions, PM Mikel.