Эмуляция > Эмуляторы портативных консолей
JPCSP - эмулятор PSP
<< < (150/262) > >>
BlackDaemon:
Anonymous, гм, в исходниках я не рылся, да и знаю только Си, хреново Си++ и очень хреново вижуал Си++, многое позабывал, вспоминать надо. :) На оф. форуме с разрабами поговори, они точно подскажут.

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

--- Код: ---...
40500 [mix sound thread] DEBUG hle.sceAudio - pspChannelInfo.play: written 2048 bytes (pspChannelInfo[8](playing 18432 of 20480 ,Waiting 0, Ended false, OutputBlocking false, Reserved true))
40500 [mix sound thread] DEBUG hle.sceCtrl - hleCtrlExecuteSampling
40500 [mix sound thread] DEBUG hle - Triggering Interrupt VBLANK(0x1E)
40500 [mix sound thread] DEBUG hle - Calling InterruptHandler 0x08A079C8(0x0000000F,0x00000000)
40500 [mix sound thread] DEBUG runtime - Start of Callback 0x8a079c8
40500 [mix sound thread] DEBUG runtime - End of Callback 0x8a079c8
40500 [mix sound thread] DEBUG hle - End of Interrupt
40500 [mix sound thread] DEBUG runtime - syncThread currentThread=mix sound thread, currentRuntimeThread=mix sound thread
40500 [mix sound thread] DEBUG runtime - syncEmulator immediately=false
40500 [mix sound thread] DEBUG hle.sceUmdUser - sceUmdGetDriveStat return:0x32
40500 [mix sound thread] DEBUG runtime - syncThread currentThread=mix sound thread, currentRuntimeThread=mix sound thread
40500 [mix sound thread] DEBUG runtime - syncEmulator immediately=false
40500 [mix sound thread] DEBUG hle - hleKernelWaitSema(id=0x70,signal=1,timeout=0x0) callbacks=false
40500 [mix sound thread] DEBUG hle - hleKernelWaitSema - 'SoundSema' fast check succeeded
40516 [mix sound thread] DEBUG runtime - syncThread currentThread=mix sound thread, currentRuntimeThread=mix sound thread
40516 [mix sound thread] DEBUG runtime - syncEmulator immediately=false
40516 [mix sound thread] DEBUG hle.sceSasCore - __sceSasCoreWithMix 08bc5680 08c3f4c0 00000061 00000061
40516 [mix sound thread] DEBUG runtime - syncThread currentThread=mix sound thread, currentRuntimeThread=mix sound thread
40516 [mix sound thread] DEBUG runtime - syncEmulator immediately=false
40516 [mix sound thread] DEBUG hle - sceKernelSignalSema id=0x70 name='SoundSema' signal=1
40516 [mix sound thread] DEBUG hle.sceCtrl - hleCtrlExecuteSampling
40516 [mix sound thread] DEBUG hle - Triggering Interrupt VBLANK(0x1E)
40516 [mix sound thread] DEBUG hle - Calling InterruptHandler 0x08A079C8(0x0000000F,0x00000000)
40516 [mix sound thread] DEBUG runtime - Start of Callback 0x8a079c8
40516 [mix sound thread] DEBUG runtime - End of Callback 0x8a079c8
40516 [mix sound thread] DEBUG hle - End of Interrupt
40516 [mix sound thread] DEBUG runtime - syncThread currentThread=mix sound thread, currentRuntimeThread=mix sound thread
40516 [mix sound thread] DEBUG runtime - syncEmulator immediately=false
40531 [mix sound thread] DEBUG hle.sceAudio - sceAudioSRCOutputBlocking[not blocking] pspChannelInfo[8](playing 20480 of 20480 ,Waiting 0, Ended true, OutputBlocking false, Reserved true)
40531 [mix sound thread] DEBUG hle.sceAudio - pspChannelInfo.play: written 2048 bytes (pspChannelInfo[8](playing 18432 of 20480 ,Waiting 0, Ended false, OutputBlocking false, Reserved true))
...
--- Конец кода ---

--- Код: ---------------------------------------------------------------
Thread ID - 0x00000005
Th Name   - idle1
zr:0x00000000 at:0x00000000 v0:0x00000000 v1:0x00000000
a0:0x00000000 a1:0x00000000 a2:0x00000000 a3:0x00000000
t0:0x00000000 t1:0x00000000 t2:0x00000000 t3:0x00000000
t4:0x00000000 t5:0x00000000 t6:0x00000000 t7:0x00000000
s0:0x00000000 s1:0x00000000 s2:0x00000000 s3:0x00000000
s4:0x00000000 s5:0x00000000 s6:0x00000000 s7:0x00000000
t8:0x00000000 t9:0x00000000 k0:0x08803F00 k1:0x00000000
gp:0x08BB1D60 sp:0x08803E00 fp:0x00000000 ra:0x08000020
0x88000000: 0x24040000 - addiu      $a0, $zr, 0 <=> li $a0, 0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Thread Name: 'idle0' ID: 0x0004 Module ID: 0x0000
Thread Status: 0x00000002 PSP_THREAD_READY
Thread Attr: 0x00001000 Current Priority: 0x7F Initial Priority: 0x7F
Thread Entry: 0x88000000 Stack: 0x08800000 - 0x08802000 Stack Size: 0x00002000
Thread Run Clocks: 577149 Exit Code: 0x800201A4
Thread Wait Type: None Us: 0 Forever: false
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Thread Name: 'mix sound thread' ID: 0x0072 Module ID: 0x0001
Thread Status: 0x00000008 PSP_THREAD_SUSPEND
Thread Attr: 0x80004000 Current Priority: 0x10 Initial Priority: 0x10
Thread Entry: 0x08AABC24 Stack: 0x09FC7400 - 0x09FCF400 Stack Size: 0x00008000
Thread Run Clocks: 769351 Exit Code: 0x800201A4
Thread Wait Type: None Us: 0 Forever: false
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Thread Name: 'idle1' ID: 0x0005 Module ID: 0x0000
Thread Status: 0x00000001 PSP_THREAD_RUNNING
Thread Attr: 0x00001000 Current Priority: 0x7F Initial Priority: 0x7F
Thread Entry: 0x88000000 Stack: 0x08802000 - 0x08804000 Stack Size: 0x00002000
Thread Run Clocks: 508859 Exit Code: 0x800201A4
Thread Wait Type: None Us: 0 Forever: false
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Thread Name: 'UmdStreamThread' ID: 0x0043 Module ID: 0x0001
Thread Status: 0x00000004 PSP_THREAD_WAITING
Thread Attr: 0x80004000 Current Priority: 0x20 Initial Priority: 0x20
Thread Entry: 0x08938E78 Stack: 0x09FCF400 - 0x09FD7400 Stack Size: 0x00008000
Thread Run Clocks: 192851 Exit Code: 0x800201A4
Thread Wait Type: EventFlag (0x0041) Us: 0 Forever: true
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Thread Name: 'threadmain' ID: 0x000C Module ID: 0x0001
Thread Status: 0x00000004 PSP_THREAD_WAITING
Thread Attr: 0x80004000 Current Priority: 0x38 Initial Priority: 0x38
Thread Entry: 0x08936880 Stack: 0x09FD7400 - 0x09FF7400 Stack Size: 0x00020000
Thread Run Clocks: 489549886 Exit Code: 0x800201A4
Thread Wait Type: None (delay) Us: 1000 Forever: false
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Thread Name: 'SysManager' ID: 0x000E Module ID: 0x0001
Thread Status: 0x00000004 PSP_THREAD_WAITING
Thread Attr: 0x80004000 Current Priority: 0x6F Initial Priority: 0x6F
Thread Entry: 0x08B3ACBC Stack: 0x09FFF000 - 0x0A000000 Stack Size: 0x00001000
Thread Run Clocks: 8690 Exit Code: 0x800201A4
Thread Wait Type: None (delay) Us: 10000 Forever: false
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Allocated memory:  017EAA9C 25078428 bytes
[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
Fragmented memory: 00023000 143360 bytes
[                                                               X]
------------------------------------------------------------
--- Конец кода ---
Anonymous:
BlackDaemon, аналогично, впрочем С уже тоже порядком подзабыл :). Надеюсь   gid сможет разобрать продукт кунг-фу с гуглотранслятом.


>>Посмотрел я дебаг лог, судя по этому эмуль где-то застопорился на семафоре...буду методом тыка искать ревизию на которой игру сломали
Хм...  LCS  никогда дальше  intro   не уходила.
Vivi the Black Mage:
BlackDaemon, можешь проверить на играбельность N+? И с какими настройками надо.
BlackDaemon:
Anonymous, это тогда что? :lol:
minimog, попробую скачать, возможно сегодня вечером.
з.ы. блин, следы поломки уходят куда-то ниже 1575 (!) ревизии, увы...придется просто лог выложить.
Anonymous:
BlackDaemon, а это  Vice City Stories :)
BlackDaemon:
minimog, проверил - к сожалению ничего хорошего...сраная защитка сработала - говорит что диска в UMD приводе нет и просит его вставить.

Добавлено позже:
Anonymous, oops, перепутал, Liberty City не работает. :) Тем не менее узнал что Vice City сломано. :lol:
evgeny1:
Anonymous, я прочитал твою надпись но так и не понял как ставить разрешение 1600 на 1200 и как звук привести в нормальный формат... сильно заумным языком пишешь итак начнем
--- Цитата: Anonymous от 30 Август 2010, 13:26:39 ---для хайреза юзаю кустомный билд эмуля (основан на билде со старым videoengine r1694, но с последующими апдейтами звука и рекомпилятора).

--- Конец цитаты ---
вот здесь вообще ничего не понятно что ты используешь далее как вообще декодировать звук через Sound Forge, в каком формате он хранится в игре, как и чем его выдрать из игры, что такое  loop's?
Pain:

--- Цитата: EdHell от 28 Август 2010, 09:51:58 ---Playable вообще означает, что полностью проходима ВСЯ игра, если частично, то это всего лишь ингейм.

--- Конец цитаты ---
Если частично, то Half-Playable.
~Scorpion-:
В Soul Calibur действительно такая некрасивая графика, как недавно показывали здесь в ролике, или на самой консоли намного лучше? Что-то цвета не очень, мягко говоря...

Хотя, с другой стороны, у железки всего 1мб видеопамяти, на этом сильно не разгуляешься...
sanyaprog:

--- Цитата: GTScorpion от 30 Август 2010, 18:43:30 ---В Soul Calibur действительно такая некрасивая графика, как недавно показывали здесь в ролике, или на самой консоли намного лучше? Что-то цвета не очень, мягко говоря...

Хотя, с другой стороны, у железки всего 1мб видеопамяти, на этом сильно не разгуляешься...

--- Конец цитаты ---
Шейдеры и вертексный кэш отключен просто. Эмулятор их не обрабатывает. С вертексным кэшем черный экран, а с шейдерами виснет. Ну и некоторые спрайты эмулятор не понимает (непрозрачные).

Добавлено позже:
Ну а видео память консолям особо не важна, там все по-другому устроено, уже давно разжевано)))

Добавлено позже:
Вот скрин с шейдерами, правда игра вылетает прямо перед показом игроков.

Добавлено позже:
Как видишь спрайты на фонариках непрозрачные.
~Scorpion-:
sanyaprog, Ну вроде получше чуть-чуть выглядит на скрине, хотя всё равно, чёт не то  <_<

Подождём... ведь когда-нибудь пофиксят же ;) Всё-таки интересная для разрабов (и не только) консоль...
sanyaprog:

--- Цитата: GTScorpion от 30 Август 2010, 22:48:02 ---sanyaprog, Ну вроде получше чуть-чуть выглядит на скрине, хотя всё равно, чёт не то  <_<

--- Конец цитаты ---
Сглаживания нет) А так круче SC2 выглядит))

Добавлено позже:
Хотя бы глянь какие крутые и детализированные текстуры)) Да и полигончиков хватает. ^_^
~Scorpion-:

--- Цитата: sanyaprog от 30 Август 2010, 22:50:50 ---.......
Хотя бы глянь какие крутые и детализированные текстуры)) Да и полигончиков хватает. ^_^

--- Конец цитаты ---

До уровня PS2 всё равно далеко... ;)

Помню, когда только консоль вышла, знакомый купил и хвалился что графа на ней как на PS2. А когда я сам посмотрел (многим позже), то оказалось всё по-другому...

Смотрел, кстати, сравнение графики в GOW, угадай, кто выиграл?

З.Ы.
Но, всё же, я думаю, со временем на этом эмуляторе появится возможность сделать графику лучше, чем на консоли, это вполне реально ;)
BlackDaemon:
sanyaprog, отпишусь немного по поводу тестов на твоем портале...
God of War: Chains of Olympus - требуется аргумент "-Xss10m" для увеличения стека чтобы эмуль не падал в начале игры. (релиз God_of_War_Chains_of_Olympus_USA_PSP-PSN)
Dante's Inferno - чтобы попасть в ингейм нужен лишь один аргумент "-Xmx768m". (релиз Dantes_Inferno_USA_UMD_PSP-PLAYME)
Никаких опций совместимости включать не нужно.
Anonymous:

--- Цитата: evgeny1 от 30 Август 2010, 17:55:50 ---Anonymous,вот здесь вообще ничего не понятно что ты используешь далее как вообще декодировать звук через Sound Forge, в каком формате он хранится в игре, как и чем его выдрать из игры, что такое  loop's?

--- Конец цитаты ---
Окей: в ревизии r1695 помимо добавления полезных ништяков, была выпилена возможность отказаться от использования  Viewport, и старый трюк с разворотом окна эмулятора во весь экран перестал работать окончательно.

Несколько ревизий спустя, прозошло весьма радикальное изменение структуры  videoengine, и чтобы не лишаться возможности играть в нормальном разрешении, пришлось вручную добавлять из  основной ветки эмулятора особо вкусные ништяки. Впринципе можно было остаться на изначальной r1694, но в последующх ревизиях правились ошибки эмуляции звука и процессора, так что я перенёс некоторые апдейты себе.
Что касается звука: лежит он в *.wav, и вся озвучка может быть выдернута из изошки любой граббилкой игровых ресурсов (я использую стырый добрый  Dragon unpacker)... только вот сами звуковые данные в  *.wav  лежат вовсе не в  PCM формате, а в Atrac3 либо Atrac3+. Так уж получилось, что опенсорс декодеров  atrac3+  не существует, и эмуль может выдать голоса\музыку только, если подхватит из вне уже декодированные файлы.
Для этого нужно решить 2 задачи: собственно декодировать звук, и заставить эмуль его подцепить. Обе эти задачи решаются через задницу :D

Начну со второй:
По умолчанию, при каждой попытки игры проиграть звук, эмуль высчитывает уникальное имя ему, на основе положения файла внутри изошки и его размера. Если стоит опция "Use jpcsp connector" то этот нерасшифрованый звук сбрасывается на диск в виде файла с тем самым именем.
Дальше по идее ты его можешь декодировать в обычную вавку(вообще-то  raw pcm), и если в следуюий раз эмуль наткнётся на этот звук в игре, и найдёт декодированный файл уникальное_имя.at3.decoded - ты его и услышишь. Сам понимаешь, попахивает мазохизмом: чтобы играть полностью со звуком, нужно сначала вдоль и поперёк излазить игрушку в тишине. А вот если выдернуть всю озвучку из изошки, декодировать, и автоматически переименовать... Пришлось подправить исходники эмуля (чтобы он выдавал имена в нужном виде) и написать утилитку. Задача решена, правда под каждую конкретную игру нужно немного править исходники эмуля, но меня это устраивает.

Теперь декодирование:
Глобальным и надёжным официально признаётся декодирование на железной psp... только вот тут 2 проблемы. Нужна большая флэшка и туева хуча времени (за сутки работы psp, было декодировано порядка 30% звука второй дисгайи)...
Второй метод - использование кодека от  Sony Sonic Stage + небольшой утилиты (на офф форуме всё разжевано)... только вот  Sonic Stage - программа для кодирования\декодирования музыки, специально для Соневских плееров. А так-как  it's a Sony, то какой-то светлой голове там пришла в голову мысль "моно ненужен". Сказано - сделано, и сабжевый кодек физически не может декодировать монофонический звук. А это фактически вся озвучка окромя музыки...
Осталась последняя из доступных реализаций кодека Atrac3+  - собственно плагин импорта у  Sound Forge... но и тут it's a Sony. Пережевывает он только собственный формат *.oma, а wav с at3 звуком не жрёт принципиально. Конвертеров  нет. Внятных спецификаций *.oma также нет. Однако волею случая, наткнулся на один интересный тред: http://forum.xentax.com/viewtopic.php?f=17&t=3917&start=0&st=0&sk=t&sd=a. Там лежит и пустой oma хидер, и  quickBMS скрипт, который довольно успешно привёл почти весь звук в читабельный Sound Forge'м формат.

Звук есть, голоса говорят и музыка играет... правда недолго. Эмулятор не зацикливает музыку (loop) и очень скоро саундтрек заканчивается. Решение проблемы в лоб: так-как звук в виде  RAW PCM, то можно тупо скопировать тем же Far'ом файл в конец уже существующего файла, и оно будет играть уже в 2 раза дольше. Повторив для музыки эту процедуру несколько раз, получились саундтреки длиной порядка часа (длительности хватает всегда) и общим обьёмом порядка 20 гигов.
BlackDaemon:
minimog, r1751 - n+ ушла в ингейм, походу Playable.
sanyaprog:
BlackDaemon, этого нет по умолчанию в эмуляторе, поэтому изменять на такое не буду (когда-то ведь исправят), просто запутаю пользователей (половина которых нубы и не справятся с редактированием bat файла). Нужно придумать способ.... скорее всего нужный bat файл прикреплять придется (и то спросят куда его пихать).
Goingl:
А литл биг планет, на новых ревах кто то пробовал? :blush:
sanyaprog,а куда его пихать? :D
BlackDaemon:
sanyaprog, эти настройки относятся к параметрам виртуальной машины, и править их придется в любом случае, эмулятор - лишь поедатель ресурсов этой виртуальной машины.
Как вариант - можешь отдельно выложить ссылку на ревизию JPCSP с этим батником. :D
sanyaprog:

--- Цитата: BlackDaemon от 31 Август 2010, 01:12:16 ---sanyaprog, эти настройки относятся к параметрам виртуальной машины, и править их придется в любом случае, эмулятор - лишь поедатель ресурсов этой виртуальной машины.
Как вариант - можешь отдельно выложить ссылку на ревизию JPCSP с этим батником. :D

--- Конец цитаты ---
Может и придется, но вполне возможно эти функции добавят в сам эмулятор в настройки. Или они действуют только перед запуском?

Добавлено позже:

--- Цитата: Goingl от 31 Август 2010, 01:02:53 ---А литл биг планет, на новых ревах кто то пробовал? :blush:

--- Конец цитаты ---
Не работает как обычно))
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии