/****************************************************************************/
/* pex.faq v1.01a (last updated 01/03/98)                                   */
/* the official pex faq by Geoffrey Wossum (aka Maxon)                      */
/****************************************************************************/

//////////////////////////////////////////////////////////////////////////////
// stupid questions.
//////////////////////////////////////////////////////////////////////////////
q:  Can pex play FF7?
a:  No, don't you see where I'm just finishing up on the CPU core.

q:  Will pex be able to play FF7 when its finished?
a:  What is pex?  That's right, a psx emulator.  What is FF7?  That's right,
    a psx game.  So, what do you think?

q:  Can I help you program it?
a:  No, you suck.  How can I tell?  You said 'program'.  Someone who might be
    able to help would ask, "Can I help you code it?"

q:  How can I help you?
a:  What is it with you 12 year olds?  They don't give you enough homework in
    school.

q:  How come it's taking you so long to write pex?
a:  I go to this magical, mystical place called university.  I go to classes
    there, take tests, write papers, do projects, and other things that take
    time away from pex.  It's a place you 12 year olds will never get to go
    to because you keep emailing me stupid questions instead of doing your
    homework.  I also associate with other people.  This is something most of
    you 12 year olds must never do based on all the time you have to email me
    on your parents email accounts.

q:  Can you give me the rom image?  Can you give me some game images?
a:  no.  that would be wrong.

//////////////////////////////////////////////////////////////////////////////
// naming questions?
//////////////////////////////////////////////////////////////////////////////
q:  Why did you decide to call your emulator pex?
a:  I figured that if you can get 'psx' out of 'playstation', I should be able
    to get 'pex' out of 'playstation emulator'.  It has nothing to do with the
    *nix PEX.  In fact, I didn't even think about that until a month into the
    project.

q:  Is it 'pex', or 'PEX'?
a:  It's 'pex'.  I don't really like capital letters.

//////////////////////////////////////////////////////////////////////////////
// general questions.
//////////////////////////////////////////////////////////////////////////////
q:  What platforms will pex run on?
a:  Right now I'm planning on a dos and win95 versions only.  I might
    port to other Intel x86 systems later.  After I'm finished, someone might
    want to port it to non-Intel systems.  Probably not, though, considering
    the large amount of assembler pex contains.

q:  What will the requirements be?
a:  Here's what I'm aiming for right now (and it looks very feasible):
        - Intel Pentium 166 (GenuineIntel recommended, much mathco usage is
                planned).
        - 16Mb memory?
        - a fast 3d video card (3Dfx, nVidia, Pyramid, etc.  No S3 or ATI junk.)
        - cdrom drive.
        - an sb compatible or gus compatible card for sound (optional).

q:  I have an XYZ video card with an ABC 3d-set on it.  Will pex suppport it?
a:  For the dos version (the first on that'll appear), the only 3d accelerators
    supported will be 3Dfx Voodoo and 3Dfx Voodoo Rush.  These will be supported
    through 3Dfx's Glide API.  For those who are Voodoo'less, dos pex will
    also provide software rendering through your 2d card (slower and less
    detail).  The win32s port of pex will use OpenGL for graphics, so any
    3d-set with OpenGL support will provide acceleration.

q:  Why are you making pex?
a:  The challenge.  Although some of friends claim I'm making pex because I'm
    too cheap to buy a psx :)

q:  Are you going to release the source to pex?
a:  I'm planning to at least release the source to the R3000 recompiler.  I'll
    probably release the rest of the source at some point also.

q:  What are you going to charge for pex?
a:  Nothing.  Donations would gladly be accepted, tho :)

q:  Is this vaporware (much like "Into the Shadows" <sniff sniff>)?
    Are we ever going to see anything?
a:  School has slowed progress for most of pex's life.  I've just finished
    my exams, so work should pick up.  I'm hoping to have a copy with
    basically the cpu core out by Christmas.

//////////////////////////////////////////////////////////////////////////////
// coding questions.
//////////////////////////////////////////////////////////////////////////////
q:  What are you writing pex in?
a:  C and x86 asm.

q:  What are compilers/tools are you using?
a:  Watcom C 10.6
    Borland Turbo Assembler 4.0
    pmode/w 1.34 by Tran and Daredevil.
    dos4/gw 1.95 from Tenberry Software.
    Glide API by 3Dfx.
    QEdit 3.00
    dos 6.22 from microsux

q:  What are you developing pex on?
a:  My dev machine is as follows :
    GenuineIntel Pentium 166
    HX motherboard with 512 PB
    48Mb edo
    generic S3 ViRGE 4Mb video card
    Diamond Monster 3D (3Dfx Voodoo 4Mb)
    Gravis Ultrasound PnP w/4Mb
    dos6.22/win95/slackware linux

q:  How do you find out stuff about the psx?
a:  I find doc's on the internet.  emailing other psx-emu authors.

q:  Do you have an Action Replay that you use to hack the psx?
a:  Do I have an Action Replay?  Do I have an Action Replay?!?!?
    I don't even have a Playstation!

q:  Are you going to use a graphics API?
a:  for dos pex, 3Dfx's Glide API is being used.  For win32s pex, OpenGL is the
    API of choice.

q:  What sound API are you going to use?
a:  MIDAS by the Sahara Sufers (http://www.s2.org).  MIDAS 0.7.1.b for dos pex,
    MIDAS 1.1.1 for win32s pex.

q:  How does the recompiler work?
a:  The recompiler works in two (this has changed) passes over the R3000A code.
    The first pass emits x86 code for the corresponding MIPS code.  Each
    instruction is divided into a prolog, body, and epilog.  The prolog's and
    epilog's change according to what mode pex is operating in.
    The second pass links the x86 together, ie. it fills in the jump addresses.

q:  What's the performance like?
a:  The recompiler is so fast you barely know its worked.
    The recompiled code, not sure yet.  It seems to be very fast, but its
    hard to tell yet.  The current debugging prologs/epilogs add quite a bit
    of overhead to the code.  If you factor out the debugging overhead, though,
    most instructions execute in 7 cycles or less.  And this is without the
    code being cache coherent (the debugger prevents code from becoming cache
    coherent).  Running out of debug mode, this number could halve!

//////////////////////////////////////////////////////////////////////////////
// questions about me.
//////////////////////////////////////////////////////////////////////////////
q:  how old are you?
a:  19.

q:  do you go to school?
a:  yes, I'm majoring in computer science and engineering at the University
    of Texas at Arlington.

q:  When did you/how did you get into coding?
a:  Although I've had a computer since I was 4, I didn't start programming
    until I was 15, when I took a computer science class in high school.
    About that time, I was also introduced to the demo scene.  I decided I
    wanted to code demos.  So I got into demo coding.  I got into emu coding
    for a change of pace.  pex is my first adventure in emu coding.

q:  You were/are a demo coder?  Can we see any of your demos?
a:  Fortunately, all of our released stuff has disappeared from circulation.
    It only made it to some local BBS's (internet wasn't big back then.)
    It wasn't that it was bad, it just wasn't good.  I could code pretty good,
    and our musician could write some cool music, but our graphics and
    design sucked.  Of course, most demos from that era had poor design.
    This was back when Second Reality was the biggest and best demo, and demos
    in general let everything run too long and had 20 minute long greet
    scrollers.  I'm still in a demo group, but were pretty inactive.  We were
    half way working on a demo (that actually had good design), but then I
    got onto this psx emu kick.  And since I'm the only (good) coder in the
    group, it's kind of halted.  Maybe, one day there'll be a demo from us
    on hornet.

//////////////////////////////////////////////////////////////////////////////
// helping the rebellion.
//////////////////////////////////////////////////////////////////////////////
q:  How can I help you?
a:  Spread the word about pex and the other psx emulators in development.
    Also, if you have any good information about the psx or know where I can
    get some, give it to me.  It's hard to get good information.  It's almost
    like Sony doesn't want anyone writing an emulator ;)
    If you are wanting to email a file, PLEASE contact me about it first and
    wait for me to respond.  I might already have it, so there's no sense
    wasting the bandwidth.
    If you think you help me in other ways (suggestions, expertise, coding
    help), contact me.

q:  How can I contact you?
a:  You can contact me, Geoffrey (Maxon), at gpw0341@omega.uta.edu

q:  Do you have a web page I can tell my friends about?
a:  You probably got this file from the web page, but in case you didn't,
    pex's official web page resides at:
    http://www.fastlane.net/~gpwossum/pex.html

/****************************************************************************/
/* end of pex.faq                                                           */
/****************************************************************************/
