2013年8月30日星期五

iFive Mini2, again

机器刚拿回来的时候升级过一次系统,本打算以后就这么着的,反正国内厂商所谓升级也就那么一回事。可是半年过去,重力感应经常无故失效,系统反应越来越慢,并且各种双击,于是我终于烦了。再升一次吧,最后一次,好不好就这样了。

固件以刷机程序去第五元素官方论坛,当前迷你兔的最新版本固件是v1.35。安装刷机程序后,关机,按住menu键插入机器装驱动,然后打开刷机程序刷固件。整个过程需要将机 器平放,因为第一次开机的时候会校对重力感应和陀螺仪。

一切搞定之后,我震惊了,怎么会那么快?时间隔太久所以刚买回来的时候是什么感觉我不记得了,可是跟刷机之前比,流畅度真是天壤之别。我不相信这是新固件带来的提升,难道安卓跟当年的XP一样,三不五时就要重装一下系统才能保证速度?好吧,不管怎么样,这也算是意外之喜就是了。

如果觉得有需要的话,可以顺便把recovery也刷上。还是关机按住menu并插入机器,pc端RKAndroidTool.exe,只选中recovery然后选执行就成。稍微需要提醒的是,刷上recovery之后设备就变成筛子了,虽然安卓系统本身就是隐私筛子。

接下来是ADB驱动的问题。就像我以前吐槽过的那样,厂家还是没有提供,所以如果你没备份也不会自己改的话,除了装豌豆荚也没别的办法。

迷你兔算是自带root,adb shell进去就有root权限,可我没找到在设备上完成root过程的法子,所以还是要手动来做。先下载root.zip,再执行以下操作。

adb shell mount -o remount,rw /system
adb shell busybox mkdir /mnt/sdcard/@_bak
adb shell busybox cp /system/xbin/su /mnt/sdcard/@_bak/
adb push system\xbin\su /system/xbin/su
adb shell chmod 6755 /system/xbin/su
adb push system\app\SuperSUPro.apk /system/app/_SuperSUPro.apk
adb shell chmod 644 /system/app/_SuperSUPro.apk

接下来装busybox,放到/vendor/bin下。同时因为没passwd和group,shell看起来会很难看,所以我根据android_filesystem_config.h弄了个出来,一并放进去。

adb shell mkdir /vendor/bin
wget http://www.busybox.net/downloads/binaries/latest/busybox-armv7l
adb push busybox-armv7l /vendor/bin/busybox
adb shell chmod 755 /vendor/bin/busybox

adb shell "echo nameserver 8.8.8.8 > /etc/resolv.conf"
adb shell "echo nameserver 8.8.4.4 >> /etc/resolv.conf"
adb shell chmod 644 /etc/resolv.conf

adb push passwd /etc/
adb push group /etc/
adb shell chmod 644 /etc/passwd
adb shell chmod 644 /etc/group

adb shell /vendor/bin/busybox --install -s /vendor/bin/
adb shell busybox rm /vendor/bin/su
adb shell busybox rm /vendor/bin/sh

字体我还是用了冬青黑,不过我换的是第二版,因为不想把英文字体也换了,而第二版笔划粗细跟Roboto比较搭。

adb shell cp /system/fonts/DroidSansFallback.ttf /mnt/sdcard/@_bak/
adb push DroidSansFallback.ttf /system/fonts/DroidSansFallback.ttf
adb push DroidSansFallback-Bold.ttf /system/fonts/DroidSansFallback-Bold.ttf
adb shell chmod 644 /system/fonts/DroidSansFallback.ttf
adb shell chmod 644 /system/fonts/DroidSansFallback-Bold.ttf

adb shell "sed -i '/DroidSansFallback.ttf<\/file>/a DroidSansFallback-Bold.ttf' /etc/fallback_fonts.xml"
adb shell "sed -i '/DroidSansFallback.ttf<\/file>/a DroidSansFallback-Bold.ttf' /etc/fallback_fonts-ja.xml"

尽可能不装app,就这么用了几天以后,系统流畅度方面仍然很理想。看来安卓系统的正确使用方法是,不常用的app就上钛备份,随用随卸载…

毫无疑问,我肯定不是果粉,可是跟iOS相比,我真是越来越不喜欢安卓了。性能方面不去说,用户控制app行为的手段实在太有限,隐私问题也好,电量也好,指望app开发商自律,做梦吧。

2013年8月13日星期二

Playstation 2

前些日子,因为某些事故,我弄丢了很多的过去。今天打扫卫生的时候,看到那台又是有日子没碰了的PS2,我突然发现有很多事情我已经想不起来了。趁着还有些许印象,赶紧记下来吧,并非为了过去,也不是为了将来。

PS2常见的视频输出线有三种,分别是AV、S端子和色差。个人觉得S端子最好,因为AV输出太模糊,如uLaunchELF一类的程序连文字都看不清楚;而色差则有各种各样的兼容性问题,如Modbo 3.0看不见开机Logo,画面无法全屏等等。不过现在的电视都没有S端子了,实在没办法也只能将就用色差。

虽然PS2的自制程序也有很多,不过受限于机能等各种问题,唯一实际的还是免光盘打游戏。通行的实现方法有两个,一是Free McBoot,二是如Modbo一类可以直接启动自制程序的直读IC。

Free McBoot可以免改机免直读,通过一张特制的记忆卡加载各种自制程序。不过没装IC的机器即使有FMCB,仍然需要ESR一类的程序辅助,不然就D版不能。我这台机器装了Modbo 3.0(最早实现启动记忆卡上自制程序功能的IC是MATRIX,很贵,Modbo只是MATRIX的Clone而已),用起来还是比FMCB方便些,所以我主要用的是IC提供的功能。

为了以防万一,我也做了张FMCB的记忆卡备用。下载Free McBoot v1.8 Noobie Package直接下载文件),解压后将Noobie_Package/INSTALL下的四个ELF删掉,将LbFn放入并改名为BOOT.ELF,将uLaunchELF放入并改名为BOOT2.ELF,然后将Noobie_Package目录下的所有文件复制到SD卡根目录,在PS2端以任意方法加载FREE_MCBOOT.ELF,格式化记忆卡并选择Multi-Version install进行安装即可。

这样制作出来的记忆卡大约会用掉3.2MB空间。在没有安装直读的机器上不放光盘启动后会看见FMCB的菜单,选择uLaunchELF即可启动LbFn(菜单可以添加和修改,我懒得弄了)。而在装了Modbo并且设置为记忆卡启动的机器上,会直接载入LbFn(按住R2并启动则会加载uLaunchELF)。

uLE和LbFn都是PS2上的文件管理器。从功能角度上说,uLE要强大很多,但我曾经遇到过因硬件故障导致uLE启动不能而LbFn却可用的情况,再加上默认设置下LbFn的显示效果更清晰,所以FMCB记忆卡里的默认文件管理器我选择了LbFn。

(uLE内置了FTP服务器的功能,不过我测试下来发现又慢又不稳定,基本不可用。想在uLE里直接看到存档游戏名,需要额外的字体ELISA100.FNT,放入记忆卡内的/SYS-CONF/即可。顺便佩服一下日本人,8*16的字体都有。)

安装了Modbo的机器,启动时按住手柄上不同的按键可以实现各种不一样的功能,如△+○可进入IC的功能设置菜单。该菜单中最重要的一项是BOOT MODE,各选项的含义分别是:

  • AUTO:启动Sony Browser。(显示Matrix Logo时仍然可以通过快捷键加载其他程序。)
  • FAST:疑似直接加载PS2游戏光盘的意思。
  • INFMAN:启动Infinity Manager,盗版的Modbo似乎是不能用。
  • DEV1:加载记忆卡上的自制程序,即mc0:/BOOT/BOOT.ELF。
  • DEV2:加载硬盘上的的自制程序,即hdd0:/__boot/boot.elf。
  • DVDV:播放DVD光盘,或是加载PS1游戏。

另外还有几个常用的启动快捷键:

  • R1:mc0:/BOOT/BOOT.ELF
  • R2:mc0:/BOOT/BOOT2.ELF
  • L1:mc0:/BOOT/BOOT3.ELF
  • L2:hdd0:/__boot/boot.elf
  • SELECT:屏蔽IC并开机
  • ○:同DVDV
  • ╳:同AUTO
  • △:同INFMAN

可用于加载光盘镜像的自制程序不少,比如曾经的HD Loader和HD Advcane,不过后期大部分用的都是Open PS2 Loader。OPL当前的版本是v0.9.1,似乎已经相当稳定了。但也有人说新版本有些游戏无法运行,旧版的r547反而可以,如零系列,我倒是没去求证过。

PS2免光盘加载游戏镜像的方式有很多,比如添加内置硬盘,比如USB,比如Samba。过去USB方式曾一度很受关注,但因为PS2的USB接口只是v1.1标准,速度太慢导致可用性比较差(据说后来有改善,可我没试过)。至于加硬盘的方式,3W和5W系的厚机得天独厚,因为直接就能买到可装硬盘的网卡(曾经各种降价没人买,曾经涨得各种没道理),而薄机则只有7W最早的型号(7000X)可以通过从主板上飞线接出IDE接口的方式来做,相当的麻烦。

我的是3W厚机,自然是用内置硬盘的方式,一块从朋友那里搞来的日立160G。在把硬盘装进PS2之前,首先需要用WinHIIP将其格式化为HDL特有的格式。另外我还把OPL放在了硬盘的/__boot/boot.elf,这样Modbo设置为DEV2启动时,就可以直接加载OPL了。

趁着还有机会,多灌几个游戏进去吧,一旦把硬盘装进PS2最好就不要再拆了。因为拆装硬盘不但很容易损坏娇贵的PS2网卡,WinHIIP这个程序的代码质量也没有很好,PS2端操作过的硬盘再用WinHIIP进行读写很容易造成数据丢失。

OPL有Apps Loader,可用于加载其他ELF程序。使用方面有些麻烦,需要在记忆卡内创建一个/OPL/conf_apps.cfg,比如我的:

uLaunchELF v4.42d=mc0:/BOOT/BOOT.ELF
LbFn v0.70.18=mc0:/BOOT/BOOT2.ELF

如果想把ELF放在硬盘里,则需要将文件保存在+OPL分区。创建该分区可以用uLE的HDDManager,分区名写OPL,大小我给了512M。+OPL分区会被OPL加载为pfs0,所以conf_apps.cfg中就要写类似这样:Sega Mega Drive Emulator=pfs0:/APPS/PGEN.ELF

OPL支持VMC,即虚拟记忆卡功能。在需要使用该功能的游戏上按△,VMC Slot 2项,选Use Generic,not set就会变成generic_1,进入该项选32M并格式化,硬盘里就会出现一个文件/+OPL/VMC/generic_1.bin,这就是虚拟记忆卡文件了。uLE可以mount将该文件,然后就可以往里面复制旧存档了。

很多自制程序都需要在记忆卡里保存配置文件,所以slot1里的物理记忆卡我没有用来保存游戏存档,存档放VMC里就好。

OPL支持IGP(In-Game Reset?),游戏中按L1+L2+R1+R2+Select+Start就是软复位,L1+L2+L3+R1+R2+R3则是关闭电源。软复位后执行哪个ELF可以在设置里面改,我指向了mc0:/BOOT/BOOT.ELF,也就是uLE,默认是Sony Browser。

封面文件PS2上没法自动下载,需要自己下载以后放到/+OPL/ART/目录下,这里可以下到一大堆,不过也没有很齐就是。想要补的话,这里也可以找到一些。

用网线将ISO传入PS2可以用HDL Server和hdl_dumb。OPL内置了HDL Server,可很奇葩的是,所有人都说去设置里选Start HDL Server,却没人提怎么样让这个选项出现。最后还是我把源码抓回来看过才知道,需要加载硬盘,并且开启了删除和改名游戏的选项才行。

这种方式需要非比寻常的耐心,我这里从PC灌入游戏的速度大概只有不到1.3MBps,也就是1GB大概需要13分钟的样子。好在PS2功耗一般只有15W左右,加上一块硬盘也顶多25W,不至于太心疼电费。

PS1游戏方面,基本就不要指望了。PSXLAUNCHER需要5W及以后的机型,我的机器用不了。PS2PSXe我测试了月下,画面各种破碎。至于传说中的Sony官方模拟器POPS-00001,模拟月下只能用AV输出,并且CG黑屏,并且人物开始对话就死在那里了。

2013年8月1日星期四

Wii

前几天我弟告诉我说,他那里有个Wii放着积灰,于是这台机器就落到了我的手里,整个经过一如我手里那台39001一样。或许,如果把认识的人全问一个遍,搞不好我可以把三红姬和三公主也给收了?

首先做功课。Wii的整个系统大致包括三个部分:IOS、SystemMenu和频道。

IOS有点像驱动程序,每个IOS都提供了各自不同的功能。IOS有编号,范围在1至255之间。每个编号的IOS还有各自的不同版本,如IOS36-1042,1042即IOS36的其中一个版本。

除了官方的IOS外,还有custom IOS(cIOS),即在官方IOS基础上改出来的IOS,用于提供官方IOS不具备的功能。cIOS通常都安装在很靠后的slot,如cIOS36一般装在IOS236。cIOS装在哪个slot也并不是固定的,如d2x v10包含了cIOS37、38、53、55-58,安装位置可以自由选择。

SystemMenu是Wii的用户界面,平常说的3.2J、4.1U,指的就是SystemMenu的版本。虽然看起来SystemMenu干的是操作系统的活,但SystemMenu和各个频道以及游戏是在Wii系统中是平级关系。加载某个游戏后SystemMenu即退出,游戏并不是运行在SystemMenu之上。

频道即为应用程序。Mii、Shop等等和光盘游戏一样,都是独立的应用程序。不同的地方无非是频道安装在内置存储空间内而已。

Wii破解的大致过程就是通过系统漏洞,加载SD卡上的第三方程序将The Homebrew Channel(HBC)安装至SystemMenu。以后就可以通过HBC直接加载SD卡上的各种程序了。

我弟这个机器是日版,易碎标签上写着08年4月12日。两个手柄的电池都已经放到没电了,好在没漏液。IC应该装过,不过种类未知。220V转110V变压器还自带风扇那种,并且动静超级大。(用了几个小时后实在受不了,那绝对是可以让人神经衰弱的分贝,减掉风扇电源线了事。)

开机进入Wii本体设定,显示:You tried to access the address marc:JP/JP/JPN/index01.html, which is currently unavailable.

网上搜了一下,这算是半砖了,据说这是日版机放了美版游戏进去并且选择升级SystemMenu的结果。一般的方法是找张附带更高版本SystemMenu的光盘进行修复,不过我这里没有刻录机,于是打算尝试直接安装HBC。

进不了本地设置所以看不到当前SystemMenu的版本,不过08年买的机器,SystemMenu版本应该不会很新,于是下了适用于3.0至4.1的bannerbomb v1HackMii Installer v1.2

询问是否加载boot.elf的提示看见了,HackMii的THIS SOFTWARE MUST NOT BE SOLD的提示也看见了,然后就没有然后了,Press 1 to continue的提示不出现,卡在这里不动了。

既然能够加载boot.elf,那bannerbomb的部分应该是正常的。在网上搜了一下,虽然也有人遇到过类似问题,但情况都不大一样。抱着试试看的心态,先下了旧版的HackMii v1.0,居·然·安·装·成·功·了,无语…

因为机器够老,可以把BootMii装在boot2,也算福利吧?虽然全部搞好了之后应该还需要再备份一次,不过为了以防万一,还是先按图索骥备份NAND。出厂坏块有12个,也不知道算不算多。顺便在BootMii看了看版本,3.1U,果然刷错了。

然后是修复半砖。爬文的结果,似乎是用ARC把Region改对了再刷一次就好,不过为了方便,我还是找了个别人弄好的修复包。我没有刷IOS,而是直接上ARC。过程很顺利,重启以后本体设置恢复正常,3.2J。

SystemMenu好升不好降,所以暂时打算留在3.2J。日文各种看不懂,所以装了个汉化版的SystemMenu

因为曾经跨区升级,所以新闻和天气都双频(Double Channel)了。找了个Duplicate Channel Remover,可这东西居然把U版和J版的东西一起删了,于是频道列表里弄出两个白色图标,一点进去就说要升级。想要的话倒是装回来就可以,不过想想没什么用,暂时A+B拖到后面去了。

IOS方面,除了cIOS36(IOS236)和BootMii装的IOS254,d2x-v10-beta52我只装了cIOS37(IOS249,据说对游戏兼容性比较好),以后有需求再说吧。

读取硬盘游戏方面,据说CFG USB Loader可控性要好些。用起来倒没觉得有什么问题,只是不过这玩意儿默认的背景音实在鬼畜,中文字体也很难看,搞了个微软雅黑的弄进去还是难看。

Priiloader,据说主要是防砖用的,另外还可以装些Hack,实现比如开机跳过健康警告,直接进HBC等功能。Priiloader v0.7默认设置下hacks.ini放SD卡根目录无效,需要放在:/apps/priiloader/hacks_hash.ini

WiiMod号称可以替代MMM等等等程序,确实还不错,就是程序略有点问题,很容易按键双击。另外WiiMod的Wad管理功能不是很完整,Wad Manager仍然是需要的。

WiiXplorer是一个文件管理器,而且有FTP服务器的功能,SD卡不用拔来拔去的了。该程序读取USB设备需要IOS58或者IOS202,我改成IOS249也一样可以用。只不过从无线网卡走FTP上传数据,速度大概只有700KB/S的样子,太慢了一点,没太多实用价值。

目前差不多就是这样了。试了试《纸片马里奥》和《Wii Sports》,感觉都还不错。NGC游戏也有几个感兴趣的,只是因为没手柄所以没法试。另外官方标配只有AV线,也想看看换上分量是什么效果,只希望别跟二公主一样满屏狗牙就是了。

Update 2013-08-07

DOP-Mii可用于直接在Wii上从NUS下载官方IOS,顺便还可以打补丁。比起一股脑装一堆东西进去,还是自己控制装些什么比较好。

由于我之前下的CFG USB Loader版本太老,并且字体很难看,并且WiiXplorer的FTP服务器不是很稳定导致修改配置文件还得拔SD卡,所以我还是找了个USB Loader GX来试了试。相比CFG UL,ULGX界面更好看,字体更好看,自动下载图标,而且所有设置都有GUI可用,只要稳定性和兼容性没有太大的问题,我大概是不会换回CFG UL了。

ULGX官网上的版本同样很老,下载此处的r1215自己组合一个出来好了。装上Forwarder(需要IOS58)以后,可以直接从游戏中退出到ULGX。不过这个设置是全局的,从其他Homebrew中退出也会加载ULGX,而ULGX加载又挺慢的,所以这个功能只有在机器折腾完了以后才比较有意义。

MIOS是一种特殊的IOS,NGC硬件兼容层IOS?总之,是跟加载NGC游戏相关的IOS。DIOS-MIOS配合较新版本的ULGX,即可加载USB设备上的NGC游戏(DM Lite用来加载SD卡上的游戏)。与其他IOS不同,一台Wii只能装一个MIOS,所以安装DIOS-MIOS以后就会把官方的覆盖掉,想要恢复的话仍然是从NUS下了装回去。

试了试NGC的斑鸠,加载是没问题,可还是因为没手柄所以没法玩。目前淘宝上几乎找不到NGC的新手柄卖了,那些号称全新的也无非是从二手里挑出成色好的来卖,价钱还要小100。再加上记忆卡,想在Wii上玩NGC游戏投入也不是很低,兼容性还未必好,不太值得折腾,真想玩上模拟器好了。

Update 2013-08-09

新的南孚5号电池电压大约是1.6V左右,用到手柄会断开信号是1.15V的样子。很久之前买的劲霸1800mAH,翻出来的时候电压只剩下0.8V左右,充电12个小时后是1.39V,装进手柄依然显示四格满电,就是重量比南孚重了很多,有些压手,而且用不了太久就没电了…

新闻和天气频道被老任给砍掉了,所以也被我砍掉了。Shop更新到了v21,NUSD和DOP-Mii都下不回来,只有WiiDownloader有。另外这个版本需要IOS56 v5662,这倒是可以用DOP-Mii来装。

Update 2014-01-12

之前用易驱线接了个3.5寸的硬盘用了一段时间,不过老这么吊着也不是事儿,就又买了个IT-CEO的USB 3.0硬盘盒(NS1066芯片)装了块120G的日立硬盘,谁知道却出问题了。

USB Loader GX加载时卡在Initialize USB Device,进去之后提示找不到USB设备。同一块硬盘,WiiXplorer用IOS58可以正常加载。将ULGX升级到v3.0 r1218,换用IOS58,又卡在Reinitialize devices。

用d2x-cios-installer,将cIOS58安装至IOS250,使用250版的ULGX v3.0 r1218,成功加载硬盘,进入游戏也正常。

另外,在淘宝上买了一只Wii Pro组装手柄。价钱倒是不贵,35,只是插上Remote后HBC和ULGX都有崩溃的情况(Exception (DSI) occurred!),进MH3也一样死机。

再换上易驱线,cIOS50加载程序,cIOS37加载游戏,接鸡腿进MH3后换手柄,似乎一切正常。看来很有可能又是NS1066的问题?

顺便整理了一下cIOS。BootMii的IOS254保留,IOS249删除,留d2x的cIOS36(IOS236)、cIOS37(IOS237)、cIOS38(IOS238)、cIOS50(IOS250)。