ROM Hack Itadaki Street Ds open translation

DailyWeather

Member
Newcomer
Joined
Feb 28, 2020
Messages
19
Trophies
0
Location
St. Paul, Minnesota
XP
740
Country
United States
I figure this thread is old enough that this may not be an issue anymore, or perhaps this is already figured out, but I was curious if anyone else had come across the ICL, ICG, ISC, and IOB file formats. I recently found out what the structure of these files are, being a format very similar to the earlier ACL, ACG, ASC, and AOB files, but updated for Iris.

ACG files start off as raw character graphics data in either 4bpp or 8bpp format, and are immediately followed by attribute data, with 1 byte per tile specifying which palette each tile uses. After the attribute data is the file footer, containing all the metadata about the file. Similarly, ISC files store raw screen data in either text, affine, or affine extended format. The file footer immediately follows this. The file footer for both of these files follows the same structure, being a string of data blocks starting with a 4-byte signature, 4-byte content length in little endian, and 0 or more bytes of data. As a result of storing the file this way, finding the file footer is a bit of a pain since there is no fixed offset from the beginning or the end of the file where it may occur. A nice consequence of this is that games don't need to do anything to get a pointer to the raw data, which was probably very nice on the GBA, but perhaps less nice coming into the DS era where NCL, NCG, NSC, NCE, and their runtime formats were introduced with more of a structure.

For ICG, the structure looks like this:
Block SignatureMeaning
LINKWhich palette file this is linked to relative to this file. The first byte is unused (seems always 1). The second byte is the length of the file name, and the rest is the file name.
CMNTFile comment. First byte is ignored (but seems to be 1), followed by a comment length in bytes, followed by the comment string. I presume that this may have allowed for multiple comments in a file, but it doesn't seem like this was used.
MODEGraphics mode. Modes I've seen so far are:
68bpp text
74bpp text
88bpp affine extended
SIZEThe dimensions of character data in tiles. Starts with 16-bit width, then 16-bit height.
VER File version. Only version 1 was used, so this should be IS-ICG01.
END End of file marker, 0 bytes in size. Footer must end in this (but can have padding beyond it).


For ISC, the structure looks like:
Block SignatureMeaning
CLRFThe clear bitmap of this BG. Each bit in this section corresponds to a tile of output. A bit value of 0 means the tile has data, and a 1 means it doesn't. Bits start from the LSB of each byte.
LINKRelative path of the ICG file linked to this file. Unlike in ICG files, the LINK section here is not length-prefixed, but null terminated instead.
CMNTFile comment. Same format as ICG comment string.
CLRCClear character. For all tiles corresponding to a cleared tile (as marked in CLRF), those tiles are filled with this data.
MODEThe type of background. The first byte is 0 for a text BG, otherwise it is an affine BG. The second byte is read but I can't see how it is used.
SIZEDimensions of screen data. First 2 bytes are the width in tiles, and next 2 bytes are the height in tiles.
VER File version. Should be IS-ISC01.
END End of file marker, 0 bytes in size. Footer must end with this (can also have other bytes after it).


For the case of ICL files, they're just raw palette data with no footer, same as ACL files.

There are also IOB files, which I presume were an evolution of AOB files and a precursor to NCE files, but I haven't looked into these much yet. Anyways, I hope this would possibly be helpful for anyone who may have also come across these kinds of files.

EDIT: after looking at this game's files myself, it looks like this footer is stripped from the files, so this is all entirely irrelevant to the topic at hand. Ah well.
 
Last edited by DailyWeather,

MPS64

Active Member
Newcomer
Joined
May 14, 2021
Messages
30
Trophies
0
Age
17
XP
333
Country
United States
I figure this thread is old enough that this may not be an issue anymore, or perhaps this is already figured out, but I was curious if anyone else had come across the ICL, ICG, ISC, and IOB file formats. I recently found out what the structure of these files are, being a format very similar to the earlier ACL, ACG, ASC, and AOB files, but updated for Iris.

ACG files start off as raw character graphics data in either 4bpp or 8bpp format, and are immediately followed by attribute data, with 1 byte per tile specifying which palette each tile uses. After the attribute data is the file footer, containing all the metadata about the file. Similarly, ISC files store raw screen data in either text, affine, or affine extended format. The file footer immediately follows this. The file footer for both of these files follows the same structure, being a string of data blocks starting with a 4-byte signature, 4-byte content length in little endian, and 0 or more bytes of data. As a result of storing the file this way, finding the file footer is a bit of a pain since there is no fixed offset from the beginning or the end of the file where it may occur. A nice consequence of this is that games don't need to do anything to get a pointer to the raw data, which was probably very nice on the GBA, but perhaps less nice coming into the DS era where NCL, NCG, NSC, NCE, and their runtime formats were introduced with more of a structure.

For ICG, the structure looks like this:
Block SignatureMeaning
LINKWhich palette file this is linked to relative to this file. The first byte is unused (seems always 1). The second byte is the length of the file name, and the rest is the file name.
CMNTFile comment. First byte is ignored (but seems to be 1), followed by a comment length in bytes, followed by the comment string. I presume that this may have allowed for multiple comments in a file, but it doesn't seem like this was used.
MODEGraphics mode. Modes I've seen so far are:
68bpp text
74bpp text
88bpp affine extended
SIZEThe dimensions of character data in tiles. Starts with 16-bit width, then 16-bit height.
VER File version. Only version 1 was used, so this should be IS-ICG01.
END End of file marker, 0 bytes in size. Footer must end in this (but can have padding beyond it).


For ISC, the structure looks like:
Block SignatureMeaning
CLRFThe clear bitmap of this BG. Each bit in this section corresponds to a tile of output. A bit value of 0 means the tile has data, and a 1 means it doesn't. Bits start from the LSB of each byte.
LINKRelative path of the ICG file linked to this file. Unlike in ICG files, the LINK section here is not length-prefixed, but null terminated instead.
CMNTFile comment. Same format as ICG comment string.
CLRCClear character. For all tiles corresponding to a cleared tile (as marked in CLRF), those tiles are filled with this data.
MODEThe type of background. The first byte is 0 for a text BG, otherwise it is an affine BG. The second byte is read but I can't see how it is used.
SIZEDimensions of screen data. First 2 bytes are the width in tiles, and next 2 bytes are the height in tiles.
VER File version. Should be IS-ISC01.
END End of file marker, 0 bytes in size. Footer must end with this (can also have other bytes after it).


For the case of ICL files, they're just raw palette data with no footer, same as ACL files.

There are also IOB files, which I presume were an evolution of AOB files and a precursor to NCE files, but I haven't looked into these much yet. Anyways, I hope this would possibly be helpful for anyone who may have also come across these kinds of files.

EDIT: after looking at this game's files myself, it looks like this footer is stripped from the files, so this is all entirely irrelevant to the topic at hand. Ah well.
man, thank you for sharing your piece anyways. I really hope this translation project gets finished...eventually
 

thinspoxoxo

Member
Newcomer
Joined
Nov 30, 2019
Messages
15
Trophies
0
Age
28
XP
79
Country
United States
does anyone have the font for the game's graphics? i can see the image folder and what not. we might as well edit the graphics while someone can come in and change the text
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    @Xdqwerty yep that's what I use my stick for most anymore, streaming tv shows, movies. or even youtube. Or doing kens mum.
    +1
  • K3Nv2 @ K3Nv2:
    RG Cube is going to be good for ps2 if it's $100
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, and since the default emulator is below average i downloaded some "replacements" like snes9x for snes games for example
    +1
  • Xdqwerty @ Xdqwerty:
    And I also have my ps3
    +1
  • BigOnYa @ BigOnYa:
    Yea ps3 is a beast still to today compared to most "sticks"
  • K3Nv2 @ K3Nv2:
    If you just want pi for emulation no point when Anbernic releases new shit every two seconds
    +1
  • BigOnYa @ BigOnYa:
    What's really cool about Pi's tho is you can have multiple SD cards with different OS on each SD card and change from say a gaming machine to a full fledged pc if wanted
  • K3Nv2 @ K3Nv2:
    Plus all bios are set up and usually includes at least 128gbs or 64
  • K3Nv2 @ K3Nv2:
    Yeah but if your main goal is just to play n64 and GameCube you can save about $50 and have the portability option
    +1
  • BigOnYa @ BigOnYa:
    True, but on 2 monitors at 4k. Its just want you want really, to each they own.
  • K3Nv2 @ K3Nv2:
    For a kids aspect Anbernic would be the better option they'd probably melt over the price on a good 4k display
    +1
  • BigOnYa @ BigOnYa:
    For that texasroo guy, I'd recommend the Spell and speak as his first system.
    +1
  • K3Nv2 @ K3Nv2:
    So they buy a pi5 kit for about $150 and say a 28" 4k display probably looking around $400 total
  • K3Nv2 @ K3Nv2:
    They'll be getting in the territory of portable Pcs anyway
    +1
  • BigOnYa @ BigOnYa:
    Again you get what you pay for, its like buying a S series for $300 but its only 1440p native, if you want true 4k, gotta get the X model for $500. But yea you right, when moms buying it anyways, you gotta stay cheap.
  • K3Nv2 @ K3Nv2:
    They could use HD out on their TV no real need for a monitor these days tbh the purists will disagree
  • K3Nv2 @ K3Nv2:
    I'm kind of phasing out on the need for wanting all these consoles cool to have but they just become dust build ups
  • BigOnYa @ BigOnYa:
    I here ya there, I have too many myself, and have hard time letting them go, since most of mine I've modded at some point. Anymore I just play Switch on the go, seriesx at home.
  • Xdqwerty @ Xdqwerty:
    ack my throat
  • K3Nv2 @ K3Nv2:
    I need to invest in some storage totes tbh
  • BigOnYa @ BigOnYa:
    Tots?
  • K3Nv2 @ K3Nv2:
    Tootles
  • BigOnYa @ BigOnYa:
    Tootles? Wtf
  • K3Nv2 @ K3Nv2:
    Oh tootles
  • BigOnYa @ BigOnYa:
    Oh totes , lol, like Tupperware storage, I gotcha
    BigOnYa @ BigOnYa: Oh totes , lol, like Tupperware storage, I gotcha