San Andreas / Narzędzia / Narzędzia do tworzenia samochodów, map, modów itp.

ASIP v1 (ASI Package loader + Packager)



Oceny:

Najpierw się zaloguj.


Ulubione:

Pobierz
45.13Kb
Odsetek antywirusów, które wykryły zagrożenie: 3.1746%
Zobacz raport skanowania antywirusowego

Videos

Nie dodano jeszcze filmów.
Zaloguj się, żeby dodać film do tego moda.

Opis

​

ASIP  v1

 

" Introducing ASIP. A lightweight archive format that bundles your mod's DFF models, TXD textures, INI configs, and other files into a single .asip file. ASI plugins read directly from it at runtime , no extraction, no messy game folders. Includes a visual manager tool for creating packages. "

 

 

What is ASIP?
ASIP (ASI Package) is a single-file archive format designed specifically for GTA San Andreas ASI plugin mods.

If you've ever distributed a mod that requires users to place multiple files (DFF models, TXD textures, INI configs, data files) into specific game folders, you know the pain:

  • Users put files in wrong folders
  • Files conflict with other mods
  • Uninstalling means hunting down every file you added
  • Game folder becomes a mess of loosely scattered mod files

ASIP solves all of this. You bundle everything into one .asip file. The user drops it next to the .asi plugin and it just works.

 


How It Works

Quote

 

Before ASIP (messy):
gta_sa.exe
myplugin.asi
  mytexture.txd         << user has to place this
  mymodel.dff            << and this
  myconfig.ini         << and this
  data/money.dat       << and maybe this

all in new folder within the game folder, making it messy job

 

With ASIP (clean):
gta_sa.exe
myplugin.asi
myplugin.asip        << single file, that's it

 

Your ASI plugin opens the .asip file at runtime, reads the assets it needs directly from the archive, and loads them into the game. No temp files, no extraction to disk, no user intervention.

The reader uses streaming I/O , it only loads the table of contents into memory (a few KB), and reads actual file data on demand via fseek + fread. Your game's RAM usage stays low.

 

What's Included

File                           Description                                                                
asip.h                        C header : public API (55 lines)
asip.c                        C source : streaming reader (328 lines)
ASIPManager.exe        Windows GUI tool for creating/editing .asip packages

 

ASIP File Format

┌─ Header (36 bytes) ──────────────────────────┐
│  Magic: "ASIP"                               │
│  Version, Flags                              │
│  Entry Count, Data Offset                    │
│  Created/Modified timestamps                 │
├─ Table of Contents ──────────────────────────┤
│  For each entry:                             │
│    Parent index (-1 = root)                  │
│    Type (0 = folder, 1 = file)               │
│    Name (case-insensitive)                   │
│    Data size + offset                        │
├─ File Data ──────────────────────────────────┤
│  Raw bytes of each bundled file              │
└──────────────────────────────────────────────┘

It's a virtual filesystem , folders and files with parent-child relationships. Think of it as a simplified ZIP, designed for read-only streaming in game plugins.

 

Tutorials !
 

Spoiler

Tutorial: For Mod Developers (Embedding ASIP in Your ASI)

 

Spoiler

Step 1: Add the reader to your project

Copy asip.h and asip.c into your ASI project. That's it, no external dependencies, no DLLs needed.

 

Step 2: Open the package

#include "asip.h"

Open the .asip file that sits next to your .asi

AsipHandle pkg = asip_open("myplugin.asip"); if (!pkg) {     // .asip not found — handle error     return; }


Step 3: Find and read files

Find a file by path (case-insensitive)

int32_t idx = asip_find_path(pkg, "models/20/money.dff"); if (idx < 0) return; // not found

Get file size

uint32_t size = asip_file_size(pkg, idx);

Read into buffer

void *buf = malloc(size); asip_read(pkg, idx, buf, size);


Step 4: Load into the game

 

Quote

Example: load a DFF model via GTA SA's CFileLoader

  1. Write buffer to temp file
  2. Call LoadAtomicFile2Return(tempPath)
  3. Delete temp file


Step 5: Close when done

 

Quote

 

asip_close(pkg);
Full API reference - see asip.h:

asip_open(path) - open a package
asip_close(h) - close and free
asip_reload(h) - re-open (for hot-reload)
asip_entry_count(h) - number of entries
asip_find_path(h, "folder/file.ext") - find by path
asip_read(h, index, buf, bufSize) - read file data
asip_read_at(h, index, offset, buf, bufSize) - read partial
asip_file_size(h, index) - get size
asip_is_folder(h, index) - check type
asip_name(h, index) - get name
asip_parent(h, index) - get parent index

 

 

Tutorial: For Mod Makers (Creating .asip Packages)

 

Spoiler

 

Step 1: Open ASIPManager

 

 

Run ASIPManager.exe  You'll see a tree view on the left and a file list on the right.

 

Step 2: Create a new package

 

File > New. Give it a name (this will be your .asip filename).

 

Step 3: Add your files

 

Right-click the tree view > Add Folder to create directories
Drag and drop files from Windows Explorer into the file list
Or use Add File button to browse
Organize your files however you want:

example:

models/
  20/
    money.dff
    dyn_cash.txd
data/
    myconfig.ini

 

Step 4: Save

 

File > Save As > Choose where to save your .asip file.

 

Step 5: Distribute

 

Ship the .asip file alongside your .asi plugin. Users just drop both files into their GTA SA folder.

 

Tutorial: For End Users

 

Spoiler

Download the .asi plugin and the .asip file
Place both files in your GTA San Andreas game folder (next to gta_sa.exe)
Launch the game
That's it

no manual file placement needed

 

Technical Details

 

Quote

Property                    Value                                                  
Format version          1
Archive header         36 bytes
TOC entry                  7 + nameLen + 24 bytes (variable)
Max entries               4,294,967,295 (theoretical)
Path separator          / (normalized from \)
Case sensitivity        Case-insensitive
File I/O                       Streaming (fseek + fread)
RAM usage                ~KB (TOC only)
Dependencies          None (C stdlib only)
License                     See LICENSE file


Why ASIP Over ZIP?

 

Quote

Feature                            ASIP                ZIP                                            
Streaming read              Yes                   No (needs seek to central dir)
RAM usage                     Minimal           Higher (central directory)
API simplicity                  10 functions    Complex (zlib, minizip)
Random access              Yes                 (by index or path)    Limited
Built for game mods       Yes                 General purpose
No extraction needed    Yes                 Depends on implementation

 

 

Downloads !

google drive download link : https://drive.google.com/file/d/1SfY9gD7gSysOw9qSTqjztfy202SHzzhv/view?usp=sharing

 

Credits
Created by Rockstar Algeria for the GTA San Andreas modding community.
@rockdz

​

Liczba dodanych komentarzy: 1.

DarknifeOdznaka moddera
Criminal Mastermind
1933
Profil
08/17/2026 19:19

looks promising

Cytuj | Odpowiedz | (0)