Jump to content
djubyy

BMP to tiles genitile débutant

Recommended Posts

Je souhaite afficher une image bmp sur md je sais que l'on dois respecter certain condition, mais je n'arrive pas à les convertirs en tiles comme l'indique le lien  "http://sega4ever.power-heberg.com/tutoriaux/ProgMD/Genitile.html".
Auriez vous une façon plus simple de le faire pour pouvoir l'intégrer a mon code via SGDK.
De plus j'ai install genitille que je le lance via ms dos et la il ne se passe rien je me suis aider du fichier.bat mais nada (j'ai bien configurer l'affectation ou se trouve le prog via le.bat et renommé le nom de l'image.mais rien?

 

post-6089-0-86435400-1408695945_thumb.jpg

Share this post


Link to post
Share on other sites

Bonjour Djubyy,

 

Déjà il faut savoir que mon tutorial sur Sega4ever n'est plus mit à jour depuis maintenant 3 ans ( :???: ).

Ce qui fait que les outils et les méthodes ont évolué.

 

Genitile reste un excellent outil et je m'en sert encore quelquefois quand je travaille en ASM mais vu que tu bosse avec SGDK il y a des méthodes encore plus simple :cool: .

Stef à inclu un gestionnaires de ressources à SGDK il s'appelle rescomp et gère les formats suivant :

 

 

Supported resource type:
- BITMAP    bitmapped image type resource, used for the Bitmap SGDK engine (do not use it as tile resource).
- PALETTE   palette type resource, used as color input for Bitmap, Image or Sprite resource.
- TILESET   tileset type resource, contains tiles data which are used by Image or Sprite resource.
- MAP       map type resource (tilemap data).
- IMAGE     image type resource, internally contains Palette, Tileset and Map data and can be used to draw a complete background.
- SPRITE    sprite type resource, used to handle sprites with the SGDK Sprite engine..
- TFM       TFM music type resource (.tfd or .tfc file only), used to play music.
- VGM       VGM music type resource (.vgm file only), used to play music.
- WAV       WAV sound type resource (.wav file only), used to play sample sound data.
- PCM       PCM sound type resource (.pcm file only), used to play sample sound data.
- BIN       any binary data file which do not need any specific any conversion or processing.

 

Pour travailler avec c'est très simple il faut faire un dossier nommé "res" à la racine de ton projet, dans ce dossier tu va déclarer dans des fichiers extension .res les différentes ressources que tu va utiliser dans ton programme.

Tu peut faire un ou plusieurs fichiers res selon tes besoins : exemple un par niveau.

 

voila un exemple de déclaration de ressources dans un fichier res:

IMAGE castle00_image "Intro/castle0_layer0.bmp" -1
IMAGE castle01_image "Intro/castle0_layer1.bmp" -1
IMAGE world_cotes "World/map/world1_c.png" -1
IMAGE world_terre "World/map/world1_t.png" -1
SPRITE hiryuu_sprite "Intro/Hiryuu_spr1.png" 8 8 -1 60
SPRITE lenna_sprite "Intro/Lenna_spr2.bmp" 2 2 -1 5
SPRITE tycoon_sprite "Intro/Tycoon_spr2.png" 2 2 -1 5
WAV Hiryuu_owl "Intro/Hiryuu_owl.wav" 0

je t'invite fortement à lire le fichier d'explication .txt de rescomp qui se situe dans tools/rescomp, avec le readme et mon exemple tu devrait comprendre rapidement comment ça marche.

 

Une fois que ton fichiers ressources est créer , lors de la prochaine compilation de ton projet il va s'auto-inclure et te générer un fichier header.

il te suffit alors d'inclure ton header pour pouvoir appeler les différentes ressources.

 

Voici un exemple avec un simple scrolling sur une map

/*
 *  Final Fantasy Early Prototype
 *  By X-death
 *
 *  World1 Level Code
 *  Created on 17/08/14
 *  Last MAJ : 17/08/14
 */

#include "genesis.h"

// Ressource part

#include "./res/World.h"


static void handleInput();
static void UpdatePos();

volatile int ViewX=0;
volatile int ViewY=0;

volatile u16 value;


void Load_World()
{


    // Clean Vram & CRAM

    Engine_VDP_Clean();

    u16 palette[64];
    u16 ind;

    // load and draw map

    VDP_setEnable(0);
    VDP_setPlanSize(64,32);

    ind = TILE_USERINDEX;
    VDP_drawImageEx(BPLAN, &world_cotes, TILE_ATTR_FULL(PAL0, FALSE, FALSE, FALSE, ind), 0, 0, FALSE, TRUE);
    ind += world_cotes.tileset->numTile;
    VDP_waitDMACompletion();
    VDP_drawImageEx(APLAN, &world_terre, TILE_ATTR_FULL(PAL1,FALSE, FALSE, FALSE, ind), 0, 0, FALSE, TRUE);


    // prepare final palette

    memcpy(&palette[0], world_cotes.palette->data, 16 * 2);
    memcpy(&palette[16], world_terre.palette->data, 16 * 2);

    VDP_setEnable(1);

    // Load final palette

    VDP_setPalette(0, world_cotes.palette->data);
    VDP_setPalette(1, world_terre.palette->data);

    // load Scrolling Mode

    VDP_setScrollingMode(HSCROLL_PLANE, VSCROLL_PLANE);


    while (1)
    {
        handleInput();
        UpdatePos();
        VDP_waitVSync();
    }
}

static void handleInput()
{
    value = JOY_readJoypad(JOY_1);

    JOY_update();

    if (value & BUTTON_UP )
    {
        ViewY=ViewY-1;
    }

    if (value & BUTTON_DOWN )
    {
        ViewY=ViewY+1;
    }

    if (value & BUTTON_LEFT )
    {
        ViewX=ViewX+1;
    }

    if (value & BUTTON_RIGHT )
    {
        ViewX=ViewX-1;
    }
}

static void UpdatePos()
{
    VDP_setHorizontalScroll(BPLAN,ViewX);
    VDP_setVerticalScroll(BPLAN,ViewY);
    VDP_setHorizontalScroll(APLAN,ViewX);
    VDP_setVerticalScroll(APLAN,ViewY);
}

Share this post


Link to post
Share on other sites

×
×
  • Create New...