-
Публикации
612 -
Зарегистрирован
-
Посещение
-
Время онлайн
6мин 55сек
Все публикации пользователя Alexey383
-
И так)) решил создать тему)) будем собирать туториалы по хакингу Genesis/Mega Drive соников)) Ну чтож) вот первый гид: Sonic 1: в каждом акте своя мелодия Нам понадобится: Любой текстовый редактор Исходник Sonic 1 (Split and Text by Hivebrain) Любой HEX редактор Прямые руки)) Сначала идём в папку misc и ищем файл muslist1.bin, скопируйте его 2 раза и назовите копии muslist3.bin и muslist4.bin далее редактируем плейлисты) думаю это не сложно, слушаем sound test и пишем в hex редакторе новое значение в файле) muslist1.bin 1ый акт, muslist3.bin 2ой акт, muslist4.bin 3ий акт номера мелодий (в оригинале 81 82 83 84 85 86) Green Hill, Labyrinth, Marble, Star Light, Spring Yard, Scrap Brain соответственно) пишем новые номера мелодий (какие хотим слышать) сохраняем Открываем Sonic1.asm и ищем в нём строку: MusicList: incbin misc\muslist1.bin и видим: ; --------------------------------------------------------------------------- ; Music playlist ; --------------------------------------------------------------------------- MusicList: incbin misc\muslist1.bin even добовляем строки: MusicList3: incbin misc\muslist3.bin even MusicList4: incbin misc\muslist4.bin even в итоге получаем: ; --------------------------------------------------------------------------- ; Music playlist ; --------------------------------------------------------------------------- MusicList: incbin misc\muslist1.bin even MusicList3: incbin misc\muslist3.bin even MusicList4: incbin misc\muslist4.bin even Далее ищем строку Level_PlayBgm: и видим это: Level_PlayBgm: lea (MusicList).l,a1; load music playlist move.b (a1,d0.w),d0; add d0 to a1 bsr.w PlaySound; play music move.b #$34,($FFFFD080).w; load title card object нам надо добавить проверку акта) т.е. какой сейчас акт?)) для этого заменяем это на: Level_PlayBgm: cmpi.b #$1,($FFFFFE11).w; это акт 2? bne.s CheckAct3;если нет, то идём к проверке акт3? CheckAct3 lea (MusicList3).l,a1; см плейлист акт2 bra.s PlayBGM_Cont добавим после этой функции следующюю (проверку акт3): CheckAct3: cmpi.b #$2,($FFFFFE11).w; это акт 3? bne.s PlayAct1;если нет, то играть музыку 1 акта PlayAct1 lea (MusicList4).l,a1; см плейлист акт3 bra.s PlayBGM_Cont после этой функции добавляем следующую: PlayAct1: lea (MusicList).l,a1; см плейлист акт1 после этой функции мы добавляем это: PlayBGM_Cont: move.b (a1,d0.w),d0; add d0 to a1 bsr.w PlaySound; play music move.b #$34,($FFFFD080).w; load title card object ну всё))) build.dat и открываем получившийся ром S1BUILT.bin Радуемся, всё работает) но... если мы возьмём во 2ом или 3ем акте монитор который даёт сонику непобедимость, то когда мелодия кончится начнется мелодия акта 1) нехорошо))) давайте исправим)) ищем Obj01_PlayMusic: видим там: Obj01_PlayMusic: lea (MusicList2).l,a1 move.b (a1,d0.w),d0 jsr (PlaySound).l; play normal music ну тут всё просто) мы просто скопируем всё, что с Level_PlayBgm: по PlayBGM_Cont: но назовём функции по другому) и так) заменяем Obj01_PlayMusic: lea (MusicList2).l,a1 move.b (a1,d0.w),d0 jsr (PlaySound).l; play normal music на: Obj01_PlayMusic: cmpi.b #$1,($FFFFFE11).w; это акт 2? bne.s CheckAct32;если нет, то идём к проверке акт3? CheckAct3 переименован в CheckAct32 lea (MusicList3).l,a1; см плейлист акт2 bra.s PlayBGM_Cont2; PlayBGM_Cont переименован в PlayBGM_Cont2 Вставим после этой функции это: CheckAct32: cmpi.b #$2,($FFFFFE11).w; это акт 3? bne.s PlayAct12;если нет, то играть музыку 1 акта PlayAct1 переименован в PlayAct12 lea (MusicList4).l,a1; см плейлист акт3 bra.s PlayBGM_Cont2;PlayBGM_Cont переименован в PlayBGM_Cont2 PlayAct12: lea (MusicList).l,a1; см плейлист акт1 PlayBGM_Cont2: move.b (a1,d0.w),d0; add d0 to a1 bsr.w PlaySound; play music move.b #$34,($FFFFD080).w; load title card object в PlayBGM_Cont2: мы видем PlayBGM_Cont2: move.b (a1,d0.w),d0; add d0 to a1 bsr.w PlaySound; play music move.b #$34,($FFFFD080).w; load title card object заменим 2ую строчку на: move.b #0,($FFFFFE2D).w ; cancel invincibility в итоге: PlayBGM_Cont2: move.b (a1,d0.w),d0; add d0 to a1 move.b #0,($FFFFFE2D).w; cancel invincibility jmp PlaySound; play music build.dat и проверяем ром)) радуемся всё работает идеально))
-
Если не ошибаюсь, по спецификации интел, ультрабук может быть только на ай процессорах)) Если атом, то это полюбому нетбук))
-
Вспомнился мне такой телефон)) http://allnokia.ru/news/base/0909/img/se-xperia-Pureness-4.jpg
-
The Sega Data Compressor))
-
Вот это не скажу)) сам не взламывал)) поидее не должен слететь)) хотя может нокиевцы и прикроют дыру)) и тогда придётся перешиться на эту прошивку но с модифицированным файлом)) всю информацию по прошивке для своей модели можно тут найти: http://forum.allnokia.ru/viewforum.php?f=26
-
Если смарт не разблокирован он всёравно не попадёт в системные папки)) зы: xplore намного лучше))) ну а я про что))) взламываем смарт и радуемся полному доступу))
-
Так просто и не почистишь)) нет доступа в некоторые системные папки (например private)) Можно разблокировать смарт)) тогда получишь доступ хоть куда)) но насколько знаю последние прошивки ломаются только модифицированным файлом прошивки)) т.е прошивать надо модифицированной прошивкой)) и тогда можно все хвосты от прог вручную снести)) но если сделать хард резет, то взлом тоже слетает)) и придётся шить заново этой же прошивкой)) по другому никак)) сам не взламывал)) хард резет мне не сложно сделать)) прог не много всёравно))
-
А может просто самому нарисовать эти буквы?)) Я тогда шрифт для S20 без этих ваших исходников делал)) эмулятор, print screen и рисуем))
-
Тупой назвать как то сложно))) но ^3 по мне так мало чем от 9.4 отличается)) аппараты на ней может будут работать лучше даже не за счёт новой оси, а за счёт большего количества оперативки (начиная с n8 уже 256мб) Ответил "Средненько, вобщем я так и думал" но считаю хуже))) но нет такого ответа))) (что нибудь типа "не оправдала ожидания) А так)) симба щас очень сильно отстаёт, совсем не развивается, ну что нового в этой ^3?)) да та же сенсорная 9ка))
-
ну графику то конечно проблем никаких)) уровни портировать немного сложновато только))
-
ну тогда просмотри весь гид))) поищи))) вот)) почему у тебя здесь значение $70?)) loc2_1AD8C: bsr.w Sonic_LevelBound bsr.w Sonic_AnglePos move.w #$70,($FFFFF73E).w; reset looking up/down rts исправь $70 на $60))
-
а в Boundary_Bottom: у тебя что?)) должно быть что то вроде этого: Boundary_Bottom: move.w ($FFFFF726).w,d0 move.w ($FFFFF72E).w,d1 cmp.w d0,d1 ; screen still scrolling down? blt.s Boundary_Bottom_locret; if so, don't kill Sonic cmpi.w #$501,($FFFFFE10).w; is level SBZ2 ? bne.w KillSonic; if not, kill Sonic cmpi.w #$2000,($FFFFD008).w bcs.w KillSonic clr.b ($FFFFFE30).w; clear lamppost counter move.w #1,($FFFFFE02).w; restart the level move.w #$103,($FFFFFE10).w; set level to SBZ3 (LZ4) хотя)) он же не умирает при проходе петли)) значит не то)))
-
ну дык напиши такие как в GHZ)) положения камеры в MZ начинаются с loc_6FBA:
-
всё же достаточно просто))) Resize_GHZ1: move.w #$300,($FFFFF726).w; set lower y-boundary cmpi.w #$1780,($FFFFF700).w; has the camera reached $1780 on x-axis? bcs.s locret_6E08; if not, branch move.w #$400,($FFFFF726).w; set lower y-boundary locret_6E08: rts нижняя граница (убивает ежа) равна 300, когда камера в положении 1780, то изменить нижнюю границу на 400))) всё ж просто)))
-
угу))) ну я думаю надо бы ещё пополнить коллекцию рус. гидов)) как расширить музыкальные слоты с $00 до $FF: оригинальный гид: http://info.sonicretro.org/SCHG_How-to:Ext...lots_in_Sonic_1 (by Mikel) открываем sonic1.asm слоты с $00 по $7F: ищем строку PlaySound: видим: PlaySound: move.b d0,($FFFFF00A).w rts заменяем на: PlaySound: cmpi.b #$7F,d0 ble.s ChkSounds00to7F jmp NormalSoundRequest ChkSounds00to7F: cmpi.b #$01,d0 bge.s LoadSlots00to7F jmp NormalSoundRequest LoadSlots00to7F: add.b #$80,d0; Add $80 to get slot to starts at $81 move.b #$01,($FFFFFFFC).w; Move $01 to $FFFFFC to make sound driver to load the secound index NormalSoundRequest: move.b d0,($FFFFF00A).w rts дальше ищем PlaySound_Special: видим: PlaySound_Special: move.b d0,($FFFFF00B).w rts заменяем на: PlaySound_Special: cmpi.b #$7F,d0 ble.s ChkSounds00to7F_Special jmp NormalSoundRequest_Special ChkSounds00to7F_Special: cmpi.b #$01,d0 bge.s LoadSlots00to7F_Special jmp NormalSoundRequest_Special LoadSlots00to7F_Special: add.b #$80,d0; Add $80 to get slot to starts at $81 move.b #$01,($FFFFFFFC).w; Move $01 to $FFFFFC to make the sound driver to load the secound index NormalSoundRequest_Special: move.b d0,($FFFFF00B).w rts далее ищем loc_7202C: видим: loc_7202C: jsr sub_725CA(pc) movea.l (off_719A0).l,a4 subi.b #$81,d7 move.b (a4,d7.w),$29(a6) movea.l (Go_MusicIndex).l,a4 lsl.w #2,d7 movea.l (a4,d7.w),a4 moveq #0,d0 move.w (a4),d0 add.l a4,d0 move.l d0,$18(a6) move.b 5(a4),d0 move.b d0,$28(a6) tst.b $2A(a6) beq.s loc_72068 move.b $29(a6),d0 заменяем первые 5 строк функции (с jsr sub_725CA(pc) по movea.l (Go_MusicIndex).l,a4 на: jsr sub_725CA(pc) movea.l (off_719A0).l,a4 subi.b #$81,d7 move.b (a4,d7.w),$29(a6) movea.l (Go_MusicIndex).l,a4 cmpi.b #$01,($FFFFFFFD).w bne.s CheckSounds00to80 movea.l (Go_MusicIndexFF).l,a4 jmp NormalIndexLoad CheckSounds00to80: cmpi.b #$01,($FFFFFFFC).w bne.s NormalIndexLoad movea.l (Go_MusicIndex00).l,a4 NormalIndexLoad: clr.w ($FFFFFFFC).w далее ищем Go_MusicIndex: видим: Go_MusicIndex: dc.l MusicIndex; XREF: Sound_81to9F добавляем на следующей строке это: Go_MusicIndex00: dc.l MusicIndex00 Go_MusicIndexFF: dc.l MusicIndexFF Слоты с $E5 по$FF ищем Sound_ChkValue: видим: Sound_ChkValue:; XREF: sub_71B4C moveq #0,d7 move.b 9(a6),d7 beq.w Sound_E4 bpl.s locret_71F8C move.b #$80,9(a6); reset music flag cmpi.b #$9F,d7 bls.w Sound_81to9F; music $81-$9F cmpi.b #$A0,d7 bcs.w locret_71F8C cmpi.b #$CF,d7 bls.w Sound_A0toCF; sound $A0-$CF cmpi.b #$D0,d7 bcs.w locret_71F8C cmpi.b #$E0,d7 bcs.w Sound_D0toDF; sound $D0-$DF cmpi.b #$E4,d7 bls.s Sound_E0toE4; sound $E0-$E4 locret_71F8C: rts заменяем на: Sound_ChkValue:; XREF: sub_71B4C moveq #0,d7 move.b 9(a6),d7 beq.w Sound_E4 bpl.s locret_71F8C move.b #$80,9(a6); reset music flag cmpi.b #$01,($FFFFFFFC).w bne.s Load81to9F jmp Sound_ChkValueFor00 Load81to9F: cmpi.b #$9F,d7 bls.w Sound_81to9F; music $81-$9F ContinueSound_ChkValue: cmpi.b #$A0,d7 bcs.w locret_71F8C cmpi.b #$CF,d7 bls.w Sound_A0toCF; sound $A0-$CF cmpi.b #$D0,d7 bcs.w locret_71F8C cmpi.b #$E0,d7 bcs.w Sound_D0toDF; sound $D0-$DF cmpi.b #$E4,d7 bls.s Sound_E0toE4; sound $E0-$E4 cmpi.b #$FF,d7 bls.w Sound_E5toFF locret_71F8C: rts далее ищем Sound_81to9F: видим: Sound_81to9F: ; XREF: Sound_ChkValue cmpi.b #$88,d7 ; is "extra life" music played? bne.s loc_72024; if not, branch tst.b $27(a6) bne.w loc_721B6 lea $40(a6),a5 moveq #9,d0 и добавляем перед функцией Sound_81to9F: Sound_ChkValueFor00: cmpi.b #$FF,d7; $FF = Last slot for musics in index $00 - $7F ($FF = $7F) bls.w Sound_81to9F rts Sound_E5toFF: move.b #$01,($FFFFFFFD).w sub.b #$64,d7 переходим к импорту музыки) в конце рома (перед строкой ; end of 'ROM') и пишем названия музыкальных файлов по образцу: MusicIndex00: dc.l Music01; музыка для слота $01 dc.l Music02; музыка для слота $02 ;и так далее до 7F слота также делаем и с $E5-$FF слотами MusicIndexFF: dc.l MusicE5; музыка для слота $E5 dc.l MusicE6; музыка для слота $E6 ;и так далее до слота $FF после чего вставляем по образцу include функции для файлов Music01: incbin sound\music01.bin even Music02: incbin sound\music02.bin even MusicE5: incbin sound\musicE5.bin even MusicE6: incbin sound\musicE6.bin even ;и так далее затем вставляем новую музыку в папку Sound с нашими новыми названиями) ну вообщем то всё) теперь дополнение Sound Test с $00 по $FF ищем loc_3550: видим: loc_3550: move.l #$6C300003,($C00004).l; screen position (sound test) move.w ($FFFFFF84).w,d0 addi.w #$80,d0;замените это на #$00,d0 move.b d0,d2 lsr.b #4,d0 bsr.w LevSel_ChgSnd move.b d2,d0 bsr.w LevSel_ChgSnd rts ; End of function LevSelTextLoad заменяем addi.w #$80,d0 на addi.w #$00,d0 далее идём к LevSel_SndTest: видим: LevSel_SndTest: ; XREF: LevSelControls cmpi.w #$14,($FFFFFF82).w; is item $14 selected? bne.s LevSel_NoMove; if not, branch move.b ($FFFFF605).w,d1 andi.b #$C,d1 ; is left/right pressed? beq.s LevSel_NoMove; if not, branch move.w ($FFFFFF84).w,d0 btst #2,d1 ; is left pressed? beq.s LevSel_Right; if not, branch subq.w #1,d0 ; subtract 1 from sound test bcc.s LevSel_Right moveq #$4F,d0 ; if sound test moves below 0, set to $4F LevSel_Right: btst #3,d1 ; is right pressed? beq.s LevSel_Refresh2; if not, branch addq.w #1,d0 ; add 1 to sound test cmpi.w #$50,d0 bcs.s LevSel_Refresh2 moveq #0,d0 ; if sound test moves above $4F, set to 0 LevSel_Refresh2: move.w d0,($FFFFFF84).w; set sound test number bsr.w LevSelTextLoad; refresh text LevSel_NoMove: rts ; End of function LevSelControls заменяем на: LevSel_SndTest: ; XREF: LevSelControls cmpi.w #$14,($FFFFFF82).w; is item $14 selected? bne.s LevSel_NoMove; if not, branch move.b ($FFFFF605).w,d1 andi.b #$C,d1 ; is left/right pressed? beq.s LevSel_NoMove; if not, branch move.w ($FFFFFF84).w,d0 btst #2,d1 ; is left pressed? beq.s LevSel_Right; if not, branch subq.w #1,d0 ; subtract 1 from sound test bcc.s LevSel_Right moveq #$00,d0 ; if sound test moves below 0, set to $4F LevSel_Right: btst #3,d1 ; is right pressed? beq.s LevSel_Refresh2; if not, branch addq.w #1,d0 ; add 1 to sound test cmpi.w #$FF,d0 bcs.s LevSel_Refresh2 moveq #0,d0 ; if sound test moves above $4F, set to 0 LevSel_Refresh2: move.w d0,($FFFFFF84).w; set sound test number bsr.w LevSelTextLoad; refresh text LevSel_NoMove: rts ; End of function LevSelControls ну и как обычно build.dat, проверяем, радуемся)) вот только хде вы найдете 154 новых мелодии?)) ^_^ переведено и исправлено by Alexey383 PS: просьба модераторам)) почистите тему от оффтопа на 1ой стр))
-
Некоторые антивирусы ругаются на долфин, вырубай антивирь,... Вон аваст вообще почти все кряки и кейгены вирями считает))
-
Intel gma)) ноутбук я так понимаю) я на своем буке даже не пытался пускать вии/гк дрима то скачет 40-60фпс, думаю что дольфин вообще висеть будет)
-
А я ведь сразу писал)) создай игру/демо игры, а потом уже тему создавай)) сделал бы так, возможно и отношение к этому "проекту" было б другим))
-
ещё гид) как исправить walk-jump bug оригинальный гид: http://info.sonicretro.org/SCHG_How-to:Fix..._Bug_in_Sonic_1 (by Cinossu) думаю все знают про этот глюк) подходим вплотную к камню с пружиной в GHZ2, и при прыжке игра использует анимацию ходьбы) очень неприятно)) ну и в Final Zone появляются некоторые проблемы из за этого бага) давайте исправим) открываем sonic1.asm и ищем строку loc_FB92: видим: loc_FB92: btst #5,$22(a0) beq.s loc_FBAC move.w #1,$1C(a1); use walking animation добавляем 2 строки после beq.s loc_FBAC cmp.b #2,$1C(a1); check if in jumping/rolling animation beq.s loc_FBA0 в итоге видим: loc_FB92: btst #5,$22(a0) beq.s loc_FBAC cmp.b #2,$1C(a1); check if in jumping/rolling animation beq.s loc_FBA0 move.w #1,$1C(a1); use walking animation ну и build.dat, проверяем, радуемся)
-
а нет бы сначала сделать демку, а потом тему создать?)
-
решил ещё гид небольшой написать) когда мы рисуем новый фон GHZ, то мы сталкиваемя с проблемой скроллинга, а именно: скроллинг GHZ портит любой фон) решается это очень просто) открываем sonic1.asm ищем строку loc_6384: и видим там: loc_6384: move.w d3,d0 neg.w d0 move.l d0,(a1)+ swap d3 add.l d2,d3 swap d3 dbf d1,loc_6384 rts ; End of function Deform_GHZ здесь нам понадобится просто удалить строки с функцией swap в итоге получаем: loc_6384: move.w d3,d0 neg.w d0 move.l d0,(a1)+ add.l d2,d3 dbf d1,loc_6384 rts ; End of function Deform_GHZ build.dat, проверяем и: ура) всё работает идеально)
-
я вот считаю, что создавать тему, надо, если уже есть то, что можно показать) а создать тему "мега крутая игра" и выложить непойми каких 3 скрина, ну не серьёзно как то) и пельмени эти... ну и этот "проэкт" тоже заглохнет))
-
Я вроде видел какойто хак, да щас не вспомню) ну эт не сложно)
-
эээм)) ну вот проблемма) имеется тв тюнер asus p7131 (внутренний) работает с WMC висты) а пульт понимает не все клавиши правильно, а некоторые вообще не видит, как переназначить клавиши пульта для работы его с WMC?))
-
эээм) а почему бы не сделать так, чтоб игра брала ресурсы из вне, а не из exe файла, насколько я знаю гамак это умеет)
-
Сейчас на странице 0 пользователей
Нет пользователей, просматривающих эту страницу