(опережаю это начало выделения- -это конец(просто в Рамке "код" выделение не работает))Для начало всё таки откроем сам АСМ код(sonic.asm).Ищем строку "Nem_GHZ_1st:".Созерцаем примерно такой код:
Blk16_GHZ: incbin map16\ghz.bin
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
Blk16_LZ: incbin map16\lz.bin
even
Nem_LZ: incbin artnem\8x8lz.bin; LZ primary patterns
evenДалее копируем лейблы "Blk16_GHZ", "Blk256_GHZ", и "Nem_GHZ_1st", и переименуем выделеные слова GHZ в TS(ниже).Должно появиться что-то типо этого:
; ---------------------------------------------------------------------------
; Compressed graphics - primary patterns and block mappings
; ---------------------------------------------------------------------------
Blk16_GHZ: incbin map16\ghz.bin
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
[b]Blk16_TS: incbin map16\ts.bin ;файл титульника
even
Nem_TS_1st: incbin artnem\8x8ts1.bin; файл титульника
even
Blk256_TS: incbin map256\ts.bin ;файл титульника
even[/b]
Blk16_LZ: incbin map16\lz.bin
evenЭто нужно для специальной графики для тайтл скрина.Если не поняли сейчас поймете потом.
Но что-то мы отвлеклись.Ищем "Title_LoadText:".Примерно такой код должен быть:
Title_LoadText:
move.w (a5)+,(a6)
dbf d1,Title_LoadText; load uncompressed text patterns
move.b #0,($FFFFFE30).w; clear lamppost counter
move.w #0,($FFFFFE08).w; disable debug item placement mode
move.w #0,($FFFFFFF0).w; disable debug mode
move.w #0,($FFFFFFEA).w
move.w #0,($FFFFFE10).w; set level to GHZ (00)
move.w #0,($FFFFF634).w; disable palette cycling
bsr.w LevelSizeLoad
bsr.w DeformBgLayer
lea ($FFFFB000).w,a1
[b]lea (Blk16_GHZ).l,a0; load GHZ 16x16 mappings[/b]
move.w #0,d0
bsr.w EniDec
[b]lea (Blk256_GHZ).l,a0; load GHZ 256x256 mappings[/b]
lea ($FF0000).l,a1
bsr.w KosDec
bsr.w LevelLayoutLoad
bsr.w Pal_FadeFrom
move #$2700,sr
bsr.w ClearScreen
lea ($C00004).l,a5
lea ($C00000).l,a6
lea ($FFFFF708).w,a3
lea ($FFFFA440).w,a4
move.w #$6000,d2
bsr.w LoadTilesFromStart2
lea ($FF0000).l,a1
lea (Eni_Title).l,a0; load title screen mappings
move.w #0,d0
bsr.w EniDec
lea ($FF0000).l,a1
move.l #$42060003,d0
moveq #$21,d1
moveq #$15,d2
bsr.w ShowVDPGraphics
move.l #$40000000,($C00004).l
[b]lea (Nem_GHZ_1st).l,a0; load GHZ patterns[/b]
bsr.w NemDec
moveq #1,d0; load title screen palette
bsr.w PalLoad1
move.b #$8A,d0; play title screen music
bsr.w PlaySound_Special
move.b #0,($FFFFFFFA).w; disable debug mode
move.w #$178,($FFFFF614).w; run title screen for $178 frames
lea ($FFFFD080).w,a1
moveq #0,d0
move.w #7,d1Надо скопировать переходы(в коде выделено) "Blk16_GHZ", "Blk256_GHZ", и "Nem_GHZ_1st" и заменить GHZ на наш "любимый" TS.
Если все правильно сделали, то получите печеньку.Шучу.Получите такой примерно код:
Title_LoadText:
move.w (a5)+,(a6)
dbf d1,Title_LoadText; load uncompressed text patterns
move.b #0,($FFFFFE30).w; clear lamppost counter
move.w #0,($FFFFFE08).w; disable debug item placement mode
move.w #0,($FFFFFFF0).w; disable debug mode
move.w #0,($FFFFFFEA).w
move.w #0,($FFFFFE10).w; set level to GHZ (00)
move.w #0,($FFFFF634).w; disable palette cycling
bsr.w LevelSizeLoad
bsr.w DeformBgLayer
lea ($FFFFB000).w,a1
lea (Blk16_TS).l,a0; load GHZ 16x16 mappings
move.w #0,d0
bsr.w EniDec
lea (Blk256_TS).l,a0; load GHZ 256x256 mappings
lea ($FF0000).l,a1
bsr.w KosDec
bsr.w LevelLayoutLoad
bsr.w Pal_FadeFrom
move #$2700,sr
bsr.w ClearScreen
lea ($C00004).l,a5
lea ($C00000).l,a6
lea ($FFFFF708).w,a3
lea ($FFFFA440).w,a4
move.w #$6000,d2
bsr.w LoadTilesFromStart2
lea ($FF0000).l,a1
lea (Eni_Title).l,a0; load title screen mappings
move.w #0,d0
bsr.w EniDec
lea ($FF0000).l,a1
move.l #$42060003,d0
moveq #$21,d1
moveq #$15,d2
bsr.w ShowVDPGraphics
move.l #$40000000,($C00004).l
lea (Nem_TS_1st).l,a0; load GHZ patterns
bsr.w NemDec
moveq #1,d0; load title screen palette
bsr.w PalLoad1
move.b #$8A,d0; play title screen music
bsr.w PlaySound_Special
move.b #0,($FFFFFFFA).w; disable debug mode
move.w #$178,($FFFFF614).w; run title screen for $178 frames
lea ($FFFFD080).w,a1
moveq #0,d0
move.w #7,d1Если вы не поняли о чем я говорил вверху(а это все), то здесь должны понять.Мы поставили титульнику новые файлы.Если попробуете скомпилировать, у вас компилятор выдаст ошибку.Потому что в коде мы прописали файлы, а их нет.Исправим оплошность.В дизасембле найдем папку artnem.В той папке скопируем файлы "8x8ghz1.bin" и "8x8ghz2.bin" и назовем "8x8ts1.bin" и "8x8ts2.bin".Сделали?Молодцы.Найдем еще две папки "map16" и "map256".В каждой из них есть файлы "ghz.bin","ghz1.bin" и "ghz2.bin".Соответственно скопируем и переименуем их в "ts.bin","ts1.bin" и "ts2.bin"
Как вы поняли все эти TS файлы это и есть ваш новый фон(TS-title screen).Но есть одно НО.Ваш новый фон использует тот же макет что и GHZ.Поэтому вам надо использовать теже номера блоков.Если вам нужно изменить фон через SonED2 то вам нужен новый проект.Создайте копию любого проекта.Откройте его блокнотом(или другим текстовым редактором) и удалите все что там есть.Теперь надо вставить сам проект.Вот:
Type: 1 Zone ID: 0 Act ID: 0 Object Def: objdef\s1obj 8x8 Tiles: ..\artnem\8x8ts.bin 16x16 Tiles: ..\map16\ts.bin 256x256 Tiles: ..\map256\ts.bin FG Layout: ..\levels\blank.bin BG Layout: ..\levels\ghzbg.bin Objects: ..\objpos\blank.bin Palettes- Number of files: 1 Palette 1- Start index: 0 Number of entries: 64 File: ..\palette\title.bin Angle Array: ..\collide\anglemap.bin Collision Array: ..\collide\colarray_n.bin Rotated Collision Array: ..\collide\colarray_r.bin Collision Index 1: ..\collide\blank.bin -EOF-
Если у вас чОрный экран,то используйте этот проект:
Type: 1 Zone ID: 0 Act ID: 0 Object Def: objdef\s1obj 8x8 Tiles: ..\artnem\8x8ts.bin 16x16 Tiles: ..\map16\ts.bin 256x256 Tiles: ..\map256\ts.bin FG Layout: ..\levels\blank.bin BG Layout: ..\levels\ghzbg.bin Objects: ..\objpos\blank.bin Palettes- Number of files: 2 Palette 1- Start index: 0 Number of entries: 16 File: ..\pallet\sonic.bin Palette 2- Start index: 16 Number of entries: 48 File: ..\pallet\ghz.bin Angle Array: ..\collide\anglemap.bin Collision Array: ..\collide\carray_n.bin Rotated Collision Array: ..\collide\carray_r.bin Collision Index 1: ..\collide\blank.bin -EOF-
Гид на английском лежит по адресу Адрес .
Автор гида JcFerggy.
Отредактировано KameKAgZZe (2011-03-07 13:34:59)