What's there inside a firmware

What does a DVD writer firmware contain?
firmwares should contain the programming needed to allow it to burn, set laser power to x, spin motor at y speed, move head to this location, activate burn… etc
but dvd writers contain also media support, but what are they really for? just to specify hard settings for speed? as codeguys patch brings the list of media codes with what speed they support, nothing else (needed laser power, etc)?

and in what language are they made? how do you firmware hackers make the changes?
how do you read the code? :rolleyes:

Moved from Recording Hardware forum to Firmware forum.

Firmware can be written in many languages, but must be compiled for the specific hardware used in the device.

Hackers make changes by analysing the disassembly of the firmware.

> but dvd writers contain also media support, but what
> are they really for?

Every entry in the media table contains all parameters needed
to write the corresponding discs in the best possible way
(laser powers are part of these parameters).

> and in what language are they made?

C/C++

> how do you firmware hackers make the changes?

Copy/paste from other firmwares and changing a few branches/strings.
For instance setting the laser power to x+1 or spinning
the motor at y-1 are apparently out of the question.

but you will have binary file to work on, or is it assembly?
the drive must then have a kind of a processor of its own, with its own instruction set, that you do/do not know…

i know programming, and x86 assembly, but firmwares don’t open in diassemblers, so they are built over a special architecture.

anyway, you (firmware hackers) do a great job…

Binary files downloaded from the manufacturers’ sites are translated into
assembly by disassemblers. I don’t know of any drive using x86 processors,
but the ones used are still very common and fully documented (e.g. 8051
family for LiteON). Get a disassembler for this processor and you can start.

There are a few disassemblers for common optical drive processors here: http://xvi.rpc1.org Though I’m sure there are more out there.

thanks all…

Exactly what firmware does depends on the device. In theory you can have a CPU directly connected to the laser and drive moter, and do everything in firmware. More likely there are some custom chips in there that take care of some of the harder things to do in software. In theory you could have chips do everything and no firmware. FPGAs sit in there two, they are programable chips, but not full CPUs. (Though I’m not sure that any burners use them other hardware does) Exactly how much those chips do depends on the manufacture.

Firmware bridges the gap between what the chips do and what needs to be done. Many things are much easier to do in firmware, or at least cheaper. CPUs are cheap because they make a lot of them, and because firmware can be replaced a lot of quality work can be skipped.

Those who modify firmware use disassemblers and educated guesses. A great friday night project if you are a real geek. For most people not so fun.

ok.

when new firmware come out saying better media support, what do they change?
do they only add new codes with supported burning speeds (what the omnipatcher shows), or other programming to change how some media are burned (strategies, etc)?

Whatever they want. Bug fixes. Any new research into how to burn might get in. New strategies. There are several different manufactures, each with a number of different drives, and it is not safe to assume they all do the same thing when new firmware is released.

well, i am currently interested in liteon 812/832 specially when they say new media support

I explained what “media support” is, can’t you figure out what
“adding media support” is about ?