@zx-81, thanks a lot for your contributions in the homebrew scene. I noticed most of your homebrews (if not all) uses sceCtrlPeekBufferPositive (), instead of sceCtrlReadBufferPositive (). The sceCtrlPeekBufferPositive () call doesn't work well with other plugins or shells. The problem is if you call sceCtrlPeekBufferPositive () inside a loop, the system won't be able to yield control to other threads with same or lower priorities. This means the plugins or shells running in the background can't get any CPU cycle at all. On the other hand, calling sceCtrlReadBufferPositive () will only be executed 60 times a second at most. If the key isn't available yet, the system will switch task to another thread.
Do you think you can consider using sceCtrlReadBufferPositive () in the future, so that your apps can coop with others? Thanks for your attention.