2
0
mirror of https://github.com/xcat2/xNBA.git synced 2024-12-14 07:11:32 +00:00

Use byte 6 for the checksum, rather than byte 5. (Byte 5 may be part of

the jmp instruction).
This commit is contained in:
Michael Brown 2006-06-06 15:29:14 +00:00
parent 02df45352c
commit 8d0c5f3302

View File

@ -131,9 +131,9 @@ sub writerom ($$) {
sub checksum ($) {
my ($romref) = @_;
substr($$romref, 5, 1) = "\x00";
substr($$romref, 6, 1) = "\x00";
my $sum = unpack('%8C*', $$romref);
substr($$romref, 5, 1) = chr(256 - $sum);
substr($$romref, 6, 1) = chr(256 - $sum);
# Double check
$sum = unpack('%8C*', $$romref);
if ($sum != 0) {
@ -168,14 +168,10 @@ sub makerom () {
$romsize = ($filesize + 511) & ~511
}
} else {
$romsize = getromsize(\$rom);
# 0 put there by *loader.S means makerom should pick the size
if ($romsize == 0) {
# Shrink romsize down to the smallest power of two that will do
for ($romsize = MAXROMSIZE;
$romsize > MINROMSIZE and $romsize >= 2*$filesize;
$romsize /= 2) { }
}
# Shrink romsize down to the smallest power of two that will do
for ($romsize = MAXROMSIZE;
$romsize > MINROMSIZE and $romsize >= 2*$filesize;
$romsize /= 2) { }
}
if ($filesize > $romsize) {
print STDERR "ROM size of $romsize not big enough for data, ";