Compare commits

...

7 Commits

Author SHA1 Message Date
jn64 4708684d1c
Merge 528fc53718 into cf41c3b136 2024-05-10 09:30:22 +01:00
Exzap cf41c3b136
CI: Use submodule commit of vcpkg 2024-05-10 09:33:32 +02:00
Xphalnos 97d8cf4ba3
vcpkg: Update libraries (#1198) 2024-05-10 09:32:06 +02:00
GaryOderNichts b2a6cccc89
nn_act: Implement GetTransferableId (#1197) 2024-05-09 12:12:34 +02:00
GaryOderNichts 10d553e1c9
zlib125: Implement `deflateInit_` (#1194) 2024-05-07 11:56:28 +02:00
jn64 528fc53718 manpage sample output
The roff manpage produced by pandoc is included in this commit,
as well as a plaintext preview of what it would look like
when viewed with 'man' in a terminal of 80 width.
2022-12-09 15:26:54 +08:00
jn64 59fa217a7b Draft manpage (pandoc Markdown)
While Markdown isn't the best fit for writing manpages,
it's the easiest for future contributions/maintenance.
However, pandoc is a heavy dependency for producing
a single manpage. Other tools [1] could be evaluated.

The only pandoc-isms are the title block [2]
(first 3 lines) which will rarely change,
and the definition lists ':' for options
which is self-explanatory.

The Markdown source is intentionally not hard wrapped.
pandoc automatically hard wraps the roff man output
(which may be further re-wrapped by manpage viewers).

To produce the manpage (outputs a file Cemu.1):

    pandoc -s -f markdown-smart -t man Cemu.1.md -o Cemu.1

Preview from Markdown without writing to file:

    pandoc -s -f markdown-smart -t man Cemu.1.md | man -l -

markdown-smart *disables* the smart typography extension
to avoid mangling '--'. [3]

[1]: https://drewdevault.com/2018/05/13/scdoc.html
[2]: https://pandoc.org/MANUAL.html#extension-pandoc_title_block
[3]: https://pandoc.org/MANUAL.html#extensions
2022-12-09 15:25:59 +08:00
8 changed files with 275 additions and 5 deletions

View File

@ -28,7 +28,6 @@ jobs:
run: |
cd dependencies/vcpkg
git fetch --unshallow
git checkout 431eb6bda0950874c8d4ed929cc66e15d8aae46f
- name: Setup release mode parameters (for deploy)
if: ${{ inputs.deploymode == 'release' }}
@ -138,7 +137,6 @@ jobs:
run: |
cd dependencies/vcpkg
git fetch --unshallow
git checkout 431eb6bda0950874c8d4ed929cc66e15d8aae46f
- name: Setup release mode parameters (for deploy)
if: ${{ inputs.deploymode == 'release' }}
@ -218,7 +216,6 @@ jobs:
run: |
cd dependencies/vcpkg
git fetch --unshallow
git pull --all
- name: Setup release mode parameters (for deploy)
if: ${{ inputs.deploymode == 'release' }}

2
dependencies/vcpkg vendored

@ -1 +1 @@
Subproject commit 53bef8994c541b6561884a8395ea35715ece75db
Subproject commit cbf4a6641528cee6f172328984576f51698de726

73
dist/linux/Cemu.1 vendored Normal file
View File

@ -0,0 +1,73 @@
.\" Automatically generated by Pandoc 2.14.0.3
.\"
.TH "CEMU" "1" "2022-12-09" "Cemu" "Wii U emulator"
.hy
.SH NAME
.PP
Cemu - Wii U emulator
.SH SYNOPSIS
.PP
\f[B]Cemu\f[R] [\f[I]OPTIONS\f[R]...]
.SH DESCRIPTION
.PP
\f[B]Cemu\f[R] is a Wii U emulator that is able to run most Wii U games
and homebrew in a playable state.
It\[aq]s written in C/C++ and is being actively developed with new
features and fixes to increase compatibility, convenience and usability.
.SH OPTIONS
.PP
If an option has argument \f[I]n\f[R], a value of 1 (or no argument)
enables the option.
A value of 0 disables the option.
.SS Launch options
.TP
\f[B]-g\f[R] \f[I]path\f[R], \f[B]--game\f[R] \f[I]path\f[R]
Path of game to launch
.TP
\f[B]-m\f[R] \f[I]path\f[R], \f[B]--mlc\f[R] \f[I]path\f[R]
Custom mlc folder location
.TP
\f[B]-f\f[R] [\f[I]n\f[R]], \f[B]--fullscreen\f[R] [\f[I]n\f[R]]
Launch games in fullscreen mode
.TP
\f[B]-u\f[R] [\f[I]n\f[R]], \f[B]--ud\f[R] [\f[I]n\f[R]]
Render output upside-down
.TP
\f[B]-a\f[R] \f[I]id\f[R], \f[B]--account\f[R] \f[I]id\f[R]
Persistent id of account
.TP
\f[B]--force-interpreter\f[R] [\f[I]n\f[R]]
Force interpreter CPU emulation and disable recompiler
.TP
\f[B]--act-url\f[R] \f[I]url\f[R]
URL prefix for account server
.TP
\f[B]--ecs-url\f[R] \f[I]url\f[R]
URL for ECS service
.TP
\f[B]-h\f[R], \f[B]--help\f[R]
Display a usage message and exit
.TP
\f[B]-v\f[R], \f[B]--version\f[R]
Display Cemu version and exit
.SS Extractor tool
.TP
\f[B]-e\f[R] \f[I]path\f[R], \f[B]--extract\f[R] \f[I]path\f[R]
Path to WUD or WUX file for extraction
.TP
\f[B]-p\f[R] \f[I]path\f[R], \f[B]--path\f[R] \f[I]path\f[R]
Path of file to extract (for example meta/meta.xml)
.TP
\f[B]-o\f[R] \f[I]path\f[R], \f[B]--output\f[R] \f[I]path\f[R]
Output path for extracted file
.SH BUGS
.PP
To report a bug, visit
\f[I]https://github.com/cemu-project/Cemu/issues\f[R]
.SH SEE ALSO
.PP
Project homepage:
.PP
\f[I]https://github.com/cemu-project/Cemu\f[R]
.SH AUTHORS
Exzap; Petergov.

85
dist/linux/Cemu.1.md vendored Normal file
View File

@ -0,0 +1,85 @@
% CEMU(1) Cemu | Wii U emulator
% Exzap; Petergov
% 2022-12-09
# NAME
Cemu - Wii U emulator
# SYNOPSIS
**Cemu** [_OPTIONS_...]
# DESCRIPTION
**Cemu** is a Wii U emulator that is able to run most Wii U games and homebrew in a playable state. It's written in C/C++ and is being actively developed with new features and fixes to increase compatibility, convenience and usability.
# OPTIONS
If an option has argument _n_, a value of 1 (or no argument) enables the option. A value of 0 disables the option.
## Launch options
**-g** _path_, **--game** _path_
: Path of game to launch
**-m** _path_, **--mlc** _path_
: Custom mlc folder location
**-f** [_n_], **--fullscreen** [_n_]
: Launch games in fullscreen mode
**-u** [_n_], **--ud** [_n_]
: Render output upside-down
**-a** _id_, **--account** _id_
: Persistent id of account
**--force-interpreter** [_n_]
: Force interpreter CPU emulation and disable recompiler
**--act-url** _url_
: URL prefix for account server
**--ecs-url** _url_
: URL for ECS service
**-h**, **--help**
: Display a usage message and exit
**-v**, **--version**
: Display Cemu version and exit
## Extractor tool
**-e** _path_, **--extract** _path_
: Path to WUD or WUX file for extraction
**-p** _path_, **--path** _path_
: Path of file to extract (for example meta/meta.xml)
**-o** _path_, **--output** _path_
: Output path for extracted file
# BUGS
To report a bug, visit _https://github.com/cemu-project/Cemu/issues_
# SEE ALSO
Project homepage:
_https://github.com/cemu-project/Cemu_

71
dist/linux/Cemu.1.txt vendored Normal file
View File

@ -0,0 +1,71 @@
CEMU(1) Wii U emulator CEMU(1)
NAME
Cemu - Wii U emulator
SYNOPSIS
Cemu [OPTIONS...]
DESCRIPTION
Cemu is a Wii U emulator that is able to run most Wii U games and home
brew in a playable state. It's written in C/C++ and is being actively
developed with new features and fixes to increase compatibility, conve
nience and usability.
OPTIONS
If an option has argument n, a value of 1 (or no argument) enables the
option. A value of 0 disables the option.
Launch options
-g path, --game path
Path of game to launch
-m path, --mlc path
Custom mlc folder location
-f [n], --fullscreen [n]
Launch games in fullscreen mode
-u [n], --ud [n]
Render output upside-down
-a id, --account id
Persistent id of account
--force-interpreter [n]
Force interpreter CPU emulation and disable recompiler
--act-url url
URL prefix for account server
--ecs-url url
URL for ECS service
-h, --help
Display a usage message and exit
-v, --version
Display Cemu version and exit
Extractor tool
-e path, --extract path
Path to WUD or WUX file for extraction
-p path, --path path
Path of file to extract (for example meta/meta.xml)
-o path, --output path
Output path for extracted file
BUGS
To report a bug, visit https://github.com/cemu-project/Cemu/issues
SEE ALSO
Project homepage:
https://github.com/cemu-project/Cemu
AUTHORS
Exzap; Petergov.
Cemu 2022-12-09 CEMU(1)

View File

@ -308,6 +308,22 @@ void nnActExport_GetPrincipalIdEx(PPCInterpreter_t* hCPU)
osLib_returnFromFunction(hCPU, 0); // ResultSuccess
}
void nnActExport_GetTransferableId(PPCInterpreter_t* hCPU)
{
ppcDefineParamU32(unique, 0);
cemuLog_logDebug(LogType::Force, "nn_act.GetTransferableId(0x{:08x})", hCPU->gpr[3]);
uint64 transferableId;
uint32 r = nn::act::GetTransferableIdEx(&transferableId, unique, iosu::act::ACT_SLOT_CURRENT);
if (NN_RESULT_IS_FAILURE(r))
{
transferableId = 0;
}
osLib_returnFromFunction64(hCPU, _swapEndianU64(transferableId));
}
void nnActExport_GetTransferableIdEx(PPCInterpreter_t* hCPU)
{
ppcDefineParamStructPtr(transferableId, uint64, 0);
@ -691,6 +707,7 @@ void nnAct_load()
osLib_addFunction("nn_act", "GetPrincipalId__Q2_2nn3actFv", nnActExport_GetPrincipalId);
osLib_addFunction("nn_act", "GetPrincipalIdEx__Q2_2nn3actFPUiUc", nnActExport_GetPrincipalIdEx);
// transferable id
osLib_addFunction("nn_act", "GetTransferableId__Q2_2nn3actFUi", nnActExport_GetTransferableId);
osLib_addFunction("nn_act", "GetTransferableIdEx__Q2_2nn3actFPULUiUc", nnActExport_GetTransferableIdEx);
// persistent id
osLib_addFunction("nn_act", "GetPersistentId__Q2_2nn3actFv", nnActExport_GetPersistentId);

View File

@ -213,6 +213,32 @@ void zlib125Export_inflateReset2(PPCInterpreter_t* hCPU)
osLib_returnFromFunction(hCPU, r);
}
void zlib125Export_deflateInit_(PPCInterpreter_t* hCPU)
{
ppcDefineParamStructPtr(zstream, z_stream_ppc2, 0);
ppcDefineParamS32(level, 1);
ppcDefineParamStr(version, 2);
ppcDefineParamS32(streamsize, 3);
z_stream hzs;
zlib125_setupHostZStream(zstream, &hzs, false);
// setup internal memory allocator if requested
if (zstream->zalloc == nullptr)
zstream->zalloc = PPCInterpreter_makeCallableExportDepr(zlib125_zcalloc);
if (zstream->zfree == nullptr)
zstream->zfree = PPCInterpreter_makeCallableExportDepr(zlib125_zcfree);
if (streamsize != sizeof(z_stream_ppc2))
assert_dbg();
sint32 r = deflateInit_(&hzs, level, version, sizeof(z_stream));
zlib125_setupUpdateZStream(&hzs, zstream);
osLib_returnFromFunction(hCPU, r);
}
void zlib125Export_deflateInit2_(PPCInterpreter_t* hCPU)
{
ppcDefineParamStructPtr(zstream, z_stream_ppc2, 0);
@ -345,6 +371,7 @@ namespace zlib
osLib_addFunction("zlib125", "inflateReset", zlib125Export_inflateReset);
osLib_addFunction("zlib125", "inflateReset2", zlib125Export_inflateReset2);
osLib_addFunction("zlib125", "deflateInit_", zlib125Export_deflateInit_);
osLib_addFunction("zlib125", "deflateInit2_", zlib125Export_deflateInit2_);
osLib_addFunction("zlib125", "deflateBound", zlib125Export_deflateBound);
osLib_addFunction("zlib125", "deflate", zlib125Export_deflate);

View File

@ -1,7 +1,7 @@
{
"name": "cemu",
"version-string": "1.0",
"builtin-baseline": "53bef8994c541b6561884a8395ea35715ece75db",
"builtin-baseline": "cbf4a6641528cee6f172328984576f51698de726",
"dependencies": [
"pugixml",
"zlib",