Code Monkey home page Code Monkey logo

megadrive-reset-mod's Introduction

Megadrive Reset Mod

In-Game Reset mod with region switching feature (language and 50/60 Hz framerate) for SEGA Megadrive/Genesis. Based on Arduino compatible boards. Arduino Pro Mini (ATmega328 or ATmega168) is recommended.

Features

  • In-game reset using player one controller:
    • START + A + B + C - Soft Reset
    • START + A + B + C + DOWN - Hard Reset (if enabled, read below)
  • Region switching using player one controller:
    • START + B + LEFT - Switch to North American region (Blue)
    • START + B + RIGHT - Switch to European region (Red)
    • START + B + UP - Switch to Japanese region (Purple)
    • START + B + DOWN - Switch to Asian region (Green)
  • Only language switching mode (if configured, read below):
    • START + B + LEFT - Switch to English (Red)
    • START + B + RIGHT - Switch to Japanese (Green)
  • Only framerate switching mode (if configured, read below):
    • START + B + UP - Switch to 60 Hz (Red)
    • START + B + DOWN - Switch to 50 Hz (Green)
  • Region switching by keep pushed RESET button to cycle through regions/modes.
  • Last used mode is saving and reused on next power on.
  • Supported only RGB led.
  • Configurable mode switching - only language switching or only 50/60 Hz framerate switching (read below).

Building

Source code can be used by Arduino IDE or can be compiled using avr-toolchain.

Configuration

Program behavior can be configured by defines that can be found in main.c file:

  • ONLY_LANGUAGE_SWITCH - Use only language switching
  • ONLY_FREQUENCY_SWITCH - Use only framerate switching
  • HARD_RESET_ENABLED - Enable Hard Reset on separate pin on Arduino board
  • RGB_LED_ENABLED - Using RGB LED
  • RGB_LED_ANODE - Using RGB LED with common ANODE, else with common CATHODE
  • POLL_BY_MCU_ENABLED - If no pad polling by Megadrive, MCU will poll pad itself (useful if console is halted)
  • ATMEGA_CLONE_USED - Using cloned ATmega MCU (eg LGT328P), it's adding few NOP's to add some delay before reading buttons state in interrupt handler

Note: It's possible need to add few NOP's manually for MCU you using.

Installation

Here is a simplest connection pinout Arduino board to Megadrive board (without illustration):

Arduino Megadrive board
5V <- Pad Port Pin 5 or another +5V source point (VCC)
GND <- GND
(PD2) D2 <- Pad Port Pin 7 (TH, SEL)
(PD3) D3 <- Reset Button Pin/Leg (Reset Input)
(PD4) D4 <- Pad Port Pin 6 (TL, DAT4)
(PD5) D5 <- Pad Port Pin 9 (TR, DAT5)
(PD6) D6 -> Reset Button Point on Board (Soft Reset Output)
(PD7) D7 -> Cart Slot Pin B2 (#MRES, Hard Reset) optional
(PB0) D8 <- Pad Port Pin 1 (DAT0)
(PB1) D9 <- Pad Port Pin 2 (DAT1)
(PB2) D10 <- Pad Port Pin 3 (DAT2)
(PB3) D11 <- Pad Port Pin 4 (DAT3)
(PB4) D12 -- X
(PC0) A0 -> LED Blue optional
(PC1) A1 -> LED Green optional
(PC2) A2 -> LED Red optional
(PC3) A3 -> JP1/2 (Language) and to MultiBIOS Pin 39
(PC4) A4 -> JP3/4 (Video Mode) and to MultiBIOS Pin 38
(PC5) A5 -- X

Pictures will be added soon.

megadrive-reset-mod's People

Contributors

rangerkoc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

dakarjim

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.