Jump to content

Optical Drive Emulation?


Recommended Posts

Before you ask, yes I'm aware this is kind of a stupid question since you can just load Xbox games right from the hard drive. I also understand that any standard CD-ROM drive will also work in an Xbox. Don't read too much into "why would you want to do this". There isn't a really compelling reason. Now that that's out of the way...

Has anyone had success with any sort of optical drive emulators in an original Xbox? There seems to be a few projects floating around out there made by people who wanted to replace optical IDE drives for certain obscure arcade cabinets and old PCs...

  • There's an "IDE Simulator" by Tattiebogle that runs for a whopping $200.
  • There's the NetPi, which uses a RaspberryPi as an ODD emulator, but isn't fully developed yet.
  • There's plenty of IDE to SD (or CF) adapters, but that would just appear as a 2nd hard drive to the Xbox, which as we all know doesn't work (outside of Chimp).
  • SCSI2SD - SCSI isn't IDE, but perhaps an adapter could be used?
  • There's this project on Vagons.org where a guy is working on an ODD emulator, but it's still in development
  • Memkor apparently makes (made?) a product like this, but I don't see it directly for sale anywhere.

But I'm wondering if anyone has tried using something like one of these devices in an Xbox.

The official DVT kits had optical drive emulation built-in from the factory- official Microsoft parts and everything (technically outsourced, but still). This route however has a pretty high bar for entry: the DVT kit itself + a Raptor PCI card + obscure drivers (which I assume only work for Windows XP) + the software and know-how to use it all. I recently bought a DVT4 kit and want to experiment with this feature purely because I find it fascinating. We'll see how that goes.

  • Like 2
Link to post
Share on other sites

I think an ODE would be VERY useful. ISO's of the entire library on a hdd connected as the dvd drive would free up the regular hdd for apps, media, and emulators. 

Softmodding would be incredibly easy. 

If this were running on something like a raspberry pi with gigabit nic, uploading games wouldn't take long at all. 
It could really expand the possibilities. If I had the know-how I would do it. I just don't at present. 

Link to post
Share on other sites
On 9/18/2020 at 7:33 PM, KaosEngineer said:

I have not heard of anyone creating an independent/homebrew ODE for the ogXbox.  There were easier methods to run the games. Simply copy the files to and load them from HDD. Thus, no one bothered to make one.

Yup I was expecting to hear that no one made a custom one, but I was moreso interested if anyone's tried using an "off the shelf" CD drive emulator. They exist... it's just I've never seen or heard about someone putting one in an Xbox. I'm wondering if there's something that would prevent that.

On 9/18/2020 at 11:34 PM, Boured said:

While an ODE would be neat, it isnt required. As you can just get a modchip in it if the DVD doesnt work and proceed to use XboxHDM to setup a hacked drive.

This isnt like the Gamecube where an ODE was a very welcome addition for dying lasered consoles.

Right. Running games off the hard drive is super easy. It's a very luxurious feature to have that some older consoles don't have. I know with other consoles, people have made custom boards that emulate the actual laser module itself and push that data back to the console's existing disc drive. In other cases, they've made boards that replace the drive entirely. The Xbox hasn't really needed either of those things because repairs have been pretty cheap and easy, plus you could swap in a PC CD rom drive and read burned backups if needed.

But with it being 20 years later, the pool of Xbox drives that are out there is shrinking. The more time that passes, the less parts there are. So maybe over time, it could become a more realistic option to look at.

12 hours ago, OGXbox Admin said:

I think an ODE would be VERY useful. ISO's of the entire library on a hdd connected as the dvd drive would free up the regular hdd for apps, media, and emulators. 

Softmodding would be incredibly easy. 

If this were running on something like a raspberry pi with gigabit nic, uploading games wouldn't take long at all. 
It could really expand the possibilities. If I had the know-how I would do it. I just don't at present. 

Hooking up a RaspberryPi in place of the DVD drive opens up a bunch of possibilities. The NetPi project's website talks about this a little:

Quote

The greatest advantage of virtual IDE disk emulation is the ability to manipulate the images outside the scope of the host machine the emulator is connected to.  One may keep a menagerie of image files representing dozens of configurations, boot disks, application use cases, or special use scenarios.  Those images can be selected statically when the Pi process is launched or even changed during run-time when the emulator senses an IDE reset pulse or a ‘Read Identification Sector’ command from the host.

I bet you could even mount a network path and stream ISOs from a network share, negating the need to have a huge hard drive.

About copying games and not taking a long time, I think FATXplorer solved that issue. It did for me at least. Now days when I build a hard drive, I don't use LAN/FTP, I just hook it up to my PC directly and let the copy process work at 100MB/s.

Edited by GoTeamScotch
  • Like 1
Link to post
Share on other sites

there is a version the IND bios that has support for XISO, this is pretty much a software version of an ODE, the key feature of this is its 100% free, no hardware to buy or install, it may transfer games quicker via ftp or fatxplorer, it also allows those few games that have long file names to boot and play on the xbox, i haven't tested this out yet, but i just put together another xbox for testing purposes and im thinking about flashing the IND bios and testing a few of those games soon  

Link to post
Share on other sites

I have think about an other option which i plan to do.

Simply add 2 x 2 TB HDD with 2 x SATA to IDE converter and add a power switch for the HDD's. Voila more space as ever needed (In case there will be ever enough space).

And a question. Why not grab a bios and make it work with bigger drives? Wouldn't that be possible some how?

Edited by sweetdarkdestiny
Link to post
Share on other sites
  • 4 months later...

A repost of the same info from my ODE thread... I'd like to keep this one as the main for ODE interests if possible, GoTeamScotch definitely has seniority in XBox land and I'd like to maybe start collating peoples trials and experiences on this thread instead.

I got the right cables through to try my Zalman ZM-VE200 external ODE drive as a possible solution. It's a no go of course!

The drive is ONLY an external HDD when in "eSATA" mode. Even though the manual doesn't mention this limitation. It's a lovely ISO ODE for windows installs etc, but it only enumerates as an optical drive over USB. The little window, as soon as you plug the eSATA cable in, says "eSATA Mode" and it just gives you access to the hard drive, with no ODE. :( A waste of money - but it was kinda worth a go!

Maybe also thinking about just replacing the HDD with an SD Card, and having a nice access panel somewhere for swapping SDCards with complete images on them. It is only a solution for us with hardmod bios though, I don't know if you can lock an SD-IDE?. I am really coveting the idea of one SDCard per game, in the discboxes, with the manuals. Part of the experience is going to the shelf and choosing the game, loading the media etc... (I know it's stupid, it's all right there on the HDD... But...)

Link to post
Share on other sites

Thanks for the update! After looking up that Zalman of yours, I think I might actually pick one up. It looks like a great way to handle operating system ISOs. I usually have a couple of flash drives that I format and flash as needed, but that looks like a better solution. But yeah, that's too bad that it won't work for this purpose in an Xbox. Once I get some spare cash, I plan on buying a couple options to see if any are compatible.

Quote

Maybe also thinking about just replacing the HDD with an SD Card, and having a nice access panel somewhere for swapping SDCards with complete images on them. It is only a solution for us with hardmod bios though, I don't know if you can lock an SD-IDE?.

I imagine SD card adapters exist. I have a CF adapter that I use in Xboxes when I use as a bench hard drive for testing motherboards and junk.

Quote

I am really coveting the idea of one SDCard per game, in the discboxes, with the manuals. Part of the experience is going to the shelf and choosing the game, loading the media etc... (I know it's stupid, it's all right there on the HDD... But...)

I admire your dream, but that's a whole lot of work to get to essentially basically the same outcome as using discs. 😉

 

Maybe someday someone can clone the XDK's drive emulator... 😁

PC card (installs into a PC and requires special software included in the Xbox dev kit suite) ->

Do8VKl2l.jpg

Xbox card (sits in between IDE cable and DVD drive) ->

EYLds53l.jpg

Ports open at the back for hooking up cables ->

cwgqRE9l.jpg

Edited by GoTeamScotch
Link to post
Share on other sites
On 2/2/2021 at 3:09 AM, GoTeamScotch said:

Thanks for the update! After looking up that Zalman of yours, I think I might actually pick one up. It looks like a great way to handle operating system ISOs. I usually have a couple of flash drives that I format and flash as needed, but that looks like a better solution. But yeah, that's too bad that it won't work for this purpose in an Xbox. Once I get some spare cash, I plan on buying a couple options to see if any are compatible.

I imagine SD card adapters exist. I have a CF adapter that I use in Xboxes when I use as a bench hard drive for testing motherboards and junk.

I admire your dream, but that's a whole lot of work to get to essentially basically the same outcome as using discs. 😉

 

Maybe someday someone can clone the XDK's drive emulator... 😁

PC card (installs into a PC and requires special software included in the Xbox dev kit suite) ->

Do8VKl2l.jpg

Xbox card (sits in between IDE cable and DVD drive) ->

EYLds53l.jpg

Ports open at the back for hooking up cables ->

cwgqRE9l.jpg

Love it - those cards definitely looks like late 90's tech! :D

Link to post
Share on other sites
6 hours ago, DobaMuffin said:

What kind of functionality did it have?

It allows a person to use a folder on a computer as if the folder was a disc sitting inside the Xbox's DVD drive. Alternatively, they could  connect a hard drive (to the PC card's IDE port, pictured above) that contains the contents of the DVD disc. The equipment will mimic a DVD drive, including tray state (open/closed/busy) and read speeds. Hard drives are obviously faster than DVD drives, so it limits the bandwidth down to that of a DVD drive so devs could see how fast their game would load. This tool ("Xbox DVD Layout Tool") was used back in the day when game studios would go to author their game discs. It let devs decide where files would physically go on the disc so as to optimize the placement of files. So, files for one level in a game could be located next to each other on the disc to reduce the amount of seeks going on while loading. Once they have everything optimized, they would burn the final "gold" disc.

Link to post
Share on other sites
4 hours ago, GoTeamScotch said:

It allows a person to use a folder on a computer as if the folder was a disc sitting inside the Xbox's DVD drive. Alternatively, they could  connect a hard drive (to the PC card's IDE port, pictured above) that contains the contents of the DVD disc. The equipment will mimic a DVD drive, including tray state (open/closed/busy) and read speeds. Hard drives are obviously faster than DVD drives, so it limits the bandwidth down to that of a DVD drive so devs could see how fast their game would load. This tool ("Xbox DVD Layout Tool") was used back in the day when game studios would go to author their game discs. It let devs decide where files would physically go on the disc so as to optimize the placement of files. So, files for one level in a game could be located next to each other on the disc to reduce the amount of seeks going on while loading. Once they have everything optimized, they would burn the final "gold" disc.

Ok I will admit that sounds very interesting.

It should be achievable to someone with the right knowledge, but I guess an ode of any form would need to be created first. 

Link to post
Share on other sites

i am playing with an lg dvd drive its not the one that used to be converted to read xbox disks but very similar, i have found 3.3v, 5v, 12v, eject, cd/dvd and data lines for the xbox power plug.

grounds are easy the problem ones are tray in, tray out, the reason i mention this here is because its all relative if we want to make a working ode we need to get ordinary dvd drives working on an xbox first, i'm not talking about reading games disks(yet) as that requires new firmware which according to my IT mate the known lg firmware can be made to run on this drive with tweaking.

i'm hoping someone knows the pinout of the ide/atapi/pata socket on the back of the drive, since a pc knows when the tray is open or closed and can in fact eject the disk the required lines must be in the ide socket, i want to get this drive running so i can reverse engineer the drive connections, then when i know where and how the dvd connects and talks to the xbox i aim to substitute the drive for another device, maybe a raspberry pi to run emulation using the sdcard, or the mode used in the saturn/dreamcast/playstation, but thats later on first things first.

lets not try to run before we can walk.

thanks,

aly.

 

Edited by sinclairuser
correction
  • Like 1
Link to post
Share on other sites
20 hours ago, sinclairuser said:

i am playing with an lg dvd drive its not the one that used to be converted to read xbox disks but very similar, i have found 3.3v, 5v, 12v, eject, cd/dvd and data lines for the xbox power plug.

grounds are easy the problem ones are tray in, tray out, the reason i mention this here is because its all relative if we want to make a working ode we need to get ordinary dvd drives working on an xbox first, i'm not talking about reading games disks(yet) as that requires new firmware which according to my IT mate the known lg firmware can be made to run on this drive with tweaking.

i'm hoping someone knows the pinout of the ide/atapi/pata socket on the back of the drive, since a pc knows when the tray is open or closed and can in fact eject the disk the required lines must be in the ide socket, i want to get this drive running so i can reverse engineer the drive connections, then when i know where and how the dvd connects and talks to the xbox i aim to substitute the drive for another device, maybe a raspberry pi to run emulation using the sdcard, or the mode used in the saturn/dreamcast/playstation, but thats later on first things first.

lets not try to run before we can walk.

thanks,

aly.

 

Tray in, tray out, power and other control signals are on the 12 pin (either all yellow insulated wires or 11 brown with one brown/white stripe insulated wires).

630957536_XboxDVDPowerConnector.jpg.da1a7254a45ae7f75c139dd66dd2e806.jpg

The motherboard connector has 2 more unused pins 13 and 14 not pictured in the above image.  The DVD drive uses the 12 pins as shown in the diagram.  NEJECT is the control pin to eject/load the DVD tray. It is an output from the System Management Controller (SMC) - a PIC processor on v1.0-1.4 motherboards  or a custom Xyclops chip on v1.6 motherboards - to the DVD drive.

The IDE connector on the DVD drive follows the IDE / Parallel-ATA standard for signaling like any other computer's hard drive, DVD or CD-ROM drive.

PATA / IDE interface and cable pinout

Link to post
Share on other sites

thanks for the info Kaos, what i'm looking for is tray in tray out on this drive, your right about the signals  scoping and sniffing the signals from the xbox ide interface doesn't reveal anything different to any other atapi dvd drive, which means there is nothing special about the ogxbox dvd drive.

it has a custom power connector, and special firmware so it can read xbox dvds, my own belief is that any dvd drive could be made to operate on an xbox, back in the day two dvd drive models were  discovered that could be made to work with mods and firmware, there are others i'm convinced of it luckily i have a work mate who understands drive firmware, in order to replicate the drive i need to know how it operates mechanically and electronically.

thanks,

aly.

Link to post
Share on other sites

 

33 minutes ago, sinclairuser said:

it has a custom power connector, and special firmware so it can read xbox dvds, my own belief is that any dvd drive could be made to operate on an xbox, back in the day two dvd drive models were  discovered that could be made to work with mods and firmware, there are others i'm convinced of it luckily i have a work mate who understands drive firmware, in order to replicate the drive i need to know how it operates mechanically and electronically.

I know you can mod normal ide drives to be used on an original xbox, just without the ability to read xbox game discs. These links hsould have some info.

https://web.archive.org/web/20080821024402/http://www.xbox-linux.org:80/docs/pcdvd.html https://www.amibay.com/showthread.php?19300-Using-a-PC-dvd-drive-on-a-classic-xbox

Link to post
Share on other sites

hi all, made progress it seems that the main issue with dvd drives on the xbox is due to spin down mode, the xbox wont tolerate that but in terms of using a compact flash or other solid state device its good news, all the lines on the xbox dvd power plug are either grounds, voltage or high or low at a particular interval.

any off the shelf unit like an arduino, raspberry pi or other small board computer could be programmed to do what we want, the pi may be overkill for our needs, unless we go the whole hog and make one stop shop add in board that does disk drive, but also takes our video signals and gives us HDMI, it could do other things too reading eeprom springs to mind. but that would require quite a few of us getting our heads together, so for now i'm concentrating on just the drive.

iv'e got teenseys, arduino nano's, a pi pico, coolrunners and other boards here to play with, i'm going to start with a compact flash to ide adapter first to hold the data mainly due to it basically being an ide type drive, but i have got 44 pin laptop ide to 40 pin ide converters, so have options.

just going to take time and energy to do, but i'm up for it.

but i want to make things clear, i'm not interested in selling this i dont even plan to make and sell boards, what i learn and get working will be posted freely here, so you can do it too, if that means adding a pc dvd drive ok, if its using an ode thats cool too.

i am going to use off the shelf parts as much as possible, its not about just getting it to work i want it as easy as possible for people to replicate.

as an aside a mate of mine has ordered a mode ode for his dreamcast, this unit is already running on saturn, dreamcast and playstation 1 with playstation 2 being worked on by others if the possibility exists of using a ready made solution  i may jump that way, it all depends what will be the easiest for users to replicate.

thanks,

aly.

  • Like 2
Link to post
Share on other sites

this looks great, the main problem i have is the whole sbc thing is just not noob friendly, i downloaded a so called sdr raspi complete image and it was totally useless, the only one i could recommend is the retropie image because a lot of work has been done to make it plug and play.

the truth is that 9 times out of 10 you need to be an advanced user to to get these things running properly, 

if a new user cannot pick it up and get it running first time and then learn from there its a waste of time, someone buying a pi with a view to learn how it works and make their own projects quickly throws it to one side at the first problem, and its because a certain level of knowledge is expected to debug and set up the single board computer, which is totally ludicrous for a so called learning platform.

what you need to do is if you design and make a device like this, is make it fool proof, get the oldest cheapest raspberry pi and base it on that but make it run on newer ones as well this is because more users can make use of it and they are more likely to have an older pi lurking in a drawer somewhere,

then make the software an image they can load up and run straight away, getting the thing to work should be as easy as altering settings in the ui, if it has a desktop make it as windows like as possible, verbose mode and command line just puts new users off.

sorry for the rant,  another fantastic use of the raspberry pi, someone needs to work on an xbox version but it needs to be useable by xbox users not raspi enthusiasts.

i could make it work, so could you probably, but we need a device that a numpty can install, that just works, just like an xbox dvd drive does.

 

 

Edited by sinclairuser
Link to post
Share on other sites

For softmodding, the Rasberry PI W configuration is a lot more expensive than a small compatible USB flash drive and Xbox controller-to-female USB connector cable.

 

Edit: Continuing the work to get it to act as an ogXbox ODE that's another thing.

  • Like 2
Link to post
Share on other sites
17 hours ago, sinclairuser said:

this looks great, the main problem i have is the whole sbc thing is just not noob friendly, i downloaded a so called sdr raspi complete image and it was totally useless, the only one i could recommend is the retropie image because a lot of work has been done to make it plug and play.

the truth is that 9 times out of 10 you need to be an advanced user to to get these things running properly, 

if a new user cannot pick it up and get it running first time and then learn from there its a waste of time, someone buying a pi with a view to learn how it works and make their own projects quickly throws it to one side at the first problem, and its because a certain level of knowledge is expected to debug and set up the single board computer, which is totally ludicrous for a so called learning platform.

what you need to do is if you design and make a device like this, is make it fool proof, get the oldest cheapest raspberry pi and base it on that but make it run on newer ones as well this is because more users can make use of it and they are more likely to have an older pi lurking in a drawer somewhere,

then make the software an image they can load up and run straight away, getting the thing to work should be as easy as altering settings in the ui, if it has a desktop make it as windows like as possible, verbose mode and command line just puts new users off.

sorry for the rant,  another fantastic use of the raspberry pi, someone needs to work on an xbox version but it needs to be useable by xbox users not raspi enthusiasts.

i could make it work, so could you probably, but we need a device that a numpty can install, that just works, just like an xbox dvd drive does.

 

 

I hear you but here is why it is this way:

People figuring things out and freely giving that information out expect the recipients of that free information to figure out how to use it. 

People looking to turn a profit will make things nice and slick so the end user has to do as little as possible. 

There is always a price to pay. If you want things for free you'll have to do some work. If you have money to burn you probably won't. 

Link to post
Share on other sites

Well I for one would sure love to see a low bar to entry - a tiny bit of hardware hacking or some very simple software setup - like installing a distro to an SDCard in raspberry pi land... Just enough intrigue to captivate, with a nice feeling of 'job fairly well done' to encourage coming back for more!

It's kinda partly why I love stuff like the GDEmu - my teenage son can get it installed himself without ruining the console, and make it work.

That learning curve is very individual, of course, but make it smooth and people interested should be able to jump on it at their level and have fun! :)

BTW thanks SinclairUser for taking some of this idea and putting energy in! At some point I really want to get properly involved, but it may be at testing stuff phase! Not a whole lot of time or money at the moment! lol! Studying for maths/physics degree, parenting a teenager and a little one, and mentoring in education doesn't leave a lot around the edges and my wife takes priority in those edges most of the time of course!

Link to post
Share on other sites

@xbox admin, i totally understand projects are by nature at differing levels of competence, from basic to advanced its just i think if you are trying to  accomplish a particular task that is by its nature niche, for example say  a hdmi board for the ogxbox, there is no point doing the project at the raspberry pi developer level and putting binaries on git hub, even if it uses raspi hardware.

you would need to do it at the xbox tinkerer level, thats all.

@neakmenter, i am  fortunate that i love my work, and that i have the ability to work at home, so having a corner of a bench with an xbox on it and tinkering is what i do just to keep busy, if i can find out something that i can relay to others then i will.

thanks,

aly.

  • Like 1
Link to post
Share on other sites

Linking a few potentially relevant sites/projects. These projects could have some useful examples or serve as inspiration.

-----------

pata-gpio: https://github.com/manawyrm/pata-gpio

Purpose: Use Raspberry Pi's GPIO as an IDE interface. Allows you to connect IDE hard drives to a Raspberry Pi, which can then connect to a PC over the Pi's USB port. This basically acts like a IDE-USB adapter. Not exactly an ODE, but could provide some useful insight into reading/writing to an IDE cable over a Pi's gpio pins.

One downside is that there's no pins leftover for handling the Xbox's tray state. Another is that the data transfer speeds top out at ~800 KB/s due to the use of libgpio, which isn't intend for data transmission like this. So passing data to an Xbox's motherboard in real time probably isn't realistic using this method. Xbox DVD drives send data to the motherboard at many times that rate. But again, this project could potentially just be used for reference to get an idea of how to tackle sending IDE signals from an Raspberry Pi.

Also, in this same project, the author has a GPIO to IDE adapter board (with gerber files).

ATAPIHAT-SMI.thumb.png.e616490758d9eb9798bb8cb8541482d5.png

-------------

The NetPi-IDE project (SVN: click here), mentioned in my 1st post, seems to have some interesting hardware to go along with the project. It has a custom board with an fpga that allows for faster transfer speeds.

Quote

The current IDE interface clock runs reliably at 38 MHz and synthesis reports suggest it can run up to 100 MHz which could easily support ATA33 speeds of more modern PATA systems.  The SPI interface is direct clocked rather than over-sampled in the FPGA.  The expectation is the FPGA could handle up to the maximum SPI clock supported by the Raspberry Pi which is 125 MHz.  It is currently limited to 16 MHz or 2 MBytes/s which is fast enough for most vintage systems.

So, in its current implementation it is limited to 2MB/s, but can be clocked faster.

5531031490844298396.thumb.jpg.54e3f5cd109498647ff251e0ab68adbe.jpg

9018421490844288147.thumb.jpg.06e937936aae0ffb225bdbc9676d4a48.jpg

 

On 2/11/2021 at 1:46 PM, sinclairuser said:

unless we go the whole hog and make one stop shop add in board that does disk drive, but also takes our video signals and gives us HDMI, it could do other things too reading eeprom springs to mind.

An interesting concept. I wouldn't think a single Pi (or Teensy, etc) would have enough overhead to deal with ODE as well as HDMI signal processing. EEPROM tools might be an neat additional feature, but I think the limitation there would be a lack of GPIO pins (assuming they would all would be tied up on the IDE interface).

ATAPIHAT-SMI.png

Edited by GoTeamScotch
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By LuKa1987OR
      Hi Guys,
      I'm trying to fix an xbox which takes about 5minutes to boot. It is a softmoded V1.6 and I swapped its dvd driver from a Samsung (which I need for my main xbox) to a Philips (very temperamental and reads just some original games). I don't know why but the slow boot is related to the dvd drive, as it boots in a flash when connected to his original dvd drive. Anything I can do to solve the issue keeping the Philips drive?
      Thanks a lot!
    • By AtariSoul
      Hello All
      I know there are some games like HP prisoner of Azkaban that won't work because of long file paths, etc. 
      Does anyone know of a full list of games that don't work?
      I have read that you can use the ISO mounted on a virtual drive with softmod but my XBOX is hard modded so I'm not sure if this would work?
      thanks in advance
      AtariSoul

Board Life Status


Board startup date: April 23, 2017 12:45:48
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.