Skip to content

Instantly share code, notes, and snippets.

View yifanlu's full-sized avatar

Yifan Lu yifanlu

View GitHub Profile
@yifanlu
yifanlu / taihen-b7-release.md
Last active December 24, 2016 06:08
taiHENkaku B7 Release Notes

大変革 Beta 7

Compression support for fself has been added to the toolchain. Compressed fselfs work with taiHENkaku (they have been working since beta 1) but do not work with the latest stable HENkaku. That means any compressed homebrew built would not work on the stable HENkaku. Developers should consider enabling compression support (download the latest toolchain), here's some of the results I've gotten so far

  • VitaShell: 3.2MB => 1.2MB
  • henkaku.suprx: 33KB => 8KB
  • taiHENkaku installer: 160KB => 34KB

Use vita-make-fself -c to create compressed fselfs. Additionally, the latest toolchain also includes weak stubs. The main use case for linking with weak stubs is if you wish to write plugins that import from a module that is loadable via SceSysmodule. Previously you would have to include the required module in taiHEN's config.txt. Now you can use a weak import and call sceSysmoduleLoad. Finally, the toolchain now uses YAML instead of JSON for its NID database--developers should update thei

@yifanlu
yifanlu / taihen-b6-release.md
Created December 1, 2016 05:03
taiHENkaku B6 Release Notes

大変革 Beta 6

Thanks to everyone who helped test taiHENkaku! We are approaching the final release. Indeed, the current "beta" is less buggy than HENkaku R6! On a sidenote, the payload now only has six 3.60 specific offsets (excluding the kernel rop). That means porting it to other firmware versions is easier than ever (just dump SceSysmem and find those offsets).

Developers: Please make sure you are using the latest toolchain from (https://goo.gl/RaEB9L). We made a lot of changes so using an older toolchain to add taiHEN hooks will result in crashes! Also make sure to update your taiHEN development libraries to the latest version.

If you are not interested in helping test the beta, we recommend that you stick with the old stable release at (https://henkaku.xyz/) instead. To update the beta, reboot and visit http://beta.henkaku.xyz/ from your Vita's browser. To remove the beta, delete molecularShell, reboot, and visit https://henkaku.xyz/ ins

@yifanlu
yifanlu / taihen-b5-release.md
Created November 26, 2016 22:59
taiHENkaku B5 Release Notes

大変革 Beta 5

Developers: Please make sure you are using the latest toolchain from (https://github.com/frangarcj/buildscripts/releases) or (https://lolhax.org/bamboo/). We made a lot of changes so using an older toolchain to add taiHEN hooks will result in crashes! Also make sure to update your taiHEN development libraries to the latest version.

If you are not interested in helping test the beta, we recommend that you stick with the old stable release at (https://henkaku.xyz/) instead. To update the beta, reboot and visit http://beta.henkaku.xyz/ from your Vita's browser. To remove the beta, delete molecularShell, reboot, and visit https://henkaku.xyz/ instead.

New Features

  • Rewrote the kernel payload and installer. Installer should be more stable now.
  • Add ability to update HENkaku config and taiHEN config.txt without needing a reboot. VitaShell needs to be updated to use this feature though.
@yifanlu
yifanlu / taihen-b4-release.md
Created November 14, 2016 01:21
taiHENkaku B4 Release Notes

大変革 Beta 4

Developers: Please make sure you are using the latest toolchain from (https://github.com/frangarcj/buildscripts/releases). We made a lot of changes so using an older toolchain to add taiHEN hooks will result in crashes! Also make sure to update your taiHEN development libraries to the latest version.

If you are not interested in helping test the beta, we recommend that you stick with the old stable release at (https://henkaku.xyz/) instead. To update the beta, reboot and visit http://beta.henkaku.xyz/ from your Vita's browser. To remove the beta, delete molecularShell, reboot, and visit https://henkaku.xyz/ instead.

New Features

  • Fixed many bugs that causes instability, memory leaks, and crashes with hooks. Full details here.
  • Fixed dynarec issue resulting in many emulators including PCSX and mGBA not working.
@yifanlu
yifanlu / taihen-b3-release.md
Created November 8, 2016 05:13
taiHENkaku B3 Release Notes

大変革 Beta 3

The updated toolchain with support for plugin creation is almost done. Prebuilts for OSX/Windows/Linux should be up sometime this week, although I am not the main party in that project so don't hold me to this. In the meantime, those who are brave can try building the latest toolchain themselves from vitasdk/buildscripts. With the new toolchain, you can add the taiHEN files to your toolchain installation to use the taiHEN APIs.

If you are not interested in helping test the beta, we recommend that you stick with the old stable release at (https://henkaku.xyz/) instead. To update the beta, reboot and visit http://beta.henkaku.xyz/ from your Vita's browser. To remove the beta, delete molecularShell, reboot, and visit https://henkaku.xyz/ instead.

New Features

  • VitaShell 1.42 is updated such that HENkaku configuration works and package installation from safe homebrew works.
@yifanlu
yifanlu / taihenkaku-b2-release.md
Last active November 19, 2016 12:25
taiHENkaku B2 Release Notes

大変革 Beta 2

Sorry for the messy beta 1. I didn't want to break my promise of a 11/1 release so I had to cut many corners. Hopefully this should be a more stable beta, although there are still a lot more to do before it is production ready. Although it is still recommended only for developers, it is now ready for anyone to test and report issues. In filing your bug report, please be very specific in your setup (Vita/VitaTV, memory card?, what apps are used/installed, etc) and in triggering the bug (even if it is not possible to always reproduce it). Before filing any issues, make sure it is not listed below in the known issues section and read the other reported issues to make sure you are not submitting a duplicate ticket (submit a comment instead).

If you are not interested in helping test the beta, we recommend that you stick with the old stable release at (https://henkaku.xyz/) instead. To update the beta, reboot and visit http://beta.henkaku.xyz/ from your Vita's browser. To remove the

@yifanlu
yifanlu / safe-homebrew-psa.md
Created October 28, 2016 15:21
PSA for homebrew devs

The next update for HENkaku will be a major one and in order to protect the safety of our users, we are making two changes that might affect how your homebrew runs:

  • Safe Homebrew will be outputted by default by the toolchain. Currently, you must specify a flag for marking your homebrew as safe. In the future you will do the opposite. By default, homebrew will be marked as safe. If you wish to use unsafe/vsh functions you must build with an unsafe flag. A warning will show up if you attempt to use unsafe/vsh functions in a safe homebrew and it will not work by default on the Vita. More information about the specific SDK changes will be posted at a later date.
  • Unsafe Homebrew will be blocked by default on HENkaku enabled consoles. To run unsafe homebrew, the user must set a configurable option. Unsafe homebrew will not be launchable by default. This is basically how Android does it.

If your homebrew currently builds with the vita-make-fself -s flag, you do not have to do anything! Your homebrew is alr

@yifanlu
yifanlu / promote.c
Created August 27, 2016 20:34
ScePromoter usage
#include "promoterutil.h"
int promote(const char *path)
{
int res;
int ret;
int state;
ret = sceSysmoduleLoadModuleInternal(SCE_SYSMODULE_PROMOTER_UTIL);
printf("sceSysmoduleLoadModuleInternal: 0x%x\n", ret);
#!/usr/bin/env python
import codecs
import os
import re
import sys
from datetime import datetime, timedelta, tzinfo
from glob import glob
from urllib import urlretrieve
from urlparse import urljoin, urlparse
@yifanlu
yifanlu / dynarec.c
Created August 2, 2016 18:57
Vita dynarec example
#include <psp2/kernel/sysmem.h>
int dynarec_test(void)
{
int block;
int ret;
void *base;
int (*func)(void);
// allocate block in VM domain