Эмуляция MSX на плейерах MP4 (Обсуждение на русском языке Foros MSX)MSX Resource Center            
                       
English Nederlands Espa�ol Portugu�s Russian                  
 Noticias
   Página principal
  Almacén de noticias
  Temas de noticias

 Recursos
   Foros MSX
  Artículos
  Analisis
  Informe de ferias/RUs
  Álbum de fotos
  Ferias y encuentros
  Encuestas
  Enlaces
  Buscar

 Software
   Descargas
  Tienda Online

 MRC
   Quiénes somos
  Únete a nuestro equipo
  Donar
  Políticas
  Contacta con nosotros
  Enlázanos
  Estadísticas

 Buscar
 
  

  

 Login
 

Login

Contraseña




¿Aún no tienes una cuenta? ¡Conviértete en miembro del MSX Resource Center! ¡Únete a nosotros!.


 Estadísticas
 

Hay 49 invitados y 2 miembros en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Обсуждение на русском языке - Эмуляция MSX на плейерах MP4

Autor

Эмуляция MSX на плейерах MP4

cax

msx master
Mensajes: 1051
Publicado: Mayo 08 2007, 13:15   
Есть такая операционка для портативных плейеров, называется Rockbox.
Работает на множестве устройств, включая iPod-ы всех мастей и мою Sansa E260.

Я сейчас работаю над портированием эмулятора fMSX для Rockbox, и уже есть кое-какие результаты. Хотел бы узнать, нужно ли это кому-либо кроме меня ?

cax

msx master
Mensajes: 1051
Publicado: Junio 02 2007, 11:27   
По следам темы про портинг fMSX на Sansa E200 на английской части форума:


fms, если уж мы решили обсуждать fMSX на Sansa в форуме, то я бы предпочёл говорить по-русски

На данный момент я наблюдаю вот что: на самом девайсе (в отличие от симулятора девайса на PC) эмуляция идёт медленнее реального времени, и, соответствено, сэмплы вырабатываются медленнее, чем воспроизводятся.

Так что, похоже, пришло время заняться профайлингом и оптимизациями.

fms
msx user
Mensajes: 42
Publicado: Junio 03 2007, 15:21   
Quote:

fms, если уж мы решили обсуждать fMSX на Sansa в форуме, то я бы предпочёл говорить по-русски


Ну по-русски так по-русски - нам татарам все равно.

Quote:

На данный момент я наблюдаю вот что: на самом девайсе (в отличие от симулятора девайса на PC) эмуляция идёт медленнее реального времени, и, соответствено, сэмплы вырабатываются медленнее, чем воспроизводятся.


Хехе, Сахачка, ты забываешь одну вещь: сэмплы в звуковом frameworkе, приходящем с fMSXом, вырабатываются ровно в одном месте - в функции RenderAudio(). И единственными параметрами этой функции являются частоты и громкости звука по каналам. Если ты будешь вызывать эту функцию каждый раз, когда предыдущий аудио буфер кончил играться (то есть в callbackе), то абсолютно никаких проблем с качеством звука у тебя быть не должно. То есть мелодия может играться медленно, но без помех. Так что, попробуй перенести вызов RenderAudio() в callback и проверь что callback у тебя вызывается именно по прерываниям (иначе от всего rockboxовского audio api придется отказаться).

Quote:

Так что, похоже, пришло время заняться профайлингом и оптимизациями.


Ну, это никогда не помешает, хотя в данном случае проблема видимо не в этом.
cax

msx master
Mensajes: 1051
Publicado: Junio 03 2007, 16:18   
Сегодня я поставил обновлённый Рокбокс - в нём что-то починили, и всё стало работать намного быстрее, и несмотря на то, что, как оказалось, у нас есть не 100MHz, а только 75, я уже вижу, что скорости хватает. Но всё-таки я что-то сильно начудачил... в общем, как только упрусь лбом и смогу объяснить чётко в чём затык, сразу отпишусь. Спасибо ещё раз за помощь.
cax

msx master
Mensajes: 1051
Publicado: Junio 03 2007, 19:23   
На данный момент имеем: если засунуть в Keyboard() один вызов RenderAudio(GetFreeAudio()), то я слышу утроенный звук - например, при стрельбе - каждый выстрел 3 раза. При отладке видно, что сэмплов недостаёт, и буфер отыгрывается по нескольку раз с одним содержимым.

Если же я вызову RenderAudio 3 раза подряд, то звук получается правильный, но медленный.
Впрочем, на FastForward он звучит даже слегка быстрее, чем надо.
Кстати, совсем не слышны звуковые эффекты (например, в фоновой мелодии Maze Of Galious нет ударных) - похоже я что-то ещё налажал.

fms
msx user
Mensajes: 42
Publicado: Junio 04 2007, 09:01   
Quote:

На данный момент имеем: если засунуть в Keyboard() один вызов RenderAudio(GetFreeAudio()), то я слышу утроенный звук - например, при стрельбе - каждый выстрел 3 раза. При отладке видно, что сэмплов недостаёт, и буфер отыгрывается по нескольку раз с одним содержимым. Если же я вызову RenderAudio 3 раза подряд, то звук получается правильный, но медленный.
Впрочем, на FastForward он звучит даже слегка быстрее, чем надо.


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

А теперь решение: как я говорил в прошлый раз, перенеси вызов RenderAudio() в audio callback. Тогда, независимо от эмулятора, твой аудио буфер всегда будет полон. О результатах доложи

Quote:


Кстати, совсем не слышны звуковые эффекты (например, в фоновой мелодии Maze Of Galious нет ударных) - похоже я что-то ещё налажал.


Видимо что-то с SCC, или же SetSound() не вызваны были (они устанавливают тип звука для каждого канала, по умолчанию это SND_MELODIC). Не заморачивайся этим пока.
 
 







(c) 1994 - 2009 Fundación MSX Resource Center. MSX es una marca registrada de MSX Licensing Corporation