San Andreas / Narzędzia / Narzędzia do tworzenia samochodów, map, modów itp.
ASIP v1 (ASI Package loader + Packager)
- AymenRDZ (Rockstar Algeria) | dodane przez AymenRDZ
- youtube.com/@rockdz
- 08/13/2026
- 478 Pobrania
Oceny:
Najpierw się zaloguj.
Ulubione:
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
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 !
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 foundGet 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
- Write buffer to temp file
- Call LoadAtomicFile2Return(tempPath)
- 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 !
Credits
Created by Rockstar Algeria for the GTA San Andreas modding community.
@rockdz
Komentarze
Liczba dodanych komentarzy: 1.

