Эмуляция MSX на плейерах MP4 (Обсуждение на русском языке MSX Fora)MSX Resource Center PassionMSX MSX2 contest           
            
English Nederlands Español Português Russian         
 Nieuws
   Voorpagina
  Nieuws archief
  Nieuws onderwerpen

 Informatie
   MSX Fora
  Artikelen
  Recensies
  Beursverslagen
  Fotoreportages
  Beurzen en meetings
  Enquêtes
  Links
  Zoek

 Software
   Downloads
  Webshop

 MRC
   Wie we zijn
  Kom bij ons team
  Doneren
  Policies
  Contact met het MRC
  Link naar Ons
  Statistieken

 Zoek
 
  

  

 Login
 

Gebruikersnaam

Wachtwoord




Ben je nog niet lid? Klik hier en word MSX vriend!


 Statistieken
 

Er zijn 132 gasten en 7 MSX vrienden online

Je bent een anonieme bezoeker.
 

MSX Fora


MSX Fora

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

Schrijver

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

cax

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

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

cax

msx professional
Berichten: 1011
Geplaatst: 02 Juni 2007, 11:27   
По следам темы про портинг fMSX на Sansa E200 на английской части форума:


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

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

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

fms
msx user
Berichten: 42
Geplaatst: 03 Juni 2007, 15:21   
Quote:

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


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

Quote:

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


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

Quote:

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


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

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

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

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

fms
msx user
Berichten: 42
Geplaatst: 04 Juni 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 - 2008 Stichting MSX Resource Center. MSX is een trademark van MSX Licensing Corporation.