Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - teremochek

Страницы: [1] 2 3 4 Далее
1
ChatGPT и RомHacking - путь в никуда.
Любая программа (ИИ) по формулам работает!
Каждый ром устроен по разному!
Как GPT сможет сделать марио 3 пульки?
Никак! Это для него невозможная задача!

Научить его? А смысл!?
В результате потом один программист скажет,
что его ChatGPT умнее всех!
А главное, некто будет бесконечно штамповать говноХаки!
И в этой куче мусора потом устанешь искать полезное!

Вот удивляюсь, у нас в пицерии на стаканах ИИ рисует кривых людей! (пропорции тела не знает)
А зарплату художника, можно догадаться, кто-то себе оставил!!

2
   Как в общем приблизительно функционирует проигрывание звука?
По указателю находится заголовок трека, который часто состоит из трёх
инструментов. Прочитав параметры,
каждый инструмент начинает играть со своего адреса. Обычно, во время игры инструмент Triangle вызывает в свой дополнительный подканал Ударные - Noise.
   Данные инструментов состоят из параметров высоты и длинны, и спец кодов,
которые приведены ниже:

$ 80 xx xx        (JUMP)  To Address
$ 81 $70 xx xx  (RETRY)  Повторить муз отрывок по адресу
$ 82                (STOP)
$ 86 xx            (Тональность)
$ 88 $70 xx      (RETRY count)  Сколько раз повторить рутину ($81 $70)
$ 8F xx            (Sync TIME)   Начальное время синхронизация инструментов
$ 90 xx xx        (Drums)  Вызов барабанов по адресу
$ 93 xx            (Sound)  Вызов целого звука по адресу
   
Drums:
$ 00 xx xx        (Jump)

Полный лист Звуковых кодов узнать точнее будет можно после детального разбора
ассемблера.

3
(Обновление)

      TGL Sound RAM $300-3FF
   
// Управление звуком (Sound Engine Control)
$ 300    Трек проигрался (№ 26,27,01,..)
$ 301    PauseSoundEngine1  enable = 3,2  disable = 1,0
$ 302    PauseSoundEngine2  FF when pause = 06
$ 303    ?
$ 304    Номер трека
$ 305    General Volume
$ 306    General Channels (S1 S2 T N) (4)
$ 307    не используется, но любое значение зацикливает звук

// Предполагаю это данные, которые записываюся прямо в регистры PPU.
$ 308-30B   Square 1
$ 30C-30F   Square 2
$ 310-313   Triangle
$ 314-317   Noise
(ссылка для подробного объяснения) http://dendy.migera.ru/nes/g05.html

$ 318   Общий байт  - additionalSubChannell

xx xx xx xx xx xx xx  (7 байт = 7 подКаналов )
$ 319-31F   additionalSubChannell  // если первый бит, то к подканалу подлючен дополнительный подканал Noise
$ 320-326   (Tembr / volumeLimit)   // !Вероятнее это - "ddle nnnn – duty, loop env.." см. ссылку выше
$ 327-32D   (Atack)
$ 32E-334   (Fx)
$ 335-33B   (Tone)
$ 33С-342   (Tempo)  // Замедление
$ 343-349   (Instrument) (Square1, Square2, Triangle, Noise)
$ 34A-350   (Instrument address loByte)
$ 351-357   (Instrument address hiByte)
$ 358-35E   (Tempo2) // Ускорение
$ 35F-365   TimerHigh
$ 366-36C   TimerHigh limit
$ 36D-373   Instrument Data 
$ 374-37A   TimerLow (-)
$ 37B-381   (note Lenght) // Длинна ноты
$ 382-388   (TembrMirror / volume)
$ 389-38F   RetryLoop counter (-)
$ 390-396   RetryLoop counter Low (only used in track 11&12)
$ 397-39D   offset_of_timer_pause  // Пауза после каждой ноты (Шаг)
$ 39E-3A4   timer_pause
$ 3A5-3AC   Volume Fade // Окончание ноты с уменьшением громкости
$ 3AB-3B2   FX_timer
$ 3B3-3B9   toneLB // Период частоты
$ 3BA-3C0   toneHB
$ 3C1-3C7   sfx timerOffset Шаг // Эти переменные используются только для звуков
$ 3C8-3CE   sfx timer (+)
$ 3CF-3D5   sfx Укорочение длинны
$ 3D6-3DC   sfx (Noise+Triangle tone) Тембр ударных, исп всего в двух треках
$ 3DD-3E3   Номер Трека в подКанале
$ 3E4-3EA   Ограничитель period High
$ 3EB-3F1   Noise DATA  (Used only 2-3 Noise_subchannels 3EC& 3ED)
$ 3F2-3F8   Noise Addr loByte
$ 3F9-3FF   Noise Addr hiByte

4
Задумался, почему каждый раз когда вижу логотип MK2, появляется небольшой ностальгический страх?
Что такого особенного изображено..
Логотип с драконом в круге, грозовое небо, молнии.
Атмосфера мрачноватая, но всё-же по моему, этого не достаточно для вызова таких чувств.


А может в этом умышленно запрятано нечто другое,
то что подсознание чувствует, а ум не осознаёт?

5
Что-бы упростить осмысление переменных RAM,
можно ширину окна сделать равной числу групп.
В текущем случае подобралась ширина = 7 байт.
Внимание на табло! (так в одной телепередаче говорили  :D).

<Табло>
[ Гостям не разрешен просмотр вложений ]


Определённо видно вертикальную линию в три байта!
Выясняем - каждая линия отвечает за один звуковой канал!
И соответственно всего каналов = 7.
Обычно 4 канала занимает музыка, остальные 3 для звуков/эффектов.

Далее поочереди подменяем значения, и слушаем результат.
Выясняется:

xx xx xx xx xx xx xx  (7 байт = 7 каналов )
...
$ 335-33B   + (Tone)
$ 33С-342   + (Tempo) Замедление
$ 343-349   + (Instrument) (Square1, Square2, Triangle, Noise)
$ 34A-350   + (Instrument address loByte)
$ 351-357   + (Instrument address hiByte)
$ 358-35E   + (Tempo2 Ускорение)
$ 35F-365   + TimerHigh
$ 366-36C   + TimerHigh limit
$ 36D-373   + Instrument Data 
$ 374-37A   + TimerLow Dec
...

6
[NES] Guardian Legend

Планирую проименовать память третьей страницы ($300-$3FF), которая (как известно) управляет звуком и музыкой в игре!
На данный момент не известно ни одного имени, но кое-что открыто мною в РОМе. Думаю это несколько облегчит задачу.

Итак,
сам драйвер располагается в нулевом банке. (Автор: Takayuki "Jemini" Hirono)

$ 01B04 - 01B93  Указатели на треки (72 шт.)
$ 01B94 - 03F9D  Музыка и звуки.
$ 0185A - 01932  Частоты звукоряда

Указатель ссылается на заголовок трека.
который состоит из:
заголовков инструментов  и  одного байта. (Кол-во инструментов)


Заголовок инструмента (10 байт):

00 - (№) инструмента (00-03)  04 05 для SFX
01 - ?  01,02,03,41,61,00
02 - (тембр / громкость)  -  F/F
03 - (атака)  00-полно,  01-легато,  02-03 стакато
04 - (FX) 01-вибрато,  02-тремоло,  04-глиссандо,  05-hit,  06-fx..
05 - (тональность)
06 - (темп)  чем больше, тем медленнее
07 - (инструмент)  00-01-square1&2,  02-bass, 03-FX,  04-Triangle
08 - Указатель адреса старта инструмента  Lo
09 - Указатель адреса старта инструмента  Hi

7
[NES] Guardian Legend, The (U)

Прототип скина корабля (Недоработанный). Тайлы, какие имелись, скопировал из игры "[NES] Zanac".
Еще +новые палитры, +ключи, и прочие мелочи. Выкладываю в свет.

9
За идею и творчество - пять с плюсом!

10
Разработка игр / Battletoads FanGame [PC]
« : 23 Февраль 2024, 20:45:32 »
Не знаю, будет-ли это "совсем колхоз", но можно [ Гостям не разрешен просмотр вложений ] просто повернуть другой спрайт на 90 градусов.

11
Разработка игр / Battle City [NES] FunGame Remake [PC]
« : 17 Февраль 2024, 21:29:01 »
Узнал, как купленные апгрейды нужно экипировать. (Играть стало веселее)
Застрял на боссе - (Три броне машины какие-то.. Без прокачки с ними жесть)

12
Разработка игр / Battletoads FanGame [PC]
« : 17 Февраль 2024, 21:02:20 »
(Ссылка на вложение)

Раш: Наконец-то про нас нормальная новая часть жаб делается.
выглядит хорошо.

..не скоро АИ будет полноценные мультики про жаб создавать..

13
Разработка игр / Battletoads FanGame [PC]
« : 11 Февраль 2024, 17:21:31 »
Можно поискать графику из идентичного жанра - Double Dragon к примеру..(еще вариант, определить художников BT, и узнать в каких играх они рисовали.)

..всем не угодить. Все, что от души делается и с интересом - то хорошо.

14
[NES] The Guardian Legend Auto-Pilot Hack.

Игроком управляет компьютер (Можно только выбрать оружие)  +  полная прокачка (жизни, чипы, оружия).
Работает только в режиме полёта (TGL).


* TGL_AP1.zip (0.53 КБ - загружено 62 раз.)

15
Разработка игр / Battle City [NES] FunGame Remake [PC]
« : 30 Сентябрь 2023, 20:57:18 »
(-)
Не прошёл летательный уровень. Оказался для меня сложным и затянутым.

(+)
Впечатления от игры хорошие.
Ассоциируется как микс Battle City и Dyne.
Графика, музыка и звуковое сопровождение очень в тему.
Порадовала система бонусов, экономика и геймплэй.
Достойный сиквел Battle City!

16
Разработка игр / Duck Tales 2 pc port (c3)
« : 08 Июнь 2023, 18:11:51 »
Эффект паралакса выглядит чудесно. Желаю успехов, в этом непростом деле.

17
Прочие эмуляторы / Retroarch
« : 07 Сентябрь 2019, 20:02:34 »
(Спасибо)
Retroarch классная штука!   Уже привык к нему. Шейдеры можно накладывать один на другой, что потрясающе улучшает изображение.
Пользуюсь вот такими шейдерами:
xbr-mlv4  +  retro-v2.

18
Абскейл Финалки 7 вдохновляет.
Хотелось бы посмотреть разницу  абскейла нейросетью  с  каким-нибудь мощным графическим фильтром. ( XBR к примеру )


19
Всех с наступающим праздником!
Здоровья, благополучия, новых успехов в ромхакинге и программировании!

20
teremochek, теперь работает. А что за эмулятора используется? По BlitzNes ничего не нашёл.
Это попытка написать свой эмулятор на языке BlitzMax.
(но, по большей части, просто портированый с Java - "HalfNes" (вернее, его часть) )
Звук отсутствует.
Работает два маппера - (0), (2).
Часть игр Эмулируется.

Кстати - "F3"- открыть ром.

21
С исправлением пути.

Простите за неудобства!
Если опять будет Ошибка, то наврятли смогу помочь..

Добавлено позже:
Sharpnull
Большое спасибо за наводку!

22
teremochek, завёл шарманку, ошибка из-за абсолютного пути до файла smb.nes: он ищется в D:\Programming\NES\emu_max1\data\smb.nes. Если туда кинуть, то запустится.

опять налажал...
Виноват. Сейчас, исправлю! блин.

23
Вот, предлагается посмотреть Шум на игре SMB.

Управление: "ENTER, SPACE, Z, X, LEFT, UP, DOWN, RIGHT"
"0" - выключить шум.
"F9" - выключить ScaleX графический фильтр.

(Оконный режим 1920х1080, Звука нет!)

24
так просмотр будет в разы быстрее: https://www.emu-land.net/forum/index.php/topic,60676.msg1379121.html#msg1379121

Спасибо, просмотрел все по быстрому.. Потрясающе!
Хотя, большая часть шейдеров искривляет изображение, что несколько напрягает.

достаточно путем сравнения текущего кадра с предыдущим выяснять в какую сторону и насколько сдвинулась большая часть картинки, То бишь фон. И потом уже в эту же сторону и настолько же сдвигать карту шума и накладывать на всю картинку. Так была сделана анимация выше. Что Вполне реализуемо,
...
Да, не сложно, имеются кое-какие наброски..(другое дело, скрол в разных играх по разному реализуется (например в The Guardian Legend), поэтому трудностей, с этим, может быть еще не мало).

дорисовка промежуточных кадров в реальном времени, что гораздо сложнее чем это.
Видел такую фишку у одного эмулятора ZXspectrum. Хорошая штука.
Думаю, при реализации "промежуточных кадров" для NES эмулятора, может быть много багов.
(Например когда спрайты прячутся в скрытую область экрана, или еще что-нибудь на подобие. В таком случае, в промежуточном кадре, спрайт мелькнёт
на экране в ненужном месте)

кстати, есть вроде уже 2 эмулятора Nes, которые могут подменять не только тайлы, но и звуки с музыкой.
Догадываюсь, как будет такое называться, - "Репак". :)
Есть-ли у кого интересные репаки?

25
просмотри фильтры в ретроарче, их там куча, и возможно у же есть такой.
Посмотрел. Крутая вещь! Запутаться можно, много шейдеров..(Не привычно настраивать программу через внутренний интерфейс)
Похожего фильтра пока не нашел...

26
На какой стороне это должно обрабатываться?
На стороне эмулятора.
Фильтров хватает.
Вот еще один.

Самый топорный способ сделать фильтр "Шум", это положить картинку шума (с прозрачностью) поверх основного изображения.
Так можно посмотреть, как будет выглядеть изображение.

Как видно, изображение приобретает новые детали, но теряет яркость и цветность.

27
Вот идея появилась (так как имеется большой телевизор с высоким разрешением).

Под тайлами использовать еще слой со случайными пикселями (Шум).
Слой с шумом двигается вместе с тайлами, а при смене тайла генерируется новый тайл шума.
Таким образом достигается эффект высокой детализации, что вполне хорошо будет выглядеть больших экранах.


28
Хорошие хаки стали делать, уважуха!
И, по идее, больше 4-х игроков не надо. Три даже лучше!
Игровое пространство на NES ограничено для такого ,- а тут в хаке получилась "целая толпа мордобойщиков")


29
http://dendy.migera.ru/

Спасибо, информативный сайт.
(Ранее не заметил эго)


Раз уж заглянул -> Какой минимум нужен для эмуляции игры с изображением?
(Как я понимаю, без кода графического процессора игра не сможет эмулироватся)
Сможет-ли работать игра без звукового сопроцессора?

1.Первое что нужно загрузить РОМ в память. (Загрузчик)
2.Основной процессор (6502) - обязательно нужен!, выполняет код.
3.Память. В некоторых эмуляторах это отдельный класс. Его задача обмен данных процессора с остальными устройствами, которые отражаются в его адресном пространстве.
4.Графический процессор. Выводит изображение на экран.

30
Я так и не понял - что ты хочешь от игры? На какую игру какой мультиплеер?
И дай ссыль на то, что сделал Movax12, пожалуйста.  Я не в курсе.
Извиняюсь, что не ответил. Мозги от вопросов расплавились..

От игры я хочу мультиплеер. Желательно на много игроков.(Как в CS, Quake и т.д.)
Еще, к примеру, если увеличить число спрайтов, тогда можно сделать хак c двойными боссами"The Guardian Legend".

Для простоты я выбрал "SMB", потому что на него уже сделали исходный код. Вообщем-то я его и преобразую, параллельно заглядывая в дизассемблер fceux. Что-бы не было ошибок. Да, и еще адреса нужны.
Честно я не фанат SMB и не знаю что с ним такого сделать. Вероятно следующим шагом, попробую увеличить число Fireballs(Огненных Шариков).
Не уверен, можно-ли это сделать, без увеличения числа спрайтов. А так по идее, нужно расширить память. И поменять адреса переменных.

Вот ссылки на "Super Mario Brothers High Level Disassembly"
http://www.romhacking.net/documents/635/

Топик на форуме
http://forums.nesdev.com/viewtopic.php?f=2&t=9780

Для сравнения:
Код 1
  ProcFireball_Bubble:
      lda PlayerStatus       
      cmp #$02
      bcc ProcAirBubbles     
      lda A_B_Buttons
      and #B_Button             
      beq ProcFireballs         
      and PreviousA_B_Buttons
      bne ProcFireballs         
      lda FireballCounter       
      and #%00000001           
      tax
      lda Fireball_State,x     
      bne ProcFireballs         
      ldy Player_Y_HighPos     
      dey
      bne ProcFireballs
      lda CrouchingFlag         
      bne ProcFireballs
      lda Player_State           
      cmp #$03
      beq ProcFireballs
      lda #Sfx_Fireball         
      sta Square1SoundQueue
      lda #$02                 
      sta Fireball_State,x
      ldy PlayerAnimTimerSet     
      sty FireballThrowingTimer
      dey
      sty PlayerAnimTimer     
      inc FireballCounter       
      . . .   


Код 2
.proc ProcFireball_Bubble

    if PlayerStatus <> #2         
        if A_B_Buttons & #BUTTON_B && not a & PreviousA_B_Buttons
            mb x := FireballCounter & #%00000001                     
            if !Fireball_State[ x ] && y := Player_Y_HighPos - 1 == zero && !CrouchingFlag && Player_State <> #3
                mb Square1SoundQueue := #SFX_Fireball               
                mb Fireball_State[ x ] := #2       
                mb y, FireballThrowingTimer := PlayerAnimTimerSet   
                mb PlayerAnimTimer := y - 1       
                inc FireballCounter             
if PlayerStatus <> #0
    mb y, FireballThrowingTimer := PlayerAnimTimerSet
mb PlayerAnimTimer := y - 1
mb a := #1
endif
            endif
        endif
        . . .     

                                                                                     P.S. Jumanji Entertaiment System

Страницы: [1] 2 3 4 Далее