CHG: the default_toys.lua has the index bytes in mix endiansness. I tried to clean it up and verify them.

CHG: The tnp3clone.lua is now faster, and uses the "wipe" parameter to clean the tag before writing all data.
This commit is contained in:
iceman1001 2015-04-05 14:27:12 +02:00
commit 6c81ae5574
2 changed files with 72 additions and 52 deletions

View file

@ -95,23 +95,39 @@ local _names = {
--[[ --[[
EXPANSION EXPANSION
--]] --]]
["012C"]="DRAGONS PEAK", ["2C01"]="DRAGONS PEAK",
["012D"]="EMPIRE OF ICE", ["2D01"]="EMPIRE OF ICE",
["012E"]="PIRATE SEAS", ["2E01"]="PIRATE SEAS",
["012F"]="DARKLIGHT CRYPT", ["2F01"]="DARKLIGHT CRYPT",
["0130"]="VOLCANIC VAULT", ["3001"]="VOLCANIC VAULT",
["0131"]="MIRROR OF MYSTERY", ["3101"]="MIRROR OF MYSTERY",
["0132"]="NIGHTMARE EXPRESS", ["3201"]="NIGHTMARE EXPRESS",
["0133"]="SUNSCRAPER SPIRE", ["3301"]="SUNSCRAPER SPIRE",
["0134"]="MIDNIGHT MUSEUM", ["3401"]="MIDNIGHT MUSEUM",
--[[ --[[
LEGENDARY LEGENDARY
--]] --]]
["0194"]="LEGENDARY BASH", ["9401"]="LEGENDARY BASH",
["01A0"]="LEGENDARY SPYRO", ["A001"]="LEGENDARY SPYRO",
["01A3"]="LEGENDARY TRIGGER HAPPY", ["A301"]="LEGENDARY TRIGGER HAPPY",
["01AE"]="LEGENDARY CHOPCHOP", ["AE01"]="LEGENDARY CHOPCHOP",
--legendary blades
--legendary bouncer
--legendary zoo lou
--legendary stealth elf
--legendary slam bam
--legendary night shift
--legendary jet-vac
--legendary ignitor
--legendary jawbreaker
--legendary lightcore grim creeper
--legendary lightcore chill
--legendary free ranger
--[[
COLOR
--]]
--[[ --[[
TRAPTEAM TRAPTEAM
@ -154,43 +170,43 @@ local _names = {
["E501"]="TRAPTEAM BLACKOUT", ["E501"]="TRAPTEAM BLACKOUT",
--[[ --[[
PET PET / MINI
--]] --]]
["01F6"]="PET BOP", ["F601"]="PET BOP",
["01F7"]="PET SPRY", ["F701"]="PET SPRY",
["01F8"]="PET HIJINX", ["F801"]="PET HIJINX",
["01F9"]="PET TERRAFIN", ["F901"]="PET TERRAFIN",
["01FA"]="PET BREEZE", ["FA01"]="PET BREEZE",
["01FB"]="PET WEERUPTOR", ["FB01"]="PET WEERUPTOR",
["01FC"]="PET PET VAC", ["FC01"]="PET PET VAC",
["01FD"]="PET SMALL FRY", ["FD01"]="PET SMALL FRY",
["01FE"]="PET DROBIT", ["FE01"]="PET DROBIT",
["0202"]="PET GILL GRUNT", ["0202"]="PET GILL GRUNT",
["0207"]="PET TRIGGER SNAPPY", ["0702"]="PET TRIGGER SNAPPY",
["020E"]="PET WHISPER ELF", ["0E02"]="PET WHISPER ELF",
["021C"]="PET BARKLEY", ["1C02"]="PET BARKLEY",
["021D"]="PET THUMPLING", ["1D02"]="PET THUMPLING",
["021E"]="PET MINI JINI", ["1E02"]="PET MINI JINI",
["021F"]="PET EYE SMALL", ["1F02"]="PET EYE SMALL",
--[[ --[[
SWAP FORCE SWAP FORCE
--]] --]]
["0BB8"]="SWAPFORCE SCRATCH", ["B80B"]="SWAPFORCE SCRATCH",
["0BB9"]="SWAPFORCE POPTHORN", ["B90B"]="SWAPFORCE POPTHORN",
["0BBA"]="SWAPFORCE SLOBBER TOOTH", ["BA0B"]="SWAPFORCE SLOBBER TOOTH",
["0BBB"]="SWAPFORCE SCORP", ["BB0B"]="SWAPFORCE SCORP",
["0BBC"]="SWAPFORCE HOG WILD FRYNO", ["BC0B"]="SWAPFORCE HOG WILD FRYNO",
["0BBD"]="SWAPFORCE SMOLDER DASH", ["BD0B"]="SWAPFORCE SMOLDER DASH",
["0BBE"]="SWAPFORCE BUMBLE BLAST", ["BE0B"]="SWAPFORCE BUMBLE BLAST",
["0BBF"]="SWAPFORCE ZOO LOU", ["BF0B"]="SWAPFORCE ZOO LOU",
["0BC0"]="SWAPFORCE DUNE BUG", ["C00B"]="SWAPFORCE DUNE BUG",
["0BC1"]="SWAPFORCE STAR STRIKE", ["C10B"]="SWAPFORCE STAR STRIKE",
["0BC2"]="SWAPFORCE COUNTDOWN", ["C20B"]="SWAPFORCE COUNTDOWN",
["0BC3"]="SWAPFORCE WIND UP", ["C30B"]="SWAPFORCE WIND UP",
["0BC4"]="SWAPFORCE ROLLER BRAWL", ["C40B"]="SWAPFORCE ROLLER BRAWL",
["0BC5"]="SWAPFORCE GRIM CREEPER", ["C50B"]="SWAPFORCE GRIM CREEPER",
["0BC6"]="SWAPFORCE RIP TIDE", ["C60B"]="SWAPFORCE RIP TIDE",
["0BC7"]="SWAPFORCE PUNK SHOCK", ["C70B"]="SWAPFORCE PUNK SHOCK",
} }
return _names return _names

View file

@ -109,24 +109,28 @@ local function main(args)
return oops('failed reading block with chinese magic command. quitting...') return oops('failed reading block with chinese magic command. quitting...')
end end
end end
local b1 = toytype..'000000000000000000000000'
-- wipe card.
local cmd = (cset..' %s 0004 08 w'):format( b0)
core.console(cmd)
local b1 = toytype..'000000000000000000000000'
local calc = utils.Crc16(b0..b1) local calc = utils.Crc16(b0..b1)
local calcEndian = bor(rsh(calc,8), lsh(band(calc, 0xff), 8)) local calcEndian = bor(rsh(calc,8), lsh(band(calc, 0xff), 8))
local cmd = (cset..'1 %s%04x'):format( b1, calcEndian) local cmd = (cset..'1 %s%04x'):format( b1, calcEndian)
core.console( cmd) core.console(cmd)
local pos, key local pos, key
for blockNo = 2, numBlocks-1, 1 do for blockNo = 2, numBlocks-1, 1 do
pos = (math.floor( blockNo / 4 ) * 12)+1 pos = (math.floor( blockNo / 4 ) * 12)+1
key = akeys:sub(pos, pos + 11 ) key = akeys:sub(pos, pos + 11 )
if blockNo%4 ~= 3 then if blockNo%4 == 3 then
cmd = ('%s %d %s'):format(cset,blockNo,empty)
else
cmd = ('%s %d %s%s'):format(cset,blockNo,key,AccAndKeyB) cmd = ('%s %d %s%s'):format(cset,blockNo,key,AccAndKeyB)
core.console(cmd)
end end
core.console(cmd)
end end
core.clearCommandBuffer()
end end
main(args) main(args)