scene.org File Archive

File download

<root>­/­resources­/­tools­/­snes/ips_patcher_13.lha

File size:
5 343 bytes (5.22K)
File date:
2021-10-29 05:45:02
Download count:
all-time: 586

Preview

  • patch 5.27K
  • patch.doc 4.64K
  • Patch.info 386B

file_id.diz

                              IPS PATCHER v1.3         

                               (9 August 1993)

                                Amiga version

                          Coding by ARaGoRN/ViSION



What??
~~~~~~
This program will patch a file (most often a console game). It does this by
reading a file in IPS or IPS2 format. You can also create an IPS(2) patchfile.

When you start the program a window will open with 3 gadgets in it:

 PATCH GAME FILE
 ~~~~~~~~~~~~~~~
   Use this to patch a game. You are asked to select 2 files. The first
   file is the game file which is to be patched, the second file is the
   patcher file.

 CREATE PATCH FILE
 ~~~~~~~~~~~~~~~~~
   Use this to create a patch file. You are askes to select 3 files:
   The first file is the original, not patched file, the second file is
   the patched game file and the third file is the patch file you want 
   to create

 QUIT
 ~~~~
   Guess what? This quits the program... 


Note: This program needs the reqtools.library! Make sure it is installed
~~~~~ in your libs: directory.


Bugs!?
~~~~~~
If you find one, please report it to me (Aragorn/Vision) at 
Terminal Zone, +31-73-130138


Credits to the deserving
~~~~~~~~~~~~~~~~~~~~~~~~
IPS format was originaly designed by DAX. He also wrote the first PC version.
MCA/Elitendo wrote the first ATARI version. ARaGoRN/ViSION wrote the first
Amiga version. The idea for the IPS2 format was by EMPiRE/Mystic, the
implementation is done by ARaGoRN/ViSION.

Beta-testing of this version is done by EMPiRE/Mystic. Thanx dude!!


IPS File format
~~~~~~~~~~~~~~~

"PATCH"        ;5 ascii bytes for id purpose.

Then, as often as needed:

$123456        ;3 binary bytes: 24 bit address calculated from start.
$3456          ;2 binary bytes: number of bytes to copy/replace (range 1-FFFF)
$AABBCCDDEE... ;these are the replacement bytes ($3456 bytes in total)

or

$123456        ;address as above
$0000          ;size 0 is a special case: Block fill
$3456          ;number of repeating bytes (range 1-FFFF)
$AA            ;This byte is repeated $3456 times (RLE encoding)

And at the end of the file:

"EOF"          ;3 ascii bytes end-of-file.


IPS2 File format
~~~~~~~~~~~~~~~~
Upto the "EOF" code it is the same as the original IPS format, but for the
IPS2 format it is possible that there are 3 extra bytes AFTER the "EOF" code.
These bytes are the size of the destination file. So this way we can shrink
files! This extra size should only be included when the original file size
is larger than the size of the output file. Because "older" IPS patchers
will stop at the "EOF" code (or at least they should) this IPS2 format
is fully backwards compatible to the IPS format.


History
~~~~~~~
v1.0:
-Original release.

v1.1:

-A little imcompatibilty between the PC and AMIGA version caused the
 file length of the patched file to be wrong. Somebody changed the patcher
 specs and the PC version did not write an end marker and the AMIGA version
 did expect one, so it gave an error and the last couple of bytes of the
 patch were not copied. Fixed now. (Thanx to Papillon for telling me about
 this problem)

v1.2:

-Fixed the filesize problem with patches created with this amiga version.
 Also changed the *.IPS into #?.IPS

v1.21:

-Damn, I forgot to take out some debug code that would cause a guru when
 the patcher is started from wb...  Fixed now.

v1.3:

-Rewrote the complete patch creator code, now it should work.
 If it doesn't: LET ME KNOW! I can't fix bugs if nobody tells me about them!
 (Not just: "It doesn't work!", but give me some example where the patcher
  fucks up)

-Added IPS2 format (File shrinking)

-Added keyboard control.


-============================================================================-
             ____   ____   ____   __ __   __   ____   ____   ___
           _/ . ¬\_/  _¬\_/   ¬\_/  V ¬\_/ ¬\_/  .¬\_/  .¬\_/  /__
           \_ |   \_ ___/\_  .  \_  ·   \_   \_  |  \_  |  \_  V ¬\
          /   |    \_V    \_ |   \       \_   \_ |   \_ .   \_ ·   \_
          \___|     V·     V |___/ _ _    V    V |    V |    V      V.
   .. . ..::A_______A______A___A____V_____A____A_|____A_|____A______A::.. . ..
          ·:::+9¹¹+::·· ·______   ____   ____   ____    · ··::::::::::·
                         \____¬\_/  .¬\_/  .¬\_/  _¬\
         zONE wARDEN:    / ____/\_  |  \_  |  \_ ___/\  sNES/gENESiS/gAMEGEAR
        aRAGORN/viSiON _/  V     \_ |   \_ |   \_V    \_ gAMEBOY/sNES-cODiNG
        ==============.V   ·      V ·    V |    V·     V.===================
           ..   .. ..::A__________A______A_|____A______A::.. ..    ..
                     ·::::::::::·· ·   ·   · ··::::::::::·

-============================================================================-