PCSXBox - PSX Emulator for XBox v4

This is a completely new UI which I plan on incorporating into most of my other
releases.  I tried to include as much customization and as many features as
possible, but I'm sure there will still be changes and additions that people
will want to see.  Please provide feedback on the xbox-scene.com emulation
forums so that this UI can be refined and then placed into the other ports.

What's New :

- Customizable skins
- Backgrounds
- Sounds
- Background Music
- Sprites
- Text position (right/left/center, top/bottom/center)
- Text color, select bar color
- Font
- Fading speed
- Screenshot position
- If you want to change the way something looks in this new UI,
chances are that you can change it via the Configuration menu.

- Default Castlevania:SOTN skin gives example of what you can do.

- Netplay (2 players)

- Samba/NetBIOS support (read CD images from your PC)

- Every single in-game command is fully customizable on any of the
four joypad controllers.

- Map any emulator or UI command to a single button or a combination of
two buttons.  (e.g. RTrigger+LTrigger = Save State)

- Autofire capabilities for any emulator button on any controller

- One-button combos (define a series of emulator commands to be played
back when you press a user-definable XBox controller combination.)
(E.g. Press RTrigger+LTrigger to run the series of commands that
will cast Soul Steal in Castlevania)

- Traverse any directory on any drive ( Continue selecting the parent
directory entry on the file selection list to get the drive selection
list.  Selectable drives are C, D, E, F, R, X, Y, Z, and SMB.
R is the CDROM drive.  SMB is the samba share you have defined in your
pcsx.ini file.)

- 10 save state slots

- Take in-game screenshots which can later be browsed and can also
be viewed on the game-selection list.

- All UI commands (save state, load state, screenshot, etc) can be
invoked from the Options/Pause menu as well as in-game via your
customized joypad mappings.

- New graphics filters :
- 2xSai
- Super 2xSai
- Eagle
- Super Eagle
- SuperScale
- AdvanceMame 2x
- Simple 2x

- Can be invoked from a command-line to directly run a game from a front-end
or dashboard and bypass the user-selection screens. (Only if the frontend
or dashboard supports this feature.)

- Can return to the launching program *if* the launching program supports this
feature.  For example, if the custom-launch routines are incorporated into
a new frontend, that frontend could launch PCSXBox and when you exit
PCSXBox, that frontend can be automatically reloaded.

- Support for M3U playlists of MP3 files.  (Currently only supports MP3 files)
(Can also read MP3/M3U from across Samba shares.)

- Favorites list

- Save Game management - delete save game files

- CD-Changing should hopefully be fixed

- Schmoke and a pancake

What's Not New:
- Compatibility - this version does not fix or break any games from v2/v3.

Various Important Notes:

Configuration

Almost everything can be changed from the configuration menu.  Here are the
things that require manual modifications to the PCSX.INI file included in
the package:

Samba share name - goes in the [GENERAL] section.  Example:

smbshare=SMB://USERNAME:PASSWORD@COMPUTERNAME/SHARENAME

Screenshot directory - default is E:\SCREENSHOTS - goes in [GENERAL] section
Example:

screenshot_dir=E:\SCREENSHOTS

Skin directory - where skins can be found.  Default is D:\EMUSKINS - goes in
[GENERAL] section.  Example:

skin_dir=D:\EMUSKINS

If you change any of the above items, then you must upload the new PCSX.INI
file to your XBox, load up PCSXBox, then select "Force Reload D:\\*.ini
Settings" from the Configuration menu.  Please note that this will overwrite
any of the setting changes you might have made after you first loaded
PCSXBox.

Menu Navigation

Select menu options with the DPAD or with R/LTrigger.  The speed of
R/LTrigger movements can be controlled by :

Configuration -> Menu Scroll Speed

There are some places where you can enter or change values.  This
can usually be done in a variety of ways include DPAD Left/Right,
R/L Trigger, and L/R Thumb.  Try all of them if the values are changing
too slowly.

Netplay

In order to netplay with someone, follow these steps:

- Go to the Configuration menu
- Select Netplay options
- Turn netplay on
- Add a server if you are going to connect to someone else
- Select the game to play
- If netplay is on, it will ask you if you want to be the client
or the server.  One person is the client, and the other is the server.
If you are the server, the game will wait until the client has
joined.  If you are the client, make sure the server is ready to accept
your connection before continuing.
- Once a connection has been made, it should work fine.

NOTE : You both MUST be using the *EXACT* same game and the *EXACT* same
settings.  I would be *extremely* surprised if the PAL version of a game
worked via netplay with an NTSC version of the same game.  Make sure
you are also using the same emulation method (HLE or BIOS).  The CPU
and Graphics settings all must be the same.

The server player is always player 1.  The client player is always player 2.

I don't know how well netplay will work across real networks.  Two xbox's
on the same intranet work very well, though.

If your connection is lost during gameplay, just wait 30 seconds and
you can return to the game select menu.  (Or you can always reboot...)

SKINS

Instructions for making a new skin:

- Create a new directory off of your SKINS directory (default skins directory
is D:\EMUSKINS
- Place your sound/font/graphic media files in this new directory
- Load PCSXBox
- Select Configuration
- select Configure Skin
- Use the menus to select your new media files and change your settings

If you wish to use sprites in your new skin, then read the following:

- Create a subdirectory off of your new skin directory called SPRITES
e.g. D:\EMUSKINS\NEWSKIN\SPRITES
- In this new SPRITES directory create a 0-based numeric directory for
each sprite you wish to make.  This means that if you have 4 sprites
you wish to load, the directory names *must* be called 0, 1, 2, and 3.

Do not call them 1, 2, 3, and 4.
Do not call them 0, 3, 5, 6.
Do not call them SPRITE1, SPRITE2, SPRITE3, SPRITE4.

Inside each of these new directories, you must place the sprite frames.
Each frame is represented by a BMP, PNG, or JPG file.  The order of the
frames is given by the filenames.  These filenames must also be named
with 0-based numbers.  For example, 0.png, 1.png, 2.png.  Look at the
sprites directory of the included SOTN default skin to see how it works.

Also be aware of memory constraints.  Let's say you have a frame of a sprite
called 0.png.  This picture file is 90 pixels wide and 130 pixels high.
This will get rounded up to a 256x256 pixel 32bit picture.  This means
that it will consume 256x256x4 bytes (256KB) of memory.  If your sprite has
10 frames of animation, that's around 2.5MB of memory.  Keep this in mind
before you make ultra-smooth moving sprites with hundreds of frames of
animation.

If you make/configure a skin and PCSXbox does not load the next time you
play it, then you need to go to the E:\UDATA\ffff051f directory and
search for the PCSX.INI and SKIN_SETTINGS.INI files in one of the
subdirectories.  When you have found them, delete them and PCSXBox should
run fine again, but you'll have to configure your skin again.  The problem
was probably that one of your resources (like a WAV or background file)
was specified incorrectly or was never changed from the old skin.
Carefully look at the SKIN_SETTINGS.INI file in the subdirectory off
of UDATA to make sure that all filenames exist in your skin directory.

Samba/NetBIOS

You'll need a fast network.  :)

I've run some tests, and it seems that if you can transfer data to your
XBox at a rate of 1.5 megabytes per second or faster, then reading
a CD image from across your network should work fine.  If the games
are running really crappy, then your network is probably not fast enough.

To access your Samba share that you defined in your PCSX.INI file (see
configuration section above), first choose "Select a Game" from the main
menu.  Then continue to select the parent directory (always the first
entry in the list) until you get to the screen that displays the
drives you can access (C, D, E, F, R, X, Y, Z, SMB).  Select the SMB
item and you should now be browsing your Samba shared files.

If you get no items in the SMB listing, then your share is probably not
defined correctly in PCSX.INI. (Did you remember to "Force Reload
of *.ini files" ?  See configuration section.

Controller Remapping

Configuration -> Configure Controllers

There are 32 general/all-purpose emulator "buttons" or actions.  Each of these
buttons can be assigned a specific emulator action.  For example, Emu Button 1
can be Cross, or Square, or L1, or Start, or DPad Down, etc.  These "emu
buttons" can then be assigned XBox triggers.  For example, Emu Button 1
(which you have mapped to, for example, SQUARE) can be triggered by
XBox controller button B.  The default button mappings should provide
enough information on how the system works and how it can be used.

Autofiring

Configuration -> Configure Controllers -> Controller # -> Change Autofire

Each "Emu Button" can be set up for autofiring.  Simply set the autofire
variable to a non-zero value.  This value indicates how long the emulator
should wait before releasing and re-pressing the button.  A value of 1
might be too fast to register on some games.  I suggest setting it to a
number like 5 first and them fine-tuning it.

Combos

Setting up a combo can be kind of tricky because you need to know exactly
what the game expects to have happen on the joypads to execute the special
move.  For example, let's say that we want to map a standard move that is
described like this :

D, DR, R, X

D = Down, DR = Down+Right, R = Right, X = Cross button

First, set the delay to a number like 2 or 3.  Then set up the moves.  In
this case, any (or none) of the following might work:

Down
Down+Right
Right
Right+X
Right

OR

Down
Down+Right
Right+x

OR

Down
Down+Right
Right
Right+X
Right+X
Right+X

You will probably need to fine-tune each combo move before it works, but
you'll soon get the knack of it.

Graphics Filters

As mentioned above, the new filters are :

- 2xSai
- Super 2xSai
- Eagle
- Super Eagle
- SuperScale
- AdvanceMame 2x
- Simple 2x

Some of them are faster than others, but they're all noticeably slower
than "no filtering".  I am not responsible for your favorite filter
making your game run slower than you'd like.  Turn on frameskipping and be
happy.  :P

MP3/M3U Playback

Simply select the MP3 or M3U file from the game-selection screen.

The M3U file can also just be a regular file with one songfile per line.
For example:

d:\songs\song1.mp3
e:\moresongs\song2.mp3
smb:\mp3s\song3.mp3

If you are making a playlist of songs on your SMB share, then please note
the format:

smb:\mp3s\song3.mp3

The smb:\ tells PCSXBox to read from your SMB shared directory.  Do not
put the SMB share definition in the filename.

----------SMB shared filenames are case sensitive!!!---------

Command-Line/Auto-Launching and Return to Launcher

This section is for the developers of frontends, dashboards, etc.

PCSXBox can be started with parameters to automatically launch a game
at startup.  Example code can be found in the custom_launch_params.cpp file.

There is also example code in that same file that will show you how to
make PCSXBox load your frontend/dashboard when it exits.

Stella, Gnuboy, SMSPlus, FCEUltra, HUGO, NeoPop, DGen, Bochs, HUGO-CD, FMSXBox,
Bliss, WinSTon, Gens, Z26, StepmaniaX, PCSXBox....what's next?

Enjoy!

PCSXBox - PSX Emulator for XBox v3

What's New :
- Saves graphics/CPU settings for each game

Stella, Gnuboy, SMSPlus, FCEUltra, HUGO, NeoPop, DGen, Bochs, HUGO-CD, FMSXBox,
Bliss, WinSTon, Gens, Z26, StepmaniaX, PCSXBox....what's next?

Enjoy!

PCSXBox - PSX Emulator for XBox v2

What's New :
- Used new PCSX 1.5 source code
- CDDA playback
- Multi-disc support (go to options menu, then press Y to load new disc)
- Added more CPU options :
+ Disable XA sound processing
+ Always enable SIO IRQ
+ Black and White movies (speed up movies)
+ Disable CDDA
+ Use CPU interpreter (slower, but possibly more compatible)
+ Always enable SPU IRQ
+ InuYasha Sengoku Battle fix (might fix other games as well)

Here's What's New from the v1.5 PCSX sources :
* Added translation support, thanks to Zydio.
* Fixed several compatibility issues.
* Improved NetPlay code, added NETsetInfo, thanks to JNS.
* Fixed SW Ints, thanks to Xeven.
* Fixed Mdecs timing issues, thanks to Xeven.
* Fixed a bug related to Memcards in Xenogears.
* Decode_XA.c now uses fixed point,
* added NEGCON type to plugins.c/PsxBios.c
* added a mingw32 port (yokota).
* Added preliminary MacOSX code (Stefhane Conversy).
* Fixed bug in CreateMcd (kitaro).
* Added a 'NO PIC' image.
* Pcsx now compiles without a recompiler.
* Same small speedups.
* Fixed RTPS/RTPT SXYP fifo issue, thanks to Xeven.
* VSync now has a Start and a End ;), thanks to Pete.

If anyone is able to successfully fiddle with all the options to get Ape Escape
working on PCSX for Windows (or Linux or any other non-XBox platform), then please
let me know and I'll look into adding analog support.

Thanks again to Linuzappz and Pete Bernert for making the source available.
Obviously this port would not exist without these people.

Stella, Gnuboy, SMSPlus, FCEUltra, HUGO, NeoPop, DGen, Bochs, HUGO-CD, FMSXBox,
Bliss, WinSTon, Gens, Z26, StepmaniaX, PCSXBox....what's next?

Enjoy!

PCSXBox - PSX Emulator for XBox v1

http://xport.xb-power.com

http://www.pcsx.net/

What's New :
- Emulates Playstation
- Memory Card manager (select from 10 memory cards)
- Save states (LTRIGGER+BLACK and LTRIGGER+WHITE)
- Cheat code searching
- Gameshark code-compatible
- Gameshark cheat code database with codes for over 1700 games
- Remappable PSX buttons
- Throttle/speed-up
- Supports BIN files or GZIP'd BIN files.  (GZIP is not the same as ZIP)
- Background - Thanks to CandyISO for the background image
- True Type Font - Thanks to CandyISO for this PSX font
- MP3 support
- XPort's Configurable PlayThing :)

Press Y from the main menu for help.
Press LTHUMB from main menu for Configuration
Press RTHUMB from main menu to switch between CDROM Drive and Hard Drive
Press LTHUMB during gameplay for the options menu

Many thanks go out to the PCSX team for this great emulator and also to
Jens Duttke for his Gameshark cheat code database.

Also thanks to Lantus for helping me with the PAL issues I was having.
Hopefully PAL users will be able to enjoy this just as much as NTSC users.

Further thanks to CandyISO for providing the background and TTF font.

This version does not support real CDs.  There are a different set of technical
hurdles involved with PSX cds than with SegaCD and PCE CD/SCD.  I was finally
able to get the XBox to read XA sectors, but it reads them much too slowly
for anyone to want to play games using it.  (Reads about 2.5KB per second)

For now, create BIN/CUE's of your PSX games and either copy them to your HD or
burn them to DVDR/CDRW.  Your BIN and CUE files should have the same names:

For example:

GAMENAME.BIN
GAMENAME.CUE

is a valid combination and

GAMENAME01.BIN
GAMENAME.CUE

is not.

Furthermore, if you use GZIP to compress your BIN image, you will end up with
a filename like

GAMENAME.BIN.GZ

This means that you need to rename your CUE file to be:

GAMENAME.BIN.CUE

or you could rename the GZ file so that the two files are:

GAMENAME.GZ
GAMENAME.CUE

make sense?

A note about GZIP'ing your images.  Yes, they will work, but you will suffer
a performance hit because there's no "true" direct access to any position in
the file.  Let's say the game is reading sectors 1 to 100 - it'll read them
lickity-split, but then when it requests, say, sector 30000 is has to scan through
and do some processing on sectors 100 to 30000 before it can read the data instead
of just jumping directly to that spot and reading.  This is the nature of compression.
No, cacheing of data does not help in this case.  So, in a nutshell, compression
is supported, but I advise against it unless you run from the HD and have replaced
the standard XBox HD with a faster one.

You can make an XBox ISO with a BIN/CUE image on it, burn it to a disc, run PCSXBox
from the HD, then press the RTHUMB button to get a listing of files on the disc.
This is to make upgrading easier for those who prefer to keep BIN/CUE images
on disc instead of on the HD.

When you select the BIN file to load, you will be presented with an options menu.
You can start the game using one of two different BIOS methods.  Using an actual
BIOS file for the emulation is the most compatible, however it's a little slower
than HLE.  Try both and see which one works best for the game you're playing.

There is also a section for changing the graphics options.  If the game you want
to play has graphics problems or isn't displaying graphics (but you can hear sound)
then you might want to try fiddling with some of the graphics options.  There is
also a specific CPU option in this section for fixing Parasite Eve and Vandal
Hearts 1 and 2.

Also on this options menu is the memory card manager.  From this section,
you can change the memory cards that are in slots one and two.  You have ten
different cards you can use.  Please note that changing the card number
while playing a game *does not* switch the actual memory card that the game is
using.

XPort's Configurable PlayThing

This is part of a project I did many years ago that fiddles with
curves and trajectories.  I thought it would look nice on the XBox.  You
be the judge.  :)  Move the character with the Left Analog stick and fire
using the B button.
(Hint - fiddle with the X and Y Multipliers on the "Squiggle" effect.)

Stella, Gnuboy, SMSPlus, FCEUltra, HUGO, NeoPop, DGen, Bochs, HUGO-CD, FMSXBox,
Bliss, WinSTon, Gens, Z26, StepmaniaX, PCSXBox....what's next?

Enjoy!