From 2e07cad3ad4aaaf68196dd22c6faebcc2333b711 Mon Sep 17 00:00:00 2001 From: wgroeneveld Date: Wed, 8 Aug 2018 12:07:19 +0200 Subject: [PATCH] restructure project as a library + demo dependencies --- .idea/.name | 1 + .idea/misc.xml | 7 +- CMakeLists.txt | 21 +- demos/demo1-basicfeatures/CMakeLists.txt | 17 + .../demo1-basicfeatures}/flying_stuff_bg.png | Bin .../demo1-basicfeatures/lama.png | Bin .../src}/flying_stuff_scene.cpp | 0 .../src}/flying_stuff_scene.h | 0 {src => demos/demo1-basicfeatures/src}/kul.h | 0 {src => demos/demo1-basicfeatures/src}/lama.h | 0 .../demo1-basicfeatures/src}/main.cpp | 0 .../demo1-basicfeatures/src}/sample_sound.h | 0 .../src}/sample_start_scene.cpp | 0 .../src}/sample_start_scene.h | 0 engine/CMakeLists.txt | 27 + {src => engine/include}/engine/Scene.h | 0 {src => engine/include}/engine/allocator.h | 0 .../include}/engine/background/background.h | 0 .../include}/engine/background/text.h | 0 .../include}/engine/background/text_stream.h | 0 .../include}/engine/effects/fade_out_scene.h | 0 .../include}/engine/effects/scene_effect.h | 0 .../include}/engine/gba/tonc_core.h | 0 .../include}/engine/gba/tonc_core_stub.h | 0 .../include}/engine/gba/tonc_math.h | 0 .../include}/engine/gba/tonc_memdef.h | 0 .../include}/engine/gba/tonc_memmap.h | 0 {src => engine/include}/engine/gba/tonc_oam.h | 0 .../include}/engine/gba/tonc_types.h | 0 {src => engine/include}/engine/gba_engine.h | 2 +- .../engine/palette/combined_palette.h | 0 .../include}/engine/palette/palette_manager.h | 0 .../include/engine/sound_control.h | 0 .../include}/engine/sprites/affine_sprite.h | 0 .../include}/engine/sprites/sprite.h | 0 .../include}/engine/sprites/sprite_builder.h | 0 .../include}/engine/sprites/sprite_manager.h | 0 {src/engine => engine/src}/allocator.cpp | 2 +- .../src}/background/background.cpp | 4 +- .../engine => engine/src}/background/text.png | Bin .../src}/background/text_stream.cpp | 2 +- .../src}/effects/fade_out_scene.cpp | 2 +- {src/engine => engine/src}/gba/sin_lut.s | 2 +- {src/engine => engine/src}/gba_engine.cpp | 4 +- .../src}/palette/combined_palette.cpp | 2 +- .../src}/palette/palette_manager.cpp | 2 +- .../sound.cpp => engine/src/sound_control.cpp | 2 +- .../src}/sprites/affine_sprite.cpp | 2 +- {src/engine => engine/src}/sprites/sprite.cpp | 2 +- .../src}/sprites/sprite_builder.cpp | 2 +- .../src}/sprites/sprite_manager.cpp | 4 +- src/CMakeLists.txt | 9 - src/engine/Scene.cpp | 7 - test/CMakeLists.txt | 21 +- test/allocatortest.cpp | 2 +- test/real_data.h | 603 ++++++++++++++++++ test/scenetest.cpp | 1 + 57 files changed, 709 insertions(+), 41 deletions(-) create mode 100644 .idea/.name create mode 100644 demos/demo1-basicfeatures/CMakeLists.txt rename {src => demos/demo1-basicfeatures}/flying_stuff_bg.png (100%) rename lama.png => demos/demo1-basicfeatures/lama.png (100%) rename {src => demos/demo1-basicfeatures/src}/flying_stuff_scene.cpp (100%) rename {src => demos/demo1-basicfeatures/src}/flying_stuff_scene.h (100%) rename {src => demos/demo1-basicfeatures/src}/kul.h (100%) rename {src => demos/demo1-basicfeatures/src}/lama.h (100%) rename {src => demos/demo1-basicfeatures/src}/main.cpp (100%) rename {src => demos/demo1-basicfeatures/src}/sample_sound.h (100%) rename {src => demos/demo1-basicfeatures/src}/sample_start_scene.cpp (100%) rename {src => demos/demo1-basicfeatures/src}/sample_start_scene.h (100%) create mode 100644 engine/CMakeLists.txt rename {src => engine/include}/engine/Scene.h (100%) rename {src => engine/include}/engine/allocator.h (100%) rename {src => engine/include}/engine/background/background.h (100%) rename {src => engine/include}/engine/background/text.h (100%) rename {src => engine/include}/engine/background/text_stream.h (100%) rename {src => engine/include}/engine/effects/fade_out_scene.h (100%) rename {src => engine/include}/engine/effects/scene_effect.h (100%) rename {src => engine/include}/engine/gba/tonc_core.h (100%) rename {src => engine/include}/engine/gba/tonc_core_stub.h (100%) rename {src => engine/include}/engine/gba/tonc_math.h (100%) rename {src => engine/include}/engine/gba/tonc_memdef.h (100%) rename {src => engine/include}/engine/gba/tonc_memmap.h (100%) rename {src => engine/include}/engine/gba/tonc_oam.h (100%) rename {src => engine/include}/engine/gba/tonc_types.h (100%) rename {src => engine/include}/engine/gba_engine.h (98%) rename {src => engine/include}/engine/palette/combined_palette.h (100%) rename {src => engine/include}/engine/palette/palette_manager.h (100%) rename src/engine/sound.h => engine/include/engine/sound_control.h (100%) rename {src => engine/include}/engine/sprites/affine_sprite.h (100%) rename {src => engine/include}/engine/sprites/sprite.h (100%) rename {src => engine/include}/engine/sprites/sprite_builder.h (100%) rename {src => engine/include}/engine/sprites/sprite_manager.h (100%) rename {src/engine => engine/src}/allocator.cpp (95%) rename {src/engine => engine/src}/background/background.cpp (96%) rename {src/engine => engine/src}/background/text.png (100%) rename {src/engine => engine/src}/background/text_stream.cpp (98%) rename {src/engine => engine/src}/effects/fade_out_scene.cpp (91%) rename {src/engine => engine/src}/gba/sin_lut.s (99%) rename {src/engine => engine/src}/gba_engine.cpp (98%) rename {src/engine => engine/src}/palette/combined_palette.cpp (94%) rename {src/engine => engine/src}/palette/palette_manager.cpp (98%) rename src/engine/sound.cpp => engine/src/sound_control.cpp (97%) rename {src/engine => engine/src}/sprites/affine_sprite.cpp (97%) rename {src/engine => engine/src}/sprites/sprite.cpp (99%) rename {src/engine => engine/src}/sprites/sprite_builder.cpp (54%) rename {src/engine => engine/src}/sprites/sprite_manager.cpp (96%) delete mode 100644 src/CMakeLists.txt delete mode 100644 src/engine/Scene.cpp create mode 100644 test/real_data.h diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..700a220 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +gba-sprite-engine-project \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index c250ec8..42ddad6 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,11 @@ - + + + + + + diff --git a/CMakeLists.txt b/CMakeLists.txt index d810747..6edbd8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,17 +1,28 @@ -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.12) +# use the GBA cross-compiler. +# WARNING: CMAKE_AR and RANLIB didn't use find_program() to scan the PATH yet. +# If using CMake < 3.12, consider using an absolute path. https://gitlab.kitware.com/cmake/cmake/merge_requests/1720 SET(CMAKE_C_COMPILER arm-none-eabi-gcc) SET(CMAKE_CXX_COMPILER arm-none-eabi-g++) SET(CMAKE_OBJCOPY arm-none-eabi-objcopy) +SET(CMAKE_AR arm-none-eabi-ar) +SET(CMAKE_RANLIB arm-none-eabi-ranlib) + SET(BASE_CMAKE_LINK_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") SET(CMAKE_EXE_LINKER_FLAGS "${BASE_CMAKE_LINK_FLAGS} -mthumb-interwork -mthumb -specs=gba.specs") -project(gba-sprite-engine) SET(CMAKE_CXX_STANDARD 11) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-narrowing") set(CMAKE_VERBOSE_MAKEFILE on) -include_directories(src) -include_directories(test) -add_subdirectory(src) +project(gba-sprite-engine-project VERSION 0.1 LANGUAGES CXX) + +# Must use GNUInstallDirs to install libraries into correct locations on all platforms. +include(GNUInstallDirs) + +add_subdirectory(engine) +add_subdirectory(demos/demo1-basicfeatures) + +# this should be a part of the engine CMakeLists.txt file but cross-compiling and gtest doesn't work add_subdirectory(test) diff --git a/demos/demo1-basicfeatures/CMakeLists.txt b/demos/demo1-basicfeatures/CMakeLists.txt new file mode 100644 index 0000000..528be55 --- /dev/null +++ b/demos/demo1-basicfeatures/CMakeLists.txt @@ -0,0 +1,17 @@ +project(flyingstuff) + +add_executable(${PROJECT_NAME}.elf + src/main.cpp + src/sample_start_scene.cpp + src/sample_start_scene.h + src/lama.h + src/sample_sound.h + src/kul.h + src/flying_stuff_scene.cpp + src/flying_stuff_scene.h) + +target_link_libraries(${PROJECT_NAME}.elf gba-sprite-engine) + +add_custom_command(TARGET ${PROJECT_NAME}.elf POST_BUILD + COMMAND ${CMAKE_OBJCOPY} -v -O binary ${PROJECT_NAME}.elf ${PROJECT_NAME}.gba + ) diff --git a/src/flying_stuff_bg.png b/demos/demo1-basicfeatures/flying_stuff_bg.png similarity index 100% rename from src/flying_stuff_bg.png rename to demos/demo1-basicfeatures/flying_stuff_bg.png diff --git a/lama.png b/demos/demo1-basicfeatures/lama.png similarity index 100% rename from lama.png rename to demos/demo1-basicfeatures/lama.png diff --git a/src/flying_stuff_scene.cpp b/demos/demo1-basicfeatures/src/flying_stuff_scene.cpp similarity index 100% rename from src/flying_stuff_scene.cpp rename to demos/demo1-basicfeatures/src/flying_stuff_scene.cpp diff --git a/src/flying_stuff_scene.h b/demos/demo1-basicfeatures/src/flying_stuff_scene.h similarity index 100% rename from src/flying_stuff_scene.h rename to demos/demo1-basicfeatures/src/flying_stuff_scene.h diff --git a/src/kul.h b/demos/demo1-basicfeatures/src/kul.h similarity index 100% rename from src/kul.h rename to demos/demo1-basicfeatures/src/kul.h diff --git a/src/lama.h b/demos/demo1-basicfeatures/src/lama.h similarity index 100% rename from src/lama.h rename to demos/demo1-basicfeatures/src/lama.h diff --git a/src/main.cpp b/demos/demo1-basicfeatures/src/main.cpp similarity index 100% rename from src/main.cpp rename to demos/demo1-basicfeatures/src/main.cpp diff --git a/src/sample_sound.h b/demos/demo1-basicfeatures/src/sample_sound.h similarity index 100% rename from src/sample_sound.h rename to demos/demo1-basicfeatures/src/sample_sound.h diff --git a/src/sample_start_scene.cpp b/demos/demo1-basicfeatures/src/sample_start_scene.cpp similarity index 100% rename from src/sample_start_scene.cpp rename to demos/demo1-basicfeatures/src/sample_start_scene.cpp diff --git a/src/sample_start_scene.h b/demos/demo1-basicfeatures/src/sample_start_scene.h similarity index 100% rename from src/sample_start_scene.h rename to demos/demo1-basicfeatures/src/sample_start_scene.h diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt new file mode 100644 index 0000000..4b6e152 --- /dev/null +++ b/engine/CMakeLists.txt @@ -0,0 +1,27 @@ +project(gba-sprite-engine) +set_property(SOURCE src/gba/sin_lut.s PROPERTY LANGUAGE C) + +add_library(${PROJECT_NAME} + src/sprites/sprite_manager.cpp + src/sprites/sprite.cpp + src/palette/palette_manager.cpp + src/palette/combined_palette.cpp + src/allocator.cpp + src/gba/sin_lut.s + src/sprites/sprite_builder.cpp + src/sprites/affine_sprite.cpp + src/gba_engine.cpp + src/background/text_stream.cpp + src/background/background.cpp + src/effects/fade_out_scene.cpp + src/sound_control.cpp) + +target_include_directories(${PROJECT_NAME} PUBLIC + $ + PRIVATE src) + +install(TARGETS ${PROJECT_NAME} EXPORT GbaSpriteEngineTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/src/engine/Scene.h b/engine/include/engine/Scene.h similarity index 100% rename from src/engine/Scene.h rename to engine/include/engine/Scene.h diff --git a/src/engine/allocator.h b/engine/include/engine/allocator.h similarity index 100% rename from src/engine/allocator.h rename to engine/include/engine/allocator.h diff --git a/src/engine/background/background.h b/engine/include/engine/background/background.h similarity index 100% rename from src/engine/background/background.h rename to engine/include/engine/background/background.h diff --git a/src/engine/background/text.h b/engine/include/engine/background/text.h similarity index 100% rename from src/engine/background/text.h rename to engine/include/engine/background/text.h diff --git a/src/engine/background/text_stream.h b/engine/include/engine/background/text_stream.h similarity index 100% rename from src/engine/background/text_stream.h rename to engine/include/engine/background/text_stream.h diff --git a/src/engine/effects/fade_out_scene.h b/engine/include/engine/effects/fade_out_scene.h similarity index 100% rename from src/engine/effects/fade_out_scene.h rename to engine/include/engine/effects/fade_out_scene.h diff --git a/src/engine/effects/scene_effect.h b/engine/include/engine/effects/scene_effect.h similarity index 100% rename from src/engine/effects/scene_effect.h rename to engine/include/engine/effects/scene_effect.h diff --git a/src/engine/gba/tonc_core.h b/engine/include/engine/gba/tonc_core.h similarity index 100% rename from src/engine/gba/tonc_core.h rename to engine/include/engine/gba/tonc_core.h diff --git a/src/engine/gba/tonc_core_stub.h b/engine/include/engine/gba/tonc_core_stub.h similarity index 100% rename from src/engine/gba/tonc_core_stub.h rename to engine/include/engine/gba/tonc_core_stub.h diff --git a/src/engine/gba/tonc_math.h b/engine/include/engine/gba/tonc_math.h similarity index 100% rename from src/engine/gba/tonc_math.h rename to engine/include/engine/gba/tonc_math.h diff --git a/src/engine/gba/tonc_memdef.h b/engine/include/engine/gba/tonc_memdef.h similarity index 100% rename from src/engine/gba/tonc_memdef.h rename to engine/include/engine/gba/tonc_memdef.h diff --git a/src/engine/gba/tonc_memmap.h b/engine/include/engine/gba/tonc_memmap.h similarity index 100% rename from src/engine/gba/tonc_memmap.h rename to engine/include/engine/gba/tonc_memmap.h diff --git a/src/engine/gba/tonc_oam.h b/engine/include/engine/gba/tonc_oam.h similarity index 100% rename from src/engine/gba/tonc_oam.h rename to engine/include/engine/gba/tonc_oam.h diff --git a/src/engine/gba/tonc_types.h b/engine/include/engine/gba/tonc_types.h similarity index 100% rename from src/engine/gba/tonc_types.h rename to engine/include/engine/gba/tonc_types.h diff --git a/src/engine/gba_engine.h b/engine/include/engine/gba_engine.h similarity index 98% rename from src/engine/gba_engine.h rename to engine/include/engine/gba_engine.h index 57701cc..9c20087 100644 --- a/src/engine/gba_engine.h +++ b/engine/include/engine/gba_engine.h @@ -11,7 +11,7 @@ #include #include #include "Scene.h" -#include "sound.h" +#include "sound_control.h" class GBAEngine { private: diff --git a/src/engine/palette/combined_palette.h b/engine/include/engine/palette/combined_palette.h similarity index 100% rename from src/engine/palette/combined_palette.h rename to engine/include/engine/palette/combined_palette.h diff --git a/src/engine/palette/palette_manager.h b/engine/include/engine/palette/palette_manager.h similarity index 100% rename from src/engine/palette/palette_manager.h rename to engine/include/engine/palette/palette_manager.h diff --git a/src/engine/sound.h b/engine/include/engine/sound_control.h similarity index 100% rename from src/engine/sound.h rename to engine/include/engine/sound_control.h diff --git a/src/engine/sprites/affine_sprite.h b/engine/include/engine/sprites/affine_sprite.h similarity index 100% rename from src/engine/sprites/affine_sprite.h rename to engine/include/engine/sprites/affine_sprite.h diff --git a/src/engine/sprites/sprite.h b/engine/include/engine/sprites/sprite.h similarity index 100% rename from src/engine/sprites/sprite.h rename to engine/include/engine/sprites/sprite.h diff --git a/src/engine/sprites/sprite_builder.h b/engine/include/engine/sprites/sprite_builder.h similarity index 100% rename from src/engine/sprites/sprite_builder.h rename to engine/include/engine/sprites/sprite_builder.h diff --git a/src/engine/sprites/sprite_manager.h b/engine/include/engine/sprites/sprite_manager.h similarity index 100% rename from src/engine/sprites/sprite_manager.h rename to engine/include/engine/sprites/sprite_manager.h diff --git a/src/engine/allocator.cpp b/engine/src/allocator.cpp similarity index 95% rename from src/engine/allocator.cpp rename to engine/src/allocator.cpp index dbf20b2..18d808e 100644 --- a/src/engine/allocator.cpp +++ b/engine/src/allocator.cpp @@ -3,7 +3,7 @@ // #include -#include "allocator.h" +#include u32 voidPtrToU32(void* ptr) { return static_cast(reinterpret_cast(ptr)); diff --git a/src/engine/background/background.cpp b/engine/src/background/background.cpp similarity index 96% rename from src/engine/background/background.cpp rename to engine/src/background/background.cpp index 642d9ba..7ed7814 100644 --- a/src/engine/background/background.cpp +++ b/engine/src/background/background.cpp @@ -10,8 +10,8 @@ #else #include #endif -#include "background.h" -#include "text_stream.h" +#include +#include #define TRANSPARENT_TILE_NUMBER 192 // as shown in mGBA, next "free" tile after text. Hardcoded indeed. diff --git a/src/engine/background/text.png b/engine/src/background/text.png similarity index 100% rename from src/engine/background/text.png rename to engine/src/background/text.png diff --git a/src/engine/background/text_stream.cpp b/engine/src/background/text_stream.cpp similarity index 98% rename from src/engine/background/text_stream.cpp rename to engine/src/background/text_stream.cpp index d9828a3..70287fe 100644 --- a/src/engine/background/text_stream.cpp +++ b/engine/src/background/text_stream.cpp @@ -4,7 +4,7 @@ #include #include -#include "text_stream.h" +#include #include diff --git a/src/engine/effects/fade_out_scene.cpp b/engine/src/effects/fade_out_scene.cpp similarity index 91% rename from src/engine/effects/fade_out_scene.cpp rename to engine/src/effects/fade_out_scene.cpp index cc5144d..e0dccc7 100644 --- a/src/engine/effects/fade_out_scene.cpp +++ b/engine/src/effects/fade_out_scene.cpp @@ -2,7 +2,7 @@ // Created by Wouter Groeneveld on 04/08/18. // -#include "fade_out_scene.h" +#include FadeOutScene::FadeOutScene(int speed) : timesUpdated(0), speed(speed) { } diff --git a/src/engine/gba/sin_lut.s b/engine/src/gba/sin_lut.s similarity index 99% rename from src/engine/gba/sin_lut.s rename to engine/src/gba/sin_lut.s index cc7bf5e..21d41ae 100644 --- a/src/engine/gba/sin_lut.s +++ b/engine/src/gba/sin_lut.s @@ -87,4 +87,4 @@ sin_lut: .hword 0xFE6F,0xFEA1,0xFED3,0xFF05,0xFF38,0xFF6A,0xFF9C,0xFFCE .hword 0x0000,0x0032 - .size sin_lut, .-sin_lut \ No newline at end of file + .size sin_lut, .-sin_lut diff --git a/src/engine/gba_engine.cpp b/engine/src/gba_engine.cpp similarity index 98% rename from src/engine/gba_engine.cpp rename to engine/src/gba_engine.cpp index 9d897ef..420a353 100644 --- a/src/engine/gba_engine.cpp +++ b/engine/src/gba_engine.cpp @@ -4,8 +4,8 @@ #include #include -#include "gba_engine.h" -#include "allocator.h" +#include +#include std::unique_ptr GBAEngine::activeChannelA; std::unique_ptr GBAEngine::activeChannelB; diff --git a/src/engine/palette/combined_palette.cpp b/engine/src/palette/combined_palette.cpp similarity index 94% rename from src/engine/palette/combined_palette.cpp rename to engine/src/palette/combined_palette.cpp index bc6d2f3..d8f6600 100644 --- a/src/engine/palette/combined_palette.cpp +++ b/engine/src/palette/combined_palette.cpp @@ -4,7 +4,7 @@ #include -#include "palette_manager.h" +#include void CombinedPalette::increaseBrightness(PaletteManager& palette, int bank, int index, u32 intensity) { auto current = palette.get(bank, index); diff --git a/src/engine/palette/palette_manager.cpp b/engine/src/palette/palette_manager.cpp similarity index 98% rename from src/engine/palette/palette_manager.cpp rename to engine/src/palette/palette_manager.cpp index 5175053..59e1184 100644 --- a/src/engine/palette/palette_manager.cpp +++ b/engine/src/palette/palette_manager.cpp @@ -8,7 +8,7 @@ #include #endif #include -#include "palette_manager.h" +#include const COLOR defaultPaletteData[PALETTE_MAX_SIZE] __attribute__((aligned(4))) = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, diff --git a/src/engine/sound.cpp b/engine/src/sound_control.cpp similarity index 97% rename from src/engine/sound.cpp rename to engine/src/sound_control.cpp index 0a9bf9e..8f61c10 100644 --- a/src/engine/sound.cpp +++ b/engine/src/sound_control.cpp @@ -3,7 +3,7 @@ // #include -#include "sound.h" +#include void SoundControl::accept(const void *data, int totalSamples, int ticksPerSample) { this->data = data; diff --git a/src/engine/sprites/affine_sprite.cpp b/engine/src/sprites/affine_sprite.cpp similarity index 97% rename from src/engine/sprites/affine_sprite.cpp rename to engine/src/sprites/affine_sprite.cpp index 04984b5..4d0e166 100644 --- a/src/engine/sprites/affine_sprite.cpp +++ b/engine/src/sprites/affine_sprite.cpp @@ -5,7 +5,7 @@ #include #include -#include "affine_sprite.h" +#include void AffineSprite::identity() { obj_aff_identity(this->affine.get()); diff --git a/src/engine/sprites/sprite.cpp b/engine/src/sprites/sprite.cpp similarity index 99% rename from src/engine/sprites/sprite.cpp rename to engine/src/sprites/sprite.cpp index e6dc5f2..a64a551 100644 --- a/src/engine/sprites/sprite.cpp +++ b/engine/src/sprites/sprite.cpp @@ -5,7 +5,7 @@ #include #include #include -#include "sprite.h" +#include Sprite::Sprite(const void *imageData, int imageSize, int x, int y, SpriteSize size) : x(x), y(y), data(imageData), imageSize(imageSize), diff --git a/src/engine/sprites/sprite_builder.cpp b/engine/src/sprites/sprite_builder.cpp similarity index 54% rename from src/engine/sprites/sprite_builder.cpp rename to engine/src/sprites/sprite_builder.cpp index bfa561a..edee86d 100644 --- a/src/engine/sprites/sprite_builder.cpp +++ b/engine/src/sprites/sprite_builder.cpp @@ -2,4 +2,4 @@ // Created by Wouter Groeneveld on 28/07/18. // -#include "sprite_builder.h" +#include diff --git a/src/engine/sprites/sprite_manager.cpp b/engine/src/sprites/sprite_manager.cpp similarity index 96% rename from src/engine/sprites/sprite_manager.cpp rename to engine/src/sprites/sprite_manager.cpp index 67ae1a9..34b1120 100644 --- a/src/engine/sprites/sprite_manager.cpp +++ b/engine/src/sprites/sprite_manager.cpp @@ -2,8 +2,8 @@ // Created by Wouter Groeneveld on 26/07/18. // -#include "sprite_manager.h" -#include "affine_sprite.h" +#include +#include #include #include diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt deleted file mode 100644 index 7697f51..0000000 --- a/src/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -SET(CMAKE_C_COMPILER arm-none-eabi-gcc) -SET(CMAKE_CXX_COMPILER arm-none-eabi-g++) - -set_property(SOURCE engine/gba/sin_lut.s PROPERTY LANGUAGE C) -add_executable(${PROJECT_NAME}.elf main.cpp engine/sprites/sprite_manager.cpp engine/sprites/sprite_manager.h engine/gba/tonc_memmap.h engine/gba/tonc_core.h engine/gba/tonc_memdef.h engine/gba/tonc_types.h engine/sprites/sprite.cpp engine/sprites/sprite.h kul.h engine/palette/palette_manager.cpp engine/palette/palette_manager.h engine/palette/combined_palette.cpp engine/palette/combined_palette.h engine/allocator.cpp engine/allocator.h engine/gba/tonc_oam.h engine/gba/tonc_math.h engine/gba/sin_lut.s engine/Scene.cpp engine/Scene.h engine/sprites/sprite_builder.cpp engine/sprites/sprite_builder.h engine/sprites/affine_sprite.cpp engine/sprites/affine_sprite.h flying_stuff_scene.cpp flying_stuff_scene.h engine/gba_engine.cpp engine/gba_engine.h engine/background/text_stream.cpp engine/background/text_stream.h engine/background/background.cpp engine/background/background.h engine/background/text.h sample_start_scene.cpp sample_start_scene.h engine/effects/fade_out_scene.cpp engine/effects/fade_out_scene.h engine/gba/tonc_core_stub.h engine/effects/scene_effect.h lama.h sample_sound.h engine/sound.h engine/sound.cpp) - -add_custom_command(TARGET ${PROJECT_NAME}.elf POST_BUILD - COMMAND ${CMAKE_OBJCOPY} -v -O binary ${PROJECT_NAME}.elf ${PROJECT_NAME}.gba -) diff --git a/src/engine/Scene.cpp b/src/engine/Scene.cpp deleted file mode 100644 index 558c4e2..0000000 --- a/src/engine/Scene.cpp +++ /dev/null @@ -1,7 +0,0 @@ -// -// Created by Wouter Groeneveld on 28/07/18. -// - -#include "Scene.h" - -#include diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6996651..45fcfbc 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,7 +1,9 @@ cmake_minimum_required(VERSION 3.10) project(Unittest) +enable_testing() SET(GTEST_LIBRARY "/Users/jefklak/CLionProjects/googletest-release-1.8.0/googletest") + # reset linker flags; ARM + GTest doesn't work SET(CMAKE_EXE_LINKER_FLAGS "${BASE_CMAKE_LINK_FLAGS}") SET(CMAKE_C_COMPILER gcc) @@ -10,6 +12,23 @@ SET(CMAKE_CXX_COMPILER g++) add_definitions(-DCODE_COMPILED_AS_PART_OF_TEST) include_directories(${GTEST_LIBRARY}/include) +include_directories(../engine/include) + +# compile including library source because it's cross-compiled +add_executable(unittest + maintest.cpp + gbatest.cpp + spritetest.cpp + scenetest.cpp + allocatortest.cpp + palettetest.cpp + real_data.h + ../engine/src/background/background.cpp + ../engine/src/background/text_stream.cpp + ../engine/src/palette/palette_manager.cpp + ../engine/src/sprites/sprite.cpp + ../engine/src/allocator.cpp + ../engine/src/palette/combined_palette.cpp + ) -add_executable(unittest maintest.cpp gbatest.cpp spritetest.cpp ../src/engine/background/background.cpp ../src/engine/background/text_stream.cpp ../src/engine/palette/palette_manager.cpp ../src/engine/sprites/sprite.cpp ../src/engine/allocator.cpp scenetest.cpp allocatortest.cpp palettetest.cpp ../src/engine/palette/combined_palette.cpp ../src/engine/palette/combined_palette.h) target_link_libraries(unittest ${GTEST_LIBRARY}/build/libgtest.a ${GTEST_LIBRARY}/build/libgtest_main.a) diff --git a/test/allocatortest.cpp b/test/allocatortest.cpp index d2a4427..f2ab566 100644 --- a/test/allocatortest.cpp +++ b/test/allocatortest.cpp @@ -9,7 +9,7 @@ #include "gtest/gtest.h" #include #include -#include +#include "real_data.h" using namespace std; diff --git a/test/real_data.h b/test/real_data.h new file mode 100644 index 0000000..a459f77 --- /dev/null +++ b/test/real_data.h @@ -0,0 +1,603 @@ + + +const unsigned short sharedPal[84] __attribute__((aligned(4)))= + { + 0x0000,0x3AE2,0x7BBD,0x4042,0x008C,0x3614,0x633B,0x1151, + 0x36FD,0x4AB8,0x21B2,0x77BE,0x3E56,0x0D0F,0x1971,0x56FA, + 0x6B7D,0x2DD3,0x7FFF,0x04EE,0x1550,0x1593,0x4697,0x677C, + 0x52D9,0x5B1A,0x112F,0x1DF5,0x08EE,0x31F4,0x3635,0x08EF, + 0x739D,0x7BDF,0x371D,0x29B3,0x4677,0x00CD,0x2192,0x5F1A, + 0x1950,0x675B,0x1130,0x77DE,0x4276,0x3214,0x04CE,0x4EB8, + 0x4A97,0x56F9,0x25B2,0x3A35,0x5F3B,0x635B,0x3615,0x73BE, + 0x2DF4,0x1D91,0x25B3,0x6F9D,0x4ED8,0x6B5C,0x1530,0x56D9, + + 0x6B7C,0x29D3,0x04CD,0x3A36,0x7BFF,0x00AD,0x4277,0x675C, + 0x1D71,0x73BD,0x5F1B,0x4256,0x1951,0x5AFA,0x7BDE,0x4A98, + 0x6F7D,0x2DF3,0x090F, + }; + + +#define background_width 88 +#define background_height 48 + +const unsigned char background_data [] = { + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x03, 0x04, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x02, + 0x02, 0x03, 0x03, 0x03, 0x02, 0x02, 0x04, 0x04, 0x02, 0x03, 0x03, 0x03, + 0x02, 0x02, 0x04, 0x03, 0x02, 0x03, 0x03, 0x03, 0x02, 0x02, 0x04, 0x03, + 0x02, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x03, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x04, 0x02, 0x02, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x04, 0x04, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x04, + 0x03, 0x02, 0x02, 0x04, 0x03, 0x03, 0x03, 0x04, 0x03, 0x02, 0x02, 0x04, + 0x03, 0x03, 0x03, 0x04, 0x02, 0x02, 0x02, 0x04, 0x03, 0x03, 0x03, 0x04, + 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x01, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x04, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x05, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x05, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x05, 0x04, 0x02, 0x05, 0x05, 0x05, 0x05, 0x02, 0x02, 0x04, 0x05, 0x02, + 0x02, 0x02, 0x02, 0x04, 0x02, 0x04, 0x05, 0x02, 0x02, 0x02, 0x02, 0x04, + 0x02, 0x04, 0x05, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x04, 0x05, 0x04, + 0x02, 0x02, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, + 0x02, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x02, 0x04, 0x05, 0x02, + 0x02, 0x02, 0x02, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x06, 0x06, + 0x01, 0x01, 0x01, 0x04, 0x04, 0x06, 0x06, 0x06, 0x01, 0x01, 0x04, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x01, 0x01, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x01, 0x01, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x01, 0x04, 0x06, 0x06, + 0x06, 0x07, 0x07, 0x06, 0x04, 0x06, 0x06, 0x06, 0x07, 0x06, 0x06, 0x06, + 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x06, 0x06, 0x04, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x06, 0x06, 0x06, 0x04, 0x01, 0x01, 0x01, 0x01, + 0x06, 0x06, 0x06, 0x04, 0x01, 0x04, 0x01, 0x01, 0x06, 0x06, 0x06, 0x06, + 0x04, 0x06, 0x04, 0x01, 0x06, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, + 0x06, 0x06, 0x07, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x04, 0x04, 0x03, 0x03, 0x03, 0x04, + 0x02, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x04, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, + 0x02, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x03, 0x03, + 0x03, 0x04, 0x03, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x04, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x04, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x01, 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x05, 0x05, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, + 0x05, 0x02, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x05, 0x02, 0x02, 0x02, + 0x05, 0x05, 0x05, 0x04, 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, + 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x04, 0x05, 0x02, + 0x02, 0x02, 0x02, 0x04, 0x02, 0x04, 0x05, 0x02, 0x02, 0x02, 0x02, 0x04, + 0x04, 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x05, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x04, 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, + 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x05, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x04, 0x04, 0x05, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, + 0x04, 0x06, 0x06, 0x06, 0x01, 0x01, 0x01, 0x04, 0x06, 0x06, 0x06, 0x06, + 0x01, 0x01, 0x01, 0x06, 0x06, 0x06, 0x06, 0x06, 0x01, 0x04, 0x04, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x01, 0x04, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x04, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x04, 0x06, + 0x04, 0x01, 0x01, 0x01, 0x06, 0x04, 0x06, 0x06, 0x04, 0x01, 0x01, 0x01, + 0x06, 0x06, 0x06, 0x06, 0x04, 0x01, 0x04, 0x01, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x04, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x08, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x08, 0x08, 0x01, 0x01, 0x01, 0x01, + 0x04, 0x08, 0x08, 0x08, 0x01, 0x01, 0x01, 0x04, 0x08, 0x08, 0x08, 0x08, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x04, 0x01, 0x01, 0x04, 0x04, + 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x08, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x08, 0x08, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, 0x08, 0x08, 0x04, + 0x01, 0x01, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x04, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x06, + 0x06, 0x07, 0x06, 0x06, 0x01, 0x01, 0x01, 0x04, 0x06, 0x06, 0x07, 0x06, + 0x01, 0x01, 0x01, 0x01, 0x04, 0x06, 0x06, 0x07, 0x01, 0x01, 0x01, 0x01, + 0x04, 0x06, 0x06, 0x06, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x04, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x07, 0x07, + 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, + 0x07, 0x07, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, + 0x01, 0x04, 0x04, 0x06, 0x06, 0x06, 0x04, 0x01, 0x01, 0x01, 0x01, 0x04, + 0x04, 0x04, 0x01, 0x01, 0x06, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x06, 0x06, + 0x06, 0x06, 0x07, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, + 0x06, 0x06, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, + 0x01, 0x01, 0x04, 0x04, 0x04, 0x04, 0x01, 0x01, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x04, 0x01, 0x01, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x01, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x01, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, 0x01, + 0x04, 0x06, 0x06, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x04, 0x08, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x08, 0x08, + 0x01, 0x01, 0x01, 0x01, 0x04, 0x08, 0x08, 0x08, 0x01, 0x01, 0x01, 0x04, + 0x08, 0x08, 0x08, 0x08, 0x01, 0x01, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x01, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x01, 0x01, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x01, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x08, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x08, 0x08, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, 0x08, 0x08, 0x04, + 0x01, 0x01, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x04, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x04, 0x09, 0x09, 0x01, 0x01, 0x01, 0x04, 0x04, 0x09, 0x09, 0x09, + 0x01, 0x01, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, 0x01, 0x01, 0x04, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x01, 0x01, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x01, 0x04, 0x09, 0x09, 0x09, 0x08, 0x08, 0x09, 0x04, 0x09, 0x09, 0x09, + 0x08, 0x09, 0x09, 0x09, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x09, 0x09, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x04, + 0x01, 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x04, 0x01, 0x04, 0x01, 0x01, + 0x09, 0x09, 0x09, 0x09, 0x04, 0x09, 0x04, 0x01, 0x09, 0x08, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x04, 0x09, 0x09, 0x08, 0x09, 0x09, 0x09, 0x09, 0x04, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x04, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x09, 0x09, + 0x01, 0x01, 0x01, 0x04, 0x04, 0x09, 0x09, 0x09, 0x01, 0x01, 0x04, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x01, 0x01, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x01, 0x01, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, 0x01, 0x04, 0x09, 0x09, + 0x09, 0x08, 0x08, 0x09, 0x04, 0x09, 0x09, 0x09, 0x08, 0x09, 0x09, 0x09, + 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x09, 0x09, 0x04, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x04, 0x01, 0x01, 0x01, 0x01, + 0x09, 0x09, 0x09, 0x04, 0x01, 0x04, 0x01, 0x01, 0x09, 0x09, 0x09, 0x09, + 0x04, 0x09, 0x04, 0x01, 0x09, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x04, + 0x09, 0x09, 0x08, 0x09, 0x09, 0x09, 0x09, 0x04, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x09, 0x09, 0x01, 0x01, 0x01, 0x04, + 0x04, 0x09, 0x09, 0x09, 0x01, 0x01, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x01, 0x01, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, 0x01, 0x01, 0x04, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x01, 0x04, 0x09, 0x09, 0x09, 0x08, 0x08, 0x09, + 0x04, 0x09, 0x09, 0x09, 0x08, 0x09, 0x09, 0x09, 0x04, 0x04, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x09, 0x09, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x09, 0x09, 0x09, 0x04, 0x01, 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x04, + 0x01, 0x04, 0x01, 0x01, 0x09, 0x09, 0x09, 0x09, 0x04, 0x09, 0x04, 0x01, + 0x09, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x04, 0x09, 0x09, 0x08, 0x09, + 0x09, 0x09, 0x09, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x04, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x04, + 0x01, 0x01, 0x01, 0x01, 0x04, 0x09, 0x09, 0x09, 0x01, 0x01, 0x01, 0x04, + 0x09, 0x09, 0x09, 0x09, 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x01, 0x04, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, 0x04, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x01, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x04, 0x01, 0x01, 0x04, + 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x04, 0x09, 0x04, 0x01, 0x01, 0x01, + 0x09, 0x04, 0x09, 0x09, 0x04, 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x09, + 0x04, 0x01, 0x04, 0x01, 0x09, 0x09, 0x09, 0x09, 0x09, 0x04, 0x09, 0x04, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x04, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x04, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x04, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +}; + +const unsigned short map [] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, + 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0012, 0x0014, 0x0014, 0x0015, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, + 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001d, + 0x001e, 0x001f, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0012, 0x0014, 0x0014, 0x0015, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001d, + 0x001e, 0x001f, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0001, 0x0002, 0x0000, 0x0000, 0x0003, 0x0004, 0x0000, + 0x0000, 0x0001, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000d, + 0x0000, 0x0000, 0x000e, 0x000f, 0x0000, 0x0000, 0x000c, 0x000d, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, + 0x0032, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0017, 0x0018, 0x0019, + 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0037, + 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, 0x003e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0000, 0x0000, + 0x0005, 0x0006, 0x0005, 0x0006, 0x0005, 0x0006, 0x0005, 0x0006, 0x0005, + 0x0006, 0x0005, 0x0006, 0x0005, 0x0006, 0x0005, 0x0006, 0x0005, 0x0006, + 0x0005, 0x0006, 0x0005, 0x0006, 0x0005, 0x0006, 0x0005, 0x0006, 0x0005, + 0x0006, 0x0005, 0x0006, 0x0005, 0x0006, 0x0010, 0x0011, 0x0010, 0x0011, + 0x0010, 0x0011, 0x0010, 0x0011, 0x0010, 0x0011, 0x0010, 0x0011, 0x0010, + 0x0011, 0x0010, 0x0011, 0x0010, 0x0011, 0x0010, 0x0011, 0x0010, 0x0011, + 0x0010, 0x0011, 0x0010, 0x0011, 0x0010, 0x0011, 0x0010, 0x0011, 0x0010, + 0x0011, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +}; + + +const unsigned short bg_palette [] = { + 0x7c1f, 0x7e4b, 0x0539, 0x1e7f, 0x0000, 0x5aff, 0x7fff, 0x7ee7, 0x02a0, + 0x0b50, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000 +}; + + +const unsigned int kulTiles[512] __attribute__((aligned(4)))= + { + 0x22222222,0x22222222,0x22222222,0x22222222,0x08222222,0x08080808,0x071B2222,0x07070707, + 0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C, + 0x22222222,0x22222222,0x22222222,0x22222222,0x08080808,0x08080808,0x07070707,0x07070707, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x22222222,0x22222222,0x22222222,0x22222222,0x08080808,0x08080808,0x07070707,0x07070707, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x22222222,0x22222222,0x22222222,0x22222222,0x08080808,0x08080808,0x07070707,0x07070707, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + + 0x22222222,0x22222222,0x22222222,0x22222222,0x08080808,0x08080808,0x07070707,0x07070707, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x22222222,0x22222222,0x22222222,0x22222222,0x08080808,0x08080808,0x07070707,0x07070707, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x22222222,0x22222222,0x22222222,0x22222222,0x08080808,0x08080808,0x07070707,0x07070707, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x22222222,0x22222222,0x22222222,0x22222222,0x08080808,0x08080808,0x07070707,0x07070707, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + + 0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C, + 0x1C152222,0x281F1C1C,0x1C152222,0x1228131C,0x1C152222,0x1214131C,0x1C152222,0x1214131C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x281C1C14,0x2A143E14,0x12164C20,0x34120C06,0x49124117,0x19124141,0x2F12340B,0x19123804, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x2A140D1C,0x140D1C1C,0x2712360D,0x12362514,0x0F212D0D,0x4E1D2514,0x0F212D0D,0x4E1D2514, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C2A,0x1414142A,0x251C2A06,0x12121206,0x421C2A19,0x12121227,0x421C2A19,0x32241227, + + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x141A1414,0x141A1C1A,0x12160B12,0x124F1C24,0x12243712,0x12241C2C,0x12303232,0x12241C2C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C3E283E,0x14143E52,0x143B1247,0x35401232,0x26494A4D,0x2F311211,0x33444F18,0x2C301236, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x28141428,0x0D282A1A,0x12121212,0x27123D3F,0x12121212,0x1212063F,0x3A260912,0x12120F2A, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x0D141A1C,0x1C1C1C1C,0x1E12180D,0x1C1C1C1C,0x05122F14,0x1C1C1C1C,0x05121833,0x1C1C1C1C, + + 0x1C152222,0x1214131C,0x1C152222,0x1214131C,0x1C152222,0x1214131C,0x1C152222,0x1214131C, + 0x1C152222,0x1214131C,0x1C152222,0x1214131C,0x1C152222,0x1E0D1C1C,0x1C152222,0x1C1C1C1C, + 0x0E401212,0x19123825,0x330B1212,0x19123845,0x34122112,0x1912511C,0x0B121D40,0x35443A1D, + 0x123C4840,0x1240324D,0x12320D10,0x12462D49,0x111A5238,0x38522633,0x1C1C1C1C,0x1C1C1C1C, + 0x0F212D0D,0x4E1D2514,0x0F212D0D,0x4E1D2514,0x0F212D0D,0x4E1D2514,0x18120C28,0x4E1D252A, + 0x2C123750,0x0B1D421C,0x32201212,0x0B1D2E2E,0x1C484B16,0x1D28131C,0x1C1C1C1C,0x1C1C1C1C, + 0x421C2A19,0x18061227,0x421C2A19,0x12121227,0x421C2A19,0x27401227,0x2E1C1427,0x1C1D1227, + 0x30122112,0x21441206,0x09121212,0x12121206,0x0A363636,0x36363641,0x1C1C1C1C,0x1C1C1C1C, + + 0x12303818,0x12241C2C,0x12304612,0x12241C2C,0x12302D27,0x12161C46,0x1224521C,0x12310D0F, + 0x12322B21,0x0B124712,0x49251212,0x40121212,0x2A2E3636,0x2A1E1643,0x1C1C1C1C,0x1C1C1C1C, + 0x4D121D2F,0x46331224,0x50123916,0x240A3B27,0x12372816,0x16143412,0x12271A46,0x4F2E1812, + 0x12090D38,0x4F452412,0x122D1313,0x30421D49,0x33141313,0x26132A38,0x1C1C1C1C,0x1C1C1C1C, + 0x0F2F4712,0x12121848,0x12121212,0x2012181D,0x35191012,0x2C121826,0x13453312,0x26121845, + 0x124E1212,0x23123518,0x12121212,0x41122931,0x36363633,0x1433413A,0x1C1C1C1C,0x1C1C1C1C, + 0x05121947,0x1C1C1C1C,0x05124012,0x1C1C1C1C,0x2D121220,0x1C1C1C1C,0x2D121235,0x1C1C1C1C, + 0x2D122B1E,0x1C1C1C1C,0x05123B52,0x1C1C1C1C,0x4C1E412E,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + + 0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C, + 0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C,0x1C152222,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + 0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C,0x1C1C1C1C, + }; \ No newline at end of file diff --git a/test/scenetest.cpp b/test/scenetest.cpp index 98312a8..9ed01c0 100644 --- a/test/scenetest.cpp +++ b/test/scenetest.cpp @@ -22,6 +22,7 @@ private: std::unique_ptr someSprite1; std::unique_ptr someSprite2; public: + SomeScene() : Scene(nullptr) { }; std::vector sprites() override { return { someSprite1.get(), someSprite2.get()