Автор Тема: Нужен эмулятор PS1 не исправляющий баги кода и т.д (EmuHawk подвел)  (Прочитано 2908 раз)

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

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
Ребят, может кто знает есть ли нормальный эмулятор PS1 который не исправляет различные ошибки образов и кода, эмулируя "как есть". Прошлый эмуль подвел меня, не обнаружив некоторые ошибки, из-за чего на реальной консоли не работало то что я до этого тестировал на нем.
« Последнее редактирование: 16 Август 2019, 09:25:23 от dedok179 »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
а обычный mednafen вместо его порта для BizHawk пробовал ? еще можно попробовать Xebra/Arbex или no$psx. хотя я лично сомневаюсь, что существует хоть один эмулятор плойки 1в1 эмулирующий то, как работает ее железо.

эмуляторы ничего не исправляют, они просто не эмулируют кучку различных, скажем так, особенностей железяк.

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
а обычный mednafen вместо его порта для BizHawk пробовал ? еще можно попробовать Xebra/Arbex или no$psx. хотя я лично сомневаюсь, что существует хоть один эмулятор плойки 1в1 эмулирующий то, как работает ее железо.

эмуляторы ничего не исправляют, они просто не эмулируют кучку различных, скажем так, особенностей железяк.
Нет, еще не пробовал. Но раз в BizHawk его порт, подозреваю что он эту ошибку тоже пропустит.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8107
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
из-за чего на реальной консоли не работало то что я до этого тестировал на нем.
А что конкретно не работало?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
я так подозреваю самописный код /перевод/итп
Но раз в BizHawk его порт, подозреваю что он эту ошибку тоже пропустит.
не факт, на сайте бизхавка пишут что некоторые вещи они выпилили.

еслиб это был порт для ретроарч - я на 90% уверен, что фишки типа проверок на выровненный доступ к памяти (и выпадения проца в исключение) они бы выпилили нафиг, потому что "один фиг в играх не бывает" а без этого на всяких маломощных вздрочьфонах эмулятор будет бегать шустрее.

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
А что конкретно не работало?
Суть проблемы в том что на самой приставке после меню трейнера не стартует основной файл, на эмуляторе же все нормально работает. Не могу понять в чем и откуда косяк, потому что не трогал код со времен ручной сборки когда еще тестили и отлаживали чтоб багов не было.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
если вы там копируете или патчите какой-то код - возможно какие-то грабли с кешем процессора (который практически нигде не эмулируется), может его нужно сбросить/инвалидировать или что-то подобное.

можно попробовать покурить http://problemkaputt.de/psx-spx.htm#biosfileexecuteandflushcache

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
я так подозреваю самописный код /перевод/итпне факт, на сайте бизхавка пишут что некоторые вещи они выпилили.

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

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5081
    • Просмотр профиля
dedok179, лучше бы конечно описали что вы там делали и выложили код, чтобы повторить, а спецы по PSX нашли бы проблему.

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
Код трейнера в папке data. Нет у меня оборудования для тестов, а вслепую уже невозможно работать, так как думал что эмуль точно повторит ошибки консоли.
https://yadi.sk/d/_pQxZIj0yYxWAQ

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
Интересно что же такое не дает ему дальше меню стартовать, делал ведь на основе заранее проверенного исходника..

Добавлено позже:
Буду очень признателен если кто-нибудь сможет найти ошибку.
« Последнее редактирование: 16 Август 2019, 14:22:16 от dedok179 »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
а сам разобраться не можешь ?
ну или хотя бы более внятно объяснить. из твоих сообщения я так понял что был трейнер, и нормально работал в одной игре, но когда его изменили и прикрутили к другой - оно виснет на реальной плойке.
если так - похоже на проблемы с выравниванием. емнип в MIPS два типа команд чтения/записи - выровненные и нет, первые могут читать/писать лишь в адреса кратные 2/4, вторые могут читать/писать по любым адресам но медленнее.
перепроверь и убедись что все переменные и данные выровнены как надо (16бит переменные на чётных адресах, 32бит переменные на адресах кратных 4).

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

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
а сам разобраться не можешь ?
ну или хотя бы более внятно объяснить. из твоих сообщения я так понял что был трейнер, и нормально работал в одной игре, но когда его изменили и прикрутили к другой - оно виснет на реальной плойке.
если так - похоже на проблемы с выравниванием. емнип в MIPS два типа команд чтения/записи - выровненные и нет, первые могут читать/писать лишь в адреса кратные 2/4, вторые могут читать/писать по любым адресам но медленнее.
перепроверь и убедись что все переменные и данные выровнены как надо (16бит переменные на чётных адресах, 32бит переменные на адресах кратных 4).

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

Добавлено позже:
В общем ясно что ничего не ясно, админы затрите пожалуйста пост.
« Последнее редактирование: 16 Август 2019, 21:55:43 от dedok179 »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
ясно что, тебе надо - ты и суши мозги ;)
вот к примеру, текст трейнера в main.c, в оригинале все строчки были по 30 символов, а в новом 1я 26, пробовал добить чтоб было как и в оригинале ?

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
ясно что, тебе надо - ты и суши мозги ;)
вот к примеру, текст трейнера в main.c, в оригинале все строчки были по 30 символов, а в новом 1я 26, пробовал добить чтоб было как и в оригинале ?
Если бы в них было дело, скорее всего меню бы даже не стартовало, где-то что-то шалит после выхода из while, точно бы понять что. И цвета там не помогут, потому что графику тоже вырубаем чтобы начать asm процедуры запускать и стартовать другой экзешник.

Оффлайн brill

  • Пользователь
  • Сообщений: 2196
  • Пол: Мужской
  • \/\/\/\/\/\/
    • Youtube
    • Просмотр профиля
dedok179, ты вроде собирал шнур для тестов на железе, а по итогу с эмулями возишься...

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
dedok179, ты вроде собирал шнур для тестов на железе, а по итогу с эмулями возишься...
Шнур то есть, только все равно не работает то что нужно.

Оффлайн brill

  • Пользователь
  • Сообщений: 2196
  • Пол: Мужской
  • \/\/\/\/\/\/
    • Youtube
    • Просмотр профиля
dedok179, комментируй/отключай участки кода, чтобы можно было примерно понять в какой секции у тебя идет потеря связи.

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
dedok179, комментируй/отключай участки кода, чтобы можно было примерно понять в какой секции у тебя идет потеря связи.
На LITELOAD 1.1 все завелось как надо, но нужно передергивать шнур до загрузки нового экзешника, иначе он не стартует почему-то.

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
Усе, проблема решилась, тему можно закрывать.

Оффлайн MetalliC

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

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
и в чём была проблема ?
В новой реализации построения asm рутины, пришлось на старый исходник откатить.