Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - SEGA 3D Glases

Reply to topic
Author Message
Leonard Silva de Oliveira
  • Guest
Reply with quote
SEGA 3D Glases
Post Posted: Thu Aug 31, 2000 3:57 am



I'd just hacked in whole the SEGA 3D Glases this Tuesday ...
If anyone has interest in it, just look the picture and read this :

------------
Wednesday, August 30 2000

Description of the SMS 3D Glases

Actually the SEGA 3D glasses in the master system is simply a
one bit memory latch hard-wired to the memory address FFF8h
in the Z80 bus. It's connected in a such whay it can be adressed
and written regardless any "slot" (connector) setting made to the
port 3Eh.

The whole thing looks like this :


Address : FFF8h

Bit 0

76543210
XXXXXXXD

Where

D=0 then the left LCD will be kept dark.
D=1 then the right LCD will be kept dark.

OBS.: The glasses status on power up is unknown. Since it's a write only
2 state/1bit memory latch, I don't think it's important, just write a known
value to it at the startup, or write to it when you start the 3D effect.
If you intent to read the 3D glass register from RAM,keep in mind that the
real glases status is unknown until you write to it. Also don't forget
that FFF8h memory is mirrored in DFF8H.

I don't think I have to explain how the 3D effect work ... ;)


This is a sample code :


;Simple Z80 machine code to switch the LCD status at NMI (pause button)
;Made in 30/08/2000 by Leonard Silva de Oliveira
;Suitable for a real SMS machine and 3D glases.

000066 F5 PUSH AF ; Save AF pair
000067 3A F8 FF LD A,(FFF8H) ; Get LCD status from RAM
00006A C6 01 ADD 01h ; LSB +1
00006C 32 F8 FF LD (FFF8h),A ; Write to the glasses and RAM
00006F F1 POP AF ; Restore AF pair
000070 ED 45 RETN ; Return from NMI


This code will swap the dark LCD in a real SMS each time you press the pause button.


Have fun with your 3D glases !


Greetings from Brazil to all SMS fans and programmers ...

Leonard Silva de Oliveira
-------------
 
vecna
  • Guest
Reply with quote
Hot damn!
Post Posted: Thu Aug 31, 2000 2:15 pm
Quote
> I'd just hacked in whole the SEGA 3D Glases this Tuesday ...
> If anyone has interest in it, just look the picture and read this :

> ------------
> Wednesday, August 30 2000

> Description of the SMS 3D Glases

> Actually the SEGA 3D glasses in the master system is simply a
> one bit memory latch hard-wired to the memory address FFF8h
> in the Z80 bus. It's connected in a such whay it can be adressed
> and written regardless any "slot" (connector) setting made to the
> port 3Eh.

> The whole thing looks like this :

>
> Address : FFF8h

> Bit 0

> 76543210
> XXXXXXXD

> Where

> D=0 then the left LCD will be kept dark.
> D=1 then the right LCD will be kept dark.

> OBS.: The glasses status on power up is unknown. Since it's a write only
> 2 state/1bit memory latch, I don't think it's important, just write a known
> value to it at the startup, or write to it when you start the 3D effect.
> If you intent to read the 3D glass register from RAM,keep in mind that the
> real glases status is unknown until you write to it. Also don't forget
> that FFF8h memory is mirrored in DFF8H.

> I don't think I have to explain how the 3D effect work ... ;)

>
> This is a sample code :

>
> ;Simple Z80 machine code to switch the LCD status at NMI (pause button)
> ;Made in 30/08/2000 by Leonard Silva de Oliveira
> ;Suitable for a real SMS machine and 3D glases.

> 000066 F5 PUSH AF ; Save AF pair
> 000067 3A F8 FF LD A,(FFF8H) ; Get LCD status from RAM
> 00006A C6 01 ADD 01h ; LSB +1
> 00006C 32 F8 FF LD (FFF8h),A ; Write to the glasses and RAM
> 00006F F1 POP AF ; Restore AF pair
> 000070 ED 45 RETN ; Return from NMI

>
> This code will swap the dark LCD in a real SMS each time you press the pause button.

>
> Have fun with your 3D glases !

>
> Greetings from Brazil to all SMS fans and programmers ...

> Leonard Silva de Oliveira
> -------------
 
  • Joined: 24 Jun 1999
  • Posts: 1732
  • Location: Paris, France
Reply with quote
Post Posted: Fri Sep 01, 2000 6:51 am
Thanks a bunch for the informations!
I was actually those days wondering how switching frames could be done
(tried various hacks like computing the average X position of sprites, hehe :)

It's amazing what hardware hackers can do.
  View user's profile Send private message Visit poster's website
  • Joined: 12 Jul 2005
  • Posts: 55
Reply with quote
Post Posted: Fri Sep 01, 2000 11:32 pm
Quote
> Thanks a bunch for the informations!
> I was actually those days wondering how switching frames could be done
> (tried various hacks like computing the average X position of sprites, hehe :)

> It's amazing what hardware hackers can do.

Well... It's now just a matter of time until the 3D effect is properly emulated by all SMS emulators. =)
I'm going to make a 3D adaptor for LPT port. May you implement support for it in Meka ?

Cya ...
  View user's profile Send private message
  • Joined: 24 Jun 1999
  • Posts: 1732
  • Location: Paris, France
Reply with quote
Post Posted: Sat Sep 02, 2000 10:35 am
Quote
> Well... It's now just a matter of time until the 3D effect is properly emulated by all SMS emulators. =)
> I'm going to make a 3D adaptor for LPT port. May you implement support for it in Meka ?

Yes I will. Actually I was just waiting for Mike to send me a 3D Adapter for Serial port to do that =)
Stay tuned.

(No hurry, Mike ;)
  View user's profile Send private message Visit poster's website
  • Joined: 24 Jun 1999
  • Posts: 1732
  • Location: Paris, France
Reply with quote
By the way - there is a bug in your infos ;-)
Post Posted: Sat Sep 02, 2000 4:51 pm
After disassembling a few games, I noticed the right address is 0xFFFB and not 0xFFF8.
Was it a typo of your part, of you are sure the exemple code worked with 0xFFF8 ?
  View user's profile Send private message Visit poster's website
  • Joined: 12 Jul 2005
  • Posts: 55
Reply with quote
Re: By the way - there is a bug in your infos ;-)
Post Posted: Sat Sep 02, 2000 8:03 pm
Quote
> After disassembling a few games, I noticed the right address is 0xFFFB and not 0xFFF8.
> Was it a typo of your part, of you are sure the exemple code worked with 0xFFF8 ?

Well ... actually, if you look the schematics with attention you will notice that A0 and A1 are not decoded in the address logic.
Again we have mirrowing ...

It's the same thing write to FFF8 (1111111111111000), FFF9 (1111111111111001), FFFA (1111111111111010) or
FFFB (1111111111111011) Again, we have a mirrowing on the hardware.

I was not going to post a message with a such inportant info without without being sure about the information... ;)

Cya ...
  View user's profile Send private message
  • Joined: 24 Jun 1999
  • Posts: 1732
  • Location: Paris, France
Reply with quote
Alright
Post Posted: Sun Sep 03, 2000 3:37 pm
But it was probably documented as being only linked to 0xFFFB as all 3D Games uses this address.
I'll support mirroring, just in case.

By the way, seing your adapter is different than the one Mike is making from other schematics,
I am interested in such adapter if I can add support for it.
I never toyed around with the // port, thought, but I should be able to find out how to do it (the schematic helping).

I wonder if one is cheaper to make than the other. If I get the two supported Meka such be shipped with a text file describing the both ways to make such adapters - get to your keyboard, guys :)
  View user's profile Send private message Visit poster's website
  • Joined: 12 Jul 2005
  • Posts: 55
Reply with quote
Hey... That 3D ADAPTOR schematics aren't mine.
Post Posted: Sun Sep 03, 2000 5:22 pm
That schematics are schematics of the original SEGA 3D ADAPTOR reverse-engineered by me. I reverse-engineered the
schematics to understand how the thinkg works. My adaptor will use only the analog block of the original adaptor, just to
get the original low current AC12v to power the glasses. (putting DC current in old fashion LCDs may cause damage to
them.)
Actually I want to use the same glasses on the PC and the SMS without modifiying even a screw from it. That's why I
want to make a new 3D adaptor.

Cya ...


P.S.: Yesterday, at evening I got my mapper to work with both page 1 and 2 ...
  View user's profile Send private message
  • Joined: 24 Jun 1999
  • Posts: 1732
  • Location: Paris, France
Reply with quote
Re: Hey... That 3D ADAPTOR schematics aren't mine.
Post Posted: Sun Sep 03, 2000 7:13 pm
Quote
> That schematics are schematics of the original SEGA 3D ADAPTOR reverse-engineered by me. I reverse-engineered the
> schematics to understand how the thinkg works. My adaptor will use only the analog block of the original adaptor, just to
> get the original low current AC12v to power the glasses. (putting DC current in old fashion LCDs may cause damage to
> them.)

That's a good point. I'm not sure how it's handled with the design I found, but with example and stuffs, I guess it has been tested.

Quote
> Actually I want to use the same glasses on the PC and the SMS without modifiying even a screw from it. That's why I
> want to make a new 3D adaptor.

Of course. The current design already on the net and using the COMM port is basically a link from a COMM port to a to Jack female port with a few things around. The glasses aren't modified.

Quote
> P.S.: Yesterday, at evening I got my mapper to work with both page 1 and 2 ...

Great ^_^
  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!