Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » SysError Illegal Instruction
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

SysError Illegal Instruction

Posté le 22/04/2021 17:35

bonjour je teste mon add-in et j'ai cette erreur

SysError Illegal instruction
PC:00300538
TEA:003031e8
TRA:00000000
SGR:8804f9c0

mon add-in est codé en c++ avec des classes

l'image de la tilemap est en noir et blanc (avec couche alpha) encodé en 256 couleurs


Lephenixnoir En ligne Administrateur Points: 24699 Défis: 170 Message

Citer : Posté le 22/04/2021 17:49 | #


Regarde dans build-fx/map (ou build-cg/map). Tu as une liste de toutes les fonctions dans l'add-in avec leur adresse à gauche.

L'erreur s'est produite à l'adresse 00300538 (PC c'est l'adresse de l'erreur). Regarde quelle est la fonction à cet endroit-là (c'est celle dont l'adresse est la plus proche de 00300538 tout en étant plus petite).
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 22/04/2021 17:54 | #


je crois avoir trouvé l'erreur je vais voir si ca marche

Ajouté le 22/04/2021 à 18:02 :
ce code marche en c++?
int default_levelmap[128] = {
    00,00,00,00,00,00,00,00,
    00,00,00,00,00,00,00,00,
    00,00,00,00,00,00,00,00,
    01,01,01,01,01,01,01,00,
    00,00,00,00,00,00,02,00,
    00,00,00,00,00,00,02,00,
    00,00,00,00,00,00,02,00,
    00,01,01,01,01,01,01,01,
    00,02,00,00,00,00,00,00,
    00,02,00,00,00,00,00,00,
    00,02,00,00,00,00,00,00,
    01,01,01,01,01,01,01,00,
    00,00,00,00,00,00,02,00,
    00,00,00,00,00,00,02,00,
    00,00,00,00,00,00,02,00,
    01,01,01,01,01,01,01,01
};

pensés suicidaires
   90%
Lephenixnoir En ligne Administrateur Points: 24699 Défis: 170 Message

Citer : Posté le 22/04/2021 18:04 | #


Oui. Mais attention rajouter des 0 devant les nombres ça en fait de l'octal, donc vaut mieux éviter. À part ça très bien.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 22/04/2021 18:12 | #




je trouve pas l'erreur, il est entre 3 fichiers sur les 3 fichiers source
pensés suicidaires
   90%
Lephenixnoir En ligne Administrateur Points: 24699 Défis: 170 Message

Citer : Posté le 22/04/2021 18:14 | #


C'est ça ! Comme tu peux le voir la fonction qui concernée est __Z3run5Level. C'est un nom modifié pour diverses raisons et sous Linux tu peux obtenir le nom (et prototype) de la fonction en utilisant c++filt.

% echo __Z3run5Level | c++filt -_
run(Level)

Donc la fonction qui plante c'est la fonction run qui prend un Level en paramètre.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
FlamingKite Hors ligne Membre Points: 516 Défis: 9 Message

Citer : Posté le 22/04/2021 18:16 | #


@Pedrobzh Pas de rapport direct avec le topic (et la signification de l'erreur), mais suite aux messages dans la shout sur la manière de résoudre un problème en commentant :

Les commentaires sont du texte qui n'influencent pas l'exécution du code. Quand Darks te dit de commenter une partie du code, c'est comme s'il te disait de la supprimer pour voir si c'est cette partie qui posait problème, sauf que tu ne la supprimes pas, tu la commentes simplement.

Wikipédia (lien dessous) a écrit :
On utilise parfois une mise en commentaires pour court-circuiter quelque temps une section de code
Je te file le lien Wikipédia : https://fr.wikipedia.org/wiki/Commentaire_(informatique)

Pour le C ou C++, commenter pour une ligne se fait par :
code //commentaire

Commenter tout un bloc se fait par :
code
/* commentaire ligne 1
commentaire ligne 2*/
code
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 22/04/2021 18:17 | #


la fonction run c'est juste un second main qui fait tourner un niveau du jeu
int run(Level level){
    render_init();
    render(level);
}


Ajouté le 22/04/2021 à 18:18 :
extern "C"{
    #include <gint/display.h>
    #include <gint/keyboard.h>
    #include <gint/gray.h>
}

#include "dkengine/dkengine.h"
#include "dkengine/render_fx9860.h"


extern bopti_image_t img_tilemap;

void render(Level level){
    int* tmpmap = level.get_levelmap();
    for(int i=0;i<16;i++){
        dsubimage(32+0*8,i*8,&img_tilemap,tmpmap[i*16+0]*8,0,8,8,DIMAGE_NONE);
        dsubimage(32+1*8,i*8,&img_tilemap,tmpmap[i*16+1]*8,0,8,8,DIMAGE_NONE);
    }
    getkey();
}

void render_init(){
}

pensés suicidaires
   90%
Lephenixnoir En ligne Administrateur Points: 24699 Défis: 170 Message

Citer : Posté le 22/04/2021 19:21 | #


Et les méthodes de Level ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 22/04/2021 19:22 | #


#include "dkengine/dkengine.h"

int default_levelmap[128] = {
    00,00,00,00,00,00,00,00,
    00,00,00,00,00,00,00,00,
    00,00,00,00,00,00,00,00,
    01,01,01,01,01,01,01,00,
    00,00,00,00,00,00,02,00,
    00,00,00,00,00,00,02,00,
    00,00,00,00,00,00,02,00,
    00,01,01,01,01,01,01,01,
    00,02,00,00,00,00,00,00,
    00,02,00,00,00,00,00,00,
    00,02,00,00,00,00,00,00,
    01,01,01,01,01,01,01,00,
    00,00,00,00,00,00,02,00,
    00,00,00,00,00,00,02,00,
    00,00,00,00,00,00,02,00,
    01,01,01,01,01,01,01,01
};

Level::Level(){
    for(int i=0;i<128;i++){
        levelmap[i] = default_levelmap[i];
    }
}


int Level::set_levelmap(int level_map[128]){
    for(int i=0;i<128;i++){
        levelmap[i] = level_map[i];
    }

    return 1;
}

Level::Level(int level_map[128]){
    for(int i=0;i<128;i++){
        levelmap[i] = level_map[i];
    }
}

void Level::on_render(){

}

int * Level::get_levelmap(){
    static int re_levelmap[128];
    for(int i=0;i<128;i++){
        re_levelmap[i] = levelmap[i];
    }
    return re_levelmap;
}


Ajouté le 23/04/2021 à 08:25 :
je cherche sans cesse et je trouve pas ll’erreur

Ajouté le 23/04/2021 à 08:25 :
je vais revenir temporairement sur mais petits projets bâclés

Ajouté le 23/04/2021 à 09:22 :

:: Making into build-fx

sh-elf-g++ -c src/dkengine/level.c -o build-fx/src/dkengine/level.c.o -mb -ffreestanding -nostdlib -fstrict-volatile-bitfields -Wall -Wextra -Wno-missing-field-initializers -Os -D FX9860G -m3 -I include -MMD -MT build-fx/src/dkengine/level.c.o -MF build-fx/src/dkengine/level.c.d -MP
sh-elf-g++ -c src/dkengine/render_fx9860.c -o build-fx/src/dkengine/render_fx9860.c.o -mb -ffreestanding -nostdlib -fstrict-volatile-bitfields -Wall -Wextra -Wno-missing-field-initializers -Os -D FX9860G -m3 -I include -MMD -MT build-fx/src/dkengine/render_fx9860.c.o -MF build-fx/src/dkengine/render_fx9860.c.d -MP
sh-elf-g++ -o build-fx/FxDk.elf build-fx/src/main.c.o build-fx/src/dkengine/dkengine.c.o build-fx/src/dkengine/level.c.o build-fx/src/dkengine/render_fx9860.c.o build-fx/assets/img/tilemap.png.o -mb -ffreestanding -nostdlib -fstrict-volatile-bitfields -Wall -Wextra -Wno-missing-field-initializers -Os -D FX9860G -m3 -I include  -T fx9860g.ld -lgint-fx  -lgint-fx -lgcc -Wl,-Map=build-fx/map
sh-elf-objcopy -O binary -R .bss -R .gint_bss build-fx/FxDk.elf build-fx/FxDk.bin
fxg1a build-fx/FxDk.bin -o FxDk.g1a -i "assets-fx/icon-fx.png" -n "FxDk" --internal="@FxDk"
 pierre  ~  casio-fx  donkeykong  1  ^C


Ajouté le 23/04/2021 à 09:23 :
#---
# fxSDK project configuration file for FxDk
#---

# Project name, should be at most 8 bytes long.
# (You can also specify NAME_G1A or NAME_G3A to override individually.)
NAME := FxDk

# Internal name, should be '@' followed by at most 7 uppercase letters.
# WARNING: If this convention is not followed, the add-in might not appear in
#          the main menu of the calculator!
INTERNAL := @FxDk

# Output file name. The default is to take <NAME>, replace spaces with dashes,
# and add .g1a (or .g3a). You can specify a different folder if you want.
TARGET_FX :=
TARGET_CG :=

# fx-9860G icon location
ICON_FX = assets-fx/icon-fx.png
# fx-CG 50 icon locations
ICON_CG_UNS = assets-cg/icon-cg-uns.png
ICON_CG_SEL = assets-cg/icon-cg-sel.png

#---
# Toolchain selection
#---

# Toolchain for fx9860g. Please see also CFLAGS_FX below.
TOOLCHAIN_FX := sh-elf

# Toolchain for fxcg50. Please see also CFLAGS_CG below.
TOOLCHAIN_CG := sh-elf

#---
# Compiler flags
#---

# Base compiler flags for the fxSDK, you usually want to keep these.
CFLAGS := -mb -ffreestanding -nostdlib -fstrict-volatile-bitfields

# Platform-specific compiler flags.
# <> If you are using sh3eb-elf, use -m3. (You can do this on both FX and CG.)
# <> If you are using sh4eb-elf, use -m4-nofpu. (Not ideal on FX but works.)
# <> If you are using sh4eb-nofpu-elf, then your compiler will likely use the
#    FPU and cause problems on the calculator. Consider another configuration.
# <> If you are using an sh-elf with several targets, specify whichever you
#    support. I recommend -m3 on FX and -m4-nofpu on CG.
# Please see also TOOLCHAIN_FX and TOOLCHAIN_CG above.
CFLAGS_FX := -D FX9860G -m3
CFLAGS_CG := -D FXCG50  -m4-nofpu

# Additional compiler flags, change to your own taste!
CFLAGS += -Wall -Wextra -Wno-missing-field-initializers -Os

# Include paths. Add one -I option for each folder from which you want to
# be able to include files with #include<>. The Makefile provides a variable
# GCC_INCLUDE_FX/GCC_INCLUDE_CG that represents the default include folder,
# which is useful for some libraries such as OpenLibm.
INCLUDE_FX = -I include
INCLUDE_CG = -I include

# Libraries. Add one -l option for each library you are using, and also
# suitable -L options if you have library files in custom folders. To use
# fxlib, add libfx.a to the project directory and use "-L . -lfx".
LIBS_FX :=
LIBS_CG :=

# Base linker flags for the fxSDK, you usually want to keep these.
LDFLAGS_FX := -T fx9860g.ld -lgint-fx $(LIBS_FX) -lgint-fx -lgcc
LDFLAGS_CG := -T fxcg50.ld  -lgint-cg $(LIBS_CG) -lgint-cg -lgcc

# Additional linker flags, if you need any.
LDFLAGS :=

# Additional platform-specific linker flags.
LDFLAGS_FX += -Wl,-Map=build-fx/map
LDFLAGS_CG += -Wl,-Map=build-cg/map

#---
# File conversion parameters
#---

# Here you can add fxconv options for each converted file, individually.
# The syntax is "<type>.<file>". For example, to specify the parameters for a
# font named "hexa.png", you might write:
#
#   FONT.hexa.png = charset:print grid.size:3x5 grid.padding:1
IMG.tilemap.png :=


Ajouté le 23/04/2021 à 09:23 :
#! /usr/bin/make -f
#  Default Makefile for fxSDK add-ins. This file was probably copied there by
#  the [fxsdk] program.
#---

#
#  Configuration
#

include project.cfg

# Compiler flags
CFLAGSFX = $(CFLAGS) $(CFLAGS_FX) $(INCLUDE_FX)
CFLAGSCG = $(CFLAGS) $(CFLAGS_CG) $(INCLUDE_CG)

# Linker flags
LDFLAGSFX := $(LDFLAGS) $(LDFLAGS_FX)
LDFLAGSCG := $(LDFLAGS) $(LDFLAGS_CG)

# Dependency list generation flags
depflags = -MMD -MT $@ -MF $(@:.o=.d) -MP
# ELF to binary flags
BINFLAGS := -R .bss -R .gint_bss

# G1A and G3A generation flags
NAME_G1A ?= $(NAME)
NAME_G3A ?= $(NAME)
G1AF := -i "$(ICON_FX)" -n "$(NAME_G1A)" --internal="$(INTERNAL)"
G3AF := -n basic:"$(NAME_G3A)" -i uns:"$(ICON_CG_UNS)" -i sel:"$(ICON_CG_SEL)"

ifeq "$(TOOLCHAIN_FX)" ""
TOOLCHAIN_FX := sh3eb-elf
endif

ifeq "$(TOOLCHAIN_CG)" ""
TOOLCHAIN_CG := sh4eb-elf
endif

# fxconv flags
FXCONVFX := --fx --toolchain=$(TOOLCHAIN_FX)
FXCONVCG := --cg --toolchain=$(TOOLCHAIN_CG)

# Determine the compiler install and include path
g++_BASE_FX := $(shell $(TOOLCHAIN_FX)-g++ --print-search-dirs | grep install | sed 's/install: //')
g++_BASE_CG := $(shell $(TOOLCHAIN_CG)-g++ --print-search-dirs | grep install | sed 's/install: //')
g++_INCLUDE_FX := $(g++_BASE_FX)/include
g++_INCLUDE_CG := $(g++_BASE_CG)/include

#
#  File listings
#

NULL   :=
TARGET := $(subst $(NULL) $(NULL),-,$(NAME))

ifeq "$(TARGET_FX)" ""
TARGET_FX := $(TARGET).g1a
endif

ifeq "$(TARGET_CG)" ""
TARGET_CG := $(TARGET).g3a
endif

ELF_FX := build-fx/$(shell basename "$(TARGET_FX)" .g1a).elf
BIN_FX := $(ELF_FX:.elf=.bin)

ELF_CG := build-cg/$(shell basename "$(TARGET_CG)" .g3a).elf
BIN_CG := $(ELF_CG:.elf=.bin)

# Source files
src       := $(wildcard src/*.[csS] \
                        src/*/*.[csS] \
                        src/*/*/*.[csS] \
                        src/*/*/*/*.[csS])
assets-fx := $(wildcard assets-fx/*/*)
assets-cg := $(wildcard assets-cg/*/*)

# Object files
obj-fx  := $(src:%=build-fx/%.o) \
           $(assets-fx:assets-fx/%=build-fx/assets/%.o)
obj-cg  := $(src:%=build-cg/%.o) \
           $(assets-cg:assets-cg/%=build-cg/assets/%.o)

# Additional dependencies
deps-fx := $(ICON_FX)
deps-cg := $(ICON_CG_UNS) $(ICON_CG_SEL)

# All targets
all :=
ifneq "$(wildcard build-fx)" ""
all += all-fx
endif
ifneq "$(wildcard build-cg)" ""
all += all-cg
endif

#
#  Build rules
#

all: $(all)

all-fx: $(TARGET_FX)
all-cg: $(TARGET_CG)

$(TARGET_FX): $(obj-fx) $(deps-fx)
    @ mkdir -p $(dir $@)
    $(TOOLCHAIN_FX)-g++ -o $(ELF_FX) $(obj-fx) $(CFLAGSFX) $(LDFLAGSFX)
    $(TOOLCHAIN_FX)-objcopy -O binary $(BINFLAGS) $(ELF_FX) $(BIN_FX)
    fxg1a $(BIN_FX) -o $@ $(G1AF)

$(TARGET_CG): $(obj-cg) $(deps-cg)
    @ mkdir -p $(dir $@)
    $(TOOLCHAIN_CG)-g++ -o $(ELF_CG) $(obj-cg) $(CFLAGSCG) $(LDFLAGSCG)
    $(TOOLCHAIN_CG)-objcopy -O binary $(BINFLAGS) $(ELF_CG) $(BIN_CG)
    mkg3a $(G3AF) $(BIN_CG) $@

# C sources
build-fx/%.c.o: %.c
    @ mkdir -p $(dir $@)
    $(TOOLCHAIN_FX)-g++ -c $< -o $@ $(CFLAGSFX) $(depflags)
build-cg/%.c.o: %.c
    @ mkdir -p $(dir $@)
    $(TOOLCHAIN_CG)-g++ -c $< -o $@ $(CFLAGSCG) $(depflags)

# Assembler sources
build-fx/%.s.o: %.s
    @ mkdir -p $(dir $@)
    $(TOOLCHAIN_FX)-g++ -c $< -o $@
build-cg/%.s.o: %.s
    @ mkdir -p $(dir $@)
    $(TOOLCHAIN_CG)-g++ -c $< -o $@

# Preprocessed assembler sources
build-fx/%.S.o: %.S
    @ mkdir -p $(dir $@)
    $(TOOLCHAIN_FX)-g++ -c $< -o $@ $(INCLUDE_FX)
build-cg/%.S.o: %.S
    @ mkdir -p $(dir $@)
    $(TOOLCHAIN_CG)-g++ -c $< -o $@ $(INCLUDE_CG)

# Images
build-fx/assets/img/%.o: assets-fx/img/%
    @ mkdir -p $(dir $@)
    fxconv --bopti-image $< -o $@ $(FXCONVFX) name:img_$(basename $*) $(IMG.$*)
build-cg/assets/img/%.o: assets-cg/img/%
    @ mkdir -p $(dir $@)
    fxconv --bopti-image $< -o $@ $(FXCONVCG) name:img_$(basename $*) $(IMG.$*)

# Fonts
build-fx/assets/fonts/%.o: assets-fx/fonts/%
    @ mkdir -p $(dir $@)
    fxconv -f $< -o $@ $(FXCONVFX) name:font_$(basename $*) $(FONT.$*)
build-cg/assets/fonts/%.o: assets-cg/fonts/%
    @ mkdir -p $(dir $@)
    fxconv -f $< -o $@ $(FXCONVCG) name:font_$(basename $*) $(FONT.$*)

# Binaries
build-fx/assets/bin/%.o: assets-fx/bin/%
    @ mkdir -p $(dir $@)
    fxconv -b $< -o $@ $(FXCONVFX) name:bin_$(basename $*) $(BIN.$*)
build-cg/assets/bin/%.o: assets-cg/bin/%
    @ mkdir -p $(dir $@)
    fxconv -b $< -o $@ $(FXCONVCG) name:bin_$(basename $*) $(BIN.$*)

# Custom conversions
build-fx/assets/%.o: assets-fx/%
    @ mkdir -p $(dir $@)
    fxconv --custom $< -o $@ $(FXCONVFX) type:$(subst /,,$(dir $*)) name:$(subst /,_,$(basename $*))
build-cg/assets/%.o: assets-cg/%
    @ mkdir -p $(dir $@)
    fxconv --custom $< -o $@ $(FXCONVCG) type:$(subst /,,$(dir $*)) name:$(subst /,_,$(basename $*))

#
#  Cleaning and utilities
#

# Dependency information
-include $(shell find build* -name *.d 2> /dev/null)
build-fx/%.d: ;
build-cg/%.d: ;
.PRECIOUS: build-fx build-cg build-fx/%.d build-cg/%.d %/

clean-fx:
    @ rm -rf build-fx/
clean-cg:
    @ rm -rf build-cg/

distclean-fx: clean-fx
    @ rm -f $(TARGET_FX)
distclean-cg: clean-cg
    @ rm -f $(TARGET_CG)

clean: clean-fx clean-cg

distclean: distclean-fx distclean-cg

install-fx: $(TARGET_FX)
    p7 send -f $<
install-cg: $(TARGET_CG)
    @ while [[ ! -h /dev/Prizm1 ]]; do sleep 0.25; done
    @ while ! mount /dev/Prizm1; do sleep 0.25; done
    @ rm -f /mnt/prizm/$<
    @ cp $< /mnt/prizm
    @ umount /dev/Prizm1
    @- eject /dev/Prizm1

.PHONY: all all-fx all-cg clean distclean install-fx install-cg

pensés suicidaires
   90%
Potter360 Hors ligne Rédacteur Points: 1255 Défis: 2 Message

Citer : Posté le 23/04/2021 09:41 | #


...

Si tu n'avais pas suivi, une nouvelle version de Gint est sortie. Là tu utilises make et project.cfg ce qui signifie que tu est sous l'ancienne version.

Je te laisse voir le tutoriel de Lephenixnoir sur GiteaPC, qui te permettra d'installer la nouvelle version.

Sinon, évite de faire des quadruples posts, et de demander de l'aide sur la shout, on est pas à ta disposition j'ai envie de te dire !
Globalement, coder. Mal, mais coder.
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 23/04/2021 09:46 | #


j'utilise pas gint, pour l'instant j'utilise le moteur (classes, détections de collisions)
gint fait le boulot final pour faire tourner le jeu,
il y a un problème dans le moter lui-même qui fais crasher le jeu

Ajouté le 23/04/2021 à 09:48 :
gint a rien a voir dans tout ca
pensés suicidaires
   90%
Potter360 Hors ligne Rédacteur Points: 1255 Défis: 2 Message

Citer : Posté le 23/04/2021 09:49 | #


Ce n'est peut être pas cela qui fait crasher le jeu, mais essaye d'installer la nouvelle version de Gint, ça sera plus "propre" !
Globalement, coder. Mal, mais coder.
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 23/04/2021 09:50 | #


moi j'aime make c'est le seul truc qui marche vraiment contrairement a cmake qui est pas capable de trouver libpng et lua...
pensés suicidaires
   90%
Potter360 Hors ligne Rédacteur Points: 1255 Défis: 2 Message

Citer : Posté le 23/04/2021 09:54 | #


Alors... je n'ai pas le rapport entre Gint et libpng ou Lua...

Ajouté le 23/04/2021 à 10:01 :
Attend... tu déclare un static int re_levelmap qui est amené à changé dans le for d'après ?
Globalement, coder. Mal, mais coder.
Lephenixnoir En ligne Administrateur Points: 24699 Défis: 170 Message

Citer : Posté le 23/04/2021 10:04 | #


Il y a plein de trucs douteux là-dedans, y compris beaucoup de copies, mais de ce que j'arrive à voir ça devrait marcher. Je chercherais si je pouvais lancer le programme, mais on n'a toujours pas une archive des sources.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 23/04/2021 10:21 | #


j'ai résolut le problème j'ai remplacé les int par void, j'ai retiré les return 1, j'ai retiré le void en argument et ca marche

Ajouté le 23/04/2021 à 10:23 :
j'aurais jamais pensé que ce serait ca
pensés suicidaires
   90%
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 23/04/2021 10:49 | #


Salut Pedro. Ce message n'a pas grand chose à voir avec le thread, mais je tenais à te signaler que je t'ai envoyé pour la deuxième fois un avertissement pour multi-post et spam sur le forum. Tu peux y accéder depuis ta boite de réception.
Si tu continue à ne pas prendre en compte ces avertissements, nous seront obligés d'appliquer les sanctions prévues par la Charte d'Utilisation du Forum, à savoir un premier ban de 24 heures.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 67 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd