├── .gitignore ├── Ambilight ├── Ambilight.c ├── Ambilight.qbs ├── CMakeLists.txt ├── Makefile ├── ReadMe.md ├── docs │ └── Description_RU.txt ├── icons │ ├── ambilight_48x48.gif │ └── icon_ambilight_48x48.h ├── make_ep1.bat └── qtcreator │ ├── Ambilight.cflags │ ├── Ambilight.config │ ├── Ambilight.creator │ ├── Ambilight.cxxflags │ ├── Ambilight.files │ └── Ambilight.includes ├── BadApple ├── BadApple.c ├── BadApple.qbs ├── BadApple_SDL2.c ├── CMakeLists.txt ├── Makefile ├── Makefile.mcore ├── ReadMe.md ├── cybiko │ ├── BadApple.c │ ├── Makefile │ ├── ReadMe.md │ ├── bmp2fbm.py │ ├── make.bat │ └── res │ │ ├── 0.bmp │ │ ├── 0.help │ │ ├── 1.bmp │ │ ├── classic │ │ └── root.inf │ │ ├── filer_classic.list │ │ ├── filer_xtreme.list │ │ ├── root.bmp │ │ ├── root.spl │ │ ├── title.mus │ │ └── xtreme │ │ └── root.inf ├── make_ep1.bat ├── qtcreator │ ├── BadApple.cflags │ ├── BadApple.config │ ├── BadApple.creator │ ├── BadApple.cxxflags │ ├── BadApple.files │ └── BadApple.includes └── res │ ├── BadApple.m4a │ ├── BadApple.mp3 │ ├── BadApple_160p.fbm │ ├── BadApple_220p.fbm │ ├── ReadMe.md │ └── bmp2fbm.py ├── BattDump ├── BattDump.c ├── BattDump.qbs ├── CMakeLists.txt ├── Makefile ├── ReadMe.md ├── extended_notice │ ├── BattDump_SEN.c │ ├── Makefile │ └── make_ep1.bat ├── make_ep1.bat └── qtcreator │ ├── BattDump.cflags │ ├── BattDump.config │ ├── BattDump.creator │ ├── BattDump.cxxflags │ ├── BattDump.files │ └── BattDump.includes ├── Benchmark ├── Benchmark.c ├── Benchmark.h ├── Benchmark.qbs ├── CMakeLists.txt ├── FireEffect.c ├── Makefile ├── Makefile.eg1 ├── Makefile.mcore ├── Phases.c ├── ReadMe.md ├── delay_armv4t_ADS.S ├── delay_armv4t_ADS_fix.S ├── delay_armv4t_GCC.S ├── delay_mcore340_GCC.S ├── dhry.h ├── dhry_1.c ├── dhry_2.c ├── icons │ ├── benchmark_48x48.gif │ └── icon_benchmark_48x48.h ├── make_em1.bat ├── make_em2.bat ├── make_ep1.bat ├── make_ep2.bat ├── misc │ ├── DebugL7e │ │ ├── CMakeLists.txt │ │ ├── DebugL7e.c │ │ ├── Makefile │ │ └── make_ep1.bat │ ├── OverclockCpu │ │ ├── Makefile │ │ ├── OverclockCpu.c │ │ └── make_ep1.bat │ └── VibroSignal │ │ ├── Makefile │ │ ├── VibroSignal.c │ │ └── make_ep1.bat └── qtcreator │ ├── Benchmark.cflags │ ├── Benchmark.config │ ├── Benchmark.creator │ ├── Benchmark.cxxflags │ ├── Benchmark.files │ └── Benchmark.includes ├── CMakeLists.txt ├── Dumper ├── CMakeLists.txt ├── Dumper.c ├── Dumper.qbs ├── Makefile ├── ReadMe.md ├── dumps │ ├── D_SOC_E1.bin │ ├── D_SOC_L7.bin │ └── D_SOC_L7e.bin ├── icons │ ├── dumper_48x48.gif │ └── icon_dumper_48x48.h ├── make_ep1.bat └── qtcreator │ ├── Dumper.cflags │ ├── Dumper.config │ ├── Dumper.creator │ ├── Dumper.cxxflags │ ├── Dumper.files │ └── Dumper.includes ├── ElfBox ├── CMakeLists.txt ├── ElfBox.c ├── ElfBox.qbs ├── Makefile ├── Makefile.eg1 ├── ReadMe.md ├── icons │ ├── disk_15x15.gif │ ├── elf_15x15.gif │ ├── elfbox_48x48.gif │ ├── file_15x15.gif │ ├── folder_15x15.gif │ ├── icon_disk_15x15.h │ ├── icon_elf_15x15.h │ ├── icon_elfbox_48x48.h │ ├── icon_file_15x15.h │ └── icon_folder_15x15.h ├── make_ep1.bat └── qtcreator │ ├── ElfBox.cflags │ ├── ElfBox.config │ ├── ElfBox.creator │ ├── ElfBox.cxxflags │ ├── ElfBox.files │ └── ElfBox.includes ├── FireEffect ├── CMakeLists.txt ├── FireEffect.c ├── FireEffect.qbs ├── Makefile ├── ReadMe.md ├── black_and_white │ ├── FireEffect_BW.c │ ├── Makefile │ └── make_ep1.bat ├── make_ep1.bat ├── make_ep2.bat └── qtcreator │ ├── FireEffect.cflags │ ├── FireEffect.config │ ├── FireEffect.creator │ ├── FireEffect.cxxflags │ ├── FireEffect.files │ └── FireEffect.includes ├── FlipDetector ├── CMakeLists.txt ├── FlipDetector.c ├── FlipDetector.qbs ├── Makefile ├── ReadMe.md ├── make_ep1.bat └── qtcreator │ ├── FlipDetector.cflags │ ├── FlipDetector.config │ ├── FlipDetector.creator │ ├── FlipDetector.cxxflags │ ├── FlipDetector.files │ └── FlipDetector.includes ├── Neko ├── CMakeLists.txt ├── Makefile ├── Neko.c ├── Neko.qbs ├── ReadMe.md ├── icons │ ├── icon_neko_48x48.h │ └── neko_48x48.gif ├── make_ep1.bat ├── qtcreator │ ├── Neko.cflags │ ├── Neko.config │ ├── Neko.creator │ ├── Neko.cxxflags │ ├── Neko.files │ └── Neko.includes └── skins │ ├── Kitty.ani │ ├── Kitty.bmp │ ├── Neco.ani │ ├── Neco.bmp │ ├── Pepe.ani │ ├── Pepe.bmp │ ├── ReadMe.md │ ├── Sheep.ani │ ├── Sheep.bmp │ ├── Vik89.ani │ ├── Vik89.bmp │ └── bmp2ani.py ├── Overclock ├── CMakeLists.txt ├── Clock.c ├── Makefile ├── Makefile.eg1 ├── Overclock.c ├── Overclock.h ├── Overclock.qbs ├── ReadMe.md ├── icons │ ├── icon_overclock_48x48.h │ └── overclock_48x48.gif ├── make_ep1.bat └── qtcreator │ ├── Overclock.cflags │ ├── Overclock.config │ ├── Overclock.creator │ ├── Overclock.cxxflags │ ├── Overclock.files │ └── Overclock.includes ├── P2kElfs.qbs ├── Perlin ├── CMakeLists.txt ├── Engine.c ├── Engine.h ├── Fixed.h ├── Makefile ├── Perlin.c ├── Perlin.qbs ├── ReadMe.md ├── Trig.c ├── Trig.h ├── make_ep1.bat ├── make_ep2.bat └── qtcreator │ ├── Perlin.cflags │ ├── Perlin.config │ ├── Perlin.creator │ ├── Perlin.cxxflags │ ├── Perlin.files │ └── Perlin.includes ├── PowerAlert ├── CMakeLists.txt ├── Makefile ├── PowerAlert.c ├── PowerAlert.qbs ├── ReadMe.md ├── make_ep1.bat └── qtcreator │ ├── PowerAlert.cflags │ ├── PowerAlert.config │ ├── PowerAlert.creator │ ├── PowerAlert.cxxflags │ ├── PowerAlert.files │ └── PowerAlert.includes ├── ReadMe.md ├── Screenshot ├── CMakeLists.txt ├── Makefile ├── ReadMe.md ├── Screenshot.c ├── Screenshot.qbs ├── make_ep1.bat └── qtcreator │ ├── Screenshot.cflags │ ├── Screenshot.config │ ├── Screenshot.creator │ ├── Screenshot.cxxflags │ ├── Screenshot.files │ └── Screenshot.includes ├── Snow ├── CMakeLists.txt ├── Makefile ├── ReadMe.md ├── Snow.c ├── Snow.qbs ├── icons │ ├── icon_snow_48x48.h │ └── snow_48x48.gif ├── make_ep1.bat └── qtcreator │ ├── Snow.cflags │ ├── Snow.config │ ├── Snow.creator │ ├── Snow.cxxflags │ ├── Snow.files │ └── Snow.includes ├── Spout ├── CMakeLists.txt ├── Font.h ├── License.txt ├── Makefile ├── Piece.c ├── ReadMe.md ├── Sintable.h ├── Spout.c ├── Spout.h ├── Spout.qbs ├── long_tail │ ├── Font.h │ ├── Makefile │ ├── Piece.c │ ├── Sintable.h │ ├── Spout.c │ ├── Spout.h │ └── make_ep1.bat ├── make_ep1.bat ├── make_ep2.bat └── qtcreator │ ├── Spout.cflags │ ├── Spout.config │ ├── Spout.creator │ ├── Spout.cxxflags │ ├── Spout.files │ └── Spout.includes ├── VibroHaptic ├── CMakeLists.txt ├── Makefile ├── ReadMe.md ├── VibroHaptic.c ├── VibroHaptic.qbs ├── docs │ └── Signals.md ├── icons │ ├── icon_vibrohaptic_48x48.h │ └── vibrohaptic_48x48.gif ├── make_ep1.bat └── qtcreator │ ├── VibroHaptic.cflags │ ├── VibroHaptic.config │ ├── VibroHaptic.creator │ ├── VibroHaptic.cxxflags │ ├── VibroHaptic.files │ └── VibroHaptic.includes ├── Yeti3D-Old ├── CMakeLists.txt ├── Makefile ├── Makefile.mcore ├── Makefile.pc ├── Makefile.web ├── ReadMe.md ├── Yeti3D-Old.qbs ├── Yeti3D.c ├── Yeti3D.lua ├── Yeti3D.sin ├── Yeti3D.tex ├── big-endian │ ├── Yeti3D.lua │ └── Yeti3D.sin ├── data.c ├── data.h ├── draw.c ├── main.c ├── main_sdl2.c ├── make_ep1.bat ├── make_ep2.bat ├── make_gba.bat ├── qtcreator │ ├── Yeti3D-Old.cflags │ ├── Yeti3D-Old.config │ ├── Yeti3D-Old.creator │ ├── Yeti3D-Old.cxxflags │ ├── Yeti3D-Old.files │ └── Yeti3D-Old.includes ├── readme.txt ├── web │ └── index.html ├── yeti.c └── yeti.h ├── Yeti3D ├── CMakeLists.txt ├── Makefile ├── Makefile.mcore ├── Makefile.pc ├── Makefile.web ├── ReadMe.md ├── Yeti3D.lua ├── Yeti3D.map ├── Yeti3D.qbs ├── Yeti3D.rec ├── Yeti3D.sin ├── Yeti3D.spr ├── Yeti3D.tex ├── big-endian │ ├── Yeti3D.lua │ ├── Yeti3D.map │ ├── Yeti3D.rec │ ├── Yeti3D.sin │ └── Yeti3D.spr ├── data.c ├── data.h ├── draw.c ├── e1m1.c ├── extra.c ├── extra.h ├── font.c ├── font.h ├── game.c ├── game.h ├── gba.h ├── license.txt ├── logs │ ├── DAL_pointers.log │ ├── E1_Memory_Statistic.log │ ├── E1_phase_1.log │ ├── E1_phase_2.log │ ├── E1_phase_3.log │ ├── E1_phase_4.log │ ├── E1_phase_5.log │ ├── Game_Java_JVM.log │ ├── Game_Ugh_ELF.log │ ├── L6_Memory_Statistic.log │ ├── L6_phase_1.log │ ├── L6_phase_2.log │ ├── L6_phase_3.log │ ├── L6_phase_4.log │ ├── L6_phase_5.log │ ├── Memory_Usage.log │ ├── V360_ROT0.log │ └── V360_ROT90.log ├── main_gba.c ├── main_p2k.c ├── main_p2k_task.c ├── main_sdl.c ├── main_sdl2.c ├── make_ep1.bat ├── make_ep2.bat ├── make_gba.bat ├── make_task.bat ├── maps.c ├── model.c ├── model.h ├── optimize │ ├── CMakeLists.txt │ ├── Makefile │ ├── Makefile.pc │ ├── data.c │ ├── data.h │ ├── draw.c │ ├── e1m1.c │ ├── extra.c │ ├── extra.h │ ├── font.c │ ├── font.h │ ├── game.c │ ├── game.h │ ├── gba.h │ ├── main_gba.c │ ├── main_p2k.c │ ├── main_p2k_task.c │ ├── main_sdl.c │ ├── make_ep1.bat │ ├── make_ep2.bat │ ├── make_gba.bat │ ├── make_task.bat │ ├── maps.c │ ├── model.c │ ├── model.h │ ├── sprites.c │ ├── sprites.h │ ├── viewports.h │ ├── yeti.c │ └── yeti.h ├── qtcreator │ ├── Yeti3D.cflags │ ├── Yeti3D.config │ ├── Yeti3D.creator │ ├── Yeti3D.cxxflags │ ├── Yeti3D.files │ └── Yeti3D.includes ├── readme.txt ├── sprites.c ├── sprites.h ├── tools │ ├── color_convert.py │ ├── dump_res.c │ └── swap_bytes.py ├── viewports.h ├── web │ └── index.html ├── yeti.c └── yeti.h ├── docs ├── Build-CMake-CLion.md ├── Build-CMake-VisualStudioCode.md ├── Build-Qbs-Qt_Creator.md ├── ELFs-Debugging.md ├── GPUs-Motorola.md ├── Motorola_P2K_ELFs.bbcodes ├── Useful-Notes.md └── symbols_of_all_elfs.sym ├── images ├── CMake_CLion_Custom_Compiler.png ├── CMake_CLion_Settings.png ├── CMake_CLion_Toolchains.png ├── Photo_BadApple_Cybiko_1.jpg ├── Photo_BadApple_L6_E1_1.jpg ├── Photo_FireEffect_L6_E1_1.jpg ├── Photo_Perlin_L6_E1_1.jpg ├── Photo_Spout_L6_E1_1.jpg ├── Photo_Spout_V3i_1.jpg ├── Photo_Yeti3D_L6_E1_1.jpg ├── Photo_Yeti3D_Old_L6_E1_1.jpg ├── Photo_Yeti3D_V235_1.jpg ├── Photo_Yeti3D_V360_1.jpg ├── Photo_Yeti3D_V3i_1.jpg ├── Photo_Yeti3D_V3i_2.jpg ├── Photo_vNesC_E1_V3x_1.jpg ├── Photo_vNesC_E770v_1.jpg ├── Screenshot_Ambilight_E1_1.png ├── Screenshot_Ambilight_E1_2.png ├── Screenshot_Ambilight_E1_3.png ├── Screenshot_Ambilight_E1_4.png ├── Screenshot_Ambilight_V600_1.png ├── Screenshot_Ambilight_V600_2.png ├── Screenshot_Ambilight_V600_3.png ├── Screenshot_Ambilight_V600_4.png ├── Screenshot_BadApple_E1_1.png ├── Screenshot_BadApple_E1_2.png ├── Screenshot_BadApple_E1_3.png ├── Screenshot_BadApple_L6_1.png ├── Screenshot_BadApple_L6_2.png ├── Screenshot_BadApple_L6_3.png ├── Screenshot_BadApple_V3x_1.png ├── Screenshot_BadApple_V3x_2.png ├── Screenshot_BadApple_V3x_3.png ├── Screenshot_BattDump_E1_1.png ├── Screenshot_BattDump_E1_2.png ├── Screenshot_BattDump_L6_1.png ├── Screenshot_Benchmark_C650_1.png ├── Screenshot_Benchmark_C650_2.png ├── Screenshot_Benchmark_C650_3.png ├── Screenshot_Benchmark_C650_4.png ├── Screenshot_Benchmark_E1_1.png ├── Screenshot_Benchmark_E1_10.jpg ├── Screenshot_Benchmark_E1_11.jpg ├── Screenshot_Benchmark_E1_2.png ├── Screenshot_Benchmark_E1_3.png ├── Screenshot_Benchmark_E1_4.png ├── Screenshot_Benchmark_E1_5.png ├── Screenshot_Benchmark_E1_6.png ├── Screenshot_Benchmark_E1_7.png ├── Screenshot_Benchmark_E1_8.png ├── Screenshot_Benchmark_E1_9.png ├── Screenshot_Benchmark_L6_1.png ├── Screenshot_Benchmark_L6_2.png ├── Screenshot_Benchmark_L6_3.png ├── Screenshot_Benchmark_L6_4.png ├── Screenshot_Benchmark_L6_5.png ├── Screenshot_Benchmark_L6_6.png ├── Screenshot_Benchmark_L6_7.png ├── Screenshot_Benchmark_L6_8.png ├── Screenshot_Benchmark_V600_1.png ├── Screenshot_Benchmark_V600_2.png ├── Screenshot_Benchmark_V600_3.png ├── Screenshot_Benchmark_V600_4.png ├── Screenshot_Benchmark_V600_5.png ├── Screenshot_Benchmark_V600_6.png ├── Screenshot_Benchmark_V600_7.png ├── Screenshot_Dumper_E1_1.png ├── Screenshot_Dumper_E1_2.png ├── Screenshot_Dumper_E1_3.png ├── Screenshot_Dumper_E1_4.png ├── Screenshot_Dumper_E1_5.png ├── Screenshot_Dumper_L6_1.png ├── Screenshot_Dumper_L6_2.png ├── Screenshot_Dumper_L6_3.png ├── Screenshot_Dumper_L6_4.png ├── Screenshot_Dumper_V600_1.png ├── Screenshot_Dumper_V600_2.png ├── Screenshot_Dumper_V600_3.png ├── Screenshot_ElfBox_C650_1.png ├── Screenshot_ElfBox_C650_2.png ├── Screenshot_ElfBox_C650_3.png ├── Screenshot_ElfBox_E1_1.png ├── Screenshot_ElfBox_E1_2.png ├── Screenshot_ElfBox_E1_3.png ├── Screenshot_ElfBox_E1_4.png ├── Screenshot_ElfBox_E1_5.png ├── Screenshot_ElfBox_L6_1.png ├── Screenshot_ElfBox_L6_2.png ├── Screenshot_ElfBox_L6_3.png ├── Screenshot_ElfBox_V600_1.png ├── Screenshot_ElfBox_V600_2.png ├── Screenshot_ElfBox_V600_3.png ├── Screenshot_FireEffect_E1_1.png ├── Screenshot_FireEffect_E1_2.png ├── Screenshot_FireEffect_L6_1.png ├── Screenshot_FireEffect_L6_2.png ├── Screenshot_MIPS_Big-Endian.png ├── Screenshot_Neko_E1_1.png ├── Screenshot_Neko_E1_2.png ├── Screenshot_Neko_E1_3.png ├── Screenshot_Neko_E1_4.png ├── Screenshot_Neko_E1_5.gif ├── Screenshot_Neko_E1_6.gif ├── Screenshot_Neko_E1_7.gif ├── Screenshot_Neko_E1_8.gif ├── Screenshot_Neko_L6_1.png ├── Screenshot_Neko_L6_2.png ├── Screenshot_Neko_L6_3.png ├── Screenshot_Neko_L6_4.png ├── Screenshot_Neko_L6_5.gif ├── Screenshot_Neko_L6_6.gif ├── Screenshot_Neko_L6_7.gif ├── Screenshot_Neko_L6_8.gif ├── Screenshot_Neko_V600_1.png ├── Screenshot_Neko_V600_2.png ├── Screenshot_Neko_V600_3.png ├── Screenshot_Neko_V600_4.png ├── Screenshot_Neko_V600_5.gif ├── Screenshot_Neko_V600_6.gif ├── Screenshot_Neko_V600_7.gif ├── Screenshot_Neko_V600_8.gif ├── Screenshot_Overclock_Benchmark_E1_1.png ├── Screenshot_Overclock_Benchmark_E1_2.png ├── Screenshot_Overclock_Benchmark_L6_1.png ├── Screenshot_Overclock_Benchmark_L6_2.png ├── Screenshot_Overclock_Benchmark_L6_3.png ├── Screenshot_Overclock_Benchmark_L6_4.png ├── Screenshot_Overclock_C650_1.png ├── Screenshot_Overclock_C650_2.png ├── Screenshot_Overclock_C650_3.png ├── Screenshot_Overclock_E1_1.png ├── Screenshot_Overclock_E1_2.png ├── Screenshot_Overclock_E1_3.png ├── Screenshot_Overclock_JBenchmark_E1_1.png ├── Screenshot_Overclock_JBenchmark_E1_2.png ├── Screenshot_Overclock_JBenchmark_L6_1.png ├── Screenshot_Overclock_JBenchmark_L6_2.png ├── Screenshot_Overclock_JBenchmark_L6_3.png ├── Screenshot_Overclock_JBenchmark_L6_4.png ├── Screenshot_Overclock_L6_1.png ├── Screenshot_Overclock_L6_2.png ├── Screenshot_Overclock_L6_3.png ├── Screenshot_Overclock_V600_1.png ├── Screenshot_Overclock_V600_2.png ├── Screenshot_Overclock_V600_3.png ├── Screenshot_Perlin_E1_1.png ├── Screenshot_Perlin_E1_2.png ├── Screenshot_Perlin_E1_3.png ├── Screenshot_Perlin_L6_1.png ├── Screenshot_Perlin_L6_2.png ├── Screenshot_Perlin_L6_3.png ├── Screenshot_Screenshot_E1_1.png ├── Screenshot_Screenshot_L6_1.png ├── Screenshot_Screenshot_V600_1.png ├── Screenshot_Spout_C650_1.png ├── Screenshot_Spout_C650_2.png ├── Screenshot_Spout_C650_3.png ├── Screenshot_Spout_E1_1.png ├── Screenshot_Spout_E1_2.png ├── Screenshot_Spout_E1_3.png ├── Screenshot_Spout_L6_1.png ├── Screenshot_Spout_L6_2.png ├── Screenshot_Spout_L6_3.png ├── Screenshot_VibroHaptic_L6_1.png ├── Screenshot_VibroHaptic_L6_2.png ├── Screenshot_VibroHaptic_L6_3.png ├── Screenshot_VibroHaptic_L6_4.png ├── Screenshot_VibroHaptic_L6_5.png ├── Screenshot_VibroHaptic_L6_6.png ├── Screenshot_VibroHaptic_L6_7.png ├── Screenshot_VibroHaptic_L6_8.png ├── Screenshot_VibroHaptic_V600_1.png ├── Screenshot_VibroHaptic_V600_2.png ├── Screenshot_VibroHaptic_V600_3.png ├── Screenshot_VibroHaptic_V600_4.png ├── Screenshot_VibroHaptic_V600_5.png ├── Screenshot_Yeti3D_C650_1.png ├── Screenshot_Yeti3D_C650_2.png ├── Screenshot_Yeti3D_C650_3.png ├── Screenshot_Yeti3D_C650_4.png ├── Screenshot_Yeti3D_E1_1.png ├── Screenshot_Yeti3D_E1_2.png ├── Screenshot_Yeti3D_E1_3.png ├── Screenshot_Yeti3D_E770v_1.png ├── Screenshot_Yeti3D_E770v_2.png ├── Screenshot_Yeti3D_E770v_3.png ├── Screenshot_Yeti3D_E770v_4.png ├── Screenshot_Yeti3D_L6_1.png ├── Screenshot_Yeti3D_L6_2.png ├── Screenshot_Yeti3D_L6_3.png ├── Screenshot_Yeti3D_Old_E1_1.png ├── Screenshot_Yeti3D_Old_E1_2.png ├── Screenshot_Yeti3D_Old_E1_3.png ├── Screenshot_Yeti3D_Old_E1_4.png ├── Screenshot_Yeti3D_Old_L6_1.png ├── Screenshot_Yeti3D_Old_L6_2.png ├── Screenshot_Yeti3D_Old_L6_3.png ├── Screenshot_Yeti3D_Old_L6_4.png ├── Screenshot_Yeti3D_Old_V3x_1.png ├── Screenshot_Yeti3D_Old_V3x_2.png ├── Screenshot_Yeti3D_Old_V3x_3.png ├── Screenshot_Yeti3D_V3x_1.png ├── Screenshot_Yeti3D_V3x_2.png ├── Screenshot_Yeti3D_V3x_3.png ├── Screenshot_Yeti3D_V3x_4.png ├── Screenshot_vNesC_E770v_1.png ├── Screenshot_vNesC_E770v_2.png ├── Screenshot_vNesC_E770v_3.png ├── Screenshot_vNesC_E770v_4.png ├── Screenshot_vNesC_V3x_1.png ├── Screenshot_vNesC_V3x_2.png ├── Screenshot_vNesC_V3x_3.png ├── Screenshot_vNesC_V3x_4.png └── icons │ ├── 2048.gif │ ├── Ambilight.gif │ ├── BadApple.gif │ ├── BattDump.gif │ ├── Benchmark.gif │ ├── Dumper.gif │ ├── FireEffect.gif │ ├── Matrix.gif │ ├── Neko.gif │ ├── Overclock.gif │ ├── Perlin.gif │ ├── PowerAlert.gif │ ├── ReadMe.md │ ├── Screenshot.gif │ ├── Spout.gif │ ├── VibroHaptic.gif │ └── Yeti3D.gif └── vNesC ├── .gitignore ├── CMakeLists.txt ├── Makefile.eg1 ├── Makefile.mcore ├── Makefile.sdl1 ├── Makefile.sdl2 ├── ReadMe.md ├── Siemens ├── Func.asm ├── Main.c └── ReadMe-ru_RU.txt ├── make_em2.bat ├── make_ep2.bat ├── qtcreator ├── vNesC.cflags ├── vNesC.config ├── vNesC.creator ├── vNesC.cxxflags ├── vNesC.files └── vNesC.includes ├── vNesC.c ├── vNesC.h ├── vNesC.qbs ├── vP2k.c ├── vSdl1.c └── vSdl2.c /.gitignore: -------------------------------------------------------------------------------- 1 | # IntelliJ IDEA 2 | .idea/ 3 | 4 | # Visual Studio Code. 5 | .vscode/ 6 | 7 | # QtCreator IDE. 8 | .qtc 9 | .qtc_clangd 10 | *.user* 11 | qtcsettings.cmake 12 | 13 | # Generated files. 14 | *.o 15 | *.obj 16 | *.elfp 17 | *.elf 18 | *.exe 19 | 20 | # Build directory 21 | build 22 | 23 | # CMake 24 | CMakeLists.txt.user 25 | CMakeCache.txt 26 | CMakeCache.txt.prev 27 | CMakeFiles 28 | CMakeScripts 29 | Testing 30 | cmake_install.cmake 31 | install_manifest.txt 32 | compile_commands.json 33 | CTestTestfile.cmake 34 | _deps 35 | .cmake 36 | 37 | # CMake patch 38 | *-prefix/ 39 | 40 | # Ninja 41 | build.ninja 42 | .ninja_* 43 | -------------------------------------------------------------------------------- /Ambilight/Ambilight.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "Ambilight.c" ] 4 | 5 | cpp.defines: [ "EP1" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /Ambilight/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 13-Sep-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V600 20 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V635 21 | 22 | # Project/ELF name. 23 | ELF_NAME = Ambilight 24 | 25 | all: 26 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 27 | -o $(ELF_NAME).o 28 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 29 | -o $(ELF_NAME).elf 30 | 31 | clean: 32 | -rm -f *.o 33 | -rm -f *.obj 34 | -rm -f *.elfp 35 | -rm -f *.elf 36 | -------------------------------------------------------------------------------- /Ambilight/icons/ambilight_48x48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Ambilight/icons/ambilight_48x48.gif -------------------------------------------------------------------------------- /Ambilight/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 13-Sep-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | :: set DEFINES=-D__P2K__ -DEP1 -DFTR_V600 31 | 32 | :: Project/ELF name. 33 | set ELF_NAME=Ambilight 34 | 35 | :: Compiling step. 36 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 37 | 38 | :: Linking step. 39 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 40 | -------------------------------------------------------------------------------- /Ambilight/qtcreator/Ambilight.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Ambilight/qtcreator/Ambilight.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | -------------------------------------------------------------------------------- /Ambilight/qtcreator/Ambilight.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Ambilight/qtcreator/Ambilight.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Ambilight/qtcreator/Ambilight.files: -------------------------------------------------------------------------------- 1 | ../Ambilight.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../icons/icon_ambilight_48x48.h 5 | ../ReadMe.md 6 | -------------------------------------------------------------------------------- /Ambilight/qtcreator/Ambilight.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /BadApple/BadApple.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "BadApple.c" ] 4 | 5 | cpp.defines: [ "EP1", "FPS_30" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /BadApple/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 16-Nov-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 -DFPS_30 19 | #DEFINES = -D__P2K__ -DEP1 -DFPS_60 -DNO_COMPRESS 20 | #DEFINES = -D__P2K__ -DEP1 -DFPS_30 -DFTR_V600 21 | #DEFINES = -D__P2K__ -DEP1 -DFPS_30 -DFTR_V635 22 | #DEFINES = -D__P2K__ -DEP1 -DFPS_30 -DFTR_L7E 23 | 24 | 25 | # Project/ELF name. 26 | ELF_NAME = BadApple 27 | 28 | all: 29 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 30 | -o $(ELF_NAME).o 31 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 32 | -o $(ELF_NAME).elf 33 | 34 | clean: 35 | -rm -f *.o 36 | -rm -f *.obj 37 | -rm -f *.elfp 38 | -rm -f *.elf 39 | -------------------------------------------------------------------------------- /BadApple/Makefile.mcore: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 02-Mar-2025. 2 | # Default platform is Motorola P2K M-CORE, ElfPack v2.0 for M-CORE, `mcore-elf-gcc-3.4.6` on Linux. 3 | 4 | # Compiler path. 5 | MCORE_PATH = /opt/mcore-elf-gcc 6 | 7 | # SDK path. 8 | SDK_PATH = $(MCORE_PATH)/sdk 9 | 10 | # Libraries path. 11 | LIB_PATH = $(MCORE_PATH)/mcore-elf/lib 12 | 13 | # Defines. 14 | DEFINES = -D__P2K__ -DEM2 -DROT_0 -DFPS_60 15 | #DEFINES = -D__P2K__ -DEM2 -DROT_0 -DFPS_60 -DNO_COMPRESS 16 | 17 | # Optimization. 18 | OPTIM = -O2 19 | 20 | # Project/ELF name. 21 | ELF_NAME = BadApple 22 | 23 | all: 24 | $(MCORE_PATH)/bin/mcore-elf-gcc -fshort-wchar -funsigned-char -fomit-frame-pointer -fno-builtin \ 25 | -m340 -m4align -mbig-endian -nostdinc -nostdlib \ 26 | -I$(SDK_PATH) $(INCLUDES) $(DEFINES) $(OPTIM) \ 27 | -c $(ELF_NAME).c -o $(ELF_NAME).o 28 | $(MCORE_PATH)/bin/mcore-elf-ld -d -EB -N -r -s -Bstatic -Bsymbolic -Bsymbolic-functions \ 29 | -nostdinc -nostdlib --unresolved-symbols=report-all -z muldefs -z combreloc -z nodefaultlib \ 30 | $(ELF_NAME).o \ 31 | -T$(LIB_PATH)/linker_elf.ld -o $(ELF_NAME).elf 32 | 33 | clean: 34 | -rm -f *.o 35 | -rm -f *.obj 36 | -rm -f *.elfp 37 | -rm -f *.elf 38 | -------------------------------------------------------------------------------- /BadApple/cybiko/Makefile: -------------------------------------------------------------------------------- 1 | # use 'vmake' (not 'make'!) to run this script! 2 | 3 | # set this to where Cybiko SDK actually resides 4 | # CYBIKO_SDK = C:\Program Files\Cybiko\Cybiko SDK 5 | 6 | RM = vrm 7 | VCC = vcc 8 | 9 | APP_NAME = BadApple 10 | APP_CLASSIC = $(APP_NAME)_Classic.app 11 | APP_XTREME = $(APP_NAME)_Xtreme.app 12 | 13 | all: 14 | 2pic res/0.ico res/0.bmp 15 | 2pic res/1.ico res/1.bmp 16 | 2pic res/root.ico res/root.bmp 17 | 18 | $(VCC) -DCYOS -O -c BadApple.c -o BadApple.o 19 | $(VCC) BadApple.o -o bytecode.bin 20 | 21 | $(VCC) -R0 @res/filer_classic.list bytecode.bin -o $(APP_CLASSIC) 22 | $(VCC) -R0 @res/filer_xtreme.list bytecode.bin -o $(APP_XTREME) 23 | 24 | clean: 25 | $(RM) -f res/*.ico 26 | $(RM) -f res/*.pic 27 | $(RM) -f *.o 28 | $(RM) -f *.bin 29 | $(RM) -f *.app 30 | 31 | new: clean all 32 | -------------------------------------------------------------------------------- /BadApple/cybiko/ReadMe.md: -------------------------------------------------------------------------------- 1 | Bad Apple for Cybiko 2 | ==================== 3 | 4 | Just a Bad Apple demo for Cybiko! 5 | 6 | ![Bad Apple for Cybiko Photo 1](../../images/Photo_BadApple_Cybiko_1.jpg) 7 | 8 | Press the \ key to exit. 9 | 10 | See additional information in the [2048/2048-CyOS](https://github.com/EXL/2048/tree/master/2048-CyOS) repository. 11 | 12 | ## Creation of "BadApple.fbm" recipe 13 | 14 | ```bash 15 | # Download original "Bad Apple!!" video from YouTube. 16 | yt-dlp "https://youtu.be/FtutLA63Cp8" -o BadApple.webm 17 | 18 | # Set 15 FPS instead of 30 FPS. 19 | ffmpeg -i BadApple.webm -vf "fps=15" BadApple_15f.webm 20 | 21 | # Scale it to proper resolution without aspect ratio savings. 22 | ffmpeg -i BadApple_15f.webm -vf "scale=160:100" BadApple_15f_160p.webm 23 | ffmpeg -i BadApple_15f.webm -vf "scale=160:100" -ss "00:00:40.00" -to "00:00:56.00" BadApple_15f_160p.webm 24 | 25 | # Unpack raw bitmap frames. 26 | mkdir frames 27 | ffmpeg -i BadApple_15f_160p.webm 'frames/%04d.bmp' 28 | 29 | # Convert frames from 24bpp to 2bpp using ImageMagick convert tool. 30 | mkdir bw 31 | cd frames 32 | find * -name '*.bmp' -exec bash -c 'echo "24bpp => 2bpp: {}..." && convert {} -depth 2 ../bw/bw_{}.png' \; 33 | 34 | # Create compressed FBM file from frames. 35 | cd .. 36 | ./bmp2fbm.py bw 37 | ``` 38 | 39 | ## Download 40 | 41 | * https://firmware.center/projects/EXL/Cybiko/ 42 | -------------------------------------------------------------------------------- /BadApple/cybiko/make.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | vmake new -p2 %1 3 | -------------------------------------------------------------------------------- /BadApple/cybiko/res/0.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/BadApple/cybiko/res/0.bmp -------------------------------------------------------------------------------- /BadApple/cybiko/res/0.help: -------------------------------------------------------------------------------- 1 | Bad Apple Help 2 | Version 1.0.0 3 | 4 | Just a Bad Apple demo for Cybiko! 5 | 6 | Press the key to exit. 7 | -------------------------------------------------------------------------------- /BadApple/cybiko/res/1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/BadApple/cybiko/res/1.bmp -------------------------------------------------------------------------------- /BadApple/cybiko/res/classic/root.inf: -------------------------------------------------------------------------------- 1 | game 2 | Bad Apple 3 | Logical 4 | 5 | 6 | *.fbm 7 | BadApple 8 | 1.0.0 9 | 1.2.53 10 | Copyright © EXL, MotoFan.Ru, 2025 11 | 12 | -------------------------------------------------------------------------------- /BadApple/cybiko/res/filer_classic.list: -------------------------------------------------------------------------------- 1 | +res/0.help 2 | +res/root.ico 3 | +res/classic/root.inf 4 | +res/root.spl 5 | +res/title.mus 6 | -------------------------------------------------------------------------------- /BadApple/cybiko/res/filer_xtreme.list: -------------------------------------------------------------------------------- 1 | +res/0.help 2 | +res/0.ico 3 | +res/1.ico 4 | +res/root.ico 5 | +res/xtreme/root.inf 6 | +res/root.spl 7 | +res/title.mus 8 | -------------------------------------------------------------------------------- /BadApple/cybiko/res/root.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/BadApple/cybiko/res/root.bmp -------------------------------------------------------------------------------- /BadApple/cybiko/res/root.spl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/BadApple/cybiko/res/root.spl -------------------------------------------------------------------------------- /BadApple/cybiko/res/title.mus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/BadApple/cybiko/res/title.mus -------------------------------------------------------------------------------- /BadApple/cybiko/res/xtreme/root.inf: -------------------------------------------------------------------------------- 1 | game 2 | Bad Apple 3 | Logical 4 | 5 | 6 | *.fbm 7 | BadApple 8 | 21.0.0 9 | 1.5.1 10 | Copyright © EXL, MotoFan.Ru, 2025 11 | 12 | -------------------------------------------------------------------------------- /BadApple/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 16-Nov-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 -DFPS_30 30 | :: set DEFINES=-D__P2K__ -DEP1 -DFPS_30 -DFTR_V600 31 | 32 | :: Project/ELF name. 33 | set ELF_NAME=BadApple 34 | 35 | :: Compiling step. 36 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 37 | 38 | :: Linking step. 39 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 40 | -------------------------------------------------------------------------------- /BadApple/qtcreator/BadApple.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /BadApple/qtcreator/BadApple.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | #define FPS_30 5 | -------------------------------------------------------------------------------- /BadApple/qtcreator/BadApple.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /BadApple/qtcreator/BadApple.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /BadApple/qtcreator/BadApple.files: -------------------------------------------------------------------------------- 1 | ../BadApple.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../make_ep2.bat 5 | ../ReadMe.md 6 | -------------------------------------------------------------------------------- /BadApple/qtcreator/BadApple.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /BadApple/res/BadApple.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/BadApple/res/BadApple.m4a -------------------------------------------------------------------------------- /BadApple/res/BadApple.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/BadApple/res/BadApple.mp3 -------------------------------------------------------------------------------- /BadApple/res/BadApple_160p.fbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/BadApple/res/BadApple_160p.fbm -------------------------------------------------------------------------------- /BadApple/res/BadApple_220p.fbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/BadApple/res/BadApple_220p.fbm -------------------------------------------------------------------------------- /BattDump/BattDump.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "BattDump.c" ] 4 | 5 | cpp.defines: [ "EP1" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /BattDump/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 01-Dec-2022. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | 20 | # Project/ELF name. 21 | ELF_NAME = BattDump 22 | 23 | all: 24 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 25 | -o $(ELF_NAME).o 26 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 27 | -o $(ELF_NAME).elf 28 | 29 | clean: 30 | -rm -f *.o 31 | -rm -f *.obj 32 | -rm -f *.elfp 33 | -rm -f *.elf 34 | -------------------------------------------------------------------------------- /BattDump/ReadMe.md: -------------------------------------------------------------------------------- 1 | Batt Dump 2 | ========= 3 | 4 | The "Batt Dump" ELF utility for dumping battery ROM by 1-Wire interface. 5 | 6 | ## Screenshots from Motorola SLVR L6 7 | 8 | ![Screenshot of Batt Dump from Motorola L6](../images/Screenshot_BattDump_L6_1.png) 9 | 10 | ## Screenshots from Motorola ROKR E1 11 | 12 | ![Screenshot 1 of Batt Dump from Motorola E1](../images/Screenshot_BattDump_E1_1.png) ![Screenshot 2 of Batt Dump from Motorola E1](../images/Screenshot_BattDump_E1_2.png) 13 | 14 | ## Other versions 15 | 16 | * Example of using `UIS_CreateExtendedNotice()` function. See [extended_notice](extended_notice) utitlity project in this directory. 17 | 18 | ## ELF files 19 | 20 | * BattDump.elf (ELF for ElfPack 1.0) 21 | * BattDump_SEN.elf (ELF for ElfPack 1.0, Sample Extended Notice version) 22 | 23 | ## Additional information 24 | 25 | The ELF-application has been tested on the following phones and firmware: 26 | 27 | * Motorola SLVR L6i: R3443H1_G_0A.65.0BR 28 | * Motorola ROKR E1: R373_G_0E.30.49R 29 | * Motorola V235: R3512_G_0A.30.6CR 30 | 31 | Application type: GUI. 32 | -------------------------------------------------------------------------------- /BattDump/extended_notice/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 01-Dec-2022. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | 20 | # Project/ELF name. 21 | ELF_NAME = BattDump_SEN 22 | 23 | all: 24 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 25 | -o $(ELF_NAME).o 26 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 27 | -o $(ELF_NAME).elf 28 | 29 | clean: 30 | -rm -f *.o 31 | -rm -f *.obj 32 | -rm -f *.elfp 33 | -rm -f *.elf 34 | -------------------------------------------------------------------------------- /BattDump/extended_notice/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 01-Dec-2022. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | 31 | :: Project/ELF name. 32 | set ELF_NAME=BattDump_SEN 33 | 34 | :: Compiling step. 35 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 36 | 37 | :: Linking step. 38 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 39 | -------------------------------------------------------------------------------- /BattDump/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 01-Dec-2022. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | 31 | :: Project/ELF name. 32 | set ELF_NAME=BattDump 33 | 34 | :: Compiling step. 35 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 36 | 37 | :: Linking step. 38 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 39 | -------------------------------------------------------------------------------- /BattDump/qtcreator/BattDump.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /BattDump/qtcreator/BattDump.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | -------------------------------------------------------------------------------- /BattDump/qtcreator/BattDump.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /BattDump/qtcreator/BattDump.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /BattDump/qtcreator/BattDump.files: -------------------------------------------------------------------------------- 1 | ../BattDump.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../ReadMe.md 5 | -------------------------------------------------------------------------------- /BattDump/qtcreator/BattDump.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /Benchmark/Benchmark.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ 4 | "Benchmark.c", 5 | "FireEffect.c", 6 | "Phases.c", 7 | "delay_armv4t_ADS.S", 8 | "delay_armv4t_ADS_fix.S", 9 | "delay_armv4t_GCC.S", 10 | "delay_mcore340_GCC.S", 11 | "dhry_1.c", 12 | "dhry_2.c" 13 | ] 14 | cpp.defines: [ "__P2K__", "EP1", "LINUX_BOGOMIPS" ] 15 | cpp.optimization: "O2" 16 | cpp.staticLibraries: ["Lib"] 17 | } 18 | -------------------------------------------------------------------------------- /Benchmark/delay_armv4t_ADS.S: -------------------------------------------------------------------------------- 1 | ; Thanks to @usernameak for porting it to ADS (Unified Assembler Language) ARM Assembler. 2 | 3 | AREA |asm.delay_bmips|, CODE, READONLY 4 | CODE32 5 | EXPORT delay_bmips 6 | 7 | delay_bmips 8 | subs r0, r0, #1 9 | bcc delay_bmips_return 10 | subs r0, r0, #1 11 | bcc delay_bmips_return 12 | subs r0, r0, #1 13 | bcc delay_bmips_return 14 | subs r0, r0, #1 15 | bcc delay_bmips_return 16 | subs r0, r0, #1 17 | bcc delay_bmips_return 18 | subs r0, r0, #1 19 | bcc delay_bmips_return 20 | subs r0, r0, #1 21 | bcc delay_bmips_return 22 | subs r0, r0, #1 23 | bcs delay_bmips 24 | delay_bmips_return 25 | bx lr 26 | 27 | END 28 | -------------------------------------------------------------------------------- /Benchmark/delay_armv4t_ADS_fix.S: -------------------------------------------------------------------------------- 1 | ; The delay_bmips function for proper Motorola L7e-like benchmarking by @fkcoder/Siesta. 2 | 3 | AREA |asm.delay_bmips_fix|, CODE, READONLY 4 | CODE16 5 | EXPORT delay_bmips_fix 6 | 7 | delay_bmips_fix 8 | push {r1-r2} 9 | ldr r2, =0x3FC0000 ; just an unused instruction for ignore watchdog's (?) reboot... 10 | loop 11 | ldrb r1, [r2] ; same as ldr 12 | subs r0, r0, #1 13 | bge loop 14 | pop {r1-r2} 15 | bx lr 16 | 17 | END 18 | -------------------------------------------------------------------------------- /Benchmark/delay_armv4t_GCC.S: -------------------------------------------------------------------------------- 1 | /* Thanks to @usernameak for helping me port it to GCC ARM Assembler. */ 2 | 3 | .global delay_bmips 4 | 5 | .thumb 6 | delay_bmips: 7 | bx pc 8 | .arm 9 | b delay_bmips_arm 10 | 11 | delay_bmips_arm: 12 | subs r0, r0, #1 13 | bcc delay_bmips_return 14 | subs r0, r0, #1 15 | bcc delay_bmips_return 16 | subs r0, r0, #1 17 | bcc delay_bmips_return 18 | subs r0, r0, #1 19 | bcc delay_bmips_return 20 | subs r0, r0, #1 21 | bcc delay_bmips_return 22 | subs r0, r0, #1 23 | bcc delay_bmips_return 24 | subs r0, r0, #1 25 | bcc delay_bmips_return 26 | subs r0, r0, #1 27 | bcs delay_bmips_arm 28 | delay_bmips_return: 29 | bx lr 30 | -------------------------------------------------------------------------------- /Benchmark/delay_mcore340_GCC.S: -------------------------------------------------------------------------------- 1 | /* Thanks to the ChatGPT-4 for helping me port it from GCC ARM to GCC M*CORE. */ 2 | 3 | .global delay_bmips 4 | .type delay_bmips, @function 5 | 6 | delay_bmips: 7 | mov r0, r0 8 | delay_bmips_mcore_loop: 9 | declt r2 10 | bf delay_bmips_mcore_loop 11 | jmp r15 12 | -------------------------------------------------------------------------------- /Benchmark/icons/benchmark_48x48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Benchmark/icons/benchmark_48x48.gif -------------------------------------------------------------------------------- /Benchmark/misc/DebugL7e/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 01-Dec-2022. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | 20 | # Project/ELF name. 21 | ELF_NAME = DebugL7e 22 | 23 | all: 24 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 25 | -o $(ELF_NAME).o 26 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 27 | -o $(ELF_NAME).elf 28 | 29 | clean: 30 | -rm -f *.o 31 | -rm -f *.obj 32 | -rm -f *.elfp 33 | -rm -f *.elf 34 | -------------------------------------------------------------------------------- /Benchmark/misc/DebugL7e/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 01-Dec-2022. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | 31 | :: Project/ELF name. 32 | set ELF_NAME=DebugL7e 33 | 34 | :: Compiling step. 35 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 36 | 37 | :: Linking step. 38 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 39 | -------------------------------------------------------------------------------- /Benchmark/misc/OverclockCpu/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 01-Dec-2022. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | 20 | # Project/ELF name. 21 | ELF_NAME = OverclockCpu 22 | 23 | all: 24 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 25 | -o $(ELF_NAME).o 26 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 27 | -o $(ELF_NAME).elf 28 | 29 | clean: 30 | -rm -f *.o 31 | -rm -f *.obj 32 | -rm -f *.elfp 33 | -rm -f *.elf 34 | -------------------------------------------------------------------------------- /Benchmark/misc/OverclockCpu/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 01-Dec-2022. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | 31 | :: Project/ELF name. 32 | set ELF_NAME=OverclockCpu 33 | 34 | :: Compiling step. 35 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 36 | 37 | :: Linking step. 38 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 39 | -------------------------------------------------------------------------------- /Benchmark/misc/VibroSignal/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 01-Dec-2022. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | 20 | # Project/ELF name. 21 | ELF_NAME = VibroSignal 22 | 23 | all: 24 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 25 | -o $(ELF_NAME).o 26 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 27 | -o $(ELF_NAME).elf 28 | 29 | clean: 30 | -rm -f *.o 31 | -rm -f *.obj 32 | -rm -f *.elfp 33 | -rm -f *.elf 34 | -------------------------------------------------------------------------------- /Benchmark/misc/VibroSignal/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 01-Dec-2022. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | 31 | :: Project/ELF name. 32 | set ELF_NAME=VibroSignal 33 | 34 | :: Compiling step. 35 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 36 | 37 | :: Linking step. 38 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 39 | -------------------------------------------------------------------------------- /Benchmark/qtcreator/Benchmark.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Benchmark/qtcreator/Benchmark.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | #define LINUX_BOGOMIPS 5 | -------------------------------------------------------------------------------- /Benchmark/qtcreator/Benchmark.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Benchmark/qtcreator/Benchmark.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Benchmark/qtcreator/Benchmark.files: -------------------------------------------------------------------------------- 1 | ../Benchmark.c 2 | ../Benchmark.h 3 | ../Phases.c 4 | ../delay_armv4t_ADS.S 5 | ../delay_armv4t_ADS_fix.S 6 | ../delay_armv4t_GCC.S 7 | ../delay_mcore340_GCC.S 8 | ../dhry_1.c 9 | ../dhry_2.c 10 | ../Makefile 11 | ../make_ep1.bat 12 | ../make_ep2.bat 13 | ../make_em1.bat 14 | ../make_em2.bat 15 | ../icons/icon_benchmark_48x48.h 16 | ../ReadMe.md 17 | -------------------------------------------------------------------------------- /Benchmark/qtcreator/Benchmark.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /Dumper/Dumper.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "Dumper.c" ] 4 | 5 | cpp.defines: [ "EP1", "USE_MME" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /Dumper/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 02-Jun-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 -DUSE_MME 19 | #DEFINES = -D__P2K__ -DEP1 -DUSE_MME -DFTR_V600 20 | #DEFINES = -D__P2K__ -DEP1 -DUSE_MME -DFTR_V635 21 | #DEFINES = -D__P2K__ -DEP1 -DUSE_MME -DFTR_V600 -DFTR_C650 22 | 23 | # Project/ELF name. 24 | ELF_NAME = Dumper 25 | 26 | all: 27 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 28 | -o $(ELF_NAME).o 29 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 30 | -o $(ELF_NAME).elf 31 | 32 | clean: 33 | -rm -f *.o 34 | -rm -f *.obj 35 | -rm -f *.elfp 36 | -rm -f *.elf 37 | -------------------------------------------------------------------------------- /Dumper/dumps/D_SOC_E1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Dumper/dumps/D_SOC_E1.bin -------------------------------------------------------------------------------- /Dumper/dumps/D_SOC_L7.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Dumper/dumps/D_SOC_L7.bin -------------------------------------------------------------------------------- /Dumper/dumps/D_SOC_L7e.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Dumper/dumps/D_SOC_L7e.bin -------------------------------------------------------------------------------- /Dumper/icons/dumper_48x48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Dumper/icons/dumper_48x48.gif -------------------------------------------------------------------------------- /Dumper/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 02-Jun-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 -DUSE_MME 30 | :: set DEFINES=-D__P2K__ -DEP1 -DUSE_MME -DFTR_V600 31 | 32 | :: Project/ELF name. 33 | set ELF_NAME=Dumper 34 | 35 | :: Compiling step. 36 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 37 | 38 | :: Linking step. 39 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 40 | -------------------------------------------------------------------------------- /Dumper/qtcreator/Dumper.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Dumper/qtcreator/Dumper.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define __P2K__ 4 | #define EP1 5 | // #define EP2 6 | // #define EM1 7 | // #define EM2 8 | -------------------------------------------------------------------------------- /Dumper/qtcreator/Dumper.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Dumper/qtcreator/Dumper.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Dumper/qtcreator/Dumper.files: -------------------------------------------------------------------------------- 1 | ../Dumper.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../icons/icon_dumper_48x48.h 5 | ../ReadMe.md 6 | -------------------------------------------------------------------------------- /Dumper/qtcreator/Dumper.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /ElfBox/ElfBox.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "ElfBox.c" ] 4 | 5 | cpp.defines: [ "EP1" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /ElfBox/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 02-Jun-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | #DEFINES = -D__P2K__ -DEP1 -DSHOW_ELF_ICONS 20 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V600 21 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V600 -DFTR_C650 -DASYNC 22 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V600 -DFTR_C650 -DASYNC -DDEBUG 23 | #DEFINES = -D__P2K__ -DEP1 -DSHOW_ELF_ICONS -DFTR_V635 -DASYNC 24 | 25 | # Project/ELF name. 26 | ELF_NAME = ElfBox 27 | 28 | all: 29 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 30 | -o $(ELF_NAME).o 31 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 32 | -o $(ELF_NAME).elf 33 | 34 | clean: 35 | -rm -f *.o 36 | -rm -f *.obj 37 | -rm -f *.elfp 38 | -rm -f *.elf 39 | -------------------------------------------------------------------------------- /ElfBox/Makefile.eg1: -------------------------------------------------------------------------------- 1 | # Script: Motorola P2K Makefile 2 | # Flavor: EG1, EA1 (ElfPack v1.x, ARM GCC, Linux) 3 | # Author: EXL, 06-Jan-2025 4 | 5 | P2K_ELF_SDK = /home/exl/Storage/Projects/Git/MotoFanRu/P2K-ELF-SDK 6 | ARM_GCC_LIN_BIN = $(P2K_ELF_SDK)/tool/compiler/ARM-GCC-LIN/bin 7 | 8 | CC = $(shell command -v arm-none-eabi-gcc || echo $(ARM_GCC_LIN_BIN)/arm-none-eabi-gcc) 9 | 10 | INCLUDES = -nostdinc -I$(P2K_ELF_SDK)/sdk_mcore -I$(P2K_ELF_SDK)/ep1/inc 11 | DEFINES = -D__P2K__ -DEP1 -DFTR_L7E -DDEBUG 12 | WARNINGS = -Wall 13 | OPTIMIZATIONS = -O2 14 | FEATURES = -ffreestanding -fshort-wchar -fshort-enums -fpack-struct=4 -fno-builtin 15 | ifeq ($(ARGON), 1) 16 | FLAVOR = -DEA1 17 | CPU_FLAGS = -mbig-endian -mthumb -mthumb-interwork -mbe32 -march=armv6j -mtune=arm1136jf-s 18 | else 19 | FLAVOR = -DEG1 20 | CPU_FLAGS = -mbig-endian -mthumb -mthumb-interwork -march=armv4t -mtune=arm7tdmi-s 21 | endif 22 | CFLAGS = $(INCLUDES) $(DEFINES) $(FLAVOR) $(WARNINGS) $(OPTIMIZATIONS) $(CPU_FLAGS) $(FEATURES) 23 | CXXFLAGS = $(CFLAGS) 24 | LDFLAGS = $(CFLAGS) -s -pie -Wl,--gc-sections -Wl,-zmax-page-size=4 -Wl,-eRegister 25 | LIBS = -nostdlib -nodefaultlibs -L$(P2K_ELF_SDK)/ep1/lib/gcc -leg1_gcc_stub 26 | 27 | TARGET_ELF = ElfBox.elf 28 | 29 | all: 30 | $(CC) $(CFLAGS) -c ElfBox.c -o ElfBox.o 31 | $(CC) $(LDFLAGS) ElfBox.o $(LIBS) -o $(TARGET_ELF) 32 | 33 | clean: 34 | -rm -f *.o 35 | -rm -f *.elf 36 | -------------------------------------------------------------------------------- /ElfBox/icons/disk_15x15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/ElfBox/icons/disk_15x15.gif -------------------------------------------------------------------------------- /ElfBox/icons/elf_15x15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/ElfBox/icons/elf_15x15.gif -------------------------------------------------------------------------------- /ElfBox/icons/elfbox_48x48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/ElfBox/icons/elfbox_48x48.gif -------------------------------------------------------------------------------- /ElfBox/icons/file_15x15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/ElfBox/icons/file_15x15.gif -------------------------------------------------------------------------------- /ElfBox/icons/folder_15x15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/ElfBox/icons/folder_15x15.gif -------------------------------------------------------------------------------- /ElfBox/icons/icon_disk_15x15.h: -------------------------------------------------------------------------------- 1 | unsigned char disk_15x15_gif[] = { 2 | 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x0f, 0x00, 0x0f, 0x00, 0xf3, 0x0c, 3 | 0x00, 0x08, 0x3c, 0x50, 0xc7, 0x11, 0x11, 0x08, 0x68, 0xa0, 0x20, 0x98, 4 | 0xc8, 0x13, 0xc7, 0x11, 0x48, 0xac, 0xd8, 0x70, 0xbc, 0xe0, 0x70, 0xc0, 5 | 0xe0, 0x88, 0xd0, 0xf0, 0x98, 0xd4, 0xf0, 0xb8, 0xec, 0xf8, 0xd8, 0xf0, 6 | 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7 | 0x00, 0x21, 0xf9, 0x04, 0x05, 0x0a, 0x00, 0x0c, 0x00, 0x2c, 0x00, 0x00, 8 | 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x04, 0x44, 0x90, 0xc9, 0x49, 9 | 0x2b, 0x13, 0x38, 0xeb, 0x7c, 0xcb, 0xfa, 0x60, 0xb8, 0x14, 0x80, 0xa0, 10 | 0x24, 0x68, 0xaa, 0xa2, 0xe5, 0xb9, 0xbe, 0xed, 0x0b, 0x9b, 0xb2, 0x8a, 11 | 0xb4, 0x47, 0xae, 0xef, 0x39, 0xce, 0xff, 0x2d, 0x83, 0xd0, 0x10, 0x08, 12 | 0x00, 0x0e, 0x04, 0x02, 0xc0, 0x10, 0x1c, 0x02, 0x9e, 0x87, 0xe7, 0xb2, 13 | 0x54, 0x18, 0x58, 0xaf, 0xd8, 0x01, 0x89, 0x21, 0xed, 0x7a, 0x01, 0x96, 14 | 0xb0, 0x78, 0xcc, 0x88, 0x00, 0x00, 0x3b 15 | }; 16 | unsigned int disk_15x15_gif_len = 151; 17 | -------------------------------------------------------------------------------- /ElfBox/icons/icon_file_15x15.h: -------------------------------------------------------------------------------- 1 | unsigned char file_15x15_gif[] = { 2 | 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x0f, 0x00, 0x0f, 0x00, 0xf3, 0x0a, 3 | 0x00, 0x08, 0x28, 0x40, 0x10, 0x50, 0x80, 0x5d, 0x8f, 0xb5, 0x48, 0x98, 4 | 0xd0, 0x70, 0xaa, 0xd5, 0x80, 0xc0, 0xf0, 0xb6, 0xbb, 0xbb, 0xb0, 0xe4, 5 | 0xf0, 0xda, 0xdf, 0xdc, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 6 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 7 | 0x00, 0x21, 0xf9, 0x04, 0x05, 0x0a, 0x00, 0x0a, 0x00, 0x2c, 0x00, 0x00, 8 | 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x04, 0x3d, 0x50, 0x85, 0x49, 9 | 0x2b, 0x50, 0x58, 0xa6, 0xcd, 0x37, 0x32, 0x17, 0x16, 0x24, 0x47, 0x69, 10 | 0x96, 0x84, 0x10, 0x8e, 0xe7, 0x59, 0x10, 0x2b, 0xd9, 0x96, 0x45, 0x11, 11 | 0xcf, 0xb4, 0x2d, 0xca, 0x73, 0x7d, 0xe3, 0xbe, 0x1d, 0xee, 0x10, 0xd4, 12 | 0x0c, 0x8b, 0x2c, 0xa0, 0xce, 0xa8, 0xfc, 0xf5, 0x96, 0x81, 0x81, 0x74, 13 | 0x4a, 0x1d, 0x84, 0x00, 0xd8, 0xac, 0x36, 0xab, 0x88, 0x00, 0x00, 0x3b 14 | }; 15 | unsigned int file_15x15_gif_len = 144; 16 | -------------------------------------------------------------------------------- /ElfBox/icons/icon_folder_15x15.h: -------------------------------------------------------------------------------- 1 | unsigned char folder_15x15_gif[] = { 2 | 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x0f, 0x00, 0x0f, 0x00, 0xf2, 0x07, 3 | 0x00, 0x08, 0x28, 0x40, 0x10, 0x50, 0x80, 0x28, 0x80, 0xb8, 0x48, 0x98, 4 | 0xd0, 0x80, 0xc0, 0xf0, 0xb0, 0xe4, 0xf0, 0xf8, 0xfc, 0xf8, 0x00, 0x00, 5 | 0x00, 0x21, 0xf9, 0x04, 0x05, 0x0a, 0x00, 0x07, 0x00, 0x2c, 0x00, 0x00, 6 | 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x03, 0x39, 0x78, 0xba, 0xdc, 7 | 0xf1, 0xb0, 0xb1, 0x60, 0x6a, 0x0d, 0x52, 0xd1, 0xc2, 0x8b, 0x81, 0x20, 8 | 0xb0, 0x75, 0x24, 0x29, 0x82, 0x28, 0x64, 0x88, 0x46, 0x59, 0x52, 0xac, 9 | 0x4b, 0xc2, 0xa3, 0x5c, 0xd0, 0xad, 0x7d, 0xaf, 0xb5, 0x8c, 0x13, 0xc0, 10 | 0xa0, 0x10, 0x37, 0x28, 0x1a, 0x8f, 0x34, 0x81, 0x72, 0xc9, 0x5c, 0x02, 11 | 0x9e, 0xd0, 0xa8, 0x14, 0x90, 0x00, 0x00, 0x3b 12 | }; 13 | unsigned int folder_15x15_gif_len = 116; 14 | -------------------------------------------------------------------------------- /ElfBox/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 02-Jun-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | :: set DEFINES=-D__P2K__ -DEP1 -DSHOW_ELF_ICONS 31 | :: set DEFINES=-D__P2K__ -DEP1 -DFTR_V600 32 | :: set DEFINES=-D__P2K__ -DEP1 -DFTR_V600 -DFTR_C650 -DASYNC 33 | :: set DEFINES=-D__P2K__ -DEP1 -DFTR_V600 -DFTR_C650 -DASYNC -DDEBUG 34 | 35 | :: Project/ELF name. 36 | set ELF_NAME=ElfBox 37 | 38 | :: Compiling step. 39 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 40 | 41 | :: Linking step. 42 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 43 | -------------------------------------------------------------------------------- /ElfBox/qtcreator/ElfBox.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /ElfBox/qtcreator/ElfBox.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define __P2K__ 4 | #define EP1 5 | // #define EP2 6 | // #define EM1 7 | // #define EM2 8 | -------------------------------------------------------------------------------- /ElfBox/qtcreator/ElfBox.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /ElfBox/qtcreator/ElfBox.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /ElfBox/qtcreator/ElfBox.files: -------------------------------------------------------------------------------- 1 | ../ElfBox.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../icons/icon_disk_15x15.h 5 | ../icons/icon_elf_15x15.h 6 | ../icons/icon_elfbox_48x48.h 7 | ../icons/icon_file_15x15.h 8 | ../icons/icon_folder_15x15.h 9 | ../ReadMe.md 10 | -------------------------------------------------------------------------------- /ElfBox/qtcreator/ElfBox.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /FireEffect/FireEffect.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "FireEffect.c" ] 4 | 5 | cpp.defines: [ "EP1", "ROT_90", "FPS_30" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /FireEffect/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 27-Mar-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 19 | #DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DFTR_V600 20 | 21 | # Project/ELF name. 22 | ELF_NAME = FireEffect 23 | 24 | all: 25 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 26 | -o $(ELF_NAME).o 27 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 28 | -o $(ELF_NAME).elf 29 | 30 | clean: 31 | -rm -f *.o 32 | -rm -f *.obj 33 | -rm -f *.elfp 34 | -rm -f *.elf 35 | -------------------------------------------------------------------------------- /FireEffect/black_and_white/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 01-Dec-2022. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 19 | 20 | # Project/ELF name. 21 | ELF_NAME = FireEffect_BW 22 | 23 | all: 24 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 25 | -o $(ELF_NAME).o 26 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 27 | -o $(ELF_NAME).elf 28 | 29 | clean: 30 | -rm -f *.o 31 | -rm -f *.obj 32 | -rm -f *.elfp 33 | -rm -f *.elf 34 | -------------------------------------------------------------------------------- /FireEffect/black_and_white/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 01-Dec-2022. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_30 30 | 31 | :: Project/ELF name. 32 | set ELF_NAME=FireEffect_BW 33 | 34 | :: Compiling step. 35 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 36 | 37 | :: Linking step. 38 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 39 | -------------------------------------------------------------------------------- /FireEffect/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 27-Mar-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_30 30 | :: set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DFTR_V600 31 | 32 | :: Project/ELF name. 33 | set ELF_NAME=FireEffect 34 | 35 | :: Compiling step. 36 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 37 | 38 | :: Linking step. 39 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 40 | -------------------------------------------------------------------------------- /FireEffect/make_ep2.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep2.bat script was created by EXL, 27-Mar-2023. 2 | :: Default platform is Motorola P2K, ElfPack v2.x, devkitARM release 26 (GCC 4.4.0) on Windows. 3 | 4 | :: Uncomment it for disable verbose output. 5 | :: @echo off 6 | 7 | if /I "%1"=="clean" ( 8 | if exist *.o del *.o 9 | if exist *.obj del *.obj 10 | if exist *.elfp del *.elfp 11 | if exist *.elf del *.elf 12 | exit /b 0 13 | ) 14 | 15 | :: Compiler path. 16 | set ARM_PATH=C:\devkitARM 17 | 18 | :: SDK path. 19 | set SDK_PATH=%ARM_PATH%\SDK 20 | 21 | :: Libraries path. 22 | set LIB_PATH=%ARM_PATH%\lib 23 | 24 | :: Main link library. 25 | set LIB_MAIN=std.sa 26 | 27 | :: Libc link library. 28 | set LIB_LIBC=libc.a 29 | 30 | :: Defines. 31 | set DEFINES=-D__P2K__ -DEP2 -DROT_90 -DFPS_30 32 | 33 | :: Includes. 34 | set INCLUDES=-I. 35 | 36 | :: Optimization. 37 | set OPTIM=-O2 38 | 39 | :: Project/ELF name. 40 | set ELF_NAME=FireEffect 41 | 42 | :: Compiling step. 43 | %ARM_PATH%\bin\arm-eabi-gcc -c -Wall -mbig-endian -mthumb -mthumb-interwork -nostdlib ^ 44 | -fshort-wchar -fshort-enums -fpack-struct=4 -fno-builtin -fvisibility=hidden ^ 45 | -I%SDK_PATH% %INCLUDES% %DEFINES% %OPTIM% %ELF_NAME%.c -o %ELF_NAME%.o 46 | 47 | :: Linking step. 48 | %ARM_PATH%\bin\arm-eabi-ld -pie -EB %OPTIM% -nostdlib %ELF_NAME%.o ^ 49 | %LIB_PATH%\%LIB_MAIN% %LIB_PATH%\%LIB_LIBC% -o %ELF_NAME%.elfp 50 | 51 | :: Post linking step. 52 | %ARM_PATH%\libgen\postlink.exe %ELF_NAME%.elfp -o %ELF_NAME%.elf 53 | -------------------------------------------------------------------------------- /FireEffect/qtcreator/FireEffect.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /FireEffect/qtcreator/FireEffect.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | #define ROT_90 5 | #define FPS_30 6 | -------------------------------------------------------------------------------- /FireEffect/qtcreator/FireEffect.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /FireEffect/qtcreator/FireEffect.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /FireEffect/qtcreator/FireEffect.files: -------------------------------------------------------------------------------- 1 | ../FireEffect.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../make_ep2.bat 5 | ../ReadMe.md 6 | -------------------------------------------------------------------------------- /FireEffect/qtcreator/FireEffect.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /FlipDetector/FlipDetector.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "FlipDetector.c" ] 4 | 5 | cpp.defines: [ "EP1" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /FlipDetector/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 26-Jul-2024. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | 20 | # Project/ELF name. 21 | ELF_NAME = FlipDetector 22 | 23 | all: 24 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 25 | -o $(ELF_NAME).o 26 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 27 | -o $(ELF_NAME).elf 28 | 29 | clean: 30 | -rm -f *.o 31 | -rm -f *.obj 32 | -rm -f *.elfp 33 | -rm -f *.elf 34 | -------------------------------------------------------------------------------- /FlipDetector/ReadMe.md: -------------------------------------------------------------------------------- 1 | Flip Detector 2 | ============= 3 | 4 | The "Flip Detector" is ELF deamon for detect closed flip of Motorola clamshell phones and do some things. 5 | 6 | ## ELF files 7 | 8 | * FlipDetector.elf (ELF for ElfPack 1.0) 9 | 10 | ## Additional information 11 | 12 | The ELF-application has been tested on the following phones and firmware: 13 | 14 | * Motorola RAZR V3i: R4441D_G_08.01.03R 15 | 16 | Application type: Daemon. 17 | -------------------------------------------------------------------------------- /FlipDetector/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 26-Jul-2024. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | 31 | :: Project/ELF name. 32 | set ELF_NAME=FlipDetector 33 | 34 | :: Compiling step. 35 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 36 | 37 | :: Linking step. 38 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 39 | -------------------------------------------------------------------------------- /FlipDetector/qtcreator/FlipDetector.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /FlipDetector/qtcreator/FlipDetector.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | -------------------------------------------------------------------------------- /FlipDetector/qtcreator/FlipDetector.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /FlipDetector/qtcreator/FlipDetector.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /FlipDetector/qtcreator/FlipDetector.files: -------------------------------------------------------------------------------- 1 | ../FlipDetector.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../ReadMe.md 5 | -------------------------------------------------------------------------------- /FlipDetector/qtcreator/FlipDetector.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /Neko/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 29-Oct-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | #DEFINES = -D__P2K__ -DEP1 -DDEBUG 20 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V600 21 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V635 22 | 23 | # Project/ELF name. 24 | ELF_NAME = Neko 25 | 26 | all: 27 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 28 | -o $(ELF_NAME).o 29 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 30 | -o $(ELF_NAME).elf 31 | 32 | clean: 33 | -rm -f *.o 34 | -rm -f *.obj 35 | -rm -f *.elfp 36 | -rm -f *.elf 37 | -------------------------------------------------------------------------------- /Neko/Neko.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "Neko.c" ] 4 | 5 | cpp.defines: [ "EP1" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /Neko/icons/neko_48x48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/icons/neko_48x48.gif -------------------------------------------------------------------------------- /Neko/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 29-Oct-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | :: set DEFINES=-D__P2K__ -DEP1 -DFTR_V600 31 | 32 | :: Project/ELF name. 33 | set ELF_NAME=Neko 34 | 35 | :: Compiling step. 36 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 37 | 38 | :: Linking step. 39 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 40 | -------------------------------------------------------------------------------- /Neko/qtcreator/Neko.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Neko/qtcreator/Neko.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | -------------------------------------------------------------------------------- /Neko/qtcreator/Neko.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Neko/qtcreator/Neko.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Neko/qtcreator/Neko.files: -------------------------------------------------------------------------------- 1 | ../Neko.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../icons/icon_neko_48x48.h 5 | ../ReadMe.md 6 | -------------------------------------------------------------------------------- /Neko/qtcreator/Neko.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /Neko/skins/Kitty.ani: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/skins/Kitty.ani -------------------------------------------------------------------------------- /Neko/skins/Kitty.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/skins/Kitty.bmp -------------------------------------------------------------------------------- /Neko/skins/Neco.ani: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/skins/Neco.ani -------------------------------------------------------------------------------- /Neko/skins/Neco.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/skins/Neco.bmp -------------------------------------------------------------------------------- /Neko/skins/Pepe.ani: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/skins/Pepe.ani -------------------------------------------------------------------------------- /Neko/skins/Pepe.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/skins/Pepe.bmp -------------------------------------------------------------------------------- /Neko/skins/Sheep.ani: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/skins/Sheep.ani -------------------------------------------------------------------------------- /Neko/skins/Sheep.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/skins/Sheep.bmp -------------------------------------------------------------------------------- /Neko/skins/Vik89.ani: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/skins/Vik89.ani -------------------------------------------------------------------------------- /Neko/skins/Vik89.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Neko/skins/Vik89.bmp -------------------------------------------------------------------------------- /Overclock/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 07-Sep-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V600 20 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V635 21 | #DEFINES = -D__P2K__ -DEP1 -DFTR_L7E 22 | #DEFINES = -D__P2K__ -DEP1 -DDISABLE_ALL_INT 23 | 24 | # Project/ELF name. 25 | 26 | ifeq ($(ARGON), 1) 27 | ELF_NAME = OverclockLV 28 | else 29 | ELF_NAME = Overclock 30 | endif 31 | 32 | all: 33 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c Clock.c \ 34 | -o Clock.o 35 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c Overclock.c \ 36 | -o Overclock.o 37 | 38 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) \ 39 | Clock.o Overclock.o \ 40 | $(LIB_PATH)/$(LIB_MAIN) -o $(ELF_NAME).elf 41 | 42 | clean: 43 | -rm -f *.o 44 | -rm -f *.obj 45 | -rm -f *.elfp 46 | -rm -f *.elf 47 | -------------------------------------------------------------------------------- /Overclock/Overclock.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "Overclock.c", "Clock.c" ] 4 | cpp.defines: [ "EP1" ] 5 | cpp.optimization: "O2" 6 | cpp.staticLibraries: ["Lib"] 7 | } 8 | -------------------------------------------------------------------------------- /Overclock/icons/overclock_48x48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Overclock/icons/overclock_48x48.gif -------------------------------------------------------------------------------- /Overclock/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 07-Sep-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | :: set DEFINES=-D__P2K__ -DEP1 -DFTR_V600 31 | :: set DEFINES=-D__P2K__ -DEP1 -DFTR_L7E 32 | :: set DEFINES=-D__P2K__ -DEP1 -DDISABLE_ALL_INT 33 | 34 | :: Project/ELF name. 35 | set ELF_NAME=Overclock 36 | 37 | :: Compiling step. 38 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c Clock.c -o Clock.o 39 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 40 | 41 | :: Linking step. 42 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) Clock.o %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 43 | -------------------------------------------------------------------------------- /Overclock/qtcreator/Overclock.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Overclock/qtcreator/Overclock.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | -------------------------------------------------------------------------------- /Overclock/qtcreator/Overclock.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Overclock/qtcreator/Overclock.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Overclock/qtcreator/Overclock.files: -------------------------------------------------------------------------------- 1 | ../Overclock.c 2 | ../Overclock.h 3 | ../Clock.c 4 | ../Makefile 5 | ../make_ep1.bat 6 | ../icons/icon_overclock_48x48.h 7 | ../ReadMe.md 8 | -------------------------------------------------------------------------------- /Overclock/qtcreator/Overclock.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /P2kElfs.qbs: -------------------------------------------------------------------------------- 1 | Project { 2 | references: [ 3 | "Ambilight/Ambilight.qbs", 4 | "BadApple/BadApple.qbs", 5 | "BattDump/BattDump.qbs", 6 | "Benchmark/Benchmark.qbs", 7 | "Dumper/Dumper.qbs", 8 | "ElfBox/ElfBox.qbs", 9 | "FireEffect/FireEffect.qbs", 10 | "Neko/Neko.qbs", 11 | "Overclock/Overclock.qbs", 12 | "Perlin/Perlin.qbs", 13 | "PowerAlert/PowerAlert.qbs", 14 | "Screenshot/Screenshot.qbs", 15 | "Spout/Spout.qbs", 16 | "VibroHaptic/VibroHaptic.qbs", 17 | "Yeti3D-Old/Yeti3D-Old.qbs", 18 | "Yeti3D/Yeti3D.qbs", 19 | "FlipDetector/FlipDetector.qbs", 20 | "vNesC/vNesC.qbs", 21 | "Snow/Snow.qbs" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /Perlin/Engine.h: -------------------------------------------------------------------------------- 1 | #ifndef PERLIN_H 2 | #define PERLIN_H 3 | 4 | #include "Fixed.h" 5 | 6 | Fixed perlin(Fixed x, Fixed y, Fixed angle, int cache_idx); 7 | 8 | void perlin16_fast(int width, int height, Fixed angle); 9 | 10 | typedef unsigned char uchar; 11 | void draw_pixel(uchar x, uchar y); 12 | 13 | extern int randoms; 14 | extern int rotations; 15 | extern int gradients; 16 | extern int interpolations; 17 | 18 | #endif /* PERLIN_H */ 19 | -------------------------------------------------------------------------------- /Perlin/Fixed.h: -------------------------------------------------------------------------------- 1 | #ifndef FIXED_H 2 | #define FIXED_H 3 | 4 | /* Fixed point library */ 5 | 6 | #define ONE 0x400 7 | #define FRAC_BITS 10 8 | #define FRAC_MASK 0x000003FF 9 | #define MANT_MASK 0xFFFFFC00 10 | #define SIGN_MASK 0xFFC00000 11 | 12 | typedef int Fixed; 13 | 14 | #define FIX_MUL(X, Y) ((Fixed)(((X) * (Y)) >> FRAC_BITS)) 15 | #define FIX_DIV(X, Y) ((Fixed)(((X) / ((Y) >> FRAC_BITS)))) 16 | 17 | #define TO_INT(X) ((X) >> FRAC_BITS) 18 | #define FIX(X) ((Fixed)((X) << FRAC_BITS)) 19 | 20 | #endif /* FIXED_H */ 21 | -------------------------------------------------------------------------------- /Perlin/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 29-Mar-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_15 19 | #DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_15 -DFTR_V600 20 | 21 | # Project/ELF name. 22 | ELF_NAME = Perlin 23 | 24 | all: 25 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c Engine.c \ 26 | -o Engine.o 27 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c Trig.c \ 28 | -o Trig.o 29 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 30 | -o $(ELF_NAME).o 31 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o Engine.o Trig.o \ 32 | $(LIB_PATH)/$(LIB_MAIN) -o $(ELF_NAME).elf 33 | 34 | clean: 35 | -rm -f *.o 36 | -rm -f *.obj 37 | -rm -f *.elfp 38 | -rm -f *.elf 39 | -------------------------------------------------------------------------------- /Perlin/Perlin.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "Perlin.c", "Engine.c", "Trig.c" ] 4 | 5 | cpp.defines: [ "EP1", "ROT_90", "FPS_15" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /Perlin/Trig.h: -------------------------------------------------------------------------------- 1 | #ifndef TRIG_H 2 | #define TRIG_H 3 | 4 | #include "Fixed.h" 5 | 6 | Fixed fix_cos(Fixed deg); 7 | 8 | Fixed fix_sin(Fixed deg); 9 | 10 | #endif /* TRIG_H */ 11 | -------------------------------------------------------------------------------- /Perlin/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 29-Mar-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_15 30 | :: set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_15 -DFTR_V600 31 | 32 | :: Project/ELF name. 33 | set ELF_NAME=Perlin 34 | 35 | :: Compiling step. 36 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c Engine.c -o Engine.o 37 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c Trig.c -o Trig.o 38 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 39 | 40 | :: Linking step. 41 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o Engine.o Trig.o %LIB_PATH%\%LIB_MAIN% ^ 42 | -o %ELF_NAME%.elf 43 | -------------------------------------------------------------------------------- /Perlin/qtcreator/Perlin.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Perlin/qtcreator/Perlin.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | #define ROT_90 5 | #define FPS_30 6 | -------------------------------------------------------------------------------- /Perlin/qtcreator/Perlin.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Perlin/qtcreator/Perlin.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Perlin/qtcreator/Perlin.files: -------------------------------------------------------------------------------- 1 | ../Perlin.c 2 | ../Engine.c 3 | ../Trig.c 4 | ../Makefile 5 | ../make_ep1.bat 6 | ../make_ep2.bat 7 | ../ReadMe.md 8 | -------------------------------------------------------------------------------- /Perlin/qtcreator/Perlin.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /PowerAlert/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 04-Dec-2022. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | 20 | # Project/ELF name. 21 | ELF_NAME = PowerAlert 22 | 23 | all: 24 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 25 | -o $(ELF_NAME).o 26 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 27 | -o $(ELF_NAME).elf 28 | 29 | clean: 30 | -rm -f *.o 31 | -rm -f *.obj 32 | -rm -f *.elfp 33 | -rm -f *.elf 34 | -------------------------------------------------------------------------------- /PowerAlert/PowerAlert.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "PowerAlert.c" ] 4 | 5 | cpp.defines: [ "EP1" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /PowerAlert/ReadMe.md: -------------------------------------------------------------------------------- 1 | Power Alert 2 | =========== 3 | 4 | The "Power Alert" ELF example of sending SMS on power loss. 5 | 6 | ## ELF files 7 | 8 | * PowerAlert.elf (ELF for ElfPack 1.0) 9 | 10 | ## Additional information 11 | 12 | The ELF-application has been tested on the following phones and firmware: 13 | 14 | * Motorola SLVR L6i: R3443H1_G_0A.65.0BR 15 | 16 | Application type: Daemon. 17 | -------------------------------------------------------------------------------- /PowerAlert/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 04-Dec-2022. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | 31 | :: Project/ELF name. 32 | set ELF_NAME=PowerAlert 33 | 34 | :: Compiling step. 35 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 36 | 37 | :: Linking step. 38 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 39 | -------------------------------------------------------------------------------- /PowerAlert/qtcreator/PowerAlert.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /PowerAlert/qtcreator/PowerAlert.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | -------------------------------------------------------------------------------- /PowerAlert/qtcreator/PowerAlert.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /PowerAlert/qtcreator/PowerAlert.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /PowerAlert/qtcreator/PowerAlert.files: -------------------------------------------------------------------------------- 1 | ../PowerAlert.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../ReadMe.md 5 | -------------------------------------------------------------------------------- /PowerAlert/qtcreator/PowerAlert.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /Screenshot/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 27-Nov-2022. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | #DEFINES = -D__P2K__ -DEP1 -DNO_PACKED 20 | #DEFINES = -D__P2K__ -DEP1 -DNO_PACKED -DFTR_V600 21 | #DEFINES = -D__P2K__ -DEP1 -DNO_PACKED -DFTR_V635 22 | #DEFINES = -D__P2K__ -DEP1 -DNO_PACKED -DFTR_V600 -DFTR_C650 23 | 24 | # Project/ELF name. 25 | ELF_NAME = Screenshot 26 | 27 | all: 28 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 29 | -o $(ELF_NAME).o 30 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 31 | -o $(ELF_NAME).elf 32 | 33 | clean: 34 | -rm -f *.o 35 | -rm -f *.obj 36 | -rm -f *.elfp 37 | -rm -f *.elf 38 | -------------------------------------------------------------------------------- /Screenshot/ReadMe.md: -------------------------------------------------------------------------------- 1 | Screenshot 2 | ========== 3 | 4 | The "Screenshot" ELF daemon utility with GUI to fast take screenshots. 5 | 6 | ## Screenshots from Motorola SLVR L6 7 | 8 | ![Screenshot of Screenshot from Motorola L6](../images/Screenshot_Screenshot_L6_1.png) 9 | 10 | ## Screenshots from Motorola V600 11 | 12 | ![Screenshot of Screenshot from Motorola V600](../images/Screenshot_Screenshot_V600_1.png) 13 | 14 | ## Screenshots from Motorola ROKR E1 15 | 16 | ![Screenshot of Screenshot from Motorola ROKR E1](../images/Screenshot_Screenshot_E1_1.png) 17 | 18 | ## ELF files 19 | 20 | * Screenshot.elf (ELF for ElfPack 1.0) 21 | * Screenshot_NP.elf (ELF for ElfPack 1.0, Motorola SLVR L7e, KRZR K1 + NoPacked version) 22 | * Screenshot_V600.elf (ELF for ElfPack 1.0, Motorola V600 + NoPacked version) 23 | * Screenshot_V635.elf (ELF for ElfPack 1.0, Motorola V635 + NoPacked version) 24 | * Screenshot_C650.elf (ELF for ElfPack 1.0, Motorola C650 + NoPacked version) 25 | 26 | ## Additional information 27 | 28 | The ELF-application has been tested on the following phones and firmware: 29 | 30 | * Motorola C650: R365_G_0B.D3.08R 31 | * Motorola SLVR L6: R3511_G_0A.52.45R_A 32 | * Motorola SLVR L6i: R3443H1_G_0A.65.0BR 33 | * Motorola ROKR E1: R373_G_0E.30.49R 34 | * Motorola V600: TRIPLETS_G_0B.09.72R 35 | * Motorola V235: R3512_G_0A.30.6CR 36 | * Motorola RAZR V3r: R4515_G_08.BD.D3R 37 | * Motorola SLVR L7e: R452D_G_08.01.0AR 38 | * Motorola KRZR K1: R452F_G_08.03.08R 39 | * Motorola V635: R474_G_08.48.6FR 40 | 41 | Application type: GUI + GPU + Deamon. 42 | -------------------------------------------------------------------------------- /Screenshot/Screenshot.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "Screenshot.c" ] 4 | 5 | cpp.defines: [ "EP1" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /Screenshot/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 28-Nov-2022. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | :: set DEFINES=-D__P2K__ -DEP1 -DNO_PACKED 31 | :: set DEFINES=-D__P2K__ -DEP1 -DNO_PACKED -DFTR_V600 32 | 33 | :: Project/ELF name. 34 | set ELF_NAME=Screenshot 35 | 36 | :: Compiling step. 37 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 38 | 39 | :: Linking step. 40 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 41 | -------------------------------------------------------------------------------- /Screenshot/qtcreator/Screenshot.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Screenshot/qtcreator/Screenshot.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | -------------------------------------------------------------------------------- /Screenshot/qtcreator/Screenshot.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Screenshot/qtcreator/Screenshot.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Screenshot/qtcreator/Screenshot.files: -------------------------------------------------------------------------------- 1 | ../Screenshot.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../ReadMe.md 5 | -------------------------------------------------------------------------------- /Screenshot/qtcreator/Screenshot.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /Snow/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 20-Dec-2024. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V600 20 | 21 | # Project/ELF name. 22 | ELF_NAME = Snow 23 | 24 | all: 25 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 26 | -o $(ELF_NAME).o 27 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 28 | -o $(ELF_NAME).elf 29 | 30 | clean: 31 | -rm -f *.o 32 | -rm -f *.obj 33 | -rm -f *.elfp 34 | -rm -f *.elf 35 | -------------------------------------------------------------------------------- /Snow/ReadMe.md: -------------------------------------------------------------------------------- 1 | Snow 2 | ==== 3 | 4 | Happy New Year's application, just a snowflakes flow on the desktop screen. 5 | 6 | ## Screenshots from Motorola ROKR E1 7 | 8 | ## Videos of Motorola ROKR E1 and Motorola SLVR L6 9 | 10 | See [Snow ELF application for Motorola P2K phones](https://www.youtube.com/watch?v=WXta2V28utI) video on YouTube. 11 | 12 | ## ELF files 13 | 14 | * Neko.elf (ELF for ElfPack 1.0) 15 | 16 | ## Additional information 17 | 18 | The ELF-application has been tested on the following phones and firmware: 19 | 20 | * Motorola ROKR E1: R373_G_0E.30.49R 21 | * Motorola ROKR E1: R373_G_0E.30.DAR 22 | 23 | Application type: Deamon + GUI + GPU + Widgets. 24 | -------------------------------------------------------------------------------- /Snow/Snow.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "Snow.c" ] 4 | 5 | cpp.defines: [ "EP1" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /Snow/icons/snow_48x48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Snow/icons/snow_48x48.gif -------------------------------------------------------------------------------- /Snow/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 20-Dec-2024. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | :: set DEFINES=-D__P2K__ -DEP1 -DFTR_V600 31 | 32 | :: Project/ELF name. 33 | set ELF_NAME=Snow 34 | 35 | :: Compiling step. 36 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 37 | 38 | :: Linking step. 39 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 40 | -------------------------------------------------------------------------------- /Snow/qtcreator/Snow.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Snow/qtcreator/Snow.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | -------------------------------------------------------------------------------- /Snow/qtcreator/Snow.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Snow/qtcreator/Snow.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Snow/qtcreator/Snow.files: -------------------------------------------------------------------------------- 1 | ../Snow.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../ReadMe.md 5 | -------------------------------------------------------------------------------- /Snow/qtcreator/Snow.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /Spout/License.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002-2006 Kuni 2 | Copyright (c) 2023 EXL 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to 6 | deal in the Software without restriction, including without limitation the 7 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 8 | sell copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 20 | IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Spout/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 26-Mar-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 19 | #DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DJAVA_HEAP -DFPS_METER 20 | #DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DJAVA_HEAP -DFTR_V600 21 | #DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DUIS_HEAP -DFTR_V635 22 | #DEFINES = -D__P2K__ -DEP1 -DROT_0 -DFPS_30 -DFTR_V600 -DFTR_C650 -DUIS_HEAP 23 | 24 | # Project/ELF name. 25 | ELF_NAME = Spout 26 | 27 | all: 28 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c Piece.c -o Piece.o 29 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c -o $(ELF_NAME).o 30 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) Piece.o $(ELF_NAME).o \ 31 | $(LIB_PATH)/$(LIB_MAIN) -o $(ELF_NAME).elf 32 | 33 | clean: 34 | -rm -f *.o 35 | -rm -f *.obj 36 | -rm -f *.elfp 37 | -rm -f *.elf 38 | -------------------------------------------------------------------------------- /Spout/Spout.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "Spout.c", "Piece.c" ] 4 | 5 | cpp.defines: [ "EP1", "ROT_90", "FPS_30" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /Spout/long_tail/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 26-Mar-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 19 | #DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DJAVA_HEAP 20 | #DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DJAVA_HEAP -DFTR_V600 21 | 22 | # Project/ELF name. 23 | ELF_NAME = Spout 24 | 25 | all: 26 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c Piece.c -o Piece.o 27 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c -o $(ELF_NAME).o 28 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) Piece.o $(ELF_NAME).o \ 29 | $(LIB_PATH)/$(LIB_MAIN) -o $(ELF_NAME).elf 30 | 31 | clean: 32 | -rm -f *.o 33 | -rm -f *.obj 34 | -rm -f *.elfp 35 | -rm -f *.elf 36 | -------------------------------------------------------------------------------- /Spout/long_tail/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 26-Mar-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_30 30 | :: set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DJAVA_HEAP 31 | :: set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DJAVA_HEAP -DFTR_V600 32 | 33 | :: Project/ELF name. 34 | set ELF_NAME=Spout 35 | 36 | :: Compiling step. 37 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c Piece.c -o Piece.o 38 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 39 | 40 | :: Linking step. 41 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) Piece.o %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 42 | -------------------------------------------------------------------------------- /Spout/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 26-Mar-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_30 30 | :: set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DJAVA_HEAP 31 | :: set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DJAVA_HEAP -DFTR_V600 32 | 33 | :: Project/ELF name. 34 | set ELF_NAME=Spout 35 | 36 | :: Compiling step. 37 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c Piece.c -o Piece.o 38 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 39 | 40 | :: Linking step. 41 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) Piece.o %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 42 | -------------------------------------------------------------------------------- /Spout/qtcreator/Spout.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Spout/qtcreator/Spout.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | #define ROT_90 5 | #define FPS_30 6 | -------------------------------------------------------------------------------- /Spout/qtcreator/Spout.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Spout/qtcreator/Spout.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Spout/qtcreator/Spout.files: -------------------------------------------------------------------------------- 1 | ../Piece.c 2 | ../Spout.c 3 | ../Spout.h 4 | ../Font.h 5 | ../Sintable.h 6 | ../Makefile 7 | ../make_ep1.bat 8 | ../make_ep2.bat 9 | ../ReadMe.md 10 | ../License.txt 11 | -------------------------------------------------------------------------------- /Spout/qtcreator/Spout.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /VibroHaptic/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 05-Dec-2022. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 19 | #DEFINES = -D__P2K__ -DEP1 -DFTR_V600 20 | 21 | # Project/ELF name. 22 | ELF_NAME = VibroHaptic 23 | 24 | all: 25 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c \ 26 | -o $(ELF_NAME).o 27 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) $(ELF_NAME).o $(LIB_PATH)/$(LIB_MAIN) \ 28 | -o $(ELF_NAME).elf 29 | 30 | clean: 31 | -rm -f *.o 32 | -rm -f *.obj 33 | -rm -f *.elfp 34 | -rm -f *.elf 35 | -------------------------------------------------------------------------------- /VibroHaptic/VibroHaptic.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "VibroHaptic.c" ] 4 | 5 | cpp.defines: [ "EP1" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /VibroHaptic/docs/Signals.md: -------------------------------------------------------------------------------- 1 | Signals 2 | ======= 3 | 4 | | Phone | Firmware | Power IC | Vibro Motor Signal | Vibro Voltage Signal | 5 | |----------|--------------|-------------|--------------------|----------------------| 6 | | SLVR L6i | R3443H1_0BR | Atlas UL | 735 | 702 | 7 | | SLVR L6 | R3511_45R_A | Atlas UL | 721 | 688 | 8 | | V235 | R3512_6FR | Atlas UL | 723 | 690 | 9 | | V360 | R4513_ACR | Atlas UL | 726 | 693 | 10 | | V600 | TRIPLETS_72R | PCAP | 38 | 239? | 11 | | RAZR V3r | R4515_D3R | Atlas UL | 737 | 704 | 12 | -------------------------------------------------------------------------------- /VibroHaptic/icons/vibrohaptic_48x48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/VibroHaptic/icons/vibrohaptic_48x48.gif -------------------------------------------------------------------------------- /VibroHaptic/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 05-Dec-2022. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 30 | :: set DEFINES=-D__P2K__ -DEP1 -DFTR_V600 31 | 32 | :: Project/ELF name. 33 | set ELF_NAME=VibroHaptic 34 | 35 | :: Compiling step. 36 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 37 | 38 | :: Linking step. 39 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) %ELF_NAME%.o %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 40 | -------------------------------------------------------------------------------- /VibroHaptic/qtcreator/VibroHaptic.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /VibroHaptic/qtcreator/VibroHaptic.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | -------------------------------------------------------------------------------- /VibroHaptic/qtcreator/VibroHaptic.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /VibroHaptic/qtcreator/VibroHaptic.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /VibroHaptic/qtcreator/VibroHaptic.files: -------------------------------------------------------------------------------- 1 | ../VibroHaptic.c 2 | ../Makefile 3 | ../make_ep1.bat 4 | ../icons/icon_vibrohaptic_48x48.h 5 | ../ReadMe.md 6 | -------------------------------------------------------------------------------- /VibroHaptic/qtcreator/VibroHaptic.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /Yeti3D-Old/Makefile: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 20-Apr-2023. 2 | # Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Linux. 3 | # Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | # Compiler path. 6 | ARM_PATH = /opt/arm 7 | 8 | # SDK path. 9 | SDK_PATH = $(ARM_PATH)/SDK 10 | 11 | # Libraries path. 12 | LIB_PATH = $(ARM_PATH)/lib 13 | 14 | # Main link library. 15 | LIB_MAIN = Lib.o 16 | 17 | # Defines. 18 | DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DVIEWPORT_WIDTH=82 -DVIEWPORT_HEIGHT=122 19 | #DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DVIEWPORT_WIDTH=48 -DVIEWPORT_HEIGHT=72 20 | #DEFINES = -D__P2K__ -DEP1 -DROT_0 -DFPS_30 -DVIEWPORT_WIDTH=176 -DVIEWPORT_HEIGHT=220 -DCELLS_ALLOCA 21 | #DEFINES = -D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DVIEWPORT_WIDTH=82 -DVIEWPORT_HEIGHT=122 -DFTR_V635 -DUIS_HEAP 22 | 23 | # Project/ELF name. 24 | ELF_NAME = Yeti3D 25 | 26 | all: 27 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c data.c -o data.o 28 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c draw.c -o draw.o 29 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c yeti.c -o yeti.o 30 | $(ARM_PATH)/bin/tcc -I$(SDK_PATH) $(DEFINES) -bigend -apcs /interwork -O2 -c $(ELF_NAME).c -o $(ELF_NAME).o 31 | $(ARM_PATH)/bin/armlink -nolocals -reloc -first $(LIB_MAIN)\(Lib\) data.o draw.o yeti.o $(ELF_NAME).o \ 32 | $(LIB_PATH)/$(LIB_MAIN) -o $(ELF_NAME).elf 33 | 34 | clean: 35 | -rm -f *.o 36 | -rm -f *.obj 37 | -rm -f *.elfp 38 | -rm -f *.elf 39 | -------------------------------------------------------------------------------- /Yeti3D-Old/Makefile.pc: -------------------------------------------------------------------------------- 1 | all: linux 2 | 3 | linux: 4 | gcc -O2 -DPLATFORM_SDL -DVIEWPORT_WIDTH=176 -DVIEWPORT_HEIGHT=220 data.c draw.c main.c yeti.c -o Yeti3D.elf -lSDL 5 | 6 | windows: 7 | gcc -O2 -DPLATFORM_SDL -DVIEWPORT_WIDTH=176 -DVIEWPORT_HEIGHT=220 data.c draw.c main.c yeti.c -o Yeti3D.exe \ 8 | `sdl-config --cflags --libs` 9 | 10 | clean: 11 | -rm -f *.o 12 | -rm -f *.elf 13 | -rm -f *.exe 14 | -------------------------------------------------------------------------------- /Yeti3D-Old/Makefile.web: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 05-May-2023. 2 | # Default platform is Web, Emscripten & WASM. 3 | 4 | all: 5 | emcc -O2 -DPLATFORM_SDL2 -DVIEWPORT_WIDTH=176 -DVIEWPORT_HEIGHT=220 \ 6 | -Wall -pedantic -Wno-empty-body -Wno-incompatible-pointer-types-discards-qualifiers \ 7 | data.c draw.c main_sdl2.c yeti.c \ 8 | -s USE_SDL=2 \ 9 | -o Yeti3D.html 10 | emstrip -s Yeti3D.wasm 11 | 12 | linux: 13 | gcc -O2 -DPLATFORM_SDL2 -DVIEWPORT_WIDTH=176 -DVIEWPORT_HEIGHT=220 \ 14 | -Wall -Wno-strict-aliasing -Wno-misleading-indentation -Wno-maybe-uninitialized \ 15 | -Wno-discarded-array-qualifiers \ 16 | data.c draw.c main_sdl2.c yeti.c \ 17 | -o Yeti3D.elf -lSDL2 18 | 19 | clean: 20 | -rm -f Yeti3D 21 | -rm -f Yeti3D.o 22 | -rm -f Yeti3D.obj 23 | -rm -f Yeti3D.exe 24 | -rm -f Yeti3D.data 25 | -rm -f Yeti3D.html 26 | -rm -f Yeti3D.wasm 27 | -rm -f Yeti3D.js 28 | -------------------------------------------------------------------------------- /Yeti3D-Old/Yeti3D-Old.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "data.c", "draw.c", "yeti.c", "Yeti3D.c" ] 4 | 5 | cpp.defines: [ "EP1", "ROT_0", "FPS_30", "VIEWPORT_WIDTH=82", "VIEWPORT_HEIGHT=122" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib"] 8 | } 9 | -------------------------------------------------------------------------------- /Yeti3D-Old/Yeti3D.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D-Old/Yeti3D.lua -------------------------------------------------------------------------------- /Yeti3D-Old/Yeti3D.sin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D-Old/Yeti3D.sin -------------------------------------------------------------------------------- /Yeti3D-Old/Yeti3D.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D-Old/Yeti3D.tex -------------------------------------------------------------------------------- /Yeti3D-Old/big-endian/Yeti3D.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D-Old/big-endian/Yeti3D.lua -------------------------------------------------------------------------------- /Yeti3D-Old/big-endian/Yeti3D.sin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D-Old/big-endian/Yeti3D.sin -------------------------------------------------------------------------------- /Yeti3D-Old/data.h: -------------------------------------------------------------------------------- 1 | #ifndef __DATA_H__ 2 | #define __DATA_H__ 3 | #include "yeti.h" 4 | #if defined(PLATFORM_GBA) || defined(PLATFORM_SDL2) 5 | extern const texture_t textures[]; 6 | extern const lua_t lua; 7 | #else 8 | extern texture_t *textures; 9 | extern unsigned short (*lua)[LUA_HEIGHT]; 10 | #endif 11 | extern const int reciprocal[]; 12 | #endif 13 | -------------------------------------------------------------------------------- /Yeti3D-Old/make_ep1.bat: -------------------------------------------------------------------------------- 1 | :: This make_ep1.bat script was created by EXL, 20-Apr-2023. 2 | :: Default platform is Motorola P2K, ElfPack v1.x, ADS1.2 [Build 848] on Windows. 3 | :: Warning: `-nodebug` flag option for `armlink` is buggy. 4 | 5 | :: Uncomment it for disable verbose output. 6 | :: @echo off 7 | 8 | if /I "%1"=="clean" ( 9 | if exist *.o del *.o 10 | if exist *.obj del *.obj 11 | if exist *.elfp del *.elfp 12 | if exist *.elf del *.elf 13 | exit /b 0 14 | ) 15 | 16 | :: Compiler path. 17 | set ARM_PATH=C:\ARM 18 | 19 | :: SDK path. 20 | set SDK_PATH=%ARM_PATH%\SDK 21 | 22 | :: Libraries path. 23 | set LIB_PATH=%ARM_PATH%\lib 24 | 25 | :: Main link library. 26 | set LIB_MAIN=Lib.o 27 | 28 | :: Defines. 29 | set DEFINES=-D__P2K__ -DEP1 -DROT_90 -DFPS_30 -DVIEWPORT_WIDTH=82 -DVIEWPORT_HEIGHT=122 30 | 31 | :: Project/ELF name. 32 | set ELF_NAME=Yeti3D 33 | 34 | :: Compiling step. 35 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c data.c -o data.o 36 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c draw.c -o draw.o 37 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c yeti.c -o yeti.o 38 | %ARM_PATH%\tcc -I%SDK_PATH% %DEFINES% -bigend -apcs /interwork -O2 -c %ELF_NAME%.c -o %ELF_NAME%.o 39 | 40 | :: Linking step. 41 | %ARM_PATH%\armlink -nolocals -reloc -first %LIB_MAIN%(Lib) data.o draw.o yeti.o %ELF_NAME%.o ^ 42 | %LIB_PATH%\%LIB_MAIN% -o %ELF_NAME%.elf 43 | -------------------------------------------------------------------------------- /Yeti3D-Old/make_gba.bat: -------------------------------------------------------------------------------- 1 | del game.gba 2 | 3 | set path=C:\devkitARM\bin;%path% 4 | 5 | arm-eabi-gcc -Wl,--allow-multiple-definition -DPLATFORM_GBA -DVIEWPORT_WIDTH=82 -DVIEWPORT_HEIGHT=122 ^ 6 | -marm -mthumb-interwork -mlong-calls -O3 ^ 7 | data.c yeti.c draw.c main.c -o game.elf 8 | 9 | arm-eabi-objcopy -O binary game.elf game.gba 10 | 11 | del game.elf 12 | -------------------------------------------------------------------------------- /Yeti3D-Old/qtcreator/Yeti3D-Old.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Yeti3D-Old/qtcreator/Yeti3D-Old.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | #define ROT_90 5 | #define FPS_30 6 | #define VIEWPORT_WIDTH 82 7 | #define VIEWPORT_HEIGHT 122 8 | -------------------------------------------------------------------------------- /Yeti3D-Old/qtcreator/Yeti3D-Old.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Yeti3D-Old/qtcreator/Yeti3D-Old.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Yeti3D-Old/qtcreator/Yeti3D-Old.files: -------------------------------------------------------------------------------- 1 | ../data.c 2 | ../data.h 3 | ../draw.c 4 | ../draw.h 5 | ../yeti.c 6 | ../yeti.h 7 | ../Yeti3D.c 8 | ../Makefile 9 | ../Makefile.pc 10 | ../make_ep1.bat 11 | ../make_ep2.bat 12 | ../make_gba.bat 13 | ../ReadMe.md 14 | ../readme.txt 15 | -------------------------------------------------------------------------------- /Yeti3D-Old/qtcreator/Yeti3D-Old.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /Yeti3D/Makefile.pc: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 23-Apr-2023. 2 | # Default platform is Linux, Ubuntu 22.04 LTS. 3 | 4 | CC=gcc 5 | STRIP=strip 6 | CFLAGS=`sdl-config --cflags` -O2 -D__SDL__ -Wall -pedantic -Wno-maybe-uninitialized -Wno-misleading-indentation 7 | LFLAGS=`sdl-config --libs` 8 | NAME=Yeti3D 9 | ifeq ($(OS), Windows_NT) 10 | EXECUTABLE=$(NAME).exe 11 | else 12 | EXECUTABLE=$(NAME).elf 13 | endif 14 | 15 | all: $(EXECUTABLE) 16 | 17 | $(EXECUTABLE): draw.o game.o yeti.o main_sdl.o 18 | $(CC) $(CFLAGS) \ 19 | draw.o game.o yeti.o main_sdl.o -o \ 20 | $(EXECUTABLE) $(LFLAGS) 21 | $(STRIP) -s $(EXECUTABLE) 22 | 23 | clean: 24 | -rm -f *.o 25 | -rm -f *.elf 26 | -rm -f *.exe 27 | 28 | draw.o: Makefile.pc draw.c yeti.h viewports.h 29 | $(CC) $(CFLAGS) -c draw.c -o draw.o 30 | 31 | game.o: Makefile.pc game.c game.h yeti.h viewports.h 32 | $(CC) $(CFLAGS) -c game.c -o game.o 33 | 34 | yeti.o: Makefile.pc yeti.c yeti.h viewports.h 35 | $(CC) $(CFLAGS) -c yeti.c -o yeti.o 36 | 37 | main_sdl.o: Makefile.pc main_sdl.c game.h yeti.h viewports.h 38 | $(CC) $(CFLAGS) -c main_sdl.c -o main_sdl.o 39 | -------------------------------------------------------------------------------- /Yeti3D/Makefile.web: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 05-May-2023. 2 | # Default platform is Web, Emscripten & WASM. 3 | 4 | all: 5 | emcc -O2 -D__SDL2__ \ 6 | -Wall -pedantic -Wno-empty-body -Wno-incompatible-pointer-types-discards-qualifiers \ 7 | data.c draw.c game.c maps.c sprites.c yeti.c main_sdl2.c \ 8 | -s USE_SDL=2 \ 9 | -o Yeti3D.html 10 | emstrip -s Yeti3D.wasm 11 | 12 | linux: 13 | gcc -O2 -D__SDL2__ \ 14 | -Wall -Wno-strict-aliasing -Wno-misleading-indentation -Wno-maybe-uninitialized \ 15 | -Wno-discarded-array-qualifiers \ 16 | data.c draw.c game.c maps.c sprites.c yeti.c main_sdl2.c \ 17 | -o Yeti3D.elf -lSDL2 18 | 19 | clean: 20 | -rm -f Yeti3D 21 | -rm -f Yeti3D.o 22 | -rm -f Yeti3D.obj 23 | -rm -f Yeti3D.exe 24 | -rm -f Yeti3D.data 25 | -rm -f Yeti3D.html 26 | -rm -f Yeti3D.wasm 27 | -rm -f Yeti3D.js 28 | -------------------------------------------------------------------------------- /Yeti3D/Yeti3D.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/Yeti3D.lua -------------------------------------------------------------------------------- /Yeti3D/Yeti3D.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/Yeti3D.map -------------------------------------------------------------------------------- /Yeti3D/Yeti3D.qbs: -------------------------------------------------------------------------------- 1 | Application { 2 | Depends { name: "sdk" } 3 | files: [ "draw.c", "game.c", "yeti.c", "main_p2k.c" ] 4 | 5 | cpp.defines: [ "EP1", "ROT_0", "FPS_30" ] 6 | cpp.optimization: "O2" 7 | cpp.staticLibraries: ["Lib", "armlib/armlib"] 8 | } 9 | -------------------------------------------------------------------------------- /Yeti3D/Yeti3D.rec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/Yeti3D.rec -------------------------------------------------------------------------------- /Yeti3D/Yeti3D.sin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/Yeti3D.sin -------------------------------------------------------------------------------- /Yeti3D/Yeti3D.spr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/Yeti3D.spr -------------------------------------------------------------------------------- /Yeti3D/Yeti3D.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/Yeti3D.tex -------------------------------------------------------------------------------- /Yeti3D/big-endian/Yeti3D.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/big-endian/Yeti3D.lua -------------------------------------------------------------------------------- /Yeti3D/big-endian/Yeti3D.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/big-endian/Yeti3D.map -------------------------------------------------------------------------------- /Yeti3D/big-endian/Yeti3D.rec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/big-endian/Yeti3D.rec -------------------------------------------------------------------------------- /Yeti3D/big-endian/Yeti3D.sin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/big-endian/Yeti3D.sin -------------------------------------------------------------------------------- /Yeti3D/big-endian/Yeti3D.spr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXL/P2kElfs/b3459870cabaa5575f27180fd209e5c38442ce72/Yeti3D/big-endian/Yeti3D.spr -------------------------------------------------------------------------------- /Yeti3D/data.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __DATA_H__ 3 | #define __DATA_H__ 4 | #include "yeti.h" 5 | #endif 6 | -------------------------------------------------------------------------------- /Yeti3D/font.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2003 - Derek John Evans 3 | 4 | This file is part of Yeti3D Portable Engine 5 | 6 | Yeti3D is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU General Public License 8 | as published by the Free Software Foundation; either version 2 9 | of the License, or (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 | 15 | See the GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 | 21 | Original Source: 2003 - Derek J. Evans 22 | Prepared for public release: 10/24/2003 - Derek J. Evans 23 | */ 24 | 25 | #ifndef __FONT_H_ 26 | #define __FONT_H_ 27 | 28 | #define FONT_WIDTH 8 29 | #define FONT_HEIGHT 728 30 | 31 | extern const unsigned short Palette[]; 32 | extern const unsigned short fontData[]; 33 | 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /Yeti3D/logs/E1_phase_4.log: -------------------------------------------------------------------------------- 1 | ATI Driver Name: ATI Handheld Interface 2 | ATI Driver Version: 2.03.050408.40228 3 | ATI S/W Revision: 0 (0x00000000) 4 | ATI Chip ID: 1447366658 (0x56451002) 5 | ATI Revision ID: 1 (0x00000001) 6 | ATI CPU Bus Interface Mode: 4 (0x00000004) 7 | ATI Total Memory: 196608 (192 KiB) 8 | ATI Internal Memory: 196608 (192 KiB) 9 | ATI External Memory: 0 (0 KiB) 10 | ATI CAPS 1: 0 (0x00000000) 11 | ATI CAPS 2: 1 (0x00000001) 12 | ATI Internal Memory Largest Block: result=0, size=3320, size=3 KiB, align=8 13 | ATI External Memory Largest Block: result=2, size=3320, size=3 KiB, align=8 14 | ATI Display Mode: size=176x220, pixel_format=5, frequency=60, rotation=0, mirror=0 15 | ATI Surface Info: width=176, height=220, pixFormat=5, byteSize=77440, byteSize=75 KiB 16 | ATI Surface Info: offset=1064192, stride=352, numPlanes=1 17 | yeti: OK alloc 88624 bytes. 18 | Yeti3D.tex: OK alloc 131072 bytes. 19 | Yeti3D.lua: OK alloc 32768 bytes. 20 | Yeti3D.rec: OK alloc 65536 bytes. 21 | Yeti3D.sin: OK alloc 8192 bytes. 22 | Yeti3D.map: OK alloc 65664 bytes. 23 | Yeti3D.tex: freed 131072 bytes. 24 | Yeti3D.lua: freed 32768 bytes. 25 | Yeti3D.rec: freed 65536 bytes. 26 | Yeti3D.sin: freed 8192 bytes. 27 | Yeti3D.map: freed 65664 bytes. 28 | yeti: freed 88624 bytes. 29 | Free: ATI Bitmap memory. 30 | Free: ATI Driver Info memory. 31 | -------------------------------------------------------------------------------- /Yeti3D/logs/L6_phase_4.log: -------------------------------------------------------------------------------- 1 | ATI Driver Name: ATI Handheld Interface 2 | ATI Driver Version: 2.03.050408.40228 3 | ATI S/W Revision: 0 (0x00000000) 4 | ATI Chip ID: 1447563266 (0x56481002) 5 | ATI Revision ID: 17 (0x00000011) 6 | ATI CPU Bus Interface Mode: 4 (0x00000004) 7 | ATI Total Memory: 196608 (192 KiB) 8 | ATI Internal Memory: 196608 (192 KiB) 9 | ATI External Memory: 0 (0 KiB) 10 | ATI CAPS 1: 0 (0x00000000) 11 | ATI CAPS 2: 1 (0x00000001) 12 | ATI Internal Memory Largest Block: result=0, size=41280, size=40 KiB, align=8 13 | ATI External Memory Largest Block: result=2, size=41280, size=40 KiB, align=8 14 | ATI Display Mode: size=128x160, pixel_format=5, frequency=51, rotation=0, mirror=0 15 | ATI Surface Info: width=128, height=160, pixFormat=5, byteSize=40960, byteSize=40 KiB 16 | ATI Surface Info: offset=1064064, stride=256, numPlanes=1 17 | yeti: OK alloc 88624 bytes. 18 | Yeti3D.tex: OK alloc 131072 bytes. 19 | Yeti3D.lua: OK alloc 32768 bytes. 20 | Yeti3D.rec: OK alloc 65536 bytes. 21 | Yeti3D.sin: OK alloc 8192 bytes. 22 | Yeti3D.map: OK alloc 65664 bytes. 23 | Yeti3D.tex: freed 131072 bytes. 24 | Yeti3D.lua: freed 32768 bytes. 25 | Yeti3D.rec: freed 65536 bytes. 26 | Yeti3D.sin: freed 8192 bytes. 27 | Yeti3D.map: freed 65664 bytes. 28 | yeti: freed 88624 bytes. 29 | Free: ATI Bitmap memory. 30 | Free: ATI Driver Info memory. 31 | -------------------------------------------------------------------------------- /Yeti3D/logs/Memory_Usage.log: -------------------------------------------------------------------------------- 1 | # Vanilla Yeti3D Memory Usage 2 | 3 | 212944 - Yeti3D RAM 4 | 131072 - Textures 5 | 32768 - LUA 6 | 65536 - Reciprocial 7 | 8192 - Sintable 8 | 1430 - Sprite 1 9 | 1430 - Sprite 2 10 | 1430 - Sprite 3 11 | 1430 - Sprite 4 12 | 32772 - Sprite Ball 1 13 | 65664 - Map 14 | 44128 - Elf Code 15 | 16 | 212944 + 131072 + 32768 + 65536 + 8192 + 1430 + 1430 + 1430 + 1430 + 32772 + 65664 + 44128 17 | 18 | Total: 598796 bytes, ~600 Kb RAM 19 | 20 | # Optimized Yeti3D Memory Usage 21 | 22 | 88624 - Yeti3D RAM 23 | 131072 - Textures 24 | 32768 - LUA 25 | 65536 - Reciprocial 26 | 8192 - Sintable 27 | 65664 - Map 28 | 32028 - Elf Code 29 | 30 | 88624 + 131072 + 32768 + 65536 + 8192 + 65664 + 32028 31 | 32 | Total: 423884 bytes, ~423 Kb RAM 33 | 34 | # Old Logs 35 | 36 | Phase 0 Optimize: Done 37 | ~ 554668 38 | 39 | Phase 1 Optimize: Done 40 | ~ 450512 41 | 42 | Phase 3 Optimize: Done 43 | 88624 + 131072 + 32768 + 65536 + 8192 + 65664 44 | ~ 391856 45 | 46 | Phase 5 Optimize: Progress 47 | 88624 + 131072 + 32768 + 16384 + 4096 48 | ~ 272944 49 | 50 | Looks like I found how to use Java Heap memory. Therefore, these optimizations are not needed. 51 | -------------------------------------------------------------------------------- /Yeti3D/make_gba.bat: -------------------------------------------------------------------------------- 1 | @del game.gba 2 | 3 | @set orgpath=%path% 4 | @set path=C:\devkitadv\bin;%path% 5 | @set CFLAGS=-marm -mthumb-interwork -mlong-calls -O1 -D __GBA__ 6 | 7 | del *.o 8 | 9 | @REM Assemble ARM/Thumb Code 10 | @REM ======================= 11 | 12 | @echo ====== Compiling Assembly Files 13 | REM as -mthumb-interwork -o poly.text.iwram.o poly.text.iwram.s 14 | 15 | REM I still haven't been able to link this into Yeti3D 16 | REM as -mthumb-interwork -o crt0.o crt0.s 17 | 18 | @echo ====== Compiling C Files 19 | gcc %CFLAGS% -c *.c ..\..\src\*.c 20 | 21 | @echo ====== Linking 22 | gcc %CFLAGS% -o game.elf *.o 23 | 24 | objcopy -O binary game.elf game.gba 25 | 26 | @del game.elf 27 | @set path=%orgpath% 28 | -------------------------------------------------------------------------------- /Yeti3D/maps.c: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2003 - Derek John Evans 3 | 4 | This file is part of Yeti3D Portable Engine 5 | 6 | Yeti3D is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU General Public License 8 | as published by the Free Software Foundation; either version 2 9 | of the License, or (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 | 15 | See the GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 | 21 | Original Source: 2003 - Derek J. Evans 22 | Prepared for public release: 10/24/2003 - Derek J. Evans 23 | */ 24 | 25 | /* 26 | ** Name: Yeti3D 27 | ** Desc: Portable GameBoy Advanced 3D Engine 28 | ** Auth: Derek J. Evans 29 | ** 30 | ** Copyright (C) 2003 Derek J. Evans. All Rights Reserved. 31 | ** 32 | ** YY YY EEEEEE TTTTTT IIIIII 33333 DDDDD 33 | ** YY YY EE TT II 33 DD DD 34 | ** YYYY EEEE TT II 333 DD DD 35 | ** YY EE TT II 33 DD DD 36 | ** YY EEEEEE TT IIIIII 33333 DDDDD 37 | */ 38 | 39 | #include "yeti.h" 40 | 41 | #include "e1m1.c" 42 | -------------------------------------------------------------------------------- /Yeti3D/optimize/Makefile.pc: -------------------------------------------------------------------------------- 1 | # This Makefile was created by EXL, 23-Apr-2023. 2 | # Default platform is Linux, Ubuntu 22.04 LTS. 3 | 4 | CC=gcc 5 | STRIP=strip 6 | CFLAGS=`sdl-config --cflags` -O2 -D__SDL__ -Wall -pedantic -Wno-maybe-uninitialized -Wno-misleading-indentation 7 | LFLAGS=`sdl-config --libs` 8 | NAME=yeti3d 9 | ifeq ($(OS), Windows_NT) 10 | EXECUTABLE=$(NAME).exe 11 | else 12 | EXECUTABLE=$(NAME).elf 13 | endif 14 | 15 | all: $(EXECUTABLE) 16 | 17 | $(EXECUTABLE): draw.o game.o yeti.o main_sdl.o 18 | $(CC) $(CFLAGS) \ 19 | draw.o game.o yeti.o main_sdl.o -o \ 20 | $(EXECUTABLE) $(LFLAGS) 21 | $(STRIP) -s $(EXECUTABLE) 22 | 23 | clean: 24 | -rm -f *.o 25 | -rm -f *.elf 26 | -rm -f *.exe 27 | 28 | draw.o: Makefile.pc draw.c yeti.h viewports.h 29 | $(CC) $(CFLAGS) -c draw.c -o draw.o 30 | 31 | game.o: Makefile.pc game.c game.h yeti.h viewports.h 32 | $(CC) $(CFLAGS) -c game.c -o game.o 33 | 34 | yeti.o: Makefile.pc yeti.c yeti.h viewports.h 35 | $(CC) $(CFLAGS) -c yeti.c -o yeti.o 36 | 37 | main_sdl.o: Makefile.pc main_sdl.c game.h yeti.h viewports.h 38 | $(CC) $(CFLAGS) -c main_sdl.c -o main_sdl.o 39 | -------------------------------------------------------------------------------- /Yeti3D/optimize/data.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __DATA_H__ 3 | #define __DATA_H__ 4 | #include "yeti.h" 5 | #endif 6 | -------------------------------------------------------------------------------- /Yeti3D/optimize/font.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2003 - Derek John Evans 3 | 4 | This file is part of Yeti3D Portable Engine 5 | 6 | Yeti3D is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU General Public License 8 | as published by the Free Software Foundation; either version 2 9 | of the License, or (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 | 15 | See the GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 | 21 | Original Source: 2003 - Derek J. Evans 22 | Prepared for public release: 10/24/2003 - Derek J. Evans 23 | */ 24 | 25 | #ifndef __FONT_H_ 26 | #define __FONT_H_ 27 | 28 | #define FONT_WIDTH 8 29 | #define FONT_HEIGHT 728 30 | 31 | extern const unsigned short Palette[]; 32 | extern const unsigned short fontData[]; 33 | 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /Yeti3D/optimize/make_gba.bat: -------------------------------------------------------------------------------- 1 | @del game.gba 2 | 3 | @set orgpath=%path% 4 | @set path=C:\devkitadv\bin;%path% 5 | @set CFLAGS=-marm -mthumb-interwork -mlong-calls -O1 -D __GBA__ 6 | 7 | del *.o 8 | 9 | @REM Assemble ARM/Thumb Code 10 | @REM ======================= 11 | 12 | @echo ====== Compiling Assembly Files 13 | REM as -mthumb-interwork -o poly.text.iwram.o poly.text.iwram.s 14 | 15 | REM I still haven't been able to link this into Yeti3D 16 | REM as -mthumb-interwork -o crt0.o crt0.s 17 | 18 | @echo ====== Compiling C Files 19 | gcc %CFLAGS% -c *.c ..\..\src\*.c 20 | 21 | @echo ====== Linking 22 | gcc %CFLAGS% -o game.elf *.o 23 | 24 | objcopy -O binary game.elf game.gba 25 | 26 | @del game.elf 27 | @set path=%orgpath% 28 | -------------------------------------------------------------------------------- /Yeti3D/optimize/maps.c: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2003 - Derek John Evans 3 | 4 | This file is part of Yeti3D Portable Engine 5 | 6 | Yeti3D is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU General Public License 8 | as published by the Free Software Foundation; either version 2 9 | of the License, or (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 | 15 | See the GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 | 21 | Original Source: 2003 - Derek J. Evans 22 | Prepared for public release: 10/24/2003 - Derek J. Evans 23 | */ 24 | 25 | /* 26 | ** Name: Yeti3D 27 | ** Desc: Portable GameBoy Advanced 3D Engine 28 | ** Auth: Derek J. Evans 29 | ** 30 | ** Copyright (C) 2003 Derek J. Evans. All Rights Reserved. 31 | ** 32 | ** YY YY EEEEEE TTTTTT IIIIII 33333 DDDDD 33 | ** YY YY EE TT II 33 DD DD 34 | ** YYYY EEEE TT II 333 DD DD 35 | ** YY EE TT II 33 DD DD 36 | ** YY EEEEEE TT IIIIII 33333 DDDDD 37 | */ 38 | 39 | #include "yeti.h" 40 | 41 | #include "e1m1.c" 42 | -------------------------------------------------------------------------------- /Yeti3D/optimize/sprites.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2003 - Derek John Evans 3 | 4 | This file is part of Yeti3D Portable Engine 5 | 6 | Yeti3D is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU General Public License 8 | as published by the Free Software Foundation; either version 2 9 | of the License, or (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 | 15 | See the GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 | 21 | Original Source: 2003 - Derek J. Evans 22 | Prepared for public release: 10/24/2003 - Derek J. Evans 23 | */ 24 | 25 | #ifndef __SPRITES__ 26 | #define __SPRITES__ 27 | #include "yeti.h" 28 | #define YETI_SPRITE_MAX 5 29 | extern YETI_ROM sprite_t sprites[]; 30 | extern YETI_ROM u16 spr_00[]; 31 | extern YETI_ROM u16 spr_01[]; 32 | extern YETI_ROM u16 spr_02[]; 33 | extern YETI_ROM u16 spr_03[]; 34 | extern YETI_ROM u16 spr_ball1[]; 35 | #endif 36 | -------------------------------------------------------------------------------- /Yeti3D/qtcreator/Yeti3D.cflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Yeti3D/qtcreator/Yeti3D.config: -------------------------------------------------------------------------------- 1 | // Add predefined macros for your project here. For example: 2 | // #define THE_ANSWER 42 3 | #define EP1 4 | #define ROT_90 5 | #define FPS_30 6 | -------------------------------------------------------------------------------- /Yeti3D/qtcreator/Yeti3D.creator: -------------------------------------------------------------------------------- 1 | [General] 2 | -------------------------------------------------------------------------------- /Yeti3D/qtcreator/Yeti3D.cxxflags: -------------------------------------------------------------------------------- 1 | -Wno-int-to-void-pointer-cast 2 | -------------------------------------------------------------------------------- /Yeti3D/qtcreator/Yeti3D.files: -------------------------------------------------------------------------------- 1 | ../tools/dump_res.c 2 | ../tools/color_convert.py 3 | ../tools/swap_bytes.py 4 | ../data.c 5 | ../data.h 6 | ../draw.c 7 | ../draw.h 8 | ../e1m1.c 9 | ../extra.c 10 | ../extra.h 11 | ../font.c 12 | ../font.h 13 | ../game.c 14 | ../game.h 15 | ../gba.h 16 | ../main_gba.c 17 | ../main_p2k.c 18 | ../main_sdl.c 19 | ../maps.c 20 | ../model.c 21 | ../model.h 22 | ../sprites.c 23 | ../sprites.h 24 | ../viewports.h 25 | ../yeti.c 26 | ../yeti.h 27 | ../Makefile 28 | ../Makefile.pc 29 | ../make_ep1.bat 30 | ../make_ep2.bat 31 | ../make_gba.bat 32 | ../ReadMe.md 33 | ../readme.txt 34 | -------------------------------------------------------------------------------- /Yeti3D/qtcreator/Yeti3D.includes: -------------------------------------------------------------------------------- 1 | ../ 2 | /opt/arm/SDK 3 | C:\ARM\SDK 4 | -------------------------------------------------------------------------------- /Yeti3D/sprites.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2003 - Derek John Evans 3 | 4 | This file is part of Yeti3D Portable Engine 5 | 6 | Yeti3D is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU General Public License 8 | as published by the Free Software Foundation; either version 2 9 | of the License, or (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 | 15 | See the GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 | 21 | Original Source: 2003 - Derek J. Evans 22 | Prepared for public release: 10/24/2003 - Derek J. Evans 23 | */ 24 | 25 | #ifndef __SPRITES__ 26 | #define __SPRITES__ 27 | #include "yeti.h" 28 | #define YETI_SPRITE_MAX 5 29 | extern YETI_ROM sprite_t sprites[]; 30 | extern YETI_ROM u16 spr_00[]; 31 | extern YETI_ROM u16 spr_01[]; 32 | extern YETI_ROM u16 spr_02[]; 33 | extern YETI_ROM u16 spr_03[]; 34 | extern YETI_ROM u16 spr_ball1[]; 35 | #endif 36 | -------------------------------------------------------------------------------- /Yeti3D/tools/dump_res.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Tool for creating files from C-precompiled resources. 3 | * Useful for big-endian routines, see: https://bierbaumer.net/qemu/ 4 | * 5 | * Compile: 6 | * gcc -D__GBA__ -I.. dump_res.c -o dump_res 7 | * 8 | * Run: 9 | * ./dump_res 10 | */ 11 | 12 | #include 13 | #include 14 | 15 | #include "data.c" 16 | #include "sprites.c" 17 | #include "e1m1.c" 18 | 19 | int main(int argc, char *argv[]) { 20 | FILE *res_file; 21 | 22 | res_file = fopen("Yeti3D.tex", "wb"); 23 | fwrite(textures, sizeof(texture_t) * YETI_TEXTURE_MAX, 1, res_file); 24 | fclose(res_file); 25 | 26 | res_file = fopen("Yeti3D.lua", "wb"); 27 | fwrite(lua, sizeof(lua_t), 1, res_file); 28 | fclose(res_file); 29 | 30 | res_file = fopen("Yeti3D.rec", "wb"); 31 | fwrite(reciprocal, sizeof(int) * YETI_RECIPROCAL_MAX, 1, res_file); 32 | fclose(res_file); 33 | 34 | res_file = fopen("Yeti3D.sin", "wb"); 35 | fwrite(sintable, sizeof(int) * YETI_SINTABLE_MAX, 1, res_file); 36 | fclose(res_file); 37 | 38 | res_file = fopen("Yeti3D.map", "wb"); 39 | fwrite(&e1m1, sizeof(rom_map_t), 1, res_file); 40 | fclose(res_file); 41 | 42 | res_file = fopen("Yeti3D.spr", "wb"); 43 | fwrite(spr_00, sizeof(spr_00), 1, res_file); 44 | fwrite(spr_01, sizeof(spr_01), 1, res_file); 45 | fwrite(spr_02, sizeof(spr_02), 1, res_file); 46 | fwrite(spr_03, sizeof(spr_03), 1, res_file); 47 | fwrite(spr_ball1, sizeof(spr_ball1), 1, res_file); 48 | fclose(res_file); 49 | 50 | return 0; 51 | } 52 | -------------------------------------------------------------------------------- /Yeti3D/tools/swap_bytes.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | """ 4 | Convert simple data files from GBA little-endian format to P2K big-endian format. 5 | """ 6 | 7 | import sys 8 | 9 | def swap_bytes(filename, base): 10 | with open(filename, 'rb') as file_in, open(filename + '_bigendian', 'wb') as file_out: 11 | while (buff := file_in.read(base)): 12 | rev_buff = bytes(reversed(buff)) 13 | file_out.write(rev_buff) 14 | print(buff.hex(' ').upper() + ' => ' + rev_buff.hex(' ').upper()) 15 | 16 | if __name__ == '__main__': 17 | if len(sys.argv) == 3: 18 | swap_bytes(sys.argv[1], int(sys.argv[2])) 19 | else: 20 | print('Usage:\n\t./swap_bytes.py [file] [base]') 21 | print('Example:\n\t./swap_bytes.py dumb.bin 4') 22 | -------------------------------------------------------------------------------- /docs/Build-CMake-VisualStudioCode.md: -------------------------------------------------------------------------------- 1 | Build with CMake and Visual Studio Code 2 | ======================================= 3 | 4 | 1. Install these extensions: 5 | 6 | 1. C/C++ 7 | 2. C/C++ Extension Pack 8 | 3. C/C++ Themes 9 | 4. CMake 10 | 5. CMake Tools 11 | 12 | 2. Just open project folder. 13 | 14 | 3. Push `Ctrl`+`Shift`+`P`, then choose "CMake: Clean Rebuild", done! 15 | -------------------------------------------------------------------------------- /docs/ELFs-Debugging.md: -------------------------------------------------------------------------------- 1 | ELFs Debugging Notes 2 | ==================== 3 | 4 | ## Using MIDway application 5 | 6 | 1. Phone Actions: Settings => Java Settings => Java App Loader => Insert cable now => JAL link is active... 7 | 2. Phone USB Connection: Modem mode -- Motorola USB Modem, AT commands. 8 | 3. MIDway Actions: Set proper COM port of Motorola USB Modem device in "File => Settings..." then go to the "Debug Log" tab. 9 | 10 | Debug function sample: 11 | 12 | ```c 13 | PFprintf("KeyPress = %d.\n", event->data.key_pressed); 14 | ``` 15 | 16 | ## Using P2KDataLogger application from Motorola PST suite 17 | 18 | 1. Phone Actions: PDS SEEM `SEEM_IN_FACTORY` (01C1_0001) must be in FF state (IN_FACTORY), not 00 (NON_FACTORY). 19 | 2. Phone USB Connection: Switch phone to P2K mode -- Motorola USB Device (Accessories Interface, Data Logging MCU Interface, Test Command Interface). 20 | 3. P2KDataLogger Actions: 21 | 3.1. Check "Display => Filters => All Primitives/Messages". 22 | 3.2. Choose "Config => Phone Logger Configuration => Common Config" then push "Enable Logging" button. 23 | 3.3. Choose "Display => Start Display" item. 24 | 25 | Debug function sample: 26 | 27 | ```c 28 | UtilLogStringData("KeyPress = %d.\n", event->data.key_pressed); 29 | ``` 30 | -------------------------------------------------------------------------------- /docs/Useful-Notes.md: -------------------------------------------------------------------------------- 1 | Useful Notes 2 | ============ 3 | 4 | ## Check missing function calls 5 | 6 | ```bash 7 | $ awk '{ print $3; }' elfloader.sym | sort | uniq > lib.sym 8 | $ grep -Fxvf lib.sym symbols_of_all_elfs.sym 9 | ``` 10 | 11 | ## Compare libraries 12 | 13 | ```bash 14 | $ cat lib1.sym | sort -u > 1.sym 15 | $ grep -v '^#' lib2.sym | awk -Wnon-decimal-data '{if ($1>0) printf "0x%08X %s %s\n", 0+$1, $2, $3}' | sort -u > 2.sym 16 | $ git diff 1.sym 2.sym 17 | ``` 18 | 19 | ## Set executable flag to file on Windows using Git 20 | 21 | ```bash 22 | $ git update-index --chmod=+x BadApple/res/bmp2fbm.py 23 | ``` 24 | 25 | ## Calculate average/max/min FPS value 26 | 27 | ```bash 28 | cat FPS.txt 29 | FPS: 11.9 30 | FPS: 12.0 31 | FPS: 10.1 32 | FPS: 10.8 33 | FPS: 11.7 34 | FPS: 11.7 35 | FPS: 11.6 36 | FPS: 10.1 37 | FPS: 12.0 38 | FPS: 12.0 39 | FPS: 11.9 40 | FPS: 12.0 41 | FPS: 9.0 42 | FPS: 11.9 43 | FPS: 12.0 44 | FPS: 10.6 45 | FPS: 12.0 46 | FPS: 10.7 47 | FPS: 11.4 48 | FPS: 10.9 49 | FPS: 12.0 50 | FPS: 11.9 51 | FPS: 12.0 52 | FPS: 11.9 53 | FPS: 12.0 54 | FPS: 11.3 55 | FPS: 12.0 56 | FPS: 10.7 57 | FPS: 11.7 58 | FPS: 8.5 59 | FPS: 10.5 60 | FPS: 12.0 61 | FPS: 12.0 62 | 63 | $ awk '{ total += $2; count++ } END { print total/count }' FPS.txt 64 | 11.3576 65 | 66 | $ awk 'BEGIN {max = 0} {if ($2>max) max=$2} END {print max}' FPS.txt 67 | 12.0 68 | 69 | $ awk 'BEGIN {min = 99} {if ($2