Your work inspired me to pursue electrical engineering! Great to see what hobbyists can do with a little bit of knowledge and the right tools!
@bowi1332 Жыл бұрын
His work inspires me. Period. 😅
@voxelfusion9894 Жыл бұрын
Me too! Then a few semesters in I realized it wasn't for me and switched to comp sci instead lol.
@Matyas_Ceo_Of_Matyas Жыл бұрын
@@bowi1332no period lol
@ukrpgfan4029 Жыл бұрын
@@bowi1332 Me too full stop.
@soviut303 Жыл бұрын
You might want to investigate an Adruino Teensy. I've used one to make an adapter for an old metal DDR pad I own. The Teensy is specifically intended to be a HID (human interface device) which makes it able to emulate keyboards, mice, game controllers, midi, etc. pretty easily with the right libraries.
@james.lambert Жыл бұрын
That definitely sounds like something I may check out. Can it operate as the USB host? If not it wouldn't be useful for this project but I would love to find a good chip that has a built in USB host.
@soviut303 Жыл бұрын
@@james.lambert yes, it can host; it has 4 pins on the top that a host adapter cable can be attached to. I recommend getting a teensy with the headers already attached. It saves a tonne of time being able to plug it straight into a breadboard.
@DoctorDalek Жыл бұрын
@@james.lambert The Pico can do USB host. Overall it'll be cheaper than any Arduino offering.
@Jeff-ss6qt Жыл бұрын
@@DoctorDalekPi Pico can also do timing sensitive stuff with interfaces.
@Xaymar Жыл бұрын
@@james.lambertThe later Teensy models can even have two or three (with gpio routing) usb ports. One host and two client ports are possible - using this to create a hardware alternative to software audio routing.
@Jademalo Жыл бұрын
Oh nice, this is an awesome project! As a tip for anyone else interested in this sort of electronic signal analysis - If you're not dealing with analogue signals at all, then you can get by without needing to spend a lot of money on a fancy oscilloscope. You can get a basic logic analyser for ~£12.50 which will let you capture a signal and analyse the logic. I originally got mine when I was debugging an Arduino based N64 controller adapter, and it worked a treat to be able to see what both the console and the controller were doing.
@blakkpatron Жыл бұрын
This is huge, mouse & keyboard support for the n64 would be a dream come true. hope you continue working on this project.
@DaMu24 Жыл бұрын
Screw keyboard, just add the mouse support.
@Walking_bandaid Жыл бұрын
I love your easy to understand explanations as to what is happening rather than glossing over it. Even as someone who just likes to mess around with electronics I find your videos to be a joy to watch.
@TheJmax04 Жыл бұрын
I've been learning circuit design and arduino stuff lately and your explanation of the double pull-down really helped me understand the concept.
@jbritain Жыл бұрын
This is really cool! You mentioned it's not sensitive enough, maybe you could add a little potentiometer for a dial sticking out that lets you adjust the sensitivity.
@Dee_Just_Dee Жыл бұрын
Wow, good stuff! A couple of thoughts: (1) The mouse sensitivity can hopefully be addressed by adding a line or two of code to multiply mouse inputs by n.n. 1.0 would then be raw input, and something like 1.5 would give more movement and something like 0.5 would give less movement. (2) The audio in your video is really quiet compared to a lot of other KZbin content I watch. I think you'd benefit from running your audio through a dynamic range compressor and increasing the gain before uploading. For reference, I watched this video by downloading it to my PC and then running the audio through FFMPEG with the filter "loudnorm, compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0, loudnorm". In plain English, that's, "boost the volume to a reference level, run some aggressive dynamic range compression, and then pull the output up/down to that reference level again to be sure". This let me comfortably hear everything at my normal Windows volume of 20 whereas I would otherwise need to turn you waaay up to 40.
@goeiecool9999 Жыл бұрын
I used to run all my desktop audio through a dynamic range compressor, but it made music sound really bad. I've switched to automatic gain control with a limiter.
@DaMu24 Жыл бұрын
I'd ignore the suggestion for the audio stuff; he likely got a different microphone compared to his last vlog a couple months ago. Just test the input before recording using an audio visualizer and use an equalizer to keep the quiet intended input balanced with the higher.
@stephencooper3067 Жыл бұрын
Think i heard a child half way through the the video, if so even more kudos for working on these projects! I have a two year old and struggle to find the time/motivation to work on my projects. If you have a young child and still managing to build these awesome things thats very impressive.
@EZOnTheEyes Жыл бұрын
every last video of yours is a certified banger, software homebrew, hardware mods, what CAN'T you do? keep it up!
@NotTheWheel Жыл бұрын
I'm always inspired by your passion in your projects my friend this is all brilliant :)
@partack1 Жыл бұрын
I love these videos =3 please make more, they're REALLY really interesting, it's like seeing bits and pieces of my childhood being explained how they did certain things.
@theotherotherBrian Жыл бұрын
This is awesome! And thanks for sharing your R&D with everyone who might be interested in getting this setup for themselves!
@SamCampbell Жыл бұрын
Saving money on peripherals? Sounds good to me!
@jackatk Жыл бұрын
Somebody call the Nintendo lawyers! Miyamoto won’t be happy about this!
@SpookyzGT Жыл бұрын
@@jackatk 🤓☝️
@jackatk Жыл бұрын
@@SpookyzGT Correct
@Numbabu Жыл бұрын
@@jackatkit’s really funny that anyone can immediately refute this by saying “Nintendo isn’t selling peripherals anymore, the money wouldn’t go to them” but people who really know what’s going on know that Nintendo hates their fans and would still get mad for no reason.
@TheEternalHyperborean Жыл бұрын
Lol, just the oscilloscope he purchase is around $275, a good $100 more expensive than just buying the mouse. He didn't save money.
@otodusobliquus3836 Жыл бұрын
Another banger as per usual! And very informal/easy to follow. Would love to see keyboard support as well, or at least support for a usb numpad so you could use the arrow keys for movement as that's all that really matters. Or native support in Portal 64 to use the second controller port just to use the dpad for movement instead. Can't wait to see more!
@LB_ Жыл бұрын
The beginning of this video was so quiet I thought my audio setup was broken, and the rest of the video is still rather quiet. Anyway, nice work!
@james.lambert Жыл бұрын
the beginning of the video is quiet because of a copyrighted song I had to remove after uploading.
@notalostnumber8660 Жыл бұрын
Normally I use audio at like 30% volume, but I had to use more like 90% to hear anything in the video
@Dane_Casperson Жыл бұрын
I love that this is not destructive at all to the N64. gives you all the mouse, and a pristine, stock N64, truly lovely :-)
@WatanukiProductions Жыл бұрын
"I changed nothing(or nothing that should matter) but it works now." Debugging in a nutshell. Your channel is super inspirational.
@nikeschnd Жыл бұрын
Ah! Your tip about disabling the timer interrupt was exactly what solved my issue! I just finished a synthesizer module that reads a N64 controller and sends out an analog voltage. Only thing was the data was a bit glitchy. It makes perfect sense now though that the microcontroller was in an interrupt while a falling or rising signal came that it missed. Fixed everything by disabling global interrupts during the data sampling! Thanks again and great project!
@DemsCreates Жыл бұрын
Amazing work! I never thought something like this was possible, that's bonkers.
@ARitzCracker Жыл бұрын
just gotta say, I loved your inline asm noop for a short delay, did the same thing when I was writing addressable-RGB firmware in Rust. The dramatic music was amazing
@kearen Жыл бұрын
I'm loving how your style of editing is developing! Thanks for sharing a great project and video.
@ampycplus Жыл бұрын
Glad to see a fellow ThinkPad + Linux user
@leroymilo Жыл бұрын
Including debugging and explanation is great! I'll try to remember the interrupt issue, it might be usefull.
@zicraftian Жыл бұрын
I am a big fan of the N64 so your channel is very fun to watch!
@TheModularChannel Жыл бұрын
Your videos are awesome. I hope you keep making them long after you're done with Portal 64!
@distributedparanoia Жыл бұрын
Buying an oscilloscope is a great move, digital doubly so, but i'm gonna echo the person that suggested getting a logic analyzer. They start around $20 and are complementary to an oscilloscope. Salaea Logic is a great free analyzer tool, and it even has a plugin for N64 controller logic analysis!
@btarg1 Жыл бұрын
That is a criminally small mousepad. This project will be brilliant for retro enthusiasts!
@maingron Жыл бұрын
I just love the stuff you do period. You're amazing. Am a developer myself, but if I was to do such project, it would just end up in a hardware mess and stall right there. I think my closest project I get to "something that's easy to fix and really bothers me" is a script that allows you to double-click a rom and open it in the appropriate RetroArch core, but that's also a really simple one. Keep it up!
@Bobbias Жыл бұрын
Cool project. Always great to see people working with old gaming consoles like this. On a technical/video production note: I would suggest using something to capture your PC screen rather than just jamming your camera into the screen. You could still crop/zoom to show relevant areas, and it would be much more readable.
@LordHonkInc Жыл бұрын
oh this is neat! I've only just gotten into arduino/stm32 tinkering recently and bitbanging "low complexity" peripherals (meaning moreso the N64 gamepad communication protocol than the USB) is intensely gratifying :)
@arabidllama Жыл бұрын
I'm glad to see you printed it in orange, as is legally required for Prusa printers
@quackcharge Жыл бұрын
another amazing video btw, your channel is such a gem. great work! sc with a mouse and keyboard would be super fun to see
@leonschroder2970 Жыл бұрын
Your videos are very inspiring to me
@Muskelhias Жыл бұрын
Nice work, awesome! :} I was in Japan last month and wanted to get some nice N64 mouses for Portal64, but I did not find even one, despite visiting like 20 retro shops... So I guess there is a reason why it is so expensive nowadays... :( But now I can build it by myself, thanks!
@alienJIZ19905 ай бұрын
Love the way you engineer things, my dude - your projects are inspiring af! This makes me wonder if it'd be possible to use a USB Mic with this and write a voice to text ROM, like a more accurate VRU, so homebrew devs could make games with it that actually use it in cool ways - because we all prefer to forget Hey You Pikachu
@dege10000 Жыл бұрын
For any one that wants to try this, a more simple solution is using a ps/2 mouse since it can be read by any arduino without any extra hardware and there are already made libraries for them that simplify the process. Also laptops touchpads are almost always a ps/2 device, it's even posible to read the amount of pressure applied to them!
@Talvos7 ай бұрын
This is so nice to see. The mouse was already expensive, but at least comes with each copy of the game. Meanwhile the N64 keyboard is like $1,000-$1,500!!!
@briitch3131 Жыл бұрын
theoretically,considering you've got all the primary interfacing issues put of the way, it shouldn't be too hard to program this to control any arbitrary usb device to work with the N64 with just a relatively little amount of reprogrammimg (p much kust buttons and inputs, since you've got all the hard stuff covered!!) nice job!!
@2crzy4uall Жыл бұрын
The epic music for the little bits of coding killed me.
@pikgears Жыл бұрын
Even if it's more expensive at first, this sort of thing is definitely good in the long run since there are a finite amount of n64 mice but an approximately infinite amount of generic usb mice.
@Clodd1 Жыл бұрын
Your channel is really underrated.
@yobb89 Жыл бұрын
cheers for the github, i'm going to build this and the psx version aswell sometime .
@MotownBatman Жыл бұрын
New Sub! Dryden, MI Excellent Job! Uh, I didn't have/play n64... Couldn't Afford it, & the Thumbstick Looked Weird. The Wii Implementation made it all Clear. Now I want to make some fashion to Attach 4 controllers to a USB for Emulators... I've never done PIC Style or any programming, but this looks sweet STAGE CLEAR! 🌟 that's all I remember from the Toys 'R Us Demo lol
@heckintech Жыл бұрын
What a fascinating project! I would absolutely pay for a Keyboard/Mouse adapter for the N64. 100%. Also, anyone ever tell you you look a LOT like a young Mark Hamill? 😁
@elijahtheurer344 Жыл бұрын
Holy moly, this reminds me of the old Mac plus keyboard that I didn't want to buy the adapter for, so I built my own. Only to find out afterward that somebody had already done it lol
@pablovirus Жыл бұрын
That code debugging with epic music was too funny 😂
@theexile4694 Жыл бұрын
Keep living the dream James.
@Gunbudder Жыл бұрын
a protocol analyzer (or a logic analyzer) can be extremely useful for debugging lines that carry binary data. you can configure the protocol analyzer with how long each bit should be and it will do the work for you and instead of showing the trace, it can show you the bits. some of the really fancy protocol analyzers can take it even further and have common protocols built in like RS-232 or RS-422 and will show you data relevant to that protocol (or if there is some protocol error). they aren't too expensive these days either because you can get computer controlled ones that connect to your PC over USB
@memyselfishness Жыл бұрын
You're the first person I've ever heard to say "ar-du-i-no," most people I know say "ar-dwi-no." Though, I'm not saying you're wrong. This is a brilliant project and I love using Arduinos and other similar devices to emulate hardware for consoles and the like.
@james.lambert Жыл бұрын
Maybe I should start calling it ardu-eye-no
@DFX2KX Жыл бұрын
you know, I see one potential application for a gadget like that. since the hot and ground wires are common to all 4 controllers anyway, and only the shared signal wires are unique, it would be possible to have that device emulate more than one controller at once, particularly with a faster chip doing the emulation. Which would be fun to pair with a virtual joystick applicaiton, stream a not-too-timing-critical multiplayer game and let your friends control player 2-4 on *actual hardware*.
@DeanofSmoking Жыл бұрын
Simple idea to some. But you went beyond. TRUE GAMER! LOVE !
@la_chevre Жыл бұрын
Love the dramatic code edits 😂
@john005_ Жыл бұрын
Oh my god that is great. We need one for dreamcast. The dreamcast only recognises the official mouse and maybe old ps/2 mouses with special adapters that are expensive
@patosomon724 Жыл бұрын
Wow this is so cool, imagine playing Goldeneye/Doom64/Quake with a mouse !
@Turabbo Жыл бұрын
Wish my coding felt like that lol. Fun video, thanks dude 🙂
@pgtmr2713 Жыл бұрын
Laser trackball from Logitech and pair, (with ltunify in linux,) a keyboard to the same receiver dongle. Once paired they stay paired. They can also handle up to 6 devices on one receiver. Saves space, power, and wrists. No noticeable lag or issues with keys responding. I've got 3 paired sets
@quackcharge Жыл бұрын
14:20 is such a mood lol
@Alex-qq1gm Жыл бұрын
Urgh even N64 isnt safe from the KBM hackers on console. /s
@TheBrotherHolmes Жыл бұрын
Your audio volume was low, so I turned up my earbuds. When an ad played, I leaped off the floor about a foot (may be slight exaggeration) while I was cooking dinner.
@RosieSapphireMusic Жыл бұрын
Holy heck. Now THATS epic.
@DanielSavageOnGooglePlus Жыл бұрын
randnet is back babyyyyyy
@NimhLabs Жыл бұрын
... well, this should excite Uncle Derek over at Stop Skeletons From Fighting...
@TheRaveCrocker Жыл бұрын
thats really cool james!
@SkelXton Жыл бұрын
This is really cool and similar to something I once made. I used an arduino micro to interpret bytes to send mouse and keyboard data for a kvm device thing. I think the likely reason the program didn't work when you tried running it post debugging (Timestamp: 14:06) is because it wasn't connected to the serial monitor in the arduino IDE. If you tell it to connect to the serial monitor and it can't, it throws a pissy fit, so as long as you disable the serial debugger lines for that, it should work without needing to connect to the Serial Monitor. (I could very well be wrong, but idk just a thought) Overall though, really cool video
@james.lambert Жыл бұрын
Could be. It started working later even without being connected to the monitor.
@SkelXton Жыл бұрын
@@james.lambertodd, I just wanted to state this because it was an issue I had on my project which caused a ton of latency lol
@sinfulldreamer Жыл бұрын
So, this gives me an idea of how to make something I've been thinking about: An Arduino that emulates an N64 controller or multiple controllers which then can be controlled via local network or remotely. Essentially what that would do is give the ability to do networked multiplayer using the original hardware. Programming a server and client then compensating for the lag would probably be the hard part though.
@AdrianDX Жыл бұрын
This is so extremely cool! Imagine getting to play all those FPS games with a modern keyboard and mouse on real hardware😵 Maybe Blueretro could implement support for KB&M at some point. Though something with a USB input port would probably have a better chance at working with my KVM switch I hope you continue work on this! Not sure how much those parts cost, but maybe some cheaper alternatives exist?🤔 Anywas, I’m just overly excited and day-dreaming😂 Great work on both the project and on the video!👏🏻
@darbling Жыл бұрын
while it sounds cool to play those games with a keyboard and mouse, those games would NEED to be changed to accommodate the new control scheme. I've played emulated perfect dark on a keyboard and mouse and it wasn't pretty.
@AdrianDX Жыл бұрын
@@darbling You might wanna check out some tutorials. Because 1964 GE/PD edition works perfect (at least with GE, can’t see why PD should be any different). As long as you can edit sensitivity in-game or adjust settings on the adapter, I believe it should be doable even or real hardware.
@darbling Жыл бұрын
@@AdrianDX in the case of PD, the controls are really wack in general and the way it feels is rough when played on kb/m. I'm just gonna say try it haha. I can't remember off the top of my head what the problems were. You know what, I'll try it again and I'll get back to you.
@AdrianDX Жыл бұрын
@@darbling I’ll give it a go as well! Got me curious here😂 I hear the PC port based off the decomp for PD is really good with KB/M though. I have no idea what the PC port project name is though😅
@keyboard_g Жыл бұрын
Just about time to get Irix running on the N64, so we can get that 3d file browser.
@protocetid Жыл бұрын
A business laptop, and a workstation model at that! I considered a workstation laptop, but got tired of looking for the right one and got a T series.
@Noah-ost Жыл бұрын
those parts where you cut to you coding with overly dramatic music were really funny lmao
@RetroRhith Жыл бұрын
This is brilliant!
@josh116pep Жыл бұрын
Wow I’m glad you didn’t want mine haha because this is ten times better!! Offer still stands but I love seeing this😀 keep up the great work. Now that I’m moved in and can start unpacking I can’t wait to try this out! Do you think you want to tackle the keyboard next? 😂
@johnbillings5260 Жыл бұрын
I made an adapter for Dual Shock to N64 using an UNO. There were libraries, but I do remember having to hack around them a bit. It was pretty cool to play GoldenEye with, but the aim was a bit jittery. I no longer have an N64 to mess with it.
@MaximumRD Жыл бұрын
Well that is just amazing.
@matthewcampbell4047 Жыл бұрын
enjoyed the video, would love if you had some bonus content for subscribers for how you built the circuit board
@popixel Жыл бұрын
Lol. I did the same thing but for the Sega master system. They have a spinner controller in Japan and I thought it was too expensive to bother purchasing and I saw that someone had created a board that will mow you to me on spinner controller. So I designed a 3-D housing that was almost identical to the Sega master system controllers, the cost of testing, the prince and the sizing before having a printed far outweigh the cost of just buying the stupid controller in the first place. But I’ve got a video in my channel that showcases the final prototype.
@TechGuyWiz Жыл бұрын
To get a full controller working on the mouse try the UtechSmart Venus Pro, its around $30 USD and has a num pad on the side so all you would have to do is program whatever numpad like on a keyboard to the button of your choice. Again as someone that has the mouse the computer see 0-9 as if you had an external Numpad attached to the PC
@Gilesone1989 Жыл бұрын
If I have the possibility one day to have my own company, I want you to be my project's director and do this all day !
@jogo1666 Жыл бұрын
You are a boss. Im sorry for late sub. Thats my bad. The algorithm kept you away. .
@SoyAntonioGaming Жыл бұрын
next, make a CD-drive for the N64 pls
@bonnome2 Жыл бұрын
Hmm, you could also have used an esp32s3. It has usb host and tanakamasayuki made a library for it. You could even add bluetooth to it if you really wanted to!
@mikel9292 Жыл бұрын
It would be really cool if you add 2 buttons to the case for increasing or decreasing the mouse sensibility (I gess that it would be as simple as multiplying the input values for the X and Y coordinates by a variable that stores the sensibility managed by these 2 buttons).
@jonmayer Жыл бұрын
A built in multiplier for sensitivity would be nice. You could add a simple button to the arduino to change the "DPI" of the mouse.
@ryan.crosby Жыл бұрын
Awesome project. Had you considered using the RP2040 as the micro instead of the Arduino? The RP2040 is capable of doing USB Host with its PIO, which is supported by TinyUSB so it supports HID mouse input. The RP2040 is also ridiculously cheap and even supports MicroPython.
@AlT-s2s Жыл бұрын
And supports arduino ide instalation so if he is familiar with that he can use if
@Gna-rn7zx Жыл бұрын
Love the epic code change music ^^
@shiru8bit11 ай бұрын
Been there. Did a similar thing some years back, with an Arduino, PS/2 mouse, and SNES. It kinda worked in general, but it was a bit glitchy, and it was very difficult to figure out just by the gueswork, without having a scope. Eventually got a scope, but never returned to this project.
@Dje4321 Жыл бұрын
It would be cool if it supported controller passthrough. That way you can use the mouse for joystick inputs, and the gamepad for normal N64 inputs while still being the "same" controller to the console
@marvintraxel6955 Жыл бұрын
Seems like a good use case for a pi pico. The io statemaschines could offload a lot from the mikrochip for faster latency and more expandability
@hotrods20 Жыл бұрын
Have you tried multiplying the mouse's input values by 1.2 or 1.3 to see if it is more sensitive? If that works, you could potentially include a pot on one of the analog pins on the Arduino and use that to change sensitivity.
@dhkatz_ Жыл бұрын
Would not work. That would just cause more jitter.
@TechProGabe Жыл бұрын
You mad lad
@EtanMarlin Жыл бұрын
that would be awesome to see StarCraft with mouse and keyboard on N64
@shadowman_390 Жыл бұрын
Awesome. Push sensibility and lets play Golden Eye with M&K!
@AJBats Жыл бұрын
“I’m not super motivated to do that because theres already-“ whoa there, you’re sitting on gold, let me fill you in. I have scoured the internet, and there are NO wired USB to N64 adapters that I can find. This comes up when trying to use modern racing wheels on the N64. There’s a product called Ras1ution which allows you to re-interpret a racing wheel as a modern controllers, the restriction of this product is that it is USB wired only. I use this product to use my G29 logitech racing wheel on basically any console that has a modern wired controller adapter available for it on the market. I daisy chain the adapters together to great effect. One of the tricky consoles is N64, which has no such product at all. Well except, for the prototype you’ve just made :)
@quinman16 Жыл бұрын
Can you give all of use the link to the USB module you used in this video please
@Polypheides Жыл бұрын
if this would work with a keyboard/mouse combined into one controller it could be cool using it playing perfect dark or golden eye and portal 64
@muddle3017 Жыл бұрын
Hey, would it be possible to do the same for the dreamcast keyboard/mouse? It would really be quite impressive if you could combine them into one.
@soldier1939 Жыл бұрын
Now i really need a way to invent a Ds-3ds cartridge to usb adapter.
@ВладимирПетров-л8з Жыл бұрын
I think you can solve the constant sensitivity problem if you make a software or hardware sensitivity slider connected to a code like this: v - mouse movement vector. resulting v = v * sensitivity. Maybe you can connect another controller in parallel with the mouse as a keyboard.
@james.lambert Жыл бұрын
I do plan on doing something like that. Before I do though I want to support more than the boot mouse because reading the mouse data fully will give me more bits to work before being truncated to 8 bits. If I scaled without that then the mouse would be less precise.
@Kurtea00 Жыл бұрын
Maybe have a mouse sensitivity variable on the arduino. If I understand it correctly, you could just multiply the input Vector by that value to correct for the mouse having a low DPI...
@pie19988 Жыл бұрын
This reminds me I should work on the arduino my fiance got me...thanks. also loved the video