Code Monkey home page Code Monkey logo

megadriveplusplus's Introduction

MegaDrive++

MegaDrive++ is a modchip for the Sega Mega Drive (AKA Genesis) with Region switching, 50/60 Hz toggling and In-Game-Reset (IGR) functionalities.

Features

MegaDrive++ has the following features:

  • EUR/USA/JAP mode switching: this effectively makes your console universal, allowing it to bypass region checks and to run all games without resorting to an adapter.
    • If you come from a PAL region, you will also be able to run most games at 60 Hz, which means full-speed and full-screen! Get rid of those black bars! See the difference here!
    • The mod is switchless, so you don't need to modify the aesthetics of your console installing ugly switches, but rather you will be able to change the region:
      • Through the Reset button: Keep pushed to cycle through modes.
      • From the Player 1 controller pad: Press Start + B + Down/Left/Right to set your desired mode.
    • The last used mode is saved automatically after 5 seconds and reused at power up.
    • Supports a single, dual or RGB LED to indicate the current mode.
  • Reset-From-Pad (AKA In-Game-Reset AKA IGR): Press Start + A + B + C.
    • Supports consoles with both active-high and active-low reset signals by autosensing (i.e.: all console revisions!).
  • Uses a cheap Arduino Nano board.
  • Uses the popular Arduino environment, allowing for easy development, testing and modifications.
  • Even though default settings are recommended, everything can be customized to taste.
  • Last but not least, it is Open Source and Free Software!

Branches & Forks

If you were a MegaDrive++ user before May 2019, please note that a few things have changed:

  • The old 6button/lcd_support branch has become the master branch: this is now the recommended version to use and the only supported hardware is the Arduino Nano.
  • The old master branch has become the legacy branch: this is only kept for reference, it is no longer supported and won't get any updates in the future.

See this for the rationale behind this change.

If you are interested in controlling an overclock mod through your controller, please check out this PR and TurBoss's fork.

Installation

If you are interested in modding your console with MegaDrive++, please head to the wiki. There you will find full instructions about what to buy, how to compile MegaDrive++ and how to wire it in a few different Mega Drive/Genesis models that were sold.

License

MegaDrive++ is Copyright © 2015-2019 by SukkoPera.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Support the Project

If you want to support the development of this project, buy me a coffee:

Buy Me a Coffee at ko-fi.com

Thanks

  • D4s/Seb for their work on the original mod that inspired this project.
  • All the users who have contributed testing games or suggesting ideas for improvement.

megadriveplusplus's People

Contributors

okdana avatar sukkopera avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

megadriveplusplus's Issues

video links are all broken

I'd like to get a good overview of the installation, especially the RGB LED to indicate modes. I can't see much about it other than the Pinout showing the normal power LED is for some reason powered by the MCU?

Are the videos available at all?
It's a boxed system so I don't want to be doing and trial and error, just a smooth , trouble free installation along with 3BP

Re-routing pad input.

Hi there,

I'm trying to figure out how to re-route the pad read pins so that they populate D8 to D2 consecutively with the SELECT line on INT1/D3. I can't seem to find how the pins are arranged in the code. Can someone point me in the right direction?

Thanks in advance,
David

Megadrive 1 - JAP VA4 not working

Hi all,

I've acquired a modded MD JAP VA4 with ugly switches and decided to upgrade with MD++. I'm not interested on LED changing colour so I've not touched that part.

Following dragoncity scheme: https://dragoncity17.files.wordpress.com/2015/03/md-jap-va4.jpg:
image

My board had JP3 / JP2 traces cut, so I have reconnected them with 2 wires below the board, then cut JP1 / JP4 traces.

After wiring up a this is what I've got:

image

Arduino powers up, and C button lights up arduino led, which is a good sign, but that's all about it.
Pressing reset button yield no effect (no reset or change language/hz when pressed).

For this reason I'm thinking to have followed a wrong scheme or there is a sort of incompatibility with the reset-in/out on the board.

Anyone have a working scheme of JAP VA4 board?

Cheers
-VincentNL

Sketch cannot compile on Nano Every

Hello

Thanks for the project!

Unfortunately I have a compatibility bug to report.

The sketch cannot compile using the IDE with an Arduino Nano Every board.

The error is in the readpad.S file. "Error: Constant value required" on several lines of code.

If this cannot be fixed I suggest updating readme with a note.

Cheers

MD2 VA3 USA board

Hello, first of all this modification its awesome so many props for this!!

Im interested to modify my MD2 VA3 NTSC console with it, but i see there isnt an specific diagram for it.

Here are some.pictures of the board for reference

IMG_20210510_162717
IMG_20210510_162744

I see some coincidences with the MD2 diagram on the wiki, but the cutting points it seems there are not the same.

Thank you again in advance and im hoping that the mod would be possible on my console :)

Mega Drive 2 install, purple led, reset and controller not working

I've followed the mega drive 2 guide as best I can, it's not super super clear but I've managed to piece it together as far as I know.

When I turn the console on, the RGB led I have wired to the red led, green led and blue led pins with 10R resistors on each, lights up purple (so either red and blue or maybe it's all 3 colours?).

The console runs at 50hz, no button combos do anything, reset button doesn't do anything either. Sonic 3 and Sonic 2 will load the title screen but when trying to actually start the game they reset.

The curious thing is that if I hit the reset button on the Arduino, the led turns off, and the console switches to 60hz for a few seconds before going back to 50hz.

Pressing the C button causes the RX light on the Arduino to light up, but no other buttons do.

I looked through all the other issues and found someone who had the same thing, where their C button would light up the RX, they said it was a faulty board because they used a clone. I was also using a clone so I have now swapped it out with an official Nano, which has had the software uploaded to it as well, and it behaves in the same way - purple led, nothing works, reset on the Arduino switches it to 60hz momentarily, game won't go past the title screen - the only difference being now not even the C button lights up the RX.

What have I messed up? I've never had this many problems with a console mod. If I can work this out I'd be happy to help update the guide to make it more clear.

Sorry about the crappy photos and crappy looking wiring - I've checked continuity on everything and can't find any issues so I assume it's something to do with the actual pin wiring or something with the software.

Some of these photos are the clone and some are the new official board. The wiring was less messy before I replaced the board as I'm just in troubleshooting mode now. Ignore the electrical tape around the resistors, that's just temporary until I get it working.

received_1339340443446241

received_4473497126209131
received_932281431539050

received_387448133916721

received_2746701302165650

received_729503088963618

NTSC Genesis Model 1

Has this been tested on an NTSC Genesis Model 1? If not, should I provide pics of my board?

Buttoncombos not working: NANO USB C clone

I can neither switch the region nor trigger the IGR.
I have checked the wiring several times and it seems to be correct.

The L LED stays on after you press A and goes off again after a "cooldown" the next time you press A.
The same applies to the B button.
The controller inputs do not seem to be read correctly.

If I remove all cables for the controller inputs, switching via the reset button and the reset function no longer work.

Add Sega CD 2 support

This request from vincent sega could be implemented in MD++:

I would like to modify my Mega Drive with an Arduino Nano and in addition i would like to modify my Mega CD 2 with Multibios.
With Sebs Code it is possible to switch the different Bios via Pin8 and Pin10 of PIC16F630.
Is it possible to perform the same with your code?
If yes, which Pins of an Arduino Nano I have to use?

Instructions

You are in need of a Eprom (27c2004) and burn all 3 bios Version into it. The usa, japanese and pal Version. You can select the different Bios Version via A16 (Pin 38) and A17 (Pin 39) of the Eprom.
The order is: USA-> JPN -> EUR.

You can do it by yourself. Take the CD-Bios Versions and make a byteswap each of them.

The concat the 3 Files via Windows Commandline copy

copy /B usa.bin + pal.bin + jpn.bin switchless.bin

The final goal is to get 2 wires from the 16F630 PIC to the Eprom.
Here we make use of 2 wires from the Sega Expansionport.

Pin8 yellow 16F630->Exp Port Pin A01@Genesis 2->Exp. Port Pin A30@SegaCD2->Pin 38Eprom

Pin 10 blue 16F630->Exp Port Pin A30@Genesis 2->Exp. Port Pin A30@SegaCD2->Pin 39Eprom

Pin A01 and A30 of the Expansionsport carrying GND. There are many ground Signals at the Expansionsport. So we can cut these two of and make use of the free Pins for the Bios select.

  PIC 8 /Eprom 38 PIC 10 /Eprom 39
EUR 0 1
JPN 1 0
USA 0 0

Considerations

But if I understand correctly, all you need is two pins that change theire value together with the region, correct? In that case you can easily modify the code, adding a couple of pinMode() and digitalWrite() calls that do what you need. By looking at the Nano pinout I see that D7 and D8 are currently unused, so you can use those pins (or A4/A5 if you moved those over).

Random resets with 8BitDo controller

Ruslan Zakirov reports:

I settled MegaDrivePlusPlus on my own MD2 VA1 PAL and found the
following problems using the controller from 8BITdo. The fact is that
when I press the combination A + start or B + C or A + B + C, this leads
to a reset of the console in any game . But if I use a wired controller,
then there are no such problems.

IC BD M5 PAL logic issue

When I am trying to install on IC BD M5 PAL logic board I cannot find C80? or the trace to cut in the bottom left corner. Any ideas? I can provide more images if you need.

mega drive logic board

The buttoncombos do not work with master system games.

Hello.
Seen in the wiki:

"Does this work with an adapter for Master System games?
No idea. Please report back if you have any information."

With master system games from a flashcart neither the iGR nor the region change from the pad works. But it does work to change the region using the reset button.

Cheers.

6 button controller not working properly on Model 2 Genesis

Years back on my model 1, I installed the Arduino Nano and had no issues with my 6 button controller. I was able to use all buttons with no issue, even my 32x games functioned properly. My main attraction to this mod was the in-game-reset, which worked perfectly on my model 1/32x combo.

Now I've been out of the scene for this mod for some years, and I reinstalled my board into a model 2 genesis, and used the latest wiring diagram for the arduino nano, and obtained the most recent files, the mega++ & the readme file. Everything flashed correctly, but I'm running into issues in regards using an official wired 6 button controller.

The C button (using Sonic 1 as an example) works very poorly. Sonic doesn't even do a full jump. My start button doesn't seem to respond quickly. And with some 32x titles, I experience the same issue with my C button. But, using my original 3 button controller, everything is fine, buttons all operate the way they are supposed to.

So my question is, am I flashing the wrong files, and soldering incorrectly? Plesse help, cause this mod was PERFECT for me years ago, and I'm disappointed with the results I'm getting now with my model 2 genesis 6 button. [email protected]

Something wrong??

Hi. I've installed this in my Mega Drive 2 with an Arduino Nano, verified all the connections were correct with a multimeter, but when I turn the console on, it seems to be locked in 60hz mode, the reset button does absolutely nothing at all, the START+DOWN combination changed the colour of the LED from green, to blue, to red, and back to green, and that's all it does. Even changing the mode and then turning the console off and on changes nothing. I find it weird the button combination is different to what it's supposed to be, and as I said, nothing at all changes on the screen. Would appreciate any insight.

PC BD MD2 VA1.8 JAP (NTSC Japan)

Hello,
I have been working on a Japanese MD2 model.
It came without the power led but the rear panel has a hole that suits a 5mm Common-Cathode Red-Green LED for the purpose.
I have used 220-ohm resistors in series to each anode considering my Arduino is supplied by 4.8V.
The test points and arrangement are shown in the following attachments.

SSL-LX5097IGW.pdf

WhatsApp Image 2022-03-10 at 21 27 36
WhatsApp Image 2022-03-10 at 21 27 35 (1)
WhatsApp Image 2022-03-10 at 21 27 35 (2)
WhatsApp Image 2022-03-10 at 21 27 35 (3)
WhatsApp Image 2022-03-10 at 21 27 35 (4)
WhatsApp Image 2022-03-10 at 21 27 35
WhatsApp Image 2022-03-10 at 21 27 36 (1)
WhatsApp Image 2022-03-10 at 21 27 36 (2)
WhatsApp Image 2022-03-10 at 21 27 36 (3)
WhatsApp Image 2022-03-10 at 21 27 36 (4)
WhatsApp Image 2022-03-10 at 21 27 36 (5)
WhatsApp Image 2022-03-10 at 21 27 36 (6)

Delayed mode switch

PAL user are often exposed to this problem: game refuses to boot in 60Hz, and freeze the controller so you have to turn the console On and Off, etc. Just for testing games, it' not that boring, but if you want to really play a game for many times, doing this each time could upset.

This idea comes from the SNES's uIGR board from borti.

The goal would be to set an "Auto mode" that would boot in 50Hz, wait for a while for the game booting, then auto switch to 60Hz (i don't think the other way, booting 50 then 60, would be useful for anyone but...)

Parameters could be set by user in the Arduino sketch : refresh at boot, delay, final refresh.
This "Auto mode" could be set with the "Start + B + Up" combo.

(Original idea by MoockyLoock)

Port to Sega Saturn

The switchless mods on the Mega Drive and Saturn are basically the same, as the original D4s/Seb mod works with both with exactly the same code and the same PIC. Although, While it sounds simple enough, the Saturn controller protocol is not compatibile with the Mega Drive's, so some porting is needed.

Controller Protocol Reference: http://www.gamesx.com/controldata/saturn.htm

Using an ATtiny88-based Nano clone?

Hello All!
I have a bunch of MH-ET Tiny88 boards and would like to be able to use it in a Japanese VA4 Model 1 Mega Drive. The board does not have a labeled TX and RX port. Comparing the two pinouts, the RX pin on the Nano is also D0/PD0. On the MH-ET board D0/PD0 is on Pin0 and is also labeled LED. I wired up the board as described above using the Pin0 as "Pad Port Pin 9". Everything works but the joypad. The IGR and region switch does nothing. The reset button, language, and video change as they should and the RGB LED changes color respectively.

Has anyone been able to successfully used one of these clone boards before? If so, where does the Pad Port Pin 9 need to be connected on the board?

Here is a pinout of the MH-ET board:
MH-ATTiny88

pinout on the drawings is wrong? TX RX swapped

hello

acording to docs tx and rx pins are swapped in the drawins on the wiki

https://github.com/SukkoPera/MegaDrivePlusPlus/wiki/Chip-Preparation#wiring

                                 +-----+
                    +------------| USB |------------+
                    |            +-----+            |
     (Built-in LED) | [ ]D13/SCK        MISO/D12[ ] |
                    | [ ]3.3V           MOSI/D11[X]~| [LED Blue]
                    | [ ]V.ref     ___    SS/D10[X]~| [LED Green]
          Reset Out | [X]A0       / N \       D9[X]~| [LED Red]
           Reset In | [X]A1      /  A  \      D8[X] | [Single Pin Led]
 JP3/4 (Video Mode) | [X]A2      \  N  /      D7[X] | Pad Port Pin 1
   JP1/2 (Language) | [X]A3       \_0_/       D6[X]~| Pad Port Pin 2
          [LCD SDA] | [X]A4/SDA               D5[X]~| Pad Port Pin 3
          [LCD SCL] | [X]A5/SCL               D4[X] | Pad Port Pin 4
                    | [ ]A6              INT1/D3[X]~| Pad Port Pin 6
                    | [ ]A7              INT0/D2[X] | Pad Port Pin 7
                +5V | [X]5V                  GND[X] | GND
                    | [ ]RST                 RST[ ] |
                    | [ ]GND   5V MOSI GND   RX0[X] | Pad Port Pin 9
                    | [ ]Vin   [ ] [ ] [ ]   TX1[ ] |
                    |          [ ] [ ] [ ]          |
                    |          MISO SCK RST         |
                    | NANO-V3                       |
                    +-------------------------------+

thanks

Pinout for IC M5 USA VA2

Hello I would to know if someone could help me with the pinout on an IC M5 USA VA2 board. Thank You
MD1VA2Top
MD1VA2Bottom
Uploading MD1VA2Top.jpg…

Problems with IGR and mode switch using 8bitdo m30 wireless 2.4 gamepad

I installed this mod today and found that it only works through the reset button on the console and does not work with the gamepad 8bitdo m30 wireless 2.4.
2 more people from the official telegram forum of this project faced this problem (nicknames in telegram @fanaras @TurBoss and me @DzmitryArabei)
Can this be fixed in the project's readpad.S file or something else?

Please help!

Help troubleshooting please?

Hello. I have followed the instructions, checked and double checked my connections but it just wont work for me.

The reset button does not change the LED.
My controller does not change the LED.
When I press the "C" button on the pad, the "rx" LED lights up on the nano.

How can I go about finding the fault?
I have the IC BD M5 PAL VA4

I must have done something wrong but I cant figure out what.

Chris.

EDIT: Using this pinout

                                   +-----+
                      +------------| USB |------------+
                      |            +-----+            |
       (Built-in LED) | [ ]D13/SCK        MISO/D12[ ] |
                      | [ ]3.3V           MOSI/D11[X]~| [LED Blue]
                      | [ ]V.ref     ___    SS/D10[X]~| [LED Green]
            Reset Out | [X]A0       / N \       D9[X]~| [LED Red]
             Reset In | [X]A1      /  A  \      D8[X] | [Single Pin Led]
   JP3/4 (Video Mode) | [X]A2      \  N  /      D7[X] | Pad Port Pin 1 brown
     JP1/2 (Language) | [X]A3       \_0_/       D6[X]~| Pad Port Pin 2 red
            [LCD SDA] | [X]A4/SDA               D5[X]~| Pad Port Pin 3 orange
            [LCD SCL] | [X]A5/SCL               D4[X] | Pad Port Pin 4 yellow
                      | [ ]A6              INT1/D3[X]~| Pad Port Pin 6 grey
                      | [ ]A7              INT0/D2[X] | Pad Port Pin 7 white
                  +5V | [X]5V                  GND[X] | GND
                      | [ ]RST                 RST[ ] |
                      | [ ]GND   5V MOSI GND   TX1[ ] |
                      | [ ]Vin   [ ] [ ] [ ]   RX0[X] | Pad Port Pin 9 black
                      |          [ ] [ ] [ ]          |
                      |          MISO SCK RST         |
                      | NANO-V3                       |
                      +-------------------------------+

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.