Just tested again, and I do measure 5v between the 5V and GND on the nano itself. Continuity is fine between GND on nano and GND elsewhere on the Megadrive board.
Mmmh, I can't really understand what is going on. If you have another Nano, I guess we can try it, at this point. I've run out of ideas .
No worries! All your assistance is much appreciated! =) I've gone ahead and ordered another. I'll report back in about a week or two when it arrives for testing.
Sorry, didn't see the message before. They both start fine. The system seems to be stuck between a NA and JP mode. The Sonic games played fine, but Ecco craps out when it's in JP mode and you reset. But until reset is pressed (button or IGR), it runs fine. If it'd help, I can take a short video demonstrating exactly what happens. New nano should be here in a week or two. Hoping that fixes the problem.
Just a quick question. I have one of those 16x2 I2C LCD displays laying around, is it possible to reroute the output from the serial monitor to the LCD?
Got the new nano, but still no luck. Gonna try and take it over to a friend's place in a week or two and hook it up to a scope he has, see if we can figure out the problem. Will report back then!
I'm sorry to hear that . Just for information, are you sure you are using the code from the sixbutton branch and the connections I gave in an earlier post? Also does it still work fine if you hook it up to the PC on USB? I could add support for the LCD, it's not there at the moment, but I'm not really sure it'd be much useful, since a ton of stuff gets printed and 2 lines wouldn't allow you to see much.
I've tried to do myself, but it just kinda worked. The serial output is a really nice feature, especially when using a Nano with USB Port. But adding a USB Port to the case, just to hook up a computer is a bit overkill. The I2C LCD's on the other hand are dirt cheap and you could fit them on the case, with some modifications, pretty easy. They won't need to display all of the serial output, just shortened lines of relevant events, like "Startup", "Reset", "US REGION 60Hz" , "EUR REGION 50Hz" i.e. ... There are already libraries for those 2 wire I2C LCD's . If you think it's doable, I have the setup still on a breadboard, for testing.
So, let me see if I understand correctly: you want to fit one of these on your MD's case? Well, that could certainly be done, but it looks a bit... horrible to me . Or did you mean one of these tiny 0.96" OLEDs? Anyway they're both pretty easy to add, there's a library supporting both. I will have a go at it ASAP.
No, I had the 16x2 LCD in mind, but simply because I've thought the little OLEDs are harder to implement and to actually see from normal distance (when setting the console via controller IGR) , they're more for handheld devices and stuff . On the other hand, since space is a commodity in these consoles, they would be easier to fit. I don't know how much more effort this would be? They're graphic displays and you would have to wiggle with fonts, sizes and icons etc. I'll be testing the nano with your code on a Sega Saturn in the next days, from what I've read it should work.
Ok, I see your point. As I said there's a library supporting both displays, so everyone will be able to choose the one they prefer. This will only happen on the 6button branch though, and I will have to move some pin assignments in order to free A4 and A5 (which are the Arduino hardware i2c pins). Since A0 and A1 are currently free, I will just shift A2-A5 to A0-A3. I'm not sure MD++ works on a Saturn. I think someone reported it does, but I'm not familiar at all with that console. Never even seen one in real life, as far as I can remember. It was never popular here in Italy. It has always been a PlayStation-dominated country until the XBox 360 came out and gained its own share.
Yeah, definitely using the 6 button branch. And with the cinnections shown a few pages back. When friend and I hooked it up to a scope, we found this: During boot up, the nano defaults to EUR setting until the settings stored in eeprom are set. This causes all games to start in euro mode. We could see it start, and then briefly later it sets to the stored region. It's just enough delay for a U.S. game to start. The problem doesn't occur on USB power because the nano is already booted before turning on the Mega Drive's power.
Nice find, although that shouldn't happen. MD++ holds the reset signal while it is initializing and only releases it after the desired mode has been set. Maybe it is not detecting the correct reset level? Could you please try enabling FORCE_RESET_ACTIVE_LEVEL? Try to set it low and then high, if it still doesn't work.
Set it to LOW, and when Ecco (US) was inserted, it would start ok in US mode. But when in JP mode, sound would start then immediately freeze and show a garbled region lock screen. So it seems to switch the region quicker than before. With Virtua Racing (JP) in JP mode it would show the region lock screen, then immediately there'd be a screen flash like it was resetting, and again region lock screen. When set to HIGH, it's back to the old behavior I started with. I have an RGB LED now I can hook up if you think it might help with debugging on my end.
So, I have done a quick hack to add LCD support on a separate branch. Some caveats, please read carefully before updating: THE WIRING HAS CHANGED (Again, I know)! A2/3/4/5 have been moved to A0/1/2/3, so just move all wires 2 pins down. Single led pin has been moved to pin 8. Please see the updated wiring diagram at the top of the sketch. To enable LCD support, please uncomment ENABLE_LCD. LCD support uses the New LiquidCrystal library, get it here: https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home. I have a feeling that it will also work with the standard LiquidCrystal library, if you change the LCD initializiation line, see next point. LCD initialization is at line 223 and works for MY display, YMMV. I would suggest to first get your LCD working with the examples from the library you want to use, and then replace that line with the one that works for you. This page might help with weird displays (such as mine): https://arduino-info.wikispaces.com/LCD-Blue-I2C. I have kept info on the LCD to 16x2, since the smallest displays I know of are this size. It's enough to understand what's going on. It will show the Reset line level, the current mode and all detected keypresses. It will also show some status messages. Check it out at https://github.com/SukkoPera/MegaDrivePlusPlus/tree/lcd_support. @Stupid Dufus: That branch also contains a change that might fix your issue, so please test it!