mupen64plus-core icon indicating copy to clipboard operation
mupen64plus-core copied to clipboard

Hey You, Pikachu! VRU Emulation Support

Open Ecksters opened this issue 8 years ago • 2 comments

Bliss-Box developers have offered support for the VRU, we need to get the interface working for them though. See here: http://www.emutalk.net/threads/55279-Hey-You!-Pikachu-Possible-HLE-Implementation/page4

If we can get the VRU working through BlissBox, an HLE implementation through any mic shouldn't be far behind. Issue is that I don't think the controller plugin currently has support for the VRU, I believe the Mupen plugin doesn't have any Adaptoid-style support for RAW input, correct?

Ecksters avatar Apr 15 '16 03:04 Ecksters

Relevant code used in the VRU communication process:

s32 osVoiceInit(OSMesgQueue *siMessageQ, OSVoiceHandle *hd, int channel);
typedef struct {
   OSMesgQueue  *__mq;      /* SI message queue */
   int          __channel;  /* Controller port No. */
   s32          __mode; /* Used within the OS */
   u8           cmd_status; /* Command status */
} OSVoiceHandle;
s32 osVoiceSetWord(OSVoiceHandle *hd, u8 *word);
s32 osVoiceClearDictionary(OSVoiceHandle *hd, us words);
s32 osVoiceSetWord(OSVoiceHandle *hd, u8 *word);
s32 osVoiceStartReadData(OSVoiceHandle *hd);
s32 osVoiceGetReadData(OSVoiceHandle *hd, OSVoiceData *result);
typedef struct {
   u16  warning;        /* Warning */
   u16  answer_num; /* Candidate number (0~5) */
   u16  voice_level;    /* Voice input level */
   u16  voice_sn;   /* Relative voice level */
   u16  voice_time; /* Voice input time */
   u16  answer[5];  /* Candidate word number */
   u16  distance[5];    /* Distance value */
} OSVoiceData;
s32 osVoiceStopReadData(OSVoiceHandle *hd);
 //Registered Words:
u8 *registration_word[] =   {
"yakiniku",
"mario",
     .
     .
     .
"pikachu"

And a flowchart of how it works: Flowchart

Source

Ecksters avatar Apr 15 '16 10:04 Ecksters

https://github.com/mupen64plus/mupen64plus-core/pull/873

loganmc10 avatar Jun 17 '21 18:06 loganmc10

Shouldn't this be closed?

Hasster1 avatar Feb 13 '23 18:02 Hasster1

@Hasster1 still no way to emulate the VRU, although there was some progress made on it a year or two back, there was a working prototype using a PC mic, I can try to track that down

Ecksters avatar Feb 13 '23 19:02 Ecksters

This was completed in https://github.com/mupen64plus/mupen64plus-core/pull/873

It is available in simple64: https://simple64.github.io

It's still up to the input plugin to support this, and AFAIK only simple64's input plugin does, but mupen64plus-core already supports the VRU as much as it can

loganmc10 avatar Feb 13 '23 19:02 loganmc10

Oh, very cool, hadn't realized anyone had officially implemented it with a GUI yet, sounds like this can be closed then.

Ecksters avatar Feb 13 '23 20:02 Ecksters