Skip to content

Commit

Permalink
v0.91.0 rev1155 (13 Feb 2010)
Browse files Browse the repository at this point in the history
- Fixed yuv (Yuv4mpeg2) saving (pixel order was wrong)
- Added saving as AVI in YUV format (specifically YV12 codec)
  for the highest quality output
- Added -preciseav option
- Fixed player from ending movies too quickly
- Improved handling of multiple parallel video + audio streams
- Properly syncs audio and video
- Now handles Chrono Cross ending movie
- Index files slightly updated, so likely incompatable with 0.90.0 versions
- Fixed audio -vol option
- Fixed video -jpg option
- Fixed video -frames option
Internals:
- Began adding api for letting index file specify disc file
- Added ant build script
- Moves lgpl code into separate source folder
- Added ArgParser source to the repo (for simplicity)
- Softened movie detection logic
- Several optimizations, including
    - Added object pool to player design
- Cleaning and simplification where possible
    - Audio and video saving pipeline almost completely rewritten
    - Simplified the player design
    - Modularized AVI writer design
- Fixed various bugs (frame rate calculation in some cases, NPEs, etc.)
Known Problems:
- Frame rate detection is still pretty bad
- Audio + Video player on Linux might be choppy
- Gives way too many errors when encountering CD audio track
- Not all command-line options are working, and many haven't been well tested
- 'psx' video decoder quality is not verified
  • Loading branch information
m35 committed Feb 13, 2010
1 parent 590db33 commit a0e481b
Show file tree
Hide file tree
Showing 115 changed files with 7,765 additions and 3,239 deletions.
32 changes: 32 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
v0.91.0 rev1155 (13 Feb 2010)
- Fixed yuv (Yuv4mpeg2) saving (pixel order was wrong)
- Added saving as AVI in YUV format (specifically YV12 codec)
for the highest quality output
- Added -preciseav option
- Fixed player from ending movies too quickly
- Improved handling of multiple parallel video + audio streams
- Properly syncs audio and video
- Now handles Chrono Cross ending movie
- Index files slightly updated, so likely incompatable with 0.90.0 versions
- Fixed audio -vol option
- Fixed video -jpg option
- Fixed video -frames option
Internals:
- Began adding api for letting index file specify disc file
- Added ant build script
- Moves lgpl code into separate source folder
- Added ArgParser source to the repo (for simplicity)
- Softened movie detection logic
- Several optimizations, including
- Added object pool to player design
- Cleaning and simplification where possible
- Audio and video saving pipeline almost completely rewritten
- Simplified the player design
- Modularized AVI writer design
- Fixed various bugs (frame rate calculation in some cases, NPEs, etc.)
Known Problems:
- Frame rate detection is still pretty bad
- Audio + Video player on Linux might be choppy
- Gives way too many errors when encountering CD audio track
- Not all command-line options are working, and many haven't been well tested
- 'psx' video decoder quality is not verified
v0.90.0 (18 Jan 2010)
- LICENSE CHANGED TO NON-COMMERCIAL USE ONLY
- Added a very basic real-time player
Expand Down
3 changes: 1 addition & 2 deletions CREDITS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ Their STR decoding source code PSXMDECDecoder.cpp was invaluable
Were Afraid to Ask."
Compiled / edited by Joshua Walker.
Perhaps the most valuable reference for any kind of PSX hacking,
especially the PSX assembly instruction set (note that it has CrCb
reversal error mentioned in ch 2.2).
especially the PSX assembly instruction set.

smf, developer for MAME, for figuring out that everyone was getting the
order of CrCb wrong (http://smf.mameworld.info/?m=200603).
Expand Down
45 changes: 31 additions & 14 deletions LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,32 +47,49 @@ under a MIT license.
A few individual components are licensed under compatible licenses.


jpsxdec/plugins/psx/video/mdec/idct/simple_idct.java
copyright (c) Michael Niedermayer
Originally from ffmpeg (ported by Alexander Strange) and is licensed under
the GNU Lesser General Public License Version 2.1.
The text of this license is contained in the file lgpl-2.1.txt
## Note that this file must be included in a separate .jar with ##
## binary distributions of jPSXdec so as not to violate the LGPL. ##

jpsxdec/plugins/psx/video/mdec/idct/StephensIDCT.java
Originally came from code written by Stephen Manley.
He generously offers his code free, without restriction.
Originally from code written by Stephen Manley.
http://www.nyx.net/~smanley/
He generously offers his code free, without restriction.

jpsxdec/plugins/psx/video/mdec/idct/J2meMpegIDCT.java
Copyright (c) 2009 Sequence Point Software S.L.
Originally part of Sequence Point Software's J2ME_MPEG.
http://code.seqpoint.com/j2me_mpeg/
Licensed under the Eclipse Public License v1.0
The text of this license is contained in the file EPLv1.html

jpsxdec/plugins/psx/video/mdec/idct/J2meMpegIDCT.java
jpsxdec/plugins/psx/video/mdec/idct/EclipseJpegIDCT.java
Copyright (c) 2000, 2005 IBM Corporation and others.
Originally part of the Eclipse Standard Widget Toolkit (SWT)
http://www.eclipse.org/swt/
Licensed under the Eclipse Public License v1.0
The text of this license is contained in the file EPLv1.html

argparser.zip is Copyright John E. Lloyd, 2004.
See argparser.zip COPYRIGHT file for details.
argparser/*.*
From the argparser library.
http://people.cs.ubc.ca/~lloyd/java/argparser.html
* Copyright John E. Lloyd, 2004. All rights reserved. Permission to use,
* copy, modify and redistribute is granted, provided that this copyright
* notice is retained and the author is given credit whenever appropriate.
*
* This software is distributed "as is", without any warranty, including
* any implied warranty of merchantability or fitness for a particular
* use. The author assumes no responsibility for, and shall not be liable
* for, any special, indirect, or consequential damages, or any damages
* whatsoever, arising out of or in connection with the use of this
* software.

jpsxdec/util/Fraction.java
Originally written by Doug Lea and released into the public domain.
Originally written by Doug Lea and released into the public domain.

###################################################################

## The following files must be included in a separate .jar with ##
## binary distributions of jPSXdec so as not to violate the LGPL. ##

jpsxdec/plugins/psx/video/mdec/idct/simple_idct.java
Copyright (c) Michael Niedermayer
Originally from ffmpeg (ported by Alexander Strange)
Licensed under the GNU Lesser General Public License Version 2.1.
The text of this license is contained in the file lgpl-2.1.txt
16 changes: 8 additions & 8 deletions PlayStation1_STR_format.txt
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ Offest Size Endian --------------------------------------------------------
Size of data (in bytes) following this header?
22 . . . 2 . . little . Always 0x3800
24 . . . 2 . . little . Frame's quantization scale
28 . . . 2 . . little . Version of the video frame
26 . . . 2 . . little . Version of the video frame
(see next section for details)
28 . . . 2 . . little . Always 0x00000000
32 ---------------------------------------------------------------------------
Expand Down Expand Up @@ -993,7 +993,7 @@ IDCT_table = [ 0.354 -0.354 -0.354 0.354 0.354 -0.354 -0.354 0.354 ]

IDCT_table * Deqantizized_Matrix * IDCT_table^transposed

Like the de-quantization table, the IDCT matrix is programmable, but (nearly?) all games use the same table (game initializes it when starting):
Like the quantization table, the IDCT matrix is programmable, but (nearly?) all games use the same table (game initializes it when starting):

[ 23170 23170 23170 23170 23170 23170 23170 23170 ]
[ 32138 27245 18204 6392 -6393 -18205 -27246 -32139 ]
Expand Down Expand Up @@ -1127,7 +1127,7 @@ Offest Size Endian --------------------------------------------------------
20 . . . 2 . . little . Unknown
22 . . . 2 . . little . Unknown
24 . . . 2 . . little . Unknown
28 . . . 2 . . little . Unknown
26 . . . 2 . . little . Unknown
28 . . . 2 . . little . Always 0x00000000
32 ---------------------------------------------------------------------------

Expand Down Expand Up @@ -1567,12 +1567,12 @@ Offest Size Endian --------------------------------------------------------
(including header)?
16 . . . 2 . . little . Width of frame in pixels
18 . . . 2 . . little . Height of frame in pixels
20 . . . 1 . . n/a . . quantization scale for luminance blocks
21 . . . 1 . . n/a . . quantization scale for chrominance blocks
22 . . . 2 . . little . All but the last movie: always 0x3800
The last movie: frame number (again)
20 . . . 1 . . n/a . . quantization scale for luminance blocks (one movie has 0)
21 . . . 1 . . n/a . . quantization scale for chrominance blocks (one movie has 0)
22 . . . 2 . . little . Almost always 0x3800. One movie has 0x0000,
and the last movie has the frame number (again)
24 . . . 2 . . little . Number of run length codes in the frame
28 . . . 2 . . little . Version of the video frame: always 0
26 . . . 2 . . little . Version of the video frame: always 0
28 . . . 4 . . little . Always 0x00000000
32 ---------------------------------------------------------------------------

Expand Down
Loading

0 comments on commit a0e481b

Please sign in to comment.