Hybrid PC/MAC .iso offset project

vbimport

#1

The following project may be of interest to some forum members here. Certainly, the expertise to assist me in completing the project almost certainly resides here. Thus, please let me express this concept, my goal with it, and the research and progress I have made so far.

Goal:

To create a multisession CD containing 1 audio session, 1 PC data session and 1 Mac HFS+ session, using a PC to do all of the creation.

Reason:

Globally usable multimedia CD program productions and presentations.

I must say that I know this goal is quite easily achievable if the creation process is being done on a Mac. However, I don’t have one and I am keen to find out if I can make it happen on a PC.

First up, a quick summary of where I’m up to.

I create an audio CD with 5 tracks and leave the disc ‘open’.

I create a Hybrid .iso file separately using a brilliant application called MacImage. MacImage is commercial software, however the trial is adequate for my project, because the .iso image I create does not exceed the trial limit size - neat. What MacImage does is enable me to create this hybrid.iso image which contains a PC ‘view’ and a Mac ‘view’ - meaning (as I understand it) that there are 2 separate file system views embedded in the .iso image.

My Hybrid.iso image on the PC ‘view’ contains an autorun application which will launch a menu etc…
The Mac ‘view’ just has data file and folders and no autorun because that procedure is not supported in OSX.

The issue:

How does one ‘dock’ a Hybrid.iso image to an open audio CD disc?

Steps taken:

  1. Author of MacImage contacted. He believes he did it once before but cannot remember how. He is considering the idea of implementing this concept for future releases of his application, but it’s not a priority.

  2. Venturing out into the world of open source, I did massive research into using mkisofs and cdrecord. After trying this combination of apps (using cygwin1.dll) with many different approaches to the problem and many variations on command line switches (including following specific instructions written by Jorg Schilling on how to append an .iso image to an open disc) , so far I haven’t been 100% successful. After appending the hybrid.iso image to the open disc, the PC ‘view’ works fine but the HFS+ file system always gets lost. So no Mac session appears when the disc is put into a Mac (offsite - belongs to a colleague). Jorg’s procedure involves converting the hybrid.iso to hybrid.raw. Maybe this is where the problem lies.

  3. Step 3 was to write an email asking for assistance from Jorg Schilling. As I half expected…no response.

  4. Step 4 is to call upon internet forums.

Who can think of a way to augment this process or maybe even dream up a better way to do it?

On a further note: I went through a multitude of applications to see if any would support such a process: Nero, Gear, CDBurnerXP, every open source burning app imaginable etc… No dice.

I figure the main trick here involves somehow editing the session start data of my hybrid.iso in order to offset it to the end of the previous audio session. This way the burning application will know where to start burning this new session.

I know how to find out the place at which to offset the start to. This is done with

cdrecord  -dev=1,0,0 -msinfo

Whamo! Gives the start and end point of first (audio session).

So, how can one edit the hybrid.iso (session 2) - so that the start of session 2 is offset to the end of session 1 correctly?

I tried converting the hybrid.iso to hybrid.nrg for Nero, and then some persistence trying to fool Nero into burning it…no go I’m afraid.

The closest was Plextools Pro. At least it had a go before crashing out with an error. A good enough go to make me a new coaster at least.

I’ve Googled .iso and .nrg session offset start editing to the max…not getting any decent info there…

Anyone got any ideas?

I put it out there for now…

Thanks for reading this far :slight_smile:

Dan


#2

The HFS file system uses relative addressing (instead of absolute like ISO). What this means is that as long as you have the ‘hybrid’ image built correctly, then there are no offsets to modify.

Try burning your image to a blank CD-R as a single session data track and close the session. This disc should not work in a PC since the ISO 9660 file system pointers were built by you to be further out on the disc after the audio session. However, the disc should work fine on a MAC since the file system uses relative file system pointers. If it does not work on a MAC, then something is just not correct about the HFS file system that you made.

The Primary Volume Descriptor of the ISO file system always starts at sector 16 of the first ROM (data) track. The HFS file system uses sector 15 to point to the rest of it’s file system data. You could open your image with a HEX editor and go to sector 15 (the first sector is sector 0). This would be at byte offset 0x7800 (30720 decimal). Check this sector to verify that it is not just a bunch of zeroes. At sector 16 you should see CD001. This would be at byte offset 0x8000 (32768 decimal). The sectors in your image should be 2048 bytes long each.

The main thing is that there should be no offsets that you need to modify for the HFS file system since it uses relative file system pointers.

Good luck,
RM


#3

i think magiciso can create a hybrid iso


#4

@RichMan

The main thing is that there should be no offsets that you need to modify for the HFS file system since it uses relative file system pointers.

Yes you are right, and you obviously have a good deal of understanding in this area, so thank you very much for your thoughts.

I am however trying to offset the actual PC iso itself so that I can ‘re-dock’ it to the end of a first session which will be a set of audio tracks. The iso I have created using MacImage works fine (with the HFS too) when you burn it directly to a disc as the only session, but if I want to add it after a previous session, no dice. I believe this is because the iso I have is destined to start at the first scetor of the disc, and not further in (as it would be if there was a previous session on the disc).

Try burning your image to a blank CD-R as a single session data track and close the session. This disc should not work in a PC since the ISO 9660 file system pointers were built by you to be further out on the disc after the audio session.

Well not exactly. This is in fact what I am trying to achieve. I need to move the perceived start of the file system pointers for the iso I have made.

I hope that makes it a bit clearer.

Can you advise further?

Dan