Site hosted by Angelfire.com: Build your free website today!

DC Browser Reverse Engineering Project

Back to Index

Note

THIS DOCUMENT IS NOT COMPLETE, AND IS A WORK IN PROGRESS.
[12/22/01] Initial Version (0.1 is up). Sections missing.

About

Ahh... the DreamCast Web Browser. This application has made the dreamcast attractive to not only gamers, but those wishing a low-cost web-browsing and e-mail platform. However, I have a different future in mind for it...I want to be able to create customized browser CDs with my own content.. Images, MP3s, even Emulators or Homebrew DC games.

The Browsers

Now, lets get a bit more technical here, as to how exactly I plan to accomplish this perticular marvelous feat of wizardry. To begin with, here is a chart of available browsers, and to my knowledge their features. Click on the version number to download an image:

If you know of any information here that is wrong, or have any additional information (* signifies unconfirmed data), E-mail me now!
Manufacturer Version Region/Language BBA JavaScript Flash Java MP3 VMU SFD VoIP GINSU IRC
PlanetWebv1.0Nothing is known. Know something? E-mail me.
v2.004English/USNOv1.2 *YESNOYESYES *YESYESYESNO
v2.606 (2)English/USNOv2.0 *YESNOYESYES *YESYESYESNO
v3.0Recent Comercial Release. Order Here. Nothing is known (except it DOES support BBA).
DreamPassport v1.0 Nothing is known. Know something? E-mail me.
v2.0English/USYESv1.2 *YESYESNOYESYESNONOYES *
v3.0 (PSO)JAPYES *v2.0YESYESNOYESYESNONOYES
v3.16 (CT2)JAPYESv2.0 *YESYESNOYESYESNONOYES
v3.2aka Premium. I know nothing, if you do, tell me.
DreamKey v1.0EuropeNO1.2 *YESNO *NONO *NO *NONONO
v1.5EuropeNONO *NO *NO *NONO *NO *NONONO
v2.0EuropeNONO *NONOYESNONO *NONONO
v3.0Coming Feb 1st, 2002. Read More


Lets start at the beginning... The very first dreamcast web browser was created by PlanetWeb for Sega. I don't know if v1 ever existed, and if it did, I have never been able to get a hold of it to analyze. However, v2.0 and v2.6 are both available out in the wild (and 2.6 was given out for free by sega, but no more).

This browser wasn't the most packed with features or anything, it was a bit slow, but it has one very attractive characteristic. It supports GINSU and so will allow us to launch programs (using a special URL) from right inside the web browser! This PlanetWeb v2.6 browser is a very attractive choice for a menu platform, even if it can't show that much content (but it will play MP3s, although they must be smaller then 6MB). It doesn't use any .PVR files for the US, everything is either .GIF or .JPG .. so there are tons of small files, and if they're not put onto the cd in the proper order it would slowly destroy your poor dreamcast. It was also lacking support for Java.

While all this is going on, Sega released a different web browser to europe called DreamKey. To sum it up, it sucked. It wouldn't let you use your own ISP, only the Sega one, had support for almost nothing (I'm not sure exactly what it did support as I've never been able to track down a copy). Basically, it's uninteresting, as it doesn't do much but browse the web (and sometimes not even that, if you're using a version that's built into a game). If you have one of these in-game DreamKeys and want to try to browse the web with it, Read This

The DreamPassport browser is one that that's interesting. It supports almost everything you could want, even Java, is stable, and has BBA support. It however, doesn appear support GINSU so can't be used to launch other programs. The UI is contained inside .PVR files, which are much more efficient, but more difficult to customize. The string settings however (and general browser settings) are stored inside /DP3.INI (or /DP2.INI) and /DPETC/MESSAGES.INI in the browser CD. Using messages.ini it should be theoretically possible to translate at least parts of 3.0+ into English. It's interesting to note that v3.0 has been ripped from Phantasy Start Online, and that v3.16 came from Crazy Taxi 2.

Later versions of PlanetWeb and DreamPassport supported dreamcast extensions to web pages, mainly the ability to make the controller shake (if that addon was installed), as well as show images on the VMS (as well as download games, trade saves, and lots of other cool stuff). I've collected some of the necessary HTML code and tools for these VMS features below. But first, lets go into more techincal detail on the browsers.

VMS Features of DreamPassport and PlanetWeb

There are 3 special tags that can be used in a page to dreamcast-enhance it. One will allow you to display animation on the LCD, another allow an easy way to scroll a message across the LCD, and the last will make the controller vibrate.
Vibrating
To cause the DC Rumble Pack to vibrate, you have to insert the following (or similar) EMBED tag into your code (explanation follows).



typeTells the DC to shake it up
nameA name assigned to this particular vibrate configuration
loopHow many times to loop before stopping
freqVibration Frequency
powerHow hard to shake (1-9)
onTime to shake for
offTime not to shake for
hiddenShould be true
autostartSet to true if you want to start shaking when page loads, otherwise false


Using JavaScript, we are able to manipulate one or more vibrate configurations, and turn them on or off as we please. If the below JavaScript code is placed onto a page:
function vib1_on() {
 if(navigator.userAgent.indexOf("DreamPassport") != -1 ) {
    document.embeds["vib1"].vibrate=1;
 }
}

function vib1_off() {
 if(navigator.userAgent.indexOf("DreamPassport") != -1 ) {
    document.embeds["vib1"].vibrate=0;
 }
}
Then if the target of a link, for example, were to read "javascript:vib1_on()" then once the link was clicked, the shaking would start. You can define more then 1 vibrating configuration per page, just make sure you give them unique names, and only one can be set to autostart.
Scrolling a message on the LCD
Use the below code to make your page scroll a message across the LCD of the VMU when a DreamCast browser is used to access it (explanation follows):



typeTells the DC to shake it up
nameA name assigned to this particular scroller configuration
loopHow many times to loop before stopping (or infinite)
scrolldelayHow long to wait
scrollammountHow much to scroll by
textThe text that will be scrolled
hiddenShould be true
directionWhich way to scroll (left, or right)
behaviorscroll, slide, or alternate
fontFont size


Using JavaScript, we are able to turn the scroller on and off. If the below JavaScript code is placed onto a page:
function tick1_toggle() {
 if(navigator.userAgent.indexOf("DreamPassport") != -1 ) {
    (document.embeds["tick1"].display == 0) ?
         document.embeds["tick1"].display = 1
       : document.embeds["tick1"].display = 0;
 }
}
Then a link to it will toggle the scroller (read above for more info). A modified version of the above _on and _off procedudes would also work fine.

Showing an Image on the LCD
If you create your image and save it as an .LCD file (using Dream Animator or using a command-line conversion tool) then you can make it display on your visitor's VMUs using the below code:



I think it's fairly straightforward and requires little explanation, other then to note that port and slot are optional. The JavaScript code above will work for this embed as well.

Special URLs

There are a number of special urls supported by recent PW and DP browsers, and here's a list of the ones I'm aware of. This list was based upon this list and this list. Please note that this is NOT a complete list, the only way to get one is to look at the String Dumps below.

Navigation commands:
x-avefront://---.dream/util/visit
x-avefront://a--.avefront/navigation/backward
x-avefront://a--.avefront/navigation/forward
x-avefront://a--.avefront/navigation/reload
Menu options:
x-avefront://---.dream/proc/menu/bookmark
x-avefront://---.dream/proc/menu/jump
x-avefront://---.dream/proc/menu/mail
x-avefront://---.dream/proc/menu/chat
x-avefront://---.dream/proc/menu/help
x-avefront://---.dream/proc/menu/option
x-avefront://---.dream/proc/menu/connect
x-avefront://---.dream/proc/menu/disconnect
x-avefront://---.dream/proc/menu/exit
x-avefront://---.dream/proc/menu/back
x-avefront://---.dream/proc/menu/forward
x-avefront://---.dream/proc/menu/reload
x-avefront://---.dream/proc/menu/zoom
x-avefront://---.dream/proc/menu/file
x-avefront://---.dream/proc/menu/sntp
x-avefront://---.dream/proc/menu/urlchat
x-avefront://---.dream/proc/menu/pmsg_list

x-avefront://---.dream/proc/menu/accountinfo
x-avefront://---.dream/proc/menu/provider
x-avefront://---.dream/proc/menu/modem
Multi-Media Playback (append path to file being played at the end):
x-avefront://---.dream/proc/play/mpeg/
x-avefront://---.dream/proc/play/adx/
Execute other programs (as per \GINSU.INI), PW only! Replace **ginsuname** with section name from ginsu.ini.
x-avefront://---.dream/exec/**ginsuname**
VMS (will load a web page from VMS):
x-avefront://---.dream/vms/load/

Tools

Can't go into this battle empty handed.. You're likely to need a few things. This section is terribly incomplete.
CD Image Manipulation/Extraction
CDMage
ISOBuster
CD Recording
CDRecord & MKISOFS (you WILL need this one, even if your burner won't support it)
DiscJuggler
DiscJuggler Jinxter Driver (if your CDR isn't supported)
CDR-WIN
Nero

String Dumps

I've analyzed the binaries of the below browsers and extracted all the strings. If you're curious, take a look at what's contained in the browser. This includes a *complete* list of special URLs, however, some of them may not work, others may work in unexpected ways. A list of common special URLs with descriptions and syntax comes later.

Generated with strings -o -n 10 1st_.read.bin
Crap has been cleaned out for your enjoyment.
(Do NOT view in a web browser. Save to HD and use Wordpad)

PlanetWeb v2.6
DreamPassport v3.0

GINSU Information (PlanetWeb only)

SFD/SFA Information (Native DC Audio/Video Formats)

PVR Information (used in DP GUI)

DPS Information (used in DP GUI)

These section are not yet complete.

Links

Useful information...

GameWinner's DC Web Browser Page - Gives a few secrets relating to the PlanetWeb v2.0 and v2.6 browsers.
DCBG Homepage - Many good FAQs and Information
DC Bookmarklet Lab - Browser tools written in JS, used from within bookmarks.

Afterward

This page is not done.
This page contains innacurate or incomplete information.
This page is out of order.
This page should likely not be all one page.
However, I am but one man, and I'm slowly putting up all my research. E-mail me.