| Разработка и ромхакинг > Ромхакинг и программирование |
| SegaSoundDriver ripped from Sonic1 |
| << < (4/6) > >> |
| Segaman:
Навырезал сэмплов из с3. теперь даже мелодия титров с3 пашет сносно. всего сэмплов $19. я знаю про сэмплы, что есть один драйвер, который берёт звуки с частотой 24кгц. он на соникретро где-то есть. на форуме. а как работает и звучит до сих пор низнаю |
| Segaman:
Блин, я очень сильно затянул с драйвером и мануалом. если хотите, могу пока сырой рес выложить. он вроде сейчас тоже ничё. а мануал (если повезёт) может напишу на след. неделе. у меня как раз монитор снова будет |
| sergi:
да вот сорс может быть пригодился бы - вдруг что полезное кто усмотрит ;) |
| Segaman:
А ваапще то я как раз вчера в с 10 до 17 писал мануал и в принцыпе он готов. есть только один минус, мелодия (кстати SonicAdvance-LeafForestAct1) для мануала получилась слегка сыроватая (с голосами подкривил) и на однои из psg-шек гдето ноты нехватает и с несколькими loop-ами канал десинхронизируется с остальными. это ещё предстоит исправить. ещё я наконец, в который раз прочитав пост про сэмплы, разобрался в чём дело и могу теперь конвертер сэмплов написать. тока я решил это на C++ написать(скачал среду), а в языке пока что нигугу. а без моника нереально обучится языку прогания, сидя за милипи...ским теликом итак глаза сломать можно, нето что телик. каждый раз неразобрав какойто текст приходится запускать поганую лупу, которая ещё и весь экран занимает. воопщем конвертера неждите. а вот менюшки, в которой можно будет реал-тайм менять скорость мелодии, высоту каждого канала по отдельности и их же громкость, можно, только уже после мануала. мануал дописан с комментариями в текстовом формате. есть парочка скриншотов и файлы всех стадий конвертирования. правда вся эта лабута смачно весит, около 2мб, но это нестрашно. ещё я заодно покажу в нескольких асм-мелодиях возможности смпс драйвера. да и самое главное, кто умеет управляться с сеговской vdp-шкой или хотябы знает как спрайты рисовать. |
| Segaman:
Навырезал музла отовсюду. осталось ещё пару примеров хм2смпс сделать и выложить |
| Ti_:
--- Цитата: Segaman от 05 Сентябрь 2009, 21:19:22 ---Всё, вырезал и вставил PadReader. как только включается teamplayer, экран тут же меняется на --- Конец цитаты --- поподробнее давай. если в твой плеер то где его взять? и где там тот участок кода или че? и как засунуть в другую игру. (в дюну же ты засовывал) . |
| Segaman:
У меня отдельными, инклудными асмами. т.е. главный ром SMPSPlayer.asm Driver.asm - драйвер со всеми причиндалами 4padreader.asm - читает пады он пока что тока у мя на кампе. уже давно планирую его закинуть, но всё никак руки недоходят. |
| Segaman:
видимо я никогда не сяду за мануал. ночью вылажу сорс, как есть. архив весит 6.7мб Добавлено позже: на мануал там только одна мелодия, но думаю и этого вам будет достаточно. |
| Ti_:
вот Segaman'овский pad-reader Read: lea ($FFFFFF80).w,a1 ; адрес для первого пада bsr.w sub_0_9188 lea ($FFFFFF88).w,a1 ; второго bsr.w sub_0_9196 lea ($FFFFFF90).w,a1 ; третьего bsr.w sub_0_91A4 lea ($FFFFFF98).w,a1 ; четвёртого bsr.w sub_0_91B2 rts sub_0_9188: moveq #0,d0 move.b #$C,($A10005).l bra.w loc_0_91C0 sub_0_9196: moveq #1,d0 move.b #$1C,($A10005).l bra.w loc_0_91C0 sub_0_91A4: moveq #2,d0 move.b #$2C,($A10005).l bra.w loc_0_91C0 sub_0_91B2: moveq #3,d0 move.b #$3C,($A10005).l bra.w loc_0_91C0 loc_0_91C0: lea ($A10003).l,a0 bra.w loc_0_91EE loc_0_91EE: moveq #0,d0 move.b #0,(a0) nop nop nop move.b (a0),d0 move.b #$40,(a0) ; '@' nop nop nop move.b (a0),d1 asl.b #2,d0 andi.b #$C0,d0 andi.b #$3F,d1 ; '?' or.b d1,d0 not.b d0 move.w #0,(a1)+ jsr (sub_0_7F44).l rts sub_0_7F44: move.b (a1),d1 eor.b d0,d1 move.b d0,(a1)+ and.b d0,d1 move.b d1,(a1)+ rts |
| Ti_:
Добавлено позже: вообщем ридер Сегамановский пашет, оказалось всё норм. он для первого разъема.(teamplayer) первые 4адреса он в них и пишет число. но вот как удалить старый ридер РРР-ский , точно даже Сегаман не знает. там вообще непохож он, я так пробовал его ридер добавлять просто, но походу старый ему мешает, 0 вписывает обратно что-то в этом роде. вот тут в роме: 6F8-75c- тут, CD8- E1E и тут.(U ром) , сказал в D0A чтоли писать еще и через jmp (?) . и че толку если кнопки еще в 6FE прописаны -эти же адреса для кнопок игра использует.(тоже удалять отсуда надо?!) (FFC282, FFC29C для 1, и FFC284 , FFc29E для 2-ого - вот эти адреса в оригинале игра использует) объяснить как 4 джойстика в игру то засунуть правильно, тут может хоть кто? Добавлено позже: хм, а щас целиком удалил его (старый), а кнопки то пашут на логах и в заставке, а в меню нет. что за прикол. новый пробовал писать на FFc282 и FFC284. (причем оба варианта пашут, а в коде ридера нужно писать на 2 меньше (c280 иили с c282) , чтобы адрес правильный был. он говорил у него какая то сокращенная форма записи может из-за нее несовместимы????? в RRR то в 2 адреса пишет сразу (в FFC282 и FFC29C), - а тут тока в 1. |
| Segaman:
Блин, на вене тока 2.5мб мона выкладыть. на этот раз невышло. |
| Ti_:
в RRR если поменять по 12984, 7016 на 7001 (темп проигрывания ларри типо), и вставить звук рейт 32кгц 8бит (вместо 8кгц) буит проигрываться, но кач-во становится хрень, не идет в сравнение до вставления ; но при этом лучше чем если вставить 8кгц.! |
| Segaman:
--- Цитата: Ti_ от 30 Сентябрь 2009, 14:30:41 ---в RRR если поменять по 12984, 7016 на 7001 (темп проигрывания ларри типо), и вставить звук рейт 32кгц 8бит (вместо 8кгц) буит проигрываться, но кач-во становится хрень, не идет в сравнение до вставления ; но при этом лучше чем если вставить 8кгц.! --- Конец цитаты --- там что, проигрыватель сэмплов? а то такой мона и в драйвер мой всунуть |
| Ti_:
--- Цитата: Segaman от 30 Сентябрь 2009, 15:26:26 ---там что, проигрыватель сэмплов? а то такой мона и в драйвер мой всунуть --- Конец цитаты --- нет, я про DAC (wav) |
| Segaman:
--- Цитата: Ti_ от 30 Сентябрь 2009, 15:36:40 --- нет, я про DAC (wav) --- Конец цитаты --- Я именно это и имел ввиду. как заполучить этот драйвер? |
| Ti_:
он любой звук хуже играет, чем в винде звучит. намного. даже 8кгц в голдвейве терпимей чем 32кгц в игре блин., а с 8вообще ужас. |
| Segaman:
Ну и фтопку его такого. вот вам ром, шоб вы не думали шо йа забил. извиняюсь за кривую мелодию leaf forest mid2smps, я на голоса особо не смотрел и ещё я там промахнулсь и псгшка одна недоигрывает ноту и канал десинхронизируется. управление там описано. а чтобы пад ридер включить, дастаточно в настройках генса для первого порта указать тимплеер. а штобы выйти, надо ево вырубить и нажать старт. |
| Ti_:
--- Цитата: Segaman от 30 Сентябрь 2009, 20:09:51 ---Ну и фтопку его такого. --- Конец цитаты --- так в чем прикол? почему звук хуже? драйвер баганый или дац? и цифра эта все таки для выбор рейта предназначена?? (я тут чет в поиске искал, а там драйверы другие эти 8кгц и нельзя сменить). если бы 32кгц очень неплохо в мп3 зажать, наш эмуль разогнаный мп3 потянул бы! разогнать кстати другой эмуль нужно- генсмуви11, и чтобы держал больше мег. Когда ты мне в игру 4джоя вошьеш уже? я тут такое нашел!! --- Код: --- ROM:000107BC ; =============== S U B R O U T I N E ======================================= ROM:000107BC ROM:000107BC ROM:000107BC CONTROL: ; CODE XREF: RACE+A4p ROM:000107BC ; RACE+134p ROM:000107BC bsr.w UNKNOWN__ ROM:000107C0 ROM:000107C0 firstcar: ROM:000107C0 moveq #0,d0 ROM:000107C2 bsr.w Control_all ROM:000107C6 ROM:000107C6 secondcar: ROM:000107C6 moveq #1,d0 ROM:000107C8 bsr.w Control_all ROM:000107CC ROM:000107CC thirdcar: ROM:000107CC moveq #2,d0 ROM:000107CE bsr.w Control_all ROM:000107D2 ROM:000107D2 fourthcar: ROM:000107D2 moveq #3,d0 ROM:000107D4 ROM:000107D4 Control_all: ; CODE XREF: CONTROL+6p ROM:000107D4 ; CONTROL+Cp ... ROM:000107D4 lea dword_0_FFD0EA-FF8000(a4),a0 ROM:000107D8 tst.b (a0,d0.w) ROM:000107DC beq.s Control_Player ROM:000107DE bra.w Control_AI ROM:000107E2 ; --------------------------------------------------------------------------- ROM:000107E2 ROM:000107E2 Control_Player: ; CODE XREF: CONTROL+20j ROM:000107E2 tst.b byte_0_FFB936-FF8000(a4) ROM:000107E6 bne.w SECOND_JOYSTICK ROM:000107EA cmpi.b #1,d0 ROM:000107EE beq.w SECOND_JOYSTICK ROM:000107F2 cmpi.b #2,d0 ROM:000107F6 beq.w UNKNOWN_ ROM:000107FA bsr.w Player_car_delete_autopress ROM:000107FE move.w RAM_JOY1_DATA-FF8000(a4),d1 ROM:00010802 bsr.w controlplayer_BC_DPAD_mode ROM:00010806 move.w RAM_JOY1_DATA1-FF8000(a4),d1 ROM:0001080A bsr.w control_A_XYZ_ENTER ROM:0001080E clr.w RAM_JOY1_DATA1-FF8000(a4) ROM:00010812 rts ROM:00010812 ; End of function CONTROL ROM:00010812 ROM:00010814 ROM:00010814 ; =============== S U B R O U T I N E ======================================= ROM:00010814 ROM:00010814 ROM:00010814 SECOND_JOYSTICK: ; CODE XREF: CONTROL+2Aj ROM:00010814 ; CONTROL+32j ROM:00010814 bsr.w Player_car_delete_autopress ROM:00010818 move.w RAM_JOY2_DATA-FF8000(a4),d1 ROM:0001081C bsr.w controlplayer_BC_DPAD_mode ROM:00010820 move.w RAM_JOY2_DATA2-FF8000(a4),d1 ROM:00010824 bsr.w control_A_XYZ_ENTER ROM:00010828 clr.w RAM_JOY2_DATA2-FF8000(a4) ROM:0001082C rts ROM:0001082C ; End of function SECOND_JOYSTICK ROM:0001082C ROM:0001082E ROM:0001082E ; =============== S U B R O U T I N E ======================================= ROM:0001082E ROM:0001082E ROM:0001082E UNKNOWN_: ; CODE XREF: CONTROL+3Aj ROM:0001082E bsr.w Player_car_delete_autopress ROM:00010832 move.w word_0_FFC286-FF8000(a4),d1 ROM:00010836 bsr.w controlplayer_BC_DPAD_mode ROM:0001083A move.w word_0_FFC290-FF8000(a4),d1 ROM:0001083E bsr.w control_A_XYZ_ENTER ROM:00010842 clr.w word_0_FFC290-FF8000(a4) ROM:00010846 rts ROM:00010846 ; End of function UNKNOWN_ ROM:00010846 ROM:00010848 ROM:00010848 ; =============== S U B R O U T I N E ======================================= --- Конец кода --- в конце смотри че это за FFC286? FFC290? да тут наверняка они хотели чтобы на троих было! Эти адреса они тока тут есть. и чего в дебага запустил этот код не используется даже, а что такое beq.w. наверняка можно RRR-ский пад ридер хакнуть! чтобы суда тоже писал! |
| Segaman:
beq - если верно то bra на указанную позицию. bne - если неверно... .w - word addres .s - short addres эта функция пишется после сравнения compare или cmp, cmpi, cmpa cmp - сравнить 1е значение со вторым. это можут быть адреса(cmpa), байты, ворды и лонгворды(cmpi) и флаги (cmp). флаги: a0-a7, d0-d6(кажется) ссылка после сравнения также может быть сдвинута. например: --- Код: ---StartCompare: cmpi.b #$12,($FFFFF028).w move.b ($FFFFF104).w,($FFFFF028).w beq.s SuccessCompare add.b #1,($FFFFF104) bra.s StartCompare SucessCompare: move.w a2,d0 lsl.w #2,d0 lea List,a0 lea (a0,d0.w),a0 bra a0 List: dc.l Bueno, Buano dc.l Bugaga, Blabla dc.l 0,0 --- Конец кода --- |
| Smoke:
--- Цитата: Segaman ---флаги: a0-a7, d0-d6(кажется) --- Конец цитаты --- Регистры. Флаги это другое |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |