Skip to content

Commit

Permalink
v0.99.8 rev3788 (21 Jan 2019)
Browse files Browse the repository at this point in the history
- Updated Spanish translation (still many thanks to Víctor
  González, Sergi Medina)
- Updated Japanese translation (still using Google translate)
- More thorough searching for content in input files (indexing is
  slower)
- Index format changed, indexes need to be regenerated
- Better description about the difference between saving a File
  item as "normal" vs "raw"
- Default uncompressed video saving quality is now "high"
- Updated manual with lots of useful information
- Generally improved all GUI, command-line and logging messages
- Generally improved error handling
x Remove volume slider from audio saving GUI
Replacing content:
- Can now replace audio used in many Square games
- When modding/replacing content, all changes wait until the end
  before actually being applied
x Remove ability to replace Tim images with a normal image
  Tim images can now only be replaced with another Tim image
x Audio replacing now requires the new audio to be of exact same
  length as the existing audio
Bug fixes:
- Audio filename not being updated when changing selection in the GUI
- Items sorted wrong in some cases
- 0 sized File items had a sector length of -1
- Video disc speed not properly detected when there are multiple
  parallel audio streams
- Opening a file that is too small to be identifiable caused an error
- Video sectors being corrupted when trying to replace AC3 and
  Dredd frames
- save.log file name not localized
- Bad error handling when there were errors in the input file's
  filesystem
- Empty audio packets written to AVI when saving audio streams from
  some Square games
- Other small bug fixes
Internal:
- Added ability to override default logging settings using standard
Java logging features
- New processing pipeline and a massive restructuring of system
  makes it possible to add support for more types of videos
- In progress support for SPU audio and 'VAG' files
- Frame numbering redesign
Known issues:
- Video playback on Linux may still not work right
- Videos with variable frames rates saved as AVI do not play right
  in the default video players found in some Windows versions.
  Use a more reliable player such VLC media player.
  • Loading branch information
m35 committed Jan 21, 2019
1 parent 2b0d7ed commit 5096e0b
Show file tree
Hide file tree
Showing 392 changed files with 73,642 additions and 65,995 deletions.
1 change: 1 addition & 0 deletions jpsxdec/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
_ant/
4 changes: 2 additions & 2 deletions jpsxdec/PlayStation1_STR_format.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1936,7 +1936,7 @@ Most video frames are normal v3 format, but some v2, and some are full of 0xff.
## 3.12. Crusader: No Remorse
################################################################################

Crusader: No Remorse is the only game I've seen that doesn't stream its movies using the standard 'real-time' sector method.
Crusader: No Remorse does not stream its movies using the standard 'real-time' sector method.

:: Crusader Sector ::

Expand Down Expand Up @@ -1966,7 +1966,7 @@ Offset Size Endian --------------------------------------------------------
4 . . . 4 . . big . . Size of the chunk in bytes, including this header
8 . . . 4 . . big . . The number of samples already written to the stream
12 . . 4 . . big . . Always 0x08000200
16 (Size-16) n/a . . Square audio data
16 (Size-16) n/a . . SPU audio data
Size ------------------------------------------------------------------------

Video frames are standard v2.
Expand Down
625 changes: 363 additions & 262 deletions jpsxdec/TODO.txt

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion jpsxdec/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

<!-- ====== global build properties ====== -->

<property name="jpsxdec.ver" value="v0-99-7_rev3397"/>
<property name="jpsxdec.ver" value="v0-99-8_rev3788"/>

<!-- sources -->
<property name="src.dir.rel" location="src" relative="true"/>
Expand Down
41 changes: 40 additions & 1 deletion jpsxdec/doc/CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,42 @@
v0.99.8 rev3788 (21 Jan 2019)
- Updated Spanish translation (still many thanks to V�ctor Gonz�lez, Sergi Medina)
- Updated Japanese translation (still using Google translate)
- More thorough searching for content in input files (indexing is slower)
- Index format changed, indexes need to be regenerated
- Better description about the difference between saving a File item as "normal" vs "raw"
- Default uncompressed video saving quality is now "high"
- Updated manual with lots of useful information
- Generally improved all GUI, command-line and logging messages
- Generally improved error handling
x Remove volume slider from audio saving GUI
Replacing content:
- Can now replace audio used in many Square games
- When modding/replacing content, all changes wait until the end before actually being applied
x Remove ability to replace Tim images with a normal image
Tim images can now only be replaced with another Tim image
x Audio replacing now requires the new audio to be of exact same length as the existing audio
Bug fixes:
- Audio filename not being updated when changing selection in the GUI
- Items sorted wrong in some cases
- 0 sized File items had a sector length of -1
- Video disc speed not properly detected when there are multiple parallel audio streams
- Opening a file that is too small to be identifiable caused an error
- Video sectors being corrupted when trying to replace AC3 and Dredd frames
- save.log file name not localized
- Bad error handling when there were errors in the input file's filesystem
- Empty audio packets written to AVI when saving audio streams from some Square games
- Other small bug fixes
Internal:
- Added ability to override default logging settings using standard Java logging features
- New processing pipeline and a massive restructuring of system makes it
possible to add support for more types of videos
- In progress support for SPU audio and 'VAG' files
- Frame numbering redesign
Known issues:
- Video playback on Linux may still not work right
- Videos with variable frames rates saved as AVI do not play right in the
default video players found in some Windows versions.
Use a more reliable player such VLC media player.
v0.99.7 rev3397 (8 Jan 2017) The "road to v1.0" release
- XA audio can now be replaced using .wav files
- Simplified error messages
Expand Down Expand Up @@ -387,7 +426,7 @@ v0.90.0 rev1038 (18 Jan 2010)
simple_idct from ffmpeg, ported by MrVacBob. Only slightly slower then
the IDCT from Joerg Anders's mpeg player.
Eclipse Jpeg IDCT. Not as fast as the other two.
J2meMpegIDCT is slowest.
J2meMpegIDCT is slowest.
- Broke things up by games
- Abstracted video decoding so uncompressing, MDEC, and IDCT can
be interchanged.
Expand Down
78 changes: 37 additions & 41 deletions jpsxdec/doc/CREDITS.txt
Original file line number Diff line number Diff line change
@@ -1,32 +1,27 @@
CREDITS & THANKS
----------------

The following people either helped make jPSXdec possible, or are just
really cool (usually both):
The following people either helped make jPSXdec possible, or are just
really cool (usually both):

My dad, for everything he did for me (1949-2009).

Mike Melanson and Stuart Caie for adding STR decoding support to xine,
including the documentation in the source.
(http://osdir.com/ml/video.xine.devel/2003-02/msg00179.html)
Also for archiving some example STR files.
(http://osdir.com/ml/video.xine.devel/2003-02/msg00186.html)
Mike Melanson and Stuart Caie for adding STR decoding support to xine,
including the documentation in the source. Also for archiving some example STR
files.

The q-gears development team and forum members for their source code and
documentation (http://forums.qhimm.com/index.php?topic=6473.msg81373).
Their STR decoding source code PSXMDECDecoder.cpp was invaluable
(http://q-gears.svn.sourceforge.net/viewvc/q-gears/branches/old_sources/src/common/movie/decoders/).
Their TIM format documentation is awesome (http://wiki.qhimm.com/PSX/TIM_file)
The q-gears development team and forum members for their source code and
documentation. Their STR decoding source code PSXMDECDecoder.cpp was invaluable.

"Everything You Have Always Wanted to Know about the Playstation But
"Everything You Have Always Wanted to Know about the Playstation But
Were Afraid to Ask." Compiled / edited by Joshua Walker.
A valuable reference for any kind of PSX hacking, especially the PSX assembly
instruction set.
instruction set.

no$psx for his outstanding documentation of the PlayStation guts.
http://problemkaputt.de/psx-spx.htm

smf, developer for MAME, for figuring out that everyone was getting the
smf, developer for MAME, for figuring out that everyone was getting the
order of CrCb wrong.
http://www.twingalaxies.com/showthread.php/140003-M-A-M-E-Mr-Driller-DRI1-VER-A2-1000M-Mode-918-940-Nick-Vis?p=752883&viewfull=1#post752883

Expand All @@ -35,23 +30,22 @@ verifying that jPSXdec is doing things right, and for
pointing how the quantization table is uploaded to the MDEC.

Jonathan Atkins for his open source cdxa code and documentation.
(http://freshmeat.net/projects/cdxa/
http://jcatki.no-ip.org:8080/cdxa/
http://jonatkins.org:8080/cdxa/)
http://freshmeat.net/projects/cdxa/

The PCSX Team, creators of one of the two open source PlayStation emulators.

The MAME emulator team for their efforts to document and accurately
emulate hardware, and for their license (http://mamedev.org/).
emulate hardware, and for their license.
http://mamedev.org/

Developers of the pSX emulator for very nice debugger for reverse
engineering games (http://psxemulator.gazaxian.com/).
Developers of the pSX emulator for the very nice debugger for reverse
engineering games.
http://psxemulator.gazaxian.com/

"Fyiro", the Japanese fellow that wrote the source code for the PsxMC
FF8 plugin.
"Fyiro", the Japanese fellow that wrote the source code for the PsxMC
FF8 plugin.

T_chan for sharing a bit of his knowledge about the FF9 format
(http://www.network54.com/Forum/119865/thread/1196268797).
T_chan for sharing a bit of his knowledge about the FF9 format.

The most excellent folks at IRCNet #lain :D

Expand All @@ -62,7 +56,7 @@ Mezmorize at gshi.org for helping me get an old PlayStation and GameShark
working to make my own RAM dumps.

Jen (a.k.a. punistation) for her (formally) long standing PlayStation Serial
Experiments Lain page (http://www.geocities.com/punistation10/).
Experiments Lain page (rip http://www.geocities.com/punistation10/).

Yoshitoshi ABe et al. for Serial Experiments Lain and other captivating anime.

Expand All @@ -76,38 +70,40 @@ V

The Hitmen for releasing invaluable source code related to PSX hacking.

The countless people who created so many open source tools that I've used
in this project, and in my every day life. It is a huge list.

................................................................................
Thanks to those who wrote code that I've used at some point during development:
Thanks to those who wrote code that I've used or referenced at some point
during development:

Alexander Strange for porting the ffmpeg simple_idct to Java.

Stephen Manley for generously sharing his DCT.java class.
(http://www.nyx.net/~smanley/)
http://www.nyx.net/~smanley/

Bernhard Huber for his very nice javadoc-templates
(http://members.aon.at/bhuber14/
http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=1168)
Bernhard Huber for his very nice javadoc-templates.
http://members.aon.at/bhuber14/

ImageJ for its AVIWriter implementation.

Morten Nobel-Joergensen for the Java Image Scaling Library
(https://github.com/mortennobel/java-image-scaling).
Morten Nobel-Joergensen for the Java Image Scaling Library.
https://github.com/mortennobel/java-image-scaling

Doug Lea for sharing his Fraction.java class.

Sequence Point Software for the J2ME MPEG implementation of the IDCT
(https://bitbucket.org/sequencepoint/j2me_mpeg).
Sequence Point Software for the J2ME MPEG implementation of the IDCT.
https://bitbucket.org/sequencepoint/j2me_mpeg

Eclipse SWT for the Java JPEG implementation of the IDCT.

John E. Lloyd for the handy argparser library
(http://people.cs.ubc.ca/~lloyd/java/argparser.html).
John E. Lloyd for the handy argparser library.
http://people.cs.ubc.ca/~lloyd/java/argparser.html

Joerg Anders for managing to write an mpeg1 decoder in pure Java
(http://vsr.informatik.tu-chemnitz.de/~jan/MPEG/MPEG_Play.html).
Joerg Anders for managing to write an mpeg1 decoder in pure Java.

The JSmooth tool (http://jsmooth.sourceforge.net/).
The launch4j tool (http://launch4j.sourceforge.net/).
The JSmooth tool http://jsmooth.sourceforge.net/
The launch4j tool http://launch4j.sourceforge.net/

PDFJet for their PDF library.

Expand Down
3 changes: 2 additions & 1 deletion jpsxdec/doc/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

jPSXdec: PlayStation 1 Media Decoder/Converter in Java
Copyright (C) 2007-2017 Michael Sabin
Copyright (C) 2007-2019 Michael Sabin
All rights reserved.

jPSXdec is licensed as a whole under this non-commercial license:
Expand Down Expand Up @@ -52,6 +52,7 @@ Some individual components are licensed under compatible licenses:

The jPSXdec translations
Specifically src/jpsxdec/i18n/I.java and Translations*.properties

Copyright Michael Sabin, V�ctor Gonz�lez, Sergi Medina

English and Japanese by Michael Sabin
Expand Down
Binary file modified jpsxdec/doc/jPSXdec-manual.odt
Binary file not shown.
Binary file modified jpsxdec/jpsxdec.exe
Binary file not shown.
2 changes: 1 addition & 1 deletion jpsxdec/src/jpsxdec/LogToConsole.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.formatter=jpsxdec.util.BriefFormatter
java.util.logging.ConsoleHandler.formatter=jpsxdec.i18n.log.DebugFormatter
java.util.logging.ConsoleHandler.level=ALL

#jpsxdec.level=ALL
5 changes: 3 additions & 2 deletions jpsxdec/src/jpsxdec/LogToFile.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@

handlers=java.util.logging.FileHandler
java.util.logging.FileHandler.pattern=debug%g.log
java.util.logging.FileHandler.pattern=debug%u%g.log
java.util.logging.FileHandler.limit=0
java.util.logging.FileHandler.encoding=UTF-8
java.util.logging.FileHandler.formatter=jpsxdec.util.DebugFormatter
java.util.logging.FileHandler.formatter=jpsxdec.i18n.log.DebugFormatter
java.util.logging.FileHandler.count=1
java.util.logging.FileHandler.level=ALL

Expand Down
47 changes: 41 additions & 6 deletions jpsxdec/src/jpsxdec/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* jPSXdec: PlayStation 1 Media Decoder/Converter in Java
* Copyright (C) 2007-2017 Michael Sabin
* Copyright (C) 2007-2019 Michael Sabin
* All rights reserved.
*
* Redistribution and use of the jPSXdec code or any derivative works are
Expand Down Expand Up @@ -37,6 +37,8 @@

package jpsxdec;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.logging.Level;
Expand All @@ -51,12 +53,45 @@ public class Main {

private static final Logger LOG = Logger.getLogger(Main.class.getName());


private static boolean loadLoggerConfigFromSystemProperty() {
String sLogConfigFile = System.getProperty("java.util.logging.config.file");
if (sLogConfigFile == null)
return false;

FileInputStream fis;
try {
fis = new FileInputStream(sLogConfigFile);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
return false;
}

boolean blnSuccess = false;

try {
java.util.logging.LogManager.getLogManager().readConfiguration(fis);
blnSuccess = true;
} catch (Exception ex) {
ex.printStackTrace();
blnSuccess = false;
} finally {
try {
fis.close();
} catch (IOException ex1) {
ex1.printStackTrace();
blnSuccess = false;
}
}
return blnSuccess;
}

public static void loadDefaultLogger() {
loadLogger(Main.class, "LogToFile.properties");
loadLoggerConfigResource(Main.class, "LogToFile.properties");
}

public static void loadLogger(@Nonnull Class referenceClass,
@Nonnull String sLogFileResource)
public static void loadLoggerConfigResource(@Nonnull Class referenceClass,
@Nonnull String sLogFileResource)
{
InputStream is = referenceClass.getResourceAsStream(sLogFileResource);
if (is != null) {
Expand All @@ -72,8 +107,8 @@ public static void loadLogger(@Nonnull Class referenceClass,

/** Main entry point to the jPSXdec program. */
public static void main(final String[] asArgs) {

loadDefaultLogger();
if (!loadLoggerConfigFromSystemProperty())
loadDefaultLogger();

ArgParser ap = new ArgParser(asArgs);

Expand Down
4 changes: 2 additions & 2 deletions jpsxdec/src/jpsxdec/Version.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* jPSXdec: PlayStation 1 Media Decoder/Converter in Java
* Copyright (C) 2013-2017 Michael Sabin
* Copyright (C) 2013-2019 Michael Sabin
* All rights reserved.
*
* Redistribution and use of the jPSXdec code or any derivative works are
Expand Down Expand Up @@ -39,7 +39,7 @@

public class Version {

public final static String Version = "0.99.7 (beta)";
public final static String Version = "0.99.8 (beta)";
public final static String IndexHeader = "[jPSXdec v"+Version+"]";

}
Loading

1 comment on commit 5096e0b

@gingerbeardman
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the continued work on this!

Please sign in to comment.