Posté le 22/04/2021 17:35
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 200 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
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).
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++?
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
};
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.
Citer : Posté le 22/04/2021 18:12 | #
je trouve pas l'erreur, il est entre 3 fichiers sur les 3 fichiers source
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.
run(Level)
Donc la fonction qui plante c'est la fonction run qui prend un Level en paramètre.
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.
On utilise parfois une mise en commentaires pour court-circuiter quelque temps une section de code
Pour le C ou C++, commenter pour une ligne se fait par :
Commenter tout un bloc se fait par :
/* commentaire ligne 1
commentaire ligne 2*/
code
Citer : Posté le 22/04/2021 18:17 | #
la fonction run c'est juste un second main qui fait tourner un niveau du jeu
render_init();
render(level);
}
Ajouté le 22/04/2021 à 18:18 :
#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(){
}
Citer : Posté le 22/04/2021 19:21 | #
Et les méthodes de Level ?
Citer : Posté le 22/04/2021 19:22 | #
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 :
# 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
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 !
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
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" !
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...
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 ?
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.
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
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.