gsdx-ogl: sync from trunk 5179:5091

git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl@5180 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
gregory.hainaut 2012-04-26 19:51:07 +00:00
commit 300ea42977
432 changed files with 93684 additions and 13432 deletions

344
3rdparty/portaudio/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,344 @@
# $Id: $
#
# For a "How-To" please refer to the Portaudio documentation at:
# http://www.portaudio.com/trac/wiki/TutorialDir/Compile/CMake
#
PROJECT( portaudio )
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
OPTION(PA_CONFIG_LIB_OUTPUT_PATH "Make sure that output paths are kept neat" OFF)
IF(CMAKE_CL_64)
SET(TARGET_POSTFIX x64)
IF(PA_CONFIG_LIB_OUTPUT_PATH)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin/x64)
ENDIF(PA_CONFIG_LIB_OUTPUT_PATH)
ELSE(CMAKE_CL_64)
SET(TARGET_POSTFIX x86)
IF(PA_CONFIG_LIB_OUTPUT_PATH)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin/Win32)
ENDIF(PA_CONFIG_LIB_OUTPUT_PATH)
ENDIF(CMAKE_CL_64)
IF(WIN32 AND MSVC)
OPTION(PA_DLL_LINK_WITH_STATIC_RUNTIME "Link with static runtime libraries (minimizes runtime dependencies)" ON)
IF(PA_DLL_LINK_WITH_STATIC_RUNTIME)
FOREACH(flag_var
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
IF(${flag_var} MATCHES "/MD")
STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
ENDIF(${flag_var} MATCHES "/MD")
ENDFOREACH(flag_var)
ENDIF(PA_DLL_LINK_WITH_STATIC_RUNTIME)
ENDIF(WIN32 AND MSVC)
IF(WIN32)
OPTION(PA_UNICODE_BUILD "Enable Portaudio Unicode build" ON)
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_support)
# Try to find DirectX SDK
FIND_PACKAGE(DXSDK)
# Try to find ASIO SDK (assumes that portaudio and asiosdk folders are side-by-side, see
# http://www.portaudio.com/trac/wiki/TutorialDir/Compile/WindowsASIOMSVC)
FIND_PACKAGE(ASIOSDK)
IF(ASIOSDK_FOUND)
OPTION(PA_USE_ASIO "Enable support for ASIO" ON)
ELSE(ASIOSDK_FOUND)
OPTION(PA_USE_ASIO "Enable support for ASIO" OFF)
ENDIF(ASIOSDK_FOUND)
IF(DXSDK_FOUND)
OPTION(PA_USE_DS "Enable support for DirectSound" ON)
ELSE(DXSDK_FOUND)
OPTION(PA_USE_DS "Enable support for DirectSound" OFF)
ENDIF(DXSDK_FOUND)
OPTION(PA_USE_WMME "Enable support for MME" ON)
OPTION(PA_USE_WASAPI "Enable support for WASAPI" ON)
OPTION(PA_USE_WDMKS "Enable support for WDMKS" ON)
OPTION(PA_USE_WDMKS_DEVICE_INFO "Use WDM/KS API for device info" ON)
MARK_AS_ADVANCED(PA_USE_WDMKS_DEVICE_INFO)
IF(PA_USE_DS)
OPTION(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE "Use DirectSound full duplex create" ON)
MARK_AS_ADVANCED(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE)
ENDIF(PA_USE_DS)
ENDIF(WIN32)
# Set variables for DEF file expansion
IF(NOT PA_USE_ASIO)
SET(DEF_EXCLUDE_ASIO_SYMBOLS ";")
ENDIF(NOT PA_USE_ASIO)
IF(NOT PA_USE_WASAPI)
SET(DEF_EXCLUDE_WASAPI_SYMBOLS ";")
ENDIF(NOT PA_USE_WASAPI)
IF(PA_USE_WDMKS_DEVICE_INFO)
ADD_DEFINITIONS(-DPAWIN_USE_WDMKS_DEVICE_INFO)
ENDIF(PA_USE_WDMKS_DEVICE_INFO)
IF(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE)
ADD_DEFINITIONS(-DPAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE)
ENDIF(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE)
#######################################
IF(WIN32)
INCLUDE_DIRECTORIES(src/os/win)
ENDIF(WIN32)
IF(PA_USE_ASIO)
INCLUDE_DIRECTORIES(${ASIOSDK_ROOT_DIR}/common)
INCLUDE_DIRECTORIES(${ASIOSDK_ROOT_DIR}/host)
INCLUDE_DIRECTORIES(${ASIOSDK_ROOT_DIR}/host/pc)
SET(PA_ASIO_INCLUDES
include/pa_asio.h
)
SET(PA_ASIO_SOURCES
src/hostapi/asio/pa_asio.cpp
)
SET(PA_ASIOSDK_SOURCES
${ASIOSDK_ROOT_DIR}/common/asio.cpp
${ASIOSDK_ROOT_DIR}/host/pc/asiolist.cpp
${ASIOSDK_ROOT_DIR}/host/asiodrivers.cpp
)
SOURCE_GROUP("hostapi\\ASIO" FILES
${PA_ASIO_SOURCES}
)
SOURCE_GROUP("hostapi\\ASIO\\ASIOSDK" FILES
${PA_ASIOSDK_SOURCES}
)
ENDIF(PA_USE_ASIO)
IF(PA_USE_DS)
INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR})
INCLUDE_DIRECTORIES(src/os/win)
SET(PA_DS_INCLUDES
include/pa_win_ds.h
src/hostapi/dsound/pa_win_ds_dynlink.h
)
SET(PA_DS_SOURCES
src/hostapi/dsound/pa_win_ds.c
src/hostapi/dsound/pa_win_ds_dynlink.c
)
SOURCE_GROUP("hostapi\\dsound" FILES
${PA_DS_INCLUDES}
${PA_DS_SOURCES}
)
ENDIF(PA_USE_DS)
IF(PA_USE_WMME)
SET(PA_WMME_INCLUDES
include/pa_win_wmme.h
)
SET(PA_WMME_SOURCES
src/hostapi/wmme/pa_win_wmme.c
)
SOURCE_GROUP("hostapi\\wmme" FILES
${PA_WMME_SOURCES}
)
ENDIF(PA_USE_WMME)
IF(PA_USE_WASAPI)
SET(PA_WASAPI_INCLUDES
include/pa_win_wasapi.h
)
SET(PA_WASAPI_SOURCES
src/hostapi/wasapi/pa_win_wasapi.c
)
SOURCE_GROUP("hostapi\\wasapi" FILES
${PA_WASAPI_SOURCES}
)
ENDIF(PA_USE_WASAPI)
IF(PA_USE_WDMKS)
SET(PA_WDMKS_INCLUDES
include/pa_win_wdmks.h
)
SET(PA_WDMKS_SOURCES
src/hostapi/wdmks/pa_win_wdmks.c
)
SOURCE_GROUP("hostapi\\wdmks" FILES
${PA_WDMKS_SOURCES}
)
ENDIF(PA_USE_WDMKS)
SET(PA_SKELETON_SOURCES
src/hostapi/skeleton/pa_hostapi_skeleton.c
)
SOURCE_GROUP("hostapi\\skeleton"
${PA_SKELETON_SOURCES})
#######################################
IF(WIN32)
SET(PA_INCLUDES
include/portaudio.h
${PA_ASIO_INCLUDES}
${PA_DS_INCLUDES}
${PA_WMME_INCLUDES}
${PA_WASAPI_INCLUDES}
${PA_WDMKS_INCLUDES}
)
ENDIF(WIN32)
SOURCE_GROUP("include" FILES
${PA_INCLUDES}
)
SET(PA_COMMON_INCLUDES
src/common/pa_allocation.h
src/common/pa_converters.h
src/common/pa_cpuload.h
src/common/pa_debugprint.h
src/common/pa_dither.h
src/common/pa_endianness.h
src/common/pa_hostapi.h
src/common/pa_memorybarrier.h
src/common/pa_process.h
src/common/pa_ringbuffer.h
src/common/pa_stream.h
src/common/pa_trace.h
src/common/pa_types.h
src/common/pa_util.h
)
SET(PA_COMMON_SOURCES
src/common/pa_allocation.c
src/common/pa_converters.c
src/common/pa_cpuload.c
src/common/pa_debugprint.c
src/common/pa_dither.c
src/common/pa_front.c
src/common/pa_process.c
src/common/pa_ringbuffer.c
src/common/pa_stream.c
src/common/pa_trace.c
)
SOURCE_GROUP("common" FILES
${PA_COMMON_INCLUDES}
${PA_COMMON_SOURCES}
)
SOURCE_GROUP("cmake_generated" FILES
${CMAKE_CURRENT_BINARY_DIR}/portaudio_cmake.def
${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h
)
IF(WIN32)
SET(PA_PLATFORM_SOURCES
src/os/win/pa_win_hostapis.c
src/os/win/pa_win_util.c
src/os/win/pa_win_waveformat.c
src/os/win/pa_win_wdmks_utils.c
src/os/win/pa_win_coinitialize.c
src/os/win/pa_x86_plain_converters.c
)
SOURCE_GROUP("os\\win" FILES
${PA_PLATFORM_SOURCES}
)
ENDIF(WIN32)
INCLUDE_DIRECTORIES( include )
INCLUDE_DIRECTORIES( src/common )
IF(WIN32 AND MSVC)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
ENDIF(WIN32 AND MSVC)
ADD_DEFINITIONS(-DPORTAUDIO_CMAKE_GENERATED)
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
SET(SOURCES_LESS_ASIO_SDK
${PA_COMMON_SOURCES}
${PA_ASIO_SOURCES}
${PA_DS_SOURCES}
${PA_WMME_SOURCES}
${PA_WASAPI_SOURCES}
${PA_WDMKS_SOURCES}
${PA_SKELETON_SOURCES}
${PA_PLATFORM_SOURCES}
)
IF(PA_UNICODE_BUILD)
SET_SOURCE_FILES_PROPERTIES(
${SOURCES_LESS_ASIO_SDK}
PROPERTIES
COMPILE_DEFINITIONS "UNICODE;_UNICODE"
)
ENDIF(PA_UNICODE_BUILD)
ADD_LIBRARY(portaudio SHARED
${PA_INCLUDES}
${PA_COMMON_INCLUDES}
${SOURCES_LESS_ASIO_SDK}
${PA_ASIOSDK_SOURCES}
${CMAKE_CURRENT_BINARY_DIR}/portaudio_cmake.def
${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h
)
ADD_LIBRARY(portaudio_static STATIC
${PA_INCLUDES}
${PA_COMMON_INCLUDES}
${SOURCES_LESS_ASIO_SDK}
${PA_ASIOSDK_SOURCES}
${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h
)
# Configure the exports file according to settings
SET(GENERATED_MESSAGE "CMake generated file, do NOT edit! Use CMake-GUI to change configuration instead.")
CONFIGURE_FILE( cmake_support/template_portaudio.def ${CMAKE_CURRENT_BINARY_DIR}/portaudio_cmake.def @ONLY )
# Configure header for options (PA_USE_xxx)
CONFIGURE_FILE( cmake_support/options_cmake.h.in ${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h @ONLY )
IF(WIN32)
# If we use DirectSound, we need this for the library to be found (if not in VS project settings)
IF(PA_USE_DS AND DXSDK_FOUND)
TARGET_LINK_LIBRARIES(portaudio ${DXSDK_DSOUND_LIBRARY})
ENDIF(PA_USE_DS AND DXSDK_FOUND)
# If we use WDM/KS we need setupapi.lib
IF(PA_USE_WDMKS)
TARGET_LINK_LIBRARIES(portaudio setupapi)
ENDIF(PA_USE_WDMKS)
SET_TARGET_PROPERTIES(portaudio PROPERTIES OUTPUT_NAME portaudio_${TARGET_POSTFIX})
SET_TARGET_PROPERTIES(portaudio_static PROPERTIES OUTPUT_NAME portaudio_static_${TARGET_POSTFIX})
ENDIF(WIN32)
OPTION(PA_BUILD_TESTS "Include test projects" OFF)
OPTION(PA_BUILD_EXAMPLES "Include example projects" OFF)
# Prepared for inclusion of test files
IF(PA_BUILD_TESTS)
SUBDIRS(test)
ENDIF(PA_BUILD_TESTS)
# Prepared for inclusion of test files
IF(PA_BUILD_EXAMPLES)
SUBDIRS(examples)
ENDIF(PA_BUILD_EXAMPLES)
#################################

View File

@ -942,6 +942,10 @@
RelativePath="..\..\include\pa_win_waveformat.h"
>
</File>
<File
RelativePath="..\..\include\pa_win_wdmks.h"
>
</File>
<File
RelativePath="..\..\include\pa_win_wmme.h"
>

View File

@ -639,6 +639,7 @@
<ClInclude Include="..\..\include\pa_win_ds.h" />
<ClInclude Include="..\..\include\pa_win_wasapi.h" />
<ClInclude Include="..\..\include\pa_win_waveformat.h" />
<ClInclude Include="..\..\include\pa_win_wdmks.h" />
<ClInclude Include="..\..\include\pa_win_wmme.h" />
<ClInclude Include="..\..\include\portaudio.h" />
<ClInclude Include="..\..\src\os\win\pa_win_coinitialize.h" />

View File

@ -175,5 +175,8 @@
<ClInclude Include="..\..\src\os\win\pa_win_coinitialize.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\include\pa_win_wdmks.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -0,0 +1,41 @@
# $Id: $
#
# - Try to find the ASIO SDK
# Once done this will define
#
# ASIOSDK_FOUND - system has ASIO SDK
# ASIOSDK_ROOT_DIR - path to the ASIO SDK base directory
# ASIOSDK_INCLUDE_DIR - the ASIO SDK include directory
if(WIN32)
else(WIN32)
message(FATAL_ERROR "FindASIOSDK.cmake: Unsupported platform ${CMAKE_SYSTEM_NAME}" )
endif(WIN32)
file(GLOB results "${CMAKE_CURRENT_SOURCE_DIR}/../as*")
foreach(f ${results})
if(IS_DIRECTORY ${f})
set(ASIOSDK_PATH_HINT ${ASIOSDK_PATH_HINT} ${f})
endif()
endforeach()
find_path(ASIOSDK_ROOT_DIR
common/asio.h
HINTS
${ASIOSDK_PATH_HINT}
)
find_path(ASIOSDK_INCLUDE_DIR
asio.h
PATHS
${ASIOSDK_ROOT_DIR}/common
)
# handle the QUIETLY and REQUIRED arguments and set ASIOSDK_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ASIOSDK DEFAULT_MSG ASIOSDK_ROOT_DIR ASIOSDK_INCLUDE_DIR)
MARK_AS_ADVANCED(
ASIOSDK_ROOT_DIR ASIOSDK_INCLUDE_DIR
)

View File

@ -0,0 +1,59 @@
# $Id: $
#
# - Try to find the DirectX SDK
# Once done this will define
#
# DXSDK_FOUND - system has DirectX SDK
# DXSDK_ROOT_DIR - path to the DirectX SDK base directory
# DXSDK_INCLUDE_DIR - the DirectX SDK include directory
# DXSDK_LIBRARY_DIR - DirectX SDK libraries path
#
# DXSDK_DSOUND_LIBRARY - Path to dsound.lib
#
if(WIN32)
else(WIN32)
message(FATAL_ERROR "FindDXSDK.cmake: Unsupported platform ${CMAKE_SYSTEM_NAME}" )
endif(WIN32)
find_path(DXSDK_ROOT_DIR
include/dxsdkver.h
HINTS
$ENV{DXSDK_DIR}
)
find_path(DXSDK_INCLUDE_DIR
dxsdkver.h
PATHS
${DXSDK_ROOT_DIR}/include
)
IF(CMAKE_CL_64)
find_path(DXSDK_LIBRARY_DIR
dsound.lib
PATHS
${DXSDK_ROOT_DIR}/lib/x64
)
ELSE(CMAKE_CL_64)
find_path(DXSDK_LIBRARY_DIR
dsound.lib
PATHS
${DXSDK_ROOT_DIR}/lib/x86
)
ENDIF(CMAKE_CL_64)
find_library(DXSDK_DSOUND_LIBRARY
dsound.lib
PATHS
${DXSDK_LIBRARY_DIR}
)
# handle the QUIETLY and REQUIRED arguments and set DXSDK_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(DXSDK DEFAULT_MSG DXSDK_ROOT_DIR DXSDK_INCLUDE_DIR)
MARK_AS_ADVANCED(
DXSDK_ROOT_DIR DXSDK_INCLUDE_DIR
DXSDK_LIBRARY_DIR DXSDK_DSOUND_LIBRARY
)

View File

@ -0,0 +1,31 @@
/* $Id: $
!!! @GENERATED_MESSAGE@ !!!
Header file configured by CMake to convert CMake options/vars to macros. It is done this way because if set via
preprocessor options, MSVC f.i. has no way of knowing when an option (or var) changes as there is no dependency chain.
The generated "options_cmake.h" should be included like so:
#ifdef PORTAUDIO_CMAKE_GENERATED
#include "options_cmake.h"
#endif
so that non-CMake build environments are left intact.
Source template: cmake_support/options_cmake.h.in
*/
#ifdef _WIN32
#if defined(PA_USE_ASIO) || defined(PA_USE_DS) || defined(PA_USE_WMME) || defined(PA_USE_WASAPI) || defined(PA_USE_WDMKS)
#error "This header needs to be included before pa_hostapi.h!!"
#endif
#cmakedefine01 PA_USE_ASIO
#cmakedefine01 PA_USE_DS
#cmakedefine01 PA_USE_WMME
#cmakedefine01 PA_USE_WASAPI
#cmakedefine01 PA_USE_WDMKS
#else
#error "Platform currently not supported by CMake script"
#endif

View File

@ -0,0 +1,53 @@
; $Id: $
;
; !!! @GENERATED_MESSAGE@ !!!
EXPORTS
;
Pa_GetVersion @1
Pa_GetVersionText @2
Pa_GetErrorText @3
Pa_Initialize @4
Pa_Terminate @5
Pa_GetHostApiCount @6
Pa_GetDefaultHostApi @7
Pa_GetHostApiInfo @8
Pa_HostApiTypeIdToHostApiIndex @9
Pa_HostApiDeviceIndexToDeviceIndex @10
Pa_GetLastHostErrorInfo @11
Pa_GetDeviceCount @12
Pa_GetDefaultInputDevice @13
Pa_GetDefaultOutputDevice @14
Pa_GetDeviceInfo @15
Pa_IsFormatSupported @16
Pa_OpenStream @17
Pa_OpenDefaultStream @18
Pa_CloseStream @19
Pa_SetStreamFinishedCallback @20
Pa_StartStream @21
Pa_StopStream @22
Pa_AbortStream @23
Pa_IsStreamStopped @24
Pa_IsStreamActive @25
Pa_GetStreamInfo @26
Pa_GetStreamTime @27
Pa_GetStreamCpuLoad @28
Pa_ReadStream @29
Pa_WriteStream @30
Pa_GetStreamReadAvailable @31
Pa_GetStreamWriteAvailable @32
Pa_GetSampleSize @33
Pa_Sleep @34
@DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_GetAvailableBufferSizes @50
@DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_ShowControlPanel @51
PaUtil_InitializeX86PlainConverters @52
@DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_GetInputChannelName @53
@DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_GetOutputChannelName @54
PaUtil_SetDebugPrintFunction @55
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetDeviceDefaultFormat @56
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetDeviceRole @57
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_ThreadPriorityBoost @58
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_ThreadPriorityRevert @59
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetFramesPerHostBuffer @60
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetJackDescription @61
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetJackCount @62

View File

@ -1,60 +1,60 @@
/* doxygen index page */
/** @mainpage
@section overview Overview
PortAudio is a cross-platform, open-source C language library for real-time audio input and output. The library provides functions that allow your software to acquire and output real-time audio streams from your computer's hardware audio interfaces. It is designed to simplify writing cross-platform audio applications, and also to simplify the development of audio software in general by hiding the complexities of dealing directly with each native audio API. PortAudio is used to implement sound recording, editing and mixing applications, software synthesizers, effects processors, music players, internet telephony applications, software defined radios and more. Supported platforms include MS Windows, Mac OS X and Linux. Third-party language bindings make it possible to call PortAudio from other programming languages including C++, C#, Python, PureBasic, FreePascal and Lazarus.
@section start_here Start here
- @ref api_overview<br>
A top-down view of the PortAudio API, its capabilities, functions and data structures
- <a href="http://www.portaudio.com/trac/wiki/TutorialDir/TutorialStart">PortAudio Tutorials</a><br>
Get started writing code with PortAudio tutorials
- @ref examples_src "Examples"<br>
Simple example programs demonstrating PortAudio usage
- @ref License<br>
PortAudio is licenced under the MIT Expat open source licence. We make a non-binding request for you to contribute your changes back to the project.
@section reference API Reference
- portaudio.h Portable API<br>
Detailed documentation for each portable API function and data type
- @ref public_header "Host API Specific Extensions"<br>
Documentation for non-portable platform-specific host API extensions
@section resources Resources
- <a href="http://www.portaudio.com">The PortAudio website</a>
- <a href="http://music.columbia.edu/mailman/listinfo/portaudio/">Our mailing list for users and developers</a><br>
- <a href="http://www.portaudio.com/trac">The PortAudio wiki</a>
@section developer_resources Developer Resources
@if INTERNAL
- @ref srcguide
@endif
- <a href="http://www.portaudio.com/trac">Our Trac wiki and issue tracking system</a>
- <a href="http://www.portaudio.com/docs/proposals/014-StyleGuide.html">Coding guidelines</a>
If you're interested in helping out with PortAudio development we're more than happy for you to be involved. Just drop by the PortAudio mailing list and ask how you can help. Or <a href="http://www.portaudio.com/trac/report/3">check out the starter tickets in Trac</a>.
@section older_api_versions Older API Versions
This documentation covers the current API version: PortAudio V19, API version 2.0. API 2.0 differs in a number of ways from previous versions (most often encountered in PortAudio V18), please consult the enhancement proposals for details of what was added/changed for V19:
http://www.portaudio.com/docs/proposals/index.html
/* doxygen index page */
/** @mainpage
@section overview Overview
PortAudio is a cross-platform, open-source C language library for real-time audio input and output. The library provides functions that allow your software to acquire and output real-time audio streams from your computer's hardware audio interfaces. It is designed to simplify writing cross-platform audio applications, and also to simplify the development of audio software in general by hiding the complexities of dealing directly with each native audio API. PortAudio is used to implement sound recording, editing and mixing applications, software synthesizers, effects processors, music players, internet telephony applications, software defined radios and more. Supported platforms include MS Windows, Mac OS X and Linux. Third-party language bindings make it possible to call PortAudio from other programming languages including C++, C#, Python, PureBasic, FreePascal and Lazarus.
@section start_here Start here
- @ref api_overview<br>
A top-down view of the PortAudio API, its capabilities, functions and data structures
- @ref tutorial_start<br>
Get started writing code with PortAudio tutorials
- @ref examples_src "Examples"<br>
Simple example programs demonstrating PortAudio usage
- @ref License<br>
PortAudio is licenced under the MIT Expat open source licence. We make a non-binding request for you to contribute your changes back to the project.
@section reference API Reference
- portaudio.h Portable API<br>
Detailed documentation for each portable API function and data type
- @ref public_header "Host API Specific Extensions"<br>
Documentation for non-portable platform-specific host API extensions
@section resources Resources
- <a href="http://www.portaudio.com">The PortAudio website</a>
- <a href="http://music.columbia.edu/mailman/listinfo/portaudio/">Our mailing list for users and developers</a><br>
- <a href="http://www.assembla.com/spaces/portaudio/wiki">The PortAudio wiki</a>
@section developer_resources Developer Resources
@if INTERNAL
- @ref srcguide
@endif
- <a href="http://www.assembla.com/spaces/portaudio/wiki">Our wiki and issue tracking system</a>
- <a href="http://www.portaudio.com/docs/proposals/014-StyleGuide.html">Coding guidelines</a>
If you're interested in helping out with PortAudio development we're more than happy for you to be involved. Just drop by the PortAudio mailing list and ask how you can help. Or <a href="http://www.assembla.com/spaces/portaudio/tickets">check out the starter tickets</a>.
@section older_api_versions Older API Versions
This documentation covers the current API version: PortAudio V19, API version 2.0. API 2.0 differs in a number of ways from previous versions (most often encountered in PortAudio V18), please consult the enhancement proposals for details of what was added/changed for V19:
http://www.portaudio.com/docs/proposals/index.html
*/

View File

@ -0,0 +1,68 @@
/** @page blocking_read_write Blocking Read/Write Functions
@ingroup tutorial
PortAudio V19 adds a huge advance over previous versions with a feature called Blocking I/O. Although it may have lower performance that the callback method described earlier in this tutorial, blocking I/O is easier to understand and is, in some cases, more compatible with third party systems than the callback method. Most people starting audio programming also find Blocking I/O easier to learn.
Blocking I/O works in much the same way as the callback method except that instead of providing a function to provide (or consume) audio data, you must feed data to (or consume data from) PortAudio at regular intervals, usually inside a loop. The example below, excepted from patest_read_write_wire.c, shows how to open the default device, and pass data from its input to its output for a set period of time. Note that we use the default high latency values to help avoid underruns since we are usually reading and writing audio data from a relatively low priority thread, and there is usually extra buffering required to make blocking I/O work.
Note that not all API's implement Blocking I/O at this point, so for maximum portability or performance, you'll still want to use callbacks.
@code
/* -- initialize PortAudio -- */
err = Pa_Initialize();
if( err != paNoError ) goto error;
/* -- setup input and output -- */
inputParameters.device = Pa_GetDefaultInputDevice(); /* default input device */
inputParameters.channelCount = NUM_CHANNELS;
inputParameters.sampleFormat = PA_SAMPLE_TYPE;
inputParameters.suggestedLatency = Pa_GetDeviceInfo( inputParameters.device )->defaultHighInputLatency ;
inputParameters.hostApiSpecificStreamInfo = NULL;
outputParameters.device = Pa_GetDefaultOutputDevice(); /* default output device */
outputParameters.channelCount = NUM_CHANNELS;
outputParameters.sampleFormat = PA_SAMPLE_TYPE;
outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )->defaultHighOutputLatency;
outputParameters.hostApiSpecificStreamInfo = NULL;
/* -- setup stream -- */
err = Pa_OpenStream(
&stream,
&inputParameters,
&outputParameters,
SAMPLE_RATE,
FRAMES_PER_BUFFER,
paClipOff, /* we won't output out of range samples so don't bother clipping them */
NULL, /* no callback, use blocking API */
NULL ); /* no callback, so no callback userData */
if( err != paNoError ) goto error;
/* -- start stream -- */
err = Pa_StartStream( stream );
if( err != paNoError ) goto error;
printf("Wire on. Will run one minute.\n"); fflush(stdout);
/* -- Here's the loop where we pass data from input to output -- */
for( i=0; i<(60*SAMPLE_RATE)/FRAMES_PER_BUFFER; ++i )
{
err = Pa_WriteStream( stream, sampleBlock, FRAMES_PER_BUFFER );
if( err ) goto xrun;
err = Pa_ReadStream( stream, sampleBlock, FRAMES_PER_BUFFER );
if( err ) goto xrun;
}
/* -- Now we stop the stream -- */
err = Pa_StopStream( stream );
if( err != paNoError ) goto error;
/* -- don't forget to cleanup! -- */
err = Pa_CloseStream( stream );
if( err != paNoError ) goto error;
Pa_Terminate();
return 0;
@endcode
Previous: \ref querying_devices | Next: \ref exploring
*/

View File

@ -0,0 +1,29 @@
/** @page compile_cmake Creating MSVC Build Files via CMake
@ingroup tutorial
This is a simple "How-to" for creating build files for Microsoft Visual C++ via CMake and the CMakeLists.txt file
1. Install CMake if you haven't got it already ([http://www.cmake.org], minimum version required is 2.8).
2. If you want ASIO support you need to D/L the ASIO2 SDK from Steinberg, and place it according to \ref compile_windows_asio_msvc
3. Run the CMake GUI application and browse to <b>source files</b> directory and <b>build</b> directory:
a. The <b>source files</b> directory (<i>"Where is the source code"</i>) is where the portaudio CMakeLists.txt file is located.
b. The <b>build</b> directory (<i>"Where to build the binaries"</i>) is pretty much anywhere you like. A common practice though is to have the build directory located <b>outside</b> the
source files tree (a so called "out-of-source build")
4. Click <i>Configure</i>. This will prompt you to select which build files to generate. <b>Note</b> Only Microsoft Visual C++ build files currently supported!
5. In the CMake option list, enable the PORTAUDIO_xxx options you need, then click <i>Configure</i> again (Note that after this there are no options marked with red color)
6. Click <i>Generate</i> and you'll now (hopefully) have your VS build files in your previously defined <b>build</b> directory.
Both ASIO and DirectX SDK are automatically searched for by the CMake script, so if you have DirectX SDK installed and have placed the ASIO2 SDK according to point 2 above, you should be able to build portaudio with !DirectSound and ASIO support.
Should you later on decide to change a portaudio option, just jump in at step 5 above (MSVC will then prompt you to reload projects/solutions/workspace)
--- Robert Bielik
Back to the Tutorial: \ref tutorial_start
*/

View File

@ -0,0 +1,77 @@
/** @page compile_linux Building Portaudio for Linux
@ingroup tutorial
<i>Note: this page has not been reviewed, and may contain errors.</i>
@section comp_linux1 Installing ALSA Development Kit
The OSS sound API is very old and not well supported. It is recommended that you use the ALSA sound API.
The PortAudio configure script will look for the ALSA SDK. You can install the ALSA SDK on Ubuntu using:
@code
sudo apt-get install libasound-dev
@endcode
You might need to use yum, or some other package manager, instead of apt-get on your machine.
If you do not install ALSA then you might get a message when testing that says you have no audio devices.
You can find out more about ALSA here: http://www.alsa-project.org/
@section comp_linux2 Configuring and Compiling PortAudio
You can build PortAudio in Linux Environments using the standard configure/make tools:
@code
./configure && make
@endcode
That will build PortAudio using Jack, ALSA and OSS in whatever combination they are found on your system. For example, if you have Jack and OSS but not ALSA, it will build using Jack and OSS but not ALSA. This step also builds a number of tests, which can be found in the bin directory of PortAudio. It's a good idea to run some of these tests to make sure PortAudio is working correctly.
@section comp_linux3 Using PortAudio in your Projects
To use PortAudio in your apps, you can simply install the .so files:
@code
make install
@endcode
Projects built this way will expect PortAudio to be installed on target systems in order to run. If you want to build a more self-contained binary, you may use the libportaudio.a file:
@code
cp lib/.libs/libportaudio.a /YOUR/PROJECT/DIR
@endcode
You may also need to copy portaudio.h, located in the include/ directory of PortAudio into your project. Note that you will usually need to link with the approriate libraries that you used, such as ALSA and JACK, as well as with librt and libpthread. For example:
@code
gcc -lrt -lasound -ljack -lpthread -o YOUR_BINARY main.c libportaudio.a
@endcode
@section comp_linux4 Linux Extensions
Note that the ALSA PortAudio back-end adds a few extensions to the standard API that you may take advantage of. To use these functions be sure to include the pa_linux_alsa.h file found in the include file in the PortAudio folder. This file contains further documentation on the following functions:
PaAlsaStreamInfo/PaAlsa_InitializeStreamInfo::
Objects of the !PaAlsaStreamInfo type may be used for the !hostApiSpecificStreamInfo attribute of a !PaStreamParameters object, in order to specify the name of an ALSA device to open directly. Specify the device via !PaAlsaStreamInfo.deviceString, after initializing the object with PaAlsa_InitializeStreamInfo.
PaAlsa_EnableRealtimeScheduling::
PA ALSA supports real-time scheduling of the audio callback thread (using the FIFO pthread scheduling policy), via the extension PaAlsa_EnableRealtimeScheduling. Call this on the stream before starting it with the <i>enableScheduling</i> parameter set to true or false, to enable or disable this behaviour respectively.
PaAlsa_GetStreamInputCard::
Use this function to get the ALSA-lib card index of the stream's input device.
PaAlsa_GetStreamOutputCard::
Use this function to get the ALSA-lib card index of the stream's output device.
Of particular importance is PaAlsa_EnableRealtimeScheduling, which allows ALSA to run at a high priority to prevent ordinary processes on the system from preempting audio playback. Without this, low latency audio playback will be irregular and will contain frequent drop-outs.
@section comp_linux5 Linux Debugging
Eliot Blennerhassett writes:
On linux build, use e.g. "libtool gdb bin/patest_sine8" to debug that program.
This is because on linux bin/patest_sine8 is a libtool shell script that wraps
bin/.libs/patest_sine8 and allows it to find the appropriate libraries within
the build tree.
*/

View File

@ -0,0 +1,121 @@
/** @page compile_mac_coreaudio Building Portaudio for Mac OS X
@ingroup tutorial
@section comp_mac_ca_1 Requirements
* OS X 10.4 or later. PortAudio v19 currently only compiles and runs on OS X version 10.4 or later. Because of its heavy reliance on memory barriers, it's not clear how easy it would be to back-port PortAudio to OS X version 10.3. Leopard support requires the 2007 snapshot or later.
* Apple's Xcode and its related tools installed in the default location. There is no Xcode project for PortAudio.
* Mac 10.4 SDK. Look for "/Developer/SDKs/MacOSX10.4u.sdk" folder on your system. It may be installed with XCode. If not then you can download it from Apple Developer Connection. http://connect.apple.com/
@section comp_mac_ca_2 Building
To build PortAudio, simply use the Unix-style "./configure && make":
@code
./configure && make
@endcode
You do <b>not</b> need to do "make install", and we don't recommend it; however, you may be using software that instructs you to do so, in which case you should follow those instructions. (Note from Phil: I had to do "sudo make install" after the command above, otherwise XCode complained that it could not find "/usr/local/lib/libportaudio.dylib" when I compiled an example.)
The result of these steps will be a file named "libportaudio.dylib" in the directory "usr/local/lib/".
By default, this will create universal binaries and therefore requires the Universal SDK from Apple, included with XCode 2.1 and higher.
@section comp_mac_ca_3 Other Build Options
There are a variety of other options for building PortAudio. The default described above is recommended as it is the most supported and tested; however, your needs may differ and require other options, which are described below.
@subsection comp_mac_ca_3.1 Building Non-Universal Libraries
By default, PortAudio is built as a universal binary. This includes 64-bit versions if you are compiling on 10.5, Leopard. If you want a "thin", or single architecture library, you have two options:
* build a non-universal library using configure options.
* use lipo(1) on whatever part of the library you plan to use.
Note that the first option may require an extremely recent version of PortAudio (February 5th '08 at least).
@subsection comp_mac_ca_3.2 Building with <i>--disable-mac-universal</i>
To build a non-universal library for the host architecture, simply use the <i>--disable-mac-universal</i> option with configure.
@code
./configure --disable-mac-universal && make
@endcode
The <i>--disable-mac-universal</i> option may also be used in conjunction with environment variables to give you more control over the universal binary build process. For example, to build a universal binary for the i386 and ppc architectures using the 10.4u sdk (which is the default on 10.4, but not 10.5), you might specify this configure command line:
@code
CFLAGS="-O2 -g -Wall -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.3" \
LDFLAGS="-arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.3" \
./configure --disable-mac-universal --disable-dependency-tracking
@endcode
For more info, see Apple's documentation on the matter:
* http://developer.apple.com/technotes/tn2005/tn2137.html
* http://developer.apple.com/documentation/Porting/Conceptual/PortingUnix/intro/chapter_1_section_1.html
@subsection comp_mac_ca_3.3 Using lipo
The second option is to build normally, and use lipo (1) to extract the architectures you want. For example, if you want a "thin", i386 library only:
@code
lipo lib/.libs/libportaudio.a -thin i386 -output libportaudio.a
@endcode
or if you want to extract a single architecture fat file:
@code
lipo lib/.libs/libportaudio.a -extract i386 -output libportaudio.a
@endcode
@subsection comp_mac_ca_3.4 Building With Debug Options
By default, PortAudio on the mac is built without any debugging options. This is because asserts are generally inappropriate for a production environment and debugging information has been suspected, though not proven, to cause trouble with some interfaces. If you would like to compile with debugging, you must run configure with the appropriate flags. For example:
@code
./configure --enable-mac-debug && make
@endcode
This will enable -g and disable -DNDEBUG which will effectively enable asserts.
@section comp_mac_ca_4 Using the Library in XCode Projects
If you are planning to follow the rest of the tutorial, several project types will work. You can create a "Standard Tool" under "Command Line Utility". If you are not following the rest of the tutorial, any type of project should work with PortAudio, but these instructions may not work perfectly.
Once you've compiled PortAudio, the easiest and recommended way to use PortAudio in your XCode project is to add "<portaudio>/include/portaudio.h" and "<portaudio>/lib/.libs/libportaudio.a" to your project. Because "<portaudio>/lib/.libs/" is a hidden directory, you won't be able to navigate to it using the finder or the standard Mac OS file dialogs by clicking on files and folders. You can use command-shift-G in the finder to specify the exact path, or, from the shell, if you are in the portaudio directory, you can enter this command:
@code
open lib/.libs
@endcode
Then drag the "libportaudio.a" file into your XCode project and place it in the "External Frameworks and Libraries" group, if the project type has it. If not you can simply add it to the top level folder of the project.
You will need to add the following frameworks to your XCode project:
- CoreAudio.framework
- AudioToolbox.framework
- AudioUnit.framework
- CoreServices.framework
@section comp_mac_ca_5 Using the Library in Other Projects
For gcc/Make style projects, include "include/portaudio.h" and link "libportaudio.a", and use the frameworks listed in the previous section. How you do so depends on your build.
@section comp_mac_ca_6 Using Mac-only Extensions to PortAudio
For additional, Mac-only extensions to the PortAudio interface, you may also want to grab "include/pa_mac_core.h". This file contains some special, mac-only features relating to sample-rate conversion, channel mapping, performance and device hogging. See "src/hostapi/coreaudio/notes.txt" for more details on these features.
@section comp_mac_ca_7 What Happened to Makefile.darwin?
Note, there used to be a special makefile just for darwin. This is no longer supported because you can build universal binaries from the standard configure routine. If you find this file in your directory structure it means you have an outdated version of PortAudio.
@code
make -f Makefile.darwin
@endcode
Back to the Tutorial: \ref tutorial_start
*/

View File

@ -0,0 +1,97 @@
/** @page compile_windows Building Portaudio for Windows using Microsoft Visual Studio
@ingroup tutorial
Below is a list of steps to build PortAudio into a dll and lib file. The resulting dll file may contain all five current win32 PortAudio APIs: MME, DirectSound, WASAPI, WDM/KS and ASIO, depending on the preprocessor definitions set in step 9 below.
PortAudio can be compiled using Visual C++ Express Edition which is available free from Microsoft. If you do not already have a C++ development environment, simply download and install. These instructions have been observed to succeed using Visual Studio 2010 as well.
1) PortAudio for Windows requires the files <i>dsound.h</i> and <i>dsconf.h</i>. Download and install the DirectX SDK from http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=3021d52b-514e-41d3-ad02-438a3ba730ba to obtain these files. If you installed the DirectX SDK then the !DirectSound libraries and header files should be found automatically by Visual !Studio/Visual C++. If you get an error saying dsound.h or dsconf.h is missing, you can declare these paths by hand. Alternatively, you can copy dsound.h and dsconf.h to portaudio\\include. There should also be a file named ''dsound.lib'' in C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Lib.
2) For ASIO support, download the ASIO SDK from Steinberg at http://www.steinberg.net/en/company/developer.html. The SDK is free but you will need to set up a developer account with Steinberg. Copy the entire ASIOSDK2 folder into src\\hostapi\\asio\\. Rename it from ASIOSDK2 to ASIOSDK. To build without ASIO (or other host API) see the "Building without ASIO support" section below.
3) If you have Visual Studio 6.0, 7.0(VC.NET/2001) or 7.1(VC.2003), open portaudio.dsp and convert if needed.
4) If you have Visual Studio 2005, Visual C++ 2008 Express Edition or Visual Studio 2010, double click the portaudio.sln file located in build\\msvc\\. Doing so will open Visual Studio or Visual C++. Click "Finish" if a wizard appears. The sln file contains four configurations: Win32 and Win64 in both Release and Debug variants.
@section comp_win1 For Visual Studio 2005, Visual C++ 2008 Express Edition or Visual Studio 2010
5) Open Project -> portaudio Properties and select "Configuration Properties" in the tree view.
6) Select "all configurations" in the "Configurations" combo box above. Select "All Platforms" in the "Platforms" combo box.
7) Now set a few options:
C/C++ -> Optimization -> Omit frame pointers = Yes
C/C++ -> Code Generation -> Runtime library = /MT
Optional: C/C++ -> Code Generation -> Floating point model = fast
NOTE: For most users it is not necessary to explicitly set the structure member alignment; the default should work fine. However some languages require, for example, 4-byte alignment. If you are having problems with portaudio.h structure members not being properly read or written to, it may be necessary to explicitly set this value by going to C/C++ -> Code Generation -> Struct member alignment and setting it to an appropriate value (four is a common value). If your compiler is configurable, you should ensure that it is set to use the same structure member alignment value as used for the PortAudio build.
Click "Ok" when you have finished setting these parameters.
@section comp_win2 Preprocessor Definitions
Since the preprocessor definitions are different for each configuration and platform, you'll need to edit these individually for each configuration/platform combination that you want to modify using the "Configurations" and "Platforms" combo boxes.
8) To suppress PortAudio runtime debug console output, go to Project -> Properties -> Configuration Properties -> C/C++ -> Preprocessor. In the field 'Preprocessor Definitions', find PA_ENABLE_DEBUG_OUTPUT and remove it. The console will not output debug messages.
9) Also in the preprocessor definitions you need to explicitly define the audio APIs you wish to use. For Windows the available API definitions are:
PA_USE_ASIO[[BR]]
PA_USE_DS (DirectSound)[[BR]]
PA_USE_WMME (MME)[[BR]]
PA_USE_WASAPI[[BR]]
PA_USE_WDMKS[[BR]]
PA_USE_SKELETON
For each of these, the value of 0 indicates that support for this API should not be included. The value 1 indicates that support for this API should be included.
@section comp_win3 Building
As when setting Preprocessor definitions, building is a per-configuration per-platform process. Follow these instructions for each configuration/platform combination that you're interested in.
10) From the Build menu click Build -> Build solution. For 32-bit compilations, the dll file created by this process (portaudio_x86.dll) can be found in the directory build\\msvc\\Win32\\Release. For 64-bit compilations, the dll file is called portaudio_x64.dll, and is found in the directory build\\msvc\\x64\\Release.
11) Now, any project which requires portaudio can be linked with portaudio_x86.lib (or _x64) and include the relevant headers (portaudio.h, and/or pa_asio.h , pa_x86_plain_converters.h) You may want to add/remove some DLL entry points. Right now those 6 entries are not from portaudio.h:
(from portaudio.def)
@code
...
PaAsio_GetAvailableLatencyValues @50
PaAsio_ShowControlPanel @51
PaUtil_InitializeX86PlainConverters @52
PaAsio_GetInputChannelName @53
PaAsio_GetOutputChannelName @54
PaUtil_SetLogPrintFunction @55
@endcode
@section comp_win4 Building without ASIO support
To build PortAudio without ASIO support you need to:
1) Make sure your project doesn't try to build any ASIO SDK files. If you're using one of the shipped projects, remove the ASIO related files from the project.
2) Make sure your project doesn't try to build the PortAudio ASIO implementation files:
src\\hostapi\\pa_asio.cpp src\\hostapi\\iasiothiscallresolver.cpp
If you're using one of the shipped projects, remove them from the project.
3) Define the preprocessor symbols in the project properties as described in step 9 above. In VS2005 this can be accomplished by selecting
Project Properties -> Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions. Omitting PA_USE_ASIO or setting it to 0 stops src\\os\\win\\pa_win_hostapis.c from trying to initialize the PortAudio ASIO implementation.
4) Remove PaAsio_* entry points from portaudio.def
-----
David Viens, davidv@plogue.com
Updated by Chris on 5/26/2011
Improvements by John Clements on 12/15/2011
Back to the Tutorial: \ref tutorial_start
*/

View File

@ -0,0 +1,95 @@
/** @page compile_windows_asio_msvc Building Portaudio for Windows with ASIO support using MSVC
@ingroup tutorial
@section comp_win_asiomsvc1 Portaudio Windows ASIO with MSVC
This tutorial describes how to build PortAudio with ASIO support using MSVC *from scratch*, without an existing Visual Studio project. For instructions for building PortAudio (including ASIO support) using the bundled Visual Studio project file see the compiling instructions for \ref compile_windows.
ASIO is a low latency audio API from Steinberg. To compile an ASIO
application, you must first download the ASIO SDK from Steinberg. You also
need to obtain ASIO drivers for your audio device. Download the ASIO SDK from Steinberg at http://www.steinberg.net/en/company/developer.html. The SDK is free but you will need to set up a developer account with Steinberg.
This tutorial assumes that you have 3 directories set up at the same level (side by side), one containing PortAudio, one containing the ASIO SDK and one containing your Visual Studio project:
@code
/ASIOSDK2
/portaudio
/DirContainingYourVisualStudioProject
@endcode
First, make sure that the Steinberg SDK and the portaudio files are "side by side" in the same directory.
Open Microsoft Visual C++ and create a new blank Console exe Project/Workspace in that same directory.
For example, the paths for all three groups might read like this:
@code
C:\Program Files\Microsoft Visual Studio\VC98\My Projects\ASIOSDK2
C:\Program Files\Microsoft Visual Studio\VC98\My Projects\portaudio
C:\Program Files\Microsoft Visual Studio\VC98\My Projects\Sawtooth
@endcode
Next, add the following Steinberg ASIO SDK files to the project Source Files:
@code
asio.cpp (ASIOSDK2\common)
asiodrivers.cpp (ASIOSDK2\host)
asiolist.cpp (ASIOSDK2\host\pc)
@endcode
Then, add the following PortAudio files to the project Source Files:
@code
pa_asio.cpp (portaudio\src\hostapi\asio)
pa_allocation.c (portaudio\src\common)
pa_converters.c (portaudio\src\common)
pa_cpuload.c (portaudio\src\common)
pa_dither.c (portaudio\src\common)
pa_front.c (portaudio\src\common)
pa_process.c (portaudio\src\common)
pa_ringbuffer.c (portaudio\src\common)
pa_stream.c (portaudio\src\common)
pa_trace.c (portaudio\src\common)
pa_win_hostapis.c (portaudio\src\os\win)
pa_win_util.c (portaudio\src\os\win)
pa_win_waveformat.c (portaudio\src\os\win)
pa_x86_plain_converters.c (portaudio\src\os\win)
patest_saw.c (portaudio\test) (Or another file containing main()
for the console exe to be built.)
@endcode
Although not strictly necessary, you may also want to add the following files to the project Header Files:
@code
portaudio.h (portaudio\include)
pa_asio.h (portaudio\include)
@endcode
These header files define the interfaces to the PortAudio API.
Next, go to Project Settings > All Configurations > C/C++ > Preprocessor > Preprocessor definitions and add
PA_USE_ASIO=1 to any entries that might be there.
eg: WIN32;_CONSOLE;_MBCS changes to WIN32;_CONSOLE,_MBCS;PA_USE_ASIO=1
Then, on the same Project Settings tab, go down to Additional include directories: and enter the following relative include paths.
@code
..\portaudio\include,..\portaudio\src\common,..\asiosdk2\common,..\asiosdk2\host,..\asiosdk2\host\pc
@endcode
You'll need to make sure the relative paths are correct for the particular directory layout you're using. The above should work fine if you use the side-by-side layout we recommended earlier.
You should now be able to build any of the test executables in the portaudio\test directory.
We suggest that you start with patest_saw.c because it's one of the simplest test files.
--- Chris Share, Tom McCandless, Ross Bencina
[wiki:UsingThePortAudioSvnRepository SVN instructions]
Back to the Tutorial: \ref tutorial_start
*/

View File

@ -0,0 +1,53 @@
/** @page compile_windows_mingw Building Portaudio for Windows with MinGW
@ingroup tutorial
@section comp_mingw1 Portaudio for Windows With MinGW
<i>The following document is still being reviewed</i>
= MinGW/MSYS =
From the [http://www.mingw.org MinGW projectpage]:
MinGW: A collection of freely available and freely distributable
Windows specific header files and import libraries, augmenting
the GNU Compiler Collection, (GCC), and its associated
tools, (GNU binutils). MinGW provides a complete Open Source
programming tool set which is suitable for the development of
native Windows programs that do not depend on any 3rd-party C
runtime DLLs.
MSYS: A Minimal SYStem providing a POSIX compatible Bourne shell
environment, with a small collection of UNIX command line
tools. Primarily developed as a means to execute the configure
scripts and Makefiles used to build Open Source software, but
also useful as a general purpose command line interface to
replace Windows cmd.exe.
MinGW provides a compiler/linker toolchain while MSYS is required
to actually run the PortAudio configure script.
Once MinGW and MSYS are installed (see the [http://www.mingw.org/MinGWiki MinGW-Wiki]) open an MSYS shell and run the famous:
@code
./configure
make
make install
@endcode
The above should create a working version though you might want to
provide '--prefix=<path-to-install-dir>' to configure.
'./configure --help' gives details as to what can be tinkered with.
--- Mikael Magnusson
To update your copy or check out a fresh copy of the source
[wiki:UsingThePortAudioSvnRepository SVN instructions]
--- Bob !McGwier
Back to the Tutorial: \ref tutorial_start
*/

View File

@ -0,0 +1,15 @@
/** @page exploring Exploring PortAudio
@ingroup tutorial
Now that you have a good idea of how PortAudio works, you can try out the example programs. You'll find them in the examples/ directory in the PortAudio distribution.
For an example of playing a sine wave, see examples/paex_sine.c.
For an example of recording and playing back a sound, see examples/paex_record.c.
I also encourage you to examine the source for the PortAudio libraries. If you have suggestions on ways to improve them, please let us know. If you want to implement PortAudio on a new platform, please let us know as well so we can coordinate people's efforts.
Previous: \ref blocking_read_write | Next: This is the end of the tutorial.
*/

View File

@ -0,0 +1,29 @@
/** @page initializing_portaudio Initializing PortAudio
@ingroup tutorial
@section tut_init1 Initializing PortAudio
Before making any other calls to PortAudio, you 'must' call Pa_Initialize(). This will trigger a scan of available devices which can be queried later. Like most PA functions, it will return a result of type paError. If the result is not paNoError, then an error has occurred.
@code
err = Pa_Initialize();
if( err != paNoError ) goto error;
@endcode
You can get a text message that explains the error message by passing it to Pa_GetErrorText( err ). For Example:
@code
printf( "PortAudio error: %s\n", Pa_GetErrorText( err ) );
@endcode
It is also important, when you are done with PortAudio, to Terminate it:
@code
err = Pa_Terminate();
if( err != paNoError )
printf( "PortAudio error: %s\n", Pa_GetErrorText( err ) );
@endcode
Previous: \ref writing_a_callback | Next: \ref open_default_stream
*/

View File

@ -0,0 +1,48 @@
/** @page open_default_stream Opening a Stream Using Defaults
@ingroup tutorial
The next step is to open a stream, which is similar to opening a file. You can specify whether you want audio input and/or output, how many channels, the data format, sample rate, etc. Opening a ''default'' stream means opening the default input and output devices, which saves you the trouble of getting a list of devices and choosing one from the list. (We'll see how to do that later.)
@code
#define SAMPLE_RATE (44100)
static paTestData data;
.....
PaStream *stream;
PaError err;
/* Open an audio I/O stream. */
err = Pa_OpenDefaultStream( &stream,
0, /* no input channels */
2, /* stereo output */
paFloat32, /* 32 bit floating point output */
SAMPLE_RATE,
256, /* frames per buffer, i.e. the number
of sample frames that PortAudio will
request from the callback. Many apps
may want to use
paFramesPerBufferUnspecified, which
tells PortAudio to pick the best,
possibly changing, buffer size.*/
patestCallback, /* this is your callback function */
&data ); /*This is a pointer that will be passed to
your callback*/
if( err != paNoError ) goto error;
@endcode
The data structure and callback are described in \ref writing_a_callback.
The above example opens the stream for writing, which is sufficient for playback. It is also possible to open a stream for reading, to do recording, or both reading and writing, for simultaneous recording and playback or even real-time audio processing. If you plan to do playback and recording at the same time, open only one stream with valid input and output parameters.
There are some caveats to note about simultaneous read/write:
- Some platforms can only open a read/write stream using the same device.
- Although multiple streams can be opened, it is difficult to synchronize them.
- Some platforms don't support opening multiple streams on the same device.
- Using multiple streams may not be as well tested as other features.
- The PortAudio library calls must be made from the same thread or synchronized by the user.
Previous: \ref initializing_portaudio | Next: \ref start_stop_abort
*/

View File

@ -0,0 +1,111 @@
/** @page querying_devices Enumerating and Querying PortAudio Devices
@ingroup tutorial
@section tut_query1 Querying Devices
It is often fine to use the default device as we did previously in this tutorial, but there are times when you'll want to explicitly choose the device from a list of available devices on the system. To see a working example of this, check out pa_devs.c in the tests/ directory of the PortAudio source code. To do so, you'll need to first initialize PortAudio and Query for the number of Devices:
@code
int numDevices;
numDevices = Pa_GetDeviceCount();
if( numDevices < 0 )
{
printf( "ERROR: Pa_CountDevices returned 0x%x\n", numDevices );
err = numDevices;
goto error;
}
@endcode
If you want to get information about each device, simply loop through as follows:
@code
const PaDeviceInfo *deviceInfo;
for( i=0; i<numDevices; i++ )
{
deviceInfo = Pa_GetDeviceInfo( i );
...
}
@endcode
The Pa_DeviceInfo structure contains a wealth of information such as the name of the devices, the default latency associated with the devices and more. The structure ihas the following fields:
@code
int structVersion
const char * name
PaHostApiIndex hostApi
int maxInputChannels
int maxOutputChannels
PaTime defaultLowInputLatency
PaTime defaultLowOutputLatency
PaTime defaultHighInputLatency
PaTime defaultHighOutputLatency
double defaultSampleRate
@endcode
You may notice that you can't determine, from this information alone, whether or not a particular sample rate is supported. This is because some devices support ranges of sample rates, others support, a list of sample rates, and still others support some sample rates and number of channels combinations but not others. To get around this, PortAudio offers a function for testing a particular device with a given format:
@code
const PaStreamParameters *inputParameters;
const PaStreamParameters *outputParameters;
double desiredSampleRate;
...
PaError err;
err = Pa_IsFormatSupported( inputParameters, outputParameters, desiredSampleRate );
if( err == paFormatIsSupported )
{
printf( "Hooray!\n");
}
else
{
printf("Too Bad.\n");
}
@endcode
Filling in the inputParameters and outputParameters fields is shown in a moment.
Once you've found a configuration you like, or one you'd like to go ahead and try, you can open the stream by filling in the PaStreamParameters structures, and calling Pa_OpenStream:
@code
double srate = ... ;
PaStream *stream;
unsigned long framesPerBuffer = ... ; //could be paFramesPerBufferUnspecified, in which case PortAudio will do its best to manage it for you, but, on some platforms, the framesPerBuffer will change in each call to the callback
PaStreamParameters outputParameters;
PaStreamParameters inputParameters;
bzero( &inputParameters, sizeof( inputParameters ) ); //not necessary if you are filling in all the fields
inputParameters.channelCount = inChan;
inputParameters.device = inDevNum;
inputParameters.hostApiSpecificStreamInfo = NULL;
inputParameters.sampleFormat = paFloat32;
inputParameters.suggestedLatency = Pa_GetDeviceInfo(inDevNum)->defaultLowInputLatency ;
inputParameters.hostApiSpecificStreamInfo = NULL; //See you specific host's API docs for info on using this field
bzero( &outputParameters, sizeof( outputParameters ) ); //not necessary if you are filling in all the fields
outputParameters.channelCount = outChan;
outputParameters.device = outDevNum;
outputParameters.hostApiSpecificStreamInfo = NULL;
outputParameters.sampleFormat = paFloat32;
outputParameters.suggestedLatency = Pa_GetDeviceInfo(outDevNum)->defaultLowOutputLatency ;
outputParameters.hostApiSpecificStreamInfo = NULL; //See you specific host's API docs for info on using this field
err = Pa_OpenStream(
&stream,
&inputParameters,
&outputParameters,
srate,
framesPerBuffer,
paNoFlag, //flags that can be used to define dither, clip settings and more
portAudioCallback, //your callback function
(void *)this ); //data to be passed to callback. In C++, it is frequently (void *)this
//don't forget to check errors!
@endcode
Previous: \ref utility_functions | Next: \ref blocking_read_write
*/

View File

@ -0,0 +1,35 @@
/** @page start_stop_abort Starting, Stopping and Aborting a Stream
@ingroup tutorial
@section tut_startstop1 Starting, Stopping and Aborting a Stream
PortAudio will not start playing back audio until you start the stream. After calling Pa_StartStream(), PortAudio will start calling your callback function to perform the audio processing.
@code
err = Pa_StartStream( stream );
if( err != paNoError ) goto error;
@endcode
You can communicate with your callback routine through the data structure you passed in on the open call, or through global variables, or using other interprocess communication techniques, but please be aware that your callback function may be called at interrupt time when your foreground process is least expecting it. So avoid sharing complex data structures that are easily corrupted like double linked lists, and avoid using locks such as mutexs as this may cause your callback function to block and therefore drop audio. Such techniques may even cause deadlock on some platforms.
PortAudio will continue to call your callback and process audio until you stop the stream. This can be done in one of several ways, but, before we do so, we'll want to see that some of our audio gets processed by sleeping for a few seconds. This is easy to do with Pa_Sleep(), which is used by many of the examples in the patests/ directory for exactly this purpose. Note that, for a variety of reasons, you can not rely on this function for accurate scheduling, so your stream may not run for exactly the same amount of time as you expect, but it's good enough for our example.
@code
/* Sleep for several seconds. */
Pa_Sleep(NUM_SECONDS*1000);
@endcode
Now we need to stop playback. There are several ways to do this, the simplest of which is to call Pa_StopStream():
@code
err = Pa_StopStream( stream );
if( err != paNoError ) goto error;
@endcode
Pa_StopStream() is designed to make sure that the buffers you've processed in your callback are all played, which may cause some delay. Alternatively, you could call Pa_AbortStream(). On some platforms, aborting the stream is much faster and may cause some data processed by your callback not to be played.
Another way to stop the stream is to return either paComplete, or paAbort from your callback. paComplete ensures that the last buffer is played whereas paAbort stops the stream as soon as possible. If you stop the stream using this technique, you will need to call Pa_StopStream() before starting the stream again.
Previous: \ref open_default_stream | Next: \ref terminating_portaudio
*/

View File

@ -0,0 +1,20 @@
/** @page terminating_portaudio Closing a Stream and Terminating PortAudio
@ingroup tutorial
When you are done with a stream, you should close it to free up resources:
@code
err = Pa_CloseStream( stream );
if( err != paNoError ) goto error;
@endcode
We've already mentioned this in \ref initializing_portaudio, but in case you forgot, be sure to terminate PortAudio when you are done:
@code
err = Pa_Terminate( );
if( err != paNoError ) goto error;
@endcode
Previous: \ref start_stop_abort | Next: \ref utility_functions
*/

View File

@ -0,0 +1,56 @@
/** @page tutorial_start PortAudio Tutorials
@ingroup tutorial
These tutorials takes you through a hands-on example of using PortAudio to make sound. If you'd prefer to start with a top-down overview of the PortAudio API, check out the @ref api_overview.
@section tut_start1 Downloading
First thing you need to do is download the PortAudio source code either <a href="http://www.portaudio.com/download.html">as a tarball from the website</a>, or <a href="http://www.portaudio.com/usingsvn.html">from the Subversion Repository</a>.
@section tut_start2 Compiling
Once you've downloaded PortAudio you'll need to compile it, which of course, depends on your environment:
- Windows
- \ref compile_windows
- \ref compile_windows_mingw
- \ref compile_windows_asio_msvc
- \ref compile_cmake
- Mac OS X
- \ref compile_mac_coreaudio
- POSIX
- \ref compile_linux
Many platforms with GCC/make can use the simple ./configure && make combination and simply use the resulting libraries in their code.
@section tut_start3 Programming with PortAudio
Below are the steps to writing a PortAudio application:
- Write a callback function that will be called by PortAudio when audio processing is needed.
- Initialize the PA library and open a stream for audio I/O.
- Start the stream. Your callback function will be now be called repeatedly by PA in the background.
- In your callback you can read audio data from the inputBuffer and/or write data to the outputBuffer.
- Stop the stream by returning 1 from your callback, or by calling a stop function.
- Close the stream and terminate the library.
In addition to this "Callback" architecture, V19 also supports a "Blocking I/O" model which uses read and write calls which may be more familiar to non-audio programmers. Note that at this time, not all APIs support this functionality.
In this tutorial, we'll show how to use the callback architecture to play a sawtooth wave. Much of the tutorial is taken from the file paex_saw.c, which is part of the PortAudio distribution. When you're done with this tutorial, you'll be armed with the basic knowledge you need to write an audio program. If you need more sample code, look in the "examples" and "test" directory of the PortAudio distribution. Another great source of info is the portaudio.h Doxygen page, which documents the entire V19 API. Also see the page for <a href="http://www.assembla.com/spaces/portaudio/wiki/Tips">tips on programming PortAudio</a> on the PortAudio wiki.
If you are upgrading from V18, you may want to look at the <a href="http://www.portaudio.com/docs/proposals/index.html">Proposed Enhancements to PortAudio</a>, which describes the differences between V18 and V19.
- \ref writing_a_callback
- \ref initializing_portaudio
- \ref open_default_stream
- \ref start_stop_abort
- \ref terminating_portaudio
- \ref utility_functions
- \ref querying_devices
- \ref blocking_read_write
Once you have a basic understanding of how to use PortAudio, you might be interested in \ref exploring.
Next: \ref writing_a_callback
*/

View File

@ -0,0 +1,69 @@
/** @page utility_functions Utility Functions
@ingroup tutorial
In addition to the functions described elsewhere in this tutorial, PortAudio provides a number of Utility functions that are useful in a variety of circumstances.
You'll want to read the portaudio.h reference, which documents the entire V19 API for details, but we'll try to cover the basics here.
@section tut_util2 Version Information
PortAudio offers two functions to determine the PortAudio Version. This is most useful when you are using PortAudio as a dynamic library, but it may also be useful at other times.
@code
int Pa_GetVersion (void)
const char * Pa_GetVersionText (void)
@endcode
@section tut_util3 Error Text
PortAudio allows you to get error text from an error number.
@code
const char * Pa_GetErrorText (PaError errorCode)
@endcode
@section tut_util4 Stream State
PortAudio Streams exist in 3 states: Active, Stopped, and Callback Stopped. If a stream is in callback stopped state, you'll need to stop it before you can start it again. If you need to query the state of a PortAudio stream, there are two functions for doing so:
@code
PaError Pa_IsStreamStopped (PaStream *stream)
PaError Pa_IsStreamActive (PaStream *stream)
@endcode
@section tut_util5 Stream Info
If you need to retrieve info about a given stream, such as latency, and sample rate info, there's a function for that too:
@code
const PaStreamInfo * Pa_GetStreamInfo (PaStream *stream)
@endcode
@section tut_util6 Stream Time
If you need to synchronise other activities such as display updates or MIDI output with the PortAudio callback you need to know the current time according to the same timebase used by the stream callback timestamps.
@code
PaTime Pa_GetStreamTime (PaStream *stream)
@endcode
@section tut_util6CPU Usage
To determine how much CPU is being used by the callback, use these:
@code
double Pa_GetStreamCpuLoad (PaStream *stream)
@endcode
@section tut_util7 Other utilities
These functions allow you to determine the size of a sample from its format and sleep for a given amount of time. The sleep function should not be used for precise timing or synchronization because it makes few guarantees about the exact length of time it waits. It is most useful for testing.
@code
PaError Pa_GetSampleSize (PaSampleFormat format)
void Pa_Sleep (long msec)
@endcode
Previous: \ref terminating_portaudio | Next: \ref querying_devices
*/

View File

@ -0,0 +1,66 @@
/** @page writing_a_callback Writing a Callback Function
@ingroup tutorial
To write a program using PortAudio, you must include the "portaudio.h" include file. You may wish to read "portaudio.h" because it contains a complete description of the PortAudio functions and constants. Alternatively, you could browse the [http://www.portaudio.com/docs/v19-doxydocs/portaudio_8h.html "portaudio.h" Doxygen page]
@code
#include "portaudio.h"
@endcode
The next task is to write your own "callback" function. The "callback" is a function that is called by the PortAudio engine whenever it has captured audio data, or when it needs more audio data for output.
Before we begin, it's important to realize that the callback is a delicate place. This is because some systems perform the callback in a special thread, or interrupt handler, and it is rarely treated the same as the rest of your code. In addition, if you want your audio to reach the speakers on time, you'll need to make sure whatever code you run in the callback runs quickly. What is safe or not safe will vary from platform to platform, but as a rule of thumb, don't do anything like allocating or freeing memory, reading or writing files, printf(), or anything else that might take an unbounded amount of time or rely on the OS or require a context switch. <i>Ed: is this still true?: Also do not call any PortAudio functions in the callback except for Pa_StreamTime() and Pa_GetCPULoad().</i>
Your callback function must return an int and accept the exact parameters specified in this typedef:
@code
typedef int PaStreamCallback( const void *input,
void *output,
unsigned long frameCount,
const PaStreamCallbackTimeInfo* timeInfo,
PaStreamCallbackFlags statusFlags,
void *userData ) ;
@endcode
Here is an example callback function from the test file "patests/patest_saw.c". It calculates a simple left and right sawtooth signal and writes it to the output buffer. Notice that in this example, the signals are of float data type. The signals must be between -1.0 and +1.0. You can also use 16 bit integers or other formats which are specified during setup, but floats are easiest to work with. You can pass a pointer to your data structure through PortAudio which will appear as userData.
@code
typedef struct
{
float left_phase;
float right_phase;
}
paTestData;
/* This routine will be called by the PortAudio engine when audio is needed.
** It may called at interrupt level on some machines so don't do anything
** that could mess up the system like calling malloc() or free().
*/
static int patestCallback( const void *inputBuffer, void *outputBuffer,
unsigned long framesPerBuffer,
const PaStreamCallbackTimeInfo* timeInfo,
PaStreamCallbackFlags statusFlags,
void *userData )
{
/* Cast data passed through stream to our structure. */
paTestData *data = (paTestData*)userData;
float *out = (float*)outputBuffer;
unsigned int i;
(void) inputBuffer; /* Prevent unused variable warning. */
for( i=0; i<framesPerBuffer; i++ )
{
*out++ = data->left_phase; /* left */
*out++ = data->right_phase; /* right */
/* Generate simple sawtooth phaser that ranges between -1.0 and 1.0. */
data->left_phase += 0.01f;
/* When signal reaches top, drop back down. */
if( data->left_phase >= 1.0f ) data->left_phase -= 2.0f;
/* higher pitch so we can distinguish left and right. */
data->right_phase += 0.03f;
if( data->right_phase >= 1.0f ) data->right_phase -= 2.0f;
}
return 0;
}
@endcode
Previous: \ref tutorial_start | Next: \ref initializing_portaudio
*/

View File

@ -124,6 +124,19 @@ AudioDeviceID PaMacCore_GetStreamOutputDevice( PaStream* s );
*/
const char *PaMacCore_GetChannelName( int device, int channelIndex, bool input );
/** Retrieve the range of legal native buffer sizes for the specificed device, in sample frames.
@param device The global index of the PortAudio device about which the query is being made.
@param minBufferSizeFrames A pointer to the location which will receive the minimum buffer size value.
@param maxBufferSizeFrames A pointer to the location which will receive the maximum buffer size value.
@see kAudioDevicePropertyBufferFrameSizeRange in the CoreAudio SDK.
*/
PaError PaMacCore_GetBufferSizeRange( PaDeviceIndex device,
long *minBufferSizeFrames, long *maxBufferSizeFrames );
/**
* Flags
*/

View File

@ -0,0 +1,106 @@
#ifndef PA_WIN_WDMKS_H
#define PA_WIN_WDMKS_H
/*
* $Id: pa_win_wdmks.h 1812 2012-02-14 09:32:57Z robiwan $
* PortAudio Portable Real-Time Audio Library
* WDM/KS specific extensions
*
* Copyright (c) 1999-2007 Ross Bencina and Phil Burk
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* The text above constitutes the entire PortAudio license; however,
* the PortAudio community also makes the following non-binding requests:
*
* Any person wishing to distribute modifications to the Software is
* requested to send the modifications to the original developer so that
* they can be incorporated into the canonical version. It is also
* requested that these non-binding requests be included along with the
* license above.
*/
/** @file
@ingroup public_header
@brief WDM Kernel Streaming-specific PortAudio API extension header file.
*/
#include "portaudio.h"
#include <windows.h>
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
typedef struct PaWinWDMKSInfo{
unsigned long size; /**< sizeof(PaWinWDMKSInfo) */
PaHostApiTypeId hostApiType; /**< paWDMKS */
unsigned long version; /**< 1 */
/* The number of packets to use for WaveCyclic devices, range is [2, 8]. Set to zero for default value of 2. */
unsigned noOfPackets;
} PaWinWDMKSInfo;
typedef enum PaWDMKSType
{
Type_kNotUsed,
Type_kWaveCyclic,
Type_kWaveRT,
Type_kCnt,
} PaWDMKSType;
typedef enum PaWDMKSSubType
{
SubType_kUnknown,
SubType_kNotification,
SubType_kPolled,
SubType_kCnt,
} PaWDMKSSubType;
typedef struct PaWinWDMKSDeviceInfo {
wchar_t filterPath[MAX_PATH]; /**< KS filter path in Unicode! */
wchar_t topologyPath[MAX_PATH]; /**< Topology filter path in Unicode! */
PaWDMKSType streamingType;
GUID deviceProductGuid; /**< The product GUID of the device (if supported) */
} PaWinWDMKSDeviceInfo;
typedef struct PaWDMKSDirectionSpecificStreamInfo
{
PaDeviceIndex device;
unsigned channels; /**< No of channels the device is opened with */
unsigned framesPerHostBuffer; /**< No of frames of the device buffer */
int endpointPinId; /**< Endpoint pin ID (on topology filter if topologyName is not empty) */
int muxNodeId; /**< Only valid for input */
PaWDMKSSubType streamingSubType; /**< Not known until device is opened for streaming */
} PaWDMKSDirectionSpecificStreamInfo;
typedef struct PaWDMKSSpecificStreamInfo {
PaWDMKSDirectionSpecificStreamInfo input;
PaWDMKSDirectionSpecificStreamInfo output;
} PaWDMKSSpecificStreamInfo;
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* PA_WIN_DS_H */

View File

@ -1,220 +1,220 @@
import os.path, copy, sys
def checkSymbol(conf, header, library=None, symbol=None, autoAdd=True, critical=False, pkgName=None):
""" Check for symbol in library, optionally look only for header.
@param conf: Configure instance.
@param header: The header file where the symbol is declared.
@param library: The library in which the symbol exists, if None it is taken to be the standard C library.
@param symbol: The symbol to look for, if None only the header will be looked up.
@param autoAdd: Automatically link with this library if check is positive.
@param critical: Raise on error?
@param pkgName: Optional name of pkg-config entry for library, to determine build parameters.
@return: True/False
"""
origEnv = conf.env.Copy() # Copy unmodified environment so we can restore it upon error
env = conf.env
if library is None:
library = "c" # Standard library
autoAdd = False
if pkgName is not None:
origLibs = copy.copy(env.get("LIBS", None))
try: env.ParseConfig("pkg-config --silence-errors %s --cflags --libs" % pkgName)
except: pass
else:
# I see no other way of checking that the parsing succeeded, if it did add no more linking parameters
if env.get("LIBS", None) != origLibs:
autoAdd = False
try:
if not conf.CheckCHeader(header, include_quotes="<>"):
raise ConfigurationError("missing header %s" % header)
if symbol is not None and not conf.CheckLib(library, symbol, language="C", autoadd=autoAdd):
raise ConfigurationError("missing symbol %s in library %s" % (symbol, library))
except ConfigurationError:
conf.env = origEnv
if not critical:
return False
raise
return True
import SCons.Errors
# Import common variables
# Could use '#' to refer to top-level SConstruct directory, but looks like env.SConsignFile doesn't interpret this at least :(
sconsDir = os.path.abspath(os.path.join("build", "scons"))
try:
Import("Platform", "Posix", "ConfigurationError", "ApiVer")
except SCons.Errors.UserError:
# The common objects must be exported first
SConscript(os.path.join(sconsDir, "SConscript_common"))
Import("Platform", "Posix", "ConfigurationError", "ApiVer")
Import("env")
# This will be manipulated
env = env.Copy()
# We operate with a set of needed libraries and optional libraries, the latter stemming from host API implementations.
# For libraries of both types we record a set of values that is used to look for the library in question, during
# configuration. If the corresponding library for a host API implementation isn't found, the implementation is left out.
neededLibs = []
optionalImpls = {}
if Platform in Posix:
env.Append(CPPPATH=os.path.join("os", "unix"))
neededLibs += [("pthread", "pthread.h", "pthread_create"), ("m", "math.h", "sin")]
if env["useALSA"]:
optionalImpls["ALSA"] = ("asound", "alsa/asoundlib.h", "snd_pcm_open")
if env["useJACK"]:
optionalImpls["JACK"] = ("jack", "jack/jack.h", "jack_client_new")
if env["useOSS"]:
# TODO: It looks like the prefix for soundcard.h depends on the platform
optionalImpls["OSS"] = ("oss", "sys/soundcard.h", None)
if Platform == 'netbsd':
optionalImpls["OSS"] = ("ossaudio", "sys/soundcard.h", "_oss_ioctl")
if env["useASIHPI"]:
optionalImpls["ASIHPI"] = ("hpi", "asihpi/hpi.h", "HPI_SubSysCreate")
if env["useCOREAUDIO"]:
optionalImpls["COREAUDIO"] = ("CoreAudio", "CoreAudio/CoreAudio.h", None)
else:
raise ConfigurationError("unknown platform %s" % Platform)
if Platform == "darwin":
env.Append(LINKFLAGS="-framework CoreFoundation -framework CoreServices -framework CoreAudio -framework AudioToolBox -framework AudioUnit")
elif Platform == "cygwin":
env.Append(LIBS=["winmm"])
elif Platform == "irix":
neededLibs += [("audio", "dmedia/audio.h", "alOpenPort"), ("dmedia", "dmedia/dmedia.h", "dmGetUST")]
env.Append(CPPDEFINES=["PA_USE_SGI"])
def CheckCTypeSize(context, tp):
""" Check size of C type.
@param context: A configuration context.
@param tp: The type to check.
@return: Size of type, in bytes.
"""
context.Message("Checking the size of C type %s..." % tp)
ret = context.TryRun("""
#include <stdio.h>
int main() {
printf("%%d", sizeof(%s));
return 0;
}
""" % tp, ".c")
if not ret[0]:
context.Result(" Couldn't obtain size of type %s!" % tp)
return None
assert ret[1]
sz = int(ret[1])
context.Result("%d" % sz)
return sz
"""
if sys.byteorder == "little":
env.Append(CPPDEFINES=["PA_LITTLE_ENDIAN"])
elif sys.byteorder == "big":
env.Append(CPPDEFINES=["PA_BIG_ENDIAN"])
else:
raise ConfigurationError("unknown byte order: %s" % sys.byteorder)
"""
if env["enableDebugOutput"]:
env.Append(CPPDEFINES=["PA_ENABLE_DEBUG_OUTPUT"])
# Start configuration
# Use an absolute path for conf_dir, otherwise it gets created both relative to current directory and build directory
conf = env.Configure(log_file=os.path.join(sconsDir, "sconf.log"), custom_tests={"CheckCTypeSize": CheckCTypeSize},
conf_dir=os.path.join(sconsDir, ".sconf_temp"))
conf.env.Append(CPPDEFINES=["SIZEOF_SHORT=%d" % conf.CheckCTypeSize("short")])
conf.env.Append(CPPDEFINES=["SIZEOF_INT=%d" % conf.CheckCTypeSize("int")])
conf.env.Append(CPPDEFINES=["SIZEOF_LONG=%d" % conf.CheckCTypeSize("long")])
if checkSymbol(conf, "time.h", "rt", "clock_gettime"):
conf.env.Append(CPPDEFINES=["HAVE_CLOCK_GETTIME"])
if checkSymbol(conf, "time.h", symbol="nanosleep"):
conf.env.Append(CPPDEFINES=["HAVE_NANOSLEEP"])
if conf.CheckCHeader("sys/soundcard.h"):
conf.env.Append(CPPDEFINES=["HAVE_SYS_SOUNDCARD_H"])
if conf.CheckCHeader("linux/soundcard.h"):
conf.env.Append(CPPDEFINES=["HAVE_LINUX_SOUNDCARD_H"])
if conf.CheckCHeader("machine/soundcard.h"):
conf.env.Append(CPPDEFINES=["HAVE_MACHINE_SOUNDCARD_H"])
# Look for needed libraries and link with them
for lib, hdr, sym in neededLibs:
checkSymbol(conf, hdr, lib, sym, critical=True)
# Look for host API libraries, if a library isn't found disable corresponding host API implementation.
for name, val in optionalImpls.items():
lib, hdr, sym = val
if checkSymbol(conf, hdr, lib, sym, critical=False, pkgName=name.lower()):
conf.env.Append(CPPDEFINES=["PA_USE_%s=1" % name.upper()])
else:
del optionalImpls[name]
# Configuration finished
env = conf.Finish()
# PA infrastructure
CommonSources = [os.path.join("common", f) for f in "pa_allocation.c pa_converters.c pa_cpuload.c pa_dither.c pa_front.c \
pa_process.c pa_stream.c pa_trace.c pa_debugprint.c pa_ringbuffer.c".split()]
CommonSources.append(os.path.join("hostapi", "skeleton", "pa_hostapi_skeleton.c"))
# Host APIs implementations
ImplSources = []
if Platform in Posix:
ImplSources += [os.path.join("os", "unix", f) for f in "pa_unix_hostapis.c pa_unix_util.c".split()]
if "ALSA" in optionalImpls:
ImplSources.append(os.path.join("hostapi", "alsa", "pa_linux_alsa.c"))
if "JACK" in optionalImpls:
ImplSources.append(os.path.join("hostapi", "jack", "pa_jack.c"))
if "OSS" in optionalImpls:
ImplSources.append(os.path.join("hostapi", "oss", "pa_unix_oss.c"))
if "ASIHPI" in optionalImpls:
ImplSources.append(os.path.join("hostapi", "asihpi", "pa_linux_asihpi.c"))
if "COREAUDIO" in optionalImpls:
ImplSources.append([os.path.join("hostapi", "coreaudio", f) for f in """
pa_mac_core.c pa_mac_core_blocking.c pa_mac_core_utilities.c
""".split()])
sources = CommonSources + ImplSources
sharedLibEnv = env.Copy()
if Platform in Posix:
# Add soname to library, this is so a reference is made to the versioned library in programs linking against libportaudio.so
if Platform != 'darwin':
sharedLibEnv.AppendUnique(SHLINKFLAGS="-Wl,-soname=libportaudio.so.%d" % int(ApiVer.split(".")[0]))
sharedLib = sharedLibEnv.SharedLibrary(target="portaudio", source=sources)
staticLib = env.StaticLibrary(target="portaudio", source=sources)
if Platform in Posix:
prefix = env["prefix"]
includeDir = os.path.join(prefix, "include")
libDir = os.path.join(prefix, "lib")
testNames = ["patest_sine", "paqa_devs", "paqa_errs", "patest1", "patest_buffer", "patest_callbackstop", "patest_clip", \
"patest_dither", "patest_hang", "patest_in_overflow", "patest_latency", "patest_leftright", "patest_longsine", \
"patest_many", "patest_maxsines", "patest_multi_sine", "patest_out_underflow", "patest_pink", "patest_prime", \
"patest_read_record", "patest_record", "patest_ringmix", "patest_saw", "patest_sine8", "patest_sine", \
"patest_sine_time", "patest_start_stop", "patest_stop", "patest_sync", "patest_toomanysines", \
"patest_underflow", "patest_wire", "patest_write_sine", "pa_devs", "pa_fuzz", "pa_minlat", \
"patest_sine_channelmaps",]
# The test directory ("bin") should be in the top-level PA directory
tests = [env.Program(target=os.path.join("#", "bin", name), source=[os.path.join("#", "test", name + ".c"),
staticLib]) for name in testNames]
# Detect host APIs
hostApis = []
for cppdef in env["CPPDEFINES"]:
if cppdef.startswith("PA_USE_"):
hostApis.append(cppdef[7:-2])
Return("sources", "sharedLib", "staticLib", "tests", "env", "hostApis")
import os.path, copy, sys
def checkSymbol(conf, header, library=None, symbol=None, autoAdd=True, critical=False, pkgName=None):
""" Check for symbol in library, optionally look only for header.
@param conf: Configure instance.
@param header: The header file where the symbol is declared.
@param library: The library in which the symbol exists, if None it is taken to be the standard C library.
@param symbol: The symbol to look for, if None only the header will be looked up.
@param autoAdd: Automatically link with this library if check is positive.
@param critical: Raise on error?
@param pkgName: Optional name of pkg-config entry for library, to determine build parameters.
@return: True/False
"""
origEnv = conf.env.Copy() # Copy unmodified environment so we can restore it upon error
env = conf.env
if library is None:
library = "c" # Standard library
autoAdd = False
if pkgName is not None:
origLibs = copy.copy(env.get("LIBS", None))
try: env.ParseConfig("pkg-config --silence-errors %s --cflags --libs" % pkgName)
except: pass
else:
# I see no other way of checking that the parsing succeeded, if it did add no more linking parameters
if env.get("LIBS", None) != origLibs:
autoAdd = False
try:
if not conf.CheckCHeader(header, include_quotes="<>"):
raise ConfigurationError("missing header %s" % header)
if symbol is not None and not conf.CheckLib(library, symbol, language="C", autoadd=autoAdd):
raise ConfigurationError("missing symbol %s in library %s" % (symbol, library))
except ConfigurationError:
conf.env = origEnv
if not critical:
return False
raise
return True
import SCons.Errors
# Import common variables
# Could use '#' to refer to top-level SConstruct directory, but looks like env.SConsignFile doesn't interpret this at least :(
sconsDir = os.path.abspath(os.path.join("build", "scons"))
try:
Import("Platform", "Posix", "ConfigurationError", "ApiVer")
except SCons.Errors.UserError:
# The common objects must be exported first
SConscript(os.path.join(sconsDir, "SConscript_common"))
Import("Platform", "Posix", "ConfigurationError", "ApiVer")
Import("env")
# This will be manipulated
env = env.Copy()
# We operate with a set of needed libraries and optional libraries, the latter stemming from host API implementations.
# For libraries of both types we record a set of values that is used to look for the library in question, during
# configuration. If the corresponding library for a host API implementation isn't found, the implementation is left out.
neededLibs = []
optionalImpls = {}
if Platform in Posix:
env.Append(CPPPATH=os.path.join("os", "unix"))
neededLibs += [("pthread", "pthread.h", "pthread_create"), ("m", "math.h", "sin")]
if env["useALSA"]:
optionalImpls["ALSA"] = ("asound", "alsa/asoundlib.h", "snd_pcm_open")
if env["useJACK"]:
optionalImpls["JACK"] = ("jack", "jack/jack.h", "jack_client_new")
if env["useOSS"]:
# TODO: It looks like the prefix for soundcard.h depends on the platform
optionalImpls["OSS"] = ("oss", "sys/soundcard.h", None)
if Platform == 'netbsd':
optionalImpls["OSS"] = ("ossaudio", "sys/soundcard.h", "_oss_ioctl")
if env["useASIHPI"]:
optionalImpls["ASIHPI"] = ("hpi", "asihpi/hpi.h", "HPI_SubSysCreate")
if env["useCOREAUDIO"]:
optionalImpls["COREAUDIO"] = ("CoreAudio", "CoreAudio/CoreAudio.h", None)
else:
raise ConfigurationError("unknown platform %s" % Platform)
if Platform == "darwin":
env.Append(LINKFLAGS="-framework CoreFoundation -framework CoreServices -framework CoreAudio -framework AudioToolBox -framework AudioUnit")
elif Platform == "cygwin":
env.Append(LIBS=["winmm"])
elif Platform == "irix":
neededLibs += [("audio", "dmedia/audio.h", "alOpenPort"), ("dmedia", "dmedia/dmedia.h", "dmGetUST")]
env.Append(CPPDEFINES=["PA_USE_SGI"])
def CheckCTypeSize(context, tp):
""" Check size of C type.
@param context: A configuration context.
@param tp: The type to check.
@return: Size of type, in bytes.
"""
context.Message("Checking the size of C type %s..." % tp)
ret = context.TryRun("""
#include <stdio.h>
int main() {
printf("%%d", sizeof(%s));
return 0;
}
""" % tp, ".c")
if not ret[0]:
context.Result(" Couldn't obtain size of type %s!" % tp)
return None
assert ret[1]
sz = int(ret[1])
context.Result("%d" % sz)
return sz
"""
if sys.byteorder == "little":
env.Append(CPPDEFINES=["PA_LITTLE_ENDIAN"])
elif sys.byteorder == "big":
env.Append(CPPDEFINES=["PA_BIG_ENDIAN"])
else:
raise ConfigurationError("unknown byte order: %s" % sys.byteorder)
"""
if env["enableDebugOutput"]:
env.Append(CPPDEFINES=["PA_ENABLE_DEBUG_OUTPUT"])
# Start configuration
# Use an absolute path for conf_dir, otherwise it gets created both relative to current directory and build directory
conf = env.Configure(log_file=os.path.join(sconsDir, "sconf.log"), custom_tests={"CheckCTypeSize": CheckCTypeSize},
conf_dir=os.path.join(sconsDir, ".sconf_temp"))
conf.env.Append(CPPDEFINES=["SIZEOF_SHORT=%d" % conf.CheckCTypeSize("short")])
conf.env.Append(CPPDEFINES=["SIZEOF_INT=%d" % conf.CheckCTypeSize("int")])
conf.env.Append(CPPDEFINES=["SIZEOF_LONG=%d" % conf.CheckCTypeSize("long")])
if checkSymbol(conf, "time.h", "rt", "clock_gettime"):
conf.env.Append(CPPDEFINES=["HAVE_CLOCK_GETTIME"])
if checkSymbol(conf, "time.h", symbol="nanosleep"):
conf.env.Append(CPPDEFINES=["HAVE_NANOSLEEP"])
if conf.CheckCHeader("sys/soundcard.h"):
conf.env.Append(CPPDEFINES=["HAVE_SYS_SOUNDCARD_H"])
if conf.CheckCHeader("linux/soundcard.h"):
conf.env.Append(CPPDEFINES=["HAVE_LINUX_SOUNDCARD_H"])
if conf.CheckCHeader("machine/soundcard.h"):
conf.env.Append(CPPDEFINES=["HAVE_MACHINE_SOUNDCARD_H"])
# Look for needed libraries and link with them
for lib, hdr, sym in neededLibs:
checkSymbol(conf, hdr, lib, sym, critical=True)
# Look for host API libraries, if a library isn't found disable corresponding host API implementation.
for name, val in optionalImpls.items():
lib, hdr, sym = val
if checkSymbol(conf, hdr, lib, sym, critical=False, pkgName=name.lower()):
conf.env.Append(CPPDEFINES=["PA_USE_%s=1" % name.upper()])
else:
del optionalImpls[name]
# Configuration finished
env = conf.Finish()
# PA infrastructure
CommonSources = [os.path.join("common", f) for f in "pa_allocation.c pa_converters.c pa_cpuload.c pa_dither.c pa_front.c \
pa_process.c pa_stream.c pa_trace.c pa_debugprint.c pa_ringbuffer.c".split()]
CommonSources.append(os.path.join("hostapi", "skeleton", "pa_hostapi_skeleton.c"))
# Host APIs implementations
ImplSources = []
if Platform in Posix:
ImplSources += [os.path.join("os", "unix", f) for f in "pa_unix_hostapis.c pa_unix_util.c".split()]
if "ALSA" in optionalImpls:
ImplSources.append(os.path.join("hostapi", "alsa", "pa_linux_alsa.c"))
if "JACK" in optionalImpls:
ImplSources.append(os.path.join("hostapi", "jack", "pa_jack.c"))
if "OSS" in optionalImpls:
ImplSources.append(os.path.join("hostapi", "oss", "pa_unix_oss.c"))
if "ASIHPI" in optionalImpls:
ImplSources.append(os.path.join("hostapi", "asihpi", "pa_linux_asihpi.c"))
if "COREAUDIO" in optionalImpls:
ImplSources.append([os.path.join("hostapi", "coreaudio", f) for f in """
pa_mac_core.c pa_mac_core_blocking.c pa_mac_core_utilities.c
""".split()])
sources = CommonSources + ImplSources
sharedLibEnv = env.Copy()
if Platform in Posix:
# Add soname to library, this is so a reference is made to the versioned library in programs linking against libportaudio.so
if Platform != 'darwin':
sharedLibEnv.AppendUnique(SHLINKFLAGS="-Wl,-soname=libportaudio.so.%d" % int(ApiVer.split(".")[0]))
sharedLib = sharedLibEnv.SharedLibrary(target="portaudio", source=sources)
staticLib = env.StaticLibrary(target="portaudio", source=sources)
if Platform in Posix:
prefix = env["prefix"]
includeDir = os.path.join(prefix, "include")
libDir = os.path.join(prefix, "lib")
testNames = ["patest_sine", "paqa_devs", "paqa_errs", "patest1", "patest_buffer", "patest_callbackstop", "patest_clip", \
"patest_dither", "patest_hang", "patest_in_overflow", "patest_latency", "patest_leftright", "patest_longsine", \
"patest_many", "patest_maxsines", "patest_multi_sine", "patest_out_underflow", "patest_pink", "patest_prime", \
"patest_read_record", "patest_record", "patest_ringmix", "patest_saw", "patest_sine8", "patest_sine", \
"patest_sine_time", "patest_start_stop", "patest_stop", "patest_sync", "patest_toomanysines", \
"patest_underflow", "patest_wire", "patest_write_sine", "pa_devs", "pa_fuzz", "pa_minlat", \
"patest_sine_channelmaps",]
# The test directory ("bin") should be in the top-level PA directory
tests = [env.Program(target=os.path.join("#", "bin", name), source=[os.path.join("#", "test", name + ".c"),
staticLib]) for name in testNames]
# Detect host APIs
hostApis = []
for cppdef in env["CPPDEFINES"]:
if cppdef.startswith("PA_USE_"):
hostApis.append(cppdef[7:-2])
Return("sources", "sharedLib", "staticLib", "tests", "env", "hostApis")

View File

@ -1,5 +1,5 @@
/*
* $Id: pa_trace.c 1339 2008-02-15 07:50:33Z rossb $
* $Id: pa_trace.c 1812 2012-02-14 09:32:57Z robiwan $
* Portable Audio I/O Library Trace Facility
* Store trace information in real-time for later printing.
*
@ -46,12 +46,16 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <assert.h>
#include "pa_trace.h"
#include "pa_util.h"
#include "pa_debugprint.h"
#if PA_TRACE_REALTIME_EVENTS
static char *traceTextArray[PA_MAX_TRACE_RECORDS];
static char const *traceTextArray[PA_MAX_TRACE_RECORDS];
static int traceIntArray[PA_MAX_TRACE_RECORDS];
static int traceIndex = 0;
static int traceBlock = 0;
@ -94,4 +98,133 @@ void PaUtil_AddTraceMessage( const char *msg, int data )
}
}
/************************************************************************/
/* High performance log alternative */
/************************************************************************/
typedef unsigned long long PaUint64;
typedef struct __PaHighPerformanceLog
{
unsigned magik;
int writePtr;
int readPtr;
int size;
double refTime;
char* data;
} PaHighPerformanceLog;
static const unsigned kMagik = 0xcafebabe;
#define USEC_PER_SEC (1000000ULL)
int PaUtil_InitializeHighSpeedLog( LogHandle* phLog, unsigned maxSizeInBytes )
{
PaHighPerformanceLog* pLog = (PaHighPerformanceLog*)PaUtil_AllocateMemory(sizeof(PaHighPerformanceLog));
if (pLog == 0)
{
return paInsufficientMemory;
}
assert(phLog != 0);
*phLog = pLog;
pLog->data = (char*)PaUtil_AllocateMemory(maxSizeInBytes);
if (pLog->data == 0)
{
PaUtil_FreeMemory(pLog);
return paInsufficientMemory;
}
pLog->magik = kMagik;
pLog->size = maxSizeInBytes;
pLog->refTime = PaUtil_GetTime();
return paNoError;
}
void PaUtil_ResetHighSpeedLogTimeRef( LogHandle hLog )
{
PaHighPerformanceLog* pLog = (PaHighPerformanceLog*)hLog;
assert(pLog->magik == kMagik);
pLog->refTime = PaUtil_GetTime();
}
typedef struct __PaLogEntryHeader
{
int size;
double timeStamp;
} PaLogEntryHeader;
#ifdef __APPLE__
#define _vsnprintf vsnprintf
#define min(a,b) ((a)<(b)?(a):(b))
#endif
int PaUtil_AddHighSpeedLogMessage( LogHandle hLog, const char* fmt, ... )
{
va_list l;
int n = 0;
PaHighPerformanceLog* pLog = (PaHighPerformanceLog*)hLog;
if (pLog != 0)
{
PaLogEntryHeader* pHeader;
char* p;
int maxN;
assert(pLog->magik == kMagik);
pHeader = (PaLogEntryHeader*)( pLog->data + pLog->writePtr );
p = (char*)( pHeader + 1 );
maxN = pLog->size - pLog->writePtr - 2 * sizeof(PaLogEntryHeader);
pHeader->timeStamp = PaUtil_GetTime() - pLog->refTime;
if (maxN > 0)
{
if (maxN > 32)
{
va_start(l, fmt);
n = _vsnprintf(p, min(1024, maxN), fmt, l);
va_end(l);
}
else {
n = sprintf(p, "End of log...");
}
n = ((n + sizeof(unsigned)) & ~(sizeof(unsigned)-1)) + sizeof(PaLogEntryHeader);
pHeader->size = n;
#if 0
PaUtil_DebugPrint("%05u.%03u: %s\n", pHeader->timeStamp/1000, pHeader->timeStamp%1000, p);
#endif
pLog->writePtr += n;
}
}
return n;
}
void PaUtil_DumpHighSpeedLog( LogHandle hLog, const char* fileName )
{
FILE* f = (fileName != NULL) ? fopen(fileName, "w") : stdout;
unsigned localWritePtr;
PaHighPerformanceLog* pLog = (PaHighPerformanceLog*)hLog;
assert(pLog->magik == kMagik);
localWritePtr = pLog->writePtr;
while (pLog->readPtr != localWritePtr)
{
const PaLogEntryHeader* pHeader = (const PaLogEntryHeader*)( pLog->data + pLog->readPtr );
const char* p = (const char*)( pHeader + 1 );
const PaUint64 ts = (const PaUint64)( pHeader->timeStamp * USEC_PER_SEC );
assert(pHeader->size < (1024+sizeof(unsigned)+sizeof(PaLogEntryHeader)));
fprintf(f, "%05u.%03u: %s\n", (unsigned)(ts/1000), (unsigned)(ts%1000), p);
pLog->readPtr += pHeader->size;
}
if (f != stdout)
{
fclose(f);
}
}
void PaUtil_DiscardHighSpeedLog( LogHandle hLog )
{
PaHighPerformanceLog* pLog = (PaHighPerformanceLog*)hLog;
assert(pLog->magik == kMagik);
PaUtil_FreeMemory(pLog->data);
PaUtil_FreeMemory(pLog);
}
#endif /* TRACE_REALTIME_EVENTS */

View File

@ -1,7 +1,7 @@
#ifndef PA_TRACE_H
#define PA_TRACE_H
/*
* $Id: pa_trace.h 1339 2008-02-15 07:50:33Z rossb $
* $Id: pa_trace.h 1812 2012-02-14 09:32:57Z robiwan $
* Portable Audio I/O Library Trace Facility
* Store trace information in real-time for later printing.
*
@ -84,13 +84,29 @@ extern "C"
void PaUtil_ResetTraceMessages();
void PaUtil_AddTraceMessage( const char *msg, int data );
void PaUtil_DumpTraceMessages();
/* Alternative interface */
typedef void* LogHandle;
int PaUtil_InitializeHighSpeedLog(LogHandle* phLog, unsigned maxSizeInBytes);
void PaUtil_ResetHighSpeedLogTimeRef(LogHandle hLog);
int PaUtil_AddHighSpeedLogMessage(LogHandle hLog, const char* fmt, ...);
void PaUtil_DumpHighSpeedLog(LogHandle hLog, const char* fileName);
void PaUtil_DiscardHighSpeedLog(LogHandle hLog);
#else
#define PaUtil_ResetTraceMessages() /* noop */
#define PaUtil_AddTraceMessage(msg,data) /* noop */
#define PaUtil_DumpTraceMessages() /* noop */
#define PaUtil_InitializeHighSpeedLog(phLog, maxSizeInBytes) (0)
#define PaUtil_ResetHighSpeedLogTimeRef(hLog)
#define PaUtil_AddHighSpeedLogMessage(...) (0)
#define PaUtil_DumpHighSpeedLog(hLog, fileName)
#define PaUtil_DiscardHighSpeedLog(hLog)
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/*
* $Id: pa_asio.cpp 1778 2011-11-10 13:59:53Z rossb $
* $Id: pa_asio.cpp 1825 2012-04-02 07:58:04Z rbencina $
* Portable Audio I/O Library for ASIO Drivers
*
* Author: Stephane Letz
@ -1031,8 +1031,6 @@ PaError PaAsio_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex
PaAsioHostApiRepresentation *asioHostApi;
PaAsioDeviceInfo *deviceInfoArray;
char **names;
PaAsioDriverInfo paAsioDriverInfo;
asioHostApi = (PaAsioHostApiRepresentation*)PaUtil_AllocateMemory( sizeof(PaAsioHostApiRepresentation) );
if( !asioHostApi )
{
@ -1040,6 +1038,8 @@ PaError PaAsio_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex
goto error;
}
memset( asioHostApi, 0, sizeof(PaAsioHostApiRepresentation) ); /* ensure all fields are zeroed. especially asioHostApi->allocations */
/*
We initialize COM ourselves here and uninitialize it in Terminate().
This should be the only COM initialization needed in this module.
@ -1142,6 +1142,13 @@ PaError PaAsio_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex
for( i=0; i < driverCount; ++i )
{
/* Due to the headless design of the ASIO API, drivers are free to write over data given to them (like M-Audio
drivers f.i.). This is an attempt to overcome that. */
union _tag_local {
PaAsioDriverInfo info;
char _padding[4096];
} paAsioDriver;
PA_DEBUG(("ASIO names[%d]:%s\n",i,names[i]));
@ -1176,7 +1183,7 @@ PaError PaAsio_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex
/* Attempt to load the asio driver... */
if( LoadAsioDriver( asioHostApi, names[i], &paAsioDriverInfo, asioHostApi->systemSpecific ) == paNoError )
if( LoadAsioDriver( asioHostApi, names[i], &paAsioDriver.info, asioHostApi->systemSpecific ) == paNoError )
{
PaAsioDeviceInfo *asioDeviceInfo = &deviceInfoArray[ (*hostApi)->info.deviceCount ];
PaDeviceInfo *deviceInfo = &asioDeviceInfo->commonDeviceInfo;
@ -1186,15 +1193,15 @@ PaError PaAsio_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex
deviceInfo->name = names[i];
PA_DEBUG(("PaAsio_Initialize: drv:%d name = %s\n", i,deviceInfo->name));
PA_DEBUG(("PaAsio_Initialize: drv:%d inputChannels = %d\n", i, paAsioDriverInfo.inputChannelCount));
PA_DEBUG(("PaAsio_Initialize: drv:%d outputChannels = %d\n", i, paAsioDriverInfo.outputChannelCount));
PA_DEBUG(("PaAsio_Initialize: drv:%d bufferMinSize = %d\n", i, paAsioDriverInfo.bufferMinSize));
PA_DEBUG(("PaAsio_Initialize: drv:%d bufferMaxSize = %d\n", i, paAsioDriverInfo.bufferMaxSize));
PA_DEBUG(("PaAsio_Initialize: drv:%d bufferPreferredSize = %d\n", i, paAsioDriverInfo.bufferPreferredSize));
PA_DEBUG(("PaAsio_Initialize: drv:%d bufferGranularity = %d\n", i, paAsioDriverInfo.bufferGranularity));
PA_DEBUG(("PaAsio_Initialize: drv:%d inputChannels = %d\n", i, paAsioDriver.info.inputChannelCount));
PA_DEBUG(("PaAsio_Initialize: drv:%d outputChannels = %d\n", i, paAsioDriver.info.outputChannelCount));
PA_DEBUG(("PaAsio_Initialize: drv:%d bufferMinSize = %d\n", i, paAsioDriver.info.bufferMinSize));
PA_DEBUG(("PaAsio_Initialize: drv:%d bufferMaxSize = %d\n", i, paAsioDriver.info.bufferMaxSize));
PA_DEBUG(("PaAsio_Initialize: drv:%d bufferPreferredSize = %d\n", i, paAsioDriver.info.bufferPreferredSize));
PA_DEBUG(("PaAsio_Initialize: drv:%d bufferGranularity = %d\n", i, paAsioDriver.info.bufferGranularity));
deviceInfo->maxInputChannels = paAsioDriverInfo.inputChannelCount;
deviceInfo->maxOutputChannels = paAsioDriverInfo.outputChannelCount;
deviceInfo->maxInputChannels = paAsioDriver.info.inputChannelCount;
deviceInfo->maxOutputChannels = paAsioDriver.info.outputChannelCount;
deviceInfo->defaultSampleRate = 0.;
bool foundDefaultSampleRate = false;
@ -1222,13 +1229,13 @@ PaError PaAsio_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex
*/
double defaultLowLatency =
paAsioDriverInfo.bufferPreferredSize / deviceInfo->defaultSampleRate;
paAsioDriver.info.bufferPreferredSize / deviceInfo->defaultSampleRate;
deviceInfo->defaultLowInputLatency = defaultLowLatency;
deviceInfo->defaultLowOutputLatency = defaultLowLatency;
double defaultHighLatency =
paAsioDriverInfo.bufferMaxSize / deviceInfo->defaultSampleRate;
paAsioDriver.info.bufferMaxSize / deviceInfo->defaultSampleRate;
if( defaultHighLatency < defaultLowLatency )
defaultHighLatency = defaultLowLatency; /* just in case the driver returns something strange */
@ -1249,10 +1256,10 @@ PaError PaAsio_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex
PA_DEBUG(("PaAsio_Initialize: drv:%d defaultHighInputLatency = %f\n", i, deviceInfo->defaultHighInputLatency));
PA_DEBUG(("PaAsio_Initialize: drv:%d defaultHighOutputLatency = %f\n", i, deviceInfo->defaultHighOutputLatency));
asioDeviceInfo->minBufferSize = paAsioDriverInfo.bufferMinSize;
asioDeviceInfo->maxBufferSize = paAsioDriverInfo.bufferMaxSize;
asioDeviceInfo->preferredBufferSize = paAsioDriverInfo.bufferPreferredSize;
asioDeviceInfo->bufferGranularity = paAsioDriverInfo.bufferGranularity;
asioDeviceInfo->minBufferSize = paAsioDriver.info.bufferMinSize;
asioDeviceInfo->maxBufferSize = paAsioDriver.info.bufferMaxSize;
asioDeviceInfo->preferredBufferSize = paAsioDriver.info.bufferPreferredSize;
asioDeviceInfo->bufferGranularity = paAsioDriver.info.bufferGranularity;
asioDeviceInfo->asioChannelInfos = (ASIOChannelInfo*)PaUtil_GroupAllocateMemory(
@ -3046,7 +3053,7 @@ previousIndex = index;
paTimeInfo.outputBufferDacTime = paTimeInfo.currentTime + theAsioStream->streamRepresentation.streamInfo.outputLatency;
*/
/* Disabled! Stopping and re-starting the stream causes an input overflow / output undeflow. S.Fischer */
/* Disabled! Stopping and re-starting the stream causes an input overflow / output underflow. S.Fischer */
#if 0
// detect underflows by checking inter-callback time > 2 buffer period
static double previousTime = -1;
@ -3498,6 +3505,7 @@ static PaError IsStreamActive( PaStream *s )
static PaTime GetStreamTime( PaStream *s )
{
(void) s; /* unused parameter */
return (double)timeGetTime() * .001;
}

View File

@ -204,8 +204,40 @@ const char *PaMacCore_GetChannelName( int device, int channelIndex, bool input )
return channelName;
}
PaError PaMacCore_GetBufferSizeRange( PaDeviceIndex device,
long *minBufferSizeFrames, long *maxBufferSizeFrames )
{
PaError result;
PaUtilHostApiRepresentation *hostApi;
result = PaUtil_GetHostApiRepresentation( &hostApi, paCoreAudio );
if( result == paNoError )
{
PaDeviceIndex hostApiDeviceIndex;
result = PaUtil_DeviceIndexToHostApiDeviceIndex( &hostApiDeviceIndex, device, hostApi );
if( result == paNoError )
{
PaMacAUHAL *macCoreHostApi = (PaMacAUHAL*)hostApi;
AudioDeviceID macCoreDeviceId = macCoreHostApi->devIds[hostApiDeviceIndex];
AudioValueRange audioRange;
UInt32 propSize = sizeof( audioRange );
// return the size range for the output scope unless we only have inputs
Boolean isInput = 0;
if( macCoreHostApi->inheritedHostApiRep.deviceInfos[hostApiDeviceIndex]->maxOutputChannels == 0 )
isInput = 1;
result = WARNING(AudioDeviceGetProperty( macCoreDeviceId, 0, isInput, kAudioDevicePropertyBufferFrameSizeRange, &propSize, &audioRange ) );
*minBufferSizeFrames = audioRange.mMinimum;
*maxBufferSizeFrames = audioRange.mMaximum;
}
}
return result;
}
AudioDeviceID PaMacCore_GetStreamInputDevice( PaStream* s )
@ -1596,12 +1628,19 @@ static UInt32 CalculateOptimalBufferSize( PaMacAUHAL *auhalHostApi,
resultBufferSizeFrames = MAX( resultBufferSizeFrames, (UInt32) variableLatencyFrames );
}
// can't have zero frames. code to round up to next user buffer requires non-zero
resultBufferSizeFrames = MAX( resultBufferSizeFrames, 1 );
if( requestedFramesPerBuffer != paFramesPerBufferUnspecified )
{
// make host buffer the next highest integer multiple of user frames per buffer
UInt32 n = (resultBufferSizeFrames + requestedFramesPerBuffer - 1) / requestedFramesPerBuffer;
resultBufferSizeFrames = n * requestedFramesPerBuffer;
// FIXME: really we should be searching for a multiple of requestedFramesPerBuffer
// that is >= suggested latency and also fits within device buffer min/max
}else{
VDBUG( ("Block Size unspecified. Based on Latency, the user wants a Block Size near: %ld.\n",
resultBufferSizeFrames ) );

View File

@ -1,5 +1,5 @@
/*
* $Id: pa_win_ds.c 1794 2011-11-24 18:11:33Z rossb $
* $Id: pa_win_ds.c 1824 2012-04-02 07:45:18Z rbencina $
* Portable Audio I/O Library DirectSound implementation
*
* Authors: Phil Burk, Robert Marsanyi & Ross Bencina
@ -480,7 +480,7 @@ static PaError ExpandDSDeviceNameAndGUIDVector( DSDeviceNameAndGUIDVector *guidV
else
{
newItems[i].lpGUID = &newItems[i].guid;
memcpy( &newItems[i].guid, guidVector->items[i].lpGUID, sizeof(GUID) );;
memcpy( &newItems[i].guid, guidVector->items[i].lpGUID, sizeof(GUID) );
}
newItems[i].pnpInterface = guidVector->items[i].pnpInterface;
}
@ -1167,6 +1167,8 @@ PaError PaWinDs_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiInde
goto error;
}
memset( winDsHostApi, 0, sizeof(PaWinDsHostApiRepresentation) ); /* ensure all fields are zeroed. especially winDsHostApi->allocations */
result = PaWinUtil_CoInitialize( paDirectSound, &winDsHostApi->comInitializationResult );
if( result != paNoError )
{
@ -1306,7 +1308,7 @@ error:
TerminateDSDeviceNameAndGUIDVector( &deviceNamesAndGUIDs.inputNamesAndGUIDs );
TerminateDSDeviceNameAndGUIDVector( &deviceNamesAndGUIDs.outputNamesAndGUIDs );
Terminate( winDsHostApi );
Terminate( (struct PaUtilHostApiRepresentation *)winDsHostApi );
return result;
}
@ -1703,9 +1705,9 @@ static void CalculateBufferSettings( unsigned long *hostBufferSizeFrames,
unsigned long suggestedOutputLatencyFrames,
double sampleRate, unsigned long userFramesPerBuffer )
{
unsigned long minimumPollingPeriodFrames = sampleRate * PA_DS_MINIMUM_POLLING_PERIOD_SECONDS;
unsigned long maximumPollingPeriodFrames = sampleRate * PA_DS_MAXIMUM_POLLING_PERIOD_SECONDS;
unsigned long pollingJitterFrames = sampleRate * PA_DS_POLLING_JITTER_SECONDS;
unsigned long minimumPollingPeriodFrames = (unsigned long)(sampleRate * PA_DS_MINIMUM_POLLING_PERIOD_SECONDS);
unsigned long maximumPollingPeriodFrames = (unsigned long)(sampleRate * PA_DS_MAXIMUM_POLLING_PERIOD_SECONDS);
unsigned long pollingJitterFrames = (unsigned long)(sampleRate * PA_DS_POLLING_JITTER_SECONDS);
if( userFramesPerBuffer == paFramesPerBufferUnspecified )
{
@ -1771,9 +1773,9 @@ static void CalculatePollingPeriodFrames( unsigned long hostBufferSizeFrames,
unsigned long *pollingPeriodFrames,
double sampleRate, unsigned long userFramesPerBuffer )
{
unsigned long minimumPollingPeriodFrames = sampleRate * PA_DS_MINIMUM_POLLING_PERIOD_SECONDS;
unsigned long maximumPollingPeriodFrames = sampleRate * PA_DS_MAXIMUM_POLLING_PERIOD_SECONDS;
unsigned long pollingJitterFrames = sampleRate * PA_DS_POLLING_JITTER_SECONDS;
unsigned long minimumPollingPeriodFrames = (unsigned long)(sampleRate * PA_DS_MINIMUM_POLLING_PERIOD_SECONDS);
unsigned long maximumPollingPeriodFrames = (unsigned long)(sampleRate * PA_DS_MAXIMUM_POLLING_PERIOD_SECONDS);
unsigned long pollingJitterFrames = (unsigned long)(sampleRate * PA_DS_POLLING_JITTER_SECONDS);
*pollingPeriodFrames = max( max(1, userFramesPerBuffer / 4), hostBufferSizeFrames / 16 );
@ -2471,6 +2473,8 @@ static int TimeSlice( PaWinDsStream *stream )
framesToXfer = numOutFramesReady = bytesEmpty / stream->outputFrameSizeBytes;
/* Check for underflow */
/* FIXME QueryOutputSpace should not adjust underflow count as a side effect.
A query function should be a const operator on the stream and return a flag on underflow. */
if( stream->outputUnderflowCount != previousUnderflowCount )
stream->callbackFlags |= paOutputUnderflow;
@ -2536,7 +2540,7 @@ static int TimeSlice( PaWinDsStream *stream )
{
/*
We don't currently add outputLatency here because it appears to produce worse
results than non adding it. Need to do more testing to verify this.
results than not adding it. Need to do more testing to verify this.
*/
/* timeInfo.outputBufferDacTime = timeInfo.currentTime + outputLatency; */
timeInfo.outputBufferDacTime = timeInfo.currentTime;
@ -2729,7 +2733,7 @@ PA_THREAD_FUNC ProcessingThreadProc( void *pArg )
LARGE_INTEGER dueTime;
int timerPeriodMs;
timerPeriodMs = stream->pollingPeriodSeconds * MSECS_PER_SECOND;
timerPeriodMs = (int)(stream->pollingPeriodSeconds * MSECS_PER_SECOND);
if( timerPeriodMs < 1 )
timerPeriodMs = 1;
@ -2953,7 +2957,7 @@ static PaError StartStream( PaStream *s )
if( stream->streamRepresentation.streamCallback )
{
TIMECAPS timecaps;
int timerPeriodMs = stream->pollingPeriodSeconds * MSECS_PER_SECOND;
int timerPeriodMs = (int)(stream->pollingPeriodSeconds * MSECS_PER_SECOND);
if( timerPeriodMs < 1 )
timerPeriodMs = 1;
@ -2967,7 +2971,7 @@ static PaError StartStream( PaStream *s )
if( timeGetDevCaps( &timecaps, sizeof(TIMECAPS) == MMSYSERR_NOERROR && timecaps.wPeriodMin > 0 ) )
{
/* aim for resolution 4 times higher than polling rate */
stream->systemTimerResolutionPeriodMs = (stream->pollingPeriodSeconds * MSECS_PER_SECOND) / 4;
stream->systemTimerResolutionPeriodMs = (UINT)((stream->pollingPeriodSeconds * MSECS_PER_SECOND) * .25);
if( stream->systemTimerResolutionPeriodMs < timecaps.wPeriodMin )
stream->systemTimerResolutionPeriodMs = timecaps.wPeriodMin;
if( stream->systemTimerResolutionPeriodMs > timecaps.wPeriodMax )

View File

@ -1065,6 +1065,8 @@ PaError PaWasapi_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiInd
result = paInsufficientMemory;
goto error;
}
memset( paWasapi, 0, sizeof(PaWasapiHostApiRepresentation) ); /* ensure all fields are zeroed. especially paWasapi->allocations */
result = PaWinUtil_CoInitialize( paWASAPI, &paWasapi->comInitializationResult );
if( result != paNoError )
@ -1248,7 +1250,7 @@ PaError PaWasapi_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiInd
goto error;
}
if (value.pwszVal)
wcstombs(deviceName, value.pwszVal, MAX_STR_LEN-1);
WideCharToMultiByte(CP_UTF8, 0, value.pwszVal, (int)wcslen(value.pwszVal), deviceName, MAX_STR_LEN-1, 0, 0);
else
_snprintf(deviceName, MAX_STR_LEN-1, "baddev%d", i);
deviceInfo->name = deviceName;
@ -2211,11 +2213,15 @@ static HRESULT CreateAudioClient(PaWasapiStream *pStream, PaWasapiSubStream *pSu
if (framesPerLatency == 0)
framesPerLatency = MakeFramesFromHns(pInfo->DefaultDevicePeriod, pSub->wavex.Format.nSamplesPerSec);
//! Exclusive Input stream renders data in 6 packets, we must set then the size of
//! single packet, total buffer size, e.g. required latency will be PacketSize * 6
// Exclusive Input stream renders data in 6 packets, we must set then the size of
// single packet, total buffer size, e.g. required latency will be PacketSize * 6
if (!output && (pSub->shareMode == AUDCLNT_SHAREMODE_EXCLUSIVE))
{
framesPerLatency /= WASAPI_PACKETS_PER_INPUT_BUFFER;
// Do it only for Polling mode
if ((pSub->streamFlags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK) == 0)
{
framesPerLatency /= WASAPI_PACKETS_PER_INPUT_BUFFER;
}
}
// Calculate aligned period
@ -3460,7 +3466,7 @@ static PaError ReadStream( PaStream* s, void *_buffer, unsigned long frames )
// Limit desired to amount of requested frames
desired = available;
if (desired > frames)
if ((UINT32)desired > frames)
desired = frames;
// Get pointers to read regions
@ -4795,13 +4801,15 @@ PA_THREAD_FUNC ProcThreadPoll(void *param)
// output
if (stream->bufferMode == paUtilFixedHostBufferSize)
{
if (frames >= stream->out.framesPerBuffer)
while (frames >= stream->out.framesPerBuffer)
{
if ((hr = ProcessOutputBuffer(stream, processor, stream->out.framesPerBuffer)) != S_OK)
{
LogHostError(hr);
goto thread_error;
}
frames -= stream->out.framesPerBuffer;
}
}
else

File diff suppressed because it is too large Load Diff

View File

@ -3,12 +3,15 @@ Notes about WDM-KS host API
Status history
--------------
16th January 2011:
Added support for WaveRT device API (Vista and later) for even lesser
latency support.
10th November 2005:
Made following changes:
* OpenStream: Try all PaSampleFormats internally if the the chosen
format is not supported natively. This fixed several problems
with soundcards that soundcards that did not take kindly to
using 24-bit 3-byte formats.
with soundcards that did not take kindly to using 24-bit 3-byte formats.
* OpenStream: Make the minimum framesPerHostIBuffer (and framesPerHostOBuffer)
the default frameSize for the playback/recording pin.
* ProcessingThread: Added a switch to only call PaUtil_EndBufferProcessing
@ -71,7 +74,7 @@ In PortAudio terms, this means having a stream Open on a WDMKS device.
Usage
-----
To add the WDMKS backend to your program which is already using
PortAudio, you must undefine PA_NO_WDMKS from your build file,
PortAudio, you must define PA_USE_WDMKS=1 in your build file,
and include the pa_win_wdmks\pa_win_wdmks.c into your build.
The file should compile in both C and C++.
You will need a DirectX SDK installed on your system for the
@ -79,4 +82,4 @@ ks.h and ksmedia.h header files.
You will need to link to the system "setupapi" library.
Note that if you use MinGW, you will get more warnings from
the DX header files when using GCC(C), and still a few warnings
with G++(CPP).
with G++(CPP).

View File

@ -79,9 +79,6 @@ if(common_libs)
add_subdirectory(common/src/x86emitter)
endif(common_libs)
# make tools
add_subdirectory(tools)
# make pcsx2
if(EXISTS "${PROJECT_SOURCE_DIR}/pcsx2" AND pcsx2_core)
add_subdirectory(pcsx2)
@ -100,5 +97,5 @@ if(PACKAGE_MODE)
INSTALL(FILES "${PROJECT_SOURCE_DIR}/linux_various/pcsx2.xpm" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/pixmaps")
INSTALL(FILES "${PROJECT_SOURCE_DIR}/bin/docs/PCSX2_FAQ_0.9.8.pdf" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/doc/pcsx2")
INSTALL(FILES "${PROJECT_SOURCE_DIR}/bin/docs/PCSX2_Readme_0.9.8.pdf" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/doc/pcsx2")
INSTALL(FILES "${PROJECT_SOURCE_DIR}/bin/docs/pcsx2.man" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1/")
INSTALL(FILES "${PROJECT_SOURCE_DIR}/bin/docs/pcsx2.1" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1/")
endif(PACKAGE_MODE)

339
COPYING.GPLv2 Normal file
View File

@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

674
COPYING.GPLv3 Normal file
View File

@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

502
COPYING.LGPLv2.1 Normal file
View File

@ -0,0 +1,502 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

165
COPYING.LGPLv3 Normal file
View File

@ -0,0 +1,165 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

View File

@ -83,6 +83,10 @@
---------------------------------------------
-- Game List
---------------------------------------------
Serial = PBPX-95201
Name = Underwater Unit
Region = NTSC-K
---------------------------------------------
Serial = PBPX-95503
Name = Gran Turismo 3 - A-Spec [PS2 Bundle]
Region = NTSC-U
@ -11854,6 +11858,20 @@ Serial = SCAJ-30011
Name = God of War II
Region = NTSC-E
---------------------------------------------
Serial = SCKA-10006
Name = Come on Baby
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20004
Name = Sly Cooper and the Thievius Raccoonus
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20008
Name = Tales of Destiny 2
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20009
Name = R-Type Final
Region = NTSC-K
@ -11864,16 +11882,53 @@ Serial = SCKA-20010
Name = Jak II
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20011
Name = Ratchet and Clank 2
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20012
Name = Ark the Lad - jeongryeongui Hwanghon
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20014
Name = Dark Claud 2
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20015
Name = Time Crisis 3
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20016
Name = Soul Calibur 2
Region = NTSC-K
Compat = 5
vuClampMode = 2 //SPS(Spikey Polygon Syndrome) solution
---------------------------------------------
Serial = SCKA-20018
Name = The Getaway
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20019
Name = Siren
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20020
Name = SOCOM II - U.S. Navy SEALs
Region = NTSC-K
Compat = 5
VIF1StallHack = 1 //HUD
---------------------------------------------
Serial = SCKA-20022
Name = Gran Turismo 4 Prologue
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20023
Name = Fatal Frame 2
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20025
Name = Katamari Damacy
Region = NTSC-K
@ -11883,6 +11938,11 @@ Serial = SCKA-20026
Name = Gungrave O.D.
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20027
Name = Ghost in the Shell - Stand Alone Complex
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20028
Name = Ico [PlayStation2 Big Hit Series]
Region = NTSC-K
@ -11915,6 +11975,10 @@ Serial = SCKA-20038
Name = Time Crisis - Crisis Zone
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20039
Name = Tekken Nina Williams In Death By Degree
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20040
Name = Jak 3
Region = NTSC-K
@ -11923,6 +11987,15 @@ Serial = SCKA-20043
Name = Magna Carta
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20044
Name = Sly Cooper 2 Band of Thieves
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20047
Name = Armored Core Nine Breaker
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20048
Name = Killzone
Region = NTSC-K
@ -11935,12 +12008,18 @@ eeClampMode = 1
Serial = SCKA-20050
Name = Tales of Legendia
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20051
Name = Minna Daisuki Katamari Damacy
Region = NTSC-K
SkipMPEGHack = 1
---------------------------------------------
Serial = SCKA-20052
Name = Genji
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20053
Name = SOCOM II - U.S. Navy SEALs [PlayStation 2 Big Hit Series]
Region = NTSC-K
@ -11966,6 +12045,7 @@ Region = NTSC-K
Serial = SCKA-20059
Name = Soul Calibur III
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20060
Name = Ratchet - Deadlocked
@ -11974,15 +12054,25 @@ Region = NTSC-K
Serial = SCKA-20061
Name = Wanda to Kyozou (Shadow of the Colossus)
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20062
Name = Ape Escape 3
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20063
Name = Sly Cooper 3 Honor Among Thieves
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20064
Name = SOCOM 3 - U.S. Navy SEALs
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20069
Name = Siren 2
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20070
Name = Ace Combat Zero - The Belkan War
Region = NTSC-K
@ -12022,10 +12112,19 @@ Serial = SCKA-20087
Name = Shin Onimusha - Dawn of Dreams [Disc2of2]
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20090
Name = God Hand
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-20092
Name = K-1 World Grand Prix 2006
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20096
Name = Barnyard
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20099
Name = Persona 3
Region = NTSC-K
@ -12053,10 +12152,34 @@ Serial = SCKA-20117
Name = Super Robot Taisen OG - Original Generations Gaiden
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20120
Name = Ratchet and Clank
Region = NTSC-K
---------------------------------------------
Serial = SCKA-20132
Name = Shin Megami Tensei - Persona 4
Region = NTSC-K
Compat = 5
VuClipFlagHack = 1
---------------------------------------------
Serial = SCKA-24008
Name = SOCOM - U.S. Navy SEALs
Region = NTSC-K
---------------------------------------------
Serial = SCKA-30001
Name = Gran Turismo 4
Region = NTSC-K
---------------------------------------------
Serial = SCKA-30002
Name = God of War
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCKA-30006
Name = God of War 2
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCPS-11001
Name = I.Q. Remix
Region = NTSC-J
@ -13229,10 +13352,51 @@ Serial = SCPS-55903
Name = Gran Turismo - Concept 2002 Tokyo-Geneva
Region = NTSC-J
---------------------------------------------
Serial = SCPS-56001
Name = Ico
Region = NTSC-K
Compat = 5
eeClampMode = 2 // Otherwise freezes in various spots, check full intro
vuClampMode = 1 // Otherwise camera gets stuck off the player in various spots.
---------------------------------------------
Serial = SCPS-56002
Name = Tekken Tag Tournament
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCPS-56005
Name = Gran Turismo Concept 2002 Tokyo-Seoul
Region = NTSC-K
---------------------------------------------
Serial = SCPS-56006
Name = Tekken 4
Region = NTSC-K
Compat = 5
[patches = 35B4028B]
comment=patches by Shadow Lady
//IPU BUSY! fix...
patch=0,EE,00290b24,word,24200001
patch=0,EE,00290d24,word,00000000
[/patches]
---------------------------------------------
Serial = SCPS-56008
Name = Fatal Frame
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCPS-56011
Name = U - Underwater Unit
Region = NTSC-J
---------------------------------------------
Serial = SCPS-56012
Name = Raw Danger
Region = NTSC-K
---------------------------------------------
Serial = SCPS-56014
Name = Gungrave
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SCPS-56015
Name = Ninja Assault
Region = NTSC-J
@ -13491,6 +13655,10 @@ Serial = SLAJ-35003
Name = Sakura Taisen - Atsuki Chishioni Ni
Region = NTSC-Unk
---------------------------------------------
Serial = SLKA-15003
Name = Shikigami no Shiro II
Region = NTSC-K
---------------------------------------------
Serial = SLKA-15004
Name = Gunbird - Premium Package
Region = NTSC-J
@ -13500,10 +13668,37 @@ Name = Strikers 1945 III
Region = NTSC-J
Compat = 5
---------------------------------------------
Serial = SLKA-15007
Name = GrowLanser2
Region = NTSC-K
Compat = 5
OPHFLagHack = 1
---------------------------------------------
Serial = SLKA-15008
Name = Choro Q HG2
Region = NTSC-E-F-G
---------------------------------------------
Serial = SLKA-15021
Name = GrowLanser3
Region = NTSC-K
Compat = 5
OPHFLagHack = 1
---------------------------------------------
Serial = SLKA-15032
Name = Gradius V
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25012
Name = Davil May Cry 2 Dante
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25013
Name = Davil May Cry 2 Lucia
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25015
Name = Evolution Skateboarding
Region = NTSC-K
@ -13511,11 +13706,21 @@ Region = NTSC-K
Serial = SLKA-25021
Name = Shinobi
Region = NTSC-M3
Compat = 5
---------------------------------------------
Serial = SLKA-25024
Name = Lilo & Stitch Experiment
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25026
Name = Chaos Legion
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25033
Name = Gregory Horror Show
Region = NTSC-K
Compat = 1
---------------------------------------------
Serial = SLKA-25035
Name = Mobile Suit Gundam - Lost War Chronicles
Region = NTSC-K
@ -13524,14 +13729,37 @@ Serial = SLKA-25038
Name = Gun Survivor 4 - Biohazard - Heroes Never Die
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25041
Name = Armored Core 3 Silent Line
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25042
Name = Tamamayu Monogatari 2 Horobi no Mushi
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25043
Name = Virtua Fighter 4 - Evolution
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25046
Name = Dragonball Z
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25048
Name = Makai Senki Disgaea
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25049
Name = Metal Slug 3
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25051
Name = Clock Tower 3
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25052
Name = Air Ranger 2 - Rescue Helicopter
Region = NTSC-K
@ -13540,18 +13768,51 @@ Serial = SLKA-25060
Name = I.Q. Remix+ - Intelligent Qube
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25062
Name = Dragonball Z 2
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25063
Name = Kaido Battle
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25064
Name = Tenchu 3 Wrath of Heaven
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25066
Name = Zone of The Enders 2nd Runner SE
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25067
Name = Unlimited Saga
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25070
Name = Guity Gear XX Reload - The Midnight Carnival
Region = NTSC-J-K
---------------------------------------------
Serial = SLKA-25071
Name = Tantei Jinguji Saburo 8 Inocent Black
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25077
Name = Culdicept II - Expansion
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25081
Name = SD Gundam G Generation Neo
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25082
Name = Castlevania Lament of Innocence
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25087
Name = FIFA Soccer 2004
Region = NTSC-J
@ -13561,6 +13822,19 @@ Serial = SLKA-25091
Name = Hanjuku Hero vs. 3D
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25092
Name = Onimusha Buraiden
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25093
Name = Onimusha 3 Demon Siege
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25100
Name = Dragon Quest V Dragon Quarter
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25103
Name = Neon Genesis Evangelion 2
Region = NTSC-K
@ -13569,6 +13843,10 @@ Serial = SLKA-25112
Name = King of Fighters 2001, The
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25115
Name = Rockman X7
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25125
Name = SNK vs. Capcom - Chaos
Region = NTSC-K
@ -13581,6 +13859,10 @@ Serial = SLKA-25131
Name = Project Altered Beast
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25132
Name = Mobile Suit Gundam Encounters in Space
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25133
Name = AirForce Delta Strike
Region = NTSC-K
@ -13590,6 +13872,11 @@ Serial = SLKA-25134
Name = NBA Street v3
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25135
Name = Kunoichi
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25139
Name = Fu-un Shinsengumi
Region = NTSC-K
@ -13597,6 +13884,12 @@ Region = NTSC-K
Serial = SLKA-25144
Name = Final Fantasy X-2
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25149
Name = Silent Hill 4 The Room
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25150
Name = Bujingai
@ -13610,6 +13903,10 @@ Serial = SLKA-25153
Name = Winning Eleven 10 - Liveware Edition
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25159
Name = Astro Boy
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25160
Name = Shin Megami Tensei III - Nocturne Maniax
Region = NTSC-K
@ -13629,10 +13926,27 @@ Serial = SLKA-25167
Name = King of Fighters XI, The
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25170
Name = SD Gundam G Generation Seed
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25171
Name = Guon
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25175
Name = Transformers
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25181
Name = Energy Airforce Aim Strike
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25182
Name = Hajime no Ippo2 Victorious Road
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25183
Name = Street Fighter - Anniversary Collection
Region = NTSC-K
@ -13641,14 +13955,28 @@ Serial = SLKA-25186
Name = King of Fighters, The - Maximum Impact [Limited Edition]
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25198
Name = Tenchu Kurenai
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25199
Name = Kengo 3
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25200
Name = SSX 3 [PlayStation 2 - Big Hit Series]
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25201
Name = Armored Core Nexus Evolution DISC1
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25202
Name = Armored Core Nexus Revolution DISC2
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25204
Name = Showdown - Legends of Wrestling
Region = NTSC-K
@ -13660,6 +13988,7 @@ Region = NTSC-K
Serial = SLKA-25207
Name = Sakura Taisen V - Episode 0 - Samurai Girl of Wild
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25208
Name = From TV Animation - One Piece - Round the Land!
@ -13668,6 +13997,7 @@ Region = NTSC-K
Serial = SLKA-25213
Name = Berserk
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25214
Name = Final Fantasy X - International [PlayStation 2 - Big Hit Series]
@ -13690,10 +14020,38 @@ Serial = SLKA-25218
Name = Hitman - Contracts
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25219
Name = Monster Hunter G
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25221
Name = Busin Zero
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25222
Name = Rockman X8
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25224
Name = Detective Saburou Jinguji 9 - Kind of Blue
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25225
Name = Dororo
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25227
Name = Neo Contra
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25232
Name = Naruto Naruthimetto Hero International
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25233
Name = Sonic - Mega Collection Plus
Region = NTSC-K
@ -13706,6 +14064,10 @@ Serial = SLKA-25244
Name = WWE SmackDown! vs. Raw
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25246
Name = Bard's Tale
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25249
Name = Ys - The Ark of Napishtim [with Guide Book]
Region = NTSC-K
@ -13718,6 +14080,12 @@ Serial = SLKA-25252
Name = Forgotten Realms - Demon Stone
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25254
Name = Digimon Rumble Arena 2
Region = NTSC-K
Compat = 5
FpuCompareHack = 1
---------------------------------------------
Serial = SLKA-25255
Name = Mobile Suit Gundam - Seed - Never Ending Tomorrow
Region = NTSC-K
@ -13726,6 +14094,11 @@ Serial = SLKA-25257
Name = Fu-un Bakumatsu Den
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25258
Name = The Story of the Hero Yoshitsune
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25259
Name = Swords of Destiny
Region = NTSC-K
@ -13775,6 +14148,7 @@ Region = NTSC-K
Serial = SLKA-25284
Name = Sakura Taisen 3
Region = NTSC-K
Compat = 1
---------------------------------------------
Serial = SLKA-25287
Name = Metal Slug 4&5
@ -13811,12 +14185,30 @@ Region = NTSC-K
Serial = SLKA-25300
Name = Digital Devil Saga [Special Package]
Region = NTSC-J-K
Compat = 5
EETimingHack = 1
---------------------------------------------
Serial = SLKA-25301
Name = Digital Devil Saga - Avatar Tuner 2
Region = NTSC-K
Compat = 5
EETimingHack = 1
---------------------------------------------
Serial = SLKA-25307
Name = Dragonball Z Sparking
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25311
Name = Marvel Nemesis - Rise of the Imperfects
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25313
Name = Naruto - Uzumaki Chronicles
Region = NTSC-K
Compat = 5
OPHFLagHack = 1
---------------------------------------------
Serial = SLKA-25317
Name = Shin Sangoku Musou 3 [PlayStation 2 - Big Hit Series]
Region = NTSC-K
@ -13839,6 +14231,12 @@ Serial = SLKA-25323
Name = SSX On Tour
Region = NTSC-J-K
---------------------------------------------
Serial = SLKA-25328
Name = Castlevania - Curse of Dakness
Region = NTSC-K
Compat = 5
vuClampMode = 0 //SPS with microVU
---------------------------------------------
Serial = SLKA-25329
Name = Shin Sangoku Musou 4 - Moushouden
Region = NTSC-K
@ -13859,6 +14257,10 @@ Serial = SLKA-25342
Name = Ryu ga Gotoku
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25351
Name = One Piece Pirates Carnival
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25352
Name = Full Metal Alchemist - Dream Carnival
Region = NTSC-K
@ -13866,19 +14268,35 @@ Region = NTSC-K
Serial = SLKA-25353
Name = Metal Gear Solid 3 - Subsistance [Limited Edition] [Disc1of2]
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25354
Name = Metal Gear Solid 3 - Subsistance [Limited Edition] [Disc2of2]
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25359
Name = Winning Eleven 9 - Liveware Edition
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25361
Name = Keroro Gunsou MeroMero Battle Royale Z
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25364
Name = Mobile Suit Gundam - Climax U.C.
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25365
Name = WWE Smack Down Vs RAW 2008
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25366
Name = Naruto - Uzumaki Chronicles 2
Region = NTSC-K
Compat = 5
OPHFLagHack = 1
---------------------------------------------
Serial = SLKA-25375
Name = Transformers - The Game
Region = NTSC-K
@ -13887,13 +14305,20 @@ Serial = SLKA-25381
Name = Winning Eleven 10
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25384
Name = Blazing Souls
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25388
Name = One Piece - Grand Adventure
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25389
Name = Shinobido Imashime
Region = NTSC-K
Compat = 5
eeClampMode = 3 //Otherwise freezes in some spot
---------------------------------------------
Serial = SLKA-25390
Name = Shin Sangoku Musou 4 - Empires
@ -13903,6 +14328,11 @@ Serial = SLKA-25396
Name = FIFA '07
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25397
Name = Dragon Ball Z Sparking NEO
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25406
Name = King of Fighters, The - Maximum Impact - Regulation A
Region = NTSC-K
@ -13910,6 +14340,7 @@ Region = NTSC-K
Serial = SLKA-25407
Name = DragonBall Z - Sparkling! Meteor
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25413
Name = SD Gundam G - Generation Spirits
@ -13924,9 +14355,37 @@ Serial = SLKA-25424
Name = SNK Arcade Classics Vol.1
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25443
Name = Musou Orochi Maou Sairin
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-25477
Name = World Soccer Winning Eleven 2011
Region = NTSC-K
---------------------------------------------
Serial = SLKA-25480
Name = World Soccer Winning Eleven 2012
Region = NTSC-K
---------------------------------------------
Serial = SLKA-35001
Name = Metal Gear Solid 2 Substance
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-35003
Name = Sakura Taisen - Atsuki Chishioni
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-35004
Name = Sakura Wars 5 So Long My Love
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLKA-35005
Name = Shin Sangoku Musou 5 Special
Region = NTSC-K
---------------------------------------------
Serial = SLPM-55005
Name = Mana Khemia 2: Ochita Gakuen to Renkinjutsushi Tachi
@ -16510,6 +16969,19 @@ Name = Fantasy Zone Complete Collection
Region = NTSC-J
Compat = 5
---------------------------------------------
Serial = SLPM-64504
Name = Maximo
Region = NTSC-K
---------------------------------------------
Serial = SLPM-64522
Name = La Pucelle
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLPM-64523
Name = Marvel Vs Capcom 2
Region = NTSC-K
---------------------------------------------
Serial = SLPM-64525
Name = Guilty Gear X Plus "By Your Side"
Region = NTSC-K
@ -23603,23 +24075,72 @@ Serial = SLPM-67015
Name = School Days LxH
Region = NTSC-J
---------------------------------------------
Serial = SLPM-67502
Name = Devil May Cry
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLPM-67507
Name = Onimusha Warlords
Region = NTSC-K
---------------------------------------------
Serial = SLPM-67508
Name = Gitaroo Man
Region = NTSC-K
Compat = 5
eeRoundMode = 1
vuRoundMode = 3
---------------------------------------------
Serial = SLPM-67513
Name = Final Fantasy X International
Region = NTSC-K
IPUWaitHack = 1
---------------------------------------------
Serial = SLPM-67514
Name = Kessen
Region = NTSC-K
---------------------------------------------
Serial = SLPM-67518
Name = Onimusha 2 Samurai's Destiny
Region = NTSC-K
---------------------------------------------
Serial = SLPM-67524
Name = Armored Core 3
Region = NTSC-K
---------------------------------------------
Serial = SLPM-67528
Name = Hajime no Ippo - Victorious Boxers [Championship Edition]
Region = NTSC-K
---------------------------------------------
Serial = SLPM-67529
Name = Gun Survivor 3 Dino Crisis
Region = NTSC-K
---------------------------------------------
Serial = SLPM-67531
Name = Kessen 2
Region = NTSC-K
---------------------------------------------
Serial = SLPM-67535
Name = Memories Of
Region = NTSC-J-K
---------------------------------------------
Serial = SLPM-67536
Name = Senkaiden Hoshin Engi
Region = NTSC-K
---------------------------------------------
Serial = SLPM-67540
Name = Auto Modellista
Region = NTSC-K
Compat = 5
---------------------------------------------
Serial = SLPM-67546
Name = Lord of the Rings - The Two Towers
Region = NTSC-K
---------------------------------------------
Serial = SLPM-64549
Name = Shikigami no Shiro
Region = NTSC-K
---------------------------------------------
Serial = SLPM-67552
Name = Tomak - Save the Earth Again [Complete Edition]
Region = NTSC-K

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -125,4 +125,21 @@ http://forums.pcsx2.net
.SH "COPYRIGHT NOTICE"
Copyright \(co 2002-2010 PCSX2 Dev Team
Permission is granted to copy and distribute this manual under the terms of the GNU Free Documentation License.
This is free documentation; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3 of
the License, or (at your option) any later version.
The GNU General Public License's references to "object code"
and "executables" are to be interpreted as the output of any
document formatting or typesetting system, including
intermediate and printed output.
This manual is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with this manual; if not, see
<http://www.gnu.org/licenses/>.

View File

@ -1,5 +1,19 @@
#!/bin/sh -e
# PCSX2 - PS2 Emulator for PCs
# Copyright (C) 2002-2011 PCSX2 Dev Team
#
# PCSX2 is free software: you can redistribute it and/or modify it under the terms
# of the GNU Lesser General Public License as published by the Free Software Found-
# ation, either version 3 of the License, or (at your option) any later version.
#
# PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with PCSX2.
# If not, see <http://www.gnu.org/licenses/>.
# This script is a small wrapper to the PCSX2 exectuable. The purpose is to
# launch PCSX2 from the same repository every times.
# Rationale: There is no guarantee on the directory when PCSX2 is launched from a shortcut.

View File

@ -1,5 +1,19 @@
#!/bin/sh
# PCSX2 - PS2 Emulator for PCs
# Copyright (C) 2002-2011 PCSX2 Dev Team
#
# PCSX2 is free software: you can redistribute it and/or modify it under the terms
# of the GNU Lesser General Public License as published by the Free Software Found-
# ation, either version 3 of the License, or (at your option) any later version.
#
# PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with PCSX2.
# If not, see <http://www.gnu.org/licenses/>.
flags=""
args="$@"
clean_build=false
@ -54,7 +68,8 @@ if [ $clean_build = true ]; then
echo "Doing a clean build."
make clean 2>&1 | tee -a ../install_log.txt
fi
make 2>&1 | tee -a ../install_log.txt
CORE=`grep -w -c processor /proc/cpuinfo`
make -j $CORE 2>&1 | tee -a ../install_log.txt
make install 2>&1 | tee -a ../install_log.txt
cd ..
cd ..

View File

@ -8,6 +8,7 @@
# Use soundtouch internal lib: -DFORCE_INTERNAL_SOUNDTOUCH=TRUE
# Use zlib internal lib: -DFORCE_INTERNAL_ZLIB=TRUE
# Use sdl1.3 internal lib: -DFORCE_INTERNAL_SDL=TRUE # Not supported yet
# Use GLSL API(else NVIDIA_CG): -DGLSL_API=TRUE
### GCC optimization options
# control C flags : -DUSER_CMAKE_C_FLAGS="cflags"
@ -183,3 +184,10 @@ if(PACKAGE_MODE)
# Compile all source codes with these 2 defines
add_definitions(-DPLUGIN_DIR_COMPILATION=${PLUGIN_DIR} -DGAMEINDEX_DIR_COMPILATION=${GAMEINDEX_DIR})
endif(PACKAGE_MODE)
#-------------------------------------------------------------------------------
# Select nvidia cg shader api by default
#-------------------------------------------------------------------------------
if(NOT DEFINED GLSL_API)
set(GLSL_API FALSE)
endif(NOT DEFINED GLSL_API)

View File

@ -0,0 +1,18 @@
# Try to find SparseHash
# Once done, this will define
#
# SPARSEHASE_NEW_FOUND - system has SparseHash
# SPARSEHASE_NEW_INCLUDE_DIR - the SparseHash include directories
if(SPARSEHASE_NEW_INCLUDE_DIR)
set(SPARSEHASE_NEW_FIND_QUIETLY TRUE)
endif(SPARSEHASE_NEW_INCLUDE_DIR)
find_path(SPARSEHASE_NEW_INCLUDE_DIR sparsehash/internal/densehashtable.h)
# handle the QUIETLY and REQUIRED arguments and set SPARSEHASE_NEW_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SparseHash_new DEFAULT_MSG SPARSEHASE_NEW_INCLUDE_DIR)
mark_as_advanced(SPARSEHASE_NEW_INCLUDE_DIR)

View File

@ -53,7 +53,10 @@ if(NOT FORCE_INTERNAL_ZLIB)
endif(NOT FORCE_INTERNAL_ZLIB)
## Use pcsx2 package to find module
include(FindCg)
## Include cg because of zzogl-cg
#if(NOT GLSL_API)
include(FindCg)
#endif(NOT GLSL_API)
include(FindGlew)
include(FindLibc)
include(FindPortAudio)
@ -61,6 +64,7 @@ if(NOT FORCE_INTERNAL_SOUNDTOUCH)
include(FindSoundTouch)
endif(NOT FORCE_INTERNAL_SOUNDTOUCH)
include(FindSparseHash)
include(FindSparseHash_NEW)
# Note for include_directory: The order is important to avoid a mess between include file from your system and the one of pcsx2
# If you include first 3rdparty, all 3rdpary include will have a higer priority...
@ -166,6 +170,11 @@ endif(SOUNDTOUCH_FOUND AND NOT projectSoundTouch)
if(SPARSEHASH_FOUND)
include_directories(${SPARSEHASH_INCLUDE_DIR})
endif(SPARSEHASH_FOUND)
if(SPARSEHASH_NEW_FOUND)
include_directories(${SPARSEHASH_NEW_INCLUDE_DIR})
# allow to build parts that depend on sparsehash
set(SPARSEHASH_FOUND TRUE)
endif(SPARSEHASH_NEW_FOUND)
# Wx
if(wxWidgets_FOUND)

View File

@ -6,11 +6,15 @@ set(msg_dep_pcsx2 "check these libraries -> wxWidgets (>=2.8.10), gtk2 (>=
set(msg_dep_cdvdiso "check these libraries -> bzip2 (>=1.0.5), gtk2 (>=2.16)")
set(msg_dep_zerogs "check these libraries -> glew (>=1.5), opengl, X11, nvidia-cg-toolkit (>=2.1)")
set(msg_dep_gsdx "check these libraries -> opengl, X11, pcsx2 SDL")
set(msg_dep_zzogl "check these libraries -> glew (>=1.5), jpeg (>=6.2), opengl, X11, nvidia-cg-toolkit (>=2.1), pcsx2 common libs")
set(msg_dep_onepad "check these libraries -> sdl (>=1.2)")
set(msg_dep_zeropad "check these libraries -> sdl (>=1.2)")
set(msg_dep_spu2x "check these libraries -> soundtouch (>=1.5), alsa, portaudio (>=1.9), pcsx2 common libs")
set(msg_dep_zerospu2 "check these libraries -> soundtouch (>=1.5), alsa")
if(GLSP_API)
set(msg_dep_zzogl "check these libraries -> glew (>=1.5), jpeg (>=6.2), opengl, X11, pcsx2 common libs")
else(GLSP_API)
set(msg_dep_zzogl "check these libraries -> glew (>=1.5), jpeg (>=6.2), opengl, X11, nvidia-cg-toolkit (>=2.1), pcsx2 common libs")
endif(GLSP_API)
#-------------------------------------------------------------------------------
# Pcsx2 core & common libs
@ -153,17 +157,17 @@ endif(GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND CG_FOUND)
# requires: -GLEW
# -OpenGL
# -X11
# -CG
# -CG (only with cg build
# -JPEG
# -common_libs
#---------------------------------------
if(GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND CG_FOUND AND JPEG_FOUND AND common_libs)
if((GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND JPEG_FOUND AND common_libs) AND (CG_FOUND OR GLSL_API))
set(zzogl TRUE)
else(GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND CG_FOUND AND JPEG_FOUND AND common_libs)
else((GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND JPEG_FOUND AND common_libs) AND (CG_FOUND OR GLSL_API))
set(zzogl FALSE)
message(STATUS "Skip build of zzogl: miss some dependencies")
message(STATUS "${msg_dep_zzogl}")
endif(GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND CG_FOUND AND JPEG_FOUND AND common_libs)
endif((GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND JPEG_FOUND AND common_libs) AND (CG_FOUND OR GLSL_API))
#---------------------------------------
#---------------------------------------
@ -188,20 +192,6 @@ else(SDL_FOUND)
endif(SDL_FOUND)
#---------------------------------------
#---------------------------------------
# zeropad
#---------------------------------------
# requires: -SDL
#---------------------------------------
if(SDL_FOUND)
set(zeropad TRUE)
else(SDL_FOUND)
set(zeropad FALSE)
message(STATUS "Skip build of zeropad: miss some dependencies")
message(STATUS "${msg_dep_zeropad}")
endif(SDL_FOUND)
#---------------------------------------
#---------------------------------------
# SPU2null
#---------------------------------------
@ -235,7 +225,10 @@ endif(ALSA_FOUND AND PORTAUDIO_FOUND AND SOUNDTOUCH_FOUND AND common_libs)
# -PortAudio
#---------------------------------------
if(SOUNDTOUCH_FOUND AND ALSA_FOUND)
set(zerospu2 TRUE)
set(zerospu2 TRUE)
# Comment the next line, if you want to compile zerospu2
set(zerospu2 FALSE)
message(STATUS "Don't build zerospu2. It is super-seeded by spu2x")
else(SOUNDTOUCH_FOUND AND ALSA_FOUND)
set(zerospu2 FALSE)
message(STATUS "Skip build of zerospu2: miss some dependencies")

View File

@ -15,10 +15,18 @@
#pragma once
// They move include file in version 2.0.2 of google sparsehash...
#ifdef SPARSEHASH_NEW_INCLUDE_DIR
#include <sparsehash/type_traits.h>
#include <sparsehash/dense_hash_set>
#include <sparsehash/dense_hash_map>
#include <sparsehash/internal/densehashtable.h>
#else
#include <google/type_traits.h>
#include <google/dense_hash_set>
#include <google/dense_hash_map>
#include <google/sparsehash/densehashtable.h>
#endif
#include <wx/string.h>
@ -594,8 +602,8 @@ public:
HashMap( const Key& emptyKey, const Key& deletedKey, int initialCapacity=33 ) :
google::dense_hash_map<Key, T, HashFunctor>( initialCapacity )
{
set_empty_key( emptyKey );
set_deleted_key( deletedKey );
this->set_empty_key( emptyKey );
this->set_deleted_key( deletedKey );
}
/// <summary>
@ -608,7 +616,7 @@ public:
/// </remarks>
bool TryGetValue( const Key& key, T& outval ) const
{
const_iterator iter( find(key) );
const_iterator iter( this->find(key) );
if( iter != end() )
{
outval = iter->second;

View File

@ -57,8 +57,10 @@
// insisting on "mov eax, immaddr; call eax". Likewise, GCC fails to optimize it also, unless
// the typecast is explicitly inlined. These macros account for these problems.
//
// But it turns out that MSVC is quite capable of optimising important code out of existance
// if we use these macros in our PGO builds, so it's better just to live with the inefficient call.
#ifdef _MSC_VER
#ifdef _MSC_HAS_FIXED_INLINE_ASM_PGO
# define CallAddress( ptr ) \
__asm{ call offset ptr }

View File

@ -20,6 +20,10 @@ set(CommonFlags
-pipe
-Wunused-variable)
if (SPARSEHASH_NEW_FOUND)
set(CommonFlags "${CommonFlags} -DSPARSEHASH_NEW_INCLUDE_DIR ")
endif (SPARSEHASH_NEW_FOUND)
# set warning flags
set(DebugFlags
-g

View File

@ -22,6 +22,7 @@
#include <sys/mman.h>
#include <signal.h>
#include <errno.h>
#include <unistd.h>
extern void SignalExit(int sig);

View File

@ -17,6 +17,7 @@
#include <ctype.h>
#include <time.h>
#include <unistd.h>
#include <sys/time.h>
#include <wx/utils.h>

View File

@ -17,6 +17,7 @@
#include "../PrecompiledHeader.h"
#include "PersistentThread.h"
#include <sys/prctl.h>
#include <unistd.h>
// We wont need this until we actually have this more then just stubbed out, so I'm commenting this out
// to remove an unneeded dependency.

View File

@ -19,8 +19,7 @@
#include <winnt.h>
int SysPageFaultExceptionFilter( EXCEPTION_POINTERS* eps )
static int DoSysPageFaultExceptionFilter( EXCEPTION_POINTERS* eps )
{
if( eps->ExceptionRecord->ExceptionCode != EXCEPTION_ACCESS_VIOLATION )
return EXCEPTION_CONTINUE_SEARCH;
@ -33,6 +32,21 @@ int SysPageFaultExceptionFilter( EXCEPTION_POINTERS* eps )
return Source_PageFault->WasHandled() ? EXCEPTION_CONTINUE_EXECUTION : EXCEPTION_CONTINUE_SEARCH;
}
int SysPageFaultExceptionFilter( EXCEPTION_POINTERS* eps )
{
// Prevent recursive exception filtering by catching the exception from the filter here.
// In the event that the filter causes an access violation (happened during shutdown
// because Source_PageFault was deallocated), this will allow the debugger to catch the
// exception.
// TODO: find a reliable way to debug the filter itself, I've come up with a few ways that
// work but I don't fully understand why some do and some don't.
__try {
return DoSysPageFaultExceptionFilter(eps);
} __except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
return EXCEPTION_CONTINUE_SEARCH;
}
}
void _platform_InstallSignalHandler()
{
// NOP on Win32 systems -- we use __try{} __except{} instead.

View File

@ -6,18 +6,12 @@ Maintainer: Gregory Hainaut <gregory.hainaut@gmail.com>
Build-Depends: cmake (>= 2.8),
debhelper (>= 7.0.50),
dpkg-dev (>= 1.15.7),
gcc-multilib [amd64],
g++-multilib [amd64],
ia32-libs-dev [amd64],
lib32asound2-dev [amd64],
lib32bz2-dev [amd64],
lib32z1-dev (>= 1:1.2.3.3) [amd64],
libasound2-dev,
libbz2-dev,
libgl1-mesa-dev,
# Future GSdx version will need glew1.6. Only Oneiric have it...
# libglew1.6-dev,
libglew1.5-dev,
libglew-dev (>= 1.6)| libglew1.5-dev,
libglu1-mesa-dev,
libgtk2.0-dev (>= 2.16),
libjpeg-dev,
@ -28,7 +22,8 @@ Build-Depends: cmake (>= 2.8),
libwxgtk2.8-dev,
libx11-dev,
locales | locales-all,
nvidia-cg-toolkit (>= 3),
# package was split in precise to allow multiarch support
libcg, nvidia-cg-toolkit (>= 3),
portaudio19-dev,
zlib1g-dev (>= 1:1.2.3.3)
Standards-Version: 3.9.2
@ -54,7 +49,7 @@ Package: pcsx2-plugins-unstable
Architecture: i386
# manually add nvidia-cg-toolkit for zzogl (cg pacakge does not provide symbol or shlibs files)
Depends: ${shlibs:Depends}, ${misc:Depends},
nvidia-cg-toolkit-pcsx2 | nvidia-cg-toolkit (>= 2.1)
libcg | nvidia-cg-toolkit (>= 2.1)
Recommends: pcsx2-unstable (>= ${binary:Version}),
Conflicts: pcsx2-plugins,
pcsx2-data-unstable

View File

@ -1,5 +1,19 @@
#!/bin/sh
# PCSX2 - PS2 Emulator for PCs
# Copyright (C) 2002-2011 PCSX2 Dev Team
#
# PCSX2 is free software: you can redistribute it and/or modify it under the terms
# of the GNU Lesser General Public License as published by the Free Software Found-
# ation, either version 3 of the License, or (at your option) any later version.
#
# PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with PCSX2.
# If not, see <http://www.gnu.org/licenses/>.
# Script default parameter
MAX_DEPTH=1
DIR=$PWD

97
linux_various/hex2h.pl Executable file
View File

@ -0,0 +1,97 @@
#!/usr/bin/perl
# PCSX2 - PS2 Emulator for PCs
# Copyright (C) 2002-2011 PCSX2 Dev Team
#
# PCSX2 is free software: you can redistribute it and/or modify it under the terms
# of the GNU Lesser General Public License as published by the Free Software Found-
# ation, either version 3 of the License, or (at your option) any later version.
#
# PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with PCSX2.
# If not, see <http://www.gnu.org/licenses/>.
# This basic script convert an jpeg/png image to a .h include file
# compatible with PCSX2 gui
use File::Basename;
use strict;
use warnings;
sub ascii_to_hex ($)
{
(my $str = shift) =~ s/(.|\n)/sprintf("%02lx", ord $1)/eg;
return $str;
}
sub get_wx_ext ($)
{
my $ext = shift;
my $result = "BAD_FORMAT";
if ($ext =~ /png/i) {
$result = "wxBITMAP_TYPE_PNG";
} elsif ($ext =~ /jpe?g/i) {
$result = "wxBITMAP_TYPE_JPEG";
} else {
print "ERROR: bad format $ext\n";
}
return $result;
}
my $input=$ARGV[0];
my $output=$ARGV[1] . ".h" ;
my($filename, $directories, $suffix) = fileparse($input);
my ($name, $ext) = split(/\./,$filename);
my $wx_img_class = "res_$name";
my $wx_img_extension = get_wx_ext($ext);
my $filesize = -s $input;
### Collect binary data
my $lenght = 1;
my $binary = "\t\t";
my $data;
my $byte;
open(IN,"$input");
binmode IN;
while (($byte = read IN, $data, 1) != 0) {
my $hex = ascii_to_hex($data);
$binary .= "0x$hex";
if ($lenght % 17 == 0 && $lenght > 1) {
# End of line
$binary .= ",\n\t\t";
} elsif ($filesize == $lenght) {
# End of file
$binary .= "\n";
} else {
$binary .= ",";
}
$lenght++;
}
close(IN);
open(OUT,">$output");
### Print the header
print OUT "#pragma once\n\n";
print OUT "#include \"Pcsx2Types.h\"\n";
print OUT "#include <wx/gdicmn.h>\n\n";
print OUT "class $wx_img_class\n{\n";
print OUT "public:\n";
print OUT "\tstatic const uint Length = $filesize;\n";
print OUT "\tstatic const u8 Data[Length];\n";
print OUT "\tstatic wxBitmapType GetFormat() { return $wx_img_extension; }\n};\n\n";
print OUT "const u8 ${wx_img_class}::Data[Length] =\n{\n";
### Print the array
print OUT $binary;
print OUT "};\n";
close(OUT);

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PCSX2 0.9.9\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/pcsx2/\n"
"POT-Creation-Date: 2011-09-28 20:27+0200\n"
"POT-Creation-Date: 2012-04-07 11:42+0200\n"
"PO-Revision-Date: 2011-10-03 09:15+0100\n"
"Last-Translator: Zbyněk Schwarz <zbynek.schwarz@gmail.com>\n"
"Language-Team: Zbyněk Schwarz\n"
@ -23,35 +23,58 @@ msgstr ""
#: common/src/Utilities/Exceptions.cpp:254
msgid "!Notice:VirtualMemoryMap"
msgstr "Není dostatek virtuální paměti, nebo potřebná mapování virtuální paměti již byly vyhrazeny jinými procesy, službami, nebo DLL."
msgstr ""
"Není dostatek virtuální paměti, nebo potřebná mapování virtuální paměti již "
"byly vyhrazeny jinými procesy, službami, nebo DLL."
#: pcsx2/CDVD/CDVD.cpp:385
#: pcsx2/CDVD/CDVD.cpp:389
msgid "!Notice:PsxDisc"
msgstr "Herní disky Playstation nejsou PCSX2 podporovány. Pokud chcete emulovat hry PSX, pak si budete muset stáhnout PSX emulátor, jako ePSXe nebo PCSX."
msgstr ""
"Herní disky Playstation nejsou PCSX2 podporovány. Pokud chcete emulovat hry "
"PSX, pak si budete muset stáhnout PSX emulátor, jako ePSXe nebo PCSX."
#: pcsx2/System.cpp:114
msgid "!Notice:Recompiler:VirtualMemoryAlloc"
msgstr "Tento rekompilátor nemohl vyhradit přilehlou paměť potřebnou pro vnitřní vyrovnávací paměti. Tato chyba může být způsobena nízkými zdroji virtuální paměti, jako např. vypnutý nebo malý stránkovací soubor, nebo jiným programem náročným na paměť. Můžete také zkusit snížit výchozí velikost vyrovnávací paměti pro všechny rekompilátory PCSX2, naleznete v Nastavení Hostitele."
msgstr ""
"Tento rekompilátor nemohl vyhradit přilehlou paměť potřebnou pro vnitřní "
"vyrovnávací paměti. Tato chyba může být způsobena nízkými zdroji virtuální "
"paměti, jako např. vypnutý nebo malý stránkovací soubor, nebo jiným "
"programem náročným na paměť. Můžete také zkusit snížit výchozí velikost "
"vyrovnávací paměti pro všechny rekompilátory PCSX2, naleznete v Nastavení "
"Hostitele."
#: pcsx2/System.cpp:348
msgid "!Notice:EmuCore::MemoryForVM"
msgstr "PCSX2 nemůže přidělit paměť potřebnou pro virtuální stroj PS2. Zavřete některé úlohy na pozadí náročné na paměť a zkuste to znovu."
msgstr ""
"PCSX2 nemůže přidělit paměť potřebnou pro virtuální stroj PS2. Zavřete "
"některé úlohy na pozadí náročné na paměť a zkuste to znovu."
#: pcsx2/gui/AppInit.cpp:43
msgid "!Notice:Startup:NoSSE2"
msgstr "Varování: Váš počítač nepodporuje SSE2, která je vyžadována většinou rekompilátorů PCSX2 a zásuvných modulů. Vaše volby budou omezené a emulace bude *velmi* pomalá."
msgstr ""
"Varování: Váš počítač nepodporuje SSE2, která je vyžadována většinou "
"rekompilátorů PCSX2 a zásuvných modulů. Vaše volby budou omezené a emulace "
"bude *velmi* pomalá."
#: pcsx2/gui/AppInit.cpp:162
msgid "!Notice:RecompilerInit:Header"
msgstr "Varování: Některé z nastavených rekompilátorů PS2 nelze spustit a byly zakázány:"
msgstr ""
"Varování: Některé z nastavených rekompilátorů PS2 nelze spustit a byly "
"zakázány:"
#: pcsx2/gui/AppInit.cpp:211
msgid "!Notice:RecompilerInit:Footer"
msgstr "Poznámka: Rekompilátory nejsou potřeba ke spuštění PCSX2, nicméně normálně výrazně zlepšují rychlost emulace. Možná budete muset ruřne rekompilátory znovu zapnout, pokud vyřešíte chyby."
msgstr ""
"Poznámka: Rekompilátory nejsou potřeba ke spuštění PCSX2, nicméně normálně "
"výrazně zlepšují rychlost emulace. Možná budete muset ruřne rekompilátory "
"znovu zapnout, pokud vyřešíte chyby."
#: pcsx2/gui/AppMain.cpp:546
msgid "!Notice:BiosDumpRequired"
msgstr "PCSX2 vyžaduje ke spuštění BIOS PS2. Z právních důvodů *musíte* BIOS získat ze skutečného PS2, které vlastníte (půjčení se nepočítá). Podívejte se prosím na Nejčastější Otázky a Průvodce pro další instrukce."
msgstr ""
"PCSX2 vyžaduje ke spuštění BIOS PS2. Z právních důvodů *musíte* BIOS získat "
"ze skutečného PS2, které vlastníte (půjčení se nepočítá). Podívejte se "
"prosím na Nejčastější Otázky a Průvodce pro další instrukce."
#: pcsx2/gui/AppMain.cpp:629
msgid "!Notice Error:Thread Deadlock Actions"
@ -61,23 +84,40 @@ msgstr ""
#: pcsx2/gui/AppUserMode.cpp:57
msgid "!Notice:PortableModeRights"
msgstr "Ujistěte se prosím, že tyto adresáře jsou vytvořeny a že Váš uživatelský účet má udělená oprávnění k zápisu do těchto adresářů -- nebo znovu spusťte PCSX2 jako správce (administrátorské oprávnění), což by mělo udělit PCSX2 schopnost samo si potřebné adresáře vytvořit. Pokud nemáte na tomto počítači správcovská oprávnění, pak budete muset přepnout do režimu Uživatelských Dokumentů (klikněte na tlačítko níže)."
msgstr ""
"Ujistěte se prosím, že tyto adresáře jsou vytvořeny a že Váš uživatelský "
"účet má udělená oprávnění k zápisu do těchto adresářů -- nebo znovu spusťte "
"PCSX2 jako správce (administrátorské oprávnění), což by mělo udělit PCSX2 "
"schopnost samo si potřebné adresáře vytvořit. Pokud nemáte na tomto počítači "
"správcovská oprávnění, pak budete muset přepnout do režimu Uživatelských "
"Dokumentů (klikněte na tlačítko níže)."
#: pcsx2/gui/Dialogs/CreateMemoryCardDialog.cpp:181
msgid "!ContextTip:ChangingNTFS"
msgstr "Komprese NTFS může být kdykoliv ručně změněna použitím vlastností souboru z Průzkumníku Windows."
msgstr ""
"Komprese NTFS může být kdykoliv ručně změněna použitím vlastností souboru z "
"Průzkumníku Windows."
#: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:49
msgid "!ContextTip:Folders:Settings"
msgstr "Do tohoto adresáře PCSX2 ukládá Vaše nastavení, zahrnující i nastavení vytvořená většinou zásuvných modulů (některé starší moduly nemusí tuto hodnotu respektovat)."
msgstr ""
"Do tohoto adresáře PCSX2 ukládá Vaše nastavení, zahrnující i nastavení "
"vytvořená většinou zásuvných modulů (některé starší moduly nemusí tuto "
"hodnotu respektovat)."
#: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:54
msgid "!Panel:Folders:Settings"
msgstr "Můžete také zde dobrovolně zadat umístění Vašeho nastavení PCSX2. Pokud umístění obsahuje existující nastavení PCSX2, bude Vám dána možnost je importovat nebo přepsat."
msgstr ""
"Můžete také zde dobrovolně zadat umístění Vašeho nastavení PCSX2. Pokud "
"umístění obsahuje existující nastavení PCSX2, bude Vám dána možnost je "
"importovat nebo přepsat."
#: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:94
msgid "!Wizard:Welcome"
msgstr "Tento průvodce Vám pomůže skrz nastavení zásuvných modulů, paměťových karet a BIOSu. Je doporučeno, pokud je toto poprvé co instalujete %s, si prohlédnout 'Přečti mě' a průvodce nastavením."
msgstr ""
"Tento průvodce Vám pomůže skrz nastavení zásuvných modulů, paměťových karet "
"a BIOSu. Je doporučeno, pokud je toto poprvé co instalujete %s, si "
"prohlédnout 'Přečti mě' a průvodce nastavením."
#: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:140
msgid "!Wizard:Bios:Tutorial"
@ -89,34 +129,50 @@ msgstr ""
#: pcsx2/gui/Dialogs/ImportSettingsDialog.cpp:31
msgid "!Notice:ImportExistingSettings"
msgstr ""
"Existující nastavení %s byly nalezeny v určeném adresáři nastavení. Chtěli byste tyto nastavení importovat nebo je přepsat výchozími hodnotami %s?\n"
"Existující nastavení %s byly nalezeny v určeném adresáři nastavení. Chtěli "
"byste tyto nastavení importovat nebo je přepsat výchozími hodnotami %s?\n"
"\n"
"(nebo stiskněte Zrušit pro vybrání jiného adresáře nastavení)"
#: pcsx2/gui/Dialogs/McdConfigDialog.cpp:30
msgid "!Panel:Mcd:NtfsCompress"
msgstr "Komprimace NTFS je zabudovaná, rychlá a naprosto spolehlivá a většinou komprimuje paměťové karty velmi dobře (tato volba je vysoce doporučená)."
msgstr ""
"Komprimace NTFS je zabudovaná, rychlá a naprosto spolehlivá a většinou "
"komprimuje paměťové karty velmi dobře (tato volba je vysoce doporučená)."
#: pcsx2/gui/Dialogs/McdConfigDialog.cpp:41
msgid "!Panel:Mcd:EnableEjection"
msgstr "Zabraňuje poškození paměťové karty tím, že donutí hry reindexovat obsah karty po načtení uloženého stavu. Nemusí být kompatibilní se všemi hrami (Guitar Hero)."
msgstr ""
"Zabraňuje poškození paměťové karty tím, že donutí hry reindexovat obsah "
"karty po načtení uloženého stavu. Nemusí být kompatibilní se všemi hrami "
"(Guitar Hero)."
#: pcsx2/gui/Dialogs/StuckThreadDialog.cpp:33
msgid "!Panel:StuckThread:Heading"
msgstr "Vlákno '%s' neodpovídá. Mohlo uváznout, nebo prostě běží *velmi* pomalu."
msgstr ""
"Vlákno '%s' neodpovídá. Mohlo uváznout, nebo prostě běží *velmi* pomalu."
#: pcsx2/gui/Dialogs/SysConfigDialog.cpp:38
msgid "!Panel:HasHacksOverrides"
msgstr "Varování! Spouštíte PCSX2 s volbami příkazového řádku, které potlačují Vaše uložená nastavení. Tyto volby příkazového řádku se nebudou odrážet v dialogovém okně Nastavení a budou zrušeny, pokud zde použijete jakékoli změny."
msgstr ""
"Varování! Spouštíte PCSX2 s volbami příkazového řádku, které potlačují Vaše "
"uložená nastavení. Tyto volby příkazového řádku se nebudou odrážet v "
"dialogovém okně Nastavení a budou zrušeny, pokud zde použijete jakékoli "
"změny."
#: pcsx2/gui/Dialogs/SysConfigDialog.cpp:58
msgid "!Panel:HasPluginsOverrides"
msgstr "Varování! Spouštíte PCSX2 s volbami příkazového řádku, které potlačují Vaše uložená nastavení zásuvných modulů a/nebo adresářů. Tyto volby příkazového řádku se nebudou odrážet v dialogovém okně Nastavení a budou zrušeny, když zde použijete jakékoli změny nastavení."
msgstr ""
"Varování! Spouštíte PCSX2 s volbami příkazového řádku, které potlačují Vaše "
"uložená nastavení zásuvných modulů a/nebo adresářů. Tyto volby příkazového "
"řádku se nebudou odrážet v dialogovém okně Nastavení a budou zrušeny, když "
"zde použijete jakékoli změny nastavení."
#: pcsx2/gui/Dialogs/SysConfigDialog.cpp:135
msgid "!Notice:Tooltip:Presets:Slider"
msgstr ""
"Předvolby použijí hacky rychlosti, některá nastavení rekompilátoru a některé opravy her známé tím, že zvyšují rychlost.\n"
"Předvolby použijí hacky rychlosti, některá nastavení rekompilátoru a některé "
"opravy her známé tím, že zvyšují rychlost.\n"
"Známé důležité opravy budou použity automaticky.\n"
"\n"
"Informace o předvolbách:\n"
@ -128,21 +184,28 @@ msgstr ""
#: pcsx2/gui/Dialogs/SysConfigDialog.cpp:149
msgid "!Notice:Tooltip:Presets:Checkbox"
msgstr ""
"Předvolby použijí hacky rychlosti, některá nastavení rekompilátoru a některé opravy her známé tím, že zvyšují rychlost.\n"
"Předvolby použijí hacky rychlosti, některá nastavení rekompilátoru a některé "
"opravy her známé tím, že zvyšují rychlost.\n"
"Známé důležité opravy budou použity automaticky.\n"
"\n"
" --> Odškrtněte pro ruční změnu nastavení (se současnými předvolbami jako základ)"
" --> Odškrtněte pro ruční změnu nastavení (se současnými předvolbami jako "
"základ)"
#: pcsx2/gui/IsoDropTarget.cpp:28
msgid "!Notice:ConfirmSysReset"
msgstr "Tato činnost resetuje existující stav virtuálního stroje PS2; veškerý současný postup bude ztracen. Jste si jisti?"
msgstr ""
"Tato činnost resetuje existující stav virtuálního stroje PS2; veškerý "
"současný postup bude ztracen. Jste si jisti?"
#: pcsx2/gui/MainMenuClicks.cpp:106
msgid "!Notice:DeleteSettings"
msgstr ""
"Tento příkaz vyčistí nastavení %s a umožňuje Vám znovu spustit Průvodce Prvním Spuštěním. Po této operaci budete muset ručně restartovat %s.\n"
"Tento příkaz vyčistí nastavení %s a umožňuje Vám znovu spustit Průvodce "
"Prvním Spuštěním. Po této operaci budete muset ručně restartovat %s.\n"
"\n"
"VAROVÁNÍ!! Kliknutím na OK smažete *VŠECHNA* nastavení pro %s a přinutíte tuto aplikaci uzavřít, čímž ztratíte jakýkoli postup emulace. Jste si naprosto jisti?\n"
"VAROVÁNÍ!! Kliknutím na OK smažete *VŠECHNA* nastavení pro %s a přinutíte "
"tuto aplikaci uzavřít, čímž ztratíte jakýkoli postup emulace. Jste si "
"naprosto jisti?\n"
"\n"
"(poznámka: nastavení zásuvných modulů nejsou ovlivněna)"
@ -154,7 +217,9 @@ msgstr ""
#: pcsx2/gui/Panels/BiosSelectorPanel.cpp:138
msgid "!Notice:BIOS:InvalidSelection"
msgstr "Prosím zvolte platný BIOS. Pokud nejste schopni provést platnou volbu, pak stiskněte Zrušit pro zavření Konfiguračního panelu."
msgstr ""
"Prosím zvolte platný BIOS. Pokud nejste schopni provést platnou volbu, pak "
"stiskněte Zrušit pro zavření Konfiguračního panelu."
#: pcsx2/gui/Panels/CpuPanel.cpp:111
msgid "!Panel:EE/IOP:Heading"
@ -170,37 +235,59 @@ msgstr "Zadaná cesta/adresář neexistuje. Chtěli byste je vytvořit?"
#: pcsx2/gui/Panels/DirPickerPanel.cpp:158
msgid "!ContextTip:DirPicker:UseDefault"
msgstr "Je-li zaškrtnuto, tento adresář bude automaticky odrážet výchozí asociaci se současným nastavením uživatelského režimu PCSX2."
msgstr ""
"Je-li zaškrtnuto, tento adresář bude automaticky odrážet výchozí asociaci se "
"současným nastavením uživatelského režimu PCSX2."
#: pcsx2/gui/Panels/GSWindowPanel.cpp:55
msgid "!ContextTip:Window:Zoom"
msgstr ""
"Přiblížení = 100: Celý obraz bude umístěn do okna bez jakéhokoliv oříznutí.\n"
"Nad/Pod 100: Přiblížení/Oddálení\n"
"0: Automaticky přibližovat, dokud černé čáry nezmizí (poměr stran je zachován, část obrazu bude mimo obrazovku).\n"
"POZNÁMKA: Některé hry vykreslují vlastní černé čáry, které pomocí '0' nebudou odstraněny.\n"
"0: Automaticky přibližovat, dokud černé čáry nezmizí (poměr stran je "
"zachován, část obrazu bude mimo obrazovku).\n"
"POZNÁMKA: Některé hry vykreslují vlastní černé čáry, které pomocí '0' "
"nebudou odstraněny.\n"
"\n"
"Klávesnice: CTRL + PLUS: Přiblížení, CTRL + MÍNUS: Oddálení, CTRL + HVĚZDIČKA: Přepínání 100/0."
"Klávesnice: CTRL + PLUS: Přiblížení, CTRL + MÍNUS: Oddálení, CTRL + "
"HVĚZDIČKA: Přepínání 100/0."
#: pcsx2/gui/Panels/GSWindowPanel.cpp:63
msgid "!ContextTip:Window:Vsync"
msgstr "Vsynch odstraňuje trhání obrazovky, ale má velký vliv na výkon. Většinou se toto týká režimu celé obrazovky a nemusí fungovat se všemi zásuvnými moduly GS."
msgstr ""
"Vsynch odstraňuje trhání obrazovky, ale má velký vliv na výkon. Většinou se "
"toto týká režimu celé obrazovky a nemusí fungovat se všemi zásuvnými moduly "
"GS."
#: pcsx2/gui/Panels/GSWindowPanel.cpp:68
msgid "!ContextTip:Window:ManagedVsync"
msgstr "Povolí Vsynch když snímkovací frekvence je přesně na plné rychlosti. Pokud spadne pod tuto hodnotu, Vsynch je zakázána k zabránění dalších penalizací výkonu. Poznámka: Toto nyní správně funguje pouze s GSdx jako zásuvný modul GS a nastaveným na použití hardwarového vykreslování DX10/11. Jakýkoli jiný modul nebo režim vykreslování toto bude ignorovat, nebo vytvoří černý snímek, který blikne, kdykoliv je režim přepnut. Také vyžaduje povolenou Vsynch."
msgstr ""
"Povolí Vsynch když snímkovací frekvence je přesně na plné rychlosti. Pokud "
"spadne pod tuto hodnotu, Vsynch je zakázána k zabránění dalších penalizací "
"výkonu. Poznámka: Toto nyní správně funguje pouze s GSdx jako zásuvný modul "
"GS a nastaveným na použití hardwarového vykreslování DX10/11. Jakýkoli jiný "
"modul nebo režim vykreslování toto bude ignorovat, nebo vytvoří černý "
"snímek, který blikne, kdykoliv je režim přepnut. Také vyžaduje povolenou "
"Vsynch."
#: pcsx2/gui/Panels/GSWindowPanel.cpp:76
msgid "!ContextTip:Window:HideMouse"
msgstr "Zašrktněte toto pro vynucení zneviditelnění kurzoru myši uvnitř okna GS; užitečné, jestli myš používáte jako hlavní kontrolní zařízení pro hraní. Standardně je myš schována po 2 vteřinách nečinnosti."
msgstr ""
"Zašrktněte toto pro vynucení zneviditelnění kurzoru myši uvnitř okna GS; "
"užitečné, jestli myš používáte jako hlavní kontrolní zařízení pro hraní. "
"Standardně je myš schována po 2 vteřinách nečinnosti."
#: pcsx2/gui/Panels/GSWindowPanel.cpp:82
msgid "!ContextTip:Window:Fullscreen"
msgstr "Povolí automatické přepnutí režimu na celou obrazovku, při spuštění nebo obnově emulace. Stále můžete přepnout na celou obrazovku pomocí alt-enter."
msgstr ""
"Povolí automatické přepnutí režimu na celou obrazovku, při spuštění nebo "
"obnově emulace. Stále můžete přepnout na celou obrazovku pomocí alt-enter."
#: pcsx2/gui/Panels/GSWindowPanel.cpp:93
msgid "!ContextTip:Window:HideGS"
msgstr "Úplně zavře často velké a rozměrné okno GS při stisku ESC nebo pozastavení emulátoru."
msgstr ""
"Úplně zavře často velké a rozměrné okno GS při stisku ESC nebo pozastavení "
"emulátoru."
#: pcsx2/gui/Panels/GameFixesPanel.cpp:67
msgid "!ContextTip:Gamefixes:EE Timing Hack"
@ -235,16 +322,21 @@ msgstr ""
msgid "!Panel:Gamefixes:Compat Warning"
msgstr ""
"Opravy her můžou obejít špatnou emulaci v některých hrách.\n"
"Můžou ale také způsobit problémy s kompatibilitou a výkonem, takže nejsou doporučeny.\n"
"Můžou ale také způsobit problémy s kompatibilitou a výkonem, takže nejsou "
"doporučeny.\n"
"Opravy her jsou použity automaticky, takže zde nic nemusíte nastavovat."
#: pcsx2/gui/Panels/MemoryCardListPanel.cpp:720
msgid "!Notice:Mcd:Delete"
msgstr "Chystáte se smazat formátovanou paměťovou kartu '%s'. Všechna data na kartě budou ztracena! Jste si naprosto a zcela jisti?"
msgstr ""
"Chystáte se smazat formátovanou paměťovou kartu '%s'. Všechna data na kartě "
"budou ztracena! Jste si naprosto a zcela jisti?"
#: pcsx2/gui/Panels/MemoryCardListPanel.cpp:758
msgid "!Notice:Mcd:CantDuplicate"
msgstr "Selhání: Kopírování je povoleno pouze na prázdnou pozici PS2 nebo do systému souborů."
msgstr ""
"Selhání: Kopírování je povoleno pouze na prázdnou pozici PS2 nebo do systému "
"souborů."
#: pcsx2/gui/Panels/MemoryCardListPanel.cpp:801
msgid "!Notice:Mcd:Copy Failed"
@ -252,23 +344,38 @@ msgstr "Selhání: Cílová paměťová karta '%s' se používá."
#: pcsx2/gui/Panels/MiscPanelStuff.cpp:35
msgid "!Panel:Usermode:Explained"
msgstr "Prosím vyberte níže Vaši upřednostňované výchozí umístění pro dokumenty uživatelské úrovně PCSX2 (zahrnující paměťové karty, snímky obrazovky, nastavení a uložené stavy). Tyto umístění adresářů mohou být kdykoli potlačena použitím panelu Hlavního Nastavení."
msgstr ""
"Prosím vyberte níže Vaši upřednostňované výchozí umístění pro dokumenty "
"uživatelské úrovně PCSX2 (zahrnující paměťové karty, snímky obrazovky, "
"nastavení a uložené stavy). Tyto umístění adresářů mohou být kdykoli "
"potlačena použitím panelu Hlavního Nastavení."
#: pcsx2/gui/Panels/MiscPanelStuff.cpp:41
msgid "!Panel:Usermode:Warning"
msgstr "Prosím vyberte níže Vaši upřednostňované výchozí umístění pro dokumenty uživatelské úrovně PCSX2 (zahrnující paměťové karty, snímky obrazovky, nastavení a uložené stavy). Tato volba ovlivňuje pouze Standardní Cesty, které jsou nastaveny, aby používali výchozí hodnoty instalace."
msgstr ""
"Prosím vyberte níže Vaši upřednostňované výchozí umístění pro dokumenty "
"uživatelské úrovně PCSX2 (zahrnující paměťové karty, snímky obrazovky, "
"nastavení a uložené stavy). Tato volba ovlivňuje pouze Standardní Cesty, "
"které jsou nastaveny, aby používali výchozí hodnoty instalace."
#: pcsx2/gui/Panels/PathsPanel.cpp:40
msgid "!ContextTip:Folders:Savestates"
msgstr "Do tohoto adresáře PCSX2 ukládá uložené stavy, které jsou zaznamenány buď použitím menu/panelů nástrojů, nebo stisknutím F1/F3 (uložit/nahrát)."
msgstr ""
"Do tohoto adresáře PCSX2 ukládá uložené stavy, které jsou zaznamenány buď "
"použitím menu/panelů nástrojů, nebo stisknutím F1/F3 (uložit/nahrát)."
#: pcsx2/gui/Panels/PathsPanel.cpp:50
msgid "!ContextTip:Folders:Snapshots"
msgstr "Toto je adresář, kde PCSX2 ukládá snímky obrazovky. Vlastní formát a styl snímku se může měnit v závislosti na používaném zásuvném modulu GS."
msgstr ""
"Toto je adresář, kde PCSX2 ukládá snímky obrazovky. Vlastní formát a styl "
"snímku se může měnit v závislosti na používaném zásuvném modulu GS."
#: pcsx2/gui/Panels/PathsPanel.cpp:60
msgid "!ContextTip:Folders:Logs"
msgstr "Toto je adresář, kde PCSX2 ukládá své soubory se záznamem a diagnostické výpisy. Většina zásuvných modulů bude také používat tento adresář, ale některé starší ho můžou ignorovat."
msgstr ""
"Toto je adresář, kde PCSX2 ukládá své soubory se záznamem a diagnostické "
"výpisy. Většina zásuvných modulů bude také používat tento adresář, ale "
"některé starší ho můžou ignorovat."
#: pcsx2/gui/Panels/PluginSelectorPanel.cpp:242
msgid "!Notice:PluginSelector:ConfirmShutdown"
@ -276,19 +383,28 @@ msgstr "Varování! Změna zásuvných modulů vyžaduje"
#: pcsx2/gui/Panels/PluginSelectorPanel.cpp:457
msgid "!Notice:PluginSelector:ApplyFailed"
msgstr "Všechny zásuvné moduly musí mít platný výběr pro %s ke spuštění. Pokud nemůžete provést výběr kvůli chybějícímu modulu nebo nedokončené instalaci %s, pak stiskněte Zrušit pro uzavření panelu Nastavení."
msgstr ""
"Všechny zásuvné moduly musí mít platný výběr pro %s ke spuštění. Pokud "
"nemůžete provést výběr kvůli chybějícímu modulu nebo nedokončené instalaci "
"%s, pak stiskněte Zrušit pro uzavření panelu Nastavení."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:27
msgid "!Panel:Speedhacks:EECycleX1"
msgstr "Výchozí množství cyklů. Toto se blíže shoduje se skutečnou rychlostí opravdového EmotionEngine PS2."
msgstr ""
"Výchozí množství cyklů. Toto se blíže shoduje se skutečnou rychlostí "
"opravdového EmotionEngine PS2."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:32
msgid "!Panel:Speedhacks:EECycleX2"
msgstr "Sníží množství cyklů EE asi o 33%. Mírné zrychlení ve většině her s vysokou kompatibilitou."
msgstr ""
"Sníží množství cyklů EE asi o 33%. Mírné zrychlení ve většině her s vysokou "
"kompatibilitou."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:37
msgid "!Panel:Speedhacks:EECycleX3"
msgstr "Sníží množství cyklů EE asi o 50%. Průměrné zrychlení, ale *způsobí* zadrhování zvuku ve spoustě FMV."
msgstr ""
"Sníží množství cyklů EE asi o 50%. Průměrné zrychlení, ale *způsobí* "
"zadrhování zvuku ve spoustě FMV."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:54
msgid "!Panel:Speedhacks:VUCycleStealOff"
@ -296,78 +412,129 @@ msgstr "Zakáže krádež cyklů VJ. Nejkompatibilnější nastavení"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:59
msgid "!Panel:Speedhacks:VUCycleSteal1"
msgstr "Mírná krádež cyklů VJ. Nižší kompatibilita, ale jisté zrychlení ve většině her."
msgstr ""
"Mírná krádež cyklů VJ. Nižší kompatibilita, ale jisté zrychlení ve většině "
"her."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:64
msgid "!Panel:Speedhacks:VUCycleSteal2"
msgstr "Průměrná krádež cyklů VJ. Ještě nižší kompatibilita, ale výrazné zrychlení v některých hrách."
msgstr ""
"Průměrná krádež cyklů VJ. Ještě nižší kompatibilita, ale výrazné zrychlení v "
"některých hrách."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:70
msgid "!Panel:Speedhacks:VUCycleSteal3"
msgstr "Maximální krádež cyklů VJ. Užitečnost je omezená protože toto způsobuje blikání grafiky nebo zpomalení ve většině her. "
msgstr ""
"Maximální krádež cyklů VJ. Užitečnost je omezená protože toto způsobuje "
"blikání grafiky nebo zpomalení ve většině her. "
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:97
msgid "!Panel:Speedhacks:Overview"
msgstr "Hacky Rychlosti většinou zlepšují rychlost emulace, ale můžou způsobovat chyby, špatný zvuk a špatné údaje o SZS. Když máte problémy s emulací, tento panel zakažte nejdříve."
msgstr ""
"Hacky Rychlosti většinou zlepšují rychlost emulace, ale můžou způsobovat "
"chyby, špatný zvuk a špatné údaje o SZS. Když máte problémy s emulací, tento "
"panel zakažte nejdříve."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:129
msgid "!ContextTip:Speedhacks:EECycleRate Slider"
msgstr "Nastavením vyšších hodnot na tomto šoupátku účinně sníží rychlost hodin jádra R5900 procesoru EmotionEngine a typicky přináší velké zrychlení hrám, které nemohou využívat plný potenciál skutečného hardwaru PS2. "
msgstr ""
"Nastavením vyšších hodnot na tomto šoupátku účinně sníží rychlost hodin "
"jádra R5900 procesoru EmotionEngine a typicky přináší velké zrychlení hrám, "
"které nemohou využívat plný potenciál skutečného hardwaru PS2. "
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:150
msgid "!ContextTip:Speedhacks:VUCycleStealing Slider"
msgstr "Toto šoupátko kontroluje množství cyklů, které VJ ukradne od EmotionEngine. Vyšší hodnoty zvyšují počet ukradených cyklů od EE pro každý mikroprogram, který VJ spustí."
msgstr ""
"Toto šoupátko kontroluje množství cyklů, které VJ ukradne od EmotionEngine. "
"Vyšší hodnoty zvyšují počet ukradených cyklů od EE pro každý mikroprogram, "
"který VJ spustí."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:172
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:169
msgid "!ContextTip:Speedhacks:vuFlagHack"
msgstr "Aktualizuje Příznaky Stavu pouze v blocích, které je budou číst, místo neustále. Toto je většinou bezpečné a Super VJ dělá standardně něco podobného."
msgstr ""
"Aktualizuje Příznaky Stavu pouze v blocích, které je budou číst, místo "
"neustále. Toto je většinou bezpečné a Super VJ dělá standardně něco "
"podobného."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:177
msgid "!ContextTip:Speedhacks:vuBlockHack"
msgstr "Předpokládá, že daleko v budoucnosti bloky nebudou potřebovat staré příznaky dat instancí. Toto by mělo být celkem bezpečné. Není známo, jestli toto nějakou hru poškozuje..."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:182
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:174
msgid "!ContextTip:Speedhacks:vuThread"
msgstr "Spouští VJ1 na svém vlastním vlákně (pouze mikroVJ1). Na počítačích s 3 a více jádry většinou zrychlení. Toto je pro většinu her bezpečné, ale některé jsou nekompatibilní a mohou se zaseknout. V případě her omezených GS může dojít ke zpomalení (zvláště na počítačích s dvoujádrovým procesorem)."
msgstr ""
"Spouští VJ1 na svém vlastním vlákně (pouze mikroVJ1). Na počítačích s 3 a "
"více jádry většinou zrychlení. Toto je pro většinu her bezpečné, ale některé "
"jsou nekompatibilní a mohou se zaseknout. V případě her omezených GS může "
"dojít ke zpomalení (zvláště na počítačích s dvoujádrovým procesorem)."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:203
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:195
msgid "!ContextTip:Speedhacks:INTC"
msgstr "Tento hack funguje nejlépe v hrách, které používají stavy KPŘE registru pro čekání na vsynch, což hlavně zahrnuje ne-3D rpg hry. Ty, co tuto metodu v synch nepoužívají z tohoto hacku nedostanou žádné nebo malé zrychlení."
msgstr ""
"Tento hack funguje nejlépe v hrách, které používají stavy KPŘE registru pro "
"čekání na vsynch, což hlavně zahrnuje ne-3D rpg hry. Ty, co tuto metodu v "
"synch nepoužívají z tohoto hacku nedostanou žádné nebo malé zrychlení."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:208
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:200
msgid "!ContextTip:Speedhacks:BIFC0"
msgstr "Má za cíl hlavně čekací smyčku EE na adrese 0x81FC0 v kernelu, tento hack se pokusí zjistit smyčky, jejichž těla mají zaručeně za následek stejný stav stroje pro každé opakování doku naplánovaná událost nespustí emulaci další jednotky. Po prvním opakováním takovýchto smyček, pokročíme do doby další události nebo konce pracovního intervalu procesoru, co nastane dříve."
msgstr ""
"Má za cíl hlavně čekací smyčku EE na adrese 0x81FC0 v kernelu, tento hack se "
"pokusí zjistit smyčky, jejichž těla mají zaručeně za následek stejný stav "
"stroje pro každé opakování doku naplánovaná událost nespustí emulaci další "
"jednotky. Po prvním opakováním takovýchto smyček, pokročíme do doby další "
"události nebo konce pracovního intervalu procesoru, co nastane dříve."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:215
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:207
msgid "!ContextTip:Speedhacks:fastCDVD"
msgstr "Zkontrolujte seznam kompatibility HDLoadera pro hry, známé, že s tímto mají problémy. (často označené jako vyžadující 'mode 1' nebo 'slow DVD'"
msgstr ""
"Zkontrolujte seznam kompatibility HDLoadera pro hry, známé, že s tímto mají "
"problémy. (často označené jako vyžadující 'mode 1' nebo 'slow DVD'"
#: pcsx2/gui/Panels/VideoPanel.cpp:37
msgid "!ContextTip:Framelimiter:Disable"
msgstr "Nezapomeňte, že když je omezení snímků vypnuté, nebudou ani také dostupné režimy Turbo a ZpomalenýPohyb."
msgstr ""
"Nezapomeňte, že když je omezení snímků vypnuté, nebudou ani také dostupné "
"režimy Turbo a ZpomalenýPohyb."
#: pcsx2/gui/Panels/VideoPanel.cpp:223
#: pcsx2/gui/Panels/VideoPanel.cpp:227
msgid "!Panel:Frameskip:Heading"
msgstr "Upozornění: Kvůli hardwarovému designu PS2 je přesné přeskakování snímků nemožné. Zapnutím tohoto způsobí vážné grafické chyby v některých hrách."
#: pcsx2/gui/Panels/VideoPanel.cpp:302
msgid "!ContextTip:GS:SyncMTGS"
msgstr "Zapněte toto, pokud si myslíte, že synch vlákna VVGS způsobuje pády a grafické problémy."
msgstr ""
"Upozornění: Kvůli hardwarovému designu PS2 je přesné přeskakování snímků "
"nemožné. Zapnutím tohoto způsobí vážné grafické chyby v některých hrách."
#: pcsx2/gui/Panels/VideoPanel.cpp:306
msgid "!ContextTip:GS:SyncMTGS"
msgstr ""
"Zapněte toto, pokud si myslíte, že synch vlákna VVGS způsobuje pády a "
"grafické problémy."
#: pcsx2/gui/Panels/VideoPanel.cpp:310
msgid "!ContextTip:GS:DisableOutput"
msgstr ""
"Odstraní jakýkoli šum výkonnostního testu způsobený vláknem VVGS nebo časem zpracování grafického procesoru. Tato volba se nejlépe používá spolu s uloženými stavy: uložte stav v ideální scéně, zapněte tuto volbu, a znovu načtěte uložený stav.\n"
"Odstraní jakýkoli šum výkonnostního testu způsobený vláknem VVGS nebo časem "
"zpracování grafického procesoru. Tato volba se nejlépe používá spolu s "
"uloženými stavy: uložte stav v ideální scéně, zapněte tuto volbu, a znovu "
"načtěte uložený stav.\n"
"\n"
"Varování: Tato volba může být zapnuta za běhu ale typicky nemůže být takto vypnuta (obraz bude většinou poškozený)"
"Varování: Tato volba může být zapnuta za běhu ale typicky nemůže být takto "
"vypnuta (obraz bude většinou poškozený)"
#: pcsx2/vtlb.cpp:710
msgid "!Notice:HostVmReserve"
msgstr "Váš systém má příliš nízké virtuální zdroje, aby mohl být PCSX2 spuštěn. To může být způsobeno malým nebo vypnutým stránkovacím souborem, nebo jinými programy, které jsou náročné na zdroje."
msgstr ""
"Váš systém má příliš nízké virtuální zdroje, aby mohl být PCSX2 spuštěn. To "
"může být způsobeno malým nebo vypnutým stránkovacím souborem, nebo jinými "
"programy, které jsou náročné na zdroje."
#: pcsx2/x86/sVU_zerorec.cpp:363
msgid "!Notice:superVU:VirtualMemoryAlloc"
msgstr "Došla Paměť (tak trochu): Rekompilátor SuperVJ nemohl vyhradit určitý vyžadovaný rozsah paměti a nebude dostupný k použití. To není kritická chyba, protože rek sVU je zastaralý a stejně byste místo něj měli používat mVU :)."
msgstr ""
"Došla Paměť (tak trochu): Rekompilátor SuperVJ nemohl vyhradit určitý "
"vyžadovaný rozsah paměti a nebude dostupný k použití. To není kritická "
"chyba, protože rek sVU je zastaralý a stejně byste místo něj měli používat "
"mVU :)."
#~ msgid "!ContextTip:Speedhacks:vuBlockHack"
#~ msgstr ""
#~ "Předpokládá, že daleko v budoucnosti bloky nebudou potřebovat staré "
#~ "příznaky dat instancí. Toto by mělo být celkem bezpečné. Není známo, "
#~ "jestli toto nějakou hru poškozuje..."
#~ msgid "No reason given."
#~ msgstr "Bez udání důvodu."

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://code.google.com/p/pcsx2/\n"
"POT-Creation-Date: 2011-09-28 20:27+0200\n"
"POT-Creation-Date: 2012-04-07 11:42+0200\n"
"PO-Revision-Date: 2011-04-09 01:11+0100\n"
"Last-Translator: \n"
"Language-Team: PCSX2\n"
@ -24,7 +24,7 @@ msgstr ""
"Es steht nicht genügend virtueller Speicher zur Verfügung bzw. der Speicher "
"wird von anderen Programmen / DLLs belegt."
#: pcsx2/CDVD/CDVD.cpp:385
#: pcsx2/CDVD/CDVD.cpp:389
msgid "!Notice:PsxDisc"
msgstr "PlayStation 1 (PSX) Spiele werden von PCSX2 noch nicht unterstützt!"
@ -361,28 +361,24 @@ msgstr ""
"\"Stiehlt\" der PS2 CPU einige Zyklen bei jeder VU Programmausführung. "
"Geschwindigkeitsgewinn bei reduzierter Kompatibilität."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:172
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:169
msgid "!ContextTip:Speedhacks:vuFlagHack"
msgstr "Lässt einige VU Statusflags aus. Sicher."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:177
msgid "!ContextTip:Speedhacks:vuBlockHack"
msgstr "Kann die Geschwindigkeit leicht erhöhen. In FFX kontraproduktiv!"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:182
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:174
#, fuzzy
msgid "!ContextTip:Speedhacks:vuThread"
msgstr "Funktioniert nicht mit Gran Turismo 4 oder Tekken 5."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:203
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:195
msgid "!ContextTip:Speedhacks:INTC"
msgstr "Kann gefahrlos aktiviert werden."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:208
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:200
msgid "!ContextTip:Speedhacks:BIFC0"
msgstr "Kann gefahrlos aktiviert werden."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:215
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:207
msgid "!ContextTip:Speedhacks:fastCDVD"
msgstr ""
"Einige Spiele erwarten ein standardkonformes (langsam lesendes) DVD "
@ -394,17 +390,17 @@ msgstr ""
"Deaktiviert den Framelimiter. Das Spiel läuft so schnell wie es dein Rechner "
"ermöglicht."
#: pcsx2/gui/Panels/VideoPanel.cpp:223
#: pcsx2/gui/Panels/VideoPanel.cpp:227
msgid "!Panel:Frameskip:Heading"
msgstr ""
"Aufgrund des spezifischen Designs der PS2 ist ein akkurates Frameskipping "
"nicht möglich. Versuche die Werte anzupassen oder benutze Speedhacks."
#: pcsx2/gui/Panels/VideoPanel.cpp:302
#: pcsx2/gui/Panels/VideoPanel.cpp:306
msgid "!ContextTip:GS:SyncMTGS"
msgstr "Nur für das Debugging aktivieren. Sehr langsam."
#: pcsx2/gui/Panels/VideoPanel.cpp:306
#: pcsx2/gui/Panels/VideoPanel.cpp:310
msgid "!ContextTip:GS:DisableOutput"
msgstr ""
"Entfernt störende Faktoren von der Grafikkarte oder Treiberproblemen. Nur "
@ -422,6 +418,9 @@ msgstr ""
"Der SuperVU Recompiler konnte nicht genügend virtuellen Speicher allokieren. "
"Versuche es mit microVU!"
#~ msgid "!ContextTip:Speedhacks:vuBlockHack"
#~ msgstr "Kann die Geschwindigkeit leicht erhöhen. In FFX kontraproduktiv!"
#~ msgid "No reason given."
#~ msgstr "Kein Grund angegeben."

View File

@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://code.google.com/p/pcsx2/\n"
"POT-Creation-Date: 2011-09-28 20:27+0200\n"
"POT-Creation-Date: 2012-02-28 12:20+0100\n"
"PO-Revision-Date: 2011-04-09 01:44+0100\n"
"Last-Translator: \n"
"Language-Team: PCSX2\n"
@ -185,7 +185,7 @@ msgstr "Internes Memory Card Plugin konnte nicht Initialisiert werden."
msgid "Unloaded Plugin"
msgstr "Plugin entladen"
#: pcsx2/SaveState.cpp:339
#: pcsx2/SaveState.cpp:342
msgid "Cannot load savestate. It is of an unknown or unsupported version."
msgstr ""
"Kann Savestate nicht laden. Er ist von einer unbekannten, nicht "
@ -340,31 +340,31 @@ msgstr ""
"Der Savestate wurde nicht korrekt gespeichert. Die temporäre Datei konnte "
"zwar erstellt, aber nicht an den finalen Platz kopiert werden."
#: pcsx2/gui/AppConfig.cpp:837
#: pcsx2/gui/AppConfig.cpp:842
msgid "Safest"
msgstr "Sicher"
#: pcsx2/gui/AppConfig.cpp:838
#: pcsx2/gui/AppConfig.cpp:843
msgid "Safe (faster)"
msgstr "Sicher (schneller)"
#: pcsx2/gui/AppConfig.cpp:839
#: pcsx2/gui/AppConfig.cpp:844
msgid "Balanced"
msgstr "Ausbalanciert"
#: pcsx2/gui/AppConfig.cpp:840
#: pcsx2/gui/AppConfig.cpp:845
msgid "Aggressive"
msgstr "Aggressiv"
#: pcsx2/gui/AppConfig.cpp:841
#: pcsx2/gui/AppConfig.cpp:846
msgid "Aggressive plus"
msgstr "Aggressiv Plus"
#: pcsx2/gui/AppConfig.cpp:842
#: pcsx2/gui/AppConfig.cpp:847
msgid "Mostly Harmful"
msgstr "Maximum"
#: pcsx2/gui/AppConfig.cpp:999 pcsx2/gui/AppConfig.cpp:1005
#: pcsx2/gui/AppConfig.cpp:1007 pcsx2/gui/AppConfig.cpp:1013
msgid "Failed to overwrite existing settings file; permission was denied."
msgstr ""
"Konnte existierende Konfigurationsdatei nicht überschreiben. Zugriff "
@ -2374,35 +2374,25 @@ msgid ""
msgstr "Guter FPS Anstieg, gute Kompatibilität [empfohlen]"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:166
msgid "mVU Block Hack"
msgstr "mVU Block Hack"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:167
#, fuzzy
msgid ""
"Good Speedup and High Compatibility; may cause bad graphics, SPS, etc..."
msgstr "Guter FPS Anstieg, gute Kompatibilität [empfohlen]"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:169
msgid "MTVU (Multi-Threaded microVU1)"
msgstr ""
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:170
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:167
#, fuzzy
msgid ""
"Good Speedup and High Compatibility; may cause hanging... [Recommended if 3+ "
"cores]"
msgstr "Guter FPS Anstieg, gute Kompatibilität [empfohlen]"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:191
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:183
msgid "Other Hacks"
msgstr "Andere Hacks"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:193
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:185
msgid "Enable INTC Spin Detection"
msgstr "Aktiviere INTC Warteschleifenerkennung"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:194
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:186
msgid ""
"Huge speedup for some games, with almost no compatibility side effects. "
"[Recommended]"
@ -2410,20 +2400,20 @@ msgstr ""
"Gute Geschwindigkeitsverbesserung, fast keine "
"Kompatibilitätseinschränkungen. [empfohlen]"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:196
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:188
msgid "Enable Wait Loop Detection"
msgstr "Aktiviere erkennen von Warteschleifen"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:197
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:189
msgid ""
"Moderate speedup for some games, with no known side effects. [Recommended]"
msgstr "Leichte Geschwindigkeitsverbesserung in einigen Spielen [empfohlen]"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:199
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:191
msgid "Enable fast CDVD"
msgstr "Aktiviere schnelles CDVD"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:200
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:192
msgid "Fast disc access, less loading times. [Not Recommended]"
msgstr "Schnellerer Diskzugriff, kürzere Ladezeiten [nicht empfohlen]"
@ -2481,53 +2471,53 @@ msgstr "FPS"
msgid "PAL Framerate:"
msgstr "PAL Bildwiederholrate"
#: pcsx2/gui/Panels/VideoPanel.cpp:162
#: pcsx2/gui/Panels/VideoPanel.cpp:166
msgid ""
"Error while parsing either NTSC or PAL framerate settings. Settings must be "
"valid floating point numerics."
msgstr "Fehler beim Einlesen der NTSC oder PAL Framerateeinstellungen."
#: pcsx2/gui/Panels/VideoPanel.cpp:180
#: pcsx2/gui/Panels/VideoPanel.cpp:184
msgid "Disabled [default]"
msgstr "Deaktiviert [standard]"
#: pcsx2/gui/Panels/VideoPanel.cpp:184
#: pcsx2/gui/Panels/VideoPanel.cpp:188
msgid "Skip when on Turbo only (TAB to enable)"
msgstr "Skipping nur im Turbomodus"
#: pcsx2/gui/Panels/VideoPanel.cpp:188
#: pcsx2/gui/Panels/VideoPanel.cpp:192
msgid "Constant skipping"
msgstr "Konstantes Skipping"
#: pcsx2/gui/Panels/VideoPanel.cpp:190
#: pcsx2/gui/Panels/VideoPanel.cpp:194
msgid ""
"Normal and Turbo limit rates skip frames. Slow motion mode will still "
"disable frameskipping."
msgstr "Normal und Turbo werden Bilder auslassen, Slow motion nicht."
#: pcsx2/gui/Panels/VideoPanel.cpp:213
#: pcsx2/gui/Panels/VideoPanel.cpp:217
msgid "Frames to Draw"
msgstr "Bilder darstellen"
#: pcsx2/gui/Panels/VideoPanel.cpp:218
#: pcsx2/gui/Panels/VideoPanel.cpp:222
msgid "Frames to Skip"
msgstr "Bilder auslassen"
#: pcsx2/gui/Panels/VideoPanel.cpp:294
#: pcsx2/gui/Panels/VideoPanel.cpp:298
msgid "Use Synchronized MTGS"
msgstr "Benutze synchrones MTGS"
#: pcsx2/gui/Panels/VideoPanel.cpp:295
#: pcsx2/gui/Panels/VideoPanel.cpp:299
msgid ""
"For troubleshooting potential bugs in the MTGS only, as it is potentially "
"very slow."
msgstr "Um eventualle Fehler im MTGS Thread zu debuggen. Sehr langsam!"
#: pcsx2/gui/Panels/VideoPanel.cpp:298
#: pcsx2/gui/Panels/VideoPanel.cpp:302
msgid "Disable all GS output"
msgstr "Deaktiviere GS Ausgabe"
#: pcsx2/gui/Panels/VideoPanel.cpp:299
#: pcsx2/gui/Panels/VideoPanel.cpp:303
msgid ""
"Completely disables all GS plugin activity; ideal for benchmarking EEcore "
"components."
@ -2535,11 +2525,11 @@ msgstr ""
"Deaktiviert alle GS Plugin Aktivitäten. Ideal um den Emulatorkern zu "
"Benchmarken."
#: pcsx2/gui/Panels/VideoPanel.cpp:316
#: pcsx2/gui/Panels/VideoPanel.cpp:320
msgid "Frame Skipping"
msgstr "Bilder auslassen (skipping)"
#: pcsx2/gui/Panels/VideoPanel.cpp:319
#: pcsx2/gui/Panels/VideoPanel.cpp:323
msgid "Framelimiter"
msgstr "FPS Limitierung"
@ -2626,6 +2616,14 @@ msgstr ""
"%s Erweiterungen nicht gefunden. MicroVU benötigt einen Prozessor mit MMX, "
"SSE und SSE2 Erweiterungen."
#~ msgid "mVU Block Hack"
#~ msgstr "mVU Block Hack"
#, fuzzy
#~ msgid ""
#~ "Good Speedup and High Compatibility; may cause bad graphics, SPS, etc..."
#~ msgstr "Guter FPS Anstieg, gute Kompatibilität [empfohlen]"
#~ msgid "!ContextTip:ChangingNTFS"
#~ msgstr ""
#~ "Die NTFS Komprimierung kann jederzeit via Windows Explorer geändert "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PCSX2 0.9.7\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/pcsx2/\n"
"POT-Creation-Date: 2011-10-05 20:13+0200\n"
"POT-Creation-Date: 2012-04-07 11:42+0200\n"
"PO-Revision-Date: 2011-09-28 21:51+0100\n"
"Last-Translator: Víctor González <pajaroloco_2@hotmail.com>\n"
"Language-Team: \n"
@ -31,7 +31,7 @@ msgstr ""
"memoria virtual necesarias ya las han reservado otros procesos, servicios o "
"DLLs."
#: pcsx2/CDVD/CDVD.cpp:385
#: pcsx2/CDVD/CDVD.cpp:389
msgid "!Notice:PsxDisc"
msgstr ""
"PCSX2 no admite discos de juego de PlayStation 1. Si quieres emular juegos "
@ -496,7 +496,7 @@ msgstr ""
"EmotionEngine. Un valor alto aumenta el número de ciclos robados del EE a "
"cada microprograma del VU que utiliza el juego."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:172
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:169
msgid "!ContextTip:Speedhacks:vuFlagHack"
msgstr ""
"Actualiza las etiquetas de estado sólo en los bloques que podrán leerse, en "
@ -504,15 +504,7 @@ msgstr ""
"Generalmente es la opción más segura, y Super VU ya hace algo parecido de "
"forma predeterminada."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:177
msgid "!ContextTip:Speedhacks:vuBlockHack"
msgstr ""
"Asume que en lo profundo de los bloques futuros no necesitarán estos datos "
"de instancia antiguos.\n"
"Debería ser una opción muy segura. No se sabe si dañará la emulación de "
"algún juego..."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:182
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:174
msgid "!ContextTip:Speedhacks:vuThread"
msgstr ""
"Ejecuta VU1 en un hilo dedicado (sólo microVU1). Suele aumentar la velocidad "
@ -522,7 +514,7 @@ msgstr ""
"En el caso de los juegos limitados por GS, podría ralentizarlos (sobre todo "
"en CPUs de doble núcleo)."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:203
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:195
msgid "!ContextTip:Speedhacks:INTC"
msgstr ""
"Este arreglo funciona mejor en juegos que utilizan el registro de estado "
@ -530,7 +522,7 @@ msgstr ""
"RPGs que no son 3D. Los juegos que no utilizan este método de sincronía "
"vertical no recibirán aumentos de velocidad con este arreglo."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:208
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:200
msgid "!ContextTip:Speedhacks:BIFC0"
msgstr ""
"Al apuntar directamente al bucle de espera del EE en la dirección 0x81FC0 "
@ -540,7 +532,7 @@ msgstr ""
"bucles, aumentamos el tiempo del siguiente evento o el final del espacio de "
"tiempo del procesador, en función de lo que llegue primero."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:215
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:207
msgid "!ContextTip:Speedhacks:fastCDVD"
msgstr ""
"Comprueba las listas de compatibilidad del HDLoader para saber qué juegos "
@ -553,20 +545,20 @@ msgstr ""
"Observa que al desactivar la limitación de fotogramas, los modos Turbo y "
"Velocidad lenta no estarán disponibles."
#: pcsx2/gui/Panels/VideoPanel.cpp:223
#: pcsx2/gui/Panels/VideoPanel.cpp:227
msgid "!Panel:Frameskip:Heading"
msgstr ""
"Aviso: Debido al diseño del hardware de PS2, es imposible hacer un salto de "
"fotogramas preciso.\n"
"Activarlo causará serios fallos visuales en varios juegos."
#: pcsx2/gui/Panels/VideoPanel.cpp:302
#: pcsx2/gui/Panels/VideoPanel.cpp:306
msgid "!ContextTip:GS:SyncMTGS"
msgstr ""
"Activa esta opción si crees que la sincronía de hilos MTGS provoca caídas o "
"fallos gráficos."
#: pcsx2/gui/Panels/VideoPanel.cpp:306
#: pcsx2/gui/Panels/VideoPanel.cpp:310
msgid "!ContextTip:GS:DisableOutput"
msgstr ""
"Elimina cualquier ruido de benchmark provocado por el hilo MTGS o la "
@ -591,3 +583,10 @@ msgstr ""
"los rangos de memoria concretos que son necesarios, y no podrá ser "
"utilizado. Este no es un error crítico, ya que el recompilador SuperVU es "
"obsoleto, y deberías utilizar en su lugar microVU."
#~ msgid "!ContextTip:Speedhacks:vuBlockHack"
#~ msgstr ""
#~ "Asume que en lo profundo de los bloques futuros no necesitarán estos "
#~ "datos de instancia antiguos.\n"
#~ "Debería ser una opción muy segura. No se sabe si dañará la emulación de "
#~ "algún juego..."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PCSX2 0.9.7\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/pcsx2/\n"
"POT-Creation-Date: 2011-10-05 20:13+0200\n"
"POT-Creation-Date: 2012-02-28 12:20+0100\n"
"PO-Revision-Date: 2011-09-28 21:53+0100\n"
"Last-Translator: Víctor González <pajaroloco_2@hotmail.com>\n"
"Language-Team: \n"
@ -204,7 +204,7 @@ msgstr "El plugin interno de Memory Cards no se ha iniciado."
msgid "Unloaded Plugin"
msgstr "Plugin no cargado"
#: pcsx2/SaveState.cpp:339
#: pcsx2/SaveState.cpp:342
msgid "Cannot load savestate. It is of an unknown or unsupported version."
msgstr ""
"No se ha podido cargar el guardado rápido. Es una versión desconocida o no "
@ -386,31 +386,31 @@ msgstr ""
"El guardado rápido no se guardó correctamente. El archivo temporal ha sido "
"creado con éxito, pero no se pudo trasladar a su destino final."
#: pcsx2/gui/AppConfig.cpp:837
#: pcsx2/gui/AppConfig.cpp:842
msgid "Safest"
msgstr "Lo más seguro"
#: pcsx2/gui/AppConfig.cpp:838
#: pcsx2/gui/AppConfig.cpp:843
msgid "Safe (faster)"
msgstr "Seguro (más rápido)"
#: pcsx2/gui/AppConfig.cpp:839
#: pcsx2/gui/AppConfig.cpp:844
msgid "Balanced"
msgstr "Equilibrado"
#: pcsx2/gui/AppConfig.cpp:840
#: pcsx2/gui/AppConfig.cpp:845
msgid "Aggressive"
msgstr "Agresivo"
#: pcsx2/gui/AppConfig.cpp:841
#: pcsx2/gui/AppConfig.cpp:846
msgid "Aggressive plus"
msgstr "Muy agresivo"
#: pcsx2/gui/AppConfig.cpp:842
#: pcsx2/gui/AppConfig.cpp:847
msgid "Mostly Harmful"
msgstr "Muy peligroso"
#: pcsx2/gui/AppConfig.cpp:999 pcsx2/gui/AppConfig.cpp:1005
#: pcsx2/gui/AppConfig.cpp:1007 pcsx2/gui/AppConfig.cpp:1013
msgid "Failed to overwrite existing settings file; permission was denied."
msgstr ""
"Error al sobrescribir el archivo de configuración ya existente, se ha "
@ -2468,21 +2468,10 @@ msgstr ""
"(Recomendado)"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:166
msgid "mVU Block Hack"
msgstr "Arreglo de bloqueo mVU"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:167
msgid ""
"Good Speedup and High Compatibility; may cause bad graphics, SPS, etc..."
msgstr ""
"Buena subida y alta compatibilidad; puede crear gráficos dañados, SPS, "
"etcétera..."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:169
msgid "MTVU (Multi-Threaded microVU1)"
msgstr "MTVU (microVU1 multihilos)"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:170
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:167
msgid ""
"Good Speedup and High Compatibility; may cause hanging... [Recommended if 3+ "
"cores]"
@ -2490,15 +2479,15 @@ msgstr ""
"Buena subida y alta compatibilidad; puede provocar cuelgues... (Recomendado "
"si tienes 3 o más núcleos de CPU)"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:191
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:183
msgid "Other Hacks"
msgstr "Otros arreglos"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:193
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:185
msgid "Enable INTC Spin Detection"
msgstr "Activar detección de giro INTC"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:194
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:186
msgid ""
"Huge speedup for some games, with almost no compatibility side effects. "
"[Recommended]"
@ -2506,22 +2495,22 @@ msgstr ""
"Subida enorme de velocidad en algunos juegos, sin prácticamente ningún "
"efecto secundario de compatibilidad (Recomendado)"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:196
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:188
msgid "Enable Wait Loop Detection"
msgstr "Activar detección de parada de bucles"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:197
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:189
msgid ""
"Moderate speedup for some games, with no known side effects. [Recommended]"
msgstr ""
"Subida moderada en algunos juegos, sin efectos secundarios conocidos. "
"(Recomendado)"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:199
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:191
msgid "Enable fast CDVD"
msgstr "Activar CDVD rápido"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:200
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:192
msgid "Fast disc access, less loading times. [Not Recommended]"
msgstr ""
"Accede al disco más rápidamente, reduciendo los tiempos de carga. (No "
@ -2582,7 +2571,7 @@ msgstr "FPS (Fotogramas por segundo)"
msgid "PAL Framerate:"
msgstr "Velocidad de fotogramas PAL:"
#: pcsx2/gui/Panels/VideoPanel.cpp:162
#: pcsx2/gui/Panels/VideoPanel.cpp:166
msgid ""
"Error while parsing either NTSC or PAL framerate settings. Settings must be "
"valid floating point numerics."
@ -2590,19 +2579,19 @@ msgstr ""
"Error al analizar la configuración de la velocidad de fotogramas PAL o "
"NTSC. La configuración debe ser un valor numeral entero."
#: pcsx2/gui/Panels/VideoPanel.cpp:180
#: pcsx2/gui/Panels/VideoPanel.cpp:184
msgid "Disabled [default]"
msgstr "Desactivado [por defecto]"
#: pcsx2/gui/Panels/VideoPanel.cpp:184
#: pcsx2/gui/Panels/VideoPanel.cpp:188
msgid "Skip when on Turbo only (TAB to enable)"
msgstr "Saltar sólo con el turbo activado (Activar pulsando TAB)"
#: pcsx2/gui/Panels/VideoPanel.cpp:188
#: pcsx2/gui/Panels/VideoPanel.cpp:192
msgid "Constant skipping"
msgstr "Salto constante"
#: pcsx2/gui/Panels/VideoPanel.cpp:190
#: pcsx2/gui/Panels/VideoPanel.cpp:194
msgid ""
"Normal and Turbo limit rates skip frames. Slow motion mode will still "
"disable frameskipping."
@ -2610,19 +2599,19 @@ msgstr ""
"Normal y Turbo limitan la velocidad de salto de fotogramas. El modo de "
"velocidad lenta desactivará el salto de fotogramas."
#: pcsx2/gui/Panels/VideoPanel.cpp:213
#: pcsx2/gui/Panels/VideoPanel.cpp:217
msgid "Frames to Draw"
msgstr "Fotogramas a mostrar"
#: pcsx2/gui/Panels/VideoPanel.cpp:218
#: pcsx2/gui/Panels/VideoPanel.cpp:222
msgid "Frames to Skip"
msgstr "Fotogramas a saltar"
#: pcsx2/gui/Panels/VideoPanel.cpp:294
#: pcsx2/gui/Panels/VideoPanel.cpp:298
msgid "Use Synchronized MTGS"
msgstr "Utilizar GS multinúcleo sincronizado"
#: pcsx2/gui/Panels/VideoPanel.cpp:295
#: pcsx2/gui/Panels/VideoPanel.cpp:299
msgid ""
"For troubleshooting potential bugs in the MTGS only, as it is potentially "
"very slow."
@ -2630,11 +2619,11 @@ msgstr ""
"Usar sólo para evitar posibles fallos en el MTGS; ya que probablemente "
"funcione muy lento."
#: pcsx2/gui/Panels/VideoPanel.cpp:298
#: pcsx2/gui/Panels/VideoPanel.cpp:302
msgid "Disable all GS output"
msgstr "Desactivar toda la salida de GS"
#: pcsx2/gui/Panels/VideoPanel.cpp:299
#: pcsx2/gui/Panels/VideoPanel.cpp:303
msgid ""
"Completely disables all GS plugin activity; ideal for benchmarking EEcore "
"components."
@ -2642,11 +2631,11 @@ msgstr ""
"Desactiva por completo toda actividad del plugin GS; ideal para probar "
"componentes de EEcore."
#: pcsx2/gui/Panels/VideoPanel.cpp:316
#: pcsx2/gui/Panels/VideoPanel.cpp:320
msgid "Frame Skipping"
msgstr "Saltar fotogramas"
#: pcsx2/gui/Panels/VideoPanel.cpp:319
#: pcsx2/gui/Panels/VideoPanel.cpp:323
msgid "Framelimiter"
msgstr "Limitador de fotogramas"
@ -2734,3 +2723,12 @@ msgid ""
msgstr ""
"Extensiones %s no encontradas. La microVU necesita de una CPU anfitriona "
"con extensiones MMX, SSE y SSE2."
#~ msgid "mVU Block Hack"
#~ msgstr "Arreglo de bloqueo mVU"
#~ msgid ""
#~ "Good Speedup and High Compatibility; may cause bad graphics, SPS, etc..."
#~ msgstr ""
#~ "Buena subida y alta compatibilidad; puede crear gráficos dañados, SPS, "
#~ "etcétera..."

View File

@ -0,0 +1,593 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR PCSX2 Dev Team
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PCSX2 0.9.9\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/pcsx2/\n"
"POT-Creation-Date: 2012-04-07 11:42+0200\n"
"PO-Revision-Date: 2012-03-08 11:33-0000\n"
"Last-Translator: goldeng <odakawoi@yahoo.fr>\n"
"Language-Team: goldeng <odakawoi@yahoo.fr>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-KeywordsList: pxE;pxEt\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-Basepath: trunk\\\n"
"X-Poedit-Language: French\n"
"X-Poedit-Country: France\n"
"X-Poedit-SearchPath-0: pcsx2\n"
"X-Poedit-SearchPath-1: common\n"
#: common/src/Utilities/Exceptions.cpp:254
msgid "!Notice:VirtualMemoryMap"
msgstr ""
"La mémoire virtuelle disponible est insuffisante, ou l'espace-mémoire a déjà "
"été réservé par d'autres processus, services ou DLL."
#: pcsx2/CDVD/CDVD.cpp:389
msgid "!Notice:PsxDisc"
msgstr ""
"L'émulation des jeux Playstation1 n'est pas supportée par PCSX2. Si vous "
"voulez émuler des jeux PSX, veuillez télécharger un émulateur PS1 dédié (par "
"exemple, ePSXe ou PCSX) !"
#: pcsx2/System.cpp:114
msgid "!Notice:Recompiler:VirtualMemoryAlloc"
msgstr ""
"Le recompiler n'a pas été en mesure d'allouer la mémoire virtuelle "
"nécessaire. Cette erreur peut être causée par une insuffisance en "
"ressources, notamment du fait qu'un autre programme utilise trop d'espace. "
"Vous pouvez également essayer de réduire la taille du cache par défaut "
"allouée au recompiler PCSX2."
#: pcsx2/System.cpp:348
msgid "!Notice:EmuCore::MemoryForVM"
msgstr ""
"PCSX2 est incapable d'affecter les ressources en mémoire requises pour "
"l'émulation d'une machine virtuelle PS2. Mettez fin aux processus en cours "
"qui nécessitent beaucoup de mémoire (CTRL + ALT + Suppr) puis réessayez."
#: pcsx2/gui/AppInit.cpp:43
msgid "!Notice:Startup:NoSSE2"
msgstr ""
"Attention ! Votre ordinateur ne prend pas en charge les instructions de type "
"SSE2, nécessaires pour la prise en charge d'un grand nombre de plugins et du "
"recompiler PCSX2 : vos options seront limitées et l'émulation (très) lente."
#: pcsx2/gui/AppInit.cpp:162
msgid "!Notice:RecompilerInit:Header"
msgstr ""
"Attention ! Certaines fonctions du recompiler PCSX2 n'ont pas pu être "
"initialisées et ont, par conséquent, été désactivées :"
#: pcsx2/gui/AppInit.cpp:211
msgid "!Notice:RecompilerInit:Footer"
msgstr ""
"Attention : le recompiler n'est pas indispensable au fonctionnement de "
"l'émulateur, il permet néanmoins d'améliorer sensisblement les performances "
"globales. Si vous êtes parvenus à résoudre des problèmes en désactivant le "
"recompiler, vous devrez le réactiver manuellement."
#: pcsx2/gui/AppMain.cpp:546
msgid "!Notice:BiosDumpRequired"
msgstr ""
" \n"
"\n"
"PCSX2 nécessite un BIOS PS2 valide. D'un point de vue légal, vous DEVEZ "
"obtenir votre BIOS \n"
"à partir de votre propre PS2 (emprunter une console ne satisfait pas ces "
"exigences).\n"
"Veuillez consulter la FAQ ou les guides disponibles pour plus de "
"renseignements."
#: pcsx2/gui/AppMain.cpp:629
msgid "!Notice Error:Thread Deadlock Actions"
msgstr ""
"Cliquez sur Ignorer pour attendre jusqu'à ce que le processus réponde.\n"
"Cliquez Annuler pour mettre fin au processus.\n"
"Cliquez sur Terminer pour fermer immédiatement PCSX2."
#: pcsx2/gui/AppUserMode.cpp:57
msgid "!Notice:PortableModeRights"
msgstr ""
"Merci de vous assurer que les dossiers spécifiés sont présents et que votre "
"compte d'utilisateur possède les permissions d'écriture - ou redémarrer "
"PCSX2 en tant qu'administrateur du système, ce qui devrait garantir au "
"programme la capacité à créer ses propres dossiers. Si vous ne disposez pas "
"d'un accès au compte administrateur, vous aurez besoin de faire appel au "
"mode User Documents (cliquez sur le bouton ci-dessous)."
#: pcsx2/gui/Dialogs/CreateMemoryCardDialog.cpp:181
msgid "!ContextTip:ChangingNTFS"
msgstr ""
"La compression NTFS peut être modifiée manuellement depuis l'explorateur "
"Windows (clic droit sur le fichier, puis \"Propriétés\")."
#: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:49
msgid "!ContextTip:Folders:Settings"
msgstr ""
"Ce dossier contient les paramètres relatifs à PCSX2, y compris ceux créés "
"par les plugins externes (sauf s'ils sont dépassés techniquement)."
#: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:54
msgid "!Panel:Folders:Settings"
msgstr ""
"Vous pouvez spécifier un chemin d'accès pour les paramètres PCSX2. Si un "
"fichier de paramétrage existe déjà dans le dossier choisi, vous aurez la "
"possibilité de les importer ou de les écraser."
#: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:94
msgid "!Wizard:Welcome"
msgstr ""
"Cette aide à la configuration vous permettra de paramétrer les plugins, les "
"cartes mémoire et le BIOS. Il est recommandé à tout utilisateur de "
"l'utiliser, mais également de prendre connaissance du Lisez-moi et des "
"guides de configuration traduits dans votre langue (FR : goldeng)."
#: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:140
msgid "!Wizard:Bios:Tutorial"
msgstr ""
"PCSX2 nécessite l'utilisation d'une copie LÉGALE d'un BIOS PS2 pour que "
"l'émulation des jeux fonctionne.\n"
"Vous ne pouvez pas avoir recours à une copie obtenue auprès d'un ami ou "
"grâce à internet.\n"
"Vous devez faire un dump du BIOS de VOTRE console Playstation 2."
#: pcsx2/gui/Dialogs/ImportSettingsDialog.cpp:31
msgid "!Notice:ImportExistingSettings"
msgstr ""
"Un historique de paramètres PCSX2 a été trouvé dans le dossier de "
"configuration. Voulez-vous que le logiciel importe ces données ou les "
"remplace avec les valeurs par défaut ?\n"
"\n"
"(ou appuyez sur le bouton Annuler pour modifier le dossier d'installation)"
#: pcsx2/gui/Dialogs/McdConfigDialog.cpp:30
msgid "!Panel:Mcd:NtfsCompress"
msgstr ""
"La compression NTFS est sûre et rapide : c'est le format le plus adapté pour "
"les cartes mémoires !"
#: pcsx2/gui/Dialogs/McdConfigDialog.cpp:41
msgid "!Panel:Mcd:EnableEjection"
msgstr ""
"Permet d'éviter d'endommager la carte mémoire (fichiers corrompus) en "
"obligeant les jeux à ré-indexer le contenu présent sur la carte.\n"
"Cette option peut être incompatible avec certains jeux (Guitar Hero, par "
"exemple) !"
#: pcsx2/gui/Dialogs/StuckThreadDialog.cpp:33
msgid "!Panel:StuckThread:Heading"
msgstr ""
"Le processus '%s' ne répond pas. Il est peut-être bloqué ou s'exécute d'une "
"manière anormalement lente."
#: pcsx2/gui/Dialogs/SysConfigDialog.cpp:38
msgid "!Panel:HasHacksOverrides"
msgstr ""
"Attention ! Les lignes de commande se substituent aux paramètres établis.\n"
"Ces commandes ne sont pas disponibles dans la fenêtre de configuration des "
"paramètres habituels, \n"
"et seront désactivées si vous cliquez sur le bouton Appliquer."
#: pcsx2/gui/Dialogs/SysConfigDialog.cpp:58
msgid "!Panel:HasPluginsOverrides"
msgstr ""
"Attention ! Les lignes de commande se substituent aux paramètres plugins "
"établis.\n"
"Ces commandes ne sont pas disponibles dans la fenêtre de configuration des "
"paramètres habituels, \n"
"et seront désactivées si vous cliquez sur le bouton Appliquer."
#: pcsx2/gui/Dialogs/SysConfigDialog.cpp:135
msgid "!Notice:Tooltip:Presets:Slider"
msgstr ""
"Les préréglages appliquent des speedhacks, des options spécifiques du "
"recompiler et des patchs spécifiques à certains jeux afin d'en améliorer les "
"performances.\n"
"Toute correction disponible à un problème connu sera automatiquement "
"appliquée.\n"
"\n"
"Informations :\n"
"1 - Le mode d'émulation le plus stable, mais aussi le plus lent.\n"
"3 --> Une tentative d'équilibre entre compatibilité et performances.\n"
"4 - Utilisation de certains speedhacks.\n"
"5 - Utilisation d'un si grand nombre de speedhacks que les performances s'en "
"ressentiront sûrement."
#: pcsx2/gui/Dialogs/SysConfigDialog.cpp:149
msgid "!Notice:Tooltip:Presets:Checkbox"
msgstr ""
"Les préréglages appliquent des speedhacks, des options spécifiques du "
"recompiler et des patchs particuliers à certains jeux afin d'en améliorer "
"les performances. Toute correction disponible à un problème connu sera "
"automatiquement appliquée.\n"
"--> Décochez la case si vous désirez modifier les paramètres manuellement "
"(en utilisant les préréglages actuels comme base)"
#: pcsx2/gui/IsoDropTarget.cpp:28
msgid "!Notice:ConfirmSysReset"
msgstr ""
"Une telle opération entraînera la réinitialisation complète de la machine "
"virtuelle PS2 : toutes les données en cours seront perdues.\n"
"Êtes-vous sûr de vouloir réaliser cette opération ?"
#: pcsx2/gui/MainMenuClicks.cpp:106
msgid "!Notice:DeleteSettings"
msgstr ""
"Cette opération vise à supprimer les paramètres de %s et à relancer "
"l'assistant de première configuration. \n"
"%s doit être relancé manuellement après que l'opération ait été réalisée "
"avec succès. \n"
"\n"
" ATTENTION ! Cliquez sur OK pour supprimer TOUS les paramètres de %s et "
"forcer la fermeture de l'application, provoquant la perte de toutes les "
"données en cours d'exécution.\n"
"Êtes-vous sûr de vouloir procéder à cette manipulation ?\n"
"PS. Les paramètres des plugins individuels ne seront pas affectés."
#: pcsx2/gui/MemoryCardFile.cpp:78
msgid "!Notice:Mcd:HasBeenDisabled"
msgstr ""
"La carte mémoire présente dans le lecteur %d a été automatiquement "
"désactivée. Vous pouvez corriger ce problème\n"
"et relancer la carte mémoire à l'aide du menu principal (Configuration -> "
"Cartes mémoire)."
#: pcsx2/gui/Panels/BiosSelectorPanel.cpp:138
msgid "!Notice:BIOS:InvalidSelection"
msgstr ""
"Veuillez choisir un BIOS valide. Si vous ne possédez pas un tel fichier, "
"cliquez sur Annuler pour fermer le panneau de configuration."
#: pcsx2/gui/Panels/CpuPanel.cpp:111
msgid "!Panel:EE/IOP:Heading"
msgstr ""
"Rappel : La plupart des jeux fonctionneront correctement à l'aide du "
"paramétrage par défaut."
#: pcsx2/gui/Panels/CpuPanel.cpp:178
msgid "!Panel:VUs:Heading"
msgstr ""
"Rappel : La plupart des jeux fonctionneront correctement à l'aide du "
"paramétrage par défaut."
#: pcsx2/gui/Panels/DirPickerPanel.cpp:69
msgid "!Notice:DirPicker:CreatePath"
msgstr ""
"Le chemin d'accès ou le dossier spécifiés n'existent pas. Voulez-vous le "
"créer ?"
#: pcsx2/gui/Panels/DirPickerPanel.cpp:158
msgid "!ContextTip:DirPicker:UseDefault"
msgstr ""
"Erreur ! Impossible de copier la carte mémoire dans le lecteur %u. Ce "
"dernier est en cours d'utilisation."
#: pcsx2/gui/Panels/GSWindowPanel.cpp:55
msgid "!ContextTip:Window:Zoom"
msgstr ""
"Zoom = 100 : les éléments graphiques occupent tout l'écran.\n"
"+/- 100 : augmente ou réduit le zoom.\n"
"0 : zoom automatique qui supprime les bordures noires.\n"
"\n"
"Attention : certains jeux utilisent volontairement les bordures noires, "
"celles-ci ne seront pas supprimées avec la valeur 0 !\n"
"\n"
"Raccourcis clavier : CTRL + Plus (augmente le zoom) ; CTRL + Moins (diminue "
"le zoom) ; CTRL + * (intevertit les valeurs 100 et 0)"
#: pcsx2/gui/Panels/GSWindowPanel.cpp:63
msgid "!ContextTip:Window:Vsync"
msgstr ""
"La synchronisation verticale permet d'éliminer les secousses (tremblements) "
"de l'écran, mais occasionne également des pertes en termes de performances. "
"Il vaut mieux ne l'utiliser qu'en mode plein-écran.\n"
"\n"
"Attention : Certains plugins vidéo ne fonctionnent pas avec cette option !"
#: pcsx2/gui/Panels/GSWindowPanel.cpp:68
msgid "!ContextTip:Window:ManagedVsync"
msgstr ""
"Active la Vsync (synchronisation verticale) lorsque la framerate atteint sa "
"vitesse maximum. Si cette dernière venait à diminuer, la Vsync se "
"désactivera automatiquement.\n"
"\n"
"Attention : En l'état actuel, cette option ne fonctionne qu'avec le plugin "
"GSdx dans sa configuration DX10/11 (hardware) ! Tout autre plugin ou mode de "
"rendu occasionnera l'affichage d'un fond noir à la place des éléments "
"graphiques du jeu.\n"
"De plus, cette option nécessite que la Vsync soit activée sur votre PC."
#: pcsx2/gui/Panels/GSWindowPanel.cpp:76
msgid "!ContextTip:Window:HideMouse"
msgstr ""
"Cochez cette case pour obliger le curseur de la souris à ne pas apparaître "
"dans la fenêtre de jeu.\n"
"Cette option est utile si vous utilisez la souris comme contrôleur principal "
"pour les jeux.\n"
"Par défaut, le curseur s'efface automatiquement après deux secondes "
"d'inactivité."
#: pcsx2/gui/Panels/GSWindowPanel.cpp:82
msgid "!ContextTip:Window:Fullscreen"
msgstr ""
"Lorsque cette option est activée, le jeu se lance automatiquement en mode "
"plein-écran (au démarrage ou après une pause).\n"
"Vous pouvez néanmoins modifier le mode d'affichage en jeu grâce à la "
"combinaison de touches ALT + Entrée."
#: pcsx2/gui/Panels/GSWindowPanel.cpp:93
msgid "!ContextTip:Window:HideGS"
msgstr ""
"Ferme complètement la fenêtre de jeu lorsque la touche ESC ou la fonction "
"Pause est utilisée."
#: pcsx2/gui/Panels/GameFixesPanel.cpp:67
msgid "!ContextTip:Gamefixes:EE Timing Hack"
msgstr ""
"Les jeux suivants nécessitent l'utilisation du hack :\n"
"* Shin Mega Tensei : Digital Devil Saga (cinématiques, crashs)\n"
"* SSX (bugs graphiques, crashs)\n"
"* Resident Evil : Dead Aim (textures)"
#: pcsx2/gui/Panels/GameFixesPanel.cpp:80
msgid "!ContextTip:Gamefixes:OPH Flag hack"
msgstr ""
"Les jeux suivants nécessitent l'utilisation du hack :\n"
"* Bleach : Blade Battlers\n"
"* Growlanser II : The Sense of Justice\n"
"* Growlanser III : The Dual Darkness\n"
"* Wizardry"
#: pcsx2/gui/Panels/GameFixesPanel.cpp:89
msgid "!ContextTip:Gamefixes:DMA Busy hack"
msgstr ""
"Les jeu suivant nécessite l'utilisation du hack :\n"
"* Mana Khemia : Alchemists of Al-Revis (sortir du campus)"
#: pcsx2/gui/Panels/GameFixesPanel.cpp:96
msgid "!ContextTip:Gamefixes:VIF1 FIFO hack"
msgstr ""
"Les jeux suivants nécessitent l'utilisation du hack:\n"
"* Test Drive Unlimited\n"
"* Transformers"
#: pcsx2/gui/Panels/GameFixesPanel.cpp:119
msgid "!Panel:Gamefixes:Compat Warning"
msgstr ""
"Les patchs peuvent corriger des problèmes liés à l'émulation de titres "
"spécifiques.\n"
"Néanmoins, ils peuvent aussi avoir un impact sur la compatibilité ou les "
"performances globales.\n"
"\n"
"Il est conseillé de préférer l'option \"Patchs automatiques\" disponible "
"dans le menu \"Système\" de l'émulateur plutôt que d'utiliser celle-ci.\n"
"(\"Patchs automatiques\" : utilise uniquement le patch associé au jeu émulé)"
#: pcsx2/gui/Panels/MemoryCardListPanel.cpp:720
msgid "!Notice:Mcd:Delete"
msgstr ""
"Vous êtes sur le point de supprimer la carte mémoire du lecteur %u. Toutes "
"les données présentes sur la carte seront perdues !\n"
"Êtes-vous sûr de réaliser cette manipulation ?"
#: pcsx2/gui/Panels/MemoryCardListPanel.cpp:758
msgid "!Notice:Mcd:CantDuplicate"
msgstr ""
"Erreur : Le port-PS2 concerné est occupé par un autre service, empêchant la "
"copie."
#: pcsx2/gui/Panels/MemoryCardListPanel.cpp:801
msgid "!Notice:Mcd:Copy Failed"
msgstr ""
"Erreur : Impossible de copier la carte mémoire du lecteur %u. Les données "
"concernées sont en cours d'utilisation."
#: pcsx2/gui/Panels/MiscPanelStuff.cpp:35
msgid "!Panel:Usermode:Explained"
msgstr ""
"Veuillez sélectionner le répertoire par défaut des fichiers utilisateur "
"PCSX2 (cartes mémoire, screenshots, paramètres d'affichage, etc...). Ce "
"réglage pourra être modifié plus tard via le panneau de configuration."
#: pcsx2/gui/Panels/MiscPanelStuff.cpp:41
msgid "!Panel:Usermode:Warning"
msgstr ""
"Vous pouvez modifier le répertoire par défaut du fichier utilisateu PCSX2 "
"(cartes mémoire, paramètres d'affichage, etc...). Cette option prévaut sur "
"tous les autres chemins d'accès spécifiés auparavant."
#: pcsx2/gui/Panels/PathsPanel.cpp:40
msgid "!ContextTip:Folders:Savestates"
msgstr ""
"Ce dossier contient les sauvegardes PCSX2. Vous pouvez enregistrer votre "
"partie en utilisant le menu ou en pressant les touches F1/F3 (sauver/"
"charger)."
#: pcsx2/gui/Panels/PathsPanel.cpp:50
msgid "!ContextTip:Folders:Snapshots"
msgstr ""
"Ce dossier contient les screenshots que vous avez pris lors de l'émulation "
"d'un jeu via PCSX2. Le format de l'image et sa qualité dépendent grandement "
"du plugin vidéo GS utilisé."
#: pcsx2/gui/Panels/PathsPanel.cpp:60
msgid "!ContextTip:Folders:Logs"
msgstr ""
"Ce dossier contient les rapports de diagnostique. La plupart des plugins "
"utilisent également le dossier ci-dessous pour enregistrer leurs rapports "
"d'erreurs."
#: pcsx2/gui/Panels/PluginSelectorPanel.cpp:242
msgid "!Notice:PluginSelector:ConfirmShutdown"
msgstr ""
"Attention ! Il est conseillé de réinitialiser complètement l'émulateur PS2 "
"après avoir remplacé un plugin. PCSX2 va maintenant tenter de réaliser une "
"sauvegarde puis de restaurer la session, mais vous pourriez perdre les "
"données en cours si le programme échoue (incompatibilité des plugins).\n"
"\n"
"Êtes-vous sûr de vouloir appliquer ces paramètres ?"
#: pcsx2/gui/Panels/PluginSelectorPanel.cpp:457
msgid "!Notice:PluginSelector:ApplyFailed"
msgstr ""
"Votre ordinateur ne dispose pas des ressources nécessaires pour lancer "
"l'émulateur. Essayez de libérer de l'espace-mémoire."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:27
msgid "!Panel:Speedhacks:EECycleX1"
msgstr ""
"1 - Cyclerate par défaut : la vitesse d'émulation est équivalente à celle "
"d'une véritable console Playstation 2."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:32
msgid "!Panel:Speedhacks:EECycleX2"
msgstr ""
"2 - Diminue l'EE Cyclerate d'envion 33% : amélioration sensible des "
"performances et compatibilité élevée."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:37
msgid "!Panel:Speedhacks:EECycleX3"
msgstr ""
"3 - Diminue l'EE Cyclerate d'environ 50% : amélioration modérée des "
"performances, mais le son de certaines cinématiques sera insupportable."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:54
msgid "!Panel:Speedhacks:VUCycleStealOff"
msgstr ""
"0 - Désactive le VU Cycle Stealing : compatibilité maximale, évidemment !"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:59
msgid "!Panel:Speedhacks:VUCycleSteal1"
msgstr ""
"1 - VU Cycle Stealing léger : faible compatibilité mais une amélioration "
"sensible des performances pour certains jeux."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:64
msgid "!Panel:Speedhacks:VUCycleSteal2"
msgstr ""
"2 - VU Cycle Stealing modéré : très faible compatibilité, mais une "
"amélioration significative des performances pour certains jeux."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:70
msgid "!Panel:Speedhacks:VUCycleSteal3"
msgstr ""
"3 - VU Cycle Stealing maximal : relativement inutile puisqu'il engendre des "
"ralentissements et des bugs graphiques dans la plupart des jeux."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:97
msgid "!Panel:Speedhacks:Overview"
msgstr ""
"Les speedhacks améliorent généralement les performances mais peuvent "
"également générer des bugs, empêcher l'émulation du son et fausser la mesure "
"des FPS. Si vous rencontrez des soucis lors de l'émulation d'un jeu, cette "
"option est la première à désactiver."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:129
msgid "!ContextTip:Speedhacks:EECycleRate Slider"
msgstr ""
"Les valeurs définissent la vitesse de l'horlogue du CPU core R5900 de "
"l'EmotionEngine, et entraînent une amélioration des performances conséquente "
"pour les jeux incapables d'utiliser tout le potentiel des composants de la "
"Playstation 2."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:150
msgid "!ContextTip:Speedhacks:VUCycleStealing Slider"
msgstr ""
"Les valeurs définissent le nombre de cycles que le Vector Unit \"emprunte\" "
"au système EmotionEngine. Une valeur élevée augmente le nombre emprunté à "
"l'EE pour chaque microprogramme VU que le jeu utilise."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:169
msgid "!ContextTip:Speedhacks:vuFlagHack"
msgstr ""
"Met à jour les Status Flags uniquement pour les blocs qui les liront, plutôt "
"qu'ils ne soient lus en permanence. Cette option n'occasionne aucun problème "
"en général, et le Super VU fait la même chose par défaut."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:174
msgid "!ContextTip:Speedhacks:vuThread"
msgstr ""
"Transfère le VU 1 dans un processus individuel (microVU1 seulement). En "
"général, cela permet une amélioration des performances sur les processeurs 3 "
"coeurs ou plus.\n"
"La plupart des jeux supportent bien l'opération, mais certains d'entre eux "
"pourraient tout de même planter.\n"
"De plus, les processeurs dual-core souffriront de ralentissements "
"conséquents."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:195
msgid "!ContextTip:Speedhacks:INTC"
msgstr ""
"Ce hack fonctionne mieux avec les jeux utilisant le registre INTC Status "
"dans l'attente d'une synchronisation verticale, notamment dans les RPG en "
"2D. Les jeux qui n'utilisent pas cette méthode connaîtront une légère "
"amélioration des performances."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:200
msgid "!ContextTip:Speedhacks:BIFC0"
msgstr "Vise surtout l'EE idle loop à l'adresse 0x81FC0 du kernel."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:207
msgid "!ContextTip:Speedhacks:fastCDVD"
msgstr ""
"Vérifie les listes de compatibilité du HDLoader pour les jeux qui "
"rencontrent habituellement des problèmes avec lui (le plus souvent, "
"repérables par l'indication \"mode 1\" ou \"slow DVD\")."
#: pcsx2/gui/Panels/VideoPanel.cpp:37
msgid "!ContextTip:Framelimiter:Disable"
msgstr ""
"Si le Famelimiting est désactivé, les modes Turbo et Slow Motion ne seront "
"plus disponibles."
#: pcsx2/gui/Panels/VideoPanel.cpp:227
msgid "!Panel:Frameskip:Heading"
msgstr ""
"Attention : L'hardware de la PS2 rend impossible un saut de frames cohérent. "
"L'activation de cette option pourrait entraîner des bugs graphiques "
"conséquents dans certains jeux."
#: pcsx2/gui/Panels/VideoPanel.cpp:306
msgid "!ContextTip:GS:SyncMTGS"
msgstr ""
"Activez cette option si vous pensez que le processus SyncMTGS cause des bugs "
"graphiques ou crashs récurents."
#: pcsx2/gui/Panels/VideoPanel.cpp:310
msgid "!ContextTip:GS:DisableOutput"
msgstr ""
"Supprime les problèmes de benchmark liés au processus MTGS ou à une "
"surexploitation du GPU. Cette option est plus efficace losqu'elle est "
"utilisée avec une sauvegarde : réalisez votre sauvegarde au moment propice, "
"activez cette option puis chargez à nouveau la partie.\n"
"\n"
"Attention : Cette option peut être activée alors que le jeu a été mis en "
"pause, mais entraînera des bugs graphiques si elle est ensuite désactivée au "
"cours de la même partie."
#: pcsx2/vtlb.cpp:710
msgid "!Notice:HostVmReserve"
msgstr ""
"Votre système manque de ressources pour exécuter l'émulateur PCSX2. Cela "
"peut être dû à un autre programme qui occupe trop d'espace-mémoire."
#: pcsx2/x86/sVU_zerorec.cpp:363
msgid "!Notice:superVU:VirtualMemoryAlloc"
msgstr ""
"Out of Memory (ou presque) : le SuperVU recompiler n'est pas parvu à allouer "
"suffisamment de mémoire virtuelle, ce qui rend impossible son utilisation. "
"Ceci n'est pas une erreur critique, puisque le SVU recompiler est obsolète "
"et que vous devriez utiliser Microvu ! :p"
#~ msgid "!ContextTip:Speedhacks:vuBlockHack"
#~ msgstr ""
#~ "Prévoit à l'avance que les futurs blocs n'auront pas besoin des anciennes "
#~ "données. L'option présente peu de risques et jusque là, aucun jeu n'a "
#~ "connu de bugs par sa faute."

2708
locales/fr_FR/pcsx2_Main.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PCSX2 0.9.8\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/pcsx2/\n"
"POT-Creation-Date: 2011-09-28 20:27+0200\n"
"POT-Creation-Date: 2012-04-07 11:42+0200\n"
"PO-Revision-Date: 2011-04-17 17:56+0100\n"
"Last-Translator: Delirious <delirious@freemail.hu>\n"
"Language-Team: Delirious <delirious@freemail.hu>\n"
@ -24,7 +24,7 @@ msgstr ""
"Nincs elegendő szabad virtuális memória, vagy a szükséges virtuális memória "
"kiosztás más folyamatok, szolgáltatások vagy DLL-ek számára van fenntartva."
#: pcsx2/CDVD/CDVD.cpp:385
#: pcsx2/CDVD/CDVD.cpp:389
msgid "!Notice:PsxDisc"
msgstr ""
"A PlayStation játék lemezeket nem támogatja a PCSX2. Ha PSX játékokat akarsz "
@ -471,26 +471,19 @@ msgstr ""
"elvesz az EmotionEngine elől. Magasabb érték növeli az EE elől elvett és a "
"játék által futtatott összes mikroprogram számára átadott ciklusok számát."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:172
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:169
msgid "!ContextTip:Speedhacks:vuFlagHack"
msgstr ""
"Az állapot jelzőket csak azokon a blokkokon frissíti amelyek olvassák "
"azokat. Legtöbbször ez biztonságos és a Super VU is valami hasonlót végez "
"alapértelmezettként."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:177
msgid "!ContextTip:Speedhacks:vuBlockHack"
msgstr ""
"Elfogadva, hogy a távoli jövőbeni blokkoknak nem lesz szükségük a régi "
"jelzőre utaló adatokra. Ez meglehetősen biztonságos lehet. Nem ismeretes, "
"hogy valamelyik játék kifagyását okozná..."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:182
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:174
#, fuzzy
msgid "!ContextTip:Speedhacks:vuThread"
msgstr "Nem működik a Gran Turismo 4 vagy Tekken 5 esetén."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:203
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:195
msgid "!ContextTip:Speedhacks:INTC"
msgstr ""
"Ez a hack működik legjobban azoknál a játékoknál, amelyek használják az INTC "
@ -499,7 +492,7 @@ msgstr ""
"eljárást használják a függőleges szinkronhoz csak csekély, vagy semmilyen "
"gyorsulás nem észlelhető a hack használatával."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:208
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:200
msgid "!ContextTip:Speedhacks:BIFC0"
msgstr ""
"Elsődlegesen megcélozva az EE üresjárati hurkot a 0x81FC0 címzésen a "
@ -510,7 +503,7 @@ msgstr ""
"előrehozhatjuk a következő eseményt vagy a processzor időszeletének végét, "
"bármelyik is következik előbb."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:215
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:207
msgid "!ContextTip:Speedhacks:fastCDVD"
msgstr ""
"Ellenőrizd a HDLoader kompatibilitási listát a problémás játékok végett. "
@ -522,20 +515,20 @@ msgstr ""
"Nem árt tudni, ha a képkocka korlátozás ki van kapcsolva, a turbó és "
"lassított mód sem érhető el."
#: pcsx2/gui/Panels/VideoPanel.cpp:223
#: pcsx2/gui/Panels/VideoPanel.cpp:227
msgid "!Panel:Frameskip:Heading"
msgstr ""
"Megjegyzés: A PS2 hardver összetételének köszönhetően a pontos képkocka "
"kihagyás nem lehetséges. Használata számos grafikai hibát okoz néhány "
"játékban."
#: pcsx2/gui/Panels/VideoPanel.cpp:302
#: pcsx2/gui/Panels/VideoPanel.cpp:306
msgid "!ContextTip:GS:SyncMTGS"
msgstr ""
"Kapcsold ezt be, ha úgy gondolod az MTGS folyamatág szinkron okozza a "
"fagyást vagy grafikai hibákat."
#: pcsx2/gui/Panels/VideoPanel.cpp:306
#: pcsx2/gui/Panels/VideoPanel.cpp:310
msgid "!ContextTip:GS:DisableOutput"
msgstr ""
"Eltávolít bármely teszt zajt, amit az MTGS folyamatág vagy az általános GPU "
@ -561,6 +554,12 @@ msgstr ""
"azt. Ez nem kritikus hiba, amióta az sVU rec elavult és bármikor használható "
"helyette a microVU. :)"
#~ msgid "!ContextTip:Speedhacks:vuBlockHack"
#~ msgstr ""
#~ "Elfogadva, hogy a távoli jövőbeni blokkoknak nem lesz szükségük a régi "
#~ "jelzőre utaló adatokra. Ez meglehetősen biztonságos lehet. Nem ismeretes, "
#~ "hogy valamelyik játék kifagyását okozná..."
#~ msgid "No reason given."
#~ msgstr "Nincs meghatározott ok."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PCSX2 0.9.8\n"
"Report-Msgid-Bugs-To: http://code.google.com/p/pcsx2/\n"
"POT-Creation-Date: 2011-09-28 20:27+0200\n"
"POT-Creation-Date: 2012-02-28 12:20+0100\n"
"PO-Revision-Date: 2011-04-17 16:35+0100\n"
"Last-Translator: Delirious <delirious@freemail.hu>\n"
"Language-Team: Delirious <delirious@freemail.hu>\n"
@ -195,7 +195,7 @@ msgstr "Belső memória kártya plugin iniciálása sikertelen."
msgid "Unloaded Plugin"
msgstr "Betöltetlen plugin"
#: pcsx2/SaveState.cpp:339
#: pcsx2/SaveState.cpp:342
msgid "Cannot load savestate. It is of an unknown or unsupported version."
msgstr ""
"A mentett állás nem tölthető be. Ez egy ismeretlen vagy nem támogatott "
@ -350,31 +350,31 @@ msgstr ""
"A mentett állás nem megfelelően van elmentve. Az ideiglenes fájl sikeresen "
"létre lett hozva, de nem került át a végső helyére."
#: pcsx2/gui/AppConfig.cpp:837
#: pcsx2/gui/AppConfig.cpp:842
msgid "Safest"
msgstr "Legbiztonságosabb"
#: pcsx2/gui/AppConfig.cpp:838
#: pcsx2/gui/AppConfig.cpp:843
msgid "Safe (faster)"
msgstr "Biztonságos (gyorsabb)"
#: pcsx2/gui/AppConfig.cpp:839
#: pcsx2/gui/AppConfig.cpp:844
msgid "Balanced"
msgstr "Kiegyensúlyozott"
#: pcsx2/gui/AppConfig.cpp:840
#: pcsx2/gui/AppConfig.cpp:845
msgid "Aggressive"
msgstr "Agresszív"
#: pcsx2/gui/AppConfig.cpp:841
#: pcsx2/gui/AppConfig.cpp:846
msgid "Aggressive plus"
msgstr "Agresszív plusz"
#: pcsx2/gui/AppConfig.cpp:842
#: pcsx2/gui/AppConfig.cpp:847
msgid "Mostly Harmful"
msgstr "Legártalmasabb"
#: pcsx2/gui/AppConfig.cpp:999 pcsx2/gui/AppConfig.cpp:1005
#: pcsx2/gui/AppConfig.cpp:1007 pcsx2/gui/AppConfig.cpp:1013
msgid "Failed to overwrite existing settings file; permission was denied."
msgstr "A meglévő beállítás fájl felülírása sikertelen; hozzáférés megtagadva."
@ -2426,22 +2426,10 @@ msgstr ""
"stb... [Ajánlott]"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:166
msgid "mVU Block Hack"
msgstr "mVU blokk hack"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:167
#, fuzzy
msgid ""
"Good Speedup and High Compatibility; may cause bad graphics, SPS, etc..."
msgstr ""
"Látványos gyorsulás és magas kompatibilitás; grafikai hibákat okozhat, SPS, "
"stb..."
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:169
msgid "MTVU (Multi-Threaded microVU1)"
msgstr ""
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:170
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:167
#, fuzzy
msgid ""
"Good Speedup and High Compatibility; may cause hanging... [Recommended if 3+ "
@ -2450,15 +2438,15 @@ msgstr ""
"Látványos gyorsulás és magas kompatibilitás; grafikai hibákat okozhat, SPS, "
"stb... [Ajánlott]"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:191
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:183
msgid "Other Hacks"
msgstr "Egyéb hackek"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:193
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:185
msgid "Enable INTC Spin Detection"
msgstr "INTC pörgés észlelés használata"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:194
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:186
msgid ""
"Huge speedup for some games, with almost no compatibility side effects. "
"[Recommended]"
@ -2466,22 +2454,22 @@ msgstr ""
"Nagymértékű gyorsulás néhány játék esetében, többnyire nincs kompatibilitási "
"mellékhatás. [Ajánlott]"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:196
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:188
msgid "Enable Wait Loop Detection"
msgstr "Hurok észlelésre várakozás használata"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:197
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:189
msgid ""
"Moderate speedup for some games, with no known side effects. [Recommended]"
msgstr ""
"Enyhe sebesség növekedés néhány játéknál, nincs ismert mellékhatás. "
"[Ajánlott]"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:199
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:191
msgid "Enable fast CDVD"
msgstr "Gyors CDVD használata"
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:200
#: pcsx2/gui/Panels/SpeedhacksPanel.cpp:192
msgid "Fast disc access, less loading times. [Not Recommended]"
msgstr "Gyors lemez hozzáférés, kevesebb betöltési idő. [Nem ajánlott]"
@ -2540,7 +2528,7 @@ msgstr "FPS"
msgid "PAL Framerate:"
msgstr "PAL képfrissítés:"
#: pcsx2/gui/Panels/VideoPanel.cpp:162
#: pcsx2/gui/Panels/VideoPanel.cpp:166
msgid ""
"Error while parsing either NTSC or PAL framerate settings. Settings must be "
"valid floating point numerics."
@ -2548,19 +2536,19 @@ msgstr ""
"Hiba vagy az NTSC vagy PAL képfrissítési beállítások elemzésekor. A "
"beállításoknak érvényes lebegőpontos számoknak kell lenniük."
#: pcsx2/gui/Panels/VideoPanel.cpp:180
#: pcsx2/gui/Panels/VideoPanel.cpp:184
msgid "Disabled [default]"
msgstr "Kikapcsolva [alap]"
#: pcsx2/gui/Panels/VideoPanel.cpp:184
#: pcsx2/gui/Panels/VideoPanel.cpp:188
msgid "Skip when on Turbo only (TAB to enable)"
msgstr "Csak bekapcsolt Turbó esetén (TAB a használathoz)"
#: pcsx2/gui/Panels/VideoPanel.cpp:188
#: pcsx2/gui/Panels/VideoPanel.cpp:192
msgid "Constant skipping"
msgstr "Változatlan kihagyás"
#: pcsx2/gui/Panels/VideoPanel.cpp:190
#: pcsx2/gui/Panels/VideoPanel.cpp:194
msgid ""
"Normal and Turbo limit rates skip frames. Slow motion mode will still "
"disable frameskipping."
@ -2568,19 +2556,19 @@ msgstr ""
"Normál és turbó korlátozza a kihagyandó képkockák számát. A lassított mód "
"is kikapcsolja a képkocka kihagyást."
#: pcsx2/gui/Panels/VideoPanel.cpp:213
#: pcsx2/gui/Panels/VideoPanel.cpp:217
msgid "Frames to Draw"
msgstr "Megjelenítendő képkockák"
#: pcsx2/gui/Panels/VideoPanel.cpp:218
#: pcsx2/gui/Panels/VideoPanel.cpp:222
msgid "Frames to Skip"
msgstr "Kihagyandó képkockák"
#: pcsx2/gui/Panels/VideoPanel.cpp:294
#: pcsx2/gui/Panels/VideoPanel.cpp:298
msgid "Use Synchronized MTGS"
msgstr "Szinkronizált MTGS használata"
#: pcsx2/gui/Panels/VideoPanel.cpp:295
#: pcsx2/gui/Panels/VideoPanel.cpp:299
msgid ""
"For troubleshooting potential bugs in the MTGS only, as it is potentially "
"very slow."
@ -2588,11 +2576,11 @@ msgstr ""
"Lehetséges hibák keresése csupán az MTGS-ben, mivel potenciálisan nagyon "
"lassú."
#: pcsx2/gui/Panels/VideoPanel.cpp:298
#: pcsx2/gui/Panels/VideoPanel.cpp:302
msgid "Disable all GS output"
msgstr "Minden GS kimenet kikapcsolása"
#: pcsx2/gui/Panels/VideoPanel.cpp:299
#: pcsx2/gui/Panels/VideoPanel.cpp:303
msgid ""
"Completely disables all GS plugin activity; ideal for benchmarking EEcore "
"components."
@ -2600,11 +2588,11 @@ msgstr ""
"Teljesen leállít minden GS plugin tevékenységet; ideális az EEcore "
"összetevők tesztelése esetén."
#: pcsx2/gui/Panels/VideoPanel.cpp:316
#: pcsx2/gui/Panels/VideoPanel.cpp:320
msgid "Frame Skipping"
msgstr "Képkocka kihagyás"
#: pcsx2/gui/Panels/VideoPanel.cpp:319
#: pcsx2/gui/Panels/VideoPanel.cpp:323
msgid "Framelimiter"
msgstr "Képkocka korlátozó"
@ -2690,6 +2678,16 @@ msgstr ""
"%s kiterjesztés nem található. A microVU működéséhez szükséges egy MMX, SSE "
"és SSE2 utasításkészletet támogató processzor."
#~ msgid "mVU Block Hack"
#~ msgstr "mVU blokk hack"
#, fuzzy
#~ msgid ""
#~ "Good Speedup and High Compatibility; may cause bad graphics, SPS, etc..."
#~ msgstr ""
#~ "Látványos gyorsulás és magas kompatibilitás; grafikai hibákat okozhat, "
#~ "SPS, stb..."
#~ msgid "ISO mounting failed: PCSX2 is unable to identify the ISO image type."
#~ msgstr ""
#~ "ISO csatolása sikertelen: PCSX2 képtelen azonosítani az ISO képfájl "

Some files were not shown because too many files have changed in this diff Show More