Systems' product ProDG for PSP® consists of an advanced
toolchain for building and debugging console games. Continuous
development based on customer feedback ensures we keep pace
with your demands.
following components are included. Click
on any of the components below to list its key features, click
a feature to view its benefits.
debugger provides comprehensive support for examining
source code, disassembly, memory, registers, variables,
TTY and the call stack.
See our 8 reasons to download
Usability is enhanced through
the debugger's split pane system which allows unlimited
configuration of pane layout. User control of single stepping
is complemented by conditional breakpoints.
Full support for
ProDG fully supports the new customized MIPS CPU in
the PSP® (PlayStation®Portable) including display of all opcodes
and registers for the CPU, FPU, and VFPU.
The debugger provides source-level single-step, step-over,
step-into, run to cursor, and breakpoint support.
- Supports conditional/counted
Conditional breakpoints aid debugging by allowing specified
criteria to trigger a break in your code. You can also
use counted breakpoints to halt code execution once
a breakpoint has been triggered a specified number of
The display list pane enables you to browse display
lists containing graphics commands that will be sent
to the "PSP®"'s graphics processor.
The pipeline analyzer examines program flow in CPU/FPU/VFPU
pipelines and displays additional useful information
alongside the disassembly of your code, such as number
of stall cycles, total instruction duration and pitch
and latency, address of the opcode causing the largest
stall, and the reason for the stall.
- VFPU support
Not only does ProDG understand the VFPU opcodes and
display useful VFPU timing information, it also analyzes
register dependencies and shows any overlap in VFPU
register sets used by VFPU opcodes by helpful color
coding of the disassembly. Of course it does this for
the main CPU and FPU also but the VFPU is where it is
most useful to help diagnose bugs caused by accidental
Freely drag names and expressions from source panes
to watch panes to add watches. Most panes support clipboard
mark and copy and many panes also allow their type of
information to be directly dumped to a text file.
- Watch and
Locals pane automatically tracks all local variables,
with tabs for 'this' pointer, and 'auto' context. Watch
pane accepts any expression including typecasts. Browse
your C/C++ data with intuitive expand/collapse of classes,
unions, structures, arrays. Use custom templates to
specify how you want certain data types to display.
The debugger also supports one-off evaluation of complex
expressions via script pane immediate mode.
The script pane allows to to execute your own ANSI-C
programs to perform complex debugger operations including
send/receive data to/from "PSP®" memory.
Start or stop execution, set breakpoints, load executable
files, customize debugger context menus, draw text and
graphics, manipulate files, change the way watches are
displayed, execute other programs, etc. Scripts
are plain text files but are compiled at run-time for
very fast execution. Scripts can also be auto-loaded
at debugger startup and custom script panes can be saved
and reloaded when you exit and restart the debugger.
allows easy project navigation
The workspace pane provides quick access to the files,
functions, globals and class definitions within your
ELF file. Combine this with source code search paths
to allow debugging of anything you have source code
for, regardless of who built it, and what their setup
The mixed-mode pane allows you to quickly toggle the
format of your source code.
the source, disassembly or mixed-mode, which will
interleave the disassembly of code with the original
Regular expressions are a standard way to describe a
string pattern, and can be used for searches within
and window system
Allows multiple, simultaneous views of the CPU registers,
memory, disassembly, source, local variables, and
watch points. You can also save numerous layouts and
recall them as and when needed.
- Save/load data
to/from various panes
Many of the panes have the ability to save or load blocks
of information to and from disk. Use this to quickly
restore a game state, or compare the status of memory
on different hardware.
accelerator keys/bindings and color schemes
The debugger key map can be altered to suit the developer.
SN Systems provide pre-defined keymaps for Visual Studio
and SN (for users who are used to our SDevTC product
or are using ProDG on another platform). The font, size
and color of text in each pane can be altered also.
- Pop-up expression
The debugger source panes feature hover evaluation.
Simply hover the cursor over some text or a selection,
and the evaluation or value of the underlying item will
instantly popup in a tooltip.
SN Systems' new SNC C/C++ Compiler has been developed
for the needs of the game console developer. High performance,
advanced optimizing controls and comprehensive language
support help you make better games.
on an industry-standard C++ front end, SNC offers extensive
control over project building and code generation. Developed
and maintained in-house by SN Systems, it forms the foundation
of SN Systems' programming systems for future console
C/C++ Compiler Key Benefits
code generation enables you to make better games.
The powerful optimization features provide you with
tight code quicker. Your productivity will be improved
using: the intuitive inline assembly syntax; pre-compiled
headers; Visual Studio .NET integration
multi platform code is easier with support for: ANSI/ISO
C/C++; Boost C++, GCC C/C++, Microsoft C/C++ and STLport
development based on customer feedback ensure we keep
pace with your demands. Our industry leading reputation
for responsiveness will get you through the crunch.
below for details of the optimization controls provided
Support for VFPU assembler, including SN Systems'
simplified syntax for the VFPU prefix feature.
- Advanced optimization controls
unrolling under precise user control
within loops can be replicated one or more times.
This decreases the loop control overhead and increases
the opportunities for scheduling.
inlining under precise user control
to small user functions can be replaced by the code
they call. This saves the overhead of making a function
call and creates additional opportunities for optimization
by providing the optimizer with greater scope on
which to work.
of intrinsic functions
control over the way the compiler instantiates C++
can be reordered in a way that improves the utilization
of the fine-grained parallelism available on the
point expression rearrangement
optimizations of floating point expressions are
mathematically equivalent, but are not necessarily
always computationally equivalent. This aspect of
optimization is under user control.
allows the compiler to optimize code across more
than one routine. Includes call modification analysis,
inlining in C, address leakage detection in C and
interprocedural register allocation.
module code optimization features
is a characteristic of optimization that it is possible
to do a better job when more of the program is given
to the compiler at one time. Given this characteristic,
it is generally true that you will obtain better
performance when more of the program is given to
the compiler at a single invocation.
a value that has already been computed is unnecessarily
recomputed, the first result can be held in a processor
register and reused instead of being recomputed.
Sometimes the value is a repeated expression in
the source code. Sometimes it is below the level
of the source code.
control variables that are not needed can be eliminated.
This situation is common in loops after strength
reduction has been applied.
supports template specializations where one or more
of the template parameters remains unspecialized.
kinds of improvements can be applied to the control
flow of the program. For example, unconditional
transfers to unconditional transfer instructions
can be eliminated.
The linker provides accurate control over the position,
allocation and alignment of code and data in memory.
Unused function and data stripping controls enable the
developer to minimize code size.
The assembler is invoked automatically by the compiler
driver to generate object modules. Debug information
for source level debugging of assembly programs is provided.
of the above tools with Visual Studio .NET (2003) is achieved
through Add-ins and Appwizards.
edit and manage your project using the Visual Studio IDE
will install a toolbar into Visual Studio to allow your
ProDG build environment to be used by Visual Studio.
Any feature natively available in Visual Studio is available
to use in your PSP® project, for example,
Source Safe controls.
integration between the IDE and the ProDG Debugger
built, you can run/debug your game in the ProDG debugger
from within Visual Studio. Breakpoints (including
conditional information) are automatically transferred
between the IDE and debugger, and files in the debugger
source pane can be opened in Visual Studio from within
and linker errors and warnings are output in Visual
Studio format so that double-clicking on a build error
in the output window opens the source file at the
appropriate line in the Visual Studio editor.
build tool integration
command-line switches, command-line arguments for the
Debugger and ELF, and fileserving paths, can all be
set via a configuration dialog within Visual Studio
.NET supports configuration-specific properties, for
example different linker scripts could be used for debug
and release builds.
browsing and Intellisense
Visual Studio's built in source browsing and Intellisense
capabilities (when editing a C/C++ source) in your PSP®
project, just as you would in a Win32 build.
source dependency checking for C, C++ and assembler
files during the build process.
Simple interface for loading and running executable
files. Includes support for multiple module pre-loading.
all development tools from your own PC
Manage PSP® development tools that
is visible on a LAN. This includes visibility of hardware
status, and the currently connected user.
safe Kernel flashing
Update any PSP® development tools
from a single location. Removes the need for an additional
file serving, including named pipes
File serving allows your application, running on the
PSP® development tools, to access
files located on your host PC. You can read your game
data directly from your PC, saving you time and resources,
and access file information such as size and access
times directly from the PSP® development tools.
named pipe support provides a two-way communication
channel between your application and the host PC.
Now you can write software to control the PSP®
development tools from your PC!
View the output from the PSP® development tools in pre-defined streams or in user selectable
formats. ANSI coloring is supported to improve legibility
and resizable buffers allow you to save output for your
test records and later analysis.
Manager Software Development Kit (SDK)
SDK provides access to Target Manager functions from
your own applications and plug-ins. It leaves you
free to concentrate on your application, leaving target
communications to the tried and tested Target Manager.
- Tuner - NEW!
- ProView - NEW!
documentation is supplied in PDF and HTML formats. Technical
articles and FAQs are available in the developer technical
support zone of the website.
support is provided via e-mail and telephone during normal
UK business hours. We also provide support via the customer-only
technical support zone of our website where the following
services are available 24 hours a day, 7 days a week:
and technical articles
PC running Windows XP Professional.
PSP® development tools.
ProDG for PSP (which includes Tuner and ProView) is available to order at no additional cost via your SCE account manager.
is a registered trademark of Sony Computer Entertainment Inc.