Dreameye

Avellea

2023/10/21

Categories: hardware

What is the Dreameye?

So I had no idea what this little device was before I was told about it from a friend. As it turns out, like the PS2, the Dreamcast also had an attachable webcam. Pictured below is a Dreameye, next to a PS2 EyeToy.

Dreameye Image credits: Tom Charnock1

It was released to the Japanese market exclusively, with software called Visual Park.

So what about the weird file format?

Right. Since the Dreameye is also a standalone digital camera, it has internal storage. Getting the image off of that is fairly easy, as it can be copied to the VMU. In doing so, one can copy it to an SD to serial adapter and dump it right onto a PC for viewing… Or so we thought. Turns out regular tools like IrfanView can’t open it. The file has a large, and strange header shown in the link below. I won’t post the whole thing, as its 1480 lines long. I will post the most interesting part of it though.

50 68 6F 74 6F 46 75 6E | 20 50 69 63 74 75 72 65 | PhotoFun Picture|
50 69 63 74 75 72 65 49 | 51 20 43 6F 72 70 6F 72 | PictureIQ Corpor|
61 74 69 6F 6E 20 20 20 | 20 20 20 20 20 20 20 20 | ation                   |

After a little bit of searching, I ultimately came up with nothing. I found a few companies by the name of PictureIQ, but they were surely unrelated to this. I had scrolled through the rest of the file, and didn’t see anything interesting. It was at this point I put this on the backburner, thinking “This isn’t very useful, so I won’t take much time looking into it.”

That being said, about 5 minutes after thinking that, someone else within my circle managed to find the following at 0x1480

FF D8 FF E0 00 10 4A 46 | 49 46 00 01 01 00 00 01 |             JFIF            |

That’s just a regular old JPEG header…?

Dreameye-2

paddel06 on Discord found that, after I completely overlooked it. He thought “Okay, it’s probably just a container, let’s delete from 0x0000 to 0x1480 and see what happens.” Lo and behold, it worked. We can now view Dreameye images on virtually any device with an image viewer.

How about code?

Yup. There’s code. Knowing what we do now, I went ahead and wrote a Python script that can do this all automatically (and possibly in batches? I haven’t tested that.) It’s a simple script that simply opens the file using pythons io package, deletes all data between the two addresses, then copies the file and appends .jpg to the end.

If you want to use this for yourself, you can find it here. DreamJPG. It’s ugly, probably slow, but it works. I may update it over time.

What’s next?

While I was writing this post, I got a message saying “How about videos?” That’s what’s next. Right now all we know is video/apcstream.

I’ll make a post about that as things develop. Hope you enjoyed this first little writeup!

>> Home