# 0.2B * Update messages * Fix lsr and lsl * Fix str # 0.2A * Implement Thumb: * ldr Rd, [Rn, Immediate5] * ldr Rd, [Rn, Rm] * ldr Rd, [pc, Immediate8] * ldr Rd, [sp, Immediate8] * lsl Rd, Rm, Immediate5 * svc Immediate8 * push Registers * pop Registers * strh Rd, [Rn, Immediate5] * lsr Rd, Rm, Immediate5 * Update readme * Rework instruction functions * Improve comments * Attach license file * Initialise SP * Optimise sign-extensions * Bump dependency versions # 0.29 * Implement Thumb: * mov Rd, Rm; * movs Rd, immediate8; * movs Rd, Rm; * Update readme; * Rename condition method to check_condition; # 0.28 * Fix wrong license in readme; # 0.27 * Add support for Thumb: * bx; * b{cond}; * b; * Fix bx; * Rework log method; * Improve comments; * Update readme; * Only survive invalid opcode traps; # 0.26 * Support bx; * Fix ldr|str; * Remove logging in release builds; * Fix version number being in decimal; * Update readme; # 0.25 * Support load and store instructions; * Update messages; * Implement some move instructions; * Update log function; * Add equivalent write functions; * Fix conditional execution; * Fix branch; * Add device helper structure; * Update trap print; * Reenable overflow checks; * License under AGPL3; * Fix default configuration not being made; * Update readme; * Add spsr registers; # 0.24 * Bump dependency versions; * Optimise b{cond}{l}.w decoder; * Update messages; * Remove Application::end method; * Add comments; * Add function for logging; * Use TOML for configuration; * Depend on Serde; * Update readme; * Remove unused Configuration::create; # 0.23 * Update manifest; * Update trap function (make better use of enumerations); # 0.22 * Survive traps; * Use hexadecimal version numbers; * Rewrite readme into ASCII-text; * Don't default image; * Add configuration file; # 0.21 * Update version constant to include minor versions; * Use SDL2 for windowing; * Combine Application and Emulator structures; * Rename opcode method to decode; # 0.20 * Support bl; * Update register format; * Unify trap functions; * Add memory read helper functions; * Update naming convention; # 0.1F * Update trap function; * Add emulator helper structure; * Support conditional instructions; * Set signal handlers; # 0.1E * Repurpose project for emulating the AGB; * Make changelog plain-text (rename to CHANGELOG.txt); * Write in Rust; * Update gitignore; * Use Git tagging; * Update versioning: major.minor; # 1D * Fix logs being forced disabled. # 1C * Depend on SDL2. * Remove include directory path. * Add new instruction: DRW, CPP, STP. * Implement more instruction: DRW, CPP, STP. * Fix logger for CPD. * Create window for visualising VRAM. * Remove speed limiter. * Unify all global variables into a struct. * Fix luma_setDbl. * Improve some loggers. * Create new test program. # 1B * Implement more instructions. * Update project description. * Fix UB in signal handler. * Require C11 instead of C99. * Add more instructions. * Remove sound buffer. # 1A * Fix version number being out of date. # 19 * Remove old readme. * Update memory model. * Fix ROM loader loading ROM into wrong address. * Update bootloader. * Fix bootloader loaded as bank 0 (should be 1). * Add new instructions. * Implement more instructions. * Rename opcode LDB to BNK. * Rewrite instruction interpreter. * Writes in ROM no longer succeed. * Create SIGINT handler. # 18 * Move all UTF-8 related code into a seperate project, *u8c*. * Rewrite project. * Require C99 instead of C17. * Reformat the readme into HTML. # 17 * Create *bin* folder in destination directory when installing. # 16 * Remove memory leaks. * Require C17 instead of C2x. * Create license notices in source files. * Create install and uninstall targets in Makefile. # 15 * Improve Makefile. * Improve UTF-8 encoder. * Complete UTF-8 decoder. * Create basic print function. # 14 * Complete UTF-8 encoder. * Fix #1. # 13 * Reformat changelog to Markdown. * Completely rework codebase (multiple times, in C, C++, Objective-C and Rust). Finally decide on C. * Split project into three seperate projects: *libluma* (API), *luma* (interpreter), and *luma-docs* (documentation). * Merge with *libluma*. * Create language sample. * Use STDC functions instead of POSIX where possible. * Create functions for decoding and encoding UTF-8. * Don't include entire changelog in commit message. # 12 * Remove build artifacts. # 11 * Compile "luma" instead of "luma.bin". * Get input file via arguments passed to executable. # 10 * Reformat README.html to Markdown. # F * Add "changelog.html" to keep track of changes. * Remove deprecated gfx library files. * Fix PGKBUILD version not considering version 0. * Add new language example. * Begin rewrite of entire codebase.<\li> * Move old codebase into the "old" folder. * Begin creation Luma stdlib API. * Build "luma.bin" file instead of "luma.elf". # E * revert .gitignore styling * reorganize source code structure in filesystem * remove gfxlib in favour of language-bindings to underlying libraries * adjust compiler optimization flags * improve c++ stdlib replacement * create cmd argument handler * unite core functions in class with app data (replaces luma::dat) for easier access (no friends needed, "this->" instead of "luma::dat.") * reformat README into HTML (temporary change, will be reformated again in later commit) # D * create the arch_t and kernel_t types * use char const * instead of std::string * use custom function instead of std::cerr and std::cout * replace as many stdlib function with custom-made ones # C * redo .gitignore ifle * clean up Makefile * create PKGBUILD file * create dedicated folder for language examples * try to avoid macros where possible * remove C relics * create semi-working Vulkan test # B * readd x support but only for non-linux systems (may change in the future) * fix makefile cxxflags # A * drop x support * move codebase to c++ * rework makefile * create simple wayland demo # 9 * quick commit before dropping x support # 8 * create license file * makefile optimizations * added readme * added stdc version checking * x connection handling to a different file # 7 * make Makefile check for Makefile changes when linking not compiling # 6 * make Makefile check for Makefile changes when making * make a gamble and enable -O3 # 5 * fix error when compiling crtwin.c * make makefile super nice * update .gitignore # 4 * change compiler to clang * improve makefile * create luma example file * expanded stdlib # 3 * readd .gitignore # 2 * create makefile * create simple xcb demo # 1 * create foundation for stdlib socket # 0 * first