You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The list of games in the initial post are still the only ones reported to use sceAac.
None of these seem to have demos and I had trouble finding if they do or do not work at all in PPSSPP currently. I assume they are missing music or effects or voices or something, if they even run.
A more recent log would be useful, it should note better how the functions are used.
SceAac uses AAC. AAC files can be played in most devices, Windows, IOS, Android, can play AAC files
I don't think I needed to implement AAC via ffmpeg or faac
We try to not rely on platform APIs for stuff like that wherever possible, because there's always a chance that they'll behave differently on one platform than another. So it's best to use FFMPEG. Either way, that's not really the problem here, it's just that the sceAac API needs to be better figured out and hooked up.
Hm, not really, since that one is for sceAudiocodec, the lower level library that sceAac uses internally. sceMp4 is a bit different, it's not just audio but also video, and it seems to be a wrapper around a lower level mp4 library called mp4msv to handle a lot of the parsing (but also calls sceAudiocodec for the audio).
Although, for sceAac specifically, it might be possible to just do DisableHLE for it and let it take care of itself, assuming the game ships a copy of sceAac.prx...
Activity
unknownbrackets commentedon Sep 22, 2013
A log would be useful.
-[Unknown]
sum2012 commentedon Sep 22, 2013
The log is short,I think can post here rather than gist
53:38:231 EmuThread.cpp:116 I[BOOT]: Done.
53:42:059 EmuScreen.cpp:67 I[BOOT]: Starting up hardware.
53:42:059 System.cpp:259 I[BOOT]: PPSSPP v0.9.1-1159-g806e482
53:42:060 MemArena.cpp:368 I[MM]: Found valid memory base at 08000000 after 29 tries.
53:42:060 MemMap.cpp:96 I[MM]: Memory system initialized. RAM at 0C800000 (mirror at 0 @ 10000000, uncached @ 10000000)
53:42:082 Loaders.cpp:176 I[LOAD]: Identifying file...
53:42:082 PSPLoaders.cpp:121 I[LOAD]: NPUZ00300 : Knight Fortix 2
53:42:083 PSPLoaders.cpp:192 I[LOAD]: Loading disc0:/PSP_GAME/SYSDIR/EBOOT.BIN...
53:42:083 HLE\sceKernelMemory.cpp:213 I[KERNEL]: Kernel and user memory pools initialized
53:42:083 HLE\sceIo.cpp:432 I[IO]: Starting up I/O...
53:42:083 FileUtil.cpp:253 I[COMMON]: CreateFullPath: path E:\Downloads\ppsspp-v0.9.1-1159-g806e482-windows-x86\ppsspp\memstick
53:42:083 FileUtil.cpp:257 I[COMMON]: CreateFullPath: path exists E:\Downloads\ppsspp-v0.9.1-1159-g806e482-windows-x86\ppsspp\memstick
53:42:083 FileUtil.cpp:253 I[COMMON]: CreateFullPath: path E:\Downloads\ppsspp-v0.9.1-1159-g806e482-windows-x86\ppsspp\flash0
53:42:083 FileUtil.cpp:257 I[COMMON]: CreateFullPath: path exists E:\Downloads\ppsspp-v0.9.1-1159-g806e482-windows-x86\ppsspp\flash0
53:42:100 FileUtil.cpp:253 I[COMMON]: CreateFullPath: path cheats
53:42:100 FileUtil.cpp:257 I[COMMON]: CreateFullPath: path exists cheats
53:42:100 FileUtil.cpp:253 I[COMMON]: CreateFullPath: path E:\Downloads\ppsspp-v0.9.1-1159-g806e482-windows-x86\ppsspp\memstick\PSP\PPSSPP_STATE
53:42:100 FileUtil.cpp:257 I[COMMON]: CreateFullPath: path exists E:\Downloads\ppsspp-v0.9.1-1159-g806e482-windows-x86\ppsspp\memstick\PSP\PPSSPP_STATE
53:42:137 HLE\sceKernel.cpp:141 I[KERNEL]: Kernel initialized.
53:42:144 HLE\sceKernelModule.cpp:695 I[MODULE]: Decrypting ~PSP file
53:42:200 C:\BuildAgent\work\acf56f986e98e7c9\Core/ELF/ElfReader.h:58 I[LOAD]: ElfReader: 0E800020
53:42:202 Util\BlockAllocator.cpp:379 I[HLE]: -----------
53:42:202 Util\BlockAllocator.cpp:383 I[HLE]: Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled)
53:42:202 Util\BlockAllocator.cpp:383 I[HLE]: Block: 08804000 - 08a5db00 size 00259b00 taken=1 tag=ELF
53:42:202 Util\BlockAllocator.cpp:383 I[HLE]: Block: 08a5db00 - 0a000000 size 015a2500 taken=0 tag=(untitled)
53:42:205 ELF\ElfReader.cpp:516 N[LOAD]: ELF loading completed successfully.
53:42:256 HLE\sceKernelModule.cpp:800 I[LOAD]: Module Nemesys: 00000000 089c2ed0 089c2ee8
53:42:257 HLE\sceKernelModule.cpp:612 W[LOAD]: Unknown syscall in known module: sceAac 0xd7c51541
53:42:257 HLE\sceKernelModule.cpp:980 I[LOAD]: Exporting ent 0 named Nemesys, 2 funcs, 4 vars, resident 089c31cc
53:42:257 HLE\sceKernelModule.cpp:1249 I[LOAD]: Module entry: 088046f0
53:42:272 root N[SCEGE]: GLES\Framebuffer.cpp:222 GPU Vendor : NVIDIA Corporation
53:42:361 root N[BOOT]: EmuScreen.cpp:111 Loading E:/ISO/sceaac/PSP-knight-fortix-2.iso...
53:42:362 root I[KERNEL]: HLE\sceKernelThread.cpp:2075 276=sceKernelCreateThread(name=user_main, entry=08804810, prio=20, stacksize=262144)
53:42:362 root I[KERNEL]: HLE\sceKernelThread.cpp:2126 sceKernelStartThread(thread=276, argSize=33, argPtr=09fffe00)
53:42:362 root I[KERNEL]: HLE\sceKernelThread.cpp:2204 __KernelReturnFromThread: 0
53:42:362 user_main I[HLE]: Util\BlockAllocator.cpp:379 -----------
53:42:362 user_main I[HLE]: Util\BlockAllocator.cpp:383 Block: 08800000 - 08804000 size 00004000 taken=0 tag=(untitled)
53:42:362 user_main I[HLE]: Util\BlockAllocator.cpp:383 Block: 08804000 - 08a5db00 size 00259b00 taken=1 tag=ELF
53:42:362 user_main I[HLE]: Util\BlockAllocator.cpp:383 Block: 08a5db00 - 09f23800 size 014c5d00 taken=1 tag=UserSbrk
53:42:362 user_main I[HLE]: Util\BlockAllocator.cpp:383 Block: 09f23800 - 09fbfc00 size 0009c400 taken=0 tag=(untitled)
53:42:362 user_main I[HLE]: Util\BlockAllocator.cpp:383 Block: 09fbfc00 - 09fffc00 size 00040000 taken=1 tag=stack/user_main
53:42:362 user_main I[HLE]: Util\BlockAllocator.cpp:383 Block: 09fffc00 - 0a000000 size 00000400 taken=0 tag=stack/root
53:42:435 user_main I[UTIL]: Dialog\PSPSaveDialog.cpp:58 sceUtilitySavedataInitStart(099adadc)
53:42:435 user_main I[UTIL]: Dialog\PSPSaveDialog.cpp:59 Mode: 0
53:42:438 user_main I[KERNEL]: HLE\sceKernelThread.cpp:2075 285=sceKernelCreateThread(name=SceWaveMain, entry=089b0a80, prio=10, stacksize=512)
53:42:438 user_main I[KERNEL]: HLE\sceKernelThread.cpp:2126 sceKernelStartThread(thread=285, argSize=12, argPtr=08a5b618)
53:42:510 user_main I[KERNEL]: HLE\sceKernelThread.cpp:2075 287=sceKernelCreateThread(name=musicUpdaterThreadMain, entry=0897a4d4, prio=10, stacksize=32768)
53:42:510 user_main I[KERNEL]: HLE\sceKernelThread.cpp:2126 sceKernelStartThread(thread=287, argSize=0, argPtr=00000000)
53:42:510 musicUpdater E[HLE]: HLE\HLE.cpp:455 Unimplemented HLE function sceAacInitResource
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 272: Thread "idle0": pc= 08000000 sp= 083fff00 RUN (wt=0 wid=0 wv= 00000000 )
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 273: Thread "idle1": pc= 08000000 sp= 083fef00 READY (wt=0 wid=0 wv= 00000000 )
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 274: Module "Nemesys": name=Nemesys gp=00000000 entry=088046f0
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 276: Thread "user_main": pc= 089a978c sp= 09fff570 WAIT (wt=17 wid=1 wv= 00000000 )
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 277: MemoryPart "UserSbrk": MemPart: 08a5e000 - 09f23d00 size: 014c5d00
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 278: CallBack "exit": thread=276, argument= 00000000
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 279: Mutex "NmsUmdIo": -
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 280: Mutex "NmsMsIo": -
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 281: EventFlag "SceGuSignal": init=00000001 cur=00000001 numwait=0
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 282: OpenFile "disc0:/PSP_GAME/USRDIR/fortix2_psp.blob": Seekpos: 048cf4c7
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 284: EventFlag "SceWaveMainEvf": init=00000000 cur=00000000 numwait=0
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 285: Thread "SceWaveMain": pc= 089b0c20 sp= 09fffe50 WAIT (wt=4 wid=284 wv= 00000000 )
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 286: EventFlag "musicUpdaterThreadMain": init=00000001 cur=00000003 numwait=0
53:52:985 idle0 I[KERNEL]: HLE\sceKernel.cpp:492 KO 287: Thread "musicUpdaterThreadMain": pc= 0897a7c4 sp= 09fbfa70 WAIT (wt=2 wid=287 wv= 00000000 )
53:52:986 idle0 I[KERNEL]: HLE\sceKernel.cpp:152 Shutting down kernel - 14 kernel objects alive
53:52:986 HLE\sceKernelMemory.cpp:248 I[KERNEL]: Shutting down user memory pool:
53:52:986 Util\BlockAllocator.cpp:379 I[HLE]: -----------
53:52:986 Util\BlockAllocator.cpp:383 I[HLE]: Block: 08800000 - 0a000000 size 01800000 taken=0 tag=(untitled)
53:52:986 HLE\sceKernelMemory.cpp:251 I[KERNEL]: Shutting down "kernel" memory pool:
53:52:986 Util\BlockAllocator.cpp:379 I[HLE]: -----------
53:52:986 Util\BlockAllocator.cpp:383 I[HLE]: Block: 08000000 - 08400000 size 00400000 taken=0 tag=threadrethack
53:52:987 MemMap.cpp:119 I[MM]: Memory system shut down.
53:52:988 Config.cpp:259 E[LOAD]: Error saving config - can't read ini ppsspp.ini
53:52:992 Config.cpp:388 I[LOAD]: Config saved: ppsspp.ini
53:52:992 Config.cpp:393 E[LOAD]: Error saving config - can't read ini controls.ini
53:52:995 Config.cpp:400 I[LOAD]: Controller config saved: controls.ini
53:53:026 Config.cpp:388 I[LOAD]: Config saved: ppsspp.ini
53:53:027 Config.cpp:400 I[LOAD]: Controller config saved: controls.ini
unknownbrackets commentedon Sep 23, 2013
Might try having sceAacInitResource() return 0.
-[Unknown]
sum2012 commentedon Sep 23, 2013
No help (Real PSP also return this value)
maybe thread issue.
Debug log;
https://docs.google.com/file/d/0B3OaSdeV0L8kLURIazZzalR1VGs/edit?usp=sharing
edit:JPCSP can run to title
JPCSP log
https://gist.github.com/sum2012/3e52b69cee01b7969f42
unknownbrackets commentedon Oct 12, 2013
Updated the issue with a list of reported games that use sceAac.
-[Unknown]
unknownbrackets commentedon Jan 22, 2014
The list of games in the initial post are still the only ones reported to use sceAac.
None of these seem to have demos and I had trouble finding if they do or do not work at all in PPSSPP currently. I assume they are missing music or effects or voices or something, if they even run.
A more recent log would be useful, it should note better how the functions are used.
-[Unknown]
sum2012 commentedon Jan 22, 2014
v0.9.6-543-gcddd537 same problem
info log:
https://gist.github.com/sum2012/ca5fcd936c30949dc90e
debug log:
https://drive.google.com/file/d/0B3OaSdeV0L8kYzRuNlhxcWVUMFk/edit?usp=sharing
sum2012 commentedon Feb 20, 2014
Test on Fortix Eur version (NPEZ00096) on -v0.9.7.2-52
No blackground music
log:https://drive.google.com/file/d/0B3OaSdeV0L8kX0lEbXJtLUZ2c0E/edit?usp=sharing
sum2012 commentedon Feb 20, 2014
Knight Fortix 2 still black screen
debug log:
https://drive.google.com/file/d/0B3OaSdeV0L8kUDNpVlVSWGdRR28/edit?usp=sharing
sum2012 commentedon Feb 20, 2014
NPEZ00390 : Speedball 2 Evolution Black screen
https://gist.github.com/sum2012/92abd24b250492de921b
dbz400 commentedon Apr 26, 2014
@sum2012 , just wonder are those games working better now?
sum2012 commentedon Apr 26, 2014
@raven02 Only Fortix Eur is fixed
Knight Fortix and NPEZ00390 : Speedball 2 Evolution still have problem
dbz400 commentedon Apr 27, 2014
I see. thanks @sum2012 .
sum2012 commentedon Sep 16, 2014
PPSSPP v0.9.9.1-458-g94c865b Windows 64 bit
NPUZ00300 - Knight Fortix 2 is fixed
log:
https://gist.github.com/sum2012/9a9177292b54f5ddfed2
Panderner commentedon Mar 23, 2020
SceAac uses AAC. AAC files can be played in most devices, Windows, IOS, Android, can play AAC files
I don't think I needed to implement AAC via ffmpeg or faac
hrydgard commentedon Mar 23, 2020
We try to not rely on platform APIs for stuff like that wherever possible, because there's always a chance that they'll behave differently on one platform than another. So it's best to use FFMPEG. Either way, that's not really the problem here, it's just that the sceAac API needs to be better figured out and hooked up.
Unknowncat1991 commentedon Mar 23, 2025
I tried Knight Fortix 2 no audio issue
Speedball Evolution 2 stay on blackscreen but pressing start can start the game similar to this #15004
Panderner commentedon Apr 13, 2025
Needs game testings after #20246
hrydgard commentedon Apr 13, 2025
Hm, not really, since that one is for sceAudiocodec, the lower level library that sceAac uses internally. sceMp4 is a bit different, it's not just audio but also video, and it seems to be a wrapper around a lower level mp4 library called
mp4msvto handle a lot of the parsing (but also calls sceAudiocodec for the audio).Although, for sceAac specifically, it might be possible to just do DisableHLE for it and let it take care of itself, assuming the game ships a copy of sceAac.prx...hrydgard commentedon Jul 20, 2025
Actually this issue is a bit outdated. sceAac is implemented and working through an AuCtx.
The remaining issue is sceMp4, which isn't really what this issue is about. Creating a separate issue for that.