Offline
Chicago IL

I mean the only way to know for sure that it's working (as far as I know) is to connect the arduino unit, turn it on, and see if you get the SMS start up sound.

Also, the licensed by sega stuff (if it's like the Genesis/Mega Drive), is part of the BIOS. It looks for a specific line of data in the ROM, and when that comes back, it displays the licensed by message. There was a lawsuit over it with Accolade back in the day.

Wikipedia wrote:

n October 1991, Accolade was served with a lawsuit regarding copyright infringement, that eventually led to the concept of reverse engineering for interoperability purposes. Sega wanted to keep a hold on their consoles, and wanted all its games exclusive to Sega. Unwilling to conform to single platform games, Accolade engineers reverse engineered the Sega Genesis console and created their own development systems; until then, game developers had to obtain the systems from Sega in order to develop games for the platform. Sega sued Accolade over the practice and won an initial injunction, forcing Accolade to remove all Genesis product from store shelves. Accolade, however, won on appeal and reached an out of court settlement with Sega that allowed Accolade to continue building their own Genesis cartridges, but as an official licensee.

That quote wasn't even what I thought i was copy pasting, there's more about it on wikipedia (didn't realize it had it's own page).

Last edited by Saskrotch (Mar 16, 2013 6:35 am)

Offline
Jelly Stone park, MD USA

Yes, good point, but I'm still using all stock carts at this point, so it should run the SMS games, no problem. The most likely answer is that the /GG mode contact, pin 42, is not tied to Vcc to set SMS mode.

As to the Lic screen, there may well be some boot code within the ASIC chip. just don't know. But going by the simplicity of LittleScale's code and the fact that it works without any code checking, I'm assuming that the 'Lic' message is within the game's init code.


Very interesting link; talking about the exact same text as I'm seeing. Although, the Genny is quite a step up compared to the GG; so the copy protection mech could be specific to it.

Offline
Chicago IL

Oh, okay, I didn't realize that none of the SMS games were working.

Offline
Jelly Stone park, MD USA

Yea, that was part of the problem I was having at first, Just having one SMS cart and the one GameGear, you just can't narrow things down . No "known good" so to speak.
Of course there still is a possibility that I have 2 bad SMS Carts, but the odds are against that

Offline
Belgium

Nice!

Offline
Seattle, WA

Yo Seb, could you point me in the direction I need to head to get this working with a Teensy 2.0? I have a couple and I'd like to use one for this project but I suspect the pins are a little different from what's written in your code. I could go line by line but I thought you might have a better option. Thanks for this killer work. I'm super stoked to be using my SMS for music now!

Offline
Jelly Stone park, MD USA
athleos wrote:

Yo Seb, could you point me in the direction I need to head to get this working with a Teensy 2.0? I have a couple and I'd like to use one for this project but I suspect the pins are a little different from what's written in your code. I could go line by line but I thought you might have a better option. Thanks for this killer work. I'm super stoked to be using my SMS for music now!

Don'y want to speak for Seb, but just thought I'd point out that, as you may know already, you need to install the Tennsyduino extention to the IDE @ http://www.pjrc.com/teensy/teensyduino.html
From there, within the SMS sketch, the Setup() function may need some attention. I think the PortC writes are fine (looks like bit-wise DigitalPins are accessed different on the Teensy, but should not be a problem with byte-wide accesses). EDIT- writeSN76489(byte data) looks like the function that strobes the SMS game port pins. May need some TLC for the access of the control pins-EDIT
Also the Teensy uses the native USB for all serial R/Ws (all transfers at full USB speed regardless of the baud rate), unless you expressly use the on chip UART. So if you want to use the direct USB connection you should be good to go ( think you may have to assign the USB port as 'USBMidi' in the IDE, see PJRC page) but if you want a real midi connection you need to add a UART routine. You may take a look at Sebs' GenMDM sketch for a comparison. EDIT-GenMDM is not open, but his A26F Teensy sketch is-EDIT
Aside from that I think the rest of the sketch should run fine. I haven't dug too deep into it and hope I'm not talk'n out my arse wink

Last edited by yogi (Apr 16, 2013 3:42 pm)

Offline
Jelly Stone park, MD USA

Hey athleos, after doing more reading on PJRC site, what I wrote about pinMode() and digitalWrite() functions above is wrong. Only applies for WinAVR C, but with the Teensyduino extension, pinMode() and digitalWrite() are supported bit-wise.

Offline
Seattle, WA

Hey Yogi,

Thanks for your replies. I ended up breadboarding a minimal arduino uno circuit and went from there. Much easier than editing a bunch of code that I didn't write! Thanks again!

Offline
Jelly Stone park, MD USA

Cool. A breadboard 'Duino is very cost effective and not too hard to knock together.

Offline
Chicago IL

I made a more permanent version of the board with one of these

It's really easy and I'm terrible at everything. I didn't take pictures or anything though, sorry!

But all I did was take the pin headers, break them into sections of 3, 4 and 1. Then, placed them into the Uno. The single pin header goes into the ground, the 3 pin header goes to Digital 2-4, and the 4 pin header goes to Analog 0-3.

Then I just laid the ProtoShield on top, and soldered the wires from the Genesis controller to where they need to go.

The other nice thing about this is, while it's more permanent (for travel to shows and such), You can just lift the ProtoShield off of the Arduino if you want to use it for something else.

Offline
Jelly Stone park, MD USA
Saskrotch wrote:

...The other nice thing about this is, while it's more permanent (for travel to shows and such), You can just lift the ProtoShield off of the Arduino if you want to use it for something else.

Nice! Yea, no major changes to the Arduino. And like you say, 'more permanent'. I'll be building up a protoboard Arduino soon; just cause I'm cheap and don't already have one on-hand.
Finally got the GameGear sorted out, got a diff SMS-to-GG adaptor. The first one was brand new but defective, think it is the size of the plastic casing. Too thick, not mating right with the GG's cart connector. My 'new' old one slides in much nicer, still snug but don't need to force it too hard like the first one.
So now on to re-chipping a cart!

Offline

Howdy folks, first off, this is an awesome project and for years I've wanted to make music on a master system.  The sound chip has a very special sound!  I was very excited to discover this project and I've purchased everything I need.  I'm wondering if anyone else here has gotten this to work here in North America yet?
I've managed to find someone to burn me the EPROM on the correct chip and I assembled everything last night.  I used the cart for Rescue Mission since it has the 717-5519D revision board, but can't seem to get the cart passed the master system splash screen.  I can pop the game rom back into the socket and it works, so I can confirm my soldering is fine.
Is it important that the Arduino connection is in there to work?  I'm not sure if it is actually making proper contact since I had to use a computer DB9 connector and the connection is very loose.  I tried splicing a controller but discovered that it does not have a wire for pin 7 at all, apparently this is only for the light phaser. Also discovered that the Arduino IDE latest version won't send the code to the Arduino, it finds errors but if I use the old version 1 IDE is appears to work.

Anyways, if anyone has any suggestions and could help I would greatly appreciate it, I'd love to get this working and start experimenting with some sounds!

Offline
Jelly Stone park, MD USA

Hi Zausz
  If the cart works with the original PROM but not with the EPROM that's where I'd look first. Make sure the code is burned correct; sounds like you don't have an EPROM tool so you'll need some help from someone in your area(?). Then re check the pin mapping. I'm not sure about your cart; but Sega had some carts with a external bank mapper chip and others with the mapper built into the PROM. SMSPower.org has some docs that may help with sorting the cart out.
  Another thing to keep in mind is there is no video output but there is a boot-up sound played. I don't think having the Arduino unattached will 'crash' the code but once booted you wouldn't have any signs of life, just a blank screen; with no input from the Arduino, you can't send a midi note to hear anything. So it could seem like it's crashed.
  If this is the case check the Arduino setup. You should be alright with the DB9, Littlescale used them with his GenMDM board. In fact even with the Arduino interface connected, if you have a problem with the Midi input the Master Sys may seem dead too.You could try setting up a simple circuit with a LED and resister (if you can get hold of a Logic Probe that would be best) to check the output pins while sending notes, to verify the Arduino.
Hope this helps
Yogi

Offline

Hi Yogi thanks for the info.  Yea, I had to outsource the burning to a guy about 5 hours from me, he is going to reburn one for me and we'll try that.

Regarding the 'bank mapper', i don't know much (or anything really) about eproms but from what i've read here I assume that the codes are written in blocks and the mapper looks up which block to load or something like that.  In that case, I assume having the external chip for the mapper would cause problems and not work, the one to avoid.  I can say the pcb i used has only the spot from the eprom and one electro and one ceramic cap, according to the blog this is the one you need.
I do have a logic probe anyway, never used it yet but should be simple enough. 
So anyway, are you saying that even if there is nothing plugged into the master system in the game port I should still hear the new startup sound?  All I hear is the standard sega startup and then it just hangs on that screen.

Offline
Jelly Stone park, MD USA
ZAIUSZ wrote:

Hi Yogi thanks for the info.  Yea, I had to outsource the burning to a guy about 5 hours from me, he is going to reburn one for me and we'll try that.

Oh good, are you using the 27C256 EPROM? If you need another let me know. It wasn't clear but are you using a Master sys or a Game Gear with converter?

Regarding the 'bank mapper', i don't know much (or anything really) about eproms but from what i've read here I assume that the codes are written in blocks and the mapper looks up which block to load or something like that.  In that case, I assume having the external chip for the mapper would cause problems and not work, the one to avoid.  I can say the pcb i used has only the spot from the eprom and one electro and one ceramic cap, according to the blog this is the one you need.

Yes the single chip board is the one to get, but it has to be a 28pin ROM. If you have a 171-5519 board you should be good, but double check the pin count. Even though LS listed "World Grand Prix" I have one with a newer board that has a second mapper chip; I don't know if it's a improved larger version of the game or they just used a more complex board because they were on hand.
  The 27C256 is a standard 28pin 32KByte x 8 memory, some of the Sega games used more then 32K and switched in banks as needed. So an additional circuit is used to decode the command to switch; more often it's an external chip but Sega also designed a PROM with it built in, very custom 32pin PROM.

I do have a logic probe anyway, never used it yet but should be simple enough.

Good, I would test the Arduino by watching the output pins while you are sending Midi, the interface doesn't have to be hooked to the SM. This will help verify some of the setup, but the code in the Arduino could be foobar for some reason or the USB Midi connection is sending bad data; so not 100% but should prove some communications is working.

So anyway, are you saying that even if there is nothing plugged into the master system in the game port I should still hear the new startup sound?  All I hear is the standard sega startup and then it just hangs on that screen.

OK with it hanging on the splash screen it really looks like a EPROM issue. The screen should go blank and you would hear http://little-scale.com/SMSM/SMSM_100/S … tartup.wav
The startup sound is part of the Init code and will run before any port reads happen, kind of a self test. If that isn't happening then for some reason the code isn't running. The cart works with the original ROM so unless there is something very weird with the board you can assume the cart is good and the EPROM is not.
Yogi