Автор Тема: Дампинг, обсуждаем, делимся ромами своих дампов  (Прочитано 15582 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2629
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
У меня для этих целей просто стоит древний комп с 98 виндой. Там работа с lpt портом не перекрыта и всё прекрасно работает...

И как я не пытался запустить устройства эти на xp и выше через всякие переходники - ничего не работает... И без переходников тоже (так как на уровне системы блочится часть порта), только 98 винда...

Оффлайн Yaranga

  • Администратор
  • Сообщений: 14364
  • Пол: Мужской
    • Просмотр профиля
Guyver(X.B.M.), так и я о том, отличие этого тк от древнего компа что он места гораздо меньше занимает.

293108-0

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25621
    • Просмотр профиля
Guyver(X.B.M.), у меня всё прекрасно работало через UserPort. На работе что-то другое установлено, не помню. Но программатор на LPT работает исправно.
Но это для ХР, выше уже не.

Тонкие клиенты с LPT можно найти очень за недорого
Наверно. Я взял Тошибу Сателлит 4300. При тех же габаритах ещё и с экраном.

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2629
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Я использую старый комп с 98 виндой для самодельного синтезатора и прочих самоделок, поэтому мне нет смысла ничего менять... Места у меня полно, так как кроме кошки у меня других домашних нет :lol:

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

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25621
    • Просмотр профиля
"дампер Рюмика" - это урезанный Willem

Оффлайн stargazer

  • Пользователь
  • Сообщений: 82
  • Пол: Мужской
    • Просмотр профиля
Выкладываю свой дамп недавно вышедшего скролл-шутера 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 КБ - загружено 266 раз.)
« Последнее редактирование: 09 Июль 2025, 20:43:49 от stargazer »

Оффлайн murgatroid_79

  • Пользователь
  • Сообщений: 396
  • Пол: Мужской
    • Просмотр профиля
Выкладываю свой дамп недавно вышедшего скролл-шутера ZPF...
stargazer, спасибо  :thumbup:

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25621
    • Просмотр профиля
Вообще хорошим тоном считается указывать платформу. Только не надо "и так понятно", "и так все знают" и т.п.

Оффлайн Nhisti

  • Пользователь
  • Сообщений: 1045
    • Просмотр профиля
Кстати, да, я вот по снимкам не понял  :-\

Оффлайн stargazer

  • Пользователь
  • Сообщений: 82
  • Пол: Мужской
    • Просмотр профиля
Выкладываю свой дамп недавно вышедшей игры 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: Поправил баг с цветами, обновил архив с исходниками и собранные ядра

* TheSecretOfTheFourWinds (W)(Aftermarket) [!].rar (2323.47 КБ - загружено 508 раз.)
* libretro_core_win_x64_x86.rar (950.76 КБ - загружено 279 раз.)
* Genesis-Plus-GX-TheSecretOfTheFourWinds-Sources.rar (8953.53 КБ - загружено 557 раз.)
« Последнее редактирование: 23 Июль 2025, 23:34:54 от stargazer »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5499
    • Просмотр профиля
Выкладываю свой дамп недавно вышедшей игры
The Secret of the Four Winds. Есть проблемы эмуляции, когда происходит затухание экрана инвертируются цвета (проверял в RetroArch и BizHawk ядро x64), например это место https://youtu.be/-61Kuf78mkE?t=283 выглядит так:
Интересно где вы достали код эмуляции, на nextgenroms ещё не успели выложить, а они там ждут.
UPD: Фото платы с nextgenroms, чтобы не создавать ещё сообщение.
295840-1

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25621
    • Просмотр профиля
использует основную флеш память с ROMом игры для сохранений
Как Life On Mars?
Кстати, плату картриджа можно где-то увидеть?

Оффлайн stargazer

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

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25621
    • Просмотр профиля
Ага, таки не с флешки, а SD. Хороший подарок любителям замены саундтреков :) Хотя, по ходу, можно SPI Flash поставить

Добавлено позже:
Типа того, хотя тут проще
Ну, я не имел в виду сам код. Просто общий принцип

Оффлайн stargazer

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

Оффлайн murgatroid_79

  • Пользователь
  • Сообщений: 396
  • Пол: Мужской
    • Просмотр профиля
...ВНИМАНИЕ! Игра использует дополнительное железо в картридже - аппаратный MP3 плеер YX5200 с отдельной флешкой, на которой записан саундтрек...
stargazer, очень любопытный картридж  0_0 ...
На шелкографии указано авторство doragasu,но почему то на его страничках на Gitlab и Githab такого проекта не углядел .
Это уже стандарт такой или пока одна игра только вышла?

P.S.: Помница ещё HardWareMan хотел к Sega чип VL1001K приконнектить  :-\

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25621
    • Просмотр профиля
Помница ещё HardWareMan хотел к Sega чип VL1001K приконнектить  :-\
В смысле VS1001K? Да, такое напрашивается само собой. Кстати, с этим китайцем намного проще. Он сам работает с SD / Flash

Оффлайн bgr

  • Пользователь
  • Сообщений: 592
    • ВКонтакте
    • Просмотр профиля
Готов ли кто-нибудь шарищий за ромхакинг проверить в чем отличие в защитах на разных ревизиях картриджа gunfight? Должно быть по меньшей мере три дампа с разной вариацией защиты и один - другая ревизия рома.

Добавлено позже:
Дампы я само собой выложу, если будут желающие поковыряться.

Оффлайн murgatroid_79

  • Пользователь
  • Сообщений: 396
  • Пол: Мужской
    • Просмотр профиля
В смысле VS1001K?...
  Надо у Хардыча спрашивать о смысле...
А он с форума ушёл 😬
« Последнее редактирование: 23 Июль 2025, 13:56:53 от ALEX_230_VOLT »

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25621
    • Просмотр профиля
Ну это просто опечатка. Была такая микросхема - VS1001K. Выпуск прекращён, кстати. https://www.vlsi.fi/en/products.html

Оффлайн stargazer

  • Пользователь
  • Сообщений: 82
  • Пол: Мужской
    • Просмотр профиля
Все, я победил этот странный баг с искаженными цветами :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;
}

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

Оффлайн warezhunter_

  • Пользователь
  • Сообщений: 289
    • Просмотр профиля
Попалась мне в руки вот такая китайская многоигровка:
https://aliexpress.ru/item/1005003016654103.html
Она интересна тем, что содержит в себе хакнутые версии игр. Например на кнопку Select в некоторых играх восстанавливается здороаье, в Felix The Cat можно трансформироваться в различные формы на кнопку Select. Мне даже удалось сдампить меню этой многоигровки и запустить через Fceux. Надо как то игры все повытаскивать оттуда.

Оффлайн aquasnake

  • Пользователь
  • Сообщений: 56
    • Просмотр профиля
doragasu

S29GL064: Spansion Nor-flash 64Mbit

YX5200:  悦欣  sigle chip mp3 decoder(www.yxin18.com)

HCT377: Latch, Octal D-type flip-flop

The dumpped 4MB ROM may not be the full data, the full ROM I guess should be the size of 8MB. Despite having almost half of the data redundancy, the data at certain addresses is different. In principle, a RAM chip is needed, but by doubling the redundant data and using a latch to control the switching of the highest address bit, cost reduction can be achieved.

Оффлайн Werton

  • Пользователь
  • Сообщений: 991
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
Этот баг относится к  классу "Undefined Behavior"
Нет, это Unspecified Behavior :)

Оффлайн warezhunter_

  • Пользователь
  • Сообщений: 289
    • Просмотр профиля
Дампинг, обсуждаем, делимся ромами своих дампов
« Ответ #84 : 05 Сентябрь 2025, 11:31:24 »
Попалась на глаза мне вот эта одноигровка:
https://aliexpress.ru/item/1005002165797973.html
297603-0
297605-1
и значит решил я её сдампить. Смотрю на плату а на ней квадратная микросхема SMD133 и еще две микросхемы CS18LV20483 и S29GL064N.
Начинаю гуглить SMD133 это маппер MMC3, S29GL064N - 64 mbit флэш-память, CS18LV20483 - 256k SRAM-память. При попытке сдампить под MMC3 ничего не работает, помучался немного и полез гуглить как эта микросхема SMD133 работает и наткнулся на маппер 268 на сайте nesdev.org, еще раз внимательно разглядываю картридж и вижу надпись на нём Mindkids, вижу в таблице, что это маппер 268.0 или 268.1, дамплю как --mapper 268.0. Открываю его в Fceux 2.6.6 и он работает! Надо было додуматься еще одноигровку на нём сделать. :wacko:

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 451
    • Просмотр профиля
Дампинг, обсуждаем, делимся ромами своих дампов
« Ответ #85 : 05 Сентябрь 2025, 11:52:34 »
Видимо для китайца S29GL064 дешевле чем аналогичная память меньшего объема, а вся сборка дешевле, чем что-то подобное на dip микросхемах. Так что вопрос только в экономике.

Оффлайн warezhunter_

  • Пользователь
  • Сообщений: 289
    • Просмотр профиля
Дампинг, обсуждаем, делимся ромами своих дампов
« Ответ #86 : 05 Сентябрь 2025, 13:07:54 »
А вот еще один экземпляр на маппере 268.1
297612-0
297614-1
297616-2
покупался примерно года 3 назад, сделан на базе Pocket Games 150 in 1

Оффлайн warezhunter_

  • Пользователь
  • Сообщений: 289
    • Просмотр профиля
Дампинг, обсуждаем, делимся ромами своих дампов
« Ответ #87 : 05 Сентябрь 2025, 13:22:51 »
И еще один, вот этот:
https://aliexpress.ru/item/1005004232303718.html
Только разобрать у меня его не получилось, ломать его я не хочу, но он сдампился с маппером 268.0, после чего запустился на эмуляторе.
« Последнее редактирование: 05 Сентябрь 2025, 13:29:56 от warezhunter_ »

Оффлайн Rumata

  • Emu-Land Team
  • Сообщений: 25621
    • Просмотр профиля
Дампинг, обсуждаем, делимся ромами своих дампов
« Ответ #88 : 05 Сентябрь 2025, 13:23:24 »
Видимо для китайца S29GL064 дешевле чем аналогичная память меньшего объема,
Это же всё б/у, по наклейке даже моно узнать откуда. Им, небось, ещё и заплатили за утилизацию отходов

Оффлайн warezhunter_

  • Пользователь
  • Сообщений: 289
    • Просмотр профиля
Дампинг, обсуждаем, делимся ромами своих дампов
« Ответ #89 : 07 Сентябрь 2025, 09:53:59 »
Всё не дает мне покоя этот картридж на аналоге MMC3 (микросхема AX5202P).
297718-0
297720-1
Причем первые две части Rockman видимо перехачены под маппер MMC3.
Сдампил я его под маппер MMC3 при помощи команды
famicom-duper dump --reset --mapper mmc3 --prg-size 256k --chr-size 256k --file rockman6in1(1).nesКоманду --reset приписал для того, чтобы при запуске предварительно переключилось в меню с выбором игр, так как при включении консоли стартует игра Rockboard и при нажатии на Reset переключается в нужное меню. При запуске полученного дампа через Fceux из меню стартует только одна игра Rockman 5.
При изучении сдампленного рома, я обнаружил, что меню встроено в игру Rockman 5, а обращения к дополнительным регистрам такие:
Режим адрес значение hex
start 6000 00
Rockman1 6800 12
Rockman2 6800 16
Rockman3 6800 04
Rockman4 6800 19
Rockman5 6800 00
Rockman6 6800 1B
То есть при выборе игры через меню, по адресу 6800 записывается определенное значение (для Rockman 1 - 12, для Rockman 2 - 16 и т.д.). Можно сдампить все игры по отдельности, предварительно записав нужное значение по адресу 6800, но я ковяряюсь уже второй день и не пойму как это сделать.
Функционал дополнительного регистра похоже, что такой:
0: 0 - MMC3-256, 1 - MMC3-512;
1, 2, 3: PRG addr, bit2 видимо также используется как старший адрес CHR;
4: 0 - CHR ROM, 1 - CHR RAM
Обращение по 6800 вероятно лочит регистр от записи.
Прошу помощи в написании скрипта для кластеровского дампера, чтобы сдампить данный картридж. В программировании C# я не силен, что то более простое написать могу.