Автор Тема: Эмулятор аркадных автоматов М.А.M.E  (Прочитано 653369 раз)

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

Оффлайн Homsa

  • Пользователь
  • Сообщений: 107
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« : 16 Сентябрь 2004, 21:42:39 »

Вся необходимая информация находится под спойлером ниже:
« Последнее редактирование: 20 Апрель 2020, 23:34:41 от MetalliC »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3390 : 17 Март 2018, 21:08:47 »
вау, так сильно пригорело  :lol: брат хоть не умер ?

Оффлайн Miko01

  • Пользователь
  • Сообщений: 2
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3391 : 20 Март 2018, 23:35:36 »
Здравствуйте. Не подскажите, где можно скачать (если вообще возможно) Knights of Valour 3? Скачивал с пары сайтов и при запуске всё время выдаёт, что некоторые файлы не найдены.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля

Оффлайн Midnight Kid

  • Пользователь
  • Сообщений: 54
  • Пол: Мужской
  • It's just that simple.
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3393 : 21 Март 2018, 23:16:57 »
Подскажите, существуют ли какие-либо стандартные, наиболее оптимальные настройки 7-zip для максимальной компрессии РОМов для МАМЕ. Перепробовал множество различных параметров памяти (64М - 1536М) и словарей (64 - 273) с LZMA/LZMA2, но результат получается разный и при Batch рекомпрессии из zip в 7z сложно найти оптимальное решение для всех РОМов сразу.
Супероптимальных, конечно же, нет.
А так, то можно создавать BAT-файлы с прописаными командами запаковки. (Pea Zip, например, позволяет копировать сгенерированные скрипты, после чего их можно комбинировать в BAT). Причем, важно, чтобы путь к файлам не был сильно перегружен, но это легко исправить перемещением в папку, находящуюся прямо на диске C:, D:, и т. п.
Вообще, обсуждать это "на словах" бессмысленно. На практике в этом легче разбираться, как по мне. Я лично занимаюсь этими "играми" с настройками и ключами архивации, и могу на 99 % утверждать, что консольная версия 7-Zip, как правило, уделывает остальные варианты. Но для этого следует перепробовать все возможные способы.
Примерный идеал: с сортировкой файлов или без нее, + к этому учитывать запаковку через консольный 7z.exe + LZMA2-сжатие (хотя, судя по описанию 7z-архива, можно и LZMA потестить для лучшего сжатия в некоторых случаях) - всего 4 способа для одного архива (с учетом вариаций). Словарь на всевозможный максимум (у меня 128M предел, но многие паковались и на пиковой точке 1536M), слово тоже в максимум (273), непрерывное сжатие.
Все вариации загоняем в BAT. Запускаем, ждем конца архивации. При нехватке памяти сбрасываем размер словаря. Рекомендуется делать все это на довольно мощных компах, обладателях слабых, возможно, придется юзать интерфейсный 7zG.exe.

А принцип работы любого архиватора прост.  Архиватор определяет какую пиковую точку словаря ему достаточно потянуть на максимуме (в методе сжатия готового архива обычно указывается число, при этом нередко так бывает, что хватает словаря на 192, например, а не весь доступный максимум 1536), минимум выбирается в настройках. К этому минимуму любой GUI-архиватор и будет стремится, циклично сбрасывая размер словаря по заранее вшитым значением при нехватке памяти; консольная версия, напротив, позволить себе этого не может - просто выдаст ошибку (у 7z значения словаря - 1536; 1024; 768; 512; 384... и так вплоть до минимума, который задает система, например, 64).
Затем выбираем минимальный архив, перемещаем к MAME, сканируем и, убедившись, что все шикарно, спокойно рубимся.

Но для таких идеалов, конечно же, нужно время.
« Последнее редактирование: 01 Май 2018, 09:20:32 от Midnight Kid »

Оффлайн retrokun

  • Пользователь
  • Сообщений: 35
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3394 : 24 Март 2018, 15:49:04 »
Cheshire Kotovsky,
так а что будет если их запустить на пс3 интересно?
консоль повиснет?
А, файтинги поколения пс1  идут
видел тут соул блейд 17 мегов

Да видео роликов и музла на вставляли вот объем и вырос.

Добавлено позже:
Для любителей игр на Model 2 недавно произошёл приятный сюрприз - в эмуляции этой платформы на MAME произошёл резкий прорыв (в частности, переведено на "жёлтый" уровень несколько ромов Virtual Fighter 2 и Motor Raid).

думаю большинство уже на model 2 emulator поиграли.

Оффлайн xttx

  • Пользователь
  • Сообщений: 240
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3395 : 01 Май 2018, 08:59:31 »
Возможно-ли в МАМЕ в LUA зарегистрировать callback на нажатие кнопки на клавиатуре? Или только в каждом кадре keystate проверять? И если только второе, то насколько сильно это бьёт по производительности?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3396 : 01 Май 2018, 11:17:05 »
xttx, такое лучше спрашивать на IRC-каналах MAME, может кто из разработчиков баловавшихся с LUA и подскажет

Оффлайн xttx

  • Пользователь
  • Сообщений: 240
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3397 : 01 Май 2018, 11:25:04 »
Понятно. Спасибо, попробую там.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3398 : 01 Май 2018, 14:03:49 »
да не за что, можно еще там спросить - http://www.mameworld.info/ubbthreads/postlist.php?Cat=&Board=programming

вообще похоже так и предполагается хукать свои функции, и каждый кадр поверять
по крайней мере к примеру в этом Autofire плагине так сделано, и от crazyc (чел который делал Lua в MAME) замечаний по этому поводу не было

Оффлайн xttx

  • Пользователь
  • Сообщений: 240
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3399 : 01 Май 2018, 16:50:01 »
Да, я тоже на этот пост натыкался когда искал. только не знал, что crazyc автор этой штуки.
В irc в меня кинули ссылкой на src/frontend/mame/luaengine.cpp/luaengine.cpp, там видно, что по другому никак не получится. Значит и так сойдёт...

То что хотел, я сделал, но посмотрев исходник, возникла ещё одна идея...
В общем, если не сложно, подскажи: состояния девайсов (device_state_interface) - это состояния какого рода? Смогу-ли я через этот интерфейс получить от флоппика информацию о том, читает он в данный момент/пишет или idle? После старта системы, когда я получаю массив состояний флопа - он пустой. Там что-то есть только когда флоппик работает, или нужно что-то сделать, что бы там что-то было?
Или это всё вообще про какие-то другие состояния? :)

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3400 : 01 Май 2018, 17:06:59 »
не знаю, я таким не баловался. по идее да, как-то наверное можно :)
можно экспериментировать в консоли, запустить эмуляцию -
mame имясета -console
вводить Lua-код/комманды и смотреть что получается, или не получается

Оффлайн xttx

  • Пользователь
  • Сообщений: 240
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3401 : 01 Май 2018, 17:22:16 »
Да, я так и делаю - каждый раз скрипт сохранять/загружать тупо долго.

В общем это явно не те состояния - у флопа их нет, даже в процессе его работы. Зато у :maincpu их полно (NMI, A, D, S, PC, CURSP, P, PB, CURPC, Y, GENPC...). Подозреваю, что это состояния регистров. А жаль...
Всё равно, спасибо за помощь!

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3402 : 01 Май 2018, 18:57:42 »
в lua я нуль, в С-шном коде мы имеем такой класс https://github.com/mamedev/mame/blob/master/src/devices/imagedev/floppy.h#L69
и его геттеры, типа int mon_r() - получить состояние мотора, крутится ли он. и другие подобные.
можно ли и как это же читать из lua - я не в курсе

Оффлайн xttx

  • Пользователь
  • Сообщений: 240
    • Просмотр профиля
Re: Эмулятор аркадных автоматов М.А.M.E
« Ответ #3403 : 02 Май 2018, 12:24:49 »
Да я и в сам LUA только вчера и залез. Не образно "вчера", а буквально...

Вывел я поле из этого floppy класса в LUA. Поставил собираться. Ждал часа 3 - не дождался, лёг спать. Сколько оно там ночью собиралось - не знаю, но к утру екзешник у меня был. Не сработло. И я, главное, вижу где ошибка (ну, я так думаю) но собирать это по новой, видимо уже не рискну...
Не представляю, как люди с таким большим проектом работают. Привычный workflow - поменял две строчки, проверил, работает/не работает - тут явно не подходит :(

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Эмулятор аркадных автоматов М.А.M.E
« Ответ #3404 : 02 Май 2018, 12:48:27 »
ясно :)

да, проект очень большой, у меня целиком собирается около часа, да и при мелких правках тоже не айс - компил идет быстро, но линковка занимает прилично времени.
потому при разработке/правке все используют "single driver" билды, и пользуются приблизительно такими скриптами:

call C:\msys64\win32\env.bat
make SUBTARGET=cv1k SOURCES=src/mame/drivers/cv1k.cpp IGNORE_GIT=1 -j4

первая строчка - путь к компилятору для винды
SOURCES= - путь к драйверу какой-то системы, над эмуляцией которой работаем, или нескольких разделенных запятой
SUBTARGET=cv1k - имя экзешника на выходе
-j4  - сколько потоков=ядер использовать при сборке, в данном случае 4
IGNORE_GIT=1 - отключить валидацию файлов Git-ом (определение "чистый" ли билд или dirty - с самопальными правками)

опционально можно еще добавить ARCHOPTS=-march=native  - включение всех оптимизаций поддерживаемых твоим процессором.

Оффлайн bomberman

  • Пользователь
  • Сообщений: 115
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3405 : 28 Май 2018, 17:49:27 »
Подскажите биосы только в Roms нужно копировать или есть другая директория?

Оффлайн Yaranga

  • Администратор
  • Сообщений: 13618
  • Пол: Мужской
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3406 : 28 Май 2018, 18:27:47 »
Можно самому назначить директорию в настройках. Их может быть две, три и сколько угодно.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3407 : 29 Май 2018, 02:53:38 »
в МАМЕ станет  на одну игру из СССР больше - аппарат "Мотогонки"
пока оно выглядит вот так -
197819-0

а должно как-то так:
197821-1

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

Оффлайн bomberman

  • Пользователь
  • Сообщений: 115
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3408 : 29 Май 2018, 16:21:08 »
Пробую запустить игру Demon front, при запуске пишет что не хватает много всяких файлов. Подскажите их нужно искать и отдельно добавлять или просто сборка эмулятора неполная.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3409 : 29 Май 2018, 16:46:47 »
видимо самой игры и не хватает :)
какая там у тебя сборка ? обычно эмулятор и всё, а игры сам уже ищи.

Оффлайн Cheshire Kotovsky

  • Пользователь
  • Сообщений: 2190
  • Пол: Мужской
  • I dont bite... too hard
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3410 : 29 Май 2018, 17:32:19 »
для разных версий эмуля нужны разные версии игр

Оффлайн bomberman

  • Пользователь
  • Сообщений: 115
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3411 : 29 Май 2018, 17:35:18 »
mame0196b_64bit в папку Roms скопировал dmnfrnt размером-(25mb) в разделе available игра отображается. konamigv тоже в паке Roms

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3412 : 29 Май 2018, 18:01:51 »
pgm.zip еще нужен

Оффлайн bomberman

  • Пользователь
  • Сообщений: 115
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3413 : 30 Май 2018, 09:24:31 »
MetalliC  благодарю за подсказку
скачал заново rom(105) добавил pgm всё заработало!

Оффлайн Virtua Fighter

  • Пользователь
  • Сообщений: 2364
    • Просмотр профиля
Re: Эмулятор аркадных автоматов М.А.M.E
« Ответ #3414 : 31 Май 2018, 22:54:44 »
для разных версий эмуля нужны разные версии игр


- всегда задавался вопросом - по кой под каждую версию mame самы ромы перелопачивают?
  Ну, то есть если с точки зрения образа - достали плату, сделали дамп, получили финальный ром. Как б в нем уже ж ниче не меняется по сути и модифицироваться не должно по логике.
Ели  с течением времени  определяется мол эт  не финальная версия дампа там   или кривая, то тогда другое название по логике должно быть или бутлег. если версия платы\игры другая  - то тогда название ревизии чист меняют. Эт о понятно.
Но, ёк-макарёк, если лет 15 валялся рабочтий ром, а потом выходит новая версия эмуля то блин, ром то тут причем виноват? :neznayu:
« Последнее редактирование: 31 Май 2018, 23:07:03 от Virtua Fighter »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3415 : 31 Май 2018, 23:29:50 »
Virtua Fighter, есть какие-то конкретные примеры игр ?
могу предположить, что не запускаются Neo-Geo игры, потому что в последнем МАМЕ добавили более новую версию Uni-BIOS, а у тебя его нет.

еще примеры:
в сетах игр Sega Model 1 валялись прошивки плат ввода-вывода, так для красоты. недавно эти платки заэмулировали как и положено, а прошивки вынесли из игр в отдельный "биос" model1io

либо в той же Model1 декапнули и сдампили внутренние прошивки TGP-процессоров.
« Последнее редактирование: 31 Май 2018, 23:39:48 от MetalliC »

Оффлайн Virtua Fighter

  • Пользователь
  • Сообщений: 2364
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3416 : 01 Июнь 2018, 00:11:47 »
MetalliC,  в смысле примеры? :?
- я , кагб о версиях ромов под "свежие" mame.
 Вот, буквально недавн, чет стрельнуло молодость вспомнить - скачал с сайта версию , а ромы качать не стал, взял с копма старого, там вроде 0.139 мамки версия была аж   10-15 летней давности. Ну и половину того что есть  в available нет, ну а находишь так во всех вкладке, красным запускаешь  - стандартная надпись - "куднт файнд бла-бла.бин и тра-та-та.ромсет"
  Не неогеовсике, например, вспомню  робокопа -2 части, вторую видит, первую нефига. Перекачал заново -оллрайт.
« Последнее редактирование: 01 Июнь 2018, 00:24:05 от Virtua Fighter »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3417 : 01 Июнь 2018, 00:24:15 »
в смысле примеры?
в смысле какие конкретно игры. а не алэ-взагалэ

про игры с биосами я вроде ж уже привел понятный свежий пример - добавили новый биос -> ВСЕ игры на этом железе перестали запускаться, ну или отображаются как not available.

Добавлено позже:
вспомню  робокопа -2 части, вторую видит, первую нефига. Перекачал заново -оллрайт.
в 2015 добавили более новую американскую версию Robocop 2, более старую переименовали в robocop2ua, а новую положили на ее место robocop2u. обычное дело.
европейка и японка должны были работать, в них лет 10 ничего не менялось в плане ромов.

если ты про 1й Robocop - 9 лет назад там добавили дампы нескольких PROM-ов
« Последнее редактирование: 01 Июнь 2018, 00:50:18 от MetalliC »

Оффлайн Virtua Fighter

  • Пользователь
  • Сообщений: 2364
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3418 : 01 Июнь 2018, 01:03:23 »
в смысле какие конкретно игры. а не алэ-взагалэ

Ну, ок.
- Морталы (3-й и умк),  atret burner, batman, batman forever, battletoads,  darake tenshi, doble dragon 3, marvel vs capcom, rival school, robocop, street fighter 2 - championship edition\hyper\world warrior,super contra,super sf2:turbo\new chellengers\tornament, tnmnt- turtles in time, virtua fighter kids, warriors of fate..... - ды список видать  может быть ого-го каким, эт у меня всего ромв 30 в папке было....



Добавлено позже:в 2015 добавили более новую американскую версию Robocop 2, более старую переименовали в robocop2ua, а новую положили на ее место robocop2u. обычное дело.
европейка и японка должны были работать, в них лет 10 ничего не менялось в плане ромов.

если ты про 1й Robocop - 9 лет назад там добавили дампы нескольких PROM-ов

Да про первый.
Но и давай 2-й тож обсудим  -хороший пример  - зачем изначально переименовывать старый  задампленный оригинал  Robocop 2 в новое название с ua и заменять его в таблице распознаваемости mame, нежели назвать новый дамп там ревизия "такая" - robocop 2 (rev4.1) ? - ну по аналогии с морталами  - ревизий чуть ли не 9 штук
« Последнее редактирование: 01 Июнь 2018, 01:18:36 от Virtua Fighter »

Оффлайн Mad

  • Пользователь
  • Сообщений: 8050
  • Пол: Мужской
    • Просмотр профиля
Эмулятор аркадных автоматов М.А.M.E
« Ответ #3419 : 01 Июнь 2018, 01:37:45 »

- всегда задавался вопросом - по кой под каждую версию mame самы ромы перелопачивают?
  Ну, то есть если с точки зрения образа - достали плату, сделали дамп, получили финальный ром. Как б в нем уже ж ниче не меняется по сути и модифицироваться не должно по логике.
Ели  с течением времени  определяется мол эт  не финальная версия дампа там   или кривая, то тогда другое название по логике должно быть или бутлег. если версия платы\игры другая  - то тогда название ревизии чист меняют. Эт о понятно.
Но, ёк-макарёк, если лет 15 валялся рабочтий ром, а потом выходит новая версия эмуля то блин, ром то тут причем виноват? :neznayu:
Мне отвечали в свое время, что железо эмулируется в МАМЕ не идеально, некоторые особенности железок не работают, поэтому для работоспособности ромов их (ромы) изменяют, грубо говоря ставя «заглушки» на неподдерживаемые в данный момент элементы. С выходом новых версий МАМЕ эмуляция становится более точной, соответственно ромы с «заглушками» перестают работать и для новой версии МАМЕ нужны уже измененные ромы без «заглушек». Как то так, если грубо говоря.