mirror of
https://github.com/N64Recomp/N64ModernRuntime.git
synced 2025-10-30 08:02:29 +00:00
Implement osViGetCurrentLine and osViGetCurrentField
This commit is contained in:
parent
e94dc4055b
commit
8719abe217
3 changed files with 20 additions and 0 deletions
|
|
@ -22,6 +22,14 @@ extern "C" void osViRepeatLine_recomp(uint8_t* rdram, recomp_context* ctx) {
|
||||||
osViRepeatLine(_arg<0, u8>(rdram, ctx));
|
osViRepeatLine(_arg<0, u8>(rdram, ctx));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" void osViGetCurrentLine_recomp(uint8_t* rdram, recomp_context* ctx) {
|
||||||
|
ctx->r2 = (gpr)osViGetCurrentLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void osViGetCurrentField_recomp(uint8_t* rdram, recomp_context* ctx) {
|
||||||
|
ctx->r2 = (gpr)osViGetCurrentField();
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" void osViSetSpecialFeatures_recomp(uint8_t* rdram, recomp_context* ctx) {
|
extern "C" void osViSetSpecialFeatures_recomp(uint8_t* rdram, recomp_context* ctx) {
|
||||||
osViSetSpecialFeatures((uint32_t)ctx->r4);
|
osViSetSpecialFeatures((uint32_t)ctx->r4);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,8 @@ typedef uint8_t u8;
|
||||||
# ifdef __cplusplus
|
# ifdef __cplusplus
|
||||||
# define NULLPTR (PTR(void))0
|
# define NULLPTR (PTR(void))0
|
||||||
# endif
|
# endif
|
||||||
|
# define PHYS_TO_K1(x) ((x)|0xA0000000)
|
||||||
|
# define IO_READ(addr) (*(volatile uint32_t*)PHYS_TO_K1(addr))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef NULL
|
#ifndef NULL
|
||||||
|
|
@ -285,6 +287,8 @@ void osViSetMode(RDRAM_ARG PTR(OSViMode));
|
||||||
void osViSetSpecialFeatures(uint32_t func);
|
void osViSetSpecialFeatures(uint32_t func);
|
||||||
void osViBlack(uint8_t active);
|
void osViBlack(uint8_t active);
|
||||||
void osViRepeatLine(uint8_t active);
|
void osViRepeatLine(uint8_t active);
|
||||||
|
u32 osViGetCurrentLine();
|
||||||
|
u32 osViGetCurrentField();
|
||||||
void osViSetXScale(float scale);
|
void osViSetXScale(float scale);
|
||||||
void osViSetYScale(float scale);
|
void osViSetYScale(float scale);
|
||||||
PTR(void) osViGetNextFramebuffer();
|
PTR(void) osViGetNextFramebuffer();
|
||||||
|
|
|
||||||
|
|
@ -480,6 +480,14 @@ extern "C" void osViRepeatLine(uint8_t active) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" u32 osViGetCurrentLine() {
|
||||||
|
return IO_READ(VI_V_CURRENT_LINE_REG);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" u32 osViGetCurrentField() {
|
||||||
|
return IO_READ(VI_V_CURRENT_LINE_REG) & 1;
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" void osViSetXScale(float scale) {
|
extern "C" void osViSetXScale(float scale) {
|
||||||
if (scale != 1.0f) {
|
if (scale != 1.0f) {
|
||||||
assert(false);
|
assert(false);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue