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