Best ROM hacks here

Discuss here anything related to ECC, emulators, ect!
User avatar
ECC
ECC Founder & Developer 2005-2009
Posts: 3680
Joined: 28 Aug 2006, 11:58
Location: Hamburg, Germany
Contact:

Best ROM hacks here

Unread post by ECC » 10 Jun 2008, 19:43

Ok, i want to try to test the Ninja tool to patch roms.

Maybe you can post the rom hacks, you like the most....

Ninja supports these platforms:

"nes", "fds", "snes", "n64", "gb", "sms", "mega", "pce", "lynx"
ECC Developer 2005-2009
http://www.camya.com/ecc/
contact: ecc@camya.com

User avatar
Phoenix
ECC Developer 2006-2016
Posts: 9059
Joined: 27 Aug 2006, 01:17
Location: Deventer, The Netherlands
Contact:

Re: Best ROM hacks here

Unread post by Phoenix » 10 Jun 2008, 19:46

Great...can we also test it??

Here are some hacks with discription added, so you can test it out!

NES hacks: http://www.zophar.net/hacks/nes.html
SNES hacks: http://www.zophar.net/hacks/snes.html
Sebastiaan Ebeltjes | ECC Developer 2006-2016 | ECC Forum Admin | Phoenix Interactive WebMaster
[- ECC programs -]
eccUpdate, eccScriptSystem, GtkThemeSelect, DatFileUpdater (DFU), ImagePackCenter (IPC), eccDiagnostics, 3dGallery, iccImageInject
eccKameleonCode, eccCreateStartmenuShotcut, eccThirdPartyConfig (TPC), EmuMoviesDownloader (EMD), eccVideoPlayer
MobyGamesImporter (MGI), ECC Amiga GetGemusConfig.

User avatar
ECC
ECC Founder & Developer 2005-2009
Posts: 3680
Joined: 28 Aug 2006, 11:58
Location: Hamburg, Germany
Contact:

Re: Best ROM hacks here

Unread post by ECC » 10 Jun 2008, 20:07

First game patched successfully! Batman to Batman MCB (see http://www.zophar.net/hacks/nes.html)

Contains the IPS file the crc32 checksum of the needed game?
ECC Developer 2005-2009
http://www.camya.com/ecc/
contact: ecc@camya.com

User avatar
Phoenix
ECC Developer 2006-2016
Posts: 9059
Joined: 27 Aug 2006, 01:17
Location: Deventer, The Netherlands
Contact:

Re: Best ROM hacks here

Unread post by Phoenix » 10 Jun 2008, 20:10

ECC wrote:First game patched successfully! Batman to Batman MCB (see http://www.zophar.net/hacks/nes.html)

Contains the IPS file the crc32 checksum of the needed game?
I don't know, i think you have to rescan it for the CRC32 hash ;)
Sebastiaan Ebeltjes | ECC Developer 2006-2016 | ECC Forum Admin | Phoenix Interactive WebMaster
[- ECC programs -]
eccUpdate, eccScriptSystem, GtkThemeSelect, DatFileUpdater (DFU), ImagePackCenter (IPC), eccDiagnostics, 3dGallery, iccImageInject
eccKameleonCode, eccCreateStartmenuShotcut, eccThirdPartyConfig (TPC), EmuMoviesDownloader (EMD), eccVideoPlayer
MobyGamesImporter (MGI), ECC Amiga GetGemusConfig.

User avatar
ECC
ECC Founder & Developer 2005-2009
Posts: 3680
Joined: 28 Aug 2006, 11:58
Location: Hamburg, Germany
Contact:

Re: Best ROM hacks here

Unread post by ECC » 10 Jun 2008, 20:24

If the crc32 is parsable from the ips file, you can simply select the patch and ecc search for the rom in the database, if found, its patched, if not "Error: you dont have the rom with the crc32 AABBCCDD"

That could be a really cool feature!
ECC Developer 2005-2009
http://www.camya.com/ecc/
contact: ecc@camya.com

User avatar
Phoenix
ECC Developer 2006-2016
Posts: 9059
Joined: 27 Aug 2006, 01:17
Location: Deventer, The Netherlands
Contact:

Re: Best ROM hacks here

Unread post by Phoenix » 10 Jun 2008, 20:38

Yes it would be great!, can you study on 'ninja ips patcher'?...,maybe there is a php function inside to check the CRC32... :rolleyes:

MSX IPS Patch Archive: http://ips.tni.nl/
Sebastiaan Ebeltjes | ECC Developer 2006-2016 | ECC Forum Admin | Phoenix Interactive WebMaster
[- ECC programs -]
eccUpdate, eccScriptSystem, GtkThemeSelect, DatFileUpdater (DFU), ImagePackCenter (IPC), eccDiagnostics, 3dGallery, iccImageInject
eccKameleonCode, eccCreateStartmenuShotcut, eccThirdPartyConfig (TPC), EmuMoviesDownloader (EMD), eccVideoPlayer
MobyGamesImporter (MGI), ECC Amiga GetGemusConfig.

User avatar
Phoenix
ECC Developer 2006-2016
Posts: 9059
Joined: 27 Aug 2006, 01:17
Location: Deventer, The Netherlands
Contact:

Re: Best ROM hacks here

Unread post by Phoenix » 10 Jun 2008, 20:41

IPS has some limitations, as you can read here: http://ninja.cinnamonpirate.com/#docs
However, IPS has some severe limitations:

IPS patches end when they read "EOF". If you ever changed a byte at 0x454f46 and not at 0x454f45, the resulting patch would break.
Not all IPS patch creators include EOF at the end of their file which makes erroneous patches that break on many tools.
The IPS format has no version byte, which is very bad since it was updated several times to add run-length encoding (RLE) and later on, a "cut" command to truncate resulting files.
The IPS format's maximum address mode is 24-bits, making IPS files unable to patch files over 16MB in size.
The IPS format's maximum address mode is 24-bits, making IPS files unable to patch files over 16MB in size.

@Andreas,
Can there be a message box for this, when filesize exceeds 16MB?
Sebastiaan Ebeltjes | ECC Developer 2006-2016 | ECC Forum Admin | Phoenix Interactive WebMaster
[- ECC programs -]
eccUpdate, eccScriptSystem, GtkThemeSelect, DatFileUpdater (DFU), ImagePackCenter (IPC), eccDiagnostics, 3dGallery, iccImageInject
eccKameleonCode, eccCreateStartmenuShotcut, eccThirdPartyConfig (TPC), EmuMoviesDownloader (EMD), eccVideoPlayer
MobyGamesImporter (MGI), ECC Amiga GetGemusConfig.

User avatar
Phoenix
ECC Developer 2006-2016
Posts: 9059
Joined: 27 Aug 2006, 01:17
Location: Deventer, The Netherlands
Contact:

Re: Best ROM hacks here

Unread post by Phoenix » 10 Jun 2008, 20:43

The above idea is only for IPS files!, the PPF (PlayStation Patch Format) files are ok!
As translations branched onto newer and larger systems, PlayStation Patch Format (PPF) was developed to allow patching files up to 32-bit, and later 64-bit. Though the size issue has been solved for now, there are other problems specific to ROM translation.
Sebastiaan Ebeltjes | ECC Developer 2006-2016 | ECC Forum Admin | Phoenix Interactive WebMaster
[- ECC programs -]
eccUpdate, eccScriptSystem, GtkThemeSelect, DatFileUpdater (DFU), ImagePackCenter (IPC), eccDiagnostics, 3dGallery, iccImageInject
eccKameleonCode, eccCreateStartmenuShotcut, eccThirdPartyConfig (TPC), EmuMoviesDownloader (EMD), eccVideoPlayer
MobyGamesImporter (MGI), ECC Amiga GetGemusConfig.

User avatar
Phoenix
ECC Developer 2006-2016
Posts: 9059
Joined: 27 Aug 2006, 01:17
Location: Deventer, The Netherlands
Contact:

Re: Best ROM hacks here

Unread post by Phoenix » 10 Jun 2008, 20:47

FILE FORMAT

NINJA 2.0 follows a much simpler file format than its predecessor. Each
patch consists of 3 regions: HEADER, INFO and DATA. HEADER and INFO make
up the first sector of the patch (1024 bytes).

@HEADER@
{
NINJA_MAGIC - string "NINJA" (5 bytes)
NINJA_VER - char "2" (1 byte )
}

@INFO@
{
PATCH_ENC - int ENC ( 1 byte ) // Info text encoding
// 0: System codepage / 1: UTF-8
PATCH_AUTH - string AUTH ( 84 bytes) // Author
PATCH_VER - string VER ( 11 bytes) // Version
PATCH_TITLE - string TITLE ( 256 bytes) // Title
PATCH_GENRE - string GENRE ( 48 bytes) // Genre
PATCH_LANG - string LANG ( 48 bytes) // Language
PATCH_DATE - string DATE ( 8 bytes) // Date as YYYYMMDD
PATCH_WEB - string WEB ( 512 bytes) // Website
PATCH_DESC - string DESC (1074 bytes) // Info (New line marked by "\n")
}

@DATA@
{
COMMAND - int COMMAND ( 1 byte )

if COMMAND == 0x1 // Open File|Close Current
{
FILE_N_MUL - int N_MUL ( 1 byte ) // 0 Signals single-file
FILE_N_LEN - int N_LEN ( N_MUL bytes) // Length of file name
FILE_NAME - string NAME ( N_LEN bytes) // File name
FILE_TYPE - int TYPE ( 1 byte ) // File format
FILE_SSIZE_MUL- int SSIZE_MUL ( 1 byte )
FILE_SSIZE - int SIZE (SSIZE_MUL bytes) // Source file size
FILE_MSIZE_MUL- int MSIZE_MUL ( 1 byte )
FILE_MSIZE - int MIZE (MSIZE_MUL bytes) // Modified file size
FILE_SMD5 - string SMD5 ( 16 bytes) // Source MD5sum
FILE_MMD5 - string MMD5 ( 16 bytes) // Modified MD5sum

if SSIZE > MSIZE
{
FILE_MAGIC - char "M" ( 1 byte ) // Source overflow
FILE_OVER_MUL- int OVER_MUL ( 1 byte )
FILE_OVER - int OVER (OVER_MUL bytes) // Overflow length
FILE_OVERFLOW- string OVERFLOW ( OVER bytes) // Lost from modified
}

else if MSIZE > SSIZE
{
FILE_MAGIC - char "A" ( 1 byte ) // Modified overflow
FILE_OVER_MUL- int OVER_MUL ( 1 byte )
FILE_OVER - int OVER (OVER_MUL bytes) // Overflow length
FILE_OVERFLOW- string OVERFLOW ( OVER bytes) // Gained in modified
}
}

else if COMMAND == 02 // XOR Patch
{
PATCH_OFF_MUL- int OFF_MUL ( 1 byte )
PATCH_OFF - int OFF (OFF_MUL bytes) // Patch offset
PATCH_LEN_MUL- int LEN_MUL ( 1 byte )
PATCH_LEN - int LEN (LEN_MUL bytes) // Patch length
PATCH_XOR - string XOR ( LEN bytes) // XOR string
}

else if COMMAND == 0x0
// Terminate patch
}

------------------------------------------------------------------------------
It seems there is a source & modified checksum command somewhere...
FILE_SMD5 - string SMD5 ( 16 bytes) // Source MD5sum
FILE_MMD5 - string MMD5 ( 16 bytes) // Modified MD5sum
Sebastiaan Ebeltjes | ECC Developer 2006-2016 | ECC Forum Admin | Phoenix Interactive WebMaster
[- ECC programs -]
eccUpdate, eccScriptSystem, GtkThemeSelect, DatFileUpdater (DFU), ImagePackCenter (IPC), eccDiagnostics, 3dGallery, iccImageInject
eccKameleonCode, eccCreateStartmenuShotcut, eccThirdPartyConfig (TPC), EmuMoviesDownloader (EMD), eccVideoPlayer
MobyGamesImporter (MGI), ECC Amiga GetGemusConfig.

User avatar
Phoenix
ECC Developer 2006-2016
Posts: 9059
Joined: 27 Aug 2006, 01:17
Location: Deventer, The Netherlands
Contact:

Re: Best ROM hacks here

Unread post by Phoenix » 10 Jun 2008, 20:53

@Andreas,

In the full win32 of the 'ninja' package, there is also a file called 'patchinfo.php' maybe we can use it to view the patch info's, that would be great!
Attachments
patchinfo.zip
(1.3 KiB) Downloaded 39 times
Sebastiaan Ebeltjes | ECC Developer 2006-2016 | ECC Forum Admin | Phoenix Interactive WebMaster
[- ECC programs -]
eccUpdate, eccScriptSystem, GtkThemeSelect, DatFileUpdater (DFU), ImagePackCenter (IPC), eccDiagnostics, 3dGallery, iccImageInject
eccKameleonCode, eccCreateStartmenuShotcut, eccThirdPartyConfig (TPC), EmuMoviesDownloader (EMD), eccVideoPlayer
MobyGamesImporter (MGI), ECC Amiga GetGemusConfig.

Locked

Who is online

Users browsing this forum: No registered users and 4 guests