forked from Tituya/AST3_C
Merge pull request 'Switch to new fxsdk build system' (#3) from KikooDX/AST3_C:master into master
Reviewed-on: https://gitea.planet-casio.com/Tituya/AST3_C/pulls/3
This commit is contained in:
commit
a306f3ec7c
|
@ -0,0 +1,94 @@
|
|||
# Configure with [fxsdk build-cg], which provide the
|
||||
# toolchain file and module path of the fxSDK
|
||||
|
||||
cmake_minimum_required(VERSION 3.18)
|
||||
project(AST3)
|
||||
|
||||
include(GenerateG1A)
|
||||
include(GenerateG3A)
|
||||
include(Fxconv)
|
||||
find_package(Gint 2.1 REQUIRED)
|
||||
|
||||
include_directories(include)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT
|
||||
"${CMAKE_CURRENT_LIST_DIR}/src/times.c"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include/define.h"
|
||||
COMMENT "Generate src/times.c & include/define.h"
|
||||
COMMAND python3 time.py
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
|
||||
DEPENDS time.py times.lvl)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_LIST_DIR}/src/setlevel.c"
|
||||
COMMENT "Generate src/setlevel.c"
|
||||
COMMAND sh update_levels.sh
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
|
||||
DEPENDS update_levels.sh compile_levels.py
|
||||
editor/levels/0.lvl
|
||||
editor/levels/1.lvl
|
||||
editor/levels/2.lvl
|
||||
editor/levels/3.lvl
|
||||
editor/levels/4.lvl
|
||||
editor/levels/5.lvl
|
||||
editor/levels/6.lvl
|
||||
editor/levels/7.lvl
|
||||
editor/levels/8.lvl
|
||||
editor/levels/9.lvl
|
||||
editor/levels/10.lvl
|
||||
editor/levels/11.lvl
|
||||
editor/levels/12.lvl
|
||||
editor/levels/13.lvl
|
||||
editor/levels/14.lvl
|
||||
editor/levels/15.lvl
|
||||
editor/levels/16.lvl)
|
||||
|
||||
set(SOURCES
|
||||
src/collide.c
|
||||
src/drawlevel.c
|
||||
src/main.c
|
||||
src/menu.c
|
||||
src/save.c
|
||||
src/setlevel.c
|
||||
src/times.c)
|
||||
|
||||
set(ASSETS)
|
||||
set(ASSETS_fx)
|
||||
set(ASSETS_cg
|
||||
assets-cg/img/appear.png
|
||||
assets-cg/img/appearblock.png
|
||||
assets-cg/img/blackout.png
|
||||
assets-cg/img/chock.png
|
||||
assets-cg/img/chrono1.png
|
||||
assets-cg/img/chrono2.png
|
||||
assets-cg/img/chrono2appear.png
|
||||
assets-cg/img/coin.png
|
||||
assets-cg/img/damaged.png
|
||||
assets-cg/img/dead.png
|
||||
assets-cg/img/end.png
|
||||
assets-cg/img/endscreen.png
|
||||
assets-cg/img/ice.png
|
||||
assets-cg/img/key1.png
|
||||
assets-cg/img/key2.png
|
||||
assets-cg/img/key2block.png
|
||||
assets-cg/img/key2blockvoid.png
|
||||
assets-cg/img/keyblock.png
|
||||
assets-cg/img/medals.png
|
||||
assets-cg/img/menu.png
|
||||
assets-cg/img/new.png
|
||||
assets-cg/img/player.png
|
||||
assets-cg/img/solid_0.png
|
||||
assets-cg/img/speedrun.png
|
||||
assets-cg/img/switch.png)
|
||||
|
||||
set(FLAGS -Wall -Wextra -Os)
|
||||
|
||||
fxconv_declare_assets(${ASSETS} ${ASSETS_fx} ${ASSETS_cg} WITH_METADATA)
|
||||
|
||||
add_executable(${PROJECT_NAME} ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}})
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE ${FLAGS})
|
||||
target_link_libraries(${PROJECT_NAME} Gint::Gint)
|
||||
|
||||
generate_g3a(TARGET ${PROJECT_NAME} OUTPUT "${PROJECT_NAME}.g3a"
|
||||
NAME "${PROJECT_NAME}" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png)
|
194
Makefile
194
Makefile
|
@ -1,194 +0,0 @@
|
|||
#! /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)
|
||||
CFLAGSCG := $(CFLAGS) $(CFLAGS_CG) $(INCLUDE)
|
||||
|
||||
# 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)
|
||||
|
||||
#
|
||||
# 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 -s .g1a $(TARGET_FX)).elf
|
||||
BIN_FX := $(ELF_FX:.elf=.bin)
|
||||
|
||||
ELF_CG := build-cg/$(shell basename -s .g3a $(TARGET_CG)).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)-gcc -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)-gcc -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)-gcc -c $< -o $@ $(CFLAGSFX) $(depflags)
|
||||
build-cg/%.c.o: %.c
|
||||
@ mkdir -p $(dir $@)
|
||||
$(TOOLCHAIN_CG)-gcc -c $< -o $@ $(CFLAGSCG) $(depflags)
|
||||
|
||||
# Assembler sources
|
||||
build-fx/%.s.o: %.s
|
||||
@ mkdir -p $(dir $@)
|
||||
$(TOOLCHAIN_FX)-gcc -c $< -o $@
|
||||
build-cg/%.s.o: %.s
|
||||
@ mkdir -p $(dir $@)
|
||||
$(TOOLCHAIN_CG)-gcc -c $< -o $@
|
||||
|
||||
# Preprocessed assembler sources
|
||||
build-fx/%.S.o: %.S
|
||||
@ mkdir -p $(dir $@)
|
||||
$(TOOLCHAIN_FX)-gcc -c $< -o $@ $(INCLUDE)
|
||||
build-cg/%.S.o: %.S
|
||||
@ mkdir -p $(dir $@)
|
||||
$(TOOLCHAIN_CG)-gcc -c $< -o $@ $(INCLUDE)
|
||||
|
||||
# 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.$*)
|
||||
|
||||
#
|
||||
# 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
|
|
@ -12,12 +12,12 @@ Ceci est une adaptation utilisant Gint de Lephenixnoir pour avoir un jeu plus pl
|
|||
|
||||
## Éditer le jeu :
|
||||
|
||||
Clone ce dépot :
|
||||
Clone ce dépot :
|
||||
`$ git clone https://gitea.planet-casio.com/Tituya/AST3_C && cd AST3_C`
|
||||
|
||||
Pour ouvrir l'éditeur de niveau (Python et Pygame obligatoire).
|
||||
`$ ./editor.sh`
|
||||
|
||||
Pour compiler le jeu (fxsdk + gint obligatoire).
|
||||
`$ ./build.sh`
|
||||
`$ fxsdk build-cg`
|
||||
|
||||
|
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
@ -0,0 +1,78 @@
|
|||
appear.png:
|
||||
type:bopti-image
|
||||
name: img_appear
|
||||
appearblock.png:
|
||||
type:bopti-image
|
||||
name: img_appearblock
|
||||
blackout.png:
|
||||
type:bopti-image
|
||||
name: img_blackout
|
||||
chock.png:
|
||||
type:bopti-image
|
||||
name: img_chock
|
||||
chrono1.png:
|
||||
type:bopti-image
|
||||
name: img_chrono1
|
||||
chrono2.png:
|
||||
type:bopti-image
|
||||
name: img_chrono2
|
||||
chrono2appear.png:
|
||||
type:bopti-image
|
||||
name: img_chrono2appear
|
||||
coin.png:
|
||||
type:bopti-image
|
||||
name: img_coin
|
||||
damaged.png:
|
||||
type:bopti-image
|
||||
name: img_damaged
|
||||
dead.png:
|
||||
type:bopti-image
|
||||
name: img_dead
|
||||
end.png:
|
||||
type:bopti-image
|
||||
name: img_end
|
||||
endscreen.png:
|
||||
type:bopti-image
|
||||
name: img_endscreen
|
||||
fxconv-metadata.txt:
|
||||
type:bopti-image
|
||||
name: img_metadata
|
||||
ice.png:
|
||||
type:bopti-image
|
||||
name: img_ice
|
||||
key1.png:
|
||||
type:bopti-image
|
||||
name: img_key1
|
||||
key2.png:
|
||||
type:bopti-image
|
||||
name: img_key2
|
||||
key2block.png:
|
||||
type:bopti-image
|
||||
name: img_key2block
|
||||
key2blockvoid.png:
|
||||
type:bopti-image
|
||||
name: img_key2blockvoid
|
||||
keyblock.png:
|
||||
type:bopti-image
|
||||
name: img_keyblock
|
||||
medals.png:
|
||||
type:bopti-image
|
||||
name: img_medals
|
||||
menu.png:
|
||||
type:bopti-image
|
||||
name: img_menu
|
||||
new.png:
|
||||
type:bopti-image
|
||||
name: img_new
|
||||
player.png:
|
||||
type:bopti-image
|
||||
name: img_player
|
||||
solid_0.png:
|
||||
type:bopti-image
|
||||
name: img_solid_0
|
||||
speedrun.png:
|
||||
type:bopti-image
|
||||
name: img_speedrun
|
||||
switch.png:
|
||||
type:bopti-image
|
||||
name: img_switch
|
16
build.sh
16
build.sh
|
@ -1,16 +0,0 @@
|
|||
#!/bin/sh
|
||||
echo "making define.h from editor"
|
||||
rm include/define.h
|
||||
echo "#define LEVEL_MAX $(ls editor/levels/[^0]*.lvl | wc -l)
|
||||
#define PLAYER_HEIGHT 11
|
||||
#define FPS 70" > include/define.h
|
||||
echo "done"
|
||||
echo "making setlevel.c from editor"
|
||||
python3 compile_level.py
|
||||
echo "done"
|
||||
echo "making times.c from times.lvl"
|
||||
python3 time.py
|
||||
echo "done"
|
||||
echo "building for cg"
|
||||
fxsdk build-cg
|
||||
echo "done"
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
echo "#define LEVEL_MAX $(ls editor/levels/[^0]*.lvl | wc -l)
|
||||
#define PLAYER_HEIGHT 11
|
||||
#define FPS 70" > include/define.h
|
||||
python3 compile_levels.py
|
Loading…
Reference in New Issue