为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第三方库


热门话题
安卓 Java。null对象引用上的lang.NullPointerException   java如何测试传递的对象是集合还是数组   java如何重新培训接收v3?   Netbeans中的Java类SimpleDate不是SimpleDateFormat问题   从安卓库项目引用的java Jar未被应用程序引用。NoClassDefFoundError   java寻找奇数除数   java在不同的JVM上运行多个JMS使用者   java倾斜缓冲区有关xaxis的图像   Java中的最大子序列和算法   Spring REST中的java EOFEException   导致问题的Java泛型   多线程为什么两个Java线程(在某些情况下)的速度是一个线程的两倍以上?   java注销将重定向到“/sessiontimeout”,而不是“/Logout”`   java无法在小程序中获取InputStream()   java遇到过早的文件结束异常   java从文件读入并添加到2D数组   java如何在我的GAE网站上检测已经从谷歌注销的用户   java将一个键放入特定目录中的json中,将该键放入所有目录(JsonPath.parse(String))。放置)