Merge branch 'master' into 'master'
Added SRAM 256 Kb (32 KB) to ram_size_tbl, fixed header checks so they pass with other sizes and allowed ROM ubond to be detected See merge request InfiniteNesLives/INL-retro-progdump!28
This commit is contained in:
commit
4e9223fa19
|
|
@ -64,6 +64,7 @@ local ram_size_tbl = {
|
||||||
[0x01] = "16 kilobits",
|
[0x01] = "16 kilobits",
|
||||||
[0x02] = "32 kilobits",
|
[0x02] = "32 kilobits",
|
||||||
[0x03] = "64 kilobits",
|
[0x03] = "64 kilobits",
|
||||||
|
[0x05] = "256 kilobits"
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Translates ram size in header to KBytes.
|
-- Translates ram size in header to KBytes.
|
||||||
|
|
@ -72,6 +73,7 @@ local ram_size_kb_tbl = {
|
||||||
[0x01] = 2,
|
[0x01] = 2,
|
||||||
[0x02] = 4,
|
[0x02] = 4,
|
||||||
[0x03] = 8,
|
[0x03] = 8,
|
||||||
|
[0x05] = 32
|
||||||
}
|
}
|
||||||
|
|
||||||
local destination_code = {
|
local destination_code = {
|
||||||
|
|
@ -368,10 +370,8 @@ function isvalidheader(internal_header)
|
||||||
-- Spot check a few fields.
|
-- Spot check a few fields.
|
||||||
-- TODO: Check more/all fields, look for printable name?
|
-- TODO: Check more/all fields, look for printable name?
|
||||||
local valid_rom_type = hardware_type[internal_header["rom_type"]]
|
local valid_rom_type = hardware_type[internal_header["rom_type"]]
|
||||||
local valid_rom_size = rom_ubound[internal_header["rom_size"]]
|
|
||||||
local valid_sram_size = ram_size_tbl[internal_header["sram_size"]]
|
|
||||||
local valid_destination_code = destination_code[internal_header["destination_code"]]
|
local valid_destination_code = destination_code[internal_header["destination_code"]]
|
||||||
return valid_rom_type and valid_rom_size and valid_sram_size and valid_destination_code
|
return valid_rom_type and internal_header["rom_size"] and internal_header["sram_size"] and valid_destination_code
|
||||||
end
|
end
|
||||||
|
|
||||||
function test()
|
function test()
|
||||||
|
|
@ -536,6 +536,7 @@ local function dump_ram( file, start_bank, ram_size_KB, mapping, debug )
|
||||||
local num_banks
|
local num_banks
|
||||||
|
|
||||||
--determine how much ram to read per bank
|
--determine how much ram to read per bank
|
||||||
|
if ram_size_KB == nil then ram_size_KB = 0 end
|
||||||
if (ram_size_KB < KB_per_bank) then
|
if (ram_size_KB < KB_per_bank) then
|
||||||
num_banks = 1
|
num_banks = 1
|
||||||
KB_per_bank = ram_size_KB
|
KB_per_bank = ram_size_KB
|
||||||
|
|
@ -868,13 +869,15 @@ local function process(process_opts, console_opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if ram_size == 0 then
|
if (ram_size == 0) or (ram_size == nil) then
|
||||||
ram_size = ram_size_kb_tbl[internal_header["sram_size"]]
|
ram_size = ram_size_kb_tbl[internal_header["sram_size"]]
|
||||||
print("RAM Size not provided, " .. ram_size_tbl[internal_header["sram_size"]] .. " detected.")
|
assert(ram_size, "SRAM Size unknown and not provided, please add ram size to console_opts")
|
||||||
|
print("SRAM Size not provided, " .. ram_size_tbl[internal_header["sram_size"]] .. " detected.")
|
||||||
end
|
end
|
||||||
|
|
||||||
if rom_size == 0 then
|
if (rom_size == 0) or (rom_size == nil) then
|
||||||
rom_size = rom_size_kb_tbl[internal_header["rom_size"]]
|
rom_size = rom_size_kb_tbl[internal_header["rom_size"]]
|
||||||
|
assert(rom_size, "ROM Size unknown and not provided, please add rom size to console_opts")
|
||||||
print("ROM Size not provided, " .. rom_ubound[internal_header["rom_size"]] .. " detected.")
|
print("ROM Size not provided, " .. rom_ubound[internal_header["rom_size"]] .. " detected.")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue