Jump to content

Gonhex

New Member
  • Posts

    5
  • Joined

  • Last visited

Reputation

4 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Load the ROM and click on that icon that looks like a Nintendo DS in CrystalTyle2. It will open a list with all the files. Right click on arm9.bin and decompress it (I think it is called something like extract there (?)). Open the decompressed file in an HEX-editor to edit it. The shiny rate should be at offset 0x18E1C if it is a european language, but better search for the byte sequence in that region (see here). Now you can insert the modified arm9.bin.
  2. You can add new maps and matrices by expanding the NARCs. a/0/0/8 - Maps a/0/0/9 - Matrix Step 1: Unpack the NARC. Step 2: Copy-Paste some files inside the folder and rename them. Step 3: Pack it again. They will now be editable in SDSME. The original files inside the NARCs have no name. The tool that unpacks it will give them numbers starting at 0 or 1. If you pack the folder to a new NARC it is important to make sure they are in the correct order after packing, not something like [1, 10, 11, 12, ..., 2, 20, 21...]. About the textures: yes, every map that uses tileset 2 share the same textures. Btw, the "textures" in SDSME are labeled wrong. That value links to a file which also chooses some other properties next to the textures but their ID matches. But don't for get the seasons If you change tileset 2 you also have to change the tilesets 3, 4 and 5.
  3. a/0/1/3 has been identified as area data. It defines which files are used to display the environment. Offset Size Description 0x0 2 Used building pack 0x2 2 Map textures 0x4 1 Translate animations 0x5 1 Sequential animations 0x6 1 Building type (inside/outside) 0x7 1 Ambient light (if no weather) 0x8 1 Outline profile 0x9 1 Unknown (usually 0x01) Most of the numbers are linking to members of this narc files: a/2/2/5 - Building models, outside a/2/2/6 - Building models, inside a/1/7/4 - Building textures, outside a/1/7/5 - Building textures, inside a/0/1/4 - Map textures a/0/6/8 - Animations (translate) a/0/6/9 - Animations (sequential) a/0/6/0 - Light profile, effects overworld and battles
  4. Standard movement permissions: In mapping tools like SDSME the permission data of gen. 5 games is organized in 8 matrices. A problem that everyone runs into when adding their own maps is that the height values for player and NPCs are not known. The height is calculated from the values in the first 4 layers. The permission data is part of the map-model files in a/0/0/8. There are 4 different types of permissions. All identified by an unique ID which is the first DWORD in the file-header: 0x34257: One permission block. Most common case 0x44347: Two permission blocks. Used for bridges or other things where the player can be on OR under 0x34452: One permission block. More than 8 layers. Not investigated yet... 0x2474E: No permission block. The collision data is extern and works in a different way. "3D collisions" (little endian inside the files: "0x34257" = "57 42 03 00") The permission block starts with info about its size: "20 00 20 00" -> 32x32 Tiles (cols x rows) followed by the data [1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 3...],... In spacial cases a 3rd data section is appended (more later). Following data must be read like this (16x16 Arrays): // 0x00__ 0x__00, 0x__01, 0x__02,... 0x__10, 0x__11, 0x__12,... ... // 0x01__ 0x__00, 0x__01, 0x__02,... 0x__10, 0x__11, 0x__12,... ... ... // 0xXX__: Layer 2 or 4 // 0x__XX: Layer 1 or 3 (B2W2) All Terrain Values: (Slope X, Slope Y) (323 Values) (B2W2) All Height Values: (1285 Values) Terrain: The given slopes are the resulting height difference by walking one tile to east or south. Take in mind that inclinations greater than 1 can not be climbed by the player so they are kind of useless. At 0x0002 there is something I called pointer. This value is used everywhere where the slope has corners, for example that hillock at Route 12. This fields are enumberated in the height-layer, startet by 0, and point right behind the permission block. Every corner produces 8 bytes: Offset Size Description 0x00 2 Terrain 1 0x02 2 Terrain 2 0x04 2 Height 1 0x06 2 Height 2 The Terrain (1 and 2) values must be calculated to get something in the table above. Terrain table -> permission file: Terrain 1: Offset + 1 Terrain 2: Offset / 4 The 3D characteristics of these tiles are formed by Terrain/Height 1 for the top-left and top-right corner and by Terrain/Height 2 for the bottom-left and bottom-right corner. All other tiles are using the values from the two tables above. If the inclination is 0 to all directions, the final height is the same as specified. Else the height is perpendicular to the surface and must be calculated to get the expected result. Important: The terrain- and height-values from B2W2 are not compatible with BW(1).
  5. Worldmap: (file index started by 0, german black 2 ROM) a/0/0/2 - Location names (file 109) and important buildings (file 377) a/0/8/4 - Texture related a/0/8/5 - Location data a/0/8/5 is an narc archive with only one entry. The file inside the narc holds all relevant data to make the world map interactable. Every location-section is 54 Bytes long. The data is organized like this (Size in bytes): Offset Size Description 0x00 2 Target Map ID 0x02 2 Pull cursor radius 0x04 4 (2+2) Pixel coordinates (x,y): Point and Pin 0x08 4 (2+2) Pixel coordinates (x,y): Radar circle 0x0C 4 (2+2) Pixel coordinates (x,y): Range (Top-Left) 0x10 4 (2+2) Pixel coordinates (x,y): Range (Bottom-Right) 0x14 2 Selection Range x 0x16 2 Target Point 0x18 2 Can Fly flag 0x1A 4 Padding 0x1E 2 Game progress: Save flag ID 0x20 2 Game progress: Disable flag ID 0x22 2 Info-text (top screen): Location name index 0x24 12 (6*2) Info-text (top screen): Building names index, 0xFFFF if empty 0x30 2 Pokedex select form 0x32 4 (2+2) Pixel coordinates (x,y): Pokedex selection
×
×
  • Create New...