标签 笔记 下的文章

前言

玩完 NS 上复刻的《织梦岛》后就一直超级超级超级想把塞达尔系列全部玩一下,加上最近得知 NEW 2DSLL 也停产了,就赶紧买了台全新的。打算从《众神的三角力量》这一部开始,但 3DS 平台上只有六部正传(《时之笛》、《梅祖拉的假面》、《众神的三角力量2》、《三角力量英雄》,还有 NDS 上的《幻影沙漏》、《灵魂轨迹》),其余作品并没有复刻或移植。本打算再入手一台 GBA SP,但看了一圈也决定不了到底买哪家的,现在大部分都是翻新魔改过的了(Wii U 也是)。

所以很是纠结,但最近正好有时间,那就只能先暂时用 3DS 官方支持的 GBA 模拟器了,只需要将 .gba 文件转为 .cia 格式即可。

当然,我是不支持玩盗版的,但迫于某些原因,这确确实实是一个不错的解决方案。不过还是入正玩盗,这也正好满足我略微的收藏爱好了。不过这还是作为不了玩盗版的理由的。((

那废话不多说了,接下来就记录一下将 GBA 文件转 CIA 的基础操作。

准备

过程比较简单,需要提前准备的如下:

  • 新 3DS/2DS(非港版,已破解)
  • Ultimate GBA VC Injector for 3DS
  • 待转换的 GBA 游戏 .gba 文件
  • 待转换的 GBA 游戏的相关图片

    • 游戏图标:最佳为 40x40 px(可任意尺寸)
    • 封面图:最佳为 116x78 px(可任意尺寸)

转换

Step 1

打开下载好的 Ultimate GBA VC Injector for 3DS.exe,点击 Open GBA File,选择游戏文件即可。

1

这里需要注意的是,务必选对 ROM SizeSava Type 选项。特别是后者,如果不匹配可能会导致无法存档,噩梦((。

当然,程序一般会自动判断的,如果软件发布者没有特别说明,保持默认即可

点击右下角的 Next step 进入下一步。

Step 2

填入 Long nameShort nameGame publisher,点击 Load icon image,选择之前准备的游戏图标。

具体说明可以看软件选项右侧,都有完整说明。

2

点击右下角的 Next step 进入下一步。

Step 3

点击 Load inner image,选择之前准备的封面图。

3

如果需要自定义,可以更改其他选项。

点击右下角的 Next step 进入下一步。

Step 4

4

这一步比较重要,注意红色方框中的代码。进行到这一步程序都会自动随机生成一串代码的,如果发现重复了,请务必更改,或直接自动随机。

这里还能设置其他的,还能添加游戏补丁,可以看情况自己判断。

最后点击 Finish 即可导出。

至此转换就完成了,很简单。

安装 CIA

至于如何将 CIA 文件安装至机器中,这里就不多赘述了。

后言

吹爆《塞尔达传说》系列!hhh

系列中另外的几部作品,打算之后看时机合适,找到满意的就先把机器就入了,感觉还是在本平台玩才更正式一点...

如果还没入坑的,可以在 PC 上先用模拟器体验一下想玩的作品。有 NS 的话,《旷野之息》很是推荐,如果有进一步的兴趣,可以再体验一下复刻的《织梦岛》。

最后附上《织梦岛》相关乐曲。

Office 365 For Business 有中国特供版,这个是世纪互联运营的。有什么好处呢,就是国内访问速度比较理想,无论是上传还是下载。坏处就是,避不开内容审查。

还有一点,世纪互联的账号和登陆页面、部分管理页面都是独立于国际版的,所以这但要注意一下。

使用 SharePoint 扩容

具体扩容政策可以查看:

说明

具体参考如下:

因为世纪互联版貌似没有 OneDrive 管理页面?所以只能使用 Share Point Online 命令工具。

安装

下载 SharePoint Online 命令行管理程序

安装完成后,以管理员方式运行 PowerShell,执行以下命令来查看安装是否正确:

Get-Module -Name Microsoft.Online.SharePoint.PowerShell -ListAvailable | Select Name,Version

登陆

如果打开了 多重身份验证 (MFA) ,请先关闭一下。虽然方法中介绍了,但即便是把登陆页面地址改为世纪互联版,它依旧会跳转到国际版登陆页面。所以使用普通登陆。

修改具体参数后,在 PowerShell 中执行:

$adminUPN="<the full email address of a SharePoint administrator account, example: [email protected]>"

$orgName="<name of your Office 365 organization, example: contosotoycompany>"

$userCredential = Get-Credential -UserName $adminUPN -Message "Type the password."

Connect-SPOService -Url https://$orgName-admin.sharepoint.cn -Credential $userCredential

如果没显示错误,就登陆成功了。

最后

最后只要在 PowerShell 中执行下述命令即可:

Set-SPOSite -Identity <user's OneDrive URL> -StorageQuota <quota>
  • <user's OneDrive URL> 为要修改容量用户的 OneDrive 链接

    • 格式如 https://microsoft-my.sharepoint.cn/personal/user1_contoso_com
  • <quota> 为容量大小,以 MB 为单位

    • 1 TB: 1048576
    • 5 TB: 5242880

扩容的话,当然要 5 TB 啦。

大功告成。

OLAINDEX

一款 OneDrive 目录文件索引应用,基于优雅的 PHP 框架 Laravel5.8 搭建,并通过 Microsoft Graph 接口获取数据展示,支持多类型帐号登录,多种主题显示,简单而强大。

主要是可以动态获取你 OneDrive 里文件的直链,还是挺不错的。

申请 API

打开 Azure Active Directory,也可在 Office 365 管理后台打开。

  • 应用注册 - 新注册

  • 应用注册 - 你刚刚注册的应用 - 证书和密码 - 新客户端密码
  • 应用注册 - 你刚刚注册的应用 - API 权限 - 添加权限 - Microsoft Graph

    • 添加读写权限(ReadWrite)
    • 添加用户信息权限
    • 之后务必要点击代表xxx收于管理员同意

搭建

具体参考官方文档,比较详细。

设置

  • client_id : 上方注册应用的应用程序(客户端) ID
  • client_secret : 上方注册应用的证书和密码中客户端密码
  • redirect_uri : 上方注册时填写的重定向 URI 地址
  • 然后选世纪互联即可

额外

如果保存无效(点击保存后确认页面什么都没显示),在程序跟根目录,执行下述命令即可。

chmod 777 -R storage/* database/*

后日谈

因为想要一个比较稳定的文件存储和分享方案,所以选择了 OneDrive。

不知日后体验会如何。

待。

参考

准备

安装 MinGw-w64

具体说明细节和安装体验可以在《⑨也懂系列:MinGW-w64安装教程》这里查看。这里只记录一下安装设置和变量设置。

如果刚 Next 就出现 Cannot download reposytory.txt[0] 错误,可以尝试关闭杀毒软件(包括 Windows Defender),并以管理员方式运行。

安装设置说明

  • Version:GCC 版本,若无特殊需求优选最高
  • Architecture:系统架构,64 位系统选 x86_64,32 位选 i686
  • Threads:操作系统 API,开发 Windows 程序选 win32,开发 Linux、Unix、Mac OS 等其他 posix 协议的操作系统程序选 posix
  • Exception:异常处理模型

    • 64 位系统
    • seh:性能优化好,优选
    • sjlj:稳定性好
    • 32 位系统
    • dwarf:性能优化好
    • sjlj:稳定性好
  • Build revision:修订版本,保持默认即可

环境变量添加

打开 此电脑-属性-高级系统设置-高级-环境变量,在 系统变量-Path 编辑并新建添加你 MinGw-w64 安装目录下的 bin 文件夹路径,例如 C:\Program Files\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin。保存即可。

Snipaste1

可以在 cmdpowershell 中运行 gcc --version 判断是否安装正确。(安装正确会输出版本号)

重启 VS Code

VS Code

这里需要先注意的是,这里的所有配置都是基于一个工作区(文件夹)的(因为编辑器编译调试需要配置文件),当然你也可以直接打开文件夹。但若要直接编译 .c&.cpp 文件,可以直接执行 ~gcc {.c} , ~g++ {.cpp} 进行编译。

先新建并打开你的工作(代码运行)区。

这里还需要注意的是,添加好环境变量后一定要重启 VS Code。必须退出后重新启动,否则编辑器无法识别编译指令。

C/C++ 拓展

Snipaste4

C/C++ 拓展供了针对 C/C++ 的 IntelliSense 与调试等功能,搜索「C/C++」即可直接安装。

Ctrl+Shift+P 打开命令面板,运行 C/Cpp: Edit configurations,插件会在当前目录下创建 .vscode/c_cpp_properties.json 配置文件,只针对本次的项目。

若你系统已安装 Visual Studio,它会自动将编译器等设置链接过去,但我们这不需要它。可以参考以下配置:

{
    "configurations": [
        {
            "name": "MinGW",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "{your_mingw-w64_bin_gcc.exe_path}",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

上面的 {your_mingw-w64_bin_gcc.exe_path} 替换成你需要的编译器路径。例如:

  • gcc:C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/gcc.exe
  • g++:C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/g++.exe
  • /, \\ 都是可行的)

关于库文件设置,C/C++ 扩展已经可以通过 compilerPath 自动推断头文件以及库文件所在的目录,所以无需手动配置。

编译与调试

配置好上述文件后,可以先写一段 C/C++ 代码,测试编译并调试一下。(以下所有展示的配置只适用于单文件的编译并调试

#include <stdio.h>
int main() {
    printf("hello world");
    
    return 0;
}
编译设置:tasks.json

编译之前,需要先创建 .vscode/tasks.json(无需手动创建)。这个配置文件提供命令行构建配置,让编译器调用然后终端执行。

Ctrl+Shift+P 打开命令面板,运行 Tasks: Configure Task,选择 使用模板创建 tasks.json 文件,选择 Others 运行任意外部命令的示例。至此,编辑器会生成 .vscode/tasks.json 文件。编辑文件,例如:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            // 任务标签名
            "label": "compile",
            // 任务类型
            "type": "shell",
            // 编译器选择
            "command": "gcc",
            // 编译预执行的命令集
            "args": [
                "-g",
                "\"${file}\"",
                "-o",
                "\"${fileDirname}\\${fileBasenameNoExtension}\""
            ],
            // 任务输出配置
            "presentation": {
                "reveal": "always",
                "panel": "shared",
                "focus": false,
                "echo": true
            },
            // 任务所属组名
            "group": {
                "kind": "build",
                "isDefault": true
            },
            // 编译问题输出匹配配置
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": "absolute",
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}

简单地注释了一下每一个配置的目的,具体可以在 Tasks in Visual Studio Code 查看。

以上是 gcc 编译器配置,若要编译 C++ ,将 command 改为 g++ 即可。

至此,编辑器的编译设置已经完成了。可以在 Ctrl+Shift+P 中输入 Tasks: Run Build Task 进行编译,但只会生成 exe 文件,并不会启动调试。

调试设置:launch.json

光编译在有些时候肯定是不够的,那就需要调试功能了。就是所谓的 Debug 。

Ctrl+Shift+P 打开命令面板,输入 Debug: Open launch.json,选择 C++ (GDB/LLDB),编辑器会创建调试配置文件 .vscode/launch.json。但需要稍加修改,例如(基于 MinGW-w64 的 GDB):

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            // 调试名
            "name": "debug",
            // 调试器类型
            "type": "cppdbg",
            // 请求类型
            "request": "launch",
            // 调试的可执行文件(tasks.json 中配置的编译输出的文件)
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
            // 调试参数
            "args": [],
            "stopAtEntry": false,
            // 当前工作区
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "{your_mingw-w64_bin_gdb.exe_path}",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            // 调试前启动的任务
            // 要与 tasks.json 中配置的 label 一致
            // 总是要先编译再调试的嘛
            "preLaunchTask": "compile",
        }
    ]
}

上面的 {your_mingw-w64_bin_gdb.exe_path} 替换成你 MinGW-w64-GDB 路径。例如:

  • C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/gdb.exe

简单注释了一下,更多可以在 Debugging in Visual Studio Code 查看。

测试代码

至此,基本配置已全部完成。可以按 F5 开始调试代码。或者也可以在 VS Code 的调试界面点击左上角按钮进行调试。

Snipaste2

另外

Code Runner 拓展

Snipaste5

另外,毕竟都用 VS Code 这类轻量编辑器写代码了嘛,那就推荐一款超好用的代码调试工具:Code Runner

它可以让我们直接在 VS Code 运行各种语言代码,缺点就是,它很轻量,不支持复杂工程编译。 搜索「Code Runner」即可直接安装。接下来,我们需要设置一下 Code Runner 。

进入 VS Code 设置,右上角坐起第二个按钮(打开设置),在右栏中输入相关设置的 json 即可直接进行设置替换。

// 在终端中运行编译命令,否则我们无法与程序通过标准输入交互
"code-runner.runInTerminal": true,
// 如果你全局设置中的默认终端是 WSL 之类的,那么可以在工作区设置中改回 PowerShell
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
// 运行代码之前清除之前的输出
"code-runner.clearPreviousOutput": true,
// 开启这个后在运行编译命令之前会自动 cd 至文件所在目录
"code-runner.fileDirectoryAsCwd": true,
// 因为上面那个选项会自动 cd,所以我删除了默认编译命令中的 cd 语句
// 这里只保留了 C 和 C++ 的编译命令,有需要其他语言的请自行添加
"code-runner.executorMap": {
    "c": "gcc $fileName -o $fileNameWithoutExt && .\\$fileNameWithoutExt",
    "cpp": "g++ $fileName -o $fileNameWithoutExt && .\\$fileNameWithoutExt",
},
// 运行代码后切换焦点至终端,方便直接输入测试数据
"code-runner.preserveFocus": false,
// 在运行代码之前保存文件
"code-runner.saveFileBeforeRun": true,

如果没有特殊要求,编辑保存即可。

然后我们就可以直接在代码界面按下 Ctrl+Alt+N 即可进行编译调试输出,或者也可以直接 右键-Run Code。

Snipaste3

后日谈

为什么要配置 Windows VS Code 的 C/C++ 开发环境呢,总的来说还是想要轻量。也是刚刚上大学,目前为止的 C 程序完全用不着 VS 这么庞大的 IDE 写,刷刷 ACM 题也只需要轻量的 VS Code 就够了。

总的体验下来还不错,毕竟需求小嘛。其实之前一直用 macOS 写代码,最近想想还有台 Windows 笔记本不用白不用嘛,就开始配置开发环境了。不得不说,macOS 环境配置真的舒服和方便。

参考

配置文件代码来自 https://blessing.studio/