DIY Multicart, detecting menu selection with MCU

A place that you can discuss reproduction of classic titles or "licensed-for-reproduction" homebrew for personal use.

Moderators: B00daW, Moderators

Forum rules
1. NO BLATANT PIRACY. This includes reproducing homebrew less than 10 years old, with the exception of free software.
2. No advertising your reproductions, with the exception of free software.
3. Be nice. See RFC 1855 if you aren't sure what this means.
Post Reply
Posts: 2
Joined: Fri May 26, 2017 8:01 am

DIY Multicart, detecting menu selection with MCU

Post by jaskamakkara » Mon Mar 09, 2020 5:01 am

Hi guys,

I am trying to make my own Multicart using an original SNES PCB as a donor. Basically, the games are stored on multiple ROMs and I have my own decoding to choose the correct game from those. I've made this work in the past by using an ATTiny MCU that switches the games by detecting a long hold of the Reset button, but I'm now trying to do it with a small menu system that allows the user to select the game they want to play directly.

I've made my menu "game", which presents as a very basic list of games on the screen. The player can move the cursor up and down and select the game they like. Now, I've been thinking about how to communicate between the game and my on-cart MCU - my current thinking is that I could initiate a write command to somewhere in ROM. This would have no effect on anything on the cart for obvious reasons, but it would provide me a way of signalling to the MCU that "the player's selected something!". I could try to write the game number (between, say 1-8) on the data lines and the MCU can then use this to bank switch to the correct ROM and then reset the console.

My question is - what would be the best way to implement this? Do you think I need to decode anything complicated? My thoughts are that since the menu "game" doesn't try to access SRAM at all otherwise, I could simply OR the /WR and /CART lines and use that signal as an interrupt on my MCU which would then immediately read in the value of the data bus when that signal goes low. This interrupt would then be deactivated so that no interrupts are generated during gameplay by the game saving stuff to SRAM. Do you think this would work in principle? I'd just like to gauge people's opinions on this and see if there are any much easier solutions I've missed before bothering to build the hardware and test it.

Cheers :beer:

Post Reply