Rockbox Development > New Ports

Creative Zen Vision:M

<< < (117/136) > >>

quetzalcoatl:
thanks for moving the post, after browsing the forum for a while I really had no idea where to put it.. 'compilation' seemed to be best place:)


--- Quote from: mcuelenaere on July 30, 2008, 04:11:12 AM ---BTW did you get my mails containing the disk dump I gave you?

--- End quote ---
yes, i got the file, it can be removed from the net drive

about the jukebox.jrm - easy task. the MINIFS volume is like FAT and is completely FLAT. one bitmap, one clusterchain list, one directory with filenames, and the rest is for the files. volume is 20mb allways, and all the positions are constant

about the VFSYS - could you be more specific? is it a file that 'factory' puts on the drive? i dont remember such file.. or maybe this will be a file of yours? if so, where and how it will be placed? as a song? as a data file? or manually as a system file*? the first (factory) and latter (system file) makes locating the file trivial, while the 'song/data' options - result in more complex algorithms and higher data access time

*) mind that there is no way to put it there except raw hexediting the drive, or writing proper tool/driver to do the same!

mcuelenaere:

--- Quote from: quetzalcoatl on July 30, 2008, 11:01:51 AM ---...

about the jukebox.jrm - easy task. the MINIFS volume is like FAT and is completely FLAT. one bitmap, one clusterchain list, one directory with filenames, and the rest is for the files. volume is 20mb allways, and all the positions are constant

--- End quote ---
good, do you have any code for that laying around?

--- Quote ---about the VFSYS - could you be more specific? is it a file that 'factory' puts on the drive? i dont remember such file.. or maybe this will be a file of yours? if so, where and how it will be placed? as a song? as a data file? or manually as a system file*? the first (factory) and latter (system file) makes locating the file trivial, while the 'song/data' options - result in more complex algorithms and higher data access time

*) mind that there is no way to put it there except raw hexediting the drive, or writing proper tool/driver to do the same!

--- End quote ---
I suppose it isn't available at the older Creative devices (like Nomad etc), but there's a function in Creative Zen devices which allows you to have an external UMS drive on which you can do whatever you want (mind that the standard transfer protocol is MTP which is similar to NJB as it is evenly stupid and hides away the underlying file system).

This is achieved by the OS by creating a file (I don't know which type) named VFSYS on the device itself (beware that this information is based on some disassembling of the Original Firmware and some guessing, but I'm pretty sure it works like this).

So what we need is a way to find where the actual data for this virtual file system is located and if so, Rockbox can access it and have a read/write (virtual) hard drive.

quetzalcoatl:

--- Quote from: mcuelenaere on July 30, 2008, 11:12:34 AM ---good, do you have any code for that laying around?
--- End quote ---
No, none at all.

I've looked into the CF dump you have provided - this is the same disk structure as on NJB, but contents are very different. MINIFS is 50mb instead of 20mb (thus, CFS is limited to ~72,25mb) and contains many new files. Special sectors ('/' directory!) offsets has changed and need to be revised or recalculated. Back then, I saw only MINIFS of 20mb so I assumed the offsets be constant, now its clear they are calculable somehow. It should not be a big problem, I still have many samples of old volumes. But, if you could provide a diskdump of a *different* card - ideally smaller - 64mb, 32mb - this would be a great help. Of course, if players with such cards do exist at all :)

I'll prepare some example code by weekend.

BTW1. the CF image seems to use different endianess
BTW2. where did you get the "hdd partitioning info" section from? i mean, on the wiki page. someone did a good job describing the basics, but the structures are incorrect *if* they are describing the NJB drives - including the CF dump you have provided - it matches my knowledge not theirs. Or maybe they are describing much newer drive? ZenVision's? Any dumps available for it? It'd be great if I could compare the dumps the autor was working on with mine

mcuelenaere:

--- Quote from: quetzalcoatl on July 31, 2008, 02:59:22 AM ---...

I've looked into the CF dump you have provided - this is the same disk structure as on NJB, but contents are very different. MINIFS is 50mb instead of 20mb (thus, CFS is limited to ~72,25mb) and contains many new files. Special sectors ('/' directory!) offsets has changed and need to be revised or recalculated. Back then, I saw only MINIFS of 20mb so I assumed the offsets be constant, now its clear they are calculable somehow. It should not be a big problem, I still have many samples of old volumes. But, if you could provide a diskdump of a *different* card - ideally smaller - 64mb, 32mb - this would be a great help. Of course, if players with such cards do exist at all :)

I'll prepare some example code by weekend.

--- End quote ---
Thanks!

BTW did you take a look at the code I sent you?

--- Quote ---
BTW1. the CF image seems to use different endianess
BTW2. where did you get the "hdd partitioning info" section from? i mean, on the wiki page. someone did a good job describing the basics, but the structures are incorrect *if* they are describing the NJB drives - including the CF dump you have provided - it matches my knowledge not theirs. Or maybe they are describing much newer drive? ZenVision's? Any dumps available for it? It'd be great if I could compare the dumps the autor was working on with mine

--- End quote ---
Almost all the information on the wiki is mine, and most is based on reverse engineering the original firmware or guessing.

I have here a 32MB, 128MB and 2GB CF card (and a 30GB HDD) laying around I can try to use; but as the minifs partition requires 50MB I doubt the 32MB CF card will work (these are all tested on a modded Zen Vision:M, but the structure is similar to the other devices)

I also have another disk dump at the wiki and I believe Falafel also made some (this is of a Creative Zen Vision, not a Creative Zen Vision:M; but they run the same hardware and the same OS)

edit:
the 32MB CF card gave me a hard disk error when I tried to format it in the recovery mode

quetzalcoatl:
@32mb driver error -- not good for the case, but any new knowledge is allways a good thing :)

there were only 2 options:
- either the device accepts the drive and formats it with _smaller_ minifs [50mb is not obligatory, on older devices minifs was 20mb] and we'll have a nice way of generating different samples
- or device rejected the drive - this has happened - and this means, that:
---A) ZenVisionM requires drive at least 50mb + sizeof(minimal empty cfs) :)
---B) the rescue-mode-module of firmware has the minifs size hardcoded to 50mb or calculates the size of MINIFS from the numberof/sizeof the files it wants to put there

The problem is, I dont really recall (nor find in my notes) finding ANY info on how to calculate offsets of special clusters on MINIFS.. the fact of B) means that newer players differ a bit from older ones (njb: 20mb vs zenvision=50mb, other models - ???), what means that position of special clusters is also different and I need a way to find it. Or create a list of known devices configurations'. The calculations I have made back then for NJB are not applicable here, I'll have to reverse it again. No big deal, just a matter of one-two weekends.

If you could generate an image for different drive 64mb, 256mb, whatever, just different from that one you've sent me - it'd be a great help - i'll compare the two volumes and if positions are equal, i'll just make quick-dirty-hardcoded filefinder working only on zenvision:m so you have something to start on
--

uhm.. code? what code? I didnt notice any.. when did you sent it?

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version