
Recherche avancée
Médias (91)
-
#3 The Safest Place
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#4 Emo Creates
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#2 Typewriter Dance
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#1 The Wires
11 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
ED-ME-5 1-DVD
11 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
-
Revolution of Open-source and film making towards open film making
6 octobre 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (23)
-
Installation en mode ferme
4 février 2011, parLe mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
C’est la méthode que nous utilisons sur cette même plateforme.
L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...) -
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras. -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (5257)
-
Script error logging and filtering leads to truncated inputs [duplicate]
11 septembre 2023, par Alex IxerasI have a short script to log the output of an
ffmpeg
error output. I want to suppress logging a particular error message, but log any other.

while IFS= read -r file; do
 if [[ "$file" == *.mov ]]; then
 error=$(ffmpeg -v error -i "$file" -f null - 2>&1)
 if [[ "$error" != *"Application provided invalid, non monotonically increasing dts"* ]]; then
 echo "File: $file" >> error.log
 echo "$error" >> error.log
 echo "\n" >> error.log
 fi
 fi
done < /dir/to/list_of_files.txt



On running this I get some output working well, some other however, seems to be truncated or seemingly providing truncated input. Below is some sample output.


There are two truncated inputs (
mes/bar/media/040F4F7F-7555-42C0-A8BE-F00C2240B1E9.mov
andolumes/bar/media/05DD1E0E-3AA6-4803-9FE3-95101CF69AC7.mov
) and one .heic file, which is sitting in the same folder, seemingly causing an issue (r/media/06D46531-B088-46D6-AEEA-7192845D09E0.heic
). None of the files and their paths listed in/dir/to/list_of_files.txt
is listed incomplete, meaninglist_of_files.txt
shows

- 

/Volmes/bar/media/040F4F7F-7555-42C0-A8BE-F00C2240B1E9.mov
/Volumes/bar/media/05DD1E0E-3AA6-4803-9FE3-95101CF69AC7.mov
/Volumes/bar/media/06D46531-B088-46D6-AEEA-7192845D09E0.heic








Here is the sample output :


File: /Volumes/bar/media/006BE123-DA3F-46AA-A7DB-4FB747ECE3A8.mov
[h264 @ 0x126f1acf0] cabac decode of qscale diff failed at 44 1
[h264 @ 0x126f1acf0] error while decoding MB 44 1, bytestream 74947


File: /Volumes/bar/media/026B2681-840E-4B5E-945B-3CD485C74DA4.mov
[h264 @ 0x150e46e10] cabac decode of qscale diff failed at 51 24
[h264 @ 0x150e46e10] error while decoding MB 51 24, bytestream 29149
[h264 @ 0x150e50220] cabac decode of qscale diff failed at 56 33
[h264 @ 0x150e50220] error while decoding MB 56 33, bytestream 26749
[h264 @ 0x150e3da00] cabac decode of qscale diff failed at 71 42
[h264 @ 0x150e3da00] error while decoding MB 71 42, bytestream 22012
[h264 @ 0x150e62a40] cabac decode of qscale diff failed at 64 52
[h264 @ 0x150e62a40] error while decoding MB 64 52, bytestream 15091


File: mes/bar/media/040F4F7F-7555-42C0-A8BE-F00C2240B1E9.mov
mes/bar/media/040F4F7F-7555-42C0-A8BE-F00C2240B1E9.mov: No such file or directory


File: olumes/bar/media/05DD1E0E-3AA6-4803-9FE3-95101CF69AC7.mov
olumes/bar/media/05DD1E0E-3AA6-4803-9FE3-95101CF69AC7.mov: No such file or directory


File: /Volumes/bar/media/06C7E26A-C494-498A-8B57-BBC6E6CB7848.mov
[NULL @ 0x1246059c0] Invalid NAL unit size (1206193094 > 73032).
[NULL @ 0x1246059c0] missing picture in access unit with size 73036
[h264 @ 0x124646d10] Invalid NAL unit size (1206193094 > 73032).
[h264 @ 0x124646d10] Error splitting the input into NAL units.
[h264 @ 0x12463d900] left block unavailable for requested intra4x4 mode -1
[h264 @ 0x12463d900] error while decoding MB 0 12, bytestream 49336
Error while decoding stream #0:0: Invalid data found when processing input
[h264 @ 0x124659530] left block unavailable for requested intra4x4 mode -1
[h264 @ 0x124659530] error while decoding MB 0 4, bytestream 67241
[NULL @ 0x1246059c0] Invalid NAL unit size (385154995 > 70401).
[NULL @ 0x1246059c0] missing picture in access unit with size 70405
[h264 @ 0x124662940] cabac decode of qscale diff failed at 78 12
[h264 @ 0x124662940] error while decoding MB 78 12, bytestream 56219
[h264 @ 0x12466bd50] cabac decode of qscale diff failed at 86 9
[h264 @ 0x12466bd50] error while decoding MB 86 9, bytestream 61798
[h264 @ 0x124662940] Invalid NAL unit size (385154995 > 70401).
[h264 @ 0x124662940] Error splitting the input into NAL units.
[h264 @ 0x124621cd0] cabac decode of qscale diff failed at 107 5
[h264 @ 0x124621cd0] error while decoding MB 107 5, bytestream 60244
[h264 @ 0x1246188c0] top block unavailable for requested intra mode
[h264 @ 0x1246188c0] error while decoding MB 30 0, bytestream 70310
[h264 @ 0x124621cd0] cabac decode of qscale diff failed at 96 9
[h264 @ 0x124621cd0] error while decoding MB 96 9, bytestream 61611
Error while decoding stream #0:0: Invalid data found when processing input
[h264 @ 0x12463d900] cabac decode of qscale diff failed at 35 6
[h264 @ 0x12463d900] error while decoding MB 35 6, bytestream 54803
[h264 @ 0x124646d10] cabac decode of qscale diff failed at 57 10
[h264 @ 0x124646d10] error while decoding MB 57 10, bytestream 58139
[h264 @ 0x12466bd50] cabac decode of qscale diff failed at 78 4
[h264 @ 0x12466bd50] error while decoding MB 78 4, bytestream 66779
[h264 @ 0x1246188c0] left block unavailable for requested intra4x4 mode -1
[h264 @ 0x1246188c0] error while decoding MB 0 2, bytestream 199872
[h264 @ 0x124650120] cabac decode of qscale diff failed at 111 1
[h264 @ 0x124650120] error while decoding MB 111 1, bytestream 59299
[h264 @ 0x124646d10] left block unavailable for requested intra4x4 mode -1
[h264 @ 0x124646d10] error while decoding MB 0 15, bytestream 60124
[h264 @ 0x124659530] cabac decode of qscale diff failed at 114 5
[h264 @ 0x124659530] error while decoding MB 114 5, bytestream 56033
[h264 @ 0x124621cd0] cabac decode of qscale diff failed at 40 11
[h264 @ 0x124621cd0] error while decoding MB 40 11, bytestream 60838
[h264 @ 0x12463d900] left block unavailable for requested intra mode
[h264 @ 0x12463d900] error while decoding MB 0 8, bytestream 53862
[h264 @ 0x124646d10] cabac decode of qscale diff failed at 37 10
[h264 @ 0x124646d10] error while decoding MB 37 10, bytestream 51872
[h264 @ 0x124650120] cabac decode of qscale diff failed at 116 13
[h264 @ 0x124650120] error while decoding MB 116 13, bytestream 48950
[h264 @ 0x124659530] top block unavailable for requested intra mode -1
[h264 @ 0x124659530] error while decoding MB 61 0, bytestream 59379
[h264 @ 0x124662940] cabac decode of qscale diff failed at 101 5
[h264 @ 0x124662940] error while decoding MB 101 5, bytestream 52129
[h264 @ 0x12466bd50] left block unavailable for requested intra4x4 mode -1
[h264 @ 0x12466bd50] error while decoding MB 0 12, bytestream 60271
[h264 @ 0x1246188c0] top block unavailable for requested intra mode
[h264 @ 0x1246188c0] error while decoding MB 95 0, bytestream 75286
[h264 @ 0x1246344f0] cabac decode of qscale diff failed at 43 11
[h264 @ 0x1246344f0] error while decoding MB 43 11, bytestream 52247
[NULL @ 0x1246059c0] Invalid NAL unit size (274069289 > 199826).
[NULL @ 0x1246059c0] missing picture in access unit with size 199830
[h264 @ 0x124662940] Invalid NAL unit size (274069289 > 199826).
[h264 @ 0x124662940] Error splitting the input into NAL units.
[h264 @ 0x124621cd0] left block unavailable for requested intra4x4 mode -1
[h264 @ 0x124621cd0] error while decoding MB 0 2, bytestream 69812
[h264 @ 0x124650120] left block unavailable for requested intra4x4 mode -1
[h264 @ 0x124650120] error while decoding MB 0 63, bytestream 5884

Enter command: <target>|all <time>|-1 <command>[ <argument>]

Parse error, at least 3 arguments were expected, only 1 given in string 'r/media/06D46531-B088-46D6-AEEA-7192845D09E0.heic'
Error while decoding stream #0:0: Invalid data found when processing input
[NULL @ 0x1246059c0] Invalid NAL unit size (-1948339868 > 63994).
[NULL @ 0x1246059c0] missing picture in access unit with size 63998
[h264 @ 0x12466bd50] Invalid NAL unit size (-1948339868 > 63994).
[h264 @ 0x12466bd50] Error splitting the input into NAL units.
[NULL @ 0x1246059c0] Invalid NAL unit size (-632247255 > 62292).
[NULL @ 0x1246059c0] missing picture in access unit with size 62296
[h264 @ 0x12460bc20] Invalid NAL unit size (-632247255 > 62292).
[h264 @ 0x12460bc20] Error splitting the input into NAL units.
[h264 @ 0x1246344f0] cabac decode of qscale diff failed at 46 2
[h264 @ 0x1246344f0] error while decoding MB 46 2, bytestream 63786
[h264 @ 0x12463d900] left block unavailable for requested intra mode
[h264 @ 0x12463d900] error while decoding MB 0 1, bytestream 62099
[h264 @ 0x124646d10] left block unavailable for requested intra4x4 mode -1
[h264 @ 0x124646d10] error while decoding MB 0 4, bytestream 56879
[h264 @ 0x1246188c0] cabac decode of qscale diff failed at 38 4
[h264 @ 0x1246188c0] error while decoding MB 38 4, bytestream 57286
[h264 @ 0x124621cd0] top block unavailable for requested intra mode
[h264 @ 0x124621cd0] error while decoding MB 24 0, bytestream 75479
Error while decoding stream #0:0: Invalid data found when processing input
 Last message repeated 1 times
[aac @ 0x1246081f0] Pulse data corrupt or invalid.
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x1246081f0] Reserved bit set.
[aac @ 0x1246081f0] Number of bands (48) exceeds limit (39).
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x1246081f0] Reserved bit set.
[aac @ 0x1246081f0] Number of bands (7) exceeds limit (4).
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x1246081f0] Reserved bit set.
[aac @ 0x1246081f0] Prediction is not allowed in AAC-LC.
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x1246081f0] Reserved bit set.
[aac @ 0x1246081f0] Number of bands (43) exceeds limit (40).
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 0x1246081f0] Reserved bit set.
[aac @ 0x1246081f0] ms_present = 3 is reserved.
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 0x124646d10] top block unavailable for requested intra mode -1
[h264 @ 0x124646d10] error while decoding MB 83 0, bytestream 200857
[h264 @ 0x1246188c0] top block unavailable for requested intra mode -1
[h264 @ 0x1246188c0] error while decoding MB 74 0, bytestream 72661
[h264 @ 0x124621cd0] cabac decode of qscale diff failed at 63 8
[h264 @ 0x124621cd0] error while decoding MB 63 8, bytestream 62599
[h264 @ 0x1246344f0] left block unavailable for requested intra mode
[h264 @ 0x1246344f0] error while decoding MB 0 8, bytestream 64506
[h264 @ 0x12463d900] top block unavailable for requested intra mode
[h264 @ 0x12463d900] error while decoding MB 85 0, bytestream 73041
[h264 @ 0x124659530] top block unavailable for requested intra mode -1
[h264 @ 0x124659530] error while decoding MB 36 0, bytestream 64753
[h264 @ 0x124650120] left block unavailable for requested intra mode
[h264 @ 0x124650120] error while decoding MB 0 12, bytestream 63916
[h264 @ 0x12460bc20] cabac decode of qscale diff failed at 85 8
[h264 @ 0x12460bc20] error while decoding MB 85 8, bytestream 55869
[h264 @ 0x124621cd0] left block unavailable for requested intra mode
[h264 @ 0x124621cd0] error while decoding MB 0 9, bytestream 55282
[h264 @ 0x12463d900] left block unavailable for requested intra mode
[h264 @ 0x12463d900] error while decoding MB 0 12, bytestream 50989
[h264 @ 0x124650120] top block unavailable for requested intra mode
[h264 @ 0x124650120] error while decoding MB 38 0, bytestream 63979
[h264 @ 0x124659530] cabac decode of qscale diff failed at 77 1
[h264 @ 0x124659530] error while decoding MB 77 1, bytestream 60749
[h264 @ 0x124662940] left block unavailable for requested intra4x4 mode -1
[h264 @ 0x124662940] error while decoding MB 0 4, bytestream 58098
[h264 @ 0x12466bd50] top block unavailable for requested intra mode
[h264 @ 0x12466bd50] error while decoding MB 12 0, bytestream 63853
[h264 @ 0x12460bc20] left block unavailable for requested intra mode
[h264 @ 0x12460bc20] error while decoding MB 0 3, bytestream 55763
[h264 @ 0x1246188c0] cabac decode of qscale diff failed at 64 8
[h264 @ 0x1246188c0] error while decoding MB 64 8, bytestream 51798
[h264 @ 0x124646d10] left block unavailable for requested intra mode
[h264 @ 0x124646d10] error while decoding MB 0 20, bytestream 43042
[h264 @ 0x12460bc20] left block unavailable for requested intra mode
[h264 @ 0x12460bc20] error while decoding MB 0 33, bytestream 35359
</argument></command></time></target>


When I try running the commands individually line by line from the input file, they all work as expected, e.g.


- 

ffmpeg -v error -i "/Volumes/bar/media/006BE123-DA3F-46AA-A7DB-4FB747ECE3A8.mov" -f null -
ffmpeg -v error -i "/Volumes/bar/media/026B2681-840E-4B5E-945B-3CD485C74DA4.mov" -f null -
ffmpeg -v error -i "/Volumes/bar/media/040C2C65-7643-4432-9C73-3B4A74861908.mov" -f null -
ffmpeg -v error -i "/Volumes/bar/media/040F4F7F-7555-42C0-A8BE-F00C2240B1E9.mov" -f null -
ffmpeg -v error -i "/Volumes/bar/media/042561B3-A732-457D-8ED4-A81A9EB3A5A7.mov" -f null -
ffmpeg -v error -i "/Volumes/bar/media/05DD1E0E-3AA6-4803-9FE3-95101CF69AC7.mov" -f null -














I've also tried initialising the
error
variable after every output, but without any success.

I'm running this under macOS 13.5 using ffmpeg version 6.0.


Why is the log output truncated or why does this script use truncated input ? Or, where does the script fail leading to these errors ?


-
How Funnel for Piwik Analytics enriches your Piwik experience giving you ultimate insights and debugging capabilities
13 janvier 2017, par InnoCraft — CommunityNo matter what type of website or app you have, whether you are trying to get your users to sign up for something or sell products, there is a certain number of steps your visitors have to go through. On every step you lose visitors and therefore potential revenue and conversions. Therefore it is critical to know where your visitors actually follow those steps in your website or app, where you lose them and where your visitors maybe get confused. By defining a funnel, you can improve your conversion rates, sales and revenue as you can exactly determine where you lose your visitors in converting your goal or a sale.
A Funnel defines a series of steps that you expect your visitors to take on their way to converting a goal. Funnels, a premium feature for Piwik developed by InnoCraft, lets you create funnels to get the data you need to improve your websites and mobile apps. Learn more about Funnel.
In this blog post we will cover the reports the Funnel plugin provides. The next blog post shows you how to configure and validate your funnel in Piwik.
Integration in Goal reports
At Piwik and InnoCraft, we usually start looking into our goal reports. Funnel integrates directly into each goal reporting page giving you a quick overview how your funnel is doing. This saves us a lot of time as we don’t have to separately look into each funnel page and only takes us maybe an additional second to keep an eye on our funnels. By clicking on the headline or “View funnel report” link, you can directly go to the funnel report to get a more detailed report if you notice any spike in the evolution of the conversions or conversion rate.
Getting an overall Funnel overview
Next we usually go to the “Funnel Overview” page where it shows a list of all activated Funnels and their performance over time. You will find the look familiar as it is similar to the “Goals Overview” page. If we find something unusual there, for example any spikes, we usually directly click on the headline of the Funnel to go to the detailed Funnel report. You can also choose a funnel from the left reporting menu or search for a funnel by entering the shortcut “f”.
Viewing a funnel report
A funnel reporting page looks very similar to a Goal reporting page. It starts with an evolution graph and sparklines showing you the performance of your funnel over time.
In the evolution graph you can select the metrics you want to plot. We usually have an eye on the funnel conversion rate and the number of “Funnel entries” or the number of “Funnel conversions”. The conversion rate alone does not show you how your funnel is performing. Imagine the rate is always stable at around 20% and you might think everything is alright, but if the number of visitors that take part in your funnel goes down, you might have a problem as the number of funnel conversions actually decreases even though the rate is the same. So we recommend to not only have a look at the conversion rate. The report will remember the metrics you want to plot each time you open it so you don’t have to re-select them over and over again.
The funnel overview
In the funnel overview we are giving you more details about the funnel and goal related conversion metrics so you don’t have to switch between the goal and funnel report and compare them easily.
When you analyze a funnel report, you might not always remember how the funnel is configured. Even though you specify names for each step you sometimes need to know on which pages a certain step will be activated. By clicking on the funnel summary link you can quickly look into the funnel configuration and also see all important metrics at a glance in a simple table without having to scroll.
You might also notice the Visitor Log link which will show you all actions for all visitors that have entered this funnel. This lets you really understand how your visitors navigate through your website and how they proceeded, exited or converted your funnel on a visitor level.
The Funnel visualization
Below the funnel overview you can visually see where your visitors entered, proceeded, converted and exited your funnel. We kept the UI clean so you can focus on the important things.
Most tools only give you the pages where visitors have entered your funnel but we do better and also show you the list of external referrers used by visitors to enter your funnel directly (marketing campaigns, search engines or other websites). Also we do not only show only the top 5 pages but up to 100 pages and 50 referrers (more can be configured if needed). When you hover a row, you will not only see the number of hits but also the percentage each row has contributed to the entries. Here you want to look and understand how your visitors enter your funnel and based on the data maybe invest in successful referrers, campaigns and pages. If the pages or referrers you expect to see there don’t show up, your users might not understand the path you had in mind for them.
Next you may notice how many visits have gone through each step, in this case 3487 visits. The green and red bar lets you quickly identify how many of your visitors have proceeded to the next step (green) compared to how many have exited the funnel at this step (red). Ideally, most of the bar is green and not red indicating that more visitors proceed to the next step than they exit.
Now the next feature is really valuable. When you hover the step title or the number of visits, you will notice that two icons appear :
Those two little icons are really powerful and give you even more insights to really dig into all the data. The left icon shows you the visitor log showing all actions of each visitor that have participated in this particular funnel step. This means for each step you get to see all the details and actions of each visitor. This lets you really debug and understand problems in your funnel.
At InnoCraft, we understand that plain numbers are often not so valuable. Only the evolution over time, when you put the numbers in relation to something else you can really understand how your website is doing. The icon to the right lets you do exactly this, it lets you view the row evolution for each funnel step. We are sure you will enjoy this feature. It lets you explore how each funnel step is doing over time. For example the number of entries for a step or how many proceeded to the next step from here over time. Here you ideally want to see that the “Proceeded Rate” increases over time, meaning more and more visitors actually proceed to the next step instead of exiting it.
We are sure you will really love those features that give you just those extra insights that other tools don’t give you.
On the right you can find out where your visitors went to, if they did not proceed any further in the funnel. This lets you better understand why they left the funnel and did not proceed any further.
At the end of the funnel report you find again the number of conversions and the conversion rate. Here we recommend looking into the visitor log when you hover the name of the last step as you can analyze how each visitor converted this funnel in detail.
Applying segments
Funnels lets you apply any Piwik segment to the Funnel report allowing you to dice your visitors multiplying the value you get out of Funnel. For example you may want to apply a segment and analyze the funnel for visitors that have visited your website or mobile app for the first time vs. recurring visitors. Sometimes it may be interesting how visitors from different countries go through your funnel, the possibilities are endless. We really recommend to take advantage of segments to understand your different target groups even better.
The plugin also adds some new segments to your Piwik letting you segment any Piwik report by visitors that have participated in a funnel or participated in a particular funnel step. For example you could go to the “Visitors => Locations” report and apply a segment for your funnel to see which countries have participated or converted most in your funnel.
Widgets, Scheduled Reports, and more.
This is not where the fun ends. Funnels defines new widgets that you can add to your dashboard or export it into a third party website. You can set up scheduled reports to receive the Funnel report automatically via email or sms or download the report to share it with your colleagues. It works also very well with Custom Alerts and you can view the Funnel report in the Piwik Mobile app. You can manage Funnels via HTTP API and also fetch all Funnel reports via the HTTP Reporting API. The plugin is really nicely integrated into Piwik we will need some more blog posts to show you all the ways Funnels advances your Piwik experience and how it lets you dig into all the data so you can increase your conversions and sales based on this data.
How to get Funnels and related features
You can get Funnels on the Piwik Marketplace. If you want to learn more about Funnels you might be also interested in the Funnel User Guide and the Funnel FAQ.
Similar to Funnels we also offer Users Flow which lets you visualize the flow of your users and visitors across several interactions.
-
Dreamcast Finds
15 avril 2022, par Multimedia Mike — Sega DreamcastPursuant to my recent post about finally understanding how Sega Dreamcast GD-ROM rips are structured, I was able to prepare the contents of various demo discs in a manner that makes exploration easy via the Internet Archive. This is due to the way that IA makes it easy to browse archives such as ZIP or ISO files (anything that 7zip knows how to unpack), and also presents the audio tracks for native playback directly through the web browser.
These are some of the interesting things I have found while perusing the various Dreamcast sampler discs.
Multimedia Formats
First and foremost : Multimedia-wise, SFD and ADX files abound on all the discs. SFD files are Sofdec, a middleware format used for a lot of FMV on Dreamcast games. These were little more than MPEG video files with a non-MPEG (ADPCM instead) audio codec. VLC will usually play the video portions of these files but has trouble detecting the audio. It’s not for lack of audio codec support because it can play the ADX files just fine.
It should be noted that Dreamcast Magazine Disc 11 has an actual .mpg file (as opposed to a .sfd file) that has proper MPEG audio instead instead of ADX ADPCM.
The only other multimedia format I know of that was used in any Dreamcast games was 4XM, used on Alone In The Dark : The New Nightmare. I wrote a simple C tool a long time to recover these files from a disc image I extracted myself. Rather than interpreting the ISO-9660 filesystem, the tool just crawled through the binary blob searching for ‘4XMV’ file signatures and using length data within the files for extraction.
Also, there are plentiful PVR files (in reference to the PowerVR2 GPU hardware that the DC uses) which ‘file’ dutifully identifies as “Sega PVR image”. There are probably tools to view them. It doesn’t appear to be a complicated format.
Scripting
I was fascinated to see Lua files on at least one of the discs. It turns out that MDK 2 leverages the language, as several other games do. But it was still interesting to see the .lua files show up in the Dreamcast version as well.That Windows CE Logo
Every Sega Dreamcast is famously emblazoned with a logo mentioning Microsoft Windows CE :
It has confused many folks. It also confused me until this exploratory exercise. Many would wonder if the Dreamcast booted up into some Windows CE OS environment that then ran the game, but that certainly wasn’t it. Indeed, Dreamcast was one of the last consoles that really didn’t have any kind of hypervisor operating system managing everything.
I found a file called rt2dc.exe on one sampler disc. At first, I suspected that this was a development utility for Windows to convert some “RT” graphical format into a format more suitable for the Dreamcast. Then, ‘file’ told me that it was actually a Windows EXE but compiled for the Hitachi SH-4 CPU (the brain inside the DC). Does the conversion utility run on the Dreamcast itself ? Then I analyzed the strings inside the binary and saw references to train stations. That’s when it started to click for me that this was the binary executable for the demo version of Railroad Tycoon 2 : Gold Edition, hence “rt2dc.exe”. Still, this provides some insight about whether Dreamcast “runs” Windows. This binary was built against a series of Windows CE libraries. The symbols also imply DirectX compatibility.
Here is a page with more info about the WinCE/DirectX variant for the Sega Dreamcast. It seems that this was useful for closing the gap between PC and DC ports of games (i.e., being able to re-use more code between the 2 platforms). I guess this was part of what made Dreamcast a dry run for the DirectXbox (later Xbox).
Here is a list of all the Dreamcast games that are known to use Windows CE.
Suddenly, I am curious if tools such as IDA Pro or Ghidra can possibly open up Windows CE binaries that contain SH-4 code. Not that I’m particularly interested in reverse engineering any algorithms locked up in Dreamcast land.
Tomb Raider Easter Egg
The volume 6 sampler disc has a demo of Tomb Raider : The Last Revelation. While inspecting the strings, I found an Easter egg. I was far from the first person to discover it, though, as seen on this The Cutting Room Floor wiki page (look under “Developer Message”). It looks like I am the first person to notice it on the Dreamcast version. It shows up at offset 0xE3978 in the Dreamcast (demo version) binary, if anyone with permissions wants to update the page.Web Browser
Then there’s the Web Browser for Sega Dreamcast. It seemed to be included on a lot of these sampler discs. But only mentioning the web browser undersells it– the thing also bundled an email client and an IRC client. It’s important to remember that the Dreamcast also had a keyboard peripheral.I need to check the timeline for when the web browser first became available vs. when the MIL-CD hack became known. My thinking is that there is no way that the web browser program didn’t have some security issues– buffer overflows and the like. It seems like this would have been a good method of breaking the security of the system.
Ironically, I suddenly can think of a reason why one might want to use advanced reverse engineering tools on Dreamcast binaries, something I struggled with just a few paragraphs ago.
Odds ‘n Ends
It’s always fun to find plain text files among video game assets and speculating on the precise meaning… while also marveling how long people have been struggling to correctly spell “length”.Internationalization via plain text files.
Another game (Slave Zero) saw fit to zip its assets. Maybe this was to save space in order to fit everything on the magazine sampler disc. Quizzically, this didn’t really save an appreciable amount of space.
Finally, all the discs have an audio track 2 that advises that the disc must be played in a Dreamcast console. Not unusual. However, volume 4 also has a Japanese lady saying the same thing on track 4. This is odd because track 4 is one of the GD area audio tracks and is not accessible with normal CD hardware. Further, she identifies the disc as a “Windows CE disc”.
The post Dreamcast Finds first appeared on Breaking Eggs And Making Omelettes.