Stephane-D / SGDK

SGDK - A free and open development kit for the Sega Mega Drive
https://www.patreon.com/SGDK
MIT License
1.75k stars 187 forks source link

Charger une image en wram #172

Closed izzidor closed 4 years ago

izzidor commented 4 years ago

Bonjour, J'expérimente les divers fonctions du sgdk, je souhaite charger en Wram une image .bmp 8bits 320x224 en tiles 8x8 . Cette image a été crée avec graphicsgale. J'utilisela fonction " VDP_loadTileSet ". J'ai bien definie la ressource en tant que " IMAGE " dans le .res, lors de la compilation j'ai une ereur, extrait du terminal : ****Microsoft Windows [version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. Tous droits réservés.

D:\ProgMD\teste>%GDK%\bin\make -f %GDK%\makefile.gen d:/ProgMD/GenDev/bin/mkdir -p src/boot d:/ProgMD/GenDev/bin/mkdir -p out java -jar d:/ProgMD/GenDev/bin/rescomp.jar res/resources.res res/resources.rs -dep out/res/resources.o ResComp 2.91 - SGDK Resource Compiler - Copyright 2020 (Stephane Dallongeville)

Resource: IMAGE screentitle "bg\tf.bmp" 0 --> executing plugin IMAGE... 'D:\ProgMD\teste\res\bg\tf.bmp' uses color index >= 64, IMAGE resource requires image with a maximum of 64 colors Error: cannot compile resource 'IMAGE screentitle "bg\tf.bmp" 0' java.lang.IllegalArgumentException: 'D:\ProgMD\teste\res\bg\tf.bmp' uses color index >= 64, IMAGE resource requires image with a maximum of 64 colors at sgdk.rescomp.resource.Image.(Image.java:59) at sgdk.rescomp.processor.ImageProcessor.execute(ImageProcessor.java:66) at sgdk.rescomp.Compiler.execute(Compiler.java:581) at sgdk.rescomp.Compiler.compile(Compiler.java:131) at sgdk.rescomp.Launcher.main(Launcher.java:62) res/resources.res: error on line 2 d:/ProgMD/GenDev/bin/mkdir -p out/res/ d:/ProgMD/GenDev/bin/gcc -x assembler-with-cpp -m68000 -Wall -Wextra -Wno-shift-negative-value -fno-builtin -Iinc -Isrc -Ires -Id:/ProgMD/GenDev/inc -Id:/ProgMD/GenDev/res -Bd:/ProgMD/GenDev/bin -O3 -fuse-linker-plugin -fno-web -fno-gcse -fno-unit-at-a-time -fomit-frame-pointer -flto -c res/resources.rs -o out/res/resources.o gcc.exe: error: res/resources.rs: No such file or directory gcc.exe: warning: '-x assembler-with-cpp' after last input file has no effect gcc.exe: fatal error: no input files compilation terminated. make: * [out/res/resources.o] Error 1**

Mon code : **#include

include

int main() { VDP_setPalette(PAL1, screentitle.palette->data); VDP_loadTileSet(screentitle.tileset,1,DMA); VDP_setTileMapXY(BG_A,TILE_ATTR_FULL(PAL1,0,FALSE,FALSE,1),0,0);

while(1)
{
    VDP_waitVSync();
}
return (0);

}**

Avec des images plus petite du genre 32x32, aucun souci. Autre chose, avant chaque compilation je supprime tout les fichiers generés (resource.o, ect..) merci pour l'aide.

Stephane-D commented 4 years ago

Ce message est normal, la Megadrive fonctionne avec 4 palettes de 16 couleurs, il faut donc réduire le nombre de couleurs sur l'image à 16 couleurs pour que ça fonctionne. On peut utiliser plusieurs palettes mais il faut alors respecter les contraintes de la machine (1 palette par tile).