GithubHelp home page GithubHelp logo

fail0verflow / hbc Goto Github PK

View Code? Open in Web Editor NEW
772.0 772.0 91.0 2.42 MB

The Homebrew Channel - open source edition

License: GNU General Public License v2.0

Makefile 1.57% Python 17.91% C 72.22% C++ 5.78% Assembly 2.52%

hbc's People

Contributors

dhewg avatar intriguingtiles avatar marcan avatar tilka avatar wintermute avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hbc's Issues

channel/stub/cache.h is missing #include <gcbool.h>

The code in channel does not compile without #include <gcbool.h> in channel/stub/cache.h.

While trying to compile the source code for the channel, I kept on getting this error:

In file included from stub/ios.c:26:
stub/cache.h:302:25: error: expected ')' before 'void'
302 | void LCAllocOneTag(BOOL,void *);
| ^~~~
| )
stub/cache.h:303:23: error: expected ')' before 'void'
303 | void LCAllocTags(BOOL,void *,u32);
| ^~~~
| )
make[3]: *** [Makefile:172: build/ios.o] Error 1
make[2]: *** [Makefile:83: all] Error 2
make[1]: *** [Makefile:86: channel] Error 2

I am not sure if I am making a mistake or the code somehow broke. If the former is to be the case I would appreciate any help.

Open HackMii Installer

Would be nice to also have an open-source hackmii installer as mine is failing right now on 4.3E after a compendium of poor decisions on my part...

Exception (DSI) occurred!
GPR00 00000001 GPR08 933E0000 GPR16 00000000 GPR24 00000000
GPR01 80540248 GPR09 00001032 GPR17 00000000 GPR25 00000000
GPR02 80267FC8 GPR10 00000068 GPR18 00000000 GPR26 802632B3
GPR03 80520E84 GPR11 80540268 GPR19 00000000 GPR27 FFFFFFFF
GPR04 00000000 GPR12 CD006438 GPR20 00000BA0 GPR28 80520E84
GPR05 00000069 GPR13 8026A7C0 GPR21 00000BA8 GPR29 00000000
GPR06 00000069 GPR14 00000000 GPR22 00000A60 GPR30 FFFFFFFF
GPR07 00000001 GPR15 00000000 GPR23 00000000 GPR31 8061E830
LR 8003EC70 SRR0 80037d94 SRR1 00001032 MSR 00001000
DAR FFFFFFFC DSISR 04000000

STACK DUMP
80037d94 --> 8003ec70 --> 8000bee0 --> 8000d130
80023104 --> 800130dc --> 8000e998 --> 80023f40
80013308

CODE DUMP:
80037d94:   80E4FFFC 80C30000 39600000 20E7FFF8
80037da4:   7D243A14 7F893040 419C0014 81630004
80037db4:   7D695810 39600000 7D6B5914 2F8B0000

License allows for selling and/or (re)distributing the Homebrew Channel, regardless of anything.

I have been researching this, and noticed something quite important that'll definitely need for quite a bit of time for changes in the HackMii Installer and the Homebrew Channel. The Homebrew Channel's source code is licensed under the GNU General Public License, version 2. This license allows for selling and redistributing the software. In fact, even GNU, the makers of the General Public License, encourage selling free software (http://www.gnu.org/philosophy/selling.html).

For clarification, I am not someone who redistributes or sells the HackMii installer, however, this is something that no one has brought up, and I would like to bring it up, as the issue is that the creators of the Homebrew Channel are misleading people who are going to hack their Wii consoles into thinking that the Homebrew Channel isn't able to be redistributed or sold.

feature : change HBC loader to support loading 'loaders'

The HBC binary loader rejects things that use up the MEM1 memory range used by loaders, so it doesn't overwrite itself or its framebuffer.
thats all good and well, but this prevents me from developing priiloader safely as my entrypoint is in said range.

Priiloader contains a loader that supports this by loading the binary, and a loader, to mem2 and executing the loader that loads the dol/elf.

ive currently had to create some bootloader that loads Priiloader just to make it work in HBC, which i'd prefer to not be there, as its hacky shit.

Add ext4 compatibility

Would it be possible to add compatibility to homebrew channel for ext4?
I have been able to verify that my computer with linux makes the transfers much faster to the pendrive in ext4.
Fat is a practically outdated format, and it takes a long time to make the transfers.
Cheers

[question] Text fonts used in installer?

I had an odd bout of curiosity and wanted to know if it's possible to identify each of the fonts used for the text in the HackMii installer. As far as I know there are at least three different ones: the scam warning, the general menu text, and the bits in the bottom left/right of the menu. (I think the Homebrew Browser's loading screen and Waninkoko's WAD Manager use one of the HackMii installer fonts too but I could be wrong)

Compiling Most Recent Commit

I have been trying to compile the most recent code but keep running into the same error. I think the error has to do with the common-key and the way I have it formatted.

My error is:

python2 tools/join-imet.py channel.imet build/data.arc build/icon.arc build/banner.arc build/sound.bns names.txt
make[1]: Leaving directory '/root/test/hbc/channel/banner'
make[1]: Entering directory '/root/test/hbc/channel/title'
Warning: failed to load key korean-key
fixing Tik file retail/cetk
Incorrect AES key length (33 bytes)

Incorrect AES key length (33 bytes)

Incorrect AES key length (33 bytes)
Warning: failed to load key korean-key
updating content records of TMD file retail/tmd
Warning: failed to load key korean-key
setting version of TMD file retail/tmd to 0x0102
Warning: failed to load key korean-key

Incorrect AES key length (33 bytes)
Traceback (most recent call last):
  File "/root/test/hbc/channel/title/../../pywii/pywii-tools/wadpack.py", line 28, in <module>
    wad.adddata(data,ct.cid)
  File "/root/test/hbc/pywii/pywii-tools/pywii/wii.py", line 1509, in adddata
    raise Exception("Required key is not available")
Exception: Required key is not available
Makefile:14: recipe for target 'channel_retail.wad' failed
make[1]: *** [channel_retail.wad] Error 1
make[1]: Leaving directory '/root/test/hbc/channel/title'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2

The Incorrect AES key length (33 bytes) was generated by me printing the expectation that this block of code is generating:

try:
if self.common_key_index == 0:
key = keys["common-key"]
elif self.common_key_index == 1:
key = keys["korean-key"]
else:
print "WARNING: OLD FAKESIGNED TICKET WITH BAD KEY OFFSET, ASSUMING NORMAL COMMON KEY"
key = keys["common-key"]
aes = AES.new(key, AES.MODE_CBC, self.title_key_iv)
self.title_key = aes.decrypt(self.title_key_enc)
except:
self.title_key = None

I have my common-key located at ~/.wii/common-key.

@marcan I saw your comment on #11 about the common-key needing to be in binary? Is that true? Or does a plain text work?

Unable to compile channel

Hello. I'm trying to compile this on Arch Linux. I have all the required dependencies, most of which were in the AUR. After compiling everything in wiipax, I changed my directory to the channel and tried to compile, when this happened:

make[1]: Entering directory '/home/trenten/hbc/channel/channelapp'
bubble1_png.o
cursor_drag_png.o
button_small_focus_png.o
apps_list_hover_png.o
progress_png.o
cursor_shade_png.o
logo_png.o
button_png.o
apps_list_png.o
dlg_error_png.o
bubble3_png.o
button_tiny_png.o
cursor_drag_shade_png.o
content_arrow_down_png.o
throbber_png.o
about_png.o
bubble2_png.o
background_png.o
apps_next_png.o
apps_next_hover_png.o
icon_usbgecko_png.o
button_small_png.o
content_arrow_up_png.o
dlg_confirm_png.o
icon_usbgecko_active_png.o
icon_network_png.o
dlg_info_png.o
apps_grid_hover_png.o
button_focus_png.o
apps_previous_hover_png.o
background_wide_png.o
icon_network_active_png.o
cursor_pic_png.o
button_tiny_focus_png.o
apps_grid_png.o
apps_previous_png.o
dialog_background_png.o
dlg_warning_png.o
japanese.enc.po
italian.enc.po
german.enc.po
french.enc.po
spanish.enc.po
dutch.enc.po
droidbold_ttf.o
droid_ttf.o
banner_bin.o
japanese.mo
italian.mo
german.mo
french.mo
spanish.mo
dutch.mo
japanese_mo.o
italian_mo.o
german_mo.o
french_mo.o
spanish_mo.o
dutch_mo.o
rm build/japanese.enc.po build/dutch.enc.po build/italian.mo build/italian.enc.po build/spanish.mo build/german.enc.po build/spanish.enc.po build/german.mo build/dutch.mo build/french.mo build/japanese.mo build/french.enc.po
panic.o
xml.o
theme.o
manage.o
dvd.o
source/manage.c: In function 'mkdir_hier':
source/manage.c:38:11: error: 'MAXPATHLEN' undeclared (first use in this function)
  char dir[MAXPATHLEN];
           ^~~~~~~~~~
source/manage.c:38:11: note: each undeclared identifier is reported only once for each function it appears in
source/manage.c:38:7: warning: unused variable 'dir' [-Wunused-variable]
  char dir[MAXPATHLEN];
       ^~~
source/manage.c: In function 'rmdir_hier_iter':
source/manage.c:87:15: error: 'MAXPATHLEN' undeclared (first use in this function)
  char newpath[MAXPATHLEN];
               ^~~~~~~~~~
source/manage.c:87:7: warning: unused variable 'newpath' [-Wunused-variable]
  char newpath[MAXPATHLEN];
       ^~~~~~~
source/manage.c: In function 'rmdir_hier':
source/manage.c:121:11: error: 'MAXPATHLEN' undeclared (first use in this function)
  char buf[MAXPATHLEN];
           ^~~~~~~~~~
source/manage.c:121:7: warning: unused variable 'buf' [-Wunused-variable]
  char buf[MAXPATHLEN];
       ^~~
source/manage.c: In function 'manage_extract_zip':
source/manage.c:351:19: error: 'MAXPATHLEN' undeclared (first use in this function)
  char sd_filename[MAXPATHLEN];
                   ^~~~~~~~~~
source/manage.c:351:7: warning: unused variable 'sd_filename' [-Wunused-variable]
  char sd_filename[MAXPATHLEN];
       ^~~~~~~~~~~
source/manage.c: In function 'manage_run':
source/manage.c:484:15: error: 'MAXPATHLEN' undeclared (first use in this function)
  char caption[MAXPATHLEN];
               ^~~~~~~~~~
source/manage.c:484:7: warning: unused variable 'caption' [-Wunused-variable]
  char caption[MAXPATHLEN];
       ^~~~~~~
make[3]: *** [Makefile:180: build/manage.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:83: all] Error 2
make[1]: *** [Makefile:86: channel] Error 2
make[1]: Leaving directory '/home/trenten/hbc/channel/channelapp'
make: *** [Makefile:4: all] Error 2```

Issues compiling channel

Hi, when trying to compile the channel after successfully compiling wiipax, I get the following error:

make[1]: Entering directory '/home/andrew/Documents/build/hbc/channel/channelapp'
make[3]: Nothing to be done for 'data'.
channelapp_nopax.elf
/opt/devkitpro/devkitPPC/lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: /opt/devkitpro/libogc/lib/wii/libfat.a(directory.o): in function `_FAT_directory_entryGetAlias':
/home/dima/Desktop/libfat/libogc/../source/directory.c:227: undefined reference to `__ctype_ptr__'
/opt/devkitpro/devkitPPC/lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: /home/dima/Desktop/libfat/libogc/../source/directory.c:227: undefined reference to `__ctype_ptr__'
/opt/devkitpro/devkitPPC/lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: /home/dima/Desktop/libfat/libogc/../source/directory.c:235: undefined reference to `__ctype_ptr__'
/opt/devkitpro/devkitPPC/lib/gcc/powerpc-eabi/8.3.0/../../../../powerpc-eabi/bin/ld: /home/dima/Desktop/libfat/libogc/../source/directory.c:235: undefined reference to `__ctype_ptr__'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:111: channelapp_nopax.elf] Error 1
make[2]: *** [Makefile:83: all] Error 2
make[1]: *** [Makefile:86: channel] Error 2
make[1]: Leaving directory '/home/andrew/Documents/build/hbc/channel/channelapp'
make: *** [Makefile:4: all] Error 2

I am using the latest devkitPro/devkitPPC packages from the official repository, and I have the common key located at: ~/.wii/common-key.

Question about the bubbles minigame removed in 1.0.5

Would any of you happen to still have the minigame's code? The minigame in question is the one where you hid the UI and popped bubbles, at which point a score would appear, which increases with every bubble pop.

Initial attempt

The open HBC opens fine and displays like its "official" brother. Runnning on a PAL Wii. System Menu 4.3E. IOS80 & IOS36 are Trucha-patched, iOS236 (==IOS36) and multiple revisions of d2x-cIOS (some 2xx-slots) are installed. No BootMii as running on newer hardware. Compiled under Ubuntu 16.10 amd64 inside VBox (fresh setup & fully updated as I'm writing this).

WORKING:

  • lists homebrew applications from SD
  • switch of styles
  • settings menu

BROKEN:

  • does not save the last style
  • does not load any homebrew
  • fails to return to the Wii Menu (maybe related to the previos point) [just displays black screen]
  • WiFi icon blinking all the time

UNTESTED:

  • ShutDown
  • USB-access

Doubts about "The Homebrew Channel"

I just saw this project, and I find it very interesting to have an open source homebrew channel.
I have several questions to resolve.
I understand that the code is different from the official homebrew channel code.
My question about this is ..
Do I have the same characteristics and technical advantages as with the original homebrew channel (The latest version)? Do I have additional advantages?
On the other hand...
Can you launch a wad so I can install this channel?
Thank you

[NOT SPECIFICALLY RELATED TO THE CODE] BootMii Issue

BootMii needs an update of sorts to check for OHBC: I prefer it because it doesnt do the update.sxml check and thus doesnt clutter my dumps with 404s, but I can't use it because it doesn't load from BootMii.

Push new release through official channels for vWii users

I just set up HBC on my Wii U's vWii using the HackMii Installer. As it is well known, HBC has an aspect ratio bug when running on vWii; and the open source release fixed said bug as a "bonus". However, currently it is not possible to install this fixed version of HBC through official means (neither the HackMii Installer nor the server HBC automatically checks for updates have been updated with a fixed HBC build). So currently it is necessary to rely on third party tools and websites (some of which are heavily associated with piracy) to install either an unofficially built HBC (as a .wad, yuck!) or a forwarder channel (even more yuck!).

Therefore, I'm asking if it would be possible to push a new release of HBC through official channels; and make it possible to avoid relying on dodgy third parties to get fully functional vWii homebrew running on a Wii U.

mxml Update breaks current code

source/xml.c: In function '_get_cdata':
source/xml.c:39:30: error: invalid use of incomplete typedef 'mxml_node_t' {aka 'struct _mxml_node_s'}
   39 |         mxml_node_t *n = node->child;
      |                              ^~
source/xml.c:42:22: error: invalid use of incomplete typedef 'mxml_node_t' {aka 'struct _mxml_node_s'}
   42 |                 if (n->type == MXML_OPAQUE)
      |                      ^~
source/xml.c:43:33: error: invalid use of incomplete typedef 'mxml_node_t' {aka 'struct _mxml_node_s'}
   43 |                         return n->value.opaque;
      |                                 ^~
make[3]: *** [Makefile:180: build/xml.o] Error 1

Homebrew Channel WebOS Error

Hello.
I have installed Homebrew Channel to my WebOS LG TV. But I cannot install any application from there. It always breaks with an error message.
The message is:
An error occured during installation: Unable to exec luna-send-pub: Error: Failed to call getIDs
I have no root access, but I learned that it isn't required.
The Homebrew Channel was installed from webosapp.club/online. Version 0.4.0
I can see that the latest one is 0.5.0 but it isn't there.
And I cannot update it from Homebrew Channel too - the error is the same.
What can I do? Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.