之前给吃灰很久的PS2换上了816HD直读后,功能上算是进入了230 BIOS的9W完美状态,PS1游戏也算是可以完美支持了(目前没发现两次reset对功能有什么影响)。在重温一些PS1经典游戏时自然是少不了要存档的,于是翻出了封存15年的PS1记忆卡(当时是拿着记忆卡去游戏厅玩时用):

插到PS2上发现开机的浏览器中无法识别,于是百度了一下,发现关于这个问题的论坛讨论还真不少,简言之就是说PS2对PS1的记忆卡兼容性不好,对于一些组装卡、杂牌卡无法识别等(很明显我这个就是组装卡,所谓的“牛屎”廉价芯片),但也有网友提到说组装卡没问题反而原装卡不行的。另外还有提到Sony当年出过的带液晶屏的Pocket Station是100%没问题,看了一下TB上还真有不少,当然也有直接卖号称可以在PS2上正常使用的PS1原装记忆卡的。就在差点买个原装PS1记忆卡的时候,我惊讶的发现我这个有年头了的组装记忆卡,虽然在PS2的记忆卡管理界面中不能识别,但是在引导进PS1游戏后是竟然是可以识别的,会提示记忆卡已满,读取存档的时候会提示无可用存档等,于是,猜测这个记忆卡应该没坏,可能是遇到了所谓的“兼容问题”。
再后来偶然玩起汉化的日版生化3时,发现这个记忆卡中居然有一个当年的日版生化3存档,又测试了一下发现读取正常,玩了一会存个档,发现覆盖存入也正常,也就是说这个卡只是不能在PS2的记忆卡管理界面中识别(后来也试过uLaunchElf等工具,也无法识别),在PS2运行PS1游戏时功能时完全正常的!
Continue reading…
关于Cocos2d-x Lua Binding中ActionTimeline的setLastFrameCallFunc不可用问题
在使用Cocos Studio制作游戏UI等元素时,一定会使用到“动画”功能:

这种“动画”反应到代码中会被作为Cocos2d-x的ActionTimeline处理,而在应用过程中免不了要进行一些时间轴上的事件监测处理,其中最常用的莫过于动画结束时的侦听。
简单看下源码可以找到很明显的回调设置函数:
/** Set ActionTimeline's frame event callback function */
void setFrameEventCallFunc(std::function<void(Frame *)> listener);
void clearFrameEventCallFunc();
/** Last frame callback will call when arriving last frame */
void setLastFrameCallFunc(std::function<void()> listener);
void clearLastFrameCallFunc();
上面的setFrameEventCallFunc是用来配合编辑器中设置的帧事件用的,可以用来实现比如UI打开到指定位置时播放特定音效等效果,下面的setLastFrameCallFunc则是刚刚提到的更为常用的动画播放结束后的回调函数!
不过,很遗憾,在不使用原生方式开发而使用lua脚本作为主要编程语言时,发现setLastFrameCallFunc的Lua Binding代码并没有实现实际功能(最新3.7版本也是):
Continue reading…
ps2蓝三角usb转换器驱动

驱动1:http://www.xun6.com/file/19373fa44/TWIN+PS+TO+PC+CONVERTER.rar.html
驱动2:http://www.xun6.net/file/1968c0f45/hama.rar.html
随我买的包装带的驱动是第2个,不过第1个好像也能正常使用。
xun6已跪,2号驱动新链接:https://home.k-res.net/ps2hama.rar
从Win8.1升级到Win10后WOL网络唤醒失效的解决方法
之前的Win10各种预览版泄漏版的,虽然也有下过的但一直没来得及安装,最近Win10正式版发布了,而且符合条件的Win7、Win8、Win8.1等都收到了更新推送,终于还是强迫症发作,点了下载更新到Win10,更新过程很顺利,但是还没来得及体验就发现了问题:升级之前Win8.1下没问题的WOL网络唤醒功能不能用了!
一度怀疑是路由器上的唤醒设置出错了,但转念一想最近也没修改过设置…后来在关掉Win10后仔细观察了下路由器上的LAN口提示灯发现:原本会有一个低速待机状态的连接提示现在没有了!本来开机的时候是千兆连接的提示灯,关机时是100/10速度连接的提示灯,也就是网卡并没有完全关闭,这是受到唤醒广播包时是可以顺利开机的,而现在连接提示灯是完全熄灭的!
于是开始找原因,发现果然有很多类似案例,升级Win10后WOL不能用了,但大部分是说从Win7升级后出现的,解决方法有关闭“快速启动”、睡眠关机等等,想想我又不是从Win7升级的,解释之前那些解决方法的原因是说Win8以后关机状态的电源模式从S4改成了S5什么的(没记错的话),所以影响了WOL功能。但我升级前在Win8.1下WOL是完全正常的,也没改过什么快速启动等等的设置。最后在远景论坛上看到有人说是Win10更新的“最新驱动”问题,恍然大悟,看了下设备管理器里网卡驱动被更新成了15年4月的一个版本,于是找回主板原配驱动,更新了回去:

再次关机,LAN指示灯恢复了低速待机状态,尝试WOL唤醒成功!
主机IP遭到攻击,导致本乡下小博下午出现无法访问的情况
很久没写日志分类的内容了…今天下午(大概17:00左右开始)发现我的小博无法访问了,赶忙联系主机提供商客服,被告知是所在IP遭到攻击,被屏蔽掉了…不知是不是邻居得罪人了,这也算是城门失火殃及池鱼啊。好在客服的处理速度还算快,更换了IP更新了DNS马上又可以访问了,希望不要对我那可怜的搜索引擎排名造成什么影响…
使用Xcode 7 beta免费真机调试iOS应用程序
今天凌晨的WWDC15虽然没有熬夜守候吧,但也还是早起第一时间翻看了twitter的相关标签,发现比较实惠的一点就是新的Xcode 7可以在不加入每年99刀的Apple Developer Program的情况下真机调试应用了(不知道是不是迫于Android那“粗犷”的真机调试方式的压力,呵呵),而且Apple原来的三种平台开发账号合而为一了,不再分什么iOS的、OSX的、Safari的了,其它的什么iOS9、OSX 10.11的也都没细看,赶紧去下载了beta版:Version 7.0 beta (7A120f)来体验一下,当然,免费只是让你自己能随便玩玩,要想发布到Apple Store的话,保护费还是要交的。其实,从前几个版本开始、Apple就已经在简化Xcode真机开发时的什么certificate、provisioning profile之类的创建、修改操作了,后来又把test flight给收了,又改进了测试版本打包发布的流程,想想当年狂看文档研究Apple的Developer后台、iTC后台、certificate request、keychain什么的,真是不禁感叹,为了表示一下对当年吭哧的敬意,这里记录下Xcode 7如何免费真机调试iOS应用的简单方式:
Continue reading…
Perforce(P4)服务器设置Unicode模式解决中文文件、文件夹乱码问题
问题出现时的环境是这样的:p4d位于Linux服务器中,P4ROOT通过默认方式创建,并没有开启Unicode。客户端有Windows的P4V和Mac的P4V,此时用P4Admin查看服务器状态时可以看到Server Info中的Unicode support:是disabled的,这时在Windows端建立workspace并添加中文的文件、文件夹,Mark for add再Submit到服务器depot后,在Mac端的P4V直接查看Depot上的文件夹和文件时就会看到中文都变成了乱码,Get下来后也是会像%20这样的方式保存成文件名、文件夹名。检查后发现在服务器端没有开启Unicode模式时,客户端P4V中Connections菜单项内的Choose Character Encoding…是置灰的,而Perferences中Display内的Set encoding for all connections to:的选项在Windows上是CP936 GBK,Mac上是UTF-8,正是由于这个客户端非Unicode编码差异导致了Win上上传的中文在Mac下显示为乱码的问题。另外这时如果强制改变P4CHARSET环境变量,或通过命令行p4 set的方式改变连接的字符编码为UTF-8,再打开连接时会得到:“Unicode clients require a unicode enabled server”这样的错误提示!解决方法就是改变p4d服务器端的编码设置为Unicode模式:
Continue reading…
Cocos2d-x 3.6中的registerScriptKeypadHandler在Android真机上无法响应back键的问题
Cocos2d-x 3.6中使用Lua脚本作为主要开发语言,基于新的mvc框架,根据查到的响应安卓真机设备的返回按键back的方法,registerScriptKeypadHandler为Node下的注册按键事件侦听方法,新的框架中对此还进行了一次封装,在LayerEx.lua中的onKeypad实现,完成后的按键侦听代码如下:
function MyView:onKeypad(event)
if event == "backClicked" then
-- back clicked!
end
end
-- ...
function MyView:onCreate()
display.newLayer()
:onTouch(handler(self, self.onTouch))
:onKeypad(handler(self, self.onKeypad))
:addTo(self)
end
在Windows模拟器上测试时可以看到键盘上的任意键按下时都会触发这个回调函数,但是参数均为nil,读了一下源码发现在CCLuaEngine.cpp中的回调原生代码实现如下:
Continue reading…
OpenWRT软件包Makefile的recursive dependency问题
试验MT7620A路由器OpenWRT系统软件开发时遇到了如下的问题:
[admin@localhost OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2]$ make
Collecting package info: done
tmp/.config-package.in:7:error: recursive dependency detected!
tmp/.config-package.in:7: symbol PACKAGE_helloworld depends on PACKAGE_libpthread
Config-build.in:1745: symbol PACKAGE_libpthread is selected by PACKAGE_helloworld
#
# configuration written to .config
#
make[1] world
make[2] package/compile
make[3] -C package/helloworld compile
make[2] package/index
看意思是引用的libpthread导致了递归依赖问题,检查hellowolrd中的Makefile,Depends属性是这样设置的:
Continue reading…
Cocos创建Lua项目使用自定义runtime脚本没有调试输出的解决方法
使用Cocos集成开发环境配合Cocos Code IDE 1.2.0可以很方便的创建cocos2d-x lua binding项目并支持脚本语言的智能感知及调试。同时在添加native代码支持后还可以在一定程度上方便的进行原生代码功能扩展,如植入一些第三方库,扩展lua脚本功能等。但是在使用Cocos创建项目时,发现一个非常奇怪的问题,就是如果不使用自带的PrebuiltRuntime:C:\Program Files (x86)\Cocos\cocos-simulator-bin\win32\Simulator.exe 来作为主执行程序调试(Windows平台,其他平台未测试),所有lua脚本中的print、printf等调试输出代码都不会在控制台内输出任何内容!这样就丧失了添加native代码后自定义runtime执行程序的能力。
Continue reading…