Not the best Arduino programmer here, but I'll try my best to explain the situation. First off, I am using an Arduino Uno. What I am essentially trying to build is a TASBot. It basically takes pre-programmed controller inputs stored on a Micro-SD Card and sends them to a real console. Now the code I have(which is not mine, it is from GitHub. I will leave it attached as sd-n64.ino) is working fine, but only under one game, Super Mario 64. When I try to hook it into any other game, such as Majora's Mask, it will output
Starting up SD initialization done. Opening file '1key.m64'... M64 Version: 3 File opened succesfully. Initialization done.
This is the normal SD initialization for this program. But now when I turn on the console, it will output
Controller identified Controller identified Got a write, what? Got a read, what?
And then it will continue to output Controller identified until I turn off the console. My question is, how will I go about solving this? I asked this question a while back in the issues on the project on GitHub, but I only got one response, which didn't help me but might help you. I'm not supposed to attach external links, so I will put what the site says here but I will also attach the site since there are some other observations on there.
Majora's Mask observed startup sequence 1. N64 sends identify command, 0x00 Controller responds with 05 00 02 with no controller pak, 05 00 01 with memory pak. 2. N64 reads controller status (0x01) 3. Another 0x00 command, with the same response 4. N64 sends: 03 80 01 followed by 32 bytes, all FE Response: 0xE1 with memory pak, 0x1E without. The response has no stop bit! instead, the data line goes low for 2us immediately after the last data bit. Majora's Mask title screen polling sequence 1. Status request (0x01) 2. Identification command (0x00) 3. Another 0x03 command as described above 4. N64 sends: 02 80 01
That is all of my research so far. So my real question is, how should I go about fixing this? I don't know a lot of coding so a lot of detail would be appreciated. If you need any additional info or testing, just reply, and remember that this is my first time posting, so correct me if I put this in the wrong section or anything else. Thanks!
P.S. if you are trying to get the program to work, you will need to put crc_table.h in the project's directory.
crc_table.h (4.67 KB)
sd-n64.ino (21.7 KB)