1.javaè¯è¨å¯ä»¥åä»ä¹ï¼
2.Game and Watch 破解刷机教程
3.OpenCV:吊打高斯模糊的码分StackBlur加入
javaè¯è¨å¯ä»¥åä»ä¹ï¼
Javaä½ä¸ºç¼ç¨è¯è¨ä¸æå欢è¿çä¸é¨è¯è¨ï¼å ¶å°ä½æ¯ä¸å®¹å°è§çï¼è¦é®å®è½åä»ä¹ï¼å¦ä¸ï¼ä¸ãåç½ç«Javaå¯ä»¥ç¨æ¥åç½ç«ï¼å¾å¤å¤§åç½ç«é½æ¯ç¨Javaåçï¼æ¯å¦æ们çæçBç«ï¼æ以æ³å¦ä¹ Javaçåå¦è¿å¯ä»¥è´è´£ç½ç«æ¹é¢çå¶ä½ï¼è¿æ¹é¢çå²ä½ï¼ç½ç«å¼åï¼ä¹æ¯è¾å¤ï¼ä¸ç´ä»¥æ¥é½ç¸å½æµè¡ã
äºãåå®å软件å®åæ¯åºäºLinuxçæä½ç³»ç»ï¼å ¶ä¸æºä»£ç å°±æ¯Javaï¼å¸é¢ä¸ææçå®åææºé½æ¯ä¿®æ¹Javaè¿è¡çï¼å¯¹äºæ´å¤çå¼å人åæ¥è¯´ï¼ä»ä»¬æ´å¤çæ¶é´æ¯è±å¨å¼åAPPä¸é¢ãä½ é便æå¼ä¸ä¸ªAppåºç¨ï¼ä»ä»¬å°±æ¯ç¨Javaè¯è¨åçã
ä¸ãå游æçµèä¸ç大å¤æ°æ¸¸æä¹æ¯ç¨Javaæ¥å¼åçï¼æç»å ¸çå°±æ¯ãæçä¸çãï¼è¿æå½ä»ä¸çæå ·å½±ååç游æè±éèçï¼å鸡ä¹æ¯ç¨Javaåç
åãå软件å¾å¤ç¼ç¨è¯è¨é½æ¯å¯ä»¥æ¥å软件çï¼ä½Javaæ¯ç°å¨åºç¨æ广æ³çï¼æ¯å¦ï¼ä¼ä¸çº§åºç¨å¼åï¼è¿æOAãé®ç®±ãç©æµãå»çãæ票ãéèãèè¯ãç¿å±±çä¿¡æ¯æ¹é¢çç³»ç»ï¼Javaé½å ææ为éè¦çå°ä½ãç°å¨å½å çæçé¨çå°±æ¯ææºåºç¨ï¼å¦ä¹ Javaå»åææºåºç¨è¿æ¯æ¯è¾åé¦çã
äºãJavaæå¡å¨ç¨åºJavaå¨éèæå¡ä¸çåºç¨é常广æ³ï¼è®¸å¤è·¨å½æèµé¶è¡é½ç¨Javaæ¥ç¼ååå°ååå°ççµå交æç³»ç»ï¼ç»ç®å确认系ç»ï¼æ°æ®å¤ç项ç®ä»¥åå ¶ä»é¡¹ç®ã
大å¤æ°æ åµä¸ï¼Java被ç¨å¨æå¡å¨ç«¯å¼åï¼ä½å¤æ°æ²¡æä»»ä½å端ï¼å®ä»¬é常æ¯ä»ä¸ä¸ªæå¡å¨ï¼ä¸ä¸çº§ï¼æ¥æ¶æ°æ®ï¼å¤çåååå¦ä¸ä¸ªå¤çç³»ç»ï¼ä¸ä¸çº§å¤çï¼ã
å ãJava大æ°æ®ææ¯Hadoop以åå ¶ä»å¤§æ°æ®å¤çææ¯é½æ¯ç¨Javaæè å ¶ä»ï¼Java ä¾æ§è¿ææ½åå»å¨è¿ä¸ªå¸åºå æ®ä¸é¨åã
ç°å¨javaå·²ç»æ¸éå°äºæ们çæ´»ä¸çæ¹æ¹é¢é¢ï¼å¨å¼åé¢åï¼JAVAå¹è®æ为äºè®¸å¤äººçé¦éï¼JAVAåºç¨å¹¿æ³ï¼JAVAå¹è®å°±ä¸åæ¯è¯å¥½ï¼
Game and Watch 破解刷机教程
本教程适用于任天堂新版Game&Watch Mario/Zelda版本。进行刷机操作有风险,码分若机器在刷机过程中发生硬件损坏或机器无法正常使用,码分我们概不负责。码分
更新日期://
根据评论区用户@alexzhong 的码分建议,在下载编译固件所需的码分livegbs 源码 csdn下载gcc工具链时,请确保下载x版本的码分工具链,而非arm版本。码分否则,码分可能会在编译过程中遇到错误。码分
准备工具:
- 十字螺丝刀一把
- Y字螺丝刀一把
- stlink(推荐淘宝盗版stlink v2,码分价格在元以内)
- Game&Watch Zelda/Mario 版本 MXUFM2I-G(用于扩展内存大小,码分可选)
- 一台装有Ubuntu的码分电脑(或使用具有USB直通功能的虚拟机如VMware)
认识Game&Watch硬件:
- Game&Watch主控为stmh7b0vbt6,配备Mhz Cortex-M7内核与kb内部flash存储。码分
- 外部Flash采用mxu系列的码分1.8v spi nor flash,Zelda版本为4MB大小,Mario版本为1MB大小,通过OctoSpi接口连接主控。
- 电池与喇叭与Switch Joycon同款,larveral源码分析以降低成本。
- 主板供电为1.8v,debug接口的VDD也是1.8v,请勿接至3.3v供电,以防硬件烧毁。
硬件接口定义:
- Zelda版本:连接SWCLK, GND, SWDIO三根线。
- Mario版本:同样连接SWCLK, GND, SWDIO三根线,但需注意不要连接VDD。
更多硬件信息参考:github.com/ghidraninja/...
破解加密和备份原机固件:
- Game&Watch固件经过加密,尽管硬件开放性高,但固件本身仍需破解。
硬件准备:
- 断开电池连接,将SWDIO, SWCLK, GND线连接至stlink对应端口。
- 将stlink连接到Ubuntu系统(或VMware)。
- 使用Game&Watch的typec电源。
系统软件准备:
- 自行编译安装OpenOCD,由于版本和自带库问题,可能无法使用apt自动安装。electron源码混淆
- 确保git submodule更新完整,可能需要反复尝试。
- 下载并解压arm gnu toolchain。
备份和破解流程:
- 下载脚本仓库。
- 配置脚本环境。
- 运行脚本备份外部flash。
- 确保flash备份后,开始向flash中写入内容。
- 备份内部flash,确保机器处于蓝屏模式,完成所有文件备份。
- 机器在完成脚本4解锁和脚本5恢复后,变为解密状态,可刷入其他固件。
错误代码分析:
- 运行中可能出现各种问题,查看logs目录下的n_openocd.log以获取详细错误信息。
- 确保脚本有读取usb设备的权限,运行sudo命令以获得权限。网客源码
- 连接器与设备不兼容时,可尝试更新stlink v2的固件。
编译并刷入retro_go固件:
- Game&Watch无扩展存储,所有游戏rom均在固件内。
- 支持运行的游戏平台包括:GBC、GB、GBA、NES、SNES、N、MD、SMS、SCS-1、SFC、PCE、GG、PS、PSX、婚礼app源码SCE、PS2、PS3、PS4、Xbox、Xbox、XboxOne、Wii、WiiU、DS、3DS、PSVita、NDS、3DS、WiiU、Switch等。
- 准备游戏rom,确保容量不超过flash大小。
- 编译前,确保所有破解流程要求的软件已安装完毕。
- 下载固件源码,配置运行环境。
- 将游戏rom放入rom目录,编译固件。
- 编译完成后,自行刷机。
OpenCV:吊打高斯模糊的StackBlur加入
简化版 StackBlur API介绍
StackBlur 最近才加入到OpenCV中,将在下一个Release版本(4.7)中出现。C++用户可以尝试从源码编译OpenCV体验一下。Python 用户可以尝试用pip安装rolling版本的OpenCV:pip install opencv-python-rolling==4.6.0.。StackBlur是高斯模糊的近似,同样支持水平和垂直不对称的滤波。
为什么StackBlur的API中s小写?OpenCV中对API有严格控制,以作者名称开头的API可以大写(如Sobel、GaussianBlur),除此之外都小写字母开头。
StackBlur的使用建议和最后的实验结果如下:
建议当kernel size > 时,用stackBlur替换高斯模糊;当kernel size特别大时,OpenCV的所有模糊滤波器中只推荐stackBlur。
实验结果如下:测试环境为Mac M1,8核,image size [ x ],数据类型:CV_8U3C。测试方法为跑一千次,选取最小作为耗时,测试脚本在这里。结论为stackBlur不会随着kernel size增加而增加耗时。
StackBlur算法的坑是由老瓦在年初挖的。当时他给了我一个任务,尝试增加一个新滤波器stackblur。最后在OpenCV上调通并产生正确模糊结果,但卡在了速度优化上。最近在优化OpenCV的DNN模块,学会了一些并行加速的技巧,终于填上了这个坑。
本文主要介绍新加入OpenCV的模糊算法Stackblur,Stackblur是一种高斯模糊的快速近似,由Mario Klingemann发明。其计算耗时不会随着kernel size增大而增加,专为大kernel size的模糊滤波场景量身定制。本文从新加入OpenCV的cv::stackBlur API开始介绍,通过对比BoxBlur和高斯模糊,阐述Stackblur的优势。接着,详细介绍了Stackblur算法的原始论文及其计算过程,解释了Stack、StackOut和StackIn的运作方式。最后,总结了Stackblur的加速优化策略和实验结果,表明Stackblur在大kernel size下的速度优势。
StackBlur算法采用Queue和Stack计算方式,与传统滤波算法不同,其计算耗时不会随着kernel size的增大而增加,这得益于其独特的计算机制。Stackblur算法在2维图像上的实现,通过先在水平方向进行1维stackblur算法,然后在垂直方向进行1维stackblur算法,实现整体的模糊效果。同时,通过多线程并行加速、SIMD指令优化等策略,Stackblur算法在性能上实现了显著提升,甚至在某些情况下比BoxBlur更快。
StackBlur的计算优化包括使用乘法代替除法运算,以减少计算量。同时,针对不同数据格式和通道数,提供了一系列优化策略,以提高性能。实验结果显示,StackBlur在kernel size <= 5的情况下,速度接近高斯模糊,而在大kernel size下(如kernel size=),StackBlur的速度远超高斯模糊。
如果你对StackBlur的加速优化和性能测试感兴趣,欢迎在评论区留言讨论,分享建议和反馈。