View source
manual_lens_info
  • Contributors
    1. Loading...
Author Commit Message Date Builds
46 commits behind unified.
Daniel Fort
selftest: missing * causes compile error https://bitbucket.org/hudson/magic-lantern/commits/065ceae1247d909e9952a2bc9eb35f3924267719#comment-6590387
Alex
mlv_rec.c: Fix duplicate ELNS block processing
Alex
config.lua: changed config file extension to lcf -- Lua Config (backwards incompatible changes)
Alex
Memory backend: figured out why AllocateContinuousMemoryResource may crash with many small blocks
Alex
Memory backend: attempt to provide a fast malloc for various handlers called from Canon tasks examples: PROP_HANDLERs (PropMgr), key handlers (GuiMainTask), vsync hooks (Evf on recent models) etc todo: unified method to check whether we are running in such a handler; check thread safety
Alex
Merged in aprofiti/magic-lantern/manual_lens_info_64byte (pull request #904) Manual lens info pt.2
Alex
Merged lua_fix into manual_lens_info (timer functions refactor)
Alessandro Profiti
mlv_dump.c: Fix duplicate ELNS Block processing
Alessandro Profiti
config.lua, lens.lua: Fix Typos
Alessandro Profiti
Experimental: 64Byte Extended Lens Name
Alessandro Profiti
lua_menu.c: Fix possible memory leak when adding newIndex to "Choices"
Alessandro Profiti
xmp.lua: Fix wrong prefix for sidecar filename. Credit goes to a1ex
Alessandro Profiti
lua_lens.c: Add support for aperture_min and aperture_max to Lua
Alessandro Profiti
config.lua: Major rework of lib. Added support for multiple menus and recursively saving of submenu
Alex
Intervalometer: attempt to get sligthly better timing accuracy, to be tested http://www.magiclantern.fm/forum/index.php?topic=21617.msg197314#msg197314
Alex
Moved timer functions to timer.h (always included from dryos.h) Renamed get_ms_clock_value / get_us_clock_value to get_ms_clock / get_us_clock Replaced all hardcoded references to 0xC0242014 with GET_DIGIC_TIMER() ``` find . -not -path '*/\.*' -type f -name '*.c' -o -name '*.h' -exec sed -i 's/get_ms_clock_value/get_ms_clock/g' {} + find . -not -path '*/\.*' -type f -name '*.c' -o -name '*.h' -exec sed -i 's/get_us_clock_value/get_us_clock/g' {} + sed -i 's/\*…
Alex
Reworked get_ms_clock_value / get_us_clock_value / get_seconds_clock - only update the 64-bit us_clock on each call (overhead from ~ 4us reduced to less than 1us) - lower-resolution clocks are always derived from the microsecond clock and computed only on request - dropped get_ms_clock_value_fast
Alex
imath.h: fix comments for FMT_FIXEDPOINT*; added FMT_FIXEDPOINT6
Alex
Fix compiling with CONFIG_DIGIC_POKE
Alex
Modules: fix enabling "long" modules when using config presets (issue #2789) to reproduce: arkanoid.mo -> ML/SETTINGS/MENU.KEY/arkanoid. -> file create error on exfat modules with shorter name: adv_int.mo -> ML/SETTINGS/MENU.KEY/adv_int.e -> it appears to work fine, but it's incorrect worst case: arkanoid.mo -> ML/SETTINGS/MYPRESET.NAM/adv_i -> it appears to work fine, possible name clash with other modules
Alex
shoot: attempt to make public photo capture functions thread safe, to some extent a bit of a hack; some serious rework needed to fix this properly at least it appears to fix http://www.magiclantern.fm/forum/index.php?topic=21590.0
Alex
Bracketing: debug messages for troubleshooting http://www.magiclantern.fm/forum/index.php?topic=21590.0
Alex
shoot: make the so-called remote_shoot always take pictures, not movies (moved movie functionality in lcdsensor/lightsensor - anything else broken?)
Alex
lens_take_picture: always wait until the image capture process starts (and optionally wait for it to finish)
Alex
Lua: fix camera.wait() not appearing in API docs
Alex
selftest: also test get_task_name_from_id, not just get_current_task_name (they use different Canon APIs)
Alex
Attempt to fix conflict between ML and Canon overlays on recent DIGIC 4 models confirmed on 1200D, likely applies to 1300D as well http://www.magiclantern.fm/forum/index.php?topic=12627.msg196304#msg196304
Alex
gui-common: remove outdated comment
Alex
Menu: some rough support for sumbenus where the initial field enables the entire group - the initial field should have the same .priv field as the master entry, and .select = menu_open_submenu - prevent graying out the field used for enabling, even if it gives the truth value for the master menu entry - do not print value by default for submenus (we already draw a forward sign)
Alex
gui-common: make translated longpress events (such as Q on certain models) available to other modules (tested with Lua)
Alex
Menu: refactored long-press checks with a common function and data structure (to be tested; may affect every single camera model)
Alex
Menu: use animation for all longpress handlers
Alex
Merged 100D_merge_fw101 into lua_fix (going to refactor the SET/Q button handling)
Alex
lens.h: some models have larger PROP_LV_LENS EOSM: 61; 70D/100D: 58; 5D3.123/6D: 56
Alex
Lens info: attempt to update outside LiveView, to be tested focus distance, focal length on zoom lenses etc are now updated every second credits Greg: http://www.magiclantern.fm/forum/index.php?topic=2864.msg169977#msg169977
Alex
lens_info: use lens_info.lens_exists instead of lens_info.name[0] (from manual_lens_info)
Alex
100D: attempt to fix Q/SET regression (tested in QEMU, unsure about the exact hardware behavior) http://www.magiclantern.fm/forum/index.php?topic=16040.msg196769#msg196769 also reduced long-press delay to 0.5 seconds
Alex
Merged allocate-raw-lv-buffer into lua_fix (minor; 5D3.123 fix)
Alex
Merged unified into lua_fix (DOF fixes)
Alex
Merged longpress into lua_fix
Alex
edmac.mo: simplified menu definition for log interval (using the new routines for rounding options)
Alex
Merged edmac into lua_fix
Alex
Menu: fine-tuned long-press indicator appearance - using filled circles - using a sine table to avoid roundoff errors
Alex
Merged unified into longpress
Alex
Menu: simple long-press indicator (animated)
Alex
EOS M: fix menu navigation; make sure the long-press code can be enabled on other models (to enable, define CONFIG_LONG_PRESS_SET_MENU in internals.h)
Alex
gui-common: moved button logging code at the top (to make sure all events are printed in all modes)
Alex
Raw backend: DEFAULT_RAW_BUFFER_SIZE for 700D and EOSM (thanks dfort)
Alex
mem.c: fix compiling for 5D3.123 (display buffer address depends on HDMI options)
Alex
Merged in aprofiti/magic-lantern/manual_lens_info (pull request #887) Manual lens info
Alessandro Profiti
Merge manual_lens_info into manual_lens_info
Alessandro Profiti
lens.lua: Fix Typos in autoload code
Alessandro Profiti
lens.lua: Added Autoload functionality and some Improvements
Alessandro Profiti
lens.lua: Persistent values when changing Shooting Mode
Alessandro Profiti
lens.lua: Fixed missing value for Lens index
Alessandro Profiti
lens.c: Increased "Lens Info Prefs" menu width to 700
Alessandro Profiti
lens.lua: Updated Fnumbers and Improved examples
Alessandro Profiti
lens.lua: Improved Aperture value slection. Added auto boundary set from lens attribute
Alessandro Profiti
lua_menu.c: Added ability to set a new instance for "choices" while running the script
Alessandro Profiti
lens.lua: Corrected lens info behavior in LV
Alessandro Profiti
lua_lens.c: Added serial to amp and fixed value when changing from submenu
Alessandro Profiti
lens.lu: Allow selection from menu of Focal Length and Aperture while using the lens
Alessandro Profiti
lens.lua: Fix issue with old values being written in case are missing in selected lens
Alessandro Profiti
lua_lens.c: added get lens.focal_min and get lens.focal_max to lua wrapper
Alessandro Profiti
lua_lens.c: Renamed lens_id and lens_exist in lua wrapper
Alessandro Profiti
lua_lens.c: Added support for Lens Serial Number
Alessandro Profiti
lens.lua: Added correct Focal Length in MLV file and LV Display
Alessandro Profiti
lens.c: Fixed wrong value for Focal len in Lens Info
Alessandro Profiti
lua_lens.c: Added support for setting focal length range to Manual Zoom Lens
Alessandro Profiti
lua_lens.c: Allow to save aperture value for manual lens with AF Chip
Alessandro Profiti
lens.lua: allow to write metadata in mlv
Alessandro Profiti
lua_lens: add get lens_id and set lens_exists
Alex
lua_property: run property handlers in the PropMgr task (experiment - may overflow the stack or slow down things)
Alex
Memory backend: disallow using our malloc/free from property handlers (fixme: this breaks mlv_rec when using electronic level)
Georg Hofstetter
mlv_rec: properly fill lensSerial with a hex representation of the serial number in lens_info struct
Alex
debug: allow arbitrary crash log sizes when saving (when needed, just increase the size of assert_msg in boot-hack.c)
Alex
lens_info: make sure lens name is always null-terminated to reproduce: - in lens.h, reduce the size of lens_info.name (such as 8 chars) - in lens.c, PROP_LENS_NAME, set lens_info.focal_len = 64 before copying the lens name - look at the lens name in ML menu
Alex
Properties: debug messages for QEMU; overflow check (number of property handlers)
Alex
Merged new_dryos_task_hooks into 100D_merge_fw101
Alex
100D: cleanup handling of the Q button (see b9e0b9e)
Alex
Merged new_dryos_task_hooks into lua_fix
Alex
Merged qemu into new_dryos_task_hooks
Alex
run_ml_all_cams.sh: fix QEMU_DIR once more
Alex
run_ml_all_cams.sh: fix QEMU_DIR
Alex
Merged allocate-raw-lv-buffer into lua_fix
Alex
Merged qemu into lua_fix
Alex
Menu: hack to allow browsing ML menu on EOSM and EOSM2 (requires CONFIG_QEMU=y)
Alex
selftest: EOSM takes the crown for the lowest amount of shoot_memory available (fragmented allocation can no longer be tested with hardcoded value)
Alex
Merged makefile-updates into qemu (also updated README regarding "make install_qemu" on modules)
Alex
QEMU: moved default installation directory to qemu-eos Rationale: user is likely to have another qemu directory, unrelated to ML (such as the vanilla qemu repo) Can be changed by setting QEMU_DIR, e.g. "export QEMU_DIR=qemu" before running install.sh will install QEMU in the old path To be thoroughly tested.
Alex
QEMU: trim HTML logs to 10000 lines if higher (very slow to render; also, at these sizes, browsing/grepping plain text is way faster)
Alex
Raw backend: 60D appears to allocate 28MB for the raw buffer
Alex
Raw backend: updated 5D3 hypothesis about Canon LV RAW buffer (todo: re-check 1.2.3)
Alex
Raw backend: attempt to autodetect Canon's raw buffer size Usage: - compile with CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP (config-defines.h) - open the console (Debug menu) and enable something that uses LiveView RAW features (raw video, raw histogram etc) - test by starting the camera in all video modes (photo, 1080p, 720p, crop, x5 etc) - take a screenshot or write down the console messages
Alex
Raw backend: fix compilation on very old models (without CONFIG_EDMAC_RAW_SLURP)
Alex
1100D: CONFIG_ALLOCATE_RAW_LV_BUFFER may not be needed, after all http://www.magiclantern.fm/forum/index.php?topic=1009.1450
Alex
Free Memory dialog: updated common addresses to allow dynamically allocated buffers (not just hardcoded ones); also show current RAW and BMP buffer(s), not just the YUV ones
Alex
Raw backend: 1100D also needs DEFAULT_RAW_BUFFER / DEFAULT_RAW_BUFFER_SIZE
Alex
Raw backend: 1100D needs CONFIG_ALLOCATE_RAW_LV_BUFFER after refactoring
Alex
Raw backend: use dummy DEFAULT_RAW_BUFFER_SIZE until the real size is found without this, most builds would be broken fixme: old models without CONFIG_EDMAC_RAW_SLURP are still broken
Alex
Raw backend: sync memory allocation routines with crop_rec_4k (squashed 8287b4f, 0ff9f1f, 3948408, d55423f, ebf206a, 3bc3637, cad72ea and 2bc5c3a, keeping only changes to raw.c)
Alex
mlv_lite, mlv_rec: dialog_refresh_timer_addr for 1100D (to be tested)
Alex
Merged unified into allocate-raw-lv-buffer
Alex
GUI: removed BGMT_Q_ALT to be tested on 1100D, 550D, 600D, 60D and also on recent ports (100D, 1200D, 1300D)
Alex
Merged new-dryos-task-hooks into lua_fix
Alex
selftest: reduced memory requirements to allow 1100D to pass the memory tests
Alex
1100D: raw skip offsets for LiveView
Alex
GDB scripts: logging hook for prop_deliver
Alex
GDB scripts: logging hooks for CreateStateObject useful to find all state objects created during the emulation http://www.magiclantern.fm/forum/index.php?topic=17969.msg196010#msg196010
Alex
QEMU installer: fine-tuned prompt when reinstalling
Alex
QEMU: fix Q button handling on 550D, 600D, 1100D (to be tested)
Alex
QEMU readme: table of contents; minor typos
Georg Hofstetter
QEMU readme: GPIO section update
Alex
6D: fix task_max
Alex
Merged new-dryos-task-hooks into 100D_merge_fw101 (enabled CONFIG_NEW_DRYOS_TASK_HOOKS in internals.h; added task_dispatch_hook comment)
Alex
boot-hack: use CONFIG_NEW_DRYOS_TASK_HOOKS to enable new-style DryOS hooks (undefining HIJACK_TASK_ADDR was not obvious)
Alex
dump_srec.py: updated to decode lens firmware updates (*.lfu) http://www.magiclantern.fm/forum/index.php?topic=20969
Alex
QEMU readme: misc updates (formatting, rephrasing); GPIO section
Alex
QEMU installer: make it clear the script expects user input when it's asking whether to compile QEMU
Daniel Fort
eject removes the disk image completely while unmount doesn't remove the disk image from /dev.
Georg Hofstetter
reworked description of the peripherals
Alex
QEMU install: fix mistakes
Alex
QEMU readme: typos, formatting
Alex
QEMU readme: note for Bitbucket not always rendering the RST (reloading the page usually works; apparently it doesn't need javascript, so what's going on?)
Alex
QEMU readme: some basic concepts related to how the DIGIC hardware works (some parts adapted from https://jsandler18.github.io/ )
Alex
QEMU readme: misc notes - tip to save SD images as qcow2 (they take less disk space) - instrumentation tools - history updates - minor formatting fixes
Alex
QEMU: use 600D MPU messages for 1300D fixes toggling drive mode, http://www.magiclantern.fm/forum/index.php?topic=17969.msg196013#msg196013
Alex
GDB scripts: hide warnings about undefined task addresses when running with patches.gdb (when running with debugmsg.gdb, full context info is printed)
Alex
GDB scripts: fix address in log_result (LR is no longer valid, as we are no longer at the beginning of a function call)
Alex
QEMU install.sh: recent git no longer accepts empty identities http://www.magiclantern.fm/forum/index.php?topic=20214.msg195892#msg195892
Alex
QEMU scripts: removed hardcoded references to ../magic-lantern and documented how the directories can be customized
Alex
QEMU readme: documented directory structure
Alex
boot-hack: uninstall cache hacks after booting (to be tested)
Alex
boot-hack: more debug messages regarding memory allocation (for HIJACK_CACHE_HACK and RSCMGR_MEMORY_PATCH_END)
Alex
boot-hack: fix CONFIG_HELLO_WORLD & friends when booting with HIJACK_CACHE_HACK (task_dispatch_hook should not be set in this case)
Alex
Merged lua_fix into manual_lens_info
Alex
100D: enabled Sticky half-shutter (unlikely to cause issues) and Sticky DOF preview (to be tested)
Garry George
Changed the DoF equations to better handle integer math and used a different source for the equations.
Alex
Menu: added different rounding mode flags: ISO R10", R20", 1-2-5 series, powers of 2
Alex
Menu: cleaned up edit_mode constants (removed unused EM_MANY_VALUES and renamed EM_MANY_VALUES_LV to EM_SHOW_LIVEVIEW)
Alex
Menu: added UNIT_TIME_MS and UNIT_TIME_US with caret editing support; minor refactoring
Alex
silent pictures: options for delayed trigger, to help with IS http://www.magiclantern.fm/forum/index.php?topic=12523.msg196174#msg196174
Alex
silent pictures: after image review, prefer to return to LiveView, with some exceptions - if intervalometer is enabled, prefer to turn off the display to save power - if "Turn off LCD" is enabled under "Powersave in LiveView", also prefer to turn off the display (manual override, e.g. for externally triggered timelapse) - otherwise, prefer to return to LiveView (credits dfort) http://www.magiclantern.fm/forum/index.php?topic=19005.msg181385#msg181385 http://www.magiclantern.fm/forum/…
Alex
silent pictures: wait for IS if the switch is enabled on the lens http://www.magiclantern.fm/forum/index.php?topic=12523.msg196174#msg196174
Alex
650D, 700D: enabled Sticky half-shutter (unlikely to cause issues) and Sticky DOF preview (to be tested)
Alex
Auto bracketing: fine-tuned highlight and shadow thresholds overexposed: if more than 0.02% of all pixels are above 235 in the YUV buffer (preview JPG, picture-style dependent) underexposed: if more than 10% of all pixels are below 50 previous thresholds: 0.15% above 235 for highlights, 2.5% below 20 for shadows http://www.magiclantern.fm/forum/index.php?topic=21428 todo: use raw-based metering? (some models still have problems with raw buffers in photo mode: 70D, 500D in LiveView, maybe others)
Alex
Auto bracketing: do not analyze image borders (should prevent unnecessary bright exposures if the image has black corners - happens with certain lenses)
Alex
Bracketing: print debug messages to console; use higher precision for highlight/shadow percentages for troubleshooting http://www.magiclantern.fm/forum/index.php?topic=21428
Alex
lens.h: mark lens_format_* as not thread-safe; fix return type lua: workarounds to ensure thread safety for the above calls
Alex
lens: added lens_format_iso and refactored other code to use it
Alex
Merged in daniel_fort/magic-lantern/manual_lens_info_new_lenses_part1 (pull request #859) Added and organized lenses.
Daniel Fort
Added and organized lenses.
Alex
boot-hack: fix task dispatch hook message missing when booting with HIJACK_CACHE_HACK
Alex
QEMU logging: cleaned up hacks around memory logging options (logging tools may require any memory logging backends, but in the logs, only those items specifically requested by user will be printed)
Alex
run_canon_fw.sh: hide osascript messages on Mac (when trying to bring the QEMU window in foreground, but there isn't any)
Alex
QEMU install: keep the 64-bit gdb warning prompt on Mac and WSL (to be tested)
Alex
QEMU install: attempt to fix warnings about 64-bit gdb on Mac and WSL (to be tested) the script should print warnings about them, but accept them as valid
Alex
QEMU install: fix path issue after compilation
Alex
QEMU install: fix warning about lsb_release on Mac or other systems without it
Alex
QEMU install: attempt to fix warnings about 64-bit GDB on Mac (to be tested)
Alex
QEMU install: fine-tuned QEMU compilation, to be tested (error handling, display the next steps after compilation finished)
Alex
QEMU install: on WSL and Mac, try the latest 64-bit toolchain (to be tested) Linux installation still uses the 32-bit one (older version) TODO: attempt to compile a 32-bit GDB for Mac Reworded warnings, as a 32-bit GDB is now only needed for development; it's no longer mandatory for running the examples, since http://www.magiclantern.fm/forum/index.php?topic=2864.msg190823#msg190823
Alex
QEMU: simplified SFDMA mapping by removing model-specific redirection (they are fairly consistent across all models)
Alex
QEMU tests: 40D call trace still not fully deterministic (CF uses some status polling, not just DMA) re-applying workaround (only check the "basic" call trace, without function arguments and extra info)
Alex
QEMU: documented SD detect registers on recent DIGIC 5 models (non-functional)
Alex
QEMU: refactored CFDMA/UartDMA handling to remove model-specific redirections enabled UartDMA on all models (including VxWorks), but it's not working yet 70D: IFE DMA handling moved from SDDMA to CFDMA (minor, no noticeable side effects other than breaking the tests)
Alex
QEMU: fix 5D3 CF emulation (disabled by default; can be enabled from mpu_spells/5D3.h)
Alex
QEMU: documented property groups ("complex" MPU messages) including GDB logging hooks to find them
Alex
QEMU tests: relaxed shutdown checks (some false positives caused by non-deterministic emulation) (note: menu tests are executed non-determinstically, unlike the call trace, so each run is different)
Alex
QEMU: attempt to get deterministic execution on CF models when using -icount operations are slowed down to avoid timing variations default behavior (without -icount) is not affected on main firmware, the call/return trace test is now deterministic on all models! fixme: CF emulation in PIO mode is still non-deterministic
Alex
GDB scripts: generic logging hooks
Alex
QEMU readme: example of identifying the location of an assertion using gdb and -d callstack; minor updates
Alex
QEMU: updated 750D/760D GDB scripts and tests; file I/O works! (using 750D SFDATA.BIN)
Alex
Alex
QEMU: fix some MPU spells (typos caught by automated checking)
t3r4n
Added the serial flash line for 750D and 760D into model_list. See https://www.magiclantern.fm/forum/index.php?topic=17627.msg195357#msg195357
Alex
QEMU readme: minor link updates
Alex
QEMU readme: moved developer and reverse engineering notes to a new file (reason: bitbucket seems to have trouble rendering large files)
Alex
QEMU readme, GDB scripts: info on debugging symbols; more symbol-file choices in comments (depending on what you are debugging - regular ML, reboot shim or Canon firmware)
Alex
QEMU readme, GDB scripts: recommend '-ex quit' after patches.gdb, but not after debugmsg.gdb reason: when running with patches.gdb, you may not want to type "quit" after stopping the emulation however, this trick removes the ability to use interactive breakpoints in GDB (it would quit as soon as reaching one), so don't recommend it for debugmsg.gdb
Alex
QEMU readme: fix typos; minor updates
Alex
QEMU: fix serial flash DMA on DIGIC 6 (tested on 80D, 5D4 and 750D with PR #894); refactored serial flash to use its own DMA (not shared with SD)
Alex
QEMU: updated 80D test results for actual serial flash contents http://www.magiclantern.fm/forum/index.php?topic=17360.msg195519#msg195519
Alex
QEMU readme: formatting
Alex
QEMU readme: GDB scripting examples, including callstack
Alex
QEMU readme: use em-dashes instead of simple dashes
Alex
QEMU: changed I/O logging behavior - "-d io" implies "-d nochain -singlestep" (this prints correct PC values, but emulation is slower) - "-d io_quick" to get the old behavior (faster, with incorrect PC values) - "-d io_log" to print mmio_log entries for dm-spy-experiments - "-d nochain" always implies "-singlestep" (easier to enable this mode on other kind of logs that may need it) - updated README
Alex
QEMU readme: moved the "Incorrect firmware version" section to Hacking (it's no longer an issue for regular users)
Alex
QEMU readme: started to document the steps needed to emulate Canon GUI
Alex
QEMU readme: minor updates, corrections
Alex
QEMU tests: updated after changing the SD image - format screenshots slightly different at free space (before only) - call/return traces are also different (different layout on the SD image)
Alex
QEMU: updated sd.img.xz with latest portable display test (main change: fix identification of firmware version - 7889972)
Alex
GDB scripts: fix assert handling on EOS M10
Alex
QEMU: moved 7D2 patches to GDB scripts; initial GDB script for 7D2 slave
Alex
QEMU: defined FPGA memory regions for 5D2 and 50D (just to prevent some warnings; nothing changed in functionality)
Alex
QEMU tests: run all cleanups on CTRL-C (stop all background tasks, make sure QEMU is no longer running, remove temporary files...)
Alex
QEMU: enabled serial flash emulation on 5D4 (emulation on main firmware doesn't go that far, but can be tested from bootloader menu)
Alex
QEMU: refactored serial flash CS handling to reduce duplicate code (moved CS register and tested value to model_list.c)
Alex
Lua: fixed issue #2824 - decimal number precision when printing thanks dmilligan for the hint and aprofiti for the test code tested with: val = {1.2,1.4,2.8,4.3,4.5,5.6} for i = 1, 6 do console.write(val[i]) console.write(" ") console.write(val[i] - 0.000001) console.write(" ") console.write(val[i] + 0.000001) console.write("\n") end output: 1.2 1.199999 1.200001 1.4 1.399999 1.400001 2.8 2.799999 2.800001 4.3 4.299999 4.300001 4.5 4.499999 4.500001 5.6 5.599999 5.600001 before: 1.2 1.199999 1.2 1.3999…
Alex
QEMU tests: reworked menu tests (including format) - use vncexpect whenever the md5 of the next screen is known (reduces timing sensitivity and also faster overall) - no more wait hacks required for format tests - use a single vncdotool command whenever possible (faster) - removed duplicate code (function for sending a menu sequence) - fine-tuned progress indicator
Alex
MPU spells: allow changing various Canon properties that require confirmation from the MPU: ISO, shutter, aperture, EC, FEC, metering, drive, AF mode, picture style, WB, ExpSim, ALO, HTP, MLU all but WB were broken if changed from ML menu/scripts; they are working now (fixme: not included in tests) some of them were working from Canon UI before this patch (picture style, WB, ExpSim, metering and drive mode) WB was working before, but uses confirmation in logs; updated for consistency could not test on: 5D2, 40D, 50D, 550D, 650D, 700D, EOSM2 not working: EOSM (breaks previous tests => disabled)
Alex
QEMU: experimental mode dial emulation works on most models to some extent, except 40D, could not test on 550D, 650D, 70D, EOSM2
Alex
MPU spells: comment out possible mode switches not required for the GUI, but will interfere later with the mode switching feature affected models: 6D (call/return trace changed), 70D, 700D (no side effects noticed)
Alex
Merged in t3r4n/magic-lantern/qemu_installer (pull request #893) Further automation in install script to compile directly at the end.
Alex
QEMU: more MPU properties identified by brute-forcing
Alex
QEMU: formatting fixes in extract_init_spells.py / known_spells.h
Alex
QEMU: added property IDs to known MPU spells also alternate names as comments
Alex
QEMU: identified more MPU spells, corrected a few others - experimentally (playing around in menus) - brute-forcing MPU messages to identify properties - cross-checked names and IDs in startup logs and ROM strings - still, it's impossible not to find a few incorrect ones
Alex
QEMU: experiment - brute-force MPU messages to find out their meaning
Alex
GDB scripts: hooks for logging properties (prop_request_change, MPU property functions) (example for 5D3.113 and 550D.109; useful for identifying properties)
Alex
qemu-util: fix compilation in bootloader context; sample boot messages in reboot.c, e.g. printing firmware signature or RESTARTSTART address (only present in the output binary when compiling with CONFIG_QEMU=y)
Alex
GDB scripts: disable serial flash version check patch on EOS M2 not really needed (the error message seems harmless and doesn't prevent GUI emulation) but changed ML firmware signature checking and won't be needed after getting a serial flash dump from a real camera anyway
Alex
QEMU install.sh: further Ubuntu/WSL cleanups (minor)
Alex
QEMU install.sh: fine-tuned messages and date format when renaming an older installation
Alex
Merged in t3r4n/magic-lantern/qemu_install_improvement (pull request #892) Option to rename or delete existing QEMU directory during installation
Alex
QEMU install.sh: WSL fixes - checking for Ubuntu (uname -a does not report Ubuntu) - hide 32-bit toolchain options
Alex
run_canon_fw.sh: Mac fixes - use is_mounted (lsof checks are enough) - typo in osascript when trying to bring QEMU window to front
Alex
run_canon_fw.sh: fine-tuned checking of whether SD/CF image is in use - use lsof to detect whether another process opened the SD/CF image for writing - only allow multiple instances of QEMU if using -snapshot (read-only access to SD/CF image) - check all results returned by losetup (note: lsof does not show whether the image is mounted) - use alternate methods (grepping mount output) if losetup is not available - to be tested/refined on Mac and Windows 10 WSL
Alex
QEMU: RTC workaround to bring back 400D GUI (broken in 0d654a0, not covered by tests as it's very slow)
Alex
QEMU: 40D GUI working! - MPU RX register was read 8 bits at a time (other models so far used 16-bit reads) - using 50D MPU spells - button codes found with extract_button_codes.py, from existing ML port - HotPlug: external monitor, USB, Toe, erase switch - CFDMA: new channel, protocol tweaks, enabled interrupts - Powersave workaround (GUI locked up after some seconds of inactivity, similar to 1300D)
Alex
QEMU: fix USB CONNECT on 450D/1000D (incidentally, this also fixes the card format dialog on these cameras - likely UILock issue)
Alex
QEMU: 1300D GUI works! - this camera uses a different DryOS timer (totally unexpected!) - removed JPCORE patch (firmware expects this to be initialized properly) - generic MPU spells; button codes from 1100D - powersave workaround (without it, GUI would lock up after a few seconds of inactivity) - no patches required!
Alex
QEMU: cleaned up serial flash handling on models that don't use one previously, they were called on unrelated SIO/SDIO channels, with little or no side effects, other than breaking a few function call trace tests
Alex
QEMU: updated 80D tests for 1.0.2; DCIM test also works!
Alex
QEMU: 80D file I/O support from main firmware (experimental, tested with "dumpf" in the serial console)
Alex
QEMU: enable card support on generic MPU spells (experimental, some models work better than others)
Alex
GDB scripts: some experimental 80D patches, to be fixed in the emulation
Alex
GDB scripts: log state object transitions (stubs for 550D and 80D)
Alex
GDB scripts: 80D logging hooks for semaphores and message queues (disabled by default; also updated assert_log for 1.0.2)
Alex
QEMU: RomRead DMA is actually XDMAC (up to 4 channels; 80D only uses 2)
Alex
Ghost image: fix crash (issues #2796, #2783)
Alex
gui-common: sync gui_uilock with crop_rec_4k
Alex
Merged new-dryos-task-hooks into lua_fix
Alex
Task hooks: disabled task switch debug messages by default (too verbose)
Alex
550D, 600D: fix memory allocation (amend 5b4fe18)
Alex
QEMU: experimental MPU support for 80D, 750D and 760D seems to work with generic spells - at least the emulation goes further also minor refactoring / comments on MPU registers for earlier models also enabled for 5D4 just to avoid a crash - emulation doesn't reach mpu_send yet, but it calls InitializeIntercom
Alex
QEMU tests: do not start if compilation fails (small nitpick that could result in false test results)
Alex
QEMU: updated tests after b75e1342711a (context info is now correctly printed when returning from msg_queue_receive, take_semaphore etc)
Alex
QEMU: generic MPU spells compatible with most EOS models (experimental)
Alex
QEMU logging: fix losing track of called functions when DryOS tasks are switched outside interrupts see the assertion error on 5D4 callstack consistency test (after 442b691) to be tested; there was a similar error was on 80D, non-deterministic (encountered when running with -d debugmsg,callstack,tail with all patches enabled)
Alex
6D: ADTG shutter addresses did not work, trying another set
Alex
QEMU: MPU status doesn't seem to matter much; simplified to prepare for DIGIC 6 compatibility todo: cross-check with actual hardware
Alex
6D: fix ADTG shutter addresses after memory layout change http://www.magiclantern.fm/forum/index.php?topic=5601.msg194754#msg194754 http://www.magiclantern.fm/forum/index.php?topic=5601.msg191914#msg191914 http://www.magiclantern.fm/forum/index.php?topic=15088.msg190890#msg190890 not tested, just confirmed the new addresses in QEMU fixme: are these deterministic? under what conditions?
Alex
QEMU: shared memory initialization for DIGIC 6 (MEMDIV messages) to try: SHM_SHOW_INFO / SHM_SHOW_DIST_INFO on serial console (only 80D, 750D and 760D reach this far) ( sleep 3; echo "akashimorino"; sleep 1; echo "SHM_SHOW_INFO"; sleep 1; echo "SHM_SHOW_DIST_INFO"; ) | ./run_canon_fw.sh 80D -serial stdio
Alex
QEMU: refactored serial flash SIO handler with io_log
Alex
QEMU: refactored serial flash connections to avoid hardcoding camera model names fixme: D3 models and 1300D still hardwired to serial flash handlers to pass the tests
Alex
QEMU: experimental serial flash support for 80D using SFDATA.BIN from 70D, patched at 0x10004 from 09 8B C1 20 to 00 00 01 20 meaning: size of 70D's property block at 0x10000 is 0x12BC98 (data is shifted by 4 bytes) but 80D expects a maximum size of 0x12000 in FE47BF40 ("Liar Valid Packages!!" if the size check fails) so we trim the property block at the expected size of 0x12000 this will lose a few properties, but at least the emulation goes f…
Alex
QEMU: RomRead DMA for DIGIC 6, used for initializing property blocks (very similar to regular DMA, slightly different register offsets)
Alex
QEMU: slow down UART input to work around race conditions (not exactly clean, but at least DryShell tests are now passing on all models)
Alex
QEMU: fixed UART on DIGIC 6 (DryShell works!) fixme: tests are failing, but typing on the UI works fine note: DIGIC 4/5 emulation changed a bit (0xC0270000 was misinterpreted before)
1360 commits not shown.