mirror of
https://github.com/N64Recomp/N64ModernRuntime.git
synced 2026-05-10 19:01:53 +00:00
Implement osContStartQuery, osContSetCh
This commit is contained in:
parent
d994b1cd57
commit
0ce61d3e75
2 changed files with 35 additions and 12 deletions
|
|
@ -37,6 +37,15 @@ extern "C" void osContInit_recomp(uint8_t* rdram, recomp_context* ctx) {
|
|||
_return<s32>(ctx, ret);
|
||||
}
|
||||
|
||||
extern "C" void osContReset_recomp(uint8_t* rdram, recomp_context* ctx) {
|
||||
PTR(OSMesgQueue) mq = _arg<0, PTR(OSMesgQueue)>(rdram, ctx);
|
||||
PTR(OSContStatus) data = _arg<1, PTR(OSContStatus)>(rdram, ctx);
|
||||
|
||||
s32 ret = osContReset(PASS_RDRAM mq, data);
|
||||
|
||||
_return<s32>(ctx, ret);
|
||||
}
|
||||
|
||||
extern "C" void osContStartReadData_recomp(uint8_t* rdram, recomp_context* ctx) {
|
||||
if (input_callbacks.poll_input) {
|
||||
input_callbacks.poll_input();
|
||||
|
|
@ -73,7 +82,11 @@ extern "C" void osContGetReadData_recomp(uint8_t* rdram, recomp_context* ctx) {
|
|||
}
|
||||
|
||||
extern "C" void osContStartQuery_recomp(uint8_t * rdram, recomp_context * ctx) {
|
||||
ultramodern::send_si_message(rdram);
|
||||
PTR(OSMesgQueue) mq = _arg<0, PTR(OSMesgQueue)>(rdram, ctx);
|
||||
|
||||
s32 ret = osContStartQuery(PASS_RDRAM mq);
|
||||
|
||||
_return<s32>(ctx, ret);
|
||||
}
|
||||
|
||||
extern "C" void osContGetQuery_recomp(uint8_t * rdram, recomp_context * ctx) {
|
||||
|
|
@ -83,8 +96,11 @@ extern "C" void osContGetQuery_recomp(uint8_t * rdram, recomp_context * ctx) {
|
|||
}
|
||||
|
||||
extern "C" void osContSetCh_recomp(uint8_t* rdram, recomp_context* ctx) {
|
||||
max_controllers = (std::min)(_arg<0, u8>(rdram, ctx), u8(4));
|
||||
_return<s32>(ctx, 0);
|
||||
u8 ch = _arg<0, u8>(rdram, ctx);
|
||||
|
||||
s32 ret = osContSetCh(PASS_RDRAM ch);
|
||||
|
||||
_return<s32>(ctx, ret);
|
||||
}
|
||||
|
||||
extern "C" void __osMotorAccess_recomp(uint8_t* rdram, recomp_context* ctx) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include "ultramodern/input.hpp"
|
||||
#include "ultramodern/ultra64.h"
|
||||
#include "ultramodern/ultramodern.hpp"
|
||||
|
||||
static ultramodern::input::callbacks_t input_callbacks {};
|
||||
|
||||
|
|
@ -9,6 +10,8 @@ void ultramodern::input::set_callbacks(const callbacks_t& callbacks) {
|
|||
input_callbacks = callbacks;
|
||||
}
|
||||
|
||||
#define MAXCONTROLLERS 4
|
||||
|
||||
static int max_controllers = 0;
|
||||
|
||||
static void __osContGetInitData(u8* pattern, OSContStatus *data) {
|
||||
|
|
@ -31,27 +34,31 @@ extern "C" s32 osContInit(RDRAM_ARG PTR(OSMesgQueue) mq, PTR(u8) bitpattern_, PT
|
|||
u8 *bitpattern = TO_PTR(u8, bitpattern_);
|
||||
OSContStatus *data = TO_PTR(OSContStatus, data_);
|
||||
|
||||
max_controllers = 4;
|
||||
max_controllers = MAXCONTROLLERS;
|
||||
|
||||
__osContGetInitData(bitpattern, data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C" s32 osContResetRDRAM_ARG (PTR(OSMesgQueue) , PTR(OSContStatus) ) {
|
||||
extern "C" s32 osContReset(RDRAM_ARG PTR(OSMesgQueue) mq, PTR(OSContStatus) data) {
|
||||
assert(false);
|
||||
}
|
||||
|
||||
extern "C" s32 osContStartQuery(RDRAM_ARG PTR(OSMesgQueue) ) {
|
||||
extern "C" s32 osContStartQuery(RDRAM_ARG PTR(OSMesgQueue) mq) {
|
||||
ultramodern::send_si_message(PASS_RDRAM1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C" s32 osContStartReadData(RDRAM_ARG PTR(OSMesgQueue) mq) {
|
||||
assert(false);
|
||||
}
|
||||
|
||||
extern "C" s32 osContStartReadData(RDRAM_ARG PTR(OSMesgQueue) ) {
|
||||
assert(false);
|
||||
}
|
||||
extern "C" s32 osContSetCh(RDRAM_ARG u8 ch) {
|
||||
max_controllers = (std::min)(ch, u8(MAXCONTROLLERS));
|
||||
|
||||
extern "C" s32 osContSetCh(RDRAM_ARG u8) {
|
||||
assert(false);
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern "C" void osContGetQuery(RDRAM_ARG PTR(OSContStatus) data_) {
|
||||
|
|
@ -61,6 +68,6 @@ extern "C" void osContGetQuery(RDRAM_ARG PTR(OSContStatus) data_) {
|
|||
__osContGetInitData(&pattern, data);
|
||||
}
|
||||
|
||||
extern "C" void osContGetReadData(RDRAM_ARG PTR(OSContPad) ) {
|
||||
extern "C" void osContGetReadData(RDRAM_ARG PTR(OSContPad) data) {
|
||||
assert(false);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue