Escape Unicode - Online Unicode Tools

[question] Help needed with this crash report causes

Hello guys,
As I keep getting a random crashs on all apps with electra jailbreak and once I installed CrashReporter I found this report inside after re-Jailed again.
But i need help with someone can read it and tell me what is causing this issues.
{"blame":[],"app_name":"videosubscriptionsd","timestamp":"2018-11-03 07:55:50.79 +0300","app_version":"","slice_uuid":"4393dd09-05a7-3139-8605-28464675670a","build_version":"","share_with_app_devs":false,"is_first_party":true,"bug_type":"109","os_version":"iPhone OS 11.3.1 (15E302)","incident_id":"CE901AAD-E319-40E8-A572-E674D4FBB746","name":"videosubscriptionsd","symbolicated":true} Incident Identifier: CE901AAD-E319-40E8-A572-E674D4FBB746 CrashReporter Key: 11a998859f78f5961f2b124614ee745209095758 Hardware Model: iPad6,4 Process: videosubscriptionsd [145] Path: /uslibexec/videosubscriptionsd Identifier: videosubscriptionsd Version: ??? Code Type: ARM-64 (Native) Role: Unspecified Parent Process: launchd [1] Coalition: [239]
Date/Time: 2018-11-03 07:55:50.0572 +0300 Launch Time: 2018-11-03 07:55:49.2131 +0300 OS Version: iPhone OS 11.3.1 (15E302) Baseband Version: 4.56.00 Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000143d47a0 VM Region Info: 0x143d47a0 is not in any region. Bytes before following region: 4035934304 REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL UNUSED SPACE AT START - __TEXT 0000000104ccc000-0000000104cd0000 [ 16K] r-x/r-x SM=COW ...ubscriptionsd
Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler [0] Triggered by Thread: 3
Filtered syslog: None found
Thread 0: 0 libsystem_kernel.dylib 0x1833dd634 0x1833bb000 + 0x22634 // __semwait_signal_nocancel + 0x8 1 libsystem_c.dylib 0x183303f38 0x1832e9000 + 0x1af38 // nanosleep$NOCANCEL + 0xd0 2 libsystem_c.dylib 0x183327700 0x1832e9000 + 0x3e700 // sleep$NOCANCEL + 0x2c 3 libdispatch.dylib 0x1832582f4 0x183247000 + 0x112f4 // _dispatch_queue_cleanup2 + 0x90 4 libsystem_pthread.dylib 0x18357c57c 0x18357b000 + 0x157c // _pthread_tsd_cleanup + 0x23c 5 libsystem_pthread.dylib 0x18357c2cc 0x18357b000 + 0x12cc // _pthread_exit + 0x58 6 libsystem_pthread.dylib 0x18357cb3c 0x18357b000 + 0x1b3c // pthread_exit + 0x2c 7 libdispatch.dylib 0x183255a08 0x183247000 + 0xea08 // _dispatch_worker_thread3 + 0x0 8 videosubscriptionsd (*) 0x104ccfb28 0x104ccc000 + 0x3b28 // 0x00003b28 + 0x0 9 libdyld.dylib 0x1832adfc0 0x1832ad000 + 0xfc0 // start + 0x4
Thread 1 name: Dispatch queue: Thread 1: 0 libsystem_kernel.dylib 0x1833dda00 0x1833bb000 + 0x22a00 // __sigsuspend_nocancel + 0x8 1 libdispatch.dylib 0x183258388 0x183247000 + 0x11388 // _dispatch_sigsuspend + 0x1c 2 libdispatch.dylib 0x18325836c 0x183247000 + 0x1136c // _dispatch_sigsuspend + 0x0
Thread 2 name: Dispatch queue: Thread 2: 0 libsystemkernel.dylib 0x1833dd0f4 0x1833bb000 + 0x220f4 // __psynch_cvwait + 0x8 1 libsystem_pthread.dylib 0x18357fc90 0x18357b000 + 0x4c90 // _pthread_cond_wait$VARIANT$mp + 0x284 2 Foundation 0x1842c5be8 0x184289000 + 0x3cbe8 // -[NSOperationInternal _waitUntilFinished:] + 0x30c 3 Foundation 0x184312100 0x184289000 + 0x89100 // -[NSOperationQueue waitUntilAllOperationsAreFinished] + 0x100 4 VideoSubscriberAccount 0x195e0847c 0x195dbb000 + 0x4d47c // -[VSSubscriptionPersistentContainer _performBlock:andWait:] + 0xbc 5 VideoSubscriberAccount 0x195df3760 0x195dbb000 + 0x38760 // -[VSSubscriptionRegistry _performBlockAndWait:] + 0x9c 6 VideoSubscriberAccount 0x195df4eec 0x195dbb000 + 0x39eec // -[VSSubscriptionRegistry fetchActiveSubscriptionsWithOptions:completionHandler:] + 0x1f8 7 Foundation 0x1844be960 0x184289000 + 0x235960 // __NSXPCCONNECTION_IS_CALLING_OUT_TO_EXPORTED_OBJECT_S2_ + 0x14 8 Foundation 0x1842bd6d8 0x184289000 + 0x346d8 // -[NSXPCConnection _decodeAndInvokeMessageWithEvent:flags:] + 0x97c 9 Foundation 0x1842dfac0 0x184289000 + 0x56ac0 // message_handler + 0xf0 10 libxpc.dylib 0x1835b7220 0x1835b2000 + 0x5220 // _xpc_connection_call_event_handler + 0x44 11 libxpc.dylib 0x1835b4bb4 0x1835b2000 + 0x2bb4 // _xpc_connection_mach_event + 0x3d8 12 libdispatch.dylib 0x183248bb4 0x183247000 + 0x1bb4 // _dispatch_client_callout4 + 0x10 13 libdispatch.dylib 0x18325f4c4 0x183247000 + 0x184c4 // _dispatch_mach_msg_invoke$VARIANT$mp + 0x160 14 libdispatch.dylib 0x1832528f0 0x183247000 + 0xb8f0 // _dispatch_queue_serial_drain$VARIANT$mp + 0x118 15 libdispatch.dylib 0x18325ff70 0x183247000 + 0x18f70 // _dispatch_mach_invoke$VARIANT$mp + 0x1fc 16 libdispatch.dylib 0x1832528f0 0x183247000 + 0xb8f0 // _dispatch_queue_serial_drain$VARIANT$mp + 0x118 17 libdispatch.dylib 0x183253380 0x183247000 + 0xc380 // _dispatch_queue_invoke$VARIANT$mp + 0x150 18 libdispatch.dylib 0x183253d4c 0x183247000 + 0xcd4c // _dispatch_root_queue_drain_deferred_wlh$VARIANT$mp + 0x154 19 libdispatch.dylib 0x18325c11c 0x183247000 + 0x1511c // _dispatch_workloop_worker_thread$VARIANT$mp + 0x29c 20 libsystem_pthread.dylib 0x18357be70 0x18357b000 + 0xe70 // _pthread_wqthread + 0x35c 21 libsystem_pthread.dylib 0x18357bb08 0x18357b000 + 0xb08 // start_wqthread + 0x4
Thread 3 name: Dispatch queue: (QOS: UNSPECIFIED) Thread 3 Crashed: 0 libobjc.A.dylib 0x182b2c1a0 0x182b08000 + 0x241a0 // objcretain + 0x10 1 VideoSubscriberAccount 0x195e084fc 0x195dbb000 + 0x4d4fc // __59-[VSSubscriptionPersistentContainer _performBlock:andWait:]_block_invoke + 0x48 2 Foundation 0x18437ee88 0x184289000 + 0xf5e88 // __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK_ + 0x10 3 Foundation 0x1842c08d0 0x184289000 + 0x378d0 // -[NSBlockOperation main] + 0x48 4 Foundation 0x1842bfcac 0x184289000 + 0x36cac // -[__NSOperationInternal _start:] + 0x350 5 libdispatch.dylib 0x183248ae4 0x183247000 + 0x1ae4 // _dispatch_client_callout + 0x10 6 libdispatch.dylib 0x1832501f4 0x183247000 + 0x91f4 // _dispatch_block_invoke_direct$VARIANT$mp + 0xe0 7 libdispatch.dylib 0x183248ae4 0x183247000 + 0x1ae4 // _dispatch_client_callout + 0x10 8 libdispatch.dylib 0x1832501f4 0x183247000 + 0x91f4 // _dispatch_block_invoke_direct$VARIANT$mp + 0xe0 9 libdispatch.dylib 0x1832500e0 0x183247000 + 0x90e0 // dispatch_block_perform$VARIANT$mp + 0x68 10 Foundation 0x184380750 0x184289000 + 0xf7750 // __NSOQSchedule_f + 0x178 11 libdispatch.dylib 0x183248ae4 0x183247000 + 0x1ae4 // _dispatch_client_callout + 0x10 12 libdispatch.dylib 0x183250f18 0x183247000 + 0x9f18 // _dispatch_continuation_pop$VARIANT$mp + 0x1a8 13 libdispatch.dylib 0x18324f850 0x183247000 + 0x8850 // _dispatch_async_redirect_invoke$VARIANT$mp + 0x25c 14 libdispatch.dylib 0x183255d30 0x183247000 + 0xed30 // _dispatch_root_queue_drain + 0x24c 15 libdispatch.dylib 0x183255a80 0x183247000 + 0xea80 // _dispatch_worker_thread3 + 0x78 16 libsystem_pthread.dylib 0x18357bfac 0x18357b000 + 0xfac // _pthread_wqthread + 0x498 17 libsystem_pthread.dylib 0x18357bb08 0x18357b000 + 0xb08 // start_wqthread + 0x4
Thread 4: 0 libsystem_pthread.dylib 0x18357bb04 0x18357b000 + 0xb04 // start_wqthread + 0x0
Thread 5: 0 libsystem_pthread.dylib 0x18357bb04 0x18357b000 + 0xb04 // start_wqthread + 0x0
Thread 3 crashed with ARM Thread State (64-bit): x0: 0x0000000143d03290 x1: 0x0000000000001003 x2: 0x0000000000001003 x3: 0x0000000000000001 x4: 0x0000000000000001 x5: 0x0000000100000028 x6: 0x0000000004410103 x7: 0x00000000000010ff x8: 0x00000000143d4780 x9: 0x999f8fdfa59800f7 x10: 0x0000000104d80060 x11: 0x0000000143d14000 x12: 0x0000000000007594 x13: 0x0000000000007594 x14: 0x0000000000007594 x15: 0x0000000000000001 x16: 0x0000000183576c78 x17: 0x0000000020000000 x18: 0x0000000000000000 x19: 0x0000000104d80058 x20: 0x0000000143d44580 x21: 0x0000000143d44580 x22: 0x0000000000000000 x23: 0x000000016b2d30e0 x24: 0x00000001b3db7000 x25: 0x00000000000000d8 x26: 0x00000001b3db7000 x27: 0x00000001b3db4000 x28: 0x00000001b3db7000 fp: 0x000000016b2d2a10 lr: 0x0000000195e084fc sp: 0x000000016b2d2970 pc: 0x0000000182b2c1a0 cpsr: 0x60000000
Binary Images (dpkg):
Binary Images (App Store):
Binary Images (Other): 0x104ccc000 - 0x104ccffff videosubscriptionsd arm64 <4393dd0905a73139860528464675670a> /uslibexec/videosubscriptionsd 0x104e88000 - 0x104ec3fff dyld arm64 <06dc98224ae03573bf72c78810c81a78> /uslib/dyld 0x182a8a000 - 0x182a8bfff libSystem.B.dylib arm64 <1cbfa6a1a0fb3fc99264d3d30ca0e543> /uslib/libSystem.B.dylib 0x182a8c000 - 0x182ae4fff libc++.1.dylib arm64 /uslib/libc++.1.dylib 0x182ae5000 - 0x182b06fff libc++abi.dylib arm64 <086faefd537e3954b23565f56653a2cb> /uslib/libc++abi.dylib 0x182b08000 - 0x1831c3fff libobjc.A.dylib arm64 /uslib/libobjc.A.dylib 0x1831c4000 - 0x1831c9fff libcache.dylib arm64 <9234c7627b253d1ba2b18cd9aaadbe2e> /uslib/system/libcache.dylib 0x1831ca000 - 0x1831d5fff libcommonCrypto.dylib arm64 <50eeb933dceb3aa28a43dd3a791139ce> /uslib/system/libcommonCrypto.dylib 0x1831d6000 - 0x1831d9fff libcompiler_rt.dylib arm64 /uslib/system/libcompiler_rt.dylib 0x1831da000 - 0x1831e2fff libcopyfile.dylib arm64 /uslib/system/libcopyfile.dylib 0x1831e3000 - 0x183246fff libcorecrypto.dylib arm64 /uslib/system/libcorecrypto.dylib 0x183247000 - 0x1832acfff libdispatch.dylib arm64 <42fe29ae709d39d9bc00f31af92baaf1> /uslib/system/libdispatch.dylib 0x1832ad000 - 0x1832c7fff libdyld.dylib arm64 /uslib/system/libdyld.dylib 0x1832c8000 - 0x1832c8fff liblaunch.dylib arm64 <5d50c01da0fb3538bce8415db84cf1eb> /uslib/system/liblaunch.dylib 0x1832c9000 - 0x1832cefff libmacho.dylib arm64 /uslib/system/libmacho.dylib 0x1832cf000 - 0x1832d0fff libremovefile.dylib arm64 /uslib/system/libremovefile.dylib 0x1832d1000 - 0x1832e7fff libsystem_asl.dylib arm64 <5d19da723b2d3036b96bbe9569d99d5b> /uslib/system/libsystem_asl.dylib 0x1832e8000 - 0x1832e8fff libsystem_blocks.dylib arm64 <9a69557f7f5d35e6b2bb4c8cb55b43b6> /uslib/system/libsystem_blocks.dylib 0x1832e9000 - 0x183366fff libsystem_c.dylib arm64 <253425c2089e3d4d99cc1d073d72efe5> /uslib/system/libsystem_c.dylib 0x183367000 - 0x18336bfff libsystem_configuration.dylib arm64 <1f70ae27eb2d31ecb98b4b45f5b82ad9> /uslib/system/libsystem_configuration.dylib 0x18336c000 - 0x183371fff libsystem_containermanager.dylib arm64 <3a312c5c347d3fcab6227fb824849657> /uslib/system/libsystem_containermanager.dylib 0x183372000 - 0x183373fff libsystem_coreservices.dylib arm64 <70bb743b7bf53de1afdf6f7afcce1379> /uslib/system/libsystem_coreservices.dylib 0x183374000 - 0x183375fff libsystem_darwin.dylib arm64 <90fe2ed455e4396aa662e5e32fd80b84> /uslib/system/libsystem_darwin.dylib 0x183376000 - 0x18337cfff libsystem_dnssd.dylib arm64 <45af7516ceab3b94905cd74b35f4eab6> /uslib/system/libsystem_dnssd.dylib 0x18337d000 - 0x1833bafff libsystem_info.dylib arm64 <515624006f30300186f77a218ef98326> /uslib/system/libsystem_info.dylib 0x1833bb000 - 0x1833e3fff libsystem_kernel.dylib arm64 /uslib/system/libsystem_kernel.dylib 0x1833e4000 - 0x183411fff libsystem_m.dylib arm64 /uslib/system/libsystem_m.dylib 0x183412000 - 0x18342dfff libsystem_malloc.dylib arm64 /uslib/system/libsystem_malloc.dylib 0x18342e000 - 0x183559fff libsystem_network.dylib arm64 <6762e60b7af83d2e86468be0ac6b4fa0> /uslib/system/libsystem_network.dylib 0x18355a000 - 0x183565fff libsystem_networkextension.dylib arm64 /uslib/system/libsystem_networkextension.dylib 0x183566000 - 0x183570fff libsystem_notify.dylib arm64 <5bd9385d98c83d0ba9d157e69c429638> /uslib/system/libsystem_notify.dylib 0x183571000 - 0x18357afff libsystem_platform.dylib arm64 <038fc12926e83453a11b59ef3b1096c9> /uslib/system/libsystem_platform.dylib 0x18357b000 - 0x18358afff libsystem_pthread.dylib arm64 <01327cdfaac23c388fadf36cf440f0e2> /uslib/system/libsystem_pthread.dylib 0x18358b000 - 0x18358efff libsystem_sandbox.dylib arm64 /uslib/system/libsystem_sandbox.dylib 0x18358f000 - 0x183596fff libsystem_symptoms.dylib arm64 <7fc5e7245e09393aa5d003dceeffa74b> /uslib/system/libsystem_symptoms.dylib 0x183597000 - 0x1835aafff libsystem_trace.dylib arm64 <9bfe9e9e10b9385787a827c768ba54bf> /uslib/system/libsystem_trace.dylib 0x1835ab000 - 0x1835b0fff libunwind.dylib arm64 <7e526b97e5b039e6a1c78107321592aa> /uslib/system/libunwind.dylib 0x1835b1000 - 0x1835b1fff libvminterpose.dylib arm64 <39d037ec6db036179470ab258fc96c13> /uslib/system/libvminterpose.dylib 0x1835b2000 - 0x1835dcfff libxpc.dylib arm64 <9bc6486ebaa83cc580e90415889c978d> /uslib/system/libxpc.dylib 0x1835dd000 - 0x1837fefff libicucore.A.dylib arm64 /uslib/libicucore.A.dylib 0x1837ff000 - 0x183810fff libz.1.dylib arm64 <39dcd0297ee130c891937f50ce23c2df> /uslib/libz.1.dylib 0x183811000 - 0x183ba7fff CoreFoundation arm64 /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 0x183ba8000 - 0x183bb8fff libbsm.0.dylib arm64 <3f8b35c8ab283b78a319327ea597212e> /uslib/libbsm.0.dylib 0x183bb9000 - 0x183bb9fff libenergytrace.dylib arm64 /uslib/libenergytrace.dylib 0x183bba000 - 0x183c3efff IOKit arm64 <56754e706db43267b2e2bc4387e34f2b> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 0x183c3f000 - 0x183d26fff libxml2.2.dylib arm64 <21cc9796ecb933e8b3e12f53e04148f7> /uslib/libxml2.2.dylib 0x183d27000 - 0x183d34fff libbz2.1.0.dylib arm64 <63ddef9a83dc335a9df0bef913f437a7> /uslib/libbz2.1.0.dylib 0x183d35000 - 0x183d4dfff liblzma.5.dylib arm64 <252187562a8c3e07b7f01473a16c00d7> /uslib/liblzma.5.dylib 0x183d4e000 - 0x183eb2fff libsqlite3.dylib arm64 /uslib/libsqlite3.dylib 0x183eb3000 - 0x183ed9fff libMobileGestalt.dylib arm64 <816e5c2426243ca5a8e6b3b2b9521776> /uslib/libMobileGestalt.dylib 0x183eda000 - 0x184288fff CFNetwork arm64 <4f38683f50453eaa9a09eb6222eae139> /System/Library/Frameworks/CFNetwork.framework/CFNetwork 0x184289000 - 0x184581fff Foundation arm64 <18908b96750c38988eb0d7028c656a6d> /System/Library/Frameworks/Foundation.framework/Foundation 0x184582000 - 0x184682fff Security arm64 /System/Library/Frameworks/Security.framework/Security 0x184683000 - 0x1846eefff SystemConfiguration arm64 <0caa3f1372c637f791d1aae47629aed1> /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration 0x1846ef000 - 0x184724fff libCRFSuite.dylib arm64 <7d19be0f618136a1a3bc7e81caba4b6d> /uslib/libCRFSuite.dylib 0x184725000 - 0x184725fff libapple_crypto.dylib arm64 /uslib/libapple_crypto.dylib 0x184726000 - 0x18473cfff libapple_nghttp2.dylib arm64 <8d5134e490ad3c298330609806547a9e> /uslib/libapple_nghttp2.dylib 0x18473d000 - 0x184766fff libarchive.2.dylib arm64 <93fac4c1f6b73383a9082c6a963da406> /uslib/libarchive.2.dylib 0x184767000 - 0x184815fff libboringssl.dylib arm64 <8b812051a23e35b8a22e4c272887ecf7> /uslib/libboringssl.dylib 0x184816000 - 0x18482cfff libcoretls.dylib arm64 /uslib/libcoretls.dylib 0x18482d000 - 0x18482efff libcoretls_cfhelpers.dylib arm64 /uslib/libcoretls_cfhelpers.dylib 0x18482f000 - 0x184830fff liblangid.dylib arm64 /uslib/liblangid.dylib 0x184831000 - 0x1849a6fff libnetwork.dylib arm64 /uslib/libnetwork.dylib 0x1849a7000 - 0x1849d9fff libpcap.A.dylib arm64 <36ff48f819553b0c9e92c9fb2aa1a4a2> /uslib/libpcap.A.dylib 0x1849da000 - 0x184a36fff libusrtcp.dylib arm64 /uslib/libusrtcp.dylib 0x184a37000 - 0x184a41fff IOSurface arm64 /System/Library/Frameworks/IOSurface.framework/IOSurface 0x184a42000 - 0x184ae7fff libBLAS.dylib arm64 <50b5f5beeab037ffa5810a67e580bdbf> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libBLAS.dylib 0x184ae8000 - 0x184e08fff libLAPACK.dylib arm64 /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libLAPACK.dylib 0x184e09000 - 0x185078fff vImage arm64 <8f3ffa6be7e43dfdaf027891d655a60e> /System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/vImage 0x185079000 - 0x18508afff libSparseBLAS.dylib arm64 /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libSparseBLAS.dylib 0x18508b000 - 0x1850affff libvMisc.dylib arm64 <483df9b3d90331888b43bb65d802485f> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libvMisc.dylib 0x1850b0000 - 0x1850d7fff libBNNS.dylib arm64 <982f32f4102133d2802ea5f81cdc13a8> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libBNNS.dylib 0x1850d8000 - 0x1850ecfff libLinearAlgebra.dylib arm64 /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libLinearAlgebra.dylib 0x1850ed000 - 0x1850f1fff libQuadrature.dylib arm64 <5a98c0d39e0d38f89ce20797be797ac8> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libQuadrature.dylib 0x1850f2000 - 0x185161fff libSparse.dylib arm64 <6556be33563434b78e2ef1c80da99eb7> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libSparse.dylib 0x185162000 - 0x1851edfff libvDSP.dylib arm64 <4de8af8c7371382b9183e4dc14245445> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libvDSP.dylib 0x1851ee000 - 0x1851eefff vecLib arm64 <2d93d3f4573b313d81fc9104810f0f61> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/vecLib 0x1851ef000 - 0x1851effff Accelerate arm64 <850c55e76100327ea543af936487944c> /System/Library/Frameworks/Accelerate.framework/Accelerate 0x1851f0000 - 0x185206fff libcompression.dylib arm64 <9a090a94c6463eefa5413f012a34d3a4> /uslib/libcompression.dylib 0x185207000 - 0x18574efff CoreGraphics arm64 /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics 0x18574f000 - 0x185754fff IOAccelerator arm64 <83c3c1fcfd963ec4b3c15ca18ea71efe> /System/Library/PrivateFrameworks/IOAccelerator.framework/IOAccelerator 0x185755000 - 0x18575afff libCoreFSCache.dylib arm64 /System/Library/Frameworks/OpenGLES.framework/libCoreFSCache.dylib 0x18575b000 - 0x1857f3fff Metal arm64 <46fc1e5f11c5316991cb5d7a0aa46523> /System/Library/Frameworks/Metal.framework/Metal 0x1857f4000 - 0x185807fff GraphicsServices arm64 <85072ece665a3a86807f153e85476fed> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices 0x185808000 - 0x185961fff MobileCoreServices arm64 /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices 0x185962000 - 0x185964fff IOSurfaceAccelerator arm64 <7b5129072b7f3d128f701b1b950bcdf3> /System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/IOSurfaceAccelerator 0x185965000 - 0x1859a6fff AppleJPEG arm64 /System/Library/PrivateFrameworks/AppleJPEG.framework/AppleJPEG 0x1859a7000 - 0x185f57fff ImageIO arm64 /System/Library/Frameworks/ImageIO.framework/ImageIO 0x185f58000 - 0x185fbbfff BaseBoard arm64 <4a9ddf31f3443b6e9a17e272aebe2b8d> /System/Library/PrivateFrameworks/BaseBoard.framework/BaseBoard 0x185fbc000 - 0x185fd3fff AssertionServices arm64 /System/Library/PrivateFrameworks/AssertionServices.framework/AssertionServices 0x185fd4000 - 0x185fdcfff CorePhoneNumbers arm64 <2cacbb2a053f314d9c6b6df55b4cea0c> /System/Library/PrivateFrameworks/CorePhoneNumbers.framework/CorePhoneNumbers 0x185fdd000 - 0x186021fff AppSupport arm64 /System/Library/PrivateFrameworks/AppSupport.framework/AppSupport 0x186022000 - 0x18603afff CrashReporterSupport arm64 <5599d0094f603297a23dfaf2643c0214> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/CrashReporterSupport 0x18603b000 - 0x186040fff AggregateDictionary arm64 <3e27a71f9459361193f3e182dc87d3b0> /System/Library/PrivateFrameworks/AggregateDictionary.framework/AggregateDictionary 0x186041000 - 0x1860c5fff libTelephonyUtilDynamic.dylib arm64 /uslib/libTelephonyUtilDynamic.dylib 0x1860c6000 - 0x1860e5fff ProtocolBuffer arm64 /System/Library/PrivateFrameworks/ProtocolBuffer.framework/ProtocolBuffer 0x1860e6000 - 0x186112fff MobileKeyBag arm64 <19ed6cab7991380796131d9815a7e3df> /System/Library/PrivateFrameworks/MobileKeyBag.framework/MobileKeyBag 0x186113000 - 0x186147fff BackBoardServices arm64 /System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices 0x186148000 - 0x1861a3fff FrontBoardServices arm64 <1f63db3e11403909903a700f99bbafe5> /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices 0x1861a4000 - 0x1861e0fff SpringBoardServices arm64 <618c22ec2c98329f8bb23caa50a4f53c> /System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices 0x1861e1000 - 0x1861effff PowerLog arm64 <85efbdc068743b57a7dc8cf1115869ae> /System/Library/PrivateFrameworks/PowerLog.framework/PowerLog 0x1861f0000 - 0x18620cfff CommonUtilities arm64 /System/Library/PrivateFrameworks/CommonUtilities.framework/CommonUtilities 0x18620d000 - 0x186218fff liblockdown.dylib arm64 <6ca17ea36c9b3d8a80b1b4d147ba35f9> /uslib/liblockdown.dylib 0x186219000 - 0x18651dfff CoreData arm64 /System/Library/Frameworks/CoreData.framework/CoreData 0x18651e000 - 0x186524fff TCC arm64 <5b6e4c731ff931a499b5c45cfd742c6c> /System/Library/PrivateFrameworks/TCC.framework/TCC 0x186525000 - 0x18652cfff libcupolicy.dylib arm64 /uslib/libcupolicy.dylib 0x18652d000 - 0x1865befff CoreTelephony arm64 <8eae2d2fbbc83aa88fc94e48a88443d1> /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony 0x1865bf000 - 0x186616fff Accounts arm64 /System/Library/Frameworks/Accounts.framework/Accounts 0x186617000 - 0x186640fff AppleSauce arm64 <708bf2e767363eaaae3d41e17e0a0e86> /System/Library/PrivateFrameworks/AppleSauce.framework/AppleSauce 0x186641000 - 0x186649fff DataMigration arm64 <3db16bbf04603c5da1bd70c06c7cb464> /System/Library/PrivateFrameworks/DataMigration.framework/DataMigration 0x18664a000 - 0x186650fff Netrb arm64 /System/Library/PrivateFrameworks/Netrb.framework/Netrb 0x186651000 - 0x186683fff PersistentConnection arm64 <644d574b0cb33cf0bcaa55f353b636d1> /System/Library/PrivateFrameworks/PersistentConnection.framework/PersistentConnection 0x186684000 - 0x186695fff libmis.dylib arm64 <750810cf779d3946964aa5ee4a44f063> /uslib/libmis.dylib 0x186696000 - 0x18679cfff ManagedConfiguration arm64 /System/Library/PrivateFrameworks/ManagedConfiguration.framework/ManagedConfiguration 0x18679d000 - 0x1867a2fff libReverseProxyDevice.dylib arm64 <7c2f9a593dd03a90855450c4b3b2208e> /uslib/libReverseProxyDevice.dylib 0x1867a3000 - 0x1867b5fff libamsupport.dylib arm64 <6c1d65704dfc3b9b87980cd65560188e> /uslib/libamsupport.dylib 0x1867b6000 - 0x1867bbfff libCoreVMClient.dylib arm64 <8cfed6ca663f30748dd58b598a23169d> /System/Library/Frameworks/OpenGLES.framework/libCoreVMClient.dylib 0x1867bc000 - 0x1867bdfff libCVMSPluginSupport.dylib arm64 <4bf21a6ca33d3222bd1442c13450464d> /System/Library/Frameworks/OpenGLES.framework/libCVMSPluginSupport.dylib 0x1867be000 - 0x1867c1fff libutil.dylib arm64 <2f7e5961d4b734b496f3d85eae03acd1> /uslib/libutil.dylib 0x1867c2000 - 0x186802fff libGLImage.dylib arm64 <9c2f70ff46913e4f9dc66605475914f9> /System/Library/Frameworks/OpenGLES.framework/libGLImage.dylib 0x186803000 - 0x186879fff APFS arm64 <075ddba3fa093db78988256945f50ff9> /System/Library/PrivateFrameworks/APFS.framework/APFS 0x18687a000 - 0x1868abfff MediaKit arm64 <82856e94773c33f5a67a8eb4c1c6148e> /System/Library/PrivateFrameworks/MediaKit.framework/MediaKit 0x1868ac000 - 0x1868c4fff libSERestoreInfo.dylib arm64 <3cb3e784ed3e389894f58e4b9fc7bb4e> /uslib/updaters/libSERestoreInfo.dylib 0x1868c9000 - 0x186905fff DiskImages arm64 <198c6094f9c237698130c80de266469b> /System/Library/PrivateFrameworks/DiskImages.framework/DiskImages 0x186906000 - 0x18690ffff libGFXShared.dylib arm64 /System/Library/Frameworks/OpenGLES.framework/libGFXShared.dylib 0x186910000 - 0x186957fff libauthinstall.dylib arm64 /uslib/libauthinstall.dylib 0x186958000 - 0x186960fff IOMobileFramebuffer arm64 /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/IOMobileFramebuffer 0x186961000 - 0x18696cfff OpenGLES arm64 /System/Library/Frameworks/OpenGLES.framework/OpenGLES 0x18696d000 - 0x1869f4fff ColorSync arm64 <5959a19f99dc3ed1b0553dc055c18347> /System/Library/PrivateFrameworks/ColorSync.framework/ColorSync 0x1869f5000 - 0x186a1efff CoreVideo arm64 <740eb305ad133ba9ad42b2334b4c4ef5> /System/Library/Frameworks/CoreVideo.framework/CoreVideo 0x186a1f000 - 0x186a20fff libCTGreenTeaLogger.dylib arm64 /uslib/libCTGreenTeaLogger.dylib 0x186a21000 - 0x186b8dfff CoreAudio arm64 <8c29fcd6f30b3943bf20b01aeb0e04f6> /System/Library/Frameworks/CoreAudio.framework/CoreAudio 0x186b8e000 - 0x186bbcfff CoreAnalytics arm64 <97087dc402a73b5d9d71d9e6e230991c> /System/Library/PrivateFrameworks/CoreAnalytics.framework/CoreAnalytics 0x186bbd000 - 0x186bc0fff UserFS arm64 <26dc70e76d613a75aecc6a3fb815199c> /System/Library/PrivateFrameworks/UserFS.framework/UserFS 0x186bc1000 - 0x186d3dfff CoreMedia arm64 <5b1204613571323abde92fc7e94d5995> /System/Library/Frameworks/CoreMedia.framework/CoreMedia 0x186d3e000 - 0x186d50fff libprotobuf-lite.dylib arm64 <1a1686915f8b343ba80bea61f7bfb250> /uslib/libprotobuf-lite.dylib 0x186d51000 - 0x186db5fff libprotobuf.dylib arm64 <0f2b421fec773e7a8c4dc240454fd2bd> /uslib/libprotobuf.dylib 0x186db6000 - 0x187079fff libAWDSupportFramework.dylib arm64 <1293c8fa59113426a524963ad2960534> /uslib/libAWDSupportFramework.dylib 0x18707a000 - 0x1870c3fff WirelessDiagnostics arm64 /System/Library/PrivateFrameworks/WirelessDiagnostics.framework/WirelessDiagnostics 0x1870c4000 - 0x18717bfff VideoToolbox arm64 /System/Library/Frameworks/VideoToolbox.framework/VideoToolbox 0x18717c000 - 0x187285fff libFontParser.dylib arm64 <4f1c4137cd9a327f9cfe6befb8772ecc> /System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib 0x187286000 - 0x187287fff FontServices arm64 /System/Library/PrivateFrameworks/FontServices.framework/FontServices 0x187288000 - 0x1873dbfff CoreText arm64 <77db300ece0c3f60880c9c37d0328f09> /System/Library/Frameworks/CoreText.framework/CoreText 0x1873dc000 - 0x1873ebfff IntlPreferences arm64 /System/Library/PrivateFrameworks/IntlPreferences.framework/IntlPreferences 0x1873ec000 - 0x1873f4fff RTCReporting arm64 <4a3fab43886f3e6a80eff6d701c81c42> /System/Library/PrivateFrameworks/RTCReporting.framework/RTCReporting 0x1873f5000 - 0x187465fff CoreBrightness arm64 <09c973cf66153394aafc1d30404b2124> /System/Library/PrivateFrameworks/CoreBrightness.framework/CoreBrightness 0x187466000 - 0x187470fff libAudioStatistics.dylib arm64 /uslib/libAudioStatistics.dylib 0x187471000 - 0x1879a9fff AudioToolbox arm64 /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox 0x1879aa000 - 0x187bddfff QuartzCore arm64 <3b0f2dc265b03c6badac432a3bd1a26f> /System/Library/Frameworks/QuartzCore.framework/QuartzCore 0x187bde000 - 0x187be9fff MediaAccessibility arm64 <3bbdb8fbf36c387fb7ac14d5a0becfd4> /System/Library/Frameworks/MediaAccessibility.framework/MediaAccessibility 0x187bea000 - 0x187cdcfff libiconv.2.dylib arm64 /uslib/libiconv.2.dylib 0x187cdd000 - 0x187cf8fff NetworkStatistics arm64 <4bc8202c17113cbbbedec9d698607ad8> /System/Library/PrivateFrameworks/NetworkStatistics.framework/NetworkStatistics 0x187cf9000 - 0x187d14fff MPSCore arm64 /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/MPSCore 0x187d15000 - 0x187d7dfff MPSImage arm64 /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSImage.framework/MPSImage 0x187d7e000 - 0x187da0fff MPSMatrix arm64 <51eed27dc958331185498c57d285488c> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSMatrix.framework/MPSMatrix 0x187da1000 - 0x187daffff CoreAUC arm64 <2224d1a7332a3d3086784b512a37864c> /System/Library/PrivateFrameworks/CoreAUC.framework/CoreAUC 0x187db0000 - 0x188405fff MediaToolbox arm64 /System/Library/Frameworks/MediaToolbox.framework/MediaToolbox 0x188406000 - 0x188535fff MPSNeuralNetwork arm64 <88bcea2c366b31a68c58df71a7f334ef> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNeuralNetwork.framework/MPSNeuralNetwork 0x188536000 - 0x188536fff MetalPerformanceShaders arm64 <19616d7864ed39bd92fa2f834bea5e92> /System/Library/Frameworks/MetalPerformanceShaders.framework/MetalPerformanceShaders 0x188537000 - 0x188961fff FaceCore arm64 <5e413f9639833bd582d1626f1324d0bf> /System/Library/PrivateFrameworks/FaceCore.framework/FaceCore 0x188962000 - 0x18896ffff GraphVisualizer arm64 <8717060f6a11307eb90d4c68ab8026ba> /System/Library/PrivateFrameworks/GraphVisualizer.framework/GraphVisualizer 0x188970000 - 0x188b17fff libFosl_dynamic.dylib arm64 /uslib/libFosl_dynamic.dylib 0x188b18000 - 0x188d7bfff CoreImage arm64 /System/Library/Frameworks/CoreImage.framework/CoreImage 0x188d7c000 - 0x188f7afff CoreMotion arm64 <47fb319b10c53669bcef50c4ee34d0c1> /System/Library/Frameworks/CoreMotion.framework/CoreMotion 0x188f7b000 - 0x188fa9fff CoreBluetooth arm64 /System/Library/Frameworks/CoreBluetooth.framework/CoreBluetooth 0x188fcd000 - 0x1891f8fff Celestial arm64 <0db0bceb08073225810e08ca28af72ab> /System/Library/PrivateFrameworks/Celestial.framework/Celestial 0x1891f9000 - 0x18927bfff Quagga arm64 <95fb120567723673a0c85b1b91f1a67a> /System/Library/PrivateFrameworks/Quagga.framework/Quagga 0x18927c000 - 0x189372fff AVFAudio arm64 /System/Library/Frameworks/AVFoundation.framework/Frameworks/AVFAudio.framework/AVFAudio 0x189373000 - 0x189564fff AVFoundation arm64 <6fa521ecbea43fb6888cdbf49ed19506> /System/Library/Frameworks/AVFoundation.framework/AVFoundation 0x18960e000 - 0x189616fff SymptomDiagnosticReporter arm64 <32a292fd7bac35528f161a9c3d8e24e6> /System/Library/PrivateFrameworks/SymptomDiagnosticReporter.framework/SymptomDiagnosticReporter 0x18a15f000 - 0x18a15ffff PhoneNumbers arm64 /System/Library/PrivateFrameworks/PhoneNumbers.framework/PhoneNumbers 0x18ba06000 - 0x18ba68fff ContactsFoundation arm64 <957d69d66b6e317d90ce669eda861706> /System/Library/PrivateFrameworks/ContactsFoundation.framework/ContactsFoundation 0x18d2b7000 - 0x18d2dffff DataAccessExpress arm64 <8e3311f934e53459b1a50a56a8f072e1> /System/Library/PrivateFrameworks/DataAccessExpress.framework/DataAccessExpress 0x18d2e0000 - 0x18d37afff AddressBookLegacy arm64 <9f96f3b0e89b37b38c4a0ac13b9fed3d> /System/Library/PrivateFrameworks/AddressBookLegacy.framework/AddressBookLegacy 0x18d404000 - 0x18d40ffff AppleIDAuthSupport arm64 <9a58a7b3913a36e7b80931230c9adac1> /System/Library/PrivateFrameworks/AppleIDAuthSupport.framework/AppleIDAuthSupport 0x18d410000 - 0x18d460fff AuthKit arm64 <7b2eebc84315383e94b83f787ed9a111> /System/Library/PrivateFrameworks/AuthKit.framework/AuthKit 0x18e7cc000 - 0x18e8e8fff Network arm64 /System/Library/PrivateFrameworks/Network.framework/Network 0x18eaf1000 - 0x18eb0bfff libresolv.9.dylib arm64 <7c4f57d578193d9fa2b41e55d2df2db2> /uslib/libresolv.9.dylib 0x18eb0f000 - 0x18eb44fff libtidy.A.dylib arm64 /uslib/libtidy.A.dylib 0x18ecaa000 - 0x18ed15fff IMFoundation arm64 <6b4b6b92108e33baa7f8381d42cccfec> /System/Library/PrivateFrameworks/IMFoundation.framework/IMFoundation 0x18ee53000 - 0x18ee54fff DiagnosticLogCollection arm64 /System/Library/PrivateFrameworks/DiagnosticLogCollection.framework/DiagnosticLogCollection 0x18ee55000 - 0x18ee56fff Marco arm64 <865c2a3744c13039941e7f92aaf9bcaf> /System/Library/PrivateFrameworks/Marco.framework/Marco 0x18ee57000 - 0x18ee61fff MessageProtection arm64 <6dd7d2b068083337830d3fac1c9cef2b> /System/Library/PrivateFrameworks/MessageProtection.framework/MessageProtection 0x18ee62000 - 0x18f170fff StoreServices arm64 /System/Library/PrivateFrameworks/StoreServices.framework/StoreServices 0x18f171000 - 0x18f188fff Engram arm64 /System/Library/PrivateFrameworks/Engram.framework/Engram 0x18f189000 - 0x18f279fff IDSFoundation arm64 <08d21d4abe023b57bc062df7b9f71f1b> /System/Library/PrivateFrameworks/IDSFoundation.framework/IDSFoundation 0x18f614000 - 0x18f72afff IDS arm64 <16a330e0018b33738d123c494e800dbc> /System/Library/PrivateFrameworks/IDS.framework/IDS 0x18f961000 - 0x18f965fff CommunicationsFilter arm64 /System/Library/PrivateFrameworks/CommunicationsFilter.framework/CommunicationsFilter 0x191da0000 - 0x191e29fff CoreSymbolication arm64 /System/Library/PrivateFrameworks/CoreSymbolication.framework/CoreSymbolication 0x191f57000 - 0x191f5dfff IncomingCallFilter arm64 <6e1f7dcfa63d39a7a167f99cfa161bca> /System/Library/PrivateFrameworks/IncomingCallFilter.framework/IncomingCallFilter 0x192188000 - 0x19218ffff CoreTime arm64 /System/Library/PrivateFrameworks/CoreTime.framework/CoreTime 0x192d17000 - 0x192d69fff ToneLibrary arm64 <973f74467c953f92ab1b2f58fcce727b> /System/Library/PrivateFrameworks/ToneLibrary.framework/ToneLibrary 0x1936d4000 - 0x19378afff BulletinBoard arm64 <55e3a30ccae23e409d24b0bddaf9f658> /System/Library/PrivateFrameworks/BulletinBoard.framework/BulletinBoard 0x195dbb000 - 0x195e84fff VideoSubscriberAccount arm64 /System/Library/Frameworks/VideoSubscriberAccount.framework/VideoSubscriberAccount 0x1a0a5c000 - 0x1a0a6dfff DeviceIdentity arm64 <4f5d7a89c9a339b4b4fbc101fe35f4e5> /System/Library/PrivateFrameworks/DeviceIdentity.framework/DeviceIdentity 0x1a812a000 - 0x1a812dfff InternationalSupport arm64 /System/Library/PrivateFrameworks/InternationalSupport.framework/InternationalSupport 0x1abb28000 - 0x1abb58fff libclosured.dylib arm64 <23ea8cc8f66931e4a59c47fb92b8baaa> /uslib/closure/libclosured.dylib
submitted by batreky to jailbreak [link] [comments]

Fast Flood Fill Lighting in a Blocky Voxel Game: Pt 1.

Hey guys!
It has been a long time since my last blog post, and I figured that a good topic to talk about would be volumetric voxel based lighting for minecraft-like games! Resources seem to be a bit sparse on the subject, particularly relating to colored light, which will be covered in part 2. I'll try to finish part two within the next week and will post it here.
I will paste the blog here but I recommend using the FULL BLOG POST LINK since the formatting will be a lot better... also pictures!
So you have a basic blocky voxel engine, and you want to implement lighting. The easy route would be to use standard deferred dynamic lighting like in most other games. However, dynamic lighting has a few issues.
  1. You need to shadow map every light to prevent light from bleeding through your voxels.
  2. Light will not radiate around corners without expensive global illumination, which can be a bit unrealistic in small undergound tunnels with many winding passages.
  3. The more lights in the scene you have, the slower the game will run. Though this is greatly alleviated with deferred rendering.
Now these issues might not really be that relevant to your game, but they are in Seed Of Andromeda. Luckily, there is an alternative! We can store light as voxel data, and propagate it through the grid. This allows light to radiate around corners, and since the lighting is baked into the mesh, increasing the number of lights will minimally affect performance. We can also easily find the light level at a given point by simply sampling the voxel grid, which can be useful if we want voxel plants to be able to grow when exposed to sunlight. However, there are some issues with voxel lighting as well.
  1. Voxel lighting requires you to manually propagate the light. I will show you how to do it quickly, but it is still more expensive than simply placing a dynamic light. This calculation only needs to be done when adding or removing a light, or when modifying blocks around a light.
  2. The maximum range of your voxel lighting is limited by how much voxel data you allocate for it. If you allocate 5 bits for it, then the maximum range of any light is 25=32 blocks from the source.
  3. The shape of the resulting light volume is not perfectly spherical, it is actually the shape of an octahedron.
If the cons of voxel lighting outweight the cons of dynamic lighting, you might want to go with dynamic lighting, or maybe even a combination of the two. Otherwise, I will show you the workings of voxel lighting.
For this tutorial I will be assuming a few things.
  1. Your world is made up of cubic chunks of size 323. All voxel data is stored in flat arrays per chunk. If this is not the case, modify accordingly.
  2. You want sunlight to propagate downward from the top of your voxel world, until it hits something.
  3. You want lamps/torches that emit voxel light that is independent of the sunlight.
Any example code will be provided in C++.
The Data
In order to correctly propagate and update the light, we need to store the light levels of each block. To do that we will use a 3d lightmap, which is just a 3d array. Now the maximum light level will depend entirely on your engine. Minecraft uses light levels of 0-15. I use 0-31 since my voxels are half as large. So for now I will assume you will be using levels 0-15, which can be stored in 4 bits.
Since we need to store both sunlight and torchlight seperately, we will need 2 lightmaps. However, since sunlight and torchlight only need 4 bits per voxel each, we can combine them into a single 8 bit byte. Therefore we only need a single lightMap of bytes. (This is not true if we want to use colored light. See the colored light section below for more details)
unsigned char lightMap[chunkWidth][chunkWidth][chunkWidth]; //chunkWidth == 32 
Getting and setting light and sunlight are done using bitwise operations, since we need to mask out 4 bits of the byte in each case. Lets say that the most significant 4 bits are sunlight, and the least significant are voxel light. We can get and set the light values using these fast inline functions. Remember, 0xF is 15, which is 00001111 in binary. 0xF0 is 11110000.
// Get the bits XXXX0000 inline int Chunk::getSunlight(int x, int y, int z) { return (lightMap[y][z][x] >> 4) & 0xF; } // Set the bits XXXX0000 inline void Chunk::setSunlight(int x, int y, int z, int val) { lightMap[y][z][x] = (lightMap[x][y][z] & 0xF) | (val << 4); } // Get the bits 0000XXXX inline int Chunk::getTorchlight(int x, int y, int z) { return lightMap[y][z][x] & 0xF; } // Set the bits 0000XXXX inline void Chunk::setTorchlight(int x, int y, int z, int val) { lightMap[y][z][x] = (lightMap[x][y][z] & 0xF0) | val; } 
Notice that I am calling lightMap[y][z][x]. This is a matter of personal preference, you can store the data in whatever order you wish. This is the cache friendly way to do it if you want to iterate your chunk like this
for (int y = 0; y < chunkWidth; y++) { for (int z = 0; z < chunkWidth; z++) { for (int x = 0; x < chunkWidth; x++) { //... 
NOTE: If you would like to, you could just store two separate lightmaps. You will double your RAM usage, but you could use the extra 4 bits for something else. If you want to also store light color, you could use more data and store color channels.
When we first initialize our chunks, we should be sure to zero out the lightmap. In c++ this can be done quite quickly with.
memset(lightMap, 0, sizeof(lightMap)); 
The Propagation Algorithm
Ok we have our storage! Now what? Well lets start with torchlight. If the player places a torch on a block, we might call chunk.setSunlight(x, y, z, 14). But now we need to spread the light outwards in each direction, reducing the light level by 1 at each block until we are at zero. Check out the image below, that I shamelessly stole from minecraft.gamepedia.
In this image, a yellow T box is a torch, and each torch has a light level of 14. As you can see, light level decreases by 1 for each cell that you move away from a torch. Notice that along the green diagonal, light level decreases by two instead of one. This is because distance from the light is calculated as X distance + Y distance, instead of a true linear distance calculation. Keep in mind this is happening in 3D, which the image does not illustrate.
So how do we design an algorithm that does this? Well a naive solution that I see people coming up with is that you do 15 light passes (one for each level) to spread the light. Each pass, you iterate every block in the chunk and when you hit a block with light you spread it to a neighbouring spot. After 15 passes you are guaranteed to have spread out the light correctly! Sounds good right? NO!
That is WAY to much iteration. We only want to visit each voxel that the light touches ONE time! And we dont want to visit any voxels that are unaffected! For this, we need Breadth-First Search (BFS).
The BFS algorithm is perfect for this job. And it is incredibly simple to implement! All we need is a FIFO queue of nodes. For instance:
std::queue  lightBfsQueue. 
Lets define a LightNode as follows.
struct LightNode { LightNode(short indx, Chunk* ch) : index(indx), chunk(ch) {} short index; //this is the x y z coordinate! Chunk* chunk; //pointer to the chunk that owns it! } 
Constructor in a struct? I'm so bad...
Notice that instead of storing x, y, and z, we store a single value index. This is to keep our node class super tiny. The smaller it is, the more cache friendly it is, and the better our algorithm will perform. To get an index from x, y, and z you do the following. ( Remember, I store them in (y,z,x) order )
Node.index = y * chunkWidth * chunkWidth + z * chunkWidth + x; 
The Algorithm
So lets look at the BFS algorithm for our lighting.
When placing a torch with light level L we do the following: Step 1: Call setTorchlight to set the light.
 chunk->setTorchlight(x, y, z, L); Step 2: Add a new node for the torch to the bfsQueue. short index = y * chunkWidth * chunkWidth + z * chunkWidth + x; lightBfsQueue.emplace(index, chunk) Step 3: Repeat the following steps until bfsQueue is empty. while(lightBfsQueue.empty() == false) { Step 4: Take the front node off of the queue. // Get a reference to the front node. LightNode &node = lightBfsQueue.front(); int index = node.index; Chunk* chunk = node.chunk; // Pop the front node off the queue. We no longer need the node reference lightBfsQueue.pop(); // Extract x, y, and z from our chunk. // Depending on how you access data in your chunk, this may be optional int x = index % chunkWidth; int y = index / (chunkWidth * chunkWidth); int z = (index % (chunkWidth * chunkWidth) ) / chunkWidth; // Grab the light level of the current node int lightLevel = chunk->getTorchlight(x, y, z); Step 5: Look at all neighbouring voxels to that node. if their light level is 2 or more levels less than the current node, then set their light level to the current nodes light level - 1, and then add them to the queue. // NOTE: You will need to do bounds checking! // If you are on the edge of a chunk, then x - 1 will be -1. Instead // you need to look at your left neighboring chunk and check the // adjacent block there. When you do that, be sure to use the // neighbor chunk when emplacing the new node to lightBfsQueue; // Check negative X neighbor // Make sure you don't propagate light into opaque blocks like stone! if (chunk->getBlock(x - 1, y, z).opaque == false && chunk->getTorchlight(x - 1, y, z) + 2 <= lightLevel) { // Set its light level chunk->setTorchlight(x - 1, y, z, lightLevel - 1); // Construct index short index = y * chunkWidth * chunkWidth + z * chunkWidth + (x - 1); // Emplace new node to queue. (could use push as well) lightBfsQueue.emplace(index, chunk); } // Check other five neighbors ... } //End while loop 
The end! Its only 5 steps, and the actual loop is only 2 steps! Not that bad at all! Light Removal
Well we have light propagation figured out, but what happens when we want to delete a light? We simple do BFS again! This just requires modification to the spreading algorithm.
We need a new node definition, and a new queue to prevent duplicate node updates with this algorithm
std::queue  lightRemovalBfsQueue. struct LightRemovalNode { LightNode(short indx, short v, Chunk* ch) : index(indx), val(v), chunk(ch) {} short index; //this is the x y z coordinate! short val; Chunk* chunk; //pointer to the chunk that owns it! } Step 1: Add a new node for the torch to the bfsQueue, and set light to zero short val = (short)chunk->getTorchlight(x, y, z); short index = y * chunkWidth * chunkWidth + z * chunkWidth + x; lightRemovalBfsQueue.emplace(index, val, chunk); chunk->setTorchlight(x, y, z, 0); Step 2: Repeat the following steps until bfsQueue is empty. while(lightRemovalBfsQueue.empty() == false) { Step 3: Take the front node off of the queue // Get a reference to the front node LightRemovalNode &node = lightRemovalBfsQueue.front(); int index = (int)node.index; int lightLevel = (int)node.val; Chunk* chunk = node.chunk; // Pop the front node off the queue. lightRemovalBfsQueue.pop(); // Extract x, y, and z from our chunk. Same as before. ... Step 4: Look at all neighbouring voxels to that node. if their light level is nonzero and is less than the current node, then add them to the queue and set their light level to zero. Else if it is >= current node, then add it to the light propagation queue. // NOTE: Don't forget chunk bounds checking! I didn't show it here. // Check negative X neighbor int neighborLevel = currentNode.chunk->getTorchlight(x - 1, y, z); if (neighborLevel != 0 && neighborLevel < lightLevel) { // Set its light level currentNode.chunk->setTorchlight(x - 1, y, z, 0); // Construct index short index = y * chunkWidth * chunkWidth + z * chunkWidth + (x - 1); // Emplace new node to queue. (could use push as well) lightRemovalBfsQueue.emplace(index, neighborLevel, chunk); } else if (neighborLevel >= lightLevel) { short index = y * chunkWidth * chunkWidth + z * chunkWidth + (x - 1); // Add it to the update queue, so it can propagate to fill in the gaps // left behind by this removal. We should update the lightBfsQueue after // the lightRemovalBfsQueue is empty. lightBfsQueue.emplace(index, chunk); } // Check other five neighbors ... } //End while loop 
Notice that in step 4 we added an else if that checks to see if the neighbor light is >= the current nodes light. If it is, then we will propagate this light witht he first BFS algorithm, by pushing it onto lightBfsQueue and updating it after we are done with all the light removal updates. This is so that if you have two lights next to each other, removing one light will allow the other light to fill in the empty spaces left behind.
Now you know the basics of voxel light propagation! If you have any questions, use the comments below or send me a PM! In the next part we will cover sunlight and colored voxel light!
Link to part 2
submitted by DubstepCoder to gamedev [link] [comments]

Adafruit Space Invader pendant. Want to convert to using a bicolor 1.2 led matrix. How would the code change?

 // Trinket/Gemma + LED matrix backpack jewelry. Plays animated // sequence on LED matrix. Press reset button to display again, // or add optional momentary button between pin #1 and +V. // THERE IS NO ANIMATION DATA IN THIS SOURCE FILE, you should // rarely need to change anything here. EDIT anim.h INSTEAD. #define BRIGHTNESS 14 // 0=min, 15=max #define I2C_ADDR 0x70 // Edit if backpack A0/A1 jumpers set #include  #include  #include  #include "anim2.h" // Animation data is located here #include "anim3.h" // Animation data is located here #include "anim4.h" // Animation data is located here static const uint8_t PROGMEM reorder[] = { // Column-reordering table 0x00,0x40,0x20,0x60,0x10,0x50,0x30,0x70,0x08,0x48,0x28,0x68,0x18,0x58,0x38,0x78, 0x04,0x44,0x24,0x64,0x14,0x54,0x34,0x74,0x0c,0x4c,0x2c,0x6c,0x1c,0x5c,0x3c,0x7c, 0x02,0x42,0x22,0x62,0x12,0x52,0x32,0x72,0x0a,0x4a,0x2a,0x6a,0x1a,0x5a,0x3a,0x7a, 0x06,0x46,0x26,0x66,0x16,0x56,0x36,0x76,0x0e,0x4e,0x2e,0x6e,0x1e,0x5e,0x3e,0x7e, 0x01,0x41,0x21,0x61,0x11,0x51,0x31,0x71,0x09,0x49,0x29,0x69,0x19,0x59,0x39,0x79, 0x05,0x45,0x25,0x65,0x15,0x55,0x35,0x75,0x0d,0x4d,0x2d,0x6d,0x1d,0x5d,0x3d,0x7d, 0x03,0x43,0x23,0x63,0x13,0x53,0x33,0x73,0x0b,0x4b,0x2b,0x6b,0x1b,0x5b,0x3b,0x7b, 0x07,0x47,0x27,0x67,0x17,0x57,0x37,0x77,0x0f,0x4f,0x2f,0x6f,0x1f,0x5f,0x3f,0x7f, 0x80,0xc0,0xa0,0xe0,0x90,0xd0,0xb0,0xf0,0x88,0xc8,0xa8,0xe8,0x98,0xd8,0xb8,0xf8, 0x84,0xc4,0xa4,0xe4,0x94,0xd4,0xb4,0xf4,0x8c,0xcc,0xac,0xec,0x9c,0xdc,0xbc,0xfc, 0x82,0xc2,0xa2,0xe2,0x92,0xd2,0xb2,0xf2,0x8a,0xca,0xaa,0xea,0x9a,0xda,0xba,0xfa, 0x86,0xc6,0xa6,0xe6,0x96,0xd6,0xb6,0xf6,0x8e,0xce,0xae,0xee,0x9e,0xde,0xbe,0xfe, 0x81,0xc1,0xa1,0xe1,0x91,0xd1,0xb1,0xf1,0x89,0xc9,0xa9,0xe9,0x99,0xd9,0xb9,0xf9, 0x85,0xc5,0xa5,0xe5,0x95,0xd5,0xb5,0xf5,0x8d,0xcd,0xad,0xed,0x9d,0xdd,0xbd,0xfd, 0x83,0xc3,0xa3,0xe3,0x93,0xd3,0xb3,0xf3,0x8b,0xcb,0xab,0xeb,0x9b,0xdb,0xbb,0xfb, 0x87,0xc7,0xa7,0xe7,0x97,0xd7,0xb7,0xf7,0x8f,0xcf,0xaf,0xef,0x9f,0xdf,0xbf,0xff }; int animationSection = 0; void ledCmd(uint8_t x) { // Issue command to LED backback driver Wire.beginTransmission(I2C_ADDR); Wire.write(x); Wire.endTransmission(); } void clear(void) { // Clear display buffer Wire.beginTransmission(I2C_ADDR); for(uint8_t i=0; i<17; i++) Wire.write(0); Wire.endTransmission(); } void setup() { power_timer1_disable(); // Disable unused peripherals power_adc_disable(); // to save power PCMSK |= _BV(PCINT1); // Set change mask for pin 1 Wire.begin(); // I2C init clear(); // Blank display ledCmd(0x21); // Turn on oscillator ledCmd(0xE0 | BRIGHTNESS); // Set brightness ledCmd(0x81); // Display on, no blink } uint8_t rep = REPS; void loop() { switch (animationSection) { case 0: for(int i=0; i 10) { animationSection = 0; } if(!--rep) { // If last cycle... ledCmd(0x20); // LED matrix in standby mode // GIMSK = _BV(PCIE); // Enable pin change interrupt // power_all_disable(); // All peripherals off // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep_enable(); // sei(); // Keep interrupts disabled // sleep_mode(); // Power down CPU (pin 1 will wake) // Execution resumes here on wake. // PLD - Simply Sleep for 2 minutes then start again... //delay(100000); //delay(100000); delay(120000); animationSection = 0; GIMSK = 0; // Disable pin change interrupt rep = REPS; // Reset animation counter power_timer0_enable(); // Re-enable timer power_usi_enable(); // Re-enable USI Wire.begin(); // Re-init I2C clear(); // Blank display ledCmd(0x21); // Re-enable matrix } } ISR(PCINT0_vect) {} // Button tap 
This is a section of the anim file. I want to be able to set the various colors in these "frames"
// Animation data for Trinket/Gemma + LED matrix backpack jewelry. // Edit this file to change the animation; it's unlikely you'll need // to edit the source code. #define REPS 10 // Number of times to repeat the animation loop (1-255) const int frameSpeed2 = 3; const uint8_t PROGMEM anim2[] = { // Animation bitmaps. Each frame of animation MUST contain // 8 lines of graphics data (there is no error checking for // length). Each line should be prefixed with the letter 'B', // followed by exactly 8 binary digits (0 or 1), no more, // no less (again, no error checking). '0' represents an // 'off' pixel, '1' an 'on' pixel. End line with a comma. B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, frameSpeed2, // 0.10 seconds }; 
submitted by pldiguanaman to arduino [link] [comments]

BIP for PoP URI scheme | Kalle Rosenbaum | Jun 06 2015

Kalle Rosenbaum on Jun 06 2015:
Following earlier posts on Proof of Payment I'm now proposing the following
BIP for a Proof of Payment URI scheme (To read it formatted instead, go to
Kalle Rosenbaum
Title: Proof of Payment URI scheme
Author: Kalle Rosenbaum <kalle at>
Status: Draft
Type: Standards Track
== Abstract ==
This is a proposal for a URI scheme to be used in the Proof of Payment
== Motivation ==
To make a Proof of Payment, the party that wants the proof needs to
transfer a Proof of Payment request to the wallet software of the
other party. To facilitate that transfer, a new URI scheme
representing the PoP request is proposed. This URI can then be encoded
in QR images or sent over NFC in order to transfer it to the wallet.
== Specification ==
The specification is the same as BIP0021, with the following
the PoP. This could for example be a https: URL or a mailto:
the transaction to prove.
Just as in BIP0021, elements of the query component may contain
characters outside the valid range. These must first be encoded
according to UTF-8, and then each octet of the corresponding UTF-8
sequence must be percent-encoded as described in RFC 3986.
All parameters except p and n are hints to the
wallet on which transaction to create a PoP for.
The extensibility of BIP0021 applies to this scheme as well. For
example, a date parameter or a toaddr parameter
might be useful. req-* parameters are also allowed and obey
the same rules as in BIP0021, clients not supporting a req-*
parameter must consider the URI invalid.
=== Keep URIs short ===
Implementations should keep the URIs as short as possible. This is
because it makes QR decoding more stable. A camera with a scratched
lens or low resolution may run into problems scanning huge QR
codes. This is why the txid parameter is encoded in Base58
instead of the classic hex encoded string. We get away with 44
characters instead of 64. Also, the nonce parameter is Base58
encoded for the same reason.
== Interpretation ==
=== Transaction hints ===
The wallet processing the URI must use the hints in the PoP request to
filter its transaction set. The label, amount and
message parameters must, if present in the URI, exactly match
the data associated with the original payment according to the
following table:
| btcpop: URI parameter || bitcoin: URI parameter ||
BIP70 PaymentDetails data
| label || label ||
| amount || amount ||
sum of outputs.amount
| message || message ||
The txid parameter value must match the transaction hash of
the payment.
After filtering, the resulting transaction set is displayed to the
user who selects one of them to prove. An implementation could also
automatically select a transaction in the filtered set, but
there must still be a way for the user to select freely among the
matching transactions. If the filtered set is empty, no transaction
fits the hints and a message about that is presented to the user. If
the filtered set contains exactly one transaction, which is
preferable, that transaction can be automatically selected.
As a fallback, there must also be a way for the user to select any
transaction from the wallet regardless of the transaction hints. This
can be useful if the metadata of the wallet is lost, possibly due to a
restore from backup.
=== PoP destination p ===
The p parameter value is the destination where to send the
PoP to. This destination is typically a https: URL or a
http: URL, but it could be any type of URI, for example
mailto:. To keep btcpop: URIs short, users should
not make their p parameter unneccesarily long.
==== http: and https: URLs ====
Wallet implementations must support the http: and
https: schemes in which case POST method must be
used. The content type of the POST request must be set to
Content-Type: application/bitcoin-pop
Content-Transfer-Encoding: binary
== Examples ==
Send PoP for a transaction with label "video 42923" to>, using nonce 0x73 0xd5
0x1a 0xbb 0xd8 0x9c:
btcpop:?p= 42923
Send PoP through mail using
mailto:pop at, amount is 13370000
satoshis, nonce is 0x6f 0xe 0xfb 0x68 0x92 0xf9. Note that
the ? before subject is OK according to RFC3986,
since the query part starts from the first ?:
btcpop:?p=mailto:pop at;=xJdKmEbr&amount;=0.1337
Send PoP for transaction with id
to pizza place at>
using nonce 0xfc 0xcc 0x2c 0x35 0xf0 0xb8
== Reference implementation ==
[ poppoc on GitHub]
[ Mycelium fork on GitHub]
== References ==
[ BIP21]: URI
[[Proof of Payment BIP]]
[ RFC3986]: Uniform Resource Identifier
(URI): Generic Syntax
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
submitted by bitcoin-devlist-bot to bitcoin_devlist [link] [comments]

Wednesday, November 9, 2016. 0xf0 Binary Options Bytes can be printed in binary, octal, decimal, or hexadecimal base and they can be prefixed with "0x" (hex), "o" (octal), or "0b" (binary) base prefixes. The code point escape format represents each Unicode character as a unique code position. The most common code position escape sequences are backslash-u escape "\u" (for example, \u0061), uni-prefix escape "uni" (for example, uni0061 ... Thursday, October 20, 2016. 0xf0 In Binary Option Wednesday, 14 February 2018. 0xf0 binary options Binary System. The binary numeral system uses the number 2 as its base (radix). As a base-2 numeral system, it consists of only two numbers: 0 and 1. While it has been applied in ancient Egypt, China and India for different purposes, the binary system has become the language of electronics and computers in the modern world. This option is similar to the --only-section option except that it does not create a formatted file, it just dumps the contents as raw binary data, without applying any relocations. The option can be specified more than once. Minimal runnable example. .byte 0x12, 0x34, 0x56, 0x78 .text .byte 0x9A, 0xBC, 0xDE, 0xF0 Assemble: Saturday, 15 April 2017. 0xf0 Binary Options Saturday, 13 May 2017. 0xf0 In Binary Option The binary code output will show up in the second field automatically as you type. Optionally, you can Copy the output to clipboard, or Save it as a file on your device. Once you have your text converted to Binary code, you can also convert Binary to Hexadecimal (and do the opposite too: convert Hexadecimal to Binary). Binary Options Broker Hoewel binêre opsies is 'n relatief nuwe manier om handel te dryf in die aandelemark en ander finansiële markte, dit i...

[index] [13585] [13767] [9095] [17544] [7640] [3768] [18722] [3970] [16988] [9182]