Firmware Structure Analysis #5
Replies: 5 comments 12 replies
|
This is a great breakdown! Appreciate the identification of the last similar chunk before the sea of "FF" bytes. |
|
Has anyone been able to dump the data from the memory chip in the dream machine itself yet? |
|
I've come to the conclusion all of the files in the structure are compressed using the same algorithm due to a similar signature. We need the huff table key from the projector chip. Attached is my READ of Big Shark Little Shark Goes to School. XGecu T48 was used with a clip (no soldering required). |
|
I've published my documentation of the format, as used by my dreamprojector tool. Warning: the duration and starting offset of the LED lightshow data needs to be confirmed. It's worth noting that the first two "Pages" are the same between every cartridge and are not played by the device. Also, the effects do not appear to be used and often are made up of a few sounds and then the numbers 0-9 spoken. |
|
Not difficult at all, I’ll add a command to dreamsmith for it
…On Mon, Feb 16, 2026 at 5:59 PM PHΞN∆KIST ***@***.***> wrote:
Your dreamprojector is *awesome*! It worked perfectly for the binary
dumps I've been collecting. This is the validation I needed before diving
in and making dumps of all my carts. I wanted to be sure that the bins
contained all the necessary information, and now with your tools I'm
confident they do!
Out of curiosity - how difficult would it be to implement the ability to
"export" the audio? (i.e. direct output to aiff/wav instead of sound device)
—
Reply to this email directly, view it on GitHub
<#5 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADCSVRK7Q5ST44PVPDOFJ34MJDUPAVCNFSM6AAAAACLB3KCD2VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTKOBSHA3TCOI>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Using the script below, I plotted the data from one of my firmwares onto a graph for analysis. What I discovered was 12 discrete chunks of what visually looks like sound data, separated by sharp triangular transitions which I'm guessing would be tones to indicate things like changing light colors, or progressing the projector to the next slide. I also noticed that the majority of the firmware is unused (FF FF FF FF's for at least half of the file) with the exception of 16 bytes starting at location 0x0FFF80 (108448). Search for 04 F1 in your firmware, and follow it down 8556 to the 4E 0E that's just before all of the FF's. Those 8556 bytes are identical in each of the firmwares I've inspected. My hypothesis is that those 8556 bytes contain a digital signal processor (DSP) which can convert the waveforms back into actual sound files, which then get played on the speaker.
So the structure of the firmware seems to be:
A) Chapter Map
B) Chapter
C) Transition
D) Chapter
E) Transtion
... (repeat for number of chapters in cassette) ...
F) 8556 bytes of code, common across all chip dumps
G) Empty space (FF FF FF FF...)
H) 16 byte chip ID and/or key (or possibly the chapter marks)
I) FF's to end of file
Script:
All reactions