mirror of
https://github.com/marcrobledo/RomPatcher.js.git
synced 2025-06-27 16:25:54 +00:00
version 3.0
This commit is contained in:
parent
20a97ae39f
commit
f7014075ec
86 changed files with 7587 additions and 238 deletions
318
index.html
318
index.html
|
@ -7,14 +7,14 @@
|
|||
<meta name="keywords" content="ips,ups,aps,bps,rup,ninja,ppf,xdelta,patcher,online,html5,web,rom,patch,hack,translation"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
|
||||
<link rel="manifest" href="./manifest.json"/>
|
||||
<link rel="shortcut icon" href="./style/app_icon_16.png" type="image/png" sizes="16x16"/>
|
||||
<link rel="shortcut icon" href="./style/app_icon_192.png" type="image/png" sizes="192x192"/>
|
||||
<link rel="shortcut icon" href="./webapp/app_icon_16.png" type="image/png" sizes="16x16"/>
|
||||
<link rel="shortcut icon" href="./webapp/app_icon_192.png" type="image/png" sizes="192x192"/>
|
||||
<!-- iOS icons -->
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="./style/app_icon_114.png" />
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="./style/app_icon_114.png" />
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="./style/app_icon_144.png" />
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="./style/app_icon_144.png" />
|
||||
<link rel="apple-touch-icon" href="./style/app_icon_192.png" />
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="./webapp/app_icon_114.png" />
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="./webapp/app_icon_114.png" />
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="./webapp/app_icon_144.png" />
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="./webapp/app_icon_144.png" />
|
||||
<link rel="apple-touch-icon" href="./webapp/app_icon_192.png" />
|
||||
|
||||
<!-- cache -->
|
||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
||||
|
@ -28,147 +28,132 @@
|
|||
<meta property="og:title" content="Rom Patcher JS">
|
||||
<meta name="twitter:title" content="Rom Patcher JS">
|
||||
<meta name="twitter:description" content="An online web-based ROM patcher. Supported formats: IPS, BPS, UPS, APS, RUP, PPF and xdelta.">
|
||||
<meta property="og:image" content="https://www.marcrobledo.com/RomPatcher.js/style/thumbnail.jpg">
|
||||
<meta name="twitter:image" content="https://www.marcrobledo.com/RomPatcher.js/style/thumbnail.jpg">
|
||||
<meta property="og:image" content="https://www.marcrobledo.com/RomPatcher.js/card_thumbnail.jpg">
|
||||
<meta name="twitter:image" content="https://www.marcrobledo.com/RomPatcher.js/card_thumbnail.jpg">
|
||||
<meta name="twitter:card" content="photo">
|
||||
|
||||
<link type="text/css" rel="stylesheet" href="./style/RomPatcher.css" media="all"/>
|
||||
<script type="text/javascript" src="./js/locale.js"></script>
|
||||
<script type="text/javascript" src="./js/RomPatcher.js"></script>
|
||||
<script type="text/javascript" src="./js/MarcFile.js"></script>
|
||||
<script type="text/javascript" src="./js/crc.js"></script>
|
||||
<script type="text/javascript" src="./js/formats/zip.js"></script>
|
||||
<script type="text/javascript" src="./js/formats/ips.js"></script>
|
||||
<script type="text/javascript" src="./js/formats/ups.js"></script>
|
||||
<script type="text/javascript" src="./js/formats/aps_n64.js"></script>
|
||||
<script type="text/javascript" src="./js/formats/aps_gba.js"></script>
|
||||
<script type="text/javascript" src="./js/formats/bps.js"></script>
|
||||
<script type="text/javascript" src="./js/formats/rup.js"></script>
|
||||
<script type="text/javascript" src="./js/formats/ppf.js"></script>
|
||||
<script type="text/javascript" src="./js/formats/pmsr.js"></script>
|
||||
<script type="text/javascript" src="./js/formats/vcdiff.js"></script>
|
||||
<link type="text/css" rel="stylesheet" href="./webapp/style.css" media="all"/>
|
||||
|
||||
<script type="text/javascript" src="./js/zip.js/zip.js"></script>
|
||||
<!-- <script type="text/javascript" src="js/libunrar/rpc.js"></script> -->
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
// CUSTOM PATCHER EXAMPLE
|
||||
// uncomment this to build your own custom exclusive patcher for your hacks/translations
|
||||
// user will only need to provide the ROM file, as patches will be fetched from your server!
|
||||
// a crc (or various crcs) can be provided for source files, allowing old formats like IPS to have validation!
|
||||
/*var CUSTOM_PATCHER=[
|
||||
{ //example: uncompressed file
|
||||
file:'./_example/SML2DXv181.ips',
|
||||
name:'Super Mario Land 2 DX v1.8.1 (USA/Europe)',
|
||||
crc:0xd5ec24e4
|
||||
},{ //example: uncompressed file
|
||||
file:'./_example/SML2DXv181_jap.ips',
|
||||
name:'Super Mario Land 2 DX v1.8.1 (Japan)',
|
||||
crc:0xa715daf5
|
||||
},{ //example: compressed file
|
||||
file:'./_example/SML2DXv181.zip',
|
||||
name:'Super Mario Land 2 DX v1.8.1 (World)',
|
||||
crc:[0xd5ec24e4,0xa715daf5]
|
||||
},{ //example: compressed file containing several patches, separate patches provided (recommended)
|
||||
file:'./_example/SML2DXv181.zip',
|
||||
patches:[{
|
||||
file:'SML2DXv181.ips',
|
||||
name:'Super Mario Land 2 DX v1.8.1 (USA/Europe)',
|
||||
crc:0xd5ec24e4
|
||||
},{
|
||||
file:'SML2DXv181_jap.ips',
|
||||
name:'Super Mario Land 2 DX v1.8.1 (Japan)',
|
||||
crc:0xa715daf5
|
||||
}]
|
||||
}
|
||||
];*/
|
||||
--></script>
|
||||
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/BinFile.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/HashCalculator.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/RomPatcher.format.ips.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/RomPatcher.format.ups.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/RomPatcher.format.aps_n64.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/RomPatcher.format.aps_gba.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/RomPatcher.format.bps.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/RomPatcher.format.rup.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/RomPatcher.format.ppf.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/RomPatcher.format.pmsr.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/RomPatcher.format.vcdiff.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/modules/zip.js/zip.min.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/RomPatcher.js"></script>
|
||||
<script type="text/javascript" src="./rom-patcher-js/RomPatcher.webapp.js"></script>
|
||||
<script type="text/javascript" src="./webapp/webapp.js"></script>
|
||||
</head>
|
||||
<body><div id="column">
|
||||
|
||||
|
||||
<!-- HEADER -->
|
||||
<header><img src="./style/logo.png" /><h1>Rom Patcher JS</h1></header>
|
||||
<header><img src="./webapp/logo.png" loading="lazy" /><h1>Rom Patcher JS</h1></header>
|
||||
|
||||
<!-- APP -->
|
||||
<div id="wrapper">
|
||||
<div id="switch-container"><span id="switch-create-button" class="button-outer"><span data-localize="creator_mode">Creator mode</span> <span id="switch-create" class="switch disabled"></span></span></div>
|
||||
<div id="switch-container"><span id="switch-create-button" class="btn-transparent"><span data-localize="yes">Creator mode</span> <span id="switch-create" class="switch disabled"></span></span></div>
|
||||
|
||||
<div id="tab0" class="tab">
|
||||
<div class="row m-b">
|
||||
<div class="leftcol text-right"><label for="input-file-rom" data-localize="rom_file">ROM file:</label></div>
|
||||
<div class="rightcol">
|
||||
<input type="file" id="input-file-rom" class="enabled" />
|
||||
<div class="tab">
|
||||
<div id="rom-patcher-container">
|
||||
<div class="row m-b" id="rom-patcher-row-file-rom">
|
||||
<div class="text-right"><label for="rom-patcher-input-file-rom" data-localize="yes">ROM file:</label></div>
|
||||
<div class="rom-patcher-container-input">
|
||||
<input type="file" id="rom-patcher-input-file-rom" class="w100 empty" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b" id="rom-info">
|
||||
<div class="leftcol text-right">CRC32:</div><div class="rightcol"><span id="crc32"></span></div>
|
||||
<div class="leftcol text-right">MD5:</div><div class="rightcol"><span id="md5"></span></div>
|
||||
<div class="leftcol text-right">SHA-1:</div><div class="rightcol"><span id="sha1"></span></div>
|
||||
</div>
|
||||
<div class="row m-b hide" id="row-removeheader">
|
||||
<div class="leftcol text-right"></div>
|
||||
<div class="rightcol">
|
||||
<input type="checkbox" id="checkbox-removeheader" /> <label for="checkbox-removeheader" data-localize="remove_header">Remove header before patching</label>
|
||||
<div class="row m-b" id="rom-patcher-row-alter-header">
|
||||
<div></div>
|
||||
<div>
|
||||
<label><input type="checkbox" id="rom-patcher-checkbox-alter-header" class="styled" /> <span id="rom-patcher-span-alter-header"></span></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b hide" id="row-addheader">
|
||||
<div class="leftcol text-right"></div>
|
||||
<div class="rightcol">
|
||||
<input type="checkbox" id="checkbox-addheader" /> <label for="checkbox-addheader" data-localize="add_header">Add temporary header</label> <small>(<label id="headersize" for="checkbox-addheader"></label>)</small>
|
||||
<div class="m-b text-selectable text-mono" id="rom-patcher-rom-info">
|
||||
<div class="row">
|
||||
<div class="text-right">CRC32:</div>
|
||||
<div class="text-truncate"><span id="rom-patcher-span-crc32"></span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="text-right">MD5:</div>
|
||||
<div class="text-truncate"><span id="rom-patcher-span-md5"></span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="text-right">SHA-1:</div>
|
||||
<div class="text-truncate"><span id="rom-patcher-span-sha1"></span></div>
|
||||
</div>
|
||||
<div class="row" id="rom-patcher-row-info-rom">
|
||||
<div class="text-right">ROM:</div>
|
||||
<div class="text-truncate"><span id="rom-patcher-span-rom-info"></span></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m-b" id="rom-patcher-row-file-patch">
|
||||
<div class="text-right"><label for="rom-patcher-input-file-patch" data-localize="yes">Patch file:</label></div>
|
||||
<div class="rom-patcher-container-input">
|
||||
<input type="file" id="rom-patcher-input-file-patch" class="w100 empty" accept=".ips,.ups,.bps,.aps,.rup,.ppf,.mod,.xdelta,.vcdiff,.zip" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b" id="rom-patcher-row-patch-description">
|
||||
<div class="text-right text-mono" data-localize="yes">Description:</div>
|
||||
<div class="text-truncate" id="rom-patcher-patch-description"></div>
|
||||
</div>
|
||||
<div class="row m-b text-selectable text-mono" id="rom-patcher-row-patch-requirements">
|
||||
<div class="text-right text-mono" id="rom-patcher-patch-requirements-type">ROM requirements:</div>
|
||||
<div class="text-truncate" id="rom-patcher-patch-requirements-value"></div>
|
||||
</div>
|
||||
|
||||
<div class="buttons text-center">
|
||||
<div id="rom-patcher-row-error-message" class="m-b"><span id="rom-patcher-error-message"></span></div>
|
||||
<button id="rom-patcher-button-apply" data-localize="yes" disabled>Apply patch</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m-b" id="row-file-patch">
|
||||
<div class="leftcol text-right"><label for="input-file-patch" data-localize="patch_file">Patch file:</label></div>
|
||||
<div class="rightcol">
|
||||
<input type="file" id="input-file-patch" accept=".ips,.ups,.bps,.aps,.rup,.ppf,.mod,.xdelta,.vcdiff,.zip"/>
|
||||
<div id="patch-builder-container" style="display:none">
|
||||
<div class="row m-b">
|
||||
<div class="text-right"><label for="patch-builder-input-file-original" data-localize="yes" >Original ROM:</label></div>
|
||||
<div>
|
||||
<input type="file" id="patch-builder-input-file-original" class="w100 empty" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b hide" id="row-expected-source-info"></div>
|
||||
|
||||
<div class="buttons">
|
||||
<span id="message-apply" class="message"></span>
|
||||
<button id="button-apply" data-localize="apply_patch" class="disabled" disabled>Apply patch</button>
|
||||
<div class="row m-b">
|
||||
<div class="text-right"><label for="patch-builder-input-file-modified" data-localize="yes">Modified ROM:</label></div>
|
||||
<div>
|
||||
<input type="file" id="patch-builder-input-file-modified" class="w100 empty" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m-b">
|
||||
<div class="text-right"><label for="patch-builder-select-patch-type" data-localize="yes">Patch type:</label></div>
|
||||
<div>
|
||||
<select id="patch-builder-select-patch-type">
|
||||
<option value="ips">IPS</option>
|
||||
<option value="bps">BPS</option>
|
||||
<option value="ppf">PPF</option>
|
||||
<option value="ups">UPS</option>
|
||||
<option value="aps">APS</option>
|
||||
<option value="rup">RUP</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="buttons text-center">
|
||||
<div id="patch-builder-row-error-message" class="m-b"><span id="patch-builder-error-message"></span></div>
|
||||
<button id="patch-builder-button-create" disabled data-localize="yes">Create patch</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div id="tab1" class="tab">
|
||||
<div class="row m-b">
|
||||
<div class="leftcol text-right"><label for="input-file-rom1" data-localize="original_rom" >Original ROM:</label></div>
|
||||
<div class="rightcol">
|
||||
<input type="file" id="input-file-rom1" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m-b">
|
||||
<div class="leftcol text-right"><label for="input-file-rom2" data-localize="modified_rom">Modified ROM:</label></div>
|
||||
<div class="rightcol">
|
||||
<input type="file" id="input-file-rom2" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m-b">
|
||||
<div class="leftcol text-right" data-localize="patch_type">Patch type:</div>
|
||||
<div class="rightcol">
|
||||
<select id="select-patch-type">
|
||||
<option value="ips">IPS</option>
|
||||
<option value="bps">BPS</option>
|
||||
<option value="ppf">PPF</option>
|
||||
<option value="ups">UPS</option>
|
||||
<option value="aps">APS</option>
|
||||
<option value="rup">RUP</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="buttons">
|
||||
<span id="message-create" class="message"></span>
|
||||
<button id="button-create" class="disabled" disabled data-localize="create_patch">Create patch</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -178,64 +163,59 @@
|
|||
<!-- FOOTER -->
|
||||
<footer>
|
||||
<div>
|
||||
<button id="button-settings" class="button-outer"><img src="style/icon_settings.svg" class="icon settings" /> <span data-localize="settings">Settings</span></button>
|
||||
<button id="button-settings" class="btn-transparent"><img src="./webapp/icon_settings.svg" loading="lazy" class="icon settings" /> <span data-localize="yes">Settings</span></button>
|
||||
</div>
|
||||
|
||||
Rom Patcher JS <small>v2.9.1</small> by <a href="/">Marc Robledo</a>
|
||||
Rom Patcher JS <small>v3.0 <a style="color:rgb(255, 197, 7)" href="legacy/" rel="nofollow">Beta 1</a></small> by <a href="/">Marc Robledo</a>
|
||||
<br />
|
||||
<img src="style/icon_github.svg" class="icon github" /> <a href="https://github.com/marcrobledo/RomPatcher.js/" target="_blank">See on GitHub</a>
|
||||
<img src="style/icon_heart.svg" class="icon heart" /> <a href="https://www.paypal.me/marcrobledo/5" target="_blank" rel="nofollow">Donate</a>
|
||||
<img src="./webapp/icon_github.svg" loading="lazy" class="icon github" /> <a href="https://github.com/marcrobledo/RomPatcher.js/" target="_blank">See on GitHub</a>
|
||||
<img src="./webapp/icon_heart.svg" loading="lazy" class="icon heart" /> <a href="https://www.paypal.me/marcrobledo/5" target="_blank" rel="nofollow">Donate</a>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- SETTINGS DIALOG -->
|
||||
<div id="dialog-backdrop">
|
||||
<div id="zip-dialog" class="dialog">
|
||||
<div id="zip-dialog-message" class="text-center"></div>
|
||||
<ul id="zip-dialog-file-list"></ul>
|
||||
<dialog id="dialog-settings" class="rom-patcher-dialog">
|
||||
<div class="text-right m-b"><img id="dialog-settings-button-close" src="./webapp/icon_close.svg" loading="lazy" /></div>
|
||||
|
||||
<div class="row m-b">
|
||||
<div><label for="settings-language">Language</label></div>
|
||||
<div class="text-right">
|
||||
<select id="settings-language" class="enabled">
|
||||
<option value="en">English</option>
|
||||
<option value="fr">Français</option>
|
||||
<option value="de">Deutsch</option>
|
||||
<option value="it">Italiano</option>
|
||||
<option value="es">Español</option>
|
||||
<option value="nl">Nederlands</option>
|
||||
<option value="sv">Svenska</option>
|
||||
<option value="ca">Català</option>
|
||||
<option value="ca-va">Valencià</option>
|
||||
<option value="pt-br">Português Brasileiro</option>
|
||||
<option value="ru">Russian</option>
|
||||
<option value="ja">日本語</option>
|
||||
<option value="zh-cn">中文(简体)</option>
|
||||
<option value="zh-tw">中文(正體)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="settings-dialog" class="dialog">
|
||||
<div class="text-right m-b"><img id="settings-close-dialog" src="style/icon_close.svg" /></div>
|
||||
<div class="row row-lg m-b">
|
||||
<div><label data-localize="yes" for="settings-output-suffix">Use patch name for output</label></div>
|
||||
<div class="text-right"><input type="checkbox" id="settings-output-suffix" class="styled" /></div>
|
||||
</div>
|
||||
|
||||
<div class="row m-b">
|
||||
<div class="leftcol"><label for="select-language">Language</label></div>
|
||||
<div class="rightcol text-right">
|
||||
<select id="select-language" class="enabled w100">
|
||||
<option value="en">English</option>
|
||||
<option value="fr">Français</option>
|
||||
<option value="de">Deutsch</option>
|
||||
<option value="it">Italiano</option>
|
||||
<option value="es">Español</option>
|
||||
<option value="nl">Nederlands</option>
|
||||
<option value="sv">Svenska</option>
|
||||
<option value="ca">Català</option>
|
||||
<option value="ca-va">Valencià</option>
|
||||
<option value="pt-br">Português Brasileiro</option>
|
||||
<option value="ru">Russian</option>
|
||||
<option value="ja">日本語</option>
|
||||
<option value="zh-cn">中文(简体)</option>
|
||||
<option value="zh-tw">中文(正體)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-lg m-b">
|
||||
<div><label data-localize="yes" for="settings-fix-checksum">Fix ROM checksum</label></div>
|
||||
<div class="text-right"><input type="checkbox" id="settings-fix-checksum" class="styled" /></div>
|
||||
</div>
|
||||
|
||||
<div class="row m-b">
|
||||
<div class="leftcol-lg"><label data-localize="alternate_output_name">Use patch name for output</label></div>
|
||||
<div class="rightcol-lg text-right"><span id="switch-output-name" class="switch disabled"></span></div>
|
||||
</div>
|
||||
|
||||
<div class="row m-b">
|
||||
<div class="leftcol-lg"><label data-localize="fix_checksum">Fix ROM checksum</label></div>
|
||||
<div class="rightcol-lg text-right"><span id="switch-fix-checksum" class="switch disabled"></span></div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="leftcol-lg"><label data-localize="light_theme">Light theme</label></div>
|
||||
<div class="rightcol-lg text-right"><span id="switch-theme" class="switch disabled"></span></div>
|
||||
</div>
|
||||
<div class="row row-lg">
|
||||
<div><label data-localize="yes" for="settings-light-theme">Light theme</label></div>
|
||||
<div class="text-right"><input type="checkbox" id="settings-light-theme" class="styled" /></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body></html>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue