diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0959ba3..b9f9827 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,21 +1,21 @@
cmake_minimum_required(VERSION 3.21)
-project(SonicEngine
+project(PSXEngine
LANGUAGES C CXX ASM
VERSION 1.0.0
- DESCRIPTION "Sonic Engine for PSX"
+ DESCRIPTION "Platformer Engine for PSX"
HOMEPAGE_URL "https://luksamuk.codes")
file(GLOB ENGINE_SRC ${CMAKE_CURRENT_LIST_DIR}/src/*.c)
-psn00bsdk_add_executable(sonic
+psn00bsdk_add_executable(engine
GPREL
${ENGINE_SRC})
-target_include_directories(sonic PUBLIC
+target_include_directories(engine PUBLIC
$)
-psn00bsdk_add_cd_image(iso sonicengine
+psn00bsdk_add_cd_image(iso engine
iso.xml
- DEPENDS sonic system.cnf)
+ DEPENDS engine system.cnf)
diff --git a/Makefile b/Makefile
index 4fb54c2..3028fd9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,19 +1,19 @@
export PATH := /opt/psn00bsdk/bin:$(PATH)
export PSN00BSDK_LIBS := /opt/psn00bsdk/lib/libpsn00b
-.PHONY: clean ./build/sonicengine.cue run configure chd
+.PHONY: clean ./build/engine.cue run configure chd
-all: ./build/sonicengine.cue
+all: ./build/engine.cue
dir: ./build
-chd: sonicengine.chd
+chd: engine.chd
-run: ./build/sonicengine.cue
- pcsx-redux-appimage -gdb -run -interpreter -fastboot -stdout -iso ./build/sonicengine.cue
+run: ./build/engine.cue
+ pcsx-redux-appimage -gdb -run -interpreter -fastboot -stdout -iso ./build/engine.cue
-./build/sonicengine.cue: ./build
+./build/engine.cue: ./build
cmake --build ./build
-sonicengine.chd: ./build/sonicengine.cue
+engine.chd: ./build/engine.cue
tochd -d . -- $<
./build: configure
diff --git a/assets/levels/R0/R0.COLLISION b/assets/levels/R0/R0.COLLISION
new file mode 100644
index 0000000..b02d496
Binary files /dev/null and b/assets/levels/R0/R0.COLLISION differ
diff --git a/assets/pre/levels/R0/collision16.json b/assets/pre/levels/R0/collision16.json
new file mode 100644
index 0000000..cc551e5
--- /dev/null
+++ b/assets/pre/levels/R0/collision16.json
@@ -0,0 +1,1277 @@
+{ "columns":16,
+ "image":"tiles16.png",
+ "imageheight":48,
+ "imagewidth":256,
+ "margin":0,
+ "name":"tiles16",
+ "spacing":0,
+ "tilecount":48,
+ "tiledversion":"1.11.0",
+ "tileheight":16,
+ "tiles":[
+ {
+ "id":1,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":2,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":3,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":4,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":3,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":16,
+ "y":16
+ },
+ {
+ "x":0,
+ "y":16
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":5,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":-16,
+ "y":16
+ },
+ {
+ "x":0,
+ "y":16
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":6,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":16
+ },
+ {
+ "x":-16,
+ "y":16
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":7,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":16
+ },
+ {
+ "x":16,
+ "y":16
+ },
+ {
+ "x":16,
+ "y":8.02222
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":8,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":-0.0078125,
+ "y":7.96094
+ },
+ {
+ "x":15.9922,
+ "y":7.96094
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":8
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":9,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":16
+ },
+ {
+ "x":16,
+ "y":16
+ },
+ {
+ "x":16,
+ "y":8.02222
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":10,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":2,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":-0.0078125,
+ "y":7.96094
+ },
+ {
+ "x":15.9922,
+ "y":7.96094
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":8
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":11,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0.0078125,
+ "y":7.96094
+ },
+ {
+ "x":-15.9922,
+ "y":7.96094
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":8
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":12,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":16
+ },
+ {
+ "x":-16,
+ "y":16
+ },
+ {
+ "x":-16,
+ "y":8.02222
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":13,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0.0078125,
+ "y":7.96094
+ },
+ {
+ "x":-15.9922,
+ "y":7.96094
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":8
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":14,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":16
+ },
+ {
+ "x":-16,
+ "y":16
+ },
+ {
+ "x":-16,
+ "y":8.02222
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":15,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":16
+ },
+ {
+ "x":-16,
+ "y":16
+ },
+ {
+ "x":-16,
+ "y":8.02222
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":16,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":-16,
+ "y":-16
+ },
+ {
+ "x":0,
+ "y":-16
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":16
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":17,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":18,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":-16,
+ "y":-16
+ },
+ {
+ "x":0,
+ "y":-16
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":16
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":19,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":20,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":16,
+ "y":-16
+ },
+ {
+ "x":0,
+ "y":-16
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":16
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":21,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":16,
+ "y":-16
+ },
+ {
+ "x":0,
+ "y":-16
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":16
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":22,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":23,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":16,
+ "y":-16
+ },
+ {
+ "x":0,
+ "y":-16
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":16
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":24,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0.0078125,
+ "y":-7.96094
+ },
+ {
+ "x":-15.9922,
+ "y":-7.96094
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":8
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":25,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":-16
+ },
+ {
+ "x":-16,
+ "y":-16
+ },
+ {
+ "x":-16,
+ "y":-8.02222
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":16
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":26,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0.0078125,
+ "y":-7.96094
+ },
+ {
+ "x":-15.9922,
+ "y":-7.96094
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":8
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":27,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":-16
+ },
+ {
+ "x":-16,
+ "y":-16
+ },
+ {
+ "x":-16,
+ "y":-8.02222
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":16,
+ "y":16
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":28,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":-16
+ },
+ {
+ "x":16,
+ "y":-16
+ },
+ {
+ "x":16,
+ "y":-8.02222
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":16
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":29,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":-0.0078125,
+ "y":-7.96094
+ },
+ {
+ "x":15.9922,
+ "y":-7.96094
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":8
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":30,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":-16
+ },
+ {
+ "x":16,
+ "y":-16
+ },
+ {
+ "x":16,
+ "y":-8.02222
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":16
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":31,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":0,
+ "y":-16
+ },
+ {
+ "x":16,
+ "y":-16
+ },
+ {
+ "x":16,
+ "y":-8.02222
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":16
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":32,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":0,
+ "id":1,
+ "name":"",
+ "polygon":[
+ {
+ "x":0,
+ "y":0
+ },
+ {
+ "x":-0.0078125,
+ "y":-7.96094
+ },
+ {
+ "x":15.9922,
+ "y":-7.96094
+ }],
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":0,
+ "x":0,
+ "y":8
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":33,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ },
+ {
+ "id":34,
+ "objectgroup":
+ {
+ "draworder":"index",
+ "id":2,
+ "name":"",
+ "objects":[
+ {
+ "height":16,
+ "id":1,
+ "name":"",
+ "rotation":0,
+ "type":"",
+ "visible":true,
+ "width":16,
+ "x":0,
+ "y":0
+ }],
+ "opacity":1,
+ "type":"objectgroup",
+ "visible":true,
+ "x":0,
+ "y":0
+ }
+ }],
+ "tilewidth":16,
+ "type":"tileset",
+ "version":"1.10"
+}
\ No newline at end of file
diff --git a/assets/pre/levels/R0/collision16.tsx b/assets/pre/levels/R0/collision16.tsx
index 8e88703..276a71a 100644
--- a/assets/pre/levels/R0/collision16.tsx
+++ b/assets/pre/levels/R0/collision16.tsx
@@ -1,5 +1,8 @@
+
+
+
diff --git a/iso.xml b/iso.xml
index 96fdd14..54382c5 100644
--- a/iso.xml
+++ b/iso.xml
@@ -3,7 +3,7 @@