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

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


Сообщения - stargazer

Страницы: [1] 2 3 Далее
1
Все, я победил этот странный баг с искаженными цветами :cool: Обновил архив с исходниками и скомпилированными файлами ядра.
Проблема никак не связана с моими правками и проявилась только из-за более новой версии компилятора.

Вот функция, которая читает 16-битное слово из регистра VDP, в нашем случае из регистра данных с указателем в CRAM
/* vdp_ctrl.c */
static unsigned int vdp_68k_data_r_m5(void)
{
  uint16 data = 0;

  /* Clear pending flag */
  pending = 0;

  /* Check destination code (CD0-CD3) & CD4 */
  switch (code & 0x1F)
  {
    case 0x00:
    {
      /* read two bytes from VRAM */
      /* .... */
   
      break;
    }

    case 0x04:
    {
      /* VSRAM index */
      int index = addr & 0x7E;

      /* .... */

      break;
    }

    case 0x08:
    {
      /* Read 9-bit word from CRAM */
      data = *(uint16 *)&cram[addr & 0x7E];

      /* Unpack 9-bit CRAM data (BBBGGGRRR) to 16-bit bus data (BBB0GGG0RRR0) */
      data = ((data & 0x1C0) << 3) | ((data & 0x038) << 2) | ((data & 0x007) << 1);

      /* Unused bits are set using data from next available FIFO entry */
      data |= (fifo[fifo_idx] & ~0xEEE);

      /* .... */
      break;
    }

    case 0x0c: /* undocumented 8-bit VRAM read */
    {
      /* .... */
      break;
    }

    default:
    {
      /* Invalid code value (normally locks VDP, hard reset required) */
      break;
    }
  }

  /* Increment address register */
  addr += reg[15];

  /* Return data */
  return data;
}

А вот функция чтения 32-битного значения из памяти при эмуляции инструкций CPU 68000, например для инструкций типа "move.l (a0),d1".
Переменная "temp->read16" для данного случая содержит указатель на функцию, приведенную выше.
/* m68kcpu.h */
INLINE uint m68ki_read_32(uint address)
{
  cpu_memory_map *temp;
  uint val;

  m68ki_set_fc(FLAG_S | m68ki_get_address_space()) /* auto-disable (see m68kcpu.h) */
  m68ki_check_address_error(address, MODE_READ, FLAG_S | m68ki_get_address_space()) /* auto-disable (see m68kcpu.h) */

  temp = &m68ki_cpu.memory_map[((address)>>16)&0xff];
  if (temp->read16) val = ((*temp->read16)(ADDRESS_68K(address)) << 16) | ((*temp->read16)(ADDRESS_68K(address + 2)));
  else val = m68k_read_immediate_32(address);

#ifdef HOOK_CPU
  if (UNLIKELY(cpu_hook))
    cpu_hook(HOOK_M68K_R, 4, address, val);
#endif

  return val;
}

Найдете ошибку? :)

2
The Secret of the Four Winds. Есть проблемы эмуляции, когда происходит затухание экрана инвертируются цвета (проверял в RetroArch и BizHawk ядро x64), например это место https://youtu.be/-61Kuf78mkE?t=283 выглядит так:
Сейчас проверил: такие искажения цветов при "fadeout" палитры возникают только на Release сборках :neznayu:, причем даже если просто собрать не модифицированное ядро, без моих изменений. На Debug сборках такого не наблюдается...Я собирал под VisualStudio 2019, может какие-то настройки проекта неправильно импортировались :-\

3
Как Life On Mars?
Кстати, плату картриджа можно где-то увидеть?
Типа того, хотя тут проще, игра использует библиотечные функции из SGDK.
Я выкладывал ранее.
https://www.emu-land.net/forum/index.php/topic,77919.msg1647328.html#msg1647328
Интересно где вы достали код эмуляции, на nextgenroms ещё не успели выложить, а они там ждут.
Сам написал :cool: Возможно, есть ошибки, я все игру не проходил на эмуляторе  :neznayu:

4
Выкладываю свой дамп недавно вышедшей игры The Secret of the Four Winds в жанре Adventure/RPG для SEGA MegaDrive\Genesis :)
Цитата
Однажды ночью в городе начали происходить странные вещи, которые невозможно было объяснить ни наукой, ни здравым смыслом. Вы и ваши напарники должны выяснить причины этих событий, пока не стало слишком поздно.


 - Ключевые моменты истории переданы с помощью привлекательных сцен в стиле аниме.
 - Исследуйте город, проводите расследование, допрашивайте подозреваемых, принимайте решения, которые будут иметь последствия для сюжета.
 - Сражайтесь командой, используйте разные тактики, получайте очки опыта и улучшайте свои навыки.


ВНИМАНИЕ! Игра использует дополнительное железо в картридже - аппаратный MP3 плеер YX5200 с отдельной флешкой, на которой записан саундтрек, а также использует основную флеш память с ROMом игры для сохранений. На обычном эмуляторе игра не запустится! Для игры потребуется заменить ядро Genesis-GX на модифицированное, с поддержкой данной микросхемы. Архив с исходниками прилагаю. Для игры под Windows 32/64 можно скачать уже собранные бинарники.

Папка с названием "soundtrack" должна располагаться в той же папке, что и ROM с игрой.
https://www.mediafire.com/file/3qgpmemsnxkj8na/TheSecretOfTheFourWinds-soundtrack.rar/file

UPD: Поправил баг с цветами, обновил архив с исходниками и собранные ядра

* Genesis-Plus-GX-TheSecretOfTheFourWinds-Sources.rar (8953.53 КБ - загружено 261 раз.)
[ Гостям не разрешен просмотр вложений ]
[ Гостям не разрешен просмотр вложений ]

5
STM32F446 contains only 512kB of internal flash memory. There's no serial memory onboard, except 64kBit EEPROM used for saves.
So, it's impossible to store pre-mastered soundtrack (400+ MBytes) even with lossy compression format, like mp3.
Most likely, sound is generated procedurally by software synthesizer inside ARM controller, but since it's firmware is not dumped, sound output from cartridge was recorded and converted to mp3 tracks for emulation purposes.
Theoretically, it's possible that input data for synthesizer is stored inside main ROM flash, but since it's format and inner workings of synthesizer is unknown, this wouldn't help much even if this is the case.

6
Выкладываю свой дамп недавно вышедшего скролл-шутера ZPF для SEGA MegaDrive\Genesis :)
Цитата
ZPF - это горизонтальный скролл-штуер, вдохновленный такими, ставшими классикой играми, как Lord of Thunder, Elemental Master и Thunderforce III/IV и сочетающий в себе элементы фэнтези и научной фантастики в одно большое приключение. С уровнями варьирующимися от цветущих королевств, до антиутопии будущего и кишащего чужими космоса, ZPF предлагает богатый, разнообразный геймплей, где вы встретитесь с уникальными врагами и сразитесь со строем свирепых 16-битных боссов.
  • Свирепые 16-битные боссы в конце и середине уровня
  • Захватывающая система очков
  • 3 доступных для игрока персонажа
  • Изобилие секретов
295318-0295320-1295322-2295324-3
* ZPF (W)(Aftermarket) [!].rar (1391.18 КБ - загружено 111 раз.)

7
Да, похоже я ошибся  :cry:  Сейчас еще раз посмотрел исходники - для сохранений эмулируется параллельная SRAM память, как на обычном картридже, тогда как на реальной плате используется последовательная EEPROM. Приношу свои извинения!

8
Это декларировалось именно как заказная микросхема, а не некое абстрактное устройство или название железа картриджа. Даже был создан фейковый сайт производителя - Daten Semiconductor :facepalm: Так что это уже не маркетинг, а просто вранье.
так. стоп. а у меня есть они. или я путаю что-то?
Не путаешь с сохранениями эмулятора Quick Load, Quick Save?

9
Не похоже, скорее заэмулировали методом научного тыка  :biggrin:  Пример: если игра записывает значение xxxx по адресу yyyyyy и начинает играть один трек, а потом записывает значение zzzz туда же, и начинает играть другой трек, то значит регистр по адресу yyyyyy управляет воспроизведением аудио треков. И так далее.  :D
Судя по исходникам, не все функции железа эмулируются, только самые необходимые. Например, внутриигровые сохранения не работают, все, что относится к подключению к интернету через разъем MegaWire - тоже. Может еще какие-то функции и спецэффекты отсутствуют.

Похоже что эмуляция игры далеко не полная, т.е. этот пресловутый аудио чип (или fpga, которая его имитирует), который должен был играть хайрес музон - не эмулируется, а музыка играется прямо из mp3 файлов из папки. Так что всяким ушлым товарищам, по типу итконсольщика, который уже собрался барыжить пират кариками, придется немного "охладить траханье" :lol:
Думаешь, технически очень сложно реализовать воспроизведение музыки "прямо из mp3 файлов из папки"? ;)

10
Кароч. Тут пишут, что тот самый СУПЕРДУПЕР-чип из-за которого заэмулить было низя, это TM32,  чипы памяти, Intel MAX 10, FPGA, и ещё ряд дискретных элементов.

Я ничего в железе не понимаю и для меня это тупо иероглифы, но говорят, что тот самый чип, это обман.
Не совсем так. :) В картридже Paprium используются стандартные и общедоступные компоненты: дискретная логика, флешка с ромом игры, оперативная память, микроконтроллер STM32F446 и ПЛИС Intel MAX10. Все это каждый может купить в ЧиДе или на Алиэкспресс ;)
Проблема с эмуляцией возникла из-за того, что в отличие от флешки, внутреннюю память микроконтроллера и ПЛИС невозможно просто так считать, она заблокирована для чтения. А без корректной эмуляции этих компонентов, слитый с флешки РОМ становится бесполезным. Максимум, возможно поиграть в фейковую мини-игру.
Вранье разработчиков (конкретно, француза с позывным Fonzie) заключалось в том, что они утверждали, что используется заказная(!) микросхема-процессор "Datenmeister" разработанная специально для это игры(!!).

11
Не поленился и подсчитал  :)

Зашел на сайт http://www.nextpcb.com. Не самый дешевый китайский производитель, но с Россией они как работали так и работают.
Загружаем герберы (те, что выше по ссылке) и получаем $6.14 (~510 ₽) (на первый заказ скидка, если без нее то $11.13 (~926 ₽)) за 5 штук.
Если выбрать покрытие из иммерсионного золота (ENIG), то цена возрастет до $37.92 (~3154 ₽) (без скидки $47.92 (~3985 ₽))
Все цены уже включают доставку в Россию  :)

Теперь Резонит. Загрузка герберов на сайте на сайте у них не предусмотрена, все нужно вводить вручную.
За те же 5 плат с лужением они просят минимум 4023.06  ₽, если заказ не срочный.
С покрытием золотом выходит немного дороже 4180  ₽
Доставку эта цена, судя по всему, не включает. Во всяком случае, я не нашел никакого упоминания об этом.  :neznayu:

По срокам примерно получается одинаково: у Резонита срок изготовления 19 дней + доставка по России, у nextpcb - изготовление 2 дня + доставка из Китая.

Все равно у китайцев дешевле, хотя в случае золочения разница и невелика :) Но можно поискать варианты подешевле, на том же Али есть посредники в изготовлении плат.

12
Картриджи / диски / Sega Lock-On и FlashKit MD
« : 11 Апрель 2025, 08:38:40 »
Цитата
Получается этот универсал может сохраняться даже при роме 3мб а-ля Beyond Oasys и даже 4мб а-ля Doom Resurection 32x?
Любые игры до 4Мб с или без сохранениями, включая Sonic3 с поддержкой Lock-On.
Цитата
А случаем готового гербера не найдётся?
Найдется :cool:

13
Картриджи / диски / Sega Lock-On и FlashKit MD
« : 10 Апрель 2025, 22:55:11 »
В картридже Sonic3 стоит дополнительная логика. Для переключения в режим Lock-On используется сигнал /VRES, который в картридже S&K соединен с землей.
Вот схема универсального картриджа.
291957-0

14
Джойстики и прочие манипуляторы / SEGA MD Vibro
« : 16 Сентябрь 2024, 23:44:38 »
stargazer, можно просто заставить Румату разобрать джой и узнать маркировку🤔
Возьмешь эту задачу на себя?  :biggrin:

15
Джойстики и прочие манипуляторы / SEGA MD Vibro
« : 16 Сентябрь 2024, 23:29:13 »
По фото из первого поста удалось определить модель моторчика: R260

https://aliexpress.ru/item/1005005585710990.html
https://aliexpress.ru/item/1005002437589792.html
Правда, судя по описанию, в таком корпусе существует несколько вариантов с разными характеристиками  :-\
281542-1

16
Джойстики и прочие манипуляторы / SEGA MD Vibro
« : 14 Сентябрь 2024, 22:03:09 »
stargazer, если не возвражаешь - скинь контакты, куда тебе можно написать, чтобы более обширно обсудить работу этого джойстика.
Ответил в личку.

И как будет время - проверь, пожалуйста, вот этот ром: https://dropmefiles.com/azyl3
Посылаются ли в нём какие-то команды, проверки сразу же после включения?
Negative.
Да и с чего ему поддерживать вибро, в списке хаков от GlorySun этой игры нет  :neznayu:

17
Схема включения транзисторов (общий коллектор) выглядит подозрительно :-\

18
Сделал тестовый РОМ для проверки джойстика с вибрацией, надеюсь, нигде не накосячил :)
Просьба ко всем, у кого есть такой джойстик и флешкартридж: запустите его на приставке, и попробуйте посылать разные значения параметра.
Отпишитесь по результатам в этой теме или мне в ЛС :surrender:
Параметр вибрации имеет 4 бита, это дает всего 16 возможных комбинаций, так что протокол обмена должно быть легко "забрутфорсить"

UPD: Исправил ошибку со скроллом на Kega Fusion, спасибо bgr. Проверял на 3 трех эмуляторах (Gens, Exodus, BlastEm) все было нормально, и только на нем вылезла эта бяка  :cry:

19
Внесу свои 5 копеек в эту тему :)

Немного поковырял ROM из первого поста, рассмотрел фотографии платы, привожу результаты своих изысканий :)
Сразу скажу, что ничего из этого на практике не проверялось и такого джойстика у меня нет, так что вполне возможно, я где-то ошибся.

Обмен данными выглядит так: после стандартных 4-х опросов для 6-и кнопочного джойстика 2 младших бита (соответствующие кнопкам вверх и вниз)
порта джойстика переводятся в режим вывода. Бит 6 (сигнал select), вероятно, используется для клок для загрузки данных. Далее в два этапа
загружаются 4 бита данных вибрации (уровень вибрации ?) Игра использует только значения 3,2,0 причем они всегда одинаковые для обоих пар.
Также используется счетчик, который уменьшается на 1 каждый кадр, и когда он достигает 0, значение данных тоже становиться 0. Игра использует
только 2 значения счетчика 255 и 30.
Я написал алгоритм работы с джойстиком данного хака в виде С кода.
В принципе, можно взять какую-нибудь 5-вольтовую Ардуину, подключить ее к этому джойстику и попробовать послать какую-нибудь команду.

Обвязка капли:
279635-0
Интересно, как осуществляется управление вибромотором, через ШИМ или линейно через ЦАП ?
И для чего там делитель напряжения (а скорее всего это он, раз там стоят 1% резисторы), это какое-то референсное напряжение, 3.4В ?

20
Картриджи / диски / Mega Everdrive Pro умер
« : 16 Июль 2024, 14:57:10 »
Такая штука сгорела. ET26 в корпусе sot-25. Чем заменить, а, главное, где найти - вопрос...
Скорее всего, это шим контроллер MCP1603T-120I/OS можно еще сверить тестером распиновку с даташитом.
Не важно, что ты евердрайв покупал не напрямую, у тебя оффициальная железка. Напиши крикзу или на офф форуме вопрос как эта хреновина оффициально называется, а не ее китайскую маркировку. 100% что оно есть на али рублей за 300 максимум.
Главное, писать по-английски и не говорить, в какой стране находишься  ;)

21
Картриджи / диски / Coolboy writer на esp32
« : 29 Декабрь 2023, 08:39:36 »
Есть некоторые минусы, типа libusb-win32
А в чем минусы использования этой библиотеки ?

22
Любой стабилизатор на 3.3в в корпусе SOT-223 и совпадающими выводами.

Не SOT-223 а SOT-89
Есть какой-то сайт, где можно найти деталь по параметрам?
https://www.chipdip.ru/catalog/ic-stabilizers?x.4159=ZWUC&x.4160=CDz&x.4161=UbJ&x.4163=uJT&x.4167=yrn

23
Цитата
но на Алиэкспрессе есть провод с дополнительным колокольчиком, получается, что он может передавать стерео.
Все стерео кабели для Мегадрйва на Алиэкспрессе имеют неправильную распайку. На одном канале левый, на другом сумма левого и правого (моно).  >:( Так что либо его потом придется разбирать и перепаивать, либо покупать сразу дорогой кабель типа HDRetrovision.

24
Маппера как такового там нет, игра использует адресное пространство зарезервированное для Сега СД. Нужно только формировать сигнал CE#, поскольку для данного диапазона он не формируется приставкой.

25
Технические советы / Какую SNES брать?
« : 03 Март 2023, 08:09:16 »
Небольшая база серийников SNES/SFC https://docs.google.com/spreadsheets/d/1HYLy_TTDop_FzuX6qnxuQI43upg4raXfno582taO744/pubhtml#, я когда искал себе одночиповую ревизию ориентировался на нее  :)
Одночиповые наклейкой на нижней части корпуса отличаются,...
И как их отличить по наклейке?

26
Вот такая есть программа. Автор - Vga c сайта http://we.easyelectronics.ru (если не ошибаюсь).

27
4 поколение / Русификация картриджа snes
« : 05 Сентябрь 2022, 14:08:44 »
Один широко известный в узких западных ретро-кругах америкос давно "переводит" картриджи для SF без замены микросхем (вот бы у нас кто подобное делал...  :-\ ):
Спасибо за ссылку :) Тоже лежит пару японских картриджей, надо будет себе такие переходники сделать. Только не понятно, как он обходится без отключения масок  :-\
Только так и нужно, а лучше вообще без пайки . Не понимаю зачем портить оригинальный картридж в принципе, без подлинности нет истории, нужен хак на карике - сделать репродукцию с нуля или не делать вообще. Скоро только испорченное и останется.
Проблема в том, что репродукция с качеством "как у оригинала" и без использования доноров, будет стоить очень дорого :-\

28
Цитата: Rumata
У Рюмика для снятия дампов в статье предлагается отдельное устройство.
Т.е. записали образ на флешку, а чтобы проверить, правильно ли записалось, нужно отдельное устройство  :wow: Тогда неудивительно, что id флешки прочитать не удается. :lol:
 
Но вроде как должен читать, медленно правда, по 1 битику через пин ACK  :) Автор в статье предлагает улучшенную версию, у него сразу 4бита передаются (через ACK,BUSY,PE,SEL)

29
Ну тогда, я даже не знаю, что посоветовать... :neznayu:
Бери схему оригинального программатора и сравнивай со своей. http://willem-eprom.ru/document/

30
И это правильно :) Поэтому нужно отключить в настройках программатора чтение этих этих значений или их проверку. Я никогда не пользовался Willem, поэтому тут не могу ничего подсказать.

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