gamebridge: Twitch Control #2

Merged
cadey merged 29 commits from gamebridge into master 2020-05-11 22:40:05 +00:00
3 changed files with 33 additions and 23 deletions
Showing only changes of commit cf7c89e31f - Show all commits

View File

@ -8,9 +8,9 @@
static struct ControllerAPI *controller_implementations[] = {
&controller_recorded_tas,
/* &controller_sdl, */
/* &controller_keyboard, */
/* &controller_tas_recorder, */
&controller_sdl,
&controller_keyboard,
&controller_tas_recorder,
};
s32 osContInit(OSMesgQueue *mq, u8 *controllerBits, OSContStatus *status) {

View File

@ -5,25 +5,35 @@
#include "controller_api.h"
static int fd;
static FILE *fin;
static int counter;
#define OFFSET 0x400
#define fname "cont.m64"
static void tas_init(void) {
fd = open("cont.m64", O_RDONLY);
if (fd != 0) {
uint8_t buf[OFFSET];
read(fd, buf, sizeof(buf));
counter = 0;
fin = fopen(fname, "rb");
if (fin == NULL) {
return;
}
printf("[tas_playback] loading %s\n", fname);
uint8_t buf[OFFSET];
fread(buf, 1, sizeof(buf), fin);
counter = 0;
}
static void tas_read(OSContPad *pad) {
if (fd != 0) {
if (fin == NULL) {
return;
}
uint8_t bytes[4] = {0};
int result = read(fd, bytes, 4);
if (result < 0) {
int result = fread(bytes, 1, 4, fin);
if (feof(fin)) {
printf("[tas_playback] end of tas input\n");
fclose(fin);
fin = NULL;
return;
}
@ -31,9 +41,8 @@ static void tas_read(OSContPad *pad) {
pad->stick_x = bytes[2];
pad->stick_y = bytes[3];
counter+=4;
printf("%x called %04x %d %d\n", (counter + OFFSET), pad->button, bytes[2], bytes[3]);
printf("[tas_playback] %08x called %04x %02x%02x\n", (counter + OFFSET), pad->button, bytes[2], bytes[3]);
fflush(stdout);
}
}
struct ControllerAPI controller_recorded_tas = {

View File

@ -13,6 +13,7 @@ static int counter;
static void tas_recorder_close(void) {
fclose(fout);
printf("[tas_recorder] saving tas data to %s\n", fname);
}
static void tas_recorder_init(void) {