为python编写的wii库

Wii.p的Python项目详细描述


来自efnet上wii.py的wii.py是一个gpl许可的wii库,用python编写。它为wii上的许多文件类型和文件提供编辑器和类,特别是横幅中的文件。它是为了取代Marcan编写的PyWii,PyWii没有发布也永远不会发布,但后来在PyWii没有覆盖的一些领域进行了扩展,也没有完成PyWii支持的其他领域(如Wii光盘编辑)。

派生自:http://wiibrew.org/wiki/Wii.py

安装

pip install Wii.py

功能

  • u8档案的加载和轻松编辑
  • TMD和票证的简单易用类,具有从文件加载和保存到文件的方法
  • 用于保存标题信息的简单标题对象
    • 可以打包成一团
    • 可从新加坡国立大学下载
    • 可以解压到目录结构中
  • 将图像转换为PNG和TPL
  • 转换WAV声音BNS声音(用于横幅)
  • 添加IMET和IMD5标题
  • 从Wii光盘加载和提取文件
  • 创建一个假的“nand”,您可以使用libogc中的python版本的es和isfs进行修改
  • 解压缩LZ77压缩文件
  • 使用这些文件类型:
    • 位置日期
    • 共因失效
    • iplsave.bin
    • uid.sys
    • content.map
    • config.dat(网络配置)
    • setting.txt
    • 保存游戏

依赖关系

  • 密码
  • pil(python图像库)
  • wxpython(可选)如果要使用tpl对象的toscreen()方法

pycrypto和pil(枕头叉)是pypi依赖关系的一部分。如果您不做gui工作,则不需要wxpython。

用法

不幸的是,还没有真正的文档。现在,这里有一些简短的例子来说明您的代码有多短。

从nus下载最新的系统菜单并将其打包成wad:

import Wii
Wii.NUS.download(0x000000010000002).dumpFile("SystemMenu-latest.wad")

下载系统菜单版本289,并将内容索引0替换为文件“patch.bin”,将标题ID更改为1-3,然后保存到WAD“patched.wad”:

import Wii
sysmenu = Wii.NUS.download(0x000000010000002, 289)
sysmenu[0] = open("patch.bin", "rb").read()
sysmenu.tmd.setTitleID(0x0000000100000003)
sysmenu.tik.setTitleID(0x0000000100000003)
sysmenu.dumpFile("patched.wad")

将第一个命令行参数wad解压缩到文件夹“inside”:

import Wii, sys
wadf = Wii.WAD.loadFile(sys.argv[1])
wadf.dumpDir("inside")

将第一个命令行参数u8 archive解压缩到文件夹“unpacted”:

import Wii, sys
u8archive = Wii.U8.loadFile(sys.argv[1])
u8archive.dumpDir("unpacked")

将png作为第一个参数转换为保存在“out.tpl”中的tpl:

import Wii, sys
TPL(sys.argv[1]).toTPL("out.tpl")

将sound.wav转换为sound.bns:

import Wii, wave
wav = wave.open("sound.wav", 'rb')
channelnumber = wav.getnchannels()
buffer = wav.readframes(wav.getnframes())
samplerate = wav.getframerate()
wav.close()
bns = Wii.BNS()
bns.create_bns(buffer, samplerate, channelnumber)
bns.write("sound.bns")

学分

这个图书馆是由许茨、斯奎德曼、梅加齐、马特·普、欧米茄和柠檬人写的。它包含marcan编写的lz77代码,很少修改。struct.py模块记入daeken。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用HTTP保存POST参数的java重定向   访问初始化对象的内部对象属性时发生java NullPointerException   java绑定属性<Predicate<MyObject>>到ListView(使用SelectionMode.MULTIPLE)   Java,提醒父对象更改   java JLabel更改标题的位置   如何在java中以ddmmmyyyy格式打印日期?   Selenium(Java)无法通过可见链接文本找到元素   java重组通过交换染色体创建新的基因型   java如何在JMockit中对不可修改的类型使用验证?   java如何在不创建变量的情况下将值传递给数组?   java端口连接上的hbase。网   Java通过使用来自的返回值进行强制转换。getClass()   JavaSpring如何从控制器返回视图而不出错页面   java在TableCellRenderer中使用自定义Swing JComponent