Goplanes and the TMSS

Ask anything your want about Megadrive/Genesis programming.

Moderator: BigEvilCorporation

Post Reply
djcouchycouch
Very interested
Posts: 710
Joined: Sat Feb 18, 2012 2:44 am

Goplanes and the TMSS

Post by djcouchycouch »

Hi,

Goplanes shows the "Produced by or under licence blah blah" message on start up. Since obviously Goplanes is not licensed, what should I do with that message? What have other published homebrew games like Pier Solar have done?

Thanks!
DJCC
TmEE co.(TM)
Very interested
Posts: 2452
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) »

The message remains. It could be bypassed with some changes in cartridge + code though.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
djcouchycouch
Very interested
Posts: 710
Joined: Sat Feb 18, 2012 2:44 am

Post by djcouchycouch »

Can it be easily bypassed? How would that work?

Has Sega ever said anything about homebrew productions?
TmEE co.(TM)
Very interested
Posts: 2452
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) »

You can do anything you want as long as you dont use their trademarks.

As for cart you need to add your own adress decoder and on software side you got to disable TMSS ROM by doing a register write to avoid a bus conflict.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
djcouchycouch
Very interested
Posts: 710
Joined: Sat Feb 18, 2012 2:44 am

Post by djcouchycouch »

TmEE co.(TM) wrote:As for cart you need to add your own adress decoder and on software side you got to disable TMSS ROM by doing a register write to avoid a bus conflict.
So it should be straightfoward to add to the SGDK?
Mask of Destiny
Very interested
Posts: 629
Joined: Thu Nov 30, 2006 6:30 am

Re: Goplanes and the TMSS

Post by Mask of Destiny »

djcouchycouch wrote:Hi,

Goplanes shows the "Produced by or under licence blah blah" message on start up. Since obviously Goplanes is not licensed, what should I do with that message? What have other published homebrew games like Pier Solar have done?

Thanks!
DJCC
The court system has ruled that Sega can't abuse the trademark system to enforce the "Produced by or under license" text. I wouldn't worry about it unless it bothers you for aesthetic reasons.
Chilly Willy
Very interested
Posts: 2994
Joined: Fri Aug 17, 2007 9:33 pm

Post by Chilly Willy »

djcouchycouch wrote:
TmEE co.(TM) wrote:As for cart you need to add your own adress decoder and on software side you got to disable TMSS ROM by doing a register write to avoid a bus conflict.
So it should be straightfoward to add to the SGDK?
No, it isn't. Didn't you read the part about requiring extra hardware on the cart as well as software?

As MoD said, don't worry about it. The initial screen from the TMSS bios is not legally enforceable.
djcouchycouch
Very interested
Posts: 710
Joined: Sat Feb 18, 2012 2:44 am

Post by djcouchycouch »

Chilly Willy wrote:No, it isn't. Didn't you read the part about requiring extra hardware on the cart as well as software?
Apparently not!
doragasu
Very interested
Posts: 125
Joined: Tue Oct 09, 2012 8:15 am

Post by doragasu »

I'm intrigued. What extra hardware would you need to add? Maybe not shorting the CART_IN signal and something else?
Chilly Willy
Very interested
Posts: 2994
Joined: Fri Aug 17, 2007 9:33 pm

Post by Chilly Willy »

Correct me if I'm wrong, but it's my understanding that failing the TMSS causes DTACK not to be asserted on accesses to hardware, which means the 68000 hangs. So it would seem the solution would be to generate your own DTACK signal.
HardWareMan
Very interested
Posts: 753
Joined: Sat Dec 15, 2007 7:49 am

Post by HardWareMan »

I think it's not about how to run the program without unlocking the VDP as it well known, but how to make TMMS not show this banner. If you put the keyword SEGA at 100 - TMMS will show banner and go to the program, if you do not put - the banner will not be shown but the program will not run too because TMMS hangs/loops.
A possible solution to the problem is a hardware write to TMMS register for disable its ROM before M68K fetch the start vector, and it requires a detailed study of initialize cycles of M68K and hardware, because reset by itself activates the TMMS. Good challenge, but without the help of the additional hardware is seems to not solved. And this is its essence - do not allow illegal code to run.
Charles MacDonald
Very interested
Posts: 292
Joined: Sat Apr 21, 2007 1:14 am

Post by Charles MacDonald »

Chilly Willy wrote:Correct me if I'm wrong, but it's my understanding that failing the TMSS causes DTACK not to be asserted on accesses to hardware, which means the 68000 hangs. So it would seem the solution would be to generate your own DTACK signal.
The trick is that when $A14000 != "SEGA", the bus controller chip never strobes /VDPM (chip select) for $C00000-$DFFFFF. When you touch that area the VDP won't respond with DTACK and the system locks up. You could fake the DTACK response; but the VDP still wouldn't react to any reads or writes. :(

But as long as an application never uses the VDP it will still run correctly. I guess you could connect a LCD display to a controller port as a crude work-around. :D
Chilly Willy
Very interested
Posts: 2994
Joined: Fri Aug 17, 2007 9:33 pm

Post by Chilly Willy »

Charles MacDonald wrote:
Chilly Willy wrote:Correct me if I'm wrong, but it's my understanding that failing the TMSS causes DTACK not to be asserted on accesses to hardware, which means the 68000 hangs. So it would seem the solution would be to generate your own DTACK signal.
The trick is that when $A14000 != "SEGA", the bus controller chip never strobes /VDPM (chip select) for $C00000-$DFFFFF. When you touch that area the VDP won't respond with DTACK and the system locks up. You could fake the DTACK response; but the VDP still wouldn't react to any reads or writes. :(

But as long as an application never uses the VDP it will still run correctly. I guess you could connect a LCD display to a controller port as a crude work-around. :D
Ah - thanks for explaining that. That explains why the first thing the standard Genesis startup code does after setting the TMSS reg is read the VDP.
TmEE co.(TM)
Very interested
Posts: 2452
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) »

Solution :

Make the cart forcibly put out data on 000000-3FFFFF accesses, it will cause a bus fight with TMSS so the first thing you do in your ROM is write the mädzik TMSS disable register and rest is smooth sailing.

Alternatively you can do all before but with !CartIn high, then you get a bus fight with MCD BIOS when present but my experiments show it in not a big deal (series resistors and stuff on MCD side), you could also have a register which puts !CartIn back low too, then you can deal with WCD side too if you wish and 32X side should have no complaints either.

Some pirate games got MCUs which force some bits on the databus to break out of TMSS right into cart space.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
Post Reply