HaSuite / Harepacker Resurrected

repository·master·Indexed 20 days ago

https://github.com/lastbattle/harepacker-resurrected

A collection of tools for MapleStory content creation and modification. It includes HaRepacker for modifying WZ archives and IMG directories, HaCreator for map design with support for Traditional WZ and IMG Filesystem modes, and AI-powered image up-scaling. The suite features a MapSimulator for combat logic, hot-swapping for live asset reloading, and comprehensive support for various WZ format versions from Beta to 64-bit Modern.

Tokens
202.8K
Snippets
257
Records
729
Agent score
70%

What's inside harepacker-resurrected

  1. Overview of HaSuite project components

    master

    HaSuite is a collection of tools for MapleStory development and editing. The core components include:

    • HaCreator: A level editor for MapleStory.
    • HaRepacker: A .wz file editor.
    • HaSharedLibrary: A shared library used by both HaRepacker and HaCreator, primarily for GUI elements.
    • Real-ESRGAN: Integrated for AI-based 2D image up-scaling.
    • spine-csharp: A 2D animation library (version 2.1.25).
    • UnitTest_WzFile: A testing suite for verifying .wz files across different versions.
    • MapleLib2: A library based on MapleLib, WzLib, and community information for handling MapleStory data.
  2. Overview of the APNG library

    master

    The APNG library is a specialized implementation used for handling Animated Portable Network Graphics (APNG). It is constructed by combining several components:

    • A version of libpng that has been patched with APNG support (from the SourceForge APNG project).
    • zlib for compression.
    • Code integrated from tga2apng.

    Note that licensing is granular: the root LICENSE (GPLv3) applies to the folder itself, but files in subfolders follow their own specific licenses (e.g., the libpng license for the patched library and the zlib license for zlib).

  3. MapSimulator Client Parity Backlog Overview

    master
    The MapSimulator Client Parity Backlog is a technical tracking document used to identify and bridge the functional gaps between the MapSimulator and the original game client. It focuses on achieving 'parity' by ensuring the simulator implements the same UI windows, interaction logic, and packet-driven behaviors found in the client. The backlog is organized by functional areas such as progression, utility windows, and service-specific interfaces (e.g., Cash Shop, ITC).
  4. MapSimulator Client Parity Backlog Overview

    master

    The MapSimulator Client Parity Backlog is the authoritative document for tracking the progress of bringing the MapSimulator's functionality in line with the original MapleStory client. It categorizes work into three distinct areas:

    1. Shipped vs. Missing Work: Tracking what has already been implemented in the simulator versus what remains to be done.
    2. Simulator Features vs. Player/Avatar Parity: Distinguishing between general simulator mechanics and the specific logic required to replicate player/avatar behavior.
    3. Code-Anchored Claims: Every parity requirement is linked to specific code seams within the HaCreator/MapSimulator directory or specific memory addresses/functions identified via reverse engineering of the client.
  5. Understand MapSimulator Client Parity Backlog

    master

    The MapSimulator Client Parity Backlog is a technical tracking document used to measure how closely the MapSimulator implementation matches the native client's behavior for specific UI and gameplay features. It tracks progress (e.g., Partial) across different 'seams'—the points where the simulator interacts with packet data, WZ assets, or presentation logic.

    Developers use this to identify 'gaps' where the simulator uses managed metadata or approximations instead of byte-for-byte native COM objects (like IWzGr2DLayer) or exact native lifecycles (like CTutor or CUtilDlg).

  6. Understand MapSimulator Client Parity Backlog

    master

    The MapSimulator Client Parity Backlog tracks the progress of replicating client-side behaviors (fields, wrappers, and packet ownership) within the MapSimulator. The goal is to achieve parity with the original client by using WZ (World Z) data and IDA-derived logic to ensure the simulator behaves identically to the actual game client.

    Key areas of focus include:

    • Transit and Voyage Field Wrappers: Handling ship objects, route normalization, and transport-owned session bridging.
    • Tutorial, Camera-Mask, and Presentation Wrappers: Replicating limited-view drawing logic, tutorial appearance contracts, and wedding-photo scene transitions.
    • Special Field and Minigame Parity: Ensuring specific field types (like Aran tutorials or wedding scenes) follow the correct WZ-backed or packet-driven logic.
  7. WZ Format Documentation Index

    master

    The WZ format documentation is organized into several key areas covering file structure, history, management, and specialized systems like Canvas and Outlinks. Use the following resources to navigate the format details:

    • WZ File Overview: Explains what WZ/IMG files are, their internal structure, property types, and encryption methods.
    • WZ Format History: Details the evolution of the format across different game versions (Beta, Pre-BB, Post-BB, 64-bit, and MS packs).
    • WzFileManager Reference: Documentation for the central class used for loading, caching, and detecting WZ file formats.
    • Canvas & Outlink System: Explains how _Canvas directories and _outlink/_inlink resolution works.
  8. Identify the MapleStory Classic World Content Scope

    master

    Based on datamined WZ metadata, the Classic World content is significantly more limited than the live game, focusing on the early era (roughly v.0.28).

    Key Content Constraints:

    • Job System: Limited to 1st and 2nd jobs only (Explorers only).
    • Geography: Restricted to Victoria Island (including new Shallow/Deep Passage maps).
    • Bosses: High-tier bosses are limited to field bosses like Rotten Mushmom (700003) and Jr. Balrog (700001).
    • Progression Systems: Systems like Cubes, Starforce, and Potential are disabled. Free Market is present (11 channels).
    • Scroll System: Uses a redesigned tier system (Lesser/Intermediate/Greater/Chaos) instead of the traditional 10%/60%/100% system. The Chaos tier includes a cursed: 100 property, indicating guaranteed destruction on failure.
  9. Current status of MapSimulator client parity implementation

    master

    The MapSimulator is undergoing a parity process to match client behavior. The following core systems have moved beyond the stub phase and are currently implemented or in refinement:

    • Avatar Parity: Includes action coverage, rare-action rendering, facial expression behavior, and anchor fallback rules. Mount and transform handling are partially implemented.
    • Skill Parity: Supports loading and casting the full player skill catalog, runtime job swaps, buff and cooldown feedback, and various movement-family and summon behaviors.
    • Physics and Movement: Includes runtime seams for ladder lookup, float collision, movement-path snapshots, and moving-platform foothold sync.
    • Combat and UI: Features HP indicators, damage rendering, status-bar layout, warning flashes, chat strip behavior, skill UI layout, and tooltip reuse (currently in the refinement stage).
    • NPC and Quest Interaction: Provides a baseline via dialogue overlays, quest lists, and common quest-state mutations (full scripting and inventory-backed requirements are still incomplete).
  10. Analyze MapleStory Classic World WZ metadata

    master
    The MapleStory Classic World datamined metadata consists of 3,859 files across 46 WZ archives (416 MB). This data represents a highly restrictive, early-era version of the game (similar to GMS v.0.0x–v.28) rebuilt on a modern engine. Key characteristics include a focus on Victoria Island, a limited job system (up to 2nd job), and a redesigned 4-tier scrolling system. Use this metadata to understand the scope of available assets, including equipment, character appearances, maps, monsters, NPCs, items, skills, and UI elements.
  11. Current MapSimulator Feature Status

    master

    The MapSimulator has moved beyond basic player simulation. The following features are considered implemented (shipped) and are now in the 'refinement' or 'parity' phase:

    • Character/Avatar: Local character movement (foothold, ladder, rope, swim, fly, jump, prone, hit, death, respawn), WZ loading (body, head, face, hair, equipment, weapon overlays), and z-map ordering.
    • Skills: Generic skill system including job skill loading, buffs, cooldowns, projectiles, hit effects, and quick-slot assignment.
    • World/Environment: Mob and drop pools, hidden portal support, damage number rendering (from WZ), and HP bars (mob and boss).
    • Physics: Runtime seams for ladder lookup, float collision, movement-path snapshots, and moving-platform foothold sync.
    • UI/Interaction: Dialogue overlays, quest lists, and common quest-state mutations.