2017-03-14 20:32:40 +01:00
<!DOCTYPE html>
2022-03-24 22:38:53 +01:00
< html translate = "no" >
2017-03-14 20:32:40 +01:00
< head >
2018-04-28 15:57:54 +02:00
< title > Rom Patcher JS< / title >
2017-03-14 20:32:40 +01:00
< meta http-equiv = "content-Type" content = "text/html; charset=UTF-8" / >
2025-04-30 01:11:55 +02:00
< meta name = "description" content = "An online web-based ROM patcher. Supported formats: IPS, BPS, UPS, APS, RUP, EBP, PPF and xdelta." / >
< meta name = "keywords" content = "ips,ups,aps,bps,rup,ninja,ebp,ppf,xdelta,patcher,online,html5,web,rom,patch,hack,translation" / >
2017-03-14 20:32:40 +01:00
< meta name = "viewport" content = "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" / >
2018-04-28 15:57:54 +02:00
< link rel = "manifest" href = "./manifest.json" / >
2024-08-09 19:30:49 +02:00
< 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" / >
2019-05-31 21:00:39 +02:00
<!-- iOS icons -->
2024-08-09 19:30:49 +02:00
< 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" / >
2022-03-24 22:38:53 +01:00
<!-- cache -->
< meta http-equiv = "Cache-Control" content = "no-cache, no-store, must-revalidate" / >
< meta http-equiv = "Pragma" content = "no-cache" / >
< meta http-equiv = "Expires" content = "0" / >
2020-05-02 12:10:46 +02:00
2020-11-06 21:18:54 +01:00
<!-- social network metatags -->
< meta name = "twitter:site" content = "@marc_robledo" >
< meta name = "twitter:creator" content = "@marc_robledo" >
< meta name = "twitter:domain" content = "marcrobledo.com" >
< meta property = "og:title" content = "Rom Patcher JS" >
< meta name = "twitter:title" content = "Rom Patcher JS" >
2025-04-30 01:11:55 +02:00
< meta name = "twitter:description" content = "An online web-based ROM patcher. Supported formats: IPS, BPS, UPS, APS, RUP, EBP, PPF and xdelta." >
2024-08-09 19:34:31 +02:00
< meta property = "og:image" content = "https://www.marcrobledo.com/RomPatcher.js/webapp/thumbnail.jpg" >
< meta name = "twitter:image" content = "https://www.marcrobledo.com/RomPatcher.js/webapp/thumbnail.jpg" >
2020-11-06 21:18:54 +01:00
< meta name = "twitter:card" content = "photo" >
2024-08-09 19:30:49 +02:00
< link type = "text/css" rel = "stylesheet" href = "./webapp/style.css" media = "all" / >
< script type = "text/javascript" src = "./rom-patcher-js/RomPatcher.webapp.js" > < / script >
< script type = "text/javascript" src = "./webapp/webapp.js" > < / script >
2017-03-14 20:32:40 +01:00
< / head >
2018-05-11 12:58:11 +02:00
< body > < div id = "column" >
2017-03-14 20:32:40 +01:00
2017-07-22 19:57:15 +02:00
2017-03-14 20:32:40 +01:00
<!-- HEADER -->
2024-08-09 19:30:49 +02:00
< header > < img src = "./webapp/logo.png" loading = "lazy" / > < h1 > Rom Patcher JS< / h1 > < / header >
2017-03-14 20:32:40 +01:00
2017-07-22 19:57:15 +02:00
<!-- APP -->
2018-04-28 15:57:54 +02:00
< div id = "wrapper" >
2024-08-09 19:30:49 +02:00
< 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 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" >
2024-08-11 21:30:25 +02:00
< input type = "file" id = "rom-patcher-input-file-rom" class = "empty" disabled / >
2024-08-09 19:30:49 +02:00
< / div >
2017-11-12 16:29:14 +01:00
< / div >
2024-08-09 19:30:49 +02:00
< 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 >
2017-03-14 20:32:40 +01:00
< / div >
2024-08-09 19:30:49 +02:00
< 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 >
2018-04-23 20:41:21 +02:00
< / div >
2017-03-14 20:32:40 +01:00
2024-08-09 19:30:49 +02:00
< 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" >
2025-04-27 17:43:07 +09:30
< input type = "file" id = "rom-patcher-input-file-patch" class = "empty" accept = ".ips,.ups,.bps,.aps,.rup,.ppf,.mod,.ebp,.xdelta,.vcdiff,.zip" disabled / >
2024-08-09 19:30:49 +02:00
< / 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 >
2017-03-14 20:32:40 +01:00
< / div >
2024-08-09 19:30:49 +02:00
< 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 >
2017-03-14 20:32:40 +01:00
< / div >
2024-08-09 19:30:49 +02:00
< 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 >
2024-08-11 21:30:25 +02:00
< input type = "file" id = "patch-builder-input-file-original" class = "empty" disabled / >
2024-08-09 19:30:49 +02:00
< / div >
2017-03-14 20:32:40 +01:00
< / div >
2024-08-09 19:30:49 +02:00
< div class = "row m-b" >
< div class = "text-right" > < label for = "patch-builder-input-file-modified" data-localize = "yes" > Modified ROM:< / label > < / div >
< div >
2024-08-11 21:30:25 +02:00
< input type = "file" id = "patch-builder-input-file-modified" class = "empty" disabled / >
2024-08-09 19:30:49 +02:00
< / div >
2017-07-22 11:58:52 +02:00
< / div >
2024-08-09 19:30:49 +02:00
< div class = "row m-b" >
< div class = "text-right" > < label for = "patch-builder-select-patch-type" data-localize = "yes" > Patch type:< / label > < / div >
< div >
2024-08-11 21:30:25 +02:00
< select id = "patch-builder-select-patch-type" disabled >
2024-08-09 19:30:49 +02:00
< 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 >
2025-04-27 17:43:07 +09:30
< option value = "ebp" > EBP< / option >
2024-08-09 19:30:49 +02:00
< / select >
< / div >
2017-03-14 20:32:40 +01:00
< / div >
2025-04-30 11:39:23 +02:00
< div class = "row" >
< div > < / div >
< div id = "patch-builder-container-metadata-inputs" > < / div >
< / div >
2024-08-09 19:30:49 +02:00
< div class = "buttons text-center" >
< div id = "patch-builder-row-error-message" class = "m-b" > < span id = "patch-builder-error-message" > < / span > < / div >
2024-08-11 21:30:25 +02:00
< button id = "patch-builder-button-create" disabled data-localize = "yes" disabled > Create patch< / button >
2024-08-09 19:30:49 +02:00
< / div >
2017-03-14 20:32:40 +01:00
< / div >
2017-07-22 19:57:15 +02:00
< / div >
2024-08-09 19:30:49 +02:00
2017-03-14 20:32:40 +01:00
< / div >
2019-04-17 21:43:53 +02:00
2019-05-31 21:00:39 +02:00
2018-04-28 15:57:54 +02:00
<!-- FOOTER -->
< footer >
2020-11-06 21:00:06 +01:00
< div >
2024-08-09 19:30:49 +02:00
< 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 >
2020-11-06 21:00:06 +01:00
< / div >
2025-04-30 01:11:55 +02:00
Rom Patcher JS < small > < a href = "legacy/" rel = "nofollow" > v3.2< / a > < / small > by < a href = "/" > Marc Robledo< / a >
2018-09-18 16:41:00 +02:00
< br / >
2024-08-09 19:30:49 +02:00
< 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 >
2018-04-28 15:57:54 +02:00
< / footer >
2017-03-14 20:32:40 +01:00
2022-03-24 22:38:53 +01:00
2024-08-09 19:30:49 +02:00
<!-- SETTINGS DIALOG -->
< 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 >
2022-03-24 22:38:53 +01:00
< / div >
2024-08-09 19:30:49 +02:00
< / div >
2022-03-24 22:38:53 +01:00
2024-08-09 19:30:49 +02:00
< 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 >
2022-03-24 22:38:53 +01:00
2024-08-09 19:30:49 +02:00
< 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 >
2022-11-10 19:09:53 +01:00
2024-08-09 19:30:49 +02:00
< 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 >
2022-03-24 22:38:53 +01:00
< / div >
< / div >
2024-08-09 19:30:49 +02:00
2022-03-24 22:38:53 +01:00
< / body > < / html >