Ik heb ook mijn audiobox open gekraakt met de bedoeling om een paar audiofragmenten te vervangen voor een origineel cadeautje voor iemands verjaardag aanstaande vrijdag. Ik heb de ROM gedumpt en zoals sommige van jullie en ben ik er achter gekomen hoe de index werkt en waar alle audiofragment staan. Ik zou wel in staat zijn om de audio in te voegen en een nieuwe index te genereren, maar C code ben ik niet bekend mee. Heeft iemand al een manier gevonden om audio bestanden te encoderen naar het F1A format?
Helaas moet ik je teleurstellen dat dit wel een vrij specifiek pittig stukje software engineering is wat niet veel hackers binnen ons clubje beheersen. (Ik ook niet). C code is wel echt een basisvereiste qua kennis dus ik denk dat je deadline van vrijdag erg pittig gaat worden.
Ik heb natuurlijk wel enige programmeer kennis, maar ik hoop dat chatgpt het kan vertalen naar een high level language of er een wrapper voor kan genereren.
Maar om audio te injecteren moet ik wel de bijpassende checksum kunnen genereren. Ik denk dat het misschien gaat om crc-32, maar het is me nog niet gelukt om een match te krijgen met de ruwe f1c bestanden. @shiz volgens mij was jij ook al zo ver gekomen aan je extractor script te zien. Heb je misschien meer kennis hierover?
@nemo_magneet Ik zal morgen ff kijken. Volgens mij had de AH op de Christiaan Huygensplein (Amsterdam) ze nog. Mocht dat zo zijn dan koop ik er zoizo 1 en dan laat ik het wel weten.
Die soundboxen zijn hier in de buurt ook uitverkocht, maar zoiets is vast ook wel na te bouwen met bijvoorbeeld een Raspberry Pi, camera, speakertje en de geluiden van @shiz
Ik heb een python script ‘gemaakt’ (ok, chatgpt heeft hem 100% geschreven) die een flash dump kan extracten en ook kan laten zien of alle CRC’s kloppen. Dit kan handig zijn met eigen flash images.
Kenmerkend is dat de testdir eerder uit dit topic geen valid data CRC heeft (opzet?)
uitvoeren gaat als volgt: python3 soundbox.py flashimage.bin [-e]
P.s. Directory support is WIP, in principe zitten alle samples in de directory ‘testdata’, vandaar dat de size ongeveer zo groot is als de flash zelf.
In theorie zou je meerdere directories kunnen nesten, maar gezien het target lijkt dit niet nodig.
Binnenkort ook de andere kant op (inpakken/embedden van f1c audio files in een flash binary)
UPDATE:
de CRC mismatch bij de testdir is ook opgelost. Blijkbaar is die header met de hand gemaakt, want de alignment van het datasegment op 16 bytes lijkt niet helemaal goed gegaan te zijn (er zijn 32 te veel 0xFF). Bij aftrek van deze klopt de data CRC wel!
Nu nog de F1C decoder/encoder aan het werk krijgen.
tip : vraag bij je lokale Appie of ze toevallig defecte (en geretourneerde) exemplaren hebben liggen. Mijn vrouw werkt bij een filiaal, zo ben ik er aan gekomen. Eentje had een mechanisch defect in de leesunit. Zo gefixt nadat ik m had opengemaakt.
Ze vertelde me al dat iemand zn eigen geluiden had geladen, maar wist helaas niet te vertellen wie en hoe.