Example #1
0
$maps = PatchLocator::getMaps('R60_2005');
$patcher = new Patcher();
foreach ($_POST['setting'] as $mapName => $settingVal) {
    if ($settingVal == $mapName . '0' && !array_key_exists('overwriteOriginal', $_POST)) {
        continue;
    }
    $mod = new Modification($maps[$mapName], $maps[$mapName]->getSetting($settingVal));
    $patcher->addModification($mod);
}
$presetString = '';
$presetMap = _PRESET_MAPPING();
foreach ($presetMap as $preset) {
    if (!array_key_exists($preset, $_POST['setting'])) {
        $presetString = '';
        break;
    }
    $presetString .= str_replace($preset, '', $_POST['setting'][$preset]);
}
if ($patcher->getNumberOfModifications() == 0) {
    jsCallback('Keine Ă„nderungen vorgenommen!');
    die;
}
$staticMaps = PatchLocator::getStaticMaps('R60_2005');
foreach ($staticMaps as $mapName => $map) {
    $mod = new Modification($map, $map->getSetting($mapName . '0'));
    $patcher->addModification($mod);
}
$filename = $patcher->createTunedFile($sourceFile, $originalFile);
$newFilename = str_replace(basename($filename), '', $filename) . 'R60_2005-' . $presetString . '-' . $requestId . '.Bad Checksums!!';
rename($filename, $newFilename);
downloadFile($newFilename, basename($newFilename), md5_file($newFilename));
Example #2
0
                $rangesCount = $section[_RANGESCOUNT];
                for ($i = 1; $i <= $rangesCount; $i++) {
                    if (!array_key_exists('Range' . $i . 'Start', $section) || !array_key_exists('Range' . $i . 'End', $section)) {
                        throw new Exception('RangesCount differs from actual number of ranges');
                    }
                    $range = new Range($section['Range' . $i . 'Start'], $section['Range' . $i . 'End']);
                    $map->addRange($range);
                }
                break;
            default:
                $setting = new Setting($sectionName, $section[_DESCRIPTION], $section[_LISTENTRY], array());
                foreach ($section as $key => $value) {
                    if ($key == _DESCRIPTION || $key == _LISTENTRY) {
                        continue;
                    }
                    $value = new Value($key, $value);
                    $setting->addValue($value);
                }
                $map->addSetting($setting);
                break;
        }
    }
    $maps[] = $map;
}
$settingKeys = $maps[0]->getSettingKeys();
$mod1 = new Modification($maps[0], $maps[0]->getSetting($settingKeys[1]));
$patcher = new Patcher();
$patcher->addModification($mod1);
echo "<pre>";
$patcher->createTunedFile(_DIRECTORY . 'original.rom', _DIRECTORY . 'original.rom');
echo "</pre>";