Implement sceMp4 (was: Speedball 2 - Evolution)
nothing but a black screen and keeps on printing out this 47:38:968 moviePreload E[HLE]: HLE\HLE.cpp:473 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize 47:38:968 movieThread E[HLE]: HLE\HLE.cpp:473 Unimplemented HLE function sceMp4GetAvcAu 47:38:984 movieThread E[HLE]: HLE\HLE.cpp:473 Unimplemented HLE function sceMp4GetAacAu 47:38:984 movieThread E[HLE]: HLE\HLE.cpp:473 Unimplemented HLE function sceMp4AacDecode
EDIT: Affected games are:
NPUZ00256/NPEZ00390 - Speedball 2 Evolution NPUH10069 - Auditorium
This & Audiotorium uses mp4 codec :)
v0.8.1-1173-ge03acc4
still a black screen
09:31:120 EmuThread.cpp:122 I[BOOT]: Done.
09:40:507 EmuScreen.cpp:63 I[BOOT]: Starting up hardware.
09:40:507 System.cpp:64 I[HLE]: PPSSPP v0.8.1-1167-gf01279f
09:40:521 MemMap.cpp:93 I[MM]: Memory system initialized. RAM at 000000000DEF0000 (mirror at 0 @ 0000000088000000, uncached @ 00000000C8000000)
09:40:537 Loaders.cpp:136 I[LOAD]: Identifying file...
09:40:537 PSPLoaders.cpp:121 I[LOAD]: NPUZ00256 : Speedball 2 Evolution
09:40:540 PSPLoaders.cpp:192 I[LOAD]: Loading disc0:/PSP_GAME/SYSDIR/EBOOT.BIN...
09:40:540 HLE\sceKernelMemory.cpp:164 I[HLE]: Kernel and user memory pools initialized
09:40:540 HLE\sceIo.cpp:298 I[HLE]: Starting up I/O...
09:40:540 FileUtil.cpp:214 I[COMMON]: CreateFullPath: path D:\4\EmuCR-ppsspp-20130109-x64\memstick
09:40:540 FileUtil.cpp:218 I[COMMON]: CreateFullPath: path exists D:\4\EmuCR-ppsspp-20130109-x64\memstick
09:40:540 FileUtil.cpp:214 I[COMMON]: CreateFullPath: path D:\4\EmuCR-ppsspp-20130109-x64\flash0
09:40:540 FileUtil.cpp:218 I[COMMON]: CreateFullPath: path exists D:\4\EmuCR-ppsspp-20130109-x64\flash0
09:40:544 GLES\Framebuffer.cpp:205 N[HLE]: GPU Vendor : ATI Technologies Inc.
09:40:545 FileUtil.cpp:214 I[COMMON]: CreateFullPath: path cheats
09:40:545 FileUtil.cpp:218 I[COMMON]: CreateFullPath: path exists cheats
09:40:545 FileUtil.cpp:214 I[COMMON]: CreateFullPath: path D:\4\EmuCR-ppsspp-20130109-x64\memstick\PSP\PPSSPP_STATE
09:40:545 FileUtil.cpp:218 I[COMMON]: CreateFullPath: path exists D:\4\EmuCR-ppsspp-20130109-x64\memstick\PSP\PPSSPP_STATE
09:40:574 HLE\sceKernel.cpp:135 I[HLE]: Kernel initialized.
09:40:610 HLE\sceKernelModule.cpp:454 I[HLE]: Decrypting ~PSP file
09:40:635 C:\BuildAgent\work\acf56f986e98e7c9\Core/ELF/ElfReader.h:58 I[LOAD]: ElfReader: 0000000011440040
09:40:637 Util\BlockAllocator.cpp:359 I[HLE]: -----------
09:40:637 Util\BlockAllocator.cpp:363 I[HLE]: Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled)
09:40:637 Util\BlockAllocator.cpp:363 I[HLE]: Block: 08804000 - 08a3f900 size 0023b900 taken=1 tag=ELF
09:40:637 Util\BlockAllocator.cpp:363 I[HLE]: Block: 08a3f900 - 0a000000 size 015c0700 taken=0 tag=(untitled)
09:40:637 ELF\ElfReader.cpp:516 N[LOAD]: ELF loading completed successfully.
09:40:637 HLE\sceKernelModule.cpp:557 I[LOAD]: Module PSPEngine: 00000000 08966db8 08966dd0
09:40:638 HLE\sceKernelModule.cpp:730 I[HLE]: Exporting ent 0 named PSPEngine, 2 funcs, 4 vars, resident 08967120
09:40:638 HLE\sceKernelModule.cpp:985 I[LOAD]: Module entry: 089300f4
09:40:753 root N[BOOT]: EmuScreen.cpp:105 Loading D:\4\EmuCR-ppsspp-20130109-x64\roms\Speedball 2 - Evolution (USA) (minis) (PSN).iso...
09:40:753 root I[HLE]: HLE\sceKernelThread.cpp:1943 276=sceKernelCreateThread(name=user_main, entry=08930214, prio=20, stacksize=262144)
09:40:753 root I[HLE]: HLE\sceKernelThread.cpp:1986 sceKernelStartThread(thread=276, argSize=33, argPtr=09fffe00)
09:40:753 root I[HLE]: HLE\sceKernelThread.cpp:2072 __KernelReturnFromThread: 0
09:40:753 user_main I[HLE]: Util\BlockAllocator.cpp:359 -----------
09:40:753 user_main I[HLE]: Util\BlockAllocator.cpp:363 Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled)
09:40:753 user_main I[HLE]: Util\BlockAllocator.cpp:363 Block: 08804000 - 08a3f900 size 0023b900 taken=1 tag=ELF
09:40:753 user_main I[HLE]: Util\BlockAllocator.cpp:363 Block: 08a3f900 - 09e40000 size 01400700 taken=1 tag=UserSbrk
09:40:753 user_main I[HLE]: Util\BlockAllocator.cpp:363 Block: 09e40000 - 09fbfc00 size 0017fc00 taken=0 tag=(untitled)
09:40:753 user_main I[HLE]: Util\BlockAllocator.cpp:363 Block: 09fbfc00 - 09fffc00 size 00040000 taken=1 tag=stack/user_main
09:40:753 user_main I[HLE]: Util\BlockAllocator.cpp:363 Block: 09fffc00 - 0a000000 size 00000400 taken=0 tag=stack/root
09:40:754 user_main I[HLE]: HLE\sceKernelThread.cpp:1943 279=sceKernelCreateThread(name=managerThread, entry=0894d2a0, prio=10, stacksize=32768)
09:40:754 user_main I[HLE]: HLE\sceKernelThread.cpp:1943 280=sceKernelCreateThread(name=gameThread, entry=0894c4bc, prio=14, stacksize=32768)
09:40:754 user_main I[HLE]: HLE\sceKernelThread.cpp:1943 281=sceKernelCreateThread(name=movieThread, entry=0894b854, prio=13, stacksize=131072)
09:40:754 user_main I[HLE]: HLE\sceKernelThread.cpp:1986 sceKernelStartThread(thread=279, argSize=4, argPtr=09fff670)
09:40:757 managerThrea I[HLE]: GLES\Framebuffer.cpp:549 Creating FBO for 00000000 : 480 x 272 x 3
09:40:760 managerThrea I[HLE]: HLE\sceKernelThread.cpp:1986 sceKernelStartThread(thread=280, argSize=4, argPtr=09fbfa00)
09:40:761 gameThread I[HLE]: HLE\sceKernelThread.cpp:1943 286=sceKernelCreateThread(name=ATRAC3plus BGM, entry=08948a94, prio=11, stacksize=32768)
09:40:851 gameThread I[HLE]: HLE\sceSas.cpp:89 sceSasInit(08a3ea40, 512, 32, 0, 44100)
09:40:851 gameThread I[HLE]: HLE\sceKernelThread.cpp:1986 sceKernelStartThread(thread=286, argSize=4, argPtr=09fb7a40)
09:40:852 gameThread I[HLE]: Dialog\PSPSaveDialog.cpp:58 sceUtilitySavedataInitStart(08a3d0b8)
09:40:852 gameThread I[HLE]: Dialog\PSPSaveDialog.cpp:59 Mode: 0
09:40:853 managerThrea I[HLE]: Dialog\SavedataParam.cpp:458 Loading file with size 4217 in ms0:/PSP/SAVEDATA/NPUZ00256DATA00/SAVE.VTH
09:40:853 managerThrea I[HLE]: FileSystems\DirectoryFileSystem.cpp:165 Actually opening D:\4\EmuCR-ppsspp-20130109-x64\memstick\PSP\SAVEDATA\NPUZ00256DATA00\SAVE.VTH
09:40:853 managerThrea E[HLE]: FileSystems\DirectoryFileSystem.cpp:455 DirectoryFileSystem::OpenFile: FAILED, 3 - access = 1
09:40:853 managerThrea E[HLE]: Dialog\SavedataParam.cpp:463 Error reading file ms0:/PSP/SAVEDATA/NPUZ00256DATA00/SAVE.VTH
09:41:001 managerThrea I[HLE]: HLE\sceKernelThread.cpp:1986 sceKernelStartThread(thread=281, argSize=4, argPtr=09fbfa00)
09:41:101 movieThread I[HLE]: HLE\sceMpeg.cpp:347 sceMpegInit()
09:41:101 movieThread E[HLE]: HLE\sceMpeg.cpp:1337 UNIMPL sceMpegAvcResourceInit(00000001)
09:41:101 movieThread E[HLE]: HLE\sceMpeg.cpp:1318 UNIMPL sceMpegAvcResourceGetAvcDecTopAddr(00000001)
09:41:116 movieThread I[HLE]: HLE\sceMpeg.cpp:425 08af37b0=sceMpegCreate(09fab810, 08af3780, 65536, 09fab818, 512, 1, 305419896)
09:41:117 movieThread E[HLE]: HLE\sceMp4.cpp:24 UNIMPL sceMp4Init()
09:41:117 movieThread E[HLE]: HLE\sceMp4.cpp:36 UNIMPL sceMp4Create()
09:41:117 movieThread E[HLE]: HLE\sceMp4.cpp:66 UNIMPL sceMp4AacDecodeInitResource()
09:41:117 movieThread E[HLE]: HLE\sceMp4.cpp:108 UNIMPL sceMp4AacDecodeInit()
09:41:117 movieThread E[HLE]: HLE\sceMp4.cpp:126 UNIMPL sceMp4RegistTrack()
09:41:117 movieThread E[HLE]: HLE\sceMp4.cpp:84 UNIMPL sceMp4TrackSampleBufQueryMemSize()
09:41:117 movieThread E[HLE]: HLE\sceMp4.cpp:78 UNIMPL sceMp4TrackSampleBufConstruct()
09:41:117 movieThread E[HLE]: HLE\sceMpeg.cpp:1331 UNIMPL sceMpegAvcResourceGetAvcEsBuf(09fab898)
09:41:117 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4InitAu
09:41:117 movieThread E[HLE]: HLE\sceMp4.cpp:126 UNIMPL sceMp4RegistTrack()
09:41:117 movieThread E[HLE]: HLE\sceMp4.cpp:84 UNIMPL sceMp4TrackSampleBufQueryMemSize()
09:41:117 movieThread E[HLE]: HLE\sceMp4.cpp:78 UNIMPL sceMp4TrackSampleBufConstruct()
09:41:117 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4InitAu
09:41:118 movieThread I[HLE]: HLE\sceKernelThread.cpp:1943 292=sceKernelCreateThread(name=moviePreloadThread, entry=0894b320, prio=11, stacksize=32768)
09:41:118 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:118 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:134 movieThread I[HLE]: HLE\sceKernelThread.cpp:1986 sceKernelStartThread(thread=292, argSize=4, argPtr=09fafa3c)
09:41:134 moviePreload E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:134 moviePreload E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:134 moviePreload E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:134 moviePreload E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:168 movieThread E[HLE]: HLE\sceMp4.cpp:48 UNIMPL sceMp4GetMovieInfo()
09:41:168 moviePreload E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:168 moviePreload E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:170 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4GetAvcAu
09:41:170 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4GetAacAu
09:41:170 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4AacDecode
09:41:170 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4GetAvcAu
09:41:171 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4GetAacAu
09:41:171 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4AacDecode
09:41:201 moviePreload E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:201 moviePreload E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:201 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4GetAvcAu
09:41:202 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4GetAacAu
09:41:202 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4AacDecode
09:41:251 moviePreload E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:251 moviePreload E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4TrackSampleBufAvailableSize
09:41:251 movieThread E[HLE]: HLE\HLE.cpp:495 Unimplemented HLE function sceMp4GetAvcAu
Apparently, this game is now playable despite the lack of sceMp4 support. Surely, the videos are not visible.
Here's a list of games that use sceMp4 (per reporting, may be incomplete): http://report.ppsspp.org/logs/kind/132 (some look questionable. I don't think FF3 uses sceMp4.)
Can anyone note any games in that list which currently do not even start up? Just to help align what to test and the pros/cons of potential changes.
I don't think I have any games that use sceMp4. Does anyone know of any demos that use it (possibly demos of the games in that list)?
-[Unknown]
using ppsspp 1.1.1 it is playable but the videos don't show
We needed to implement scemp4 via ffmpeg
scemp4 plays mp4 videos, mp4 videos can be played any media players even built-in media players for Android devices and Windows Media Player can play mp4 videos.
According to my log at the bottom of my issue, the official STRATEGY GUIDE for LocoRoco seems to use scemp4
https://github.com/hrydgard/ppsspp/issues/20666
Digital Comics also uses sceMp4 to play custom music.
I've compiled a list of affected games so we have them all in the same place:
| IDs | Game Title | Issue | Notes |
|---|---|---|---|
ULJS00480 |
AKB1/48: Idol to Koishitara... | reports | |
NPUH10069 |
Auditorium | this | |
NPEG00012 |
Digital Comics | #20784 | plays custom music |
NPJH50457 |
Evangelion Shin Gekijouban: 3nd Impact | reports | |
ULJM05170ULJM05277ULJM05353 |
Eiyuu Densetsu: Sora no Kiseki trilogy (PSP Remasters) | #1494 | |
NPJH50437 |
Gundam Memories: Tatakai no Kioku | reports | |
UCES01459NPEG00050 |
Jungle Party | #13197 | |
NPUG80471NPEG00041NPJG00072 |
LocoRoco: Midnight Carnival - Official Strategy Guide / LocoRoco: Midnight Carnival - Koushiki Guide Book (PlayView) |
#20666 | plays video |
NPJH60026 |
Meruru no Atelier Plus: Arland no Renkinjutsushi 3 - Official PlayView | #16238 | plays video |
ULJS00358 |
Ore no Imouto ga Konna ni Kawaii Wake ga Nai Portable | reports | |
NPJH50568NPJH50569 |
Ore no Imouto ga Konna ni Kawaii Wake ga Nai Portable ga Tsuzuku Wake ga Nai (Disc 1 and Disc 2) | reports | |
NPUZ00256NPEZ00390 |
Speedball 2 Evolution (PSP Minis) | this | plays mp4 on boot, black screen can be avoided by pressing Start |
| various | various PlayView titles | #10971 | plays video |
PSP Music Center https://www.gamebrew.org/wiki/PSP_Music_Center for mp3 and mp4 not tested