Hi!I have some queries I would like to discuss and hopefully find the best solution. Recently I have experienced problems with burning new DVDs on my NEC ND-3530A drive. Upgrading the firmware should make it. I tried to find it on official NECâ€™s website but without any success. I downloaded and successfully upgraded the driveâ€™s firmware with version 3.01 from http://liggydee.cdfreaks.com The problem has not been solved. Ala42 helped me with his Media Code Speed Edit (MCSE) v1.2.0.8 to fix a bug in the firmware for Imation DVD-R 16x [MBI 01RG40] which was indicating an error "Illegal disc" in Nero (http://club.myce.com/f86/mediacodespeededit-support-nec-dvd-writers-139455/index15.html). Now I am still looking for a way how to burn Tesco DVD+R [Dvsn+160-001-000] and possibly other unsupported media types by the firmware.

Step 1: To ask NEC for an update of the firmwareI think that there is a newer version than 3.01 Actually where does this version come from as ND-3530A is missing on the NECâ€™s list of supported drives? http://support.necam.com/Optical/downloads/FlashFirmware/According to NECâ€™s DVD Media Lists http://support.necam.com/Optical/downloads/MediaLists.asp for ND-3530a there is some 3.02 version. It seems that they forgot to publish it for public downloading.The problem is that there is no proper contact. Probably they do not want to be bothered by customers. Does anybody have experience and know how to contact them with queries about optical drives and firmwares?

Step 2: To make own updateI checked the firmwares for another 2 similar drives: ND-3520A v3.07 and ND-3540A v1.04. They both have firmwares updated to the same level. I would like to achieve that level for ND-3530A, too. Is it possible to import missing media codes with writing strategies from different firmware? I mean to find some patterns in the firmwares which make the difference among drives on one hand and what is common inside the firmware on the other hand. Data could be then somehow exported, adjusted and then imported. I am not a programmer so I cannot hack binary files. What programming skills are necessary for this task? Assembler, C++, â€¦? I can just use some existing tools and analyze their outputs. Please find attached file: Even Lister of Total Commander (key [F3]) is able to show you blocks of data where you can clearly recognize all media types (codes) grouped according to DVD kinds each followed by a version of a writing strategy, data ... There are 674 different media types in ND-3540A v1.04 firmware. Does it mean that there is the same amount of writing strategies in the firmware?

Step 3: To use existing writing strategies for unsupported media typesMCSE by ala42 is able to list supported media types of a firmware and should be able to set different writing strategy from strategies in firmware. I will try later.

Step 4: To use only supported mediaNow I know about the existence of Unique Disc Identifier of the DVDs and that it is not just about DVD kinds like +/-R, +/-RW, +/-R9. DVD Identifier located at http://DVD.Identifier.CDfreaks.com can be used to identify a DVD and its media code can be imported in MCSE. That is how DVD-R: MBI 01RG40 bug in the firmware can be fixed. Just follow import instructions in MCSE. I have not found any other similar bug in firmware. I compared all media codes (except DVD+R) in ND-3530A v3.01 with ND-3520A v3.07 using output (hexadecimal values) of NecDump 1.2.3 Made by Quikee (it has problem to list +R for ND-3520A v3.07). The problem is that Unique Disc Identifier preburned on DVDs is not printed on a label of their package, so a customer does not know whether media is supported by his hardware (and its firmware).

Step 5: To crossflash the driveI have found some informations that it could be possible to upgrade (to ND-3540A) or downgrade (to ND-3520A) ND-3530A drive by crossflashing. All mentioned drives use the same chipset but is their hardware really the same?NEC Drive Converter can be found here http://liggydee.cdfreaks.com/page/en/NEC-Drive-Converter/If I changed the driveâ€™s ID from ND-3530A to ND-3540A, how would I update itâ€™s firmware as a computer and operating system would have problem to recognize the drive with the wrong firmware? I am not equipped with external hardware flasher and do not have proper skills.A conversion could break the drive and lead to Step 6

Step 6: To buy a new driveWould you buy a NEC drive again? Good drive vs poor support and customer service.

NEC are out of business regarding optical drive. Their OD department went in to a joint venture with Sony called Optiarc. For a while now this area is completely owned by Sony. They're just using NEC chipsets - although that department now belongs to Renesas as far as I remember.

Step 2: To make own updateI checked the firmwares for another 2 similar drives: ND-3520A v3.07 and ND-3540A v1.04. They both have firmwares updated to the same level. I would like to achieve that level for ND-3530A, too. Is it possible to import missing media codes with writing strategies from different firmware? I mean to find some patterns in the firmwares which make the difference among drives on one hand and what is common inside the firmware on the other hand. Data could be then somehow exported, adjusted and then imported. I am not a programmer so I cannot hack binary files. What programming skills are necessary for this task? Assembler, C++, â€¦?

The drives since ND-3520A use a V850 assembler, so that's what you would need in order to read the drive's code. However the media codes and writing strategies are simple tables of a certain format that can be extracted more or less easily. However it's not that easy to add new discs to that table as they would require more space which is already occupied. The solution then would be moving these tables to a different firmware location and adjust the firmware to point to the new tables.

The problem is that Unique Disc Identifier preburned on DVDs is not printed on a label of their package, so a customer does not know whether media is supported by his hardware (and its firmware).

A couple of shops list this identifier. But it's best - also in regards to longevity of your data - to only use quality brands like Verbatim or Taiyo Yuden. These discs are properly supported by almost any burner.

Step 5: To crossflash the driveI have found some informations that it could be possible to upgrade (to ND-3540A) or downgrade (to ND-3520A) ND-3530A drive by crossflashing. All mentioned drives use the same chipset but is their hardware really the same?NEC Drive Converter can be found here http://liggydee.cdfreaks.com/page/en/NEC-Drive-Converter/If I changed the driveâ€™s ID from ND-3530A to ND-3540A, how would I update itâ€™s firmware as a computer and operating system would have problem to recognize the drive with the wrong firmware? I am not equipped with external hardware flasher and do not have proper skills.A conversion could break the drive and lead to Step 6

Just changing the drive ID doesn't really change much in the drive - it's just a couple of bytes that are different. You would have to flash the drive's bootcode and main firmware for crossflashing. But that's already been tried without success a few years ago.

Step 6: To buy a new driveWould you buy a NEC drive again? Good drive vs poor support and customer service.

As already said, NEC are out of the optical drive business and the choice would be Optiarc then. I don't think it's fair to call their support poor. Please consider that the NEC ND-3530A was manufactured about 5 years ago. No optical drive manufacturer supports their devices for such a long time. And looking at e.g. the ND-2500A there even was an update in November 2006 for a drive released at the end of 2003

NEC are out of business regarding optical drive. Their OD department went in to a joint venture with Sony called Optiarc.

So the NEC optical drivesâ€™s spirit is in Sony Optiarc now and NECâ€™s support is limited to what is on their website and it is terminal. It is not simply fair that capability of the drive depends so much on a firmware. No firmware update means no new media support. Why is it so complicated? All information about media handling (laser, spinning speed, â€¦) could be preburned on disks and drives could just read these instructions and set up themselves accordingly. So no more outdated lists of manufacturers of discs inside firmwares. Utopia?

Liggy;2542678:

However the media codes and writing strategies are simple tables of a certain format that can be extracted more or less easily. However it's not that easy to add new discs to that table

All right. Hope is still alive. You have given me a hope that it is still possible to do something with the ND-3530A firmware to the level of latest updates for 3520A and 3540A. If adding of missing media into firmware is too complicated I would just overwrite existing low speed media types which probably cannot be found in shops these days. Or just overwrite whatever media types and then flash a drive with a proper firmware whenever is needed.<O:p</O:pIf you help me and show me how the table (structure) with media types and their writing strategies looks like maybe I will be able to make such an update by myself. Now I cannot recognize in the .bin file where the writing strategy begins, how long is it, where it ends, how they are separated. Simply in some hexeditor. Could you please show me a couple of media types and their writing strategies from 3520A and 3540A firmwares to compare them? If they are identical then it will work as well in 3530A. Then I will overwrite data in 3530A and will be very happy. <O:pDvsn+160001<O:punique disc identifier:<O:p8A 44 76 73 6E 2B 31 36 30 30 30 31 00 01<O:p</O:pND-3520A v3.07 writing strategy:<O:p</O:p...<O:p</O:pND-3540A v1.04 writing strategy:<O:p</O:p...<O:p</O:p<O:p</O:pND-3530A v3.01 writing strategy:<O:p</O:p... <O:p</O:pWriting speeds...

I'll give you a quick example with the 3530A firmware 3.01 - maybe you can try to figure the rest yourselfThe mediacodes for DVD-R start at offset 0x20cfc. The first Byte of this mediacode starts with an index that's used for grouping mediacodes which share the same strategies. Each entry takes 16 (0x10) Bytes.

Then at offset 0x2242c you have a table for the media groups with 4 Bytes for each entry. The first two bytes are the index to the actual writing strategy for the first speed, the next two Bytes indicate the supported write speeds. Each write speed has a bit that needs to be cleared. There are also strategies for write speeds that you cannot select but which are used when the drive increases the write speed. The speeds that I found are 1.0, 2.0, 2.4, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0, 22.0 and 24.0 - one or two bits are unused yet even in firmwares for the latest drives - even more bits in the 3530A as it doesn't support >16x speed.

The actual strategies start at offset 0x16f2c with a length of 76 (0x4c) bytes each.

Then there's also the total number of media groups at offset 0x226d0 and the total number of strategies at offset 0x226d2 but if you want to change this data (increase the value), you'll also have to move the tables to a free location and adapt the assembler code that retrieves the data.

The strategy sizes differ between different mediatypes and (sometimes but not always) between different drives. NEC also once changed the structures between two firmwares for the same drive in order to save space.

These are all the offsets that I found for the 3530A firmware 3.01:MinusRStratOffset=0x16f2cMidOffset=0x20cfcSpeedOffset=0x2242c

MinusRWStratOffset=0x226dcMidOffset=0x2450cSpeedOffset=0x24790

PlusRStratOffset=0x24848MidOffset=0x2ab84SpeedOffset=0x2b2e8

PlusRWStratOffset=0x2b4b0MidOffset=0x2c8d0SpeedOffset=0x2ca50

PlusR9StratOffset=0x31744MidOffset=0x31b40SpeedOffset=0x31bb0

MinusR9StratOffset=0x31becMidOffset=0x31d40SpeedOffset=0x31d70

Good luck and one last hint: The firmware start searching for the correct media ID with the last entry getting back to the first one which is (as far as I remember) then taken if nothing suitable is found.

Just one more thing. To close "the crossflashing of drives" issue is it possible to downgrade ND-3530A drive to ND-3520A? NEC Driver Converter does not offer it as a "New Drive". There are only 3130, 3140, 3530, 3540 to choose from. Is there the same problem like with 3540 - different boot code?

I guess there's also a change in the hardware. I had a look at my old sourcecode yesterday and it seems that the 3530 were supposed to be identical with 3540 while 3520 is different, but after crossflashing from 3530 to 3540 the drive couldn't write and I think not even read a single disc. Don't worry too much about the drive converter as it's mostly useless these days except if you want to convert ancient NEC 3100A or 3450A to 3500A drive.

It is possible to update ND-3530A firmware v3.01 according to the latest updates of similar drives ND-3520A v3.07 and ND-3540A v1.04!

1.) I followed all instructions and learnt how to recognize tables with particular entries in firmware v3.01>> The tables are located in the first quarter of the file. The structure is the same for each media type â€“R, â€“RW, +R, +RW, +R9, â€“R9: [strategies]â€“[media IDs]â€“[speeds]. Some media codes belong to the same group and share the same writing strategies. According to the table of speeds there is one or more writing strategies available for each media group. Each strategy is 76 bytes long.

2.) I compared firmwares v3.07 with v1.04>> >> All corresponding entries are identical. The difference is only in number of +R9 writing speeds and strategies. Each strategy is 56 bytes long. What?

3.) I checked older ND-3520A firmware v3.06>> Strategies are fully 76 bytes long. So missing 20 bytes of repeating data starting at the 31-st byte were cut out. Otherwise the corresponding strategies match together. The 20 bytes are either redundant or new algorithm generates them from the 5 bytes that are to be repeated. Anyway some space for additional media codes, speeds and strategies in firmware was saved this way.

4.) The new strategies can be used to update ND-3530A firmware v3.01As a non programmer I cannot add missing entries of the tables in the firmware. All I can do is using some hex editor to overwrite some unused entries with the entries I need to use. And it is quite complicated.

I would need some simple utility able to read, display and edit media codes, speeds and writing strategies from the firmware and then to save the modified file. Active programmer should be able to make one in a while.I made some graphic example of semi-automatic fw hex editor.

It contains some scrollable text-areas where COPY and PASTE functions should work. What idea is it? Would anybody be interested in such utility? Programmers, please.

I will try to ask ala42 to implement media code groups (first column with indexes to recognize which codes share the same strategies) and displaying and editing writing strategies in his MCSE.

Dear Liggy,I would like to try to make some bigger changes in the tables in firmware. I would like to extract strategies from the newer firmware, adjust them and also decide which media and/or speeds and strategies to omit to fit in a limited space and overwrite (import) appropriate data in destined firmware. As I am not able to find out how an algorithm works I would need your help.Are lower speeds also used by a drive while burning at higher speeds? To save some space I would like to delete them as well as whole old low speed (2x) media. These days it is not even possible to find old slow media in shops.What is important when making changes in firmware files? What should I keep at 100%? Offset of each table, size, indexes... If new table is smaller than the original one, should indexes be kept as original ones or could be bytes just zeroed? ...Me = "Hacker" the begginer Thanks in advance.

I would not change the number of strategies, groups and mediacodes without changing some references in the assembler code. However you can for example remove all supported strategies from one group and distribute that number of strategies to one or more different groups. Just make sure to set/clear the appropriate bits

Hi Liggy,I have just wanted to try a modified firmware but it has not worked. Binflash has indicated "Error submitting checksum". I have chosen only one +R media first (EMDP, 4x) and replaced it by Dvsn+160001 code and its one writing strategy (6x) and adjusted its speed byte. Could you please tell me how to generate that checksum after change in the firmware file?Thanks in advance.

By the way, is there one checksum or are there more of them in a firmware? I have found 2 suspicious bytes at the very end of the file: the 7-th and the 8-th byte from the end. Is this it?O.K. I give up for now. Good night.

There is only one checksum (16 bit addition of everything before the checksum) at the end of the file. You have "00 00 XX YY 4B 33 35 33 30 35" at the end of a 3530 firmware with xx and yy being the checksum. 4b 33 35 33 is some kind of drive identification and 30 35 is the drive's bootcode version.

As I have not found any calculator for such a checksum on the Internet, I made one.>> 16-bit checksum hex calculator:It is a macro form within Excel file. It takes around half minute to get a result for 1 MB firmware file on my PIII computer. So the calculator is extremely fast. The computer is the one which is too slow. I hope it will help somebody else, too.

I also made some more macros to (semi)automate processing of hexadecimal data block from firmware in Excel to get entries of particular firmware tables into cells in a sheet for editing and then to read data back from cells and merge them in a resultant hex string. I do not know if anybody would be interested in. They are not perfect and not ready for publishing yet.But all this is not just the best solution. I wish some skilled programmer made some standalone sophisticated application for reading tables from firmware files, editing, reindexing and not allowing user to spoil anything.

Just to share my experienceThe DVD+R Dvsn+160001 was finally successfully burned using the imported original writing strategy.But!As I mentioned earlier I replaced +R EMDP media and its only 4x strategy with Dvsn+160001 code and its one writing strategy (6x) and adjusted the speed byte from 4x to 6x. I got a power calibration error.So I took the first writing strategy (4x) from Dvsn+160001 and rewrote the previous attempt and adjusted the speed bite back to 4x. The burning process was smooth and now the disc works as it should.Conclusion:Probably it is not possible to skip lower speeds or at least the first one because of the used writing technology ((Z)-CLV or (P)-CAV). Or just the first writing strategy contains initial settings of the hardware for the whole burning process.Is it possible to decode particular writing strategy and find out how does it work, how does it set up the hardware? Probably I want too much. A manufacturer would not be very happy if customer knew too much.>> Offsets of tables for ND-3530A and ND-3540A firmwares: