Difference between revisions of "User:Bluddy"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Update)
Line 18: Line 18:
* PSP Optimization
* PSP Optimization
** Rendering speedup: done and makes vsync super accurate (better than PC)
** Rendering speedup: done and makes vsync super accurate (better than PC)
** MP3 using Media Engine: mostly done
** MP3 using Media Engine: done
*** Turn into thread for better efficiency (allowing music more processing time without slowdown)
*** Turn into thread for better efficiency (allowing music more processing time without slowdown)
*** But will threading really help? It's pretty complicated. What about syncing?
** Video Speedup
** Video Speedup
*** Actually harder than expected: it's hard to find codecs that do the kind of work that the VFPU will improve
*** Actually harder than expected: it's hard to find codecs that do the kind of work that the VFPU will improve
Line 31: Line 32:
** No More SDL: done.
** No More SDL: done.
** Threads for audio: consumer and producer
** Threads for audio: consumer and producer
* Aspect Ratio
*** Again, is this really helpful? It may allow lowering of priority, but only temporarily? What about syncing?
** Option to keep AR for display. Should be easy.
* Aspect Ratio: done
* Timidity
* Timidity
*** A lot of work. May improve speed over midi and sound better.
** A lot of work. May improve speed over midi and sound better.


== To Do ==
== To Do ==
* PSP
* PSP
** MP3 playback with Media Engine
** Optimize speed in general
** Optimize video playback speed
** Optimize video playback speed
*** Most video seems fine. Check at 222Mhz.
*** Groovie is slow
** Use libTimidity for music
** Use libTimidity for music
* Generic virtual keyboard: take my keyboard and make it available to all. Involves switching from bitmaps to vectors.
* Generic virtual keyboard: take my keyboard and make it available to all. Involves switching from bitmaps to vectors.
Line 46: Line 47:
* Speed up seeks in huge MP3/Ogg files using index.
* Speed up seeks in huge MP3/Ogg files using index.
** Load the index, and if updated save every 5 mins or so?
** Load the index, and if updated save every 5 mins or so?
== Ideas ==
* Index file for big mp3/ogg files: currently we have to seek through the whole file. This affects Loom and MI1 and any others. The idea is to create an index file (file_mp3.idx) during the first run. Playing a music file will look for an index file if the file is beyond a certain size. Index files can be created to have certain intervals (e.g. every 30 seconds) or perhaps to record all accesses to the files, which will mean they're only useful the 2nd time through a game. The file is just a list of time, position in the file.
* PSP may some day be unable to load ScummVM plugins as they are, because it's shifting towards accepting only PRX files (ie. PIC code). Some solution will be needed to adapt the current plugin code for PIC in the main executable.
** Idea: dump the symbol table of the main executable into another file. When loading plugins, load this into memory. Create a symbol in memory using ld script that will indicate where in memory the main executable was loaded. Finally, relocating the plugins will obviously be more work since we don't have ld to do some of the job for us. We might need 2 MipsPlugins: MipsComplete and MipsIncomplete.

Revision as of 12:43, 17 August 2010

Bluddy
Name Yotam Barnoy
Team Member since 2009-09-22
Working on PSP platform
PSP Optimization
Personal webpage/BLOG -
Email -

Worked On

  • PSP
    • Suspend/resume support
    • Plugin support (ELF loader)
    • Console-oriented virtual keyboard
    • D-pad directional support
    • Eliminating the evil undead flickering bug (it was a tough one)
    • Refactoring, redesign and cleanup

Working On

  • PSP Optimization
    • Rendering speedup: done and makes vsync super accurate (better than PC)
    • MP3 using Media Engine: done
      • Turn into thread for better efficiency (allowing music more processing time without slowdown)
      • But will threading really help? It's pretty complicated. What about syncing?
    • Video Speedup
      • Actually harder than expected: it's hard to find codecs that do the kind of work that the VFPU will improve
      • Check other codecs for possible speedups using VFPU/alignment
    • Tests: done
      • how much reading is done by MP3 rendering/movie playback? How much will we need to cache? done. Reads chunks of 15-25KB preceded by small 4KB reads. Whole MP3 loads are a problem (200KB+).
      • How often do we read from the memory stick when we're going fast (movies)? Can we use a thread to do async reading? Is there enough time between reads?
    • Improve memcpy: alignment, rotation
      • Memcpy is done. Not sure how to improve it with VFPU.
      • Memmove can also be improved -- needs reverse memcpy.
    • No More SDL: done.
    • Threads for audio: consumer and producer
      • Again, is this really helpful? It may allow lowering of priority, but only temporarily? What about syncing?
  • Aspect Ratio: done
  • Timidity
    • A lot of work. May improve speed over midi and sound better.

To Do

  • PSP
    • Optimize video playback speed
      • Most video seems fine. Check at 222Mhz.
      • Groovie is slow
    • Use libTimidity for music
  • Generic virtual keyboard: take my keyboard and make it available to all. Involves switching from bitmaps to vectors.
  • Generic ELF loader
  • Speed up seeks in huge MP3/Ogg files using index.
    • Load the index, and if updated save every 5 mins or so?

Ideas

  • Index file for big mp3/ogg files: currently we have to seek through the whole file. This affects Loom and MI1 and any others. The idea is to create an index file (file_mp3.idx) during the first run. Playing a music file will look for an index file if the file is beyond a certain size. Index files can be created to have certain intervals (e.g. every 30 seconds) or perhaps to record all accesses to the files, which will mean they're only useful the 2nd time through a game. The file is just a list of time, position in the file.
  • PSP may some day be unable to load ScummVM plugins as they are, because it's shifting towards accepting only PRX files (ie. PIC code). Some solution will be needed to adapt the current plugin code for PIC in the main executable.
    • Idea: dump the symbol table of the main executable into another file. When loading plugins, load this into memory. Create a symbol in memory using ld script that will indicate where in memory the main executable was loaded. Finally, relocating the plugins will obviously be more work since we don't have ld to do some of the job for us. We might need 2 MipsPlugins: MipsComplete and MipsIncomplete.