Add various functions used in root.rpx

This commit is contained in:
Maschell
2022-02-25 21:36:26 +01:00
committed by James
parent e16dc8725d
commit 6112345285
5 changed files with 60 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ extern "C" {
#endif
typedef void (*DisassemblyPrintFn)(const char *fmt, ...);
typedef uint32_t (*DisassemblyFindSymbolFn)(uint32_t addr, char *symbolNameBuf, uint32_t symbolNameBufSize);
typedef enum DisassemblePPCFlags
@@ -72,6 +73,12 @@ OSIsECOBoot();
BOOL
OSIsECOMode();
void
__OSSetCrashRecovery(uint32_t crashRecovery);
uint32_t
__OSGetCrashRecovery();
BOOL
DisassemblePPCOpcode(uint32_t *opcode,
char *buffer,

View File

@@ -33,6 +33,12 @@ OSGetSharedData(OSSharedDataType type,
void **outPtr,
uint32_t *outSize);
/*
* Can only be called from Root (process)
*/
void
__OSRootLoadShared();
/**
* Moves chunks of memory around, similarly to memmove. Overlapping source and
* destination regions are supported.

View File

@@ -0,0 +1,20 @@
#pragma once
#include <wut.h>
#ifdef __cplusplus
extern "C" {
#endif
int
__OSGetSavedAudioFlags();
int __OSGetTransitionAudioBuffer(void **buffer,
uint32_t *size);
void
__OSSetTransitionAudioSize(uint32_t size);
#ifdef __cplusplus
}
#endif

View File

@@ -1,5 +1,6 @@
#pragma once
#include <wut.h>
#include <sndcore2/device.h>
#include "result.h"
/**
@@ -15,6 +16,7 @@ extern "C" {
typedef struct AXProfile AXProfile;
typedef struct AXInitParams AXInitParams;
typedef struct AXTransitionAudioBuffer AXTransitionAudioBuffer;
typedef void(*AXFrameCallback)(void);
@@ -51,6 +53,24 @@ WUT_CHECK_OFFSET(AXInitParams, 0x00, renderer);
WUT_CHECK_OFFSET(AXInitParams, 0x08, pipeline);
WUT_CHECK_SIZE(AXInitParams, 0x0C);
struct WUT_PACKED AXTransitionAudioBuffer {
WUT_UNKNOWN_BYTES(0x8);
uint32_t length;
WUT_UNKNOWN_BYTES(0x4);
void *audioBuffer;
uint32_t audioBufferLen;
AXDeviceMode tvMode;
WUT_UNKNOWN_BYTES(0xC);
AXDeviceMode drcMode;
WUT_UNKNOWN_BYTES(0xC);
};
WUT_CHECK_OFFSET(AXTransitionAudioBuffer, 0x08, length);
WUT_CHECK_OFFSET(AXTransitionAudioBuffer, 0x10, audioBuffer);
WUT_CHECK_OFFSET(AXTransitionAudioBuffer, 0x14, audioBufferLen);
WUT_CHECK_OFFSET(AXTransitionAudioBuffer, 0x18, tvMode);
WUT_CHECK_OFFSET(AXTransitionAudioBuffer, 0x28, drcMode);
WUT_CHECK_SIZE(AXTransitionAudioBuffer, 0x38);
void
AXInit();
@@ -89,6 +109,12 @@ AXGetInputSamplesPerFrame();
uint32_t
AXGetInputSamplesPerSec();
void
AXStartTransitionAudio();
void
AXSetUpTransitionAudio(AXTransitionAudioBuffer *buffer);
#ifdef __cplusplus
}
#endif

View File

@@ -47,6 +47,7 @@
#include <coreinit/threadqueue.h>
#include <coreinit/time.h>
#include <coreinit/title.h>
#include <coreinit/transition.h>
#include <coreinit/userconfig.h>
#include <dmae/mem.h>
#include <dmae/sync.h>