Homebrew my Wii

十二月 14, 2009

家里的Wii闲置有好长一段时间了,一个方面是似乎近期一致没有空玩,另一方面则是害怕Wii变砖所以一直没有去尝试新游戏。不过最近听说出了新超级马里奥兄弟,还可以双打(一直想找Wii上好玩的双打游戏来着,之前双打还比较好玩的感觉就一个马里奥银河),终于忍不住决定去下载来玩玩了。
不过要玩这款游戏(的D版)还是颇为麻烦的,很多人报告说由于各种问题没法玩。看了一些文章之后,发现要想顺利玩上这游戏,必须得用所谓的软破解Wii。于是立即开始想办法研究到底怎么来做这个事情,结果网上看了一个小时也没看懂到底怎么样是一个最新的、最可靠的软破解的方法。很多方法里面列举的术语、工具也没出处,作用是什么也写的不清楚,看了也是一头雾水。但是又不甘心就这样放弃,于是花了整整一个下午来研究相关的名词解释,终于有点头绪,现把一些我看到的重要的链接以及概念归纳一下。
1) 软破解。所谓软破解就是homebrew,就是利用Wii的一些漏洞来执行不被任天堂所官方支持的应用程序的方法。常见到的Twilight Hack就是一种漏洞的利用,但是太麻烦,现在一般都不用。
1.1) http://wiibrew.org
2) dol和wad文件。这两种格式的文件都是Wii的程序文件,但是格式有所不同。
2.1) http://wiibrew.org/wiki/DOL
2.2) http://wiibrew.org/wiki/WAD
3) Wii上面有很多的channel,主菜单一共有四个屏幕,每个屏幕里面可以放4×3=12个channel。每个channel就是一个应用程序。Wii的系统里面自带了几个channel,最常用的就是Disc Channel,用来读游戏盘的那个。还有Mii Channel,用来画头像的那个。等等。
4) Homebrew channel。其实就是一个dol格式的程序,安装后会显示成一个channel。通过这个channel,又可以安装和加载其他的应用程序。所以它算是一个homebrew loader。
4.1) http://wiibrew.org/wiki/List_of_homebrew_loaders
5) USB Loader。最初的USB Loader是由一个叫waninkoko的人写的,他是个西班牙人,有个blog,但是由于是西班牙文的,所以Google似乎感觉根本搜不到(一般结果显示的都是英文结果)。在这个之后,有无数人根据这一USB Loader写了自己的衍生产品,比如USB Loader GX,Configurable USB Loader, USB Loader by Brisma等等。大多数作品都没有什么官方网站,也很少文档,看起来都很猥琐。我最后用的是Configurable USB Loader,原因就是它的文档写的还比较好,有一个有顺序的步骤能勉强看一看。
5.1) http://www.teknoconsolas.es/blogs/waninkoko
5.2) USB Loader列表,http://gbatemp.net/index.php?s=f6ac5855f839b5706ad8d6a40327a3be&showtopic=154465&pid=2446584&st=90&#entry2446584
5.3) gwht.wikidot.com/usb-loader,Configurable USB Loader的文档,需翻墙才能访问
6) Wii System Menu,我开始以为这个就是固化在Wii里的操作系统,说的什么3.1J,4.0什么的就算是操作系统的版本。结果最后发现不能算是这样。这个玩意似乎只是个图形界面,真正的操作系统叫IOS,有另外的一个版本号。
6.1) http://wiibrew.org/wiki/System_Menu
6.2) http://wiibrew.org/wiki/IOS
7) WBFS,专门用于Wii的游戏备份的文件系统。WBFS manager是用来管理这个文件系统的图形界面,可以把Wii的游戏的ISO镜像直接安装到WBFS文件系统的USB磁盘中。
7.1) wbfsmanager.codeplex.com
7.2) wbfs.codeplex.com

我最后的homebrew步骤:
1) 安装Homebrew channel。http://wiibrew.org/wiki/Homebrew_setup
2) 安装Configurable USB Loader。http://gwht.wikidot.com/usb-loader
3) 在Windows机器上安装WBFS Manager,把USB盘格式化为WBFS,然后把下载的游戏镜像安装到USB盘中。
4) 进入Homebrew channel,然后运行Configurable USB Loader,然后读取USB盘中的游戏。

Wii

基督山伯爵

十一月 4, 2009

刚读了基督山伯爵,很好看,一条主线当中穿插了很多小故事,悬念很足的,是我最喜欢的类型的书。

书是在iPhone上用Stanza看的,最后的好多章节都是在参加无聊的ISO培训期间看的。一共就十几个人参加的一个培训,早已预计到是一个很浪费生命的一次活动,本来想拿出笔记本电脑干活的,不过参加的人不多,大家都假装很认真在听的样子,我也就没好意思厚起脸皮。退而求其次的,偷偷的用iPhone看了一整天的书把后面的章节都看掉了。无聊期间,还把书中的人物关系画了一个图,用的图纸是ISO培训教材的大片空白处。书里的人物关系还是挺复杂的,外国人的人名看起来也不是很有感觉(尤其是翻译成中文之后的人名),画起图可以整理整理书中的头绪,越复杂觉得越有意思,把一页纸都给画满了。当时就觉得这个图是满有意思的一个图,想回去整理后电子化一下。

回来之后,又看了百度百科和中文的wikipedia温习了一下,上面写的还不少,都剧透光了,还好看书之前没看这些东西。然后就想到我的关系图了,我的kill time project可不能白费了心血。下载了freemind,准备用它来画这个图。开始看英文的wikipedia准备把所有的人名转换成为英文名然后放到我的图里面(因为中文名翻译出来实在差别太多,每个人的名字都有不同的叫法。像主人公,我看的版本叫做唐太斯,不过我自己觉得翻成丹迪斯好像更音近些)。wikipedia上面看着看着,突然发现原来已经有人整理过这个图了,而且写的好全面,瞬时间做这个事情的想法就化为乌有了。没有比较还好,一旦有了可参照的比较物而你又没有办法做的比它好时,你就会丧失去做一件事情的目标、心情以及动力。

今天刚刚安装好了Snow Leopard,晚上稍微使用了一下,从外观上和功能上并没有感到比Leopard有很大变化的地方,唯独一个例外--中文输入法。

在10.5里面自带的中文输入法,感觉很不好用,所以后来换用了FIT。不过FIT在2008年5月之后就没有更新了,用虽然也没有什么问题,但是总是不太爽,不过比系统自带的输入法还是要好了不少,所以也就一直将就着。再后来偶遇了SunPinyin,发现在Mac下有可用的版本,于是就切换到SunPinyin,用着也还行,但是有一个缺点--每次第一次启动的时候非常慢。免费的东西,不能要求太高,也忍了。

现在,在10.6中用自带的输入法打字,也不知道是因为和SunPinyin比较的原因,还是Snow Leopard确实在性能方面的提高,感觉输入法的召唤以及输入字符速度快了非常之多。原来10.5里面一直觉得很差劲的词组输入现在也有了很大的改善,命中率感觉好了不少,打字那真叫一个爽字。Snow Leopard里面据我所知和中文输入法相关的改进是有一个的,Apple在Snow Leopard里面还特别列出了这个号称是Innovative Chinese Character Input,其实就是使用Multi-Touch的触控板进行类似手写板的中文字符输入。再看关于Snow Leopard的review文章的时候,提到很多关于InputManager相关的应用程序在Snow Leopard上面的兼容性有些问题。所有这些,都让我们有理由相信,Snow Leopard中的输入法进行了重大的改变,从我的感觉,变得更快、更好了~

还有一点更赞的是,Snow Leopard里面的输入法切换终于不是问题了。在Leopard里面不同的程序之间的输入法状态是共享的,比方说,在Adium里面聊天的时候一般用中文,但是Firefox里面输入搜索或者输入网址的时候可能经常用英文,要是在一边聊天的时候一边上网,由于不同的应用程序之间共享了同一输入法状态,你必须要在每次切换应用的时候切换输入法,这是非常痛苦的一件事情。所以原来不得不借助InputSwitcher这一工具来减轻这一痛苦(不过有时会碰到无法切换出输入法的问题)。在Snow Leopard里面,这不是一个问题,因为操作系统中内置了选项可以让用户选择是否在不同的应用程序之间使用不同的输入源。通过”System Preferences” => “Language & Texts” => “Input Sources” => “Input Source Options”即可设置:

神奇的CAPTCHA

五月 1, 2009

原来看到过一些变态的CAPTCHA系统,比如这里。不过自己碰到过的并没有,最多也就是碰到过Google的CAPTCHA类似的识别一个图片里面的字母的CAPTCHA系统(不过这些系统好像都被各种方法攻破了)。

不过前段时间为了找些资料,注册了一个公务员考试的论坛,亲身体会到了一个这样BT的CAPTCHA。

神奇CAPTCHA

这个CAPTCHA的变态之处就在于使用的题目是公务员考试的题目,个人觉得这类考试很多题目都没有什么正确答案可言,这里的题目也不例外。我第一次答的时候就想了半天,然后填答案时没认真审题,答案还填错了。这个系统更傻X的地方在于这些题目人虽然没有办法一下想明白,但是每次注册这个论坛碰到的CAPTCHA的问题居然是一样的,也不知道他搞一个这个系统的作用是干嘛。

iPhone的冲动

四月 5, 2009

昨天去红星美凯龙买涂料,出来的时候,下着雨,门口碰到一个人,拿着个iPhone,在那晃来晃去的。我经过他身边的时候,看了一眼。他立刻就问我要不要来着,一听口音就知道是新疆人。最近刚好女朋友想买个“二号手机”,霎时间心动了一下。开价1200,随便还了一下变成700了。他直接说是从徐家汇偷来的,充电器什么的都没有,仔细看了下还有点划痕,但看起来功能都很正常。最后还是忍住了没买,一是不想买偷来的东西,一是感觉不完美。扭头去坐车去了,离开的时候他说500块就卖了。

后来回想了一下,发现其实那时是想给自己买一个iPhone的冲动,而不是想给女朋友买个二号手机来着。期待6月的WWDC了…

如果你买了Mac,那么很大的可能,你也买了Mighty Mouse

如果你买了Mighty Mouse,那么很大的可能,你发现你使用了一段时间之后,Mighty Mouse的滚轮向上或者向下很难滚动了。

我就碰到了这样的一个问题:我买了苹果的无线的Mighty Mouse,在使用了将近一年的时候,发现鼠标滚轮的向下功能越来越难使用,要很费劲才能够向下滚动。我考虑这是个机械问题而不是软件问题,想研究下怎么把它拆开来清洁一下,不过Mighty Mouse其实叫做Mighty Tortoise更合适,把后盖打开,卸下电池,还是无法拆开来,上面的一大块龟壳实在太紧密了。我没忍心下重手,又忍了一段时间。之后发现实在不能忍了,在网上搜了一下,发现这原来是个普遍问题,按照网上的方法进行了清理,其实很简单:

  1. 随便找一张白纸。我就从我的笔记本上面扯了一张下来。
  2. 把你的Mighty Mouse倒过来,就是把乌龟壳朝下。
  3. 手握倒过来的鼠标,把滚轮那部分贴上白纸,稍微用点力迅速旋转。转上几圈你就能发现白纸上有很多脏东西,那些就是罪魁祸首。等到没什么脏东西继续出来的时候就差不多了。
  4. That’s it. 你的鼠标应该已经恢复如初能够正常使用了。

注:

其实应该有不少其他的办法,比如用力吹,或者用压缩空气吹,或者倒过来用很大力气按滚轮并旋转等,不过我比较(脑袋中比较而已)了下感觉还是用上面的这个方法效果好并且简单,还能够清楚的看到清理的战果 :)

Apple每年都会有一些新的event举行,发布些新产品。夹不死同学的keynote总是很帅气,Apple甚至还用高清来发布keynote。不过美国时间和中国有差异,像我这么懒的人又不想熬夜,所以只能选择第二天早上起来看看新闻。看了新闻还不过瘾,还想直接看keynote视频。今天早上就是这么一个早上,Apple发布了最新的Macbook系列产品,新闻刷的一下就看完了,于是开始找keynote视频,不过似乎还没有人帖出来直接下载的链接,便自己研究了下,终于找到了方法如何直接下载苹果官方的keynote视频:

1) 使用任何下载工具[1]下载http://www.apple.com/podcasts/apple_keynotes/apple_keynotes.xml这一文件[2]

2) 打开这个文件,看看里面有没有最新的keynote链接[3]。在这个文件里面,每个special event都会有日期的,所以很容易就能够辨认出来哪个是你需要的。比如今天的,也就是2008年10月15日(美国是2008年10月14日夜)的在这个文件中显示如下:

<item>
<title>Apple Special Event, October 2008</title>
<itunes:author>Apple Inc.</itunes:author>
<description>Watch Apple CEO Steve Jobs reveal what’s new in Mac.</description>
<itunes:subtitle>Watch Apple CEO Steve Jobs reveal what’s new in Mac.</itunes:subtitle>
<itunes:summary>Watch Apple CEO Steve Jobs reveal what’s new in Mac.</itunes:summary>
<enclosure url=”http://movies.apple.com/datapub/us/podcasts/apple_keynotes/sj-keynote-20081014.m4v” length=”598065773″ type=”video/x-m4v”     />
<guid>sj-keynote-20081014</guid>
<pubDate>Tue, 14 Oct 2008 19:00:00 GMT</pubDate>
<itunes:explicit>no</itunes:explicit>
<itunes:duration>52:37</itunes:duration>
</item>

那个enclosure标签里面的链接就是直接的下载链接。

3)  随便你使用什么下载工具下载就是了,速度肯定比iTunes下载要快的多。

注:

[1] 比如我直接用curl这个命令行工具, curl  http://www.apple.com/podcasts/apple_keynotes/apple_keynotes.xml > keynotes.xml即可。或者用浏览器直接打开,现代的浏览器都可以看到视频的链接的(比如我用Firefox3就可以直接看到格式化好的feed,里面就会有视频的链接),如果不行,就看源代码就是了。

[2] 如果你要问我是怎么找到这个xml文件的,也很简单。Apple在iTunes专门有一个keynote的feed, 你用iTunes订阅了这个feed之后,在iTunes里面右键点击这个订阅,选择”Show Description”,也即查看描述,在描述页面里面有一个订阅的地址,就是这个xml文件。

[3] 如果你用iTunes订阅了这个feed,直接在iTunes里面就能够看到是不是有新的内容出现,不用每次都下载这个文件来看是不是有新的内容。

Ruby, Rails and MySQL with Leopard 10.5.2 and XCode 3.0
评论中有一个comment介绍了如何安装在安装了x86_64架构的mysql后,如何在Leopard上安装mysql gem。

前段时间看了一个TED上面的演讲,演讲人叫Robert J. Lang,是一位NASA的工程师。他有一个很有趣的研究,是关于将数学应用于日本的一种叫做Origami的折纸艺术(中国是不是也有,不知道谁早?)。通过应用高超的数学技巧,能够使用纸张折叠出异常复杂、逼真的三维的物体。在他在TED上的演讲中,就有不少例子,其中还有一个三菱的汽车广告,广告中的所有场景和物体(当然,除了三菱的汽车)都是使用这种方式构造出来的。他还有一个关于Origami的网站(似乎国内被GFW掉了,需要代理),里面也有很多例子。

同样的一张纸,通过不同的数学计算能够折叠出不同的形状,这不就像变形金刚的变形吗?可以想象一下,变形金刚的最初的形状其实是一大个二维平面状物体,通过应用类似的数学技巧,只要每次通过计算机计算折叠的方式,就可以转化成为三维的一个物体。也许不能像汽车飞机一样行动,但是在形状上模仿肯定是没有什么太大问题的,而且一个变形金刚应该能够通过不同的计算,变形成为多种不同的形状。如果做一个权衡,只要求变成一种形状,但是在特定的地方加一些特定的设备(如汽车的轮子或者飞机的推进器),是很有可能实现真正的变形金刚的变形功能的~更可能实现的,是基于这个做一个简单的变形玩具,肯定会卖疯的:-)

发布Ruby Gem

五月 21, 2008

RubyGems是一个用于Ruby的包管理工具,虽然并未包含在Ruby的发行版中,但是可以认为是事实上Ruby世界中标准的发布Ruby程序和库的工具,可以很方便的管理gem之间的依赖性。

如果你是在进行Open Source的Ruby程序开发,可以直接通过Rubyforge来发布gem。不过如果是自己的私有项目,可能就需要自己搭建一个Web server来进行gem的发布了。如果系统中已经安装了RubyGems的话,通过gem server (gem help server看看用法)就可以启动一个简单的gem发布的server。不过很可能的,你已经有一个Web Server在系统环境中了(如Apache Web Server),这个时候就通过以下的几个步骤可以完成把这个Web Server改造成为一个gem distribution server:

1) 建立一个发布目录,并设置Apache(或者其他的Web Server)使得这一目录能够通过Web访问。并在这一发布目录下建立一个名为gems的子目录。

比如我们在htdocs目录下建立一个目录dist,并建立一个gems子目录。

2) 拷贝打包好的gem到dist/gems目录中。

 如拷贝allmighty-1.0.gem到htdocs/dist/gems目录中。

3) 在命令行界面中,进入dist目录,运行“gem generate_index .”(请注意最后的一个点,表示当前目录)。这一命令会对gems子目录中的所有gem建立一个索引文件yaml,并存放在dist目录下,以便可以通过gem install命令安装时查找。

4) You’re done~

在这之后,你就可以通过”gem install allmighty –source http://yourhost.com/dist/”命令来安装你新发布的gem了。

5) 如果以后还有新的gem需要发布或者有新的版本的gem需要发布,请从步骤2)开始继续即可。

关于RubyGems,有一本很好的书,介绍了其使用、开发和发布等,有兴趣的话可以看看。

Practical Ruby Gems

下一页 »