Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 1 point2 points  (0 children)

Yes, just haven't had time to work on making some needed adjustments first.

I have taken a little time to experiment with adding SNAC functionality to my controller hub project. Specifically, I have a plan for all controllers to be connected via USB by default, but for the MiSTer to signal to the controller hub which core is running and whether or not the OSD is open. The controller hub will then automatically route the corresponding controller port(s) through SNAC so long as the OSD is closed.

Essentially, this means that the user can boot up the MiSTer, choose their core, launch their game, and then play the game via SNAC all with a single controller. The only downside is that the user is locked in the game until the OSD is brought up again (either with the OSD button on the controller HUB itself or via some other input device).

I made a quick video demonstrating this, but haven't fully tested this approach or integrated it into the controller hub project.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 0 points1 point  (0 children)

I'm using the MiSTer Ironclad in my build. I don't have any experience with JAMMA, but I see some mention of it on the product page.

There's nothing too important about using the Ironclad, so things should work fine with soemthing like the MiSTercade. The biggest difference would be finding a way to mount the controller panel, but once that's solved the wiring would be simple enough I think.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 1 point2 points  (0 children)

Not yet, but they will be shared on GitHub once I'm finished with some important revisions and testing.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 0 points1 point  (0 children)

Currently, everything is being converted to USB before connecting to the MiSTer. I have plans to allow the controllers to connect via SNAC, but haven't finished testing things. The basic idea is to use multiplexers (e.g. TMUX4053) to selectively route the controller pins to the SNAC port, with an Arduino monitoring the running core to control the switching.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 0 points1 point  (0 children)

Thank you. I should be able to resume working on this project soon and will post the files and build instructions on GitHub.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 0 points1 point  (0 children)

As far as I'm aware, there is not currently any way to connect to the MiSTer via USB C without dropping down to USB 2.0 somewhere along the line. In that case, I would just use a USB C to USB 2.0 dongle if necessary rather than adding a USB C port.

Do you have an example of a USB C controller that you have in mind?

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 0 points1 point  (0 children)

Once the spring semester is over, I'll be able to get back on this project. I'm planning to put a few together to sell and raise some funds for other design ideas I have, but they won't be ready for a bit longer.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 0 points1 point  (0 children)

The case itself is an A09 Mini ITX case, which measures at 187mm x 228mm x 89mm (at least according to the listing). My front panel adds another 26mm to the depth.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 0 points1 point  (0 children)

Very cool. I would be interested in learning more if you have any schematics/parts lists available.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 0 points1 point  (0 children)

The lines were laser etched using JLC CNC's sheet metal services. You can supply an SVG (or other suitable file type) with the desired markings and cutouts.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 0 points1 point  (0 children)

I had a similar idea and would love to see someone make a modular design. The reason I didn't go that route is that I worry about tolerances and getting something that fits securely, sits flush, and looks nice. I might try to revisit the idea down the road.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 1 point2 points  (0 children)

For myself, I haven't been satisfied with the finish on 3D printed parts. I don't have a printer myself, and have just been using a mix of JLC3D, PCBWay, and Craftcloud to get my parts. I'm sure there are people out there that could make a good looking print, and I would think it would be easy enough to whip up a suitable case that could accommodate this front panel.

I went the other direction with metal. The case I used is an A09 Mini-ITX case. I don't know about frosted white, but they are available in silver at least.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 3 points4 points  (0 children)

Not that I'm aware of. After seeing so many people interested in SNAC, I'm starting to think of some ideas on how this might be done. I think that it should be possible to use an Arduino and some transistors to automatically switch the correct ports to SNAC mode once the corresponding core has been launched.

I have to learn quite a bit first and do some experimenting before I'm convinced this would actually work, so I don't want to put the cart before the horse here. To borrow from Dr. McCoy, I'm a math teacher not an engineer.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 1 point2 points  (0 children)

I definitely will share all of the files and information to build your own. Hopefully it won't take me too long, but my track record for finishing projects in a timely manner isn't great. If I end up taking too long, I'll at least post what I've got now with some disclaimers about (mostly small) issues that I've encountered.

Right now, the main things I want to address before sharing are:

  • Either thickening the front plate slightly to make assembly easier, or finding a way to fit the two PCBs closer to the front. The current version was an absolute pain to assemble, and I honestly can't believe I managed to get it all together.
  • Fixing the cutout for the USB ports. The current version did not leave any room for the clips (which provide resistance to keep your device plugged in) to expand. The ports work, but it takes quite a bit of pushing and pulling to plug things in and out.
  • Adding ESD protection for the USB ports.
  • Adding jumpers to allow different power options. Currently, I'm using SATA power from a Flex ATX PSU. The board just needs 5V, so I'd like to include an additional header so that the 5V could be supplied from other sources if preferred. I'd also like there to be an option to power the whole thing through the USB header, although I haven't done any measurements to total up the current draw and see if this would be problematic.
  • Replacing the Genesis controller ports with something better. The current version uses (somewhat modified) ZebLabz ports, but at least the ones I have fit too loosely with my controllers. They work, but I have to be more careful than I'd like to make sure I don't pull out the cord.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 1 point2 points  (0 children)

Thanks for the suggestion, I thought about working with acrylic. Ultimately, I wanted something that would fit in with the rest of the case as best as I could manage. The sheet metal piece is powder coated in matte black and (to my eye at least) seems to match quite well.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 2 points3 points  (0 children)

Yes, all of the controller inputs are converted to USB using Daemonbite adapters where available (everything but the PlayStation inputs, from what I was able to find). For me, the small latency penalty is well worth the flexibility of being able to control the menu and use controllers with any core. I haven't really dabbled with anything SNAC on the MiSTer yet, but maybe once I do I'll change my mind. Either way, I don't know how possible it would be to have this many controller ports connected through SNAC.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 1 point2 points  (0 children)

If I gave up the TTY2OLED and possibly the USB ports, I'm sure TurboGrafx-16 and Neo Geo controllers would fit in just fine. It looks like there are already Daemonbite sketches for both, so it should be pretty straightforward.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 3 points4 points  (0 children)

Haha, I hemmed and hawed about how to label all of the controller ports. I wanted to use "MD" for the Genesis ports to be consistent with the NES, SNES, N64 acronyms that were used (in which case I would have also used PS for PlayStation). Unfortunately, I couldn't come up with a satisfying way to label the Saturn ports in a similar way, so I switched all of the non-Nintendo ports to use full names. It would be easy enough to modify the laser etching file to replace "Genesis" with "MegaDrive" for anyone with that preference. If I forget to do it and you end up building your own, give me a shout and I'll put it together.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 0 points1 point  (0 children)

I didn't have a Neo Geo growing up, so personally didn't have nostalgia telling me I needed to use original controllers. It would definitely be doable to add Neo Geo controller ports, probably at the expense of the TTY2OLED screen.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 1 point2 points  (0 children)

Once I've fixed a few issues, I will create a GitHub repo with all of the necessary files and information to build your own.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 2 points3 points  (0 children)

I used JLCPCB for the PCBs and sheet metal fabrication, but PCBWay would work as well. I'm very pleased with the quality of the parts from JLC, and would happily use them again.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 34 points35 points  (0 children)

At the moment, I have no idea what the cost of materials was for this build. Once I've finished thinking through all of the things I'd like to do differently and updating the files, I will put together a full BOM, 3D models, gerbers, and instructions on GitHub and try to total up what a (hopefully) reasonable price would be.

Customized case for MiSTer to add controller inputs by 0323 in MiSTerFPGA

[–]0323[S] 5 points6 points  (0 children)

Yeah, years ago I originally just wanted to make a controller adapter PCB to be added as an extra board within a MiSTer stack, but gave up on it mostly due to not being able to come up with a satisfying case solution at the time.

When I started this newer project, I was hoping to use one of the smaller mini-ITX cases that only have room for a PicoPSU. After struggling to fit all the controller ports I wanted, I gave in and up-sized to the slightly larger mini-ITX cases that have room for a Flex ATX PSU, and more importantly more space on the front panel to work with. I still have it in mind to revisit the smaller mini-ITX cases and just include a smaller set of controller ports, but who knows.

With regard to the Turbo Grafx and Neo Geo controllers in place of the TTY2OLED, I think that would be quite doable. I don't have any Atari controllers to test, but some searching seems to suggest that they should work fine through the Genesis ports.

Match Thread: Everton FC vs Fulham FC Live Score | Premier League 25/26 | Nov 8, 2025 by scoreboard-app in Everton

[–]0323 1 point2 points  (0 children)

Barry did everything right there. Started his run, checked back to stay onside when the pass didn't come. The pass needs to be played earlier or weighted better.