Динамическая палитра на каждом уровне в Sonic 2 SMS
(Оригинальное руководство написано Mikel)
Если вы играли раньше в Sonic the Hedgehog 2 на Sega Master System, то могли заметить, что в четырёх зонах нет динамической палитры, и только три зоны в оригинальной игре используют её. Динамической палитры нет в:
Underground Zone, Green Hills Zone, Gimmick Mountain Zone и Scrambled Egg Zone.
Итак, если вы хотите добавить динамическую палитру на эти четыре этапа, то следуйте инструкции ниже:
Сначала, найдите строчку LevelPaletteValues, она находится в файле src/s2.asm дизассембла игры, там вы увидите что-то вроде этого:
<asm>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</asm>
Возьмем для примера Underground Zone:
<asm>.db $0E, $09 .db $0E, $09 .db $0E, $09</asm>
Как вы видите, тут две палитры: $0E и $09. $0E отвечает за палитру самой зоны, а $09 отвечает за палитру Соника в Underground Zone.
Затем откроем Aspect Edit и нажмем кнопку Open Pallete:
Сейчас мы будем редактировать палитру Underground Zone. Для этого откройте файл "palette_ugz.bin", который находится в папке palettes дизассембла, и перед нами появится палитра:
Теперь можно спокойно отредактировать палитру по вашему вкусу, а после того, как Вы закончите работать с ней, нажмите на кнопку Save Palette As.
Для того чтобы, палитра была динамической, надо сохранить её в отдельный файл. Палитру второго акта сохраните как "palette_ugz2.bin", третьего — "palette_ugz3.bin".
Палитру GHZ редактируйте точно также, только файлы назовите так: "palette_ghz2.bin" и "palette_ghz3.bin". То же самое проделайте и для SEZ с GMZ.
Если вы хотите, чтобы Underground Zone был в стиле "первый акт днем, а третий ночью", то используйте этот код:
<asm>;ugz .db $0E, $09 .db $2F, $09 .db $30, $09</asm>
А если вы хотите, чтобы было то же самое, только начиная с уровня Green Hills Zone и заканчивая Scrambled Egg Zone, сделайте следующее:
<asm>;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</asm>
Ну и наконец добавьте вот эти строки в конец файла src/includes/palettes.asm:
<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"</asm>
Теперь скомпилируйте ROM и можете любоваться палитрой ваших зон.