About IP.BIN


Staff member
Is there a tool to extract the ip.bin for a saturn game ? Also I d' like to know if this file need to be different for each game, for example I always use the same file (found somewhere on internet) for my tests. Maybe it's needed to to make one suitable for each software. I'm sure someone on this forum can help me.
I'll try and answer what I can for now from the top of my head (I'm at work)... Do send me a PM with more questions if you have any so I can give you links and stuff at home.

Yes, each Dreamcast game has its own IP.BIN. I'm assuming you're using some generic IP.BIN that works with your homebrew stuff or whatever it is you're doing, as you haven't mentioned having a problem with it. But for rips of commercial games it probably wouldn't work.

There are indeed tools to extract the IP.BIN from images such as .cdi, as well as a great IP.BIN editor to change all the flags and stuff contained inside it. I just can't think of the links right now. But what helps knowing is that IP.BIN is always 32768 bytes large and is contained in the first 16 sectors of a given ISO9660 file (a CD track containing an ISO filesystem, just to make it perfectly clear). So that's sectors 0 to 15 (at 2048 bytes each); the actual filesystem and its contents start at sector 16.

(This is also the reason you usually don't see an IP.BIN file on a selfbootable Dreamcast game, because it's not part of the filesystem anymore. Non-selfbootable games contain IP.BIN as a file so whatever boot disc you use can find it and start the game.)

There is a lot of stuff in IP.BIN - the game name, publisher, etc., name of the first file to load and execute (usually 1ST_READ.BIN), whether the game is a SegaOS (Katana) one or a WinCE one, whether VGA/RGB are supported, what kinds of input the game accepts - there are separate flags for each single button and direction on the normal controller, as well as lightguns, mice, whatnot - what regions the game will work in.... TONS of stuff! And there's even executable code inside IP.BIN, usually of the sort that finds and loads the specified file.

You might have heard of a serial slave CD image; it's a program to make the DC listen to a terminal program running on your PC via a coders cable or Ethernet linkup via BBA. The interesting part is that the serial slave is small enough to fit into IP.BIN itself, so that the only actual file contained in the ISO track is a readme.txt (just so there is *something*). Cool eh
I think he was talking about for the saturn...

I don't know much about the ip.bin but I'm pretty sure that the ip.bin has to have the address in memory that the program must be loaded to. I don't remember the exact offsets, but it's in two places in the ip.bin. This value has to match the value that the binary was compiled to. You can change that value from slStart in the makefile I believe. I'm not 100% positive though, so get a confirmation from one of the other guys.

For extracting the ip.bin, just use cdrwin and extract the first 32k of the cd...(atleast I think it was 32k, not at home can't check).
Originally posted by slinga@Apr 21, 2003 @ 09:13 PM

I think he was talking about for the saturn...

You're right but it doesn't mater, I tried some tools for Dreamcast, but it always said, it's not a Dreamcast GDROM. I tried some manual extraction but I prefer to have a complete explaination on how to extract correctly a IP.BIN. My goal was to exctract Outrun IP.BIN to test with the program loader
I ill try to extract a 32k block tomorrow but I have the feeling Saturn's IP are not so big.
If you are extracting from the game CD, use CDRWin

[*]click Extract Disc/Tracks/Sectors button

[*]Extract Mode... Select Sectors

[*]choose CD Reader

[*]enter output filename (e.g., IP.BIN

[*]Sector Selection Start: 0

[*]Sector Selection End: 15

[*]Datatype: Date Mode 1 (2048)

[*]click START button


If you have an image file, you can try mounting it as a virtual drive and follow the CDRWin instructions above. Alternatively, convert your image to MODE1/2048 (if it's not already MODE1/2048) and use a hex editor to extract the first 32,768 bytes to a new file.

start: 0x0000

end: 0x7FFF
MasterAkumaMatata, your answer is perfect
So Taelon and Slinga were right for the size of the IP.BIN (32k). Thanks a lot
Ohman. I'm such a freakin'


Rambling my butt off about all this Dreamcast crap, totally having missed the word "Saturn" in vbt's post. I am SO going to be sick.... somebody just bury me, please

Noooo, not you, antime & mal ....
Originally posted by Taelon@Apr 22, 2003 @ 04:35 PM

I am SO going to be sick.... somebody just bury me, please

Noooo, not you, antime & mal ....

What would I say?

I wasn't going to say anything...

Heheh, just me keeping up what seems on its way to become a running gag between you guys and me... y'know, with me always making these STUPID mistakes/oversights and antime talking of me dropping my pants and you kinda laughing with him and all that. Just me being goofy
I compiled the sources from IPGNUSRC.zip and nothing works when using this IP
even a simple prog.

Any idea ?

Now it works I've redefined APP_ENTRY to 0x6004000 and DATA.L H'06004000 but I want to use 0x6010000 and there must be something else to redefine, I'm wondering what's again needed.