Presenting: The BrainSlug Channel

      Presenting: The BrainSlug Channel

      As part of my efforts to create a network dumper for the game itself, I've written a generic game patching engine called the BrainSlug channel. I'm pleased to announce that the first version is ready, though it's still VERY primitive. The channel is capable of inserting modules written in C into any game that either wrap around or replace the game's methods, allowing us to add new functionality. My next task will be to use this ability to dump the network traffic to the SD card, but that will take quite a while, and in the meantime other people can be using the channel.

      For a first test I've written a module that halves the games screen size and utilises the extra space to render a console window with the game's debugging output. The module also enables network debugging messages in games which have them. Hopefully this will help gain a bit more insight into what the game is thinking as it does the connections. So far I've tested it with a wide range of games and it seems to work across the board, although some games like Wii Sports don't actually have debugging messages (or have them disabled) and others like Brawl have too many!In the latest update I've made the console output also go to the SD card as GAMEID.log.

      You can download a pre-packaged version of the channel with the console module (plus a USB gecko debugging module) here: chadsoft.co.uk/downloads/bslug-console-1.zip
      Just extract it to the root of your SD card and launch via the Homebrew Channel. No special exploits are used or required, all patching occurs on the PPC core. It should work on Wii U, though at the moment it relies on the RESET button if things go wrong, which Wii U doesn't have for some reason.

      The channel is open source and you can download it's cide at GitHub here: github.com/Chadderz121/brainslug-wii
      The GitHub repository contains vast README files which explain how to develop new modules as well as the code for the console module and a template module for those interested.

      and just to show off, here are some screen shots:




      Edit: Update information on release v0.1.2.
      The new release adds a libfat, libsd, libfat-sd and console-sd module. This outputs the same log messages as console-gx but writes them to GAMEID.log. In general the combination of libfat, libsd and libfat-sd allow modules to access the SD, which is useful in all sorts of ways.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Chadderz ()

      Awesome work!

      I'll read up on making modules and see if I can port my HTTPS->HTTP patcher to this. Seems like it should be simple enough.

      EDIT: I've worked with it a bit and have a question plus an issue.

      Question: How do you specify a patch to run at launch? I tried hooking `_start' but that didn't seem to work for SSBB.

      Issue: MXML seems to be a prerequisite but you don't list it in the build guide.

      EDIT2: Found out why my patch wasn't working, apparently two modules can't hook the same symbol at the same time. (The gekko module also hooks `_start') Could it be possible to export different symbols to the modules if they hook the same functions and try to chain them together?

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Toad King ()

      I've tried it out and have two questions:

      - Would it be possible to write all those Text also to the SD card (with time stamp in front of each line)? Then we could easier search for things in the log instead of re-watching the video over and over - especially when there are too much messages in a short time.
      - Is it possible to make this work with USB-Loaders / a patched USB-Loader variant?

      DevkitPro Archiv (alte Versionen / old versions): wii.leseratte10.de/devkitPro/
      Want to donate for Wiimmfi and Wii-Homebrew.com? Patreon / PayPal

      Dieser Beitrag wurde bereits 0 mal editiert, zuletzt von Leseratte ()

      Leseratte schrieb:

      I've tried it out and have two questions:

      - Would it be possible to write all those Text also to the SD card (with time stamp in front of each line)? Then we could easier search for things in the log instead of re-watching the video over and over - especially when there are too much messages in a short time.
      - Is it possible to make this work with USB-Loaders / a patched USB-Loader variant?

      Judging by his commit messages, some sort of SD card logging was planned but took out for this release because it wasn't working yet.

      Also, as long as the ABI stays constant, USB loaders could totally implement support for brainslug modules. The issue is I don't know if any USB loaders are still in active development.
      I've just realised the zip and the repository had the debug="on" flag in bslug/symbols/ipc.xml. This means the channel will print out the address of the IOS methods then require you to press reset to start the game. I've updated the download and repostiory to prevent this. Redownload or edit the xml directly if you've already got it.

      Toad King schrieb:

      Awesome work!

      I'll read up on making modules and see if I can port my HTTPS->HTTP patcher to this. Seems like it should be simple enough.

      EDIT: I've worked with it a bit and have a question plus an issue.

      Question: How do you specify a patch to run at launch? I tried hooking `_start' but that didn't seem to work for SSBB.

      Issue: MXML seems to be a prerequisite but you don't list it in the build guide.

      EDIT2: Found out why my patch wasn't working, apparently two modules can't hook the same symbol at the same time. (The gekko module also hooks `_start') Could it be possible to export different symbols to the modules if they hook the same functions and try to chain them together?

      Ah, I'm suprised two modules can't replace the same symbol, I would've expected it to chain. What did happen? At any rate you could remove the gekko module temporarily.

      Thanks for the heads up about mxml, I'd forgotten that prerequiste is not in libogc by default these days. Hopefully that's just for compiling the channel which people shouldn't generally need, as compiling the modules is far more interesting.

      Leseratte schrieb:


      I've tried it out and have two questions:

      - Would it be possible to write all those Text also to the SD card (with time stamp in front of each line)? Then we could easier search for things in the log instead of re-watching the video over and over - especially when there are too much messages in a short time.

      Toad King is right, I will have logging to the SD card, but it may take another week to finish realistically. I'm hoping slowed down video captures will provide necessary information in the meantime. If it's too fast you could add a delay to the logging code. You can also indidividually disable the various categories of DWC logging methods.

      Toad King schrieb:


      Also, as long as the ABI stays constant, USB loaders could totally implement support for brainslug modules. The issue is I don't know if any USB loaders are still in active development.

      Yes, hopefully someone with more time than me can wire my code into one of the USB loaders (and perhaps just a nicer disc loader) to make a much more powerful channel. The specifications for the modules are implicit in the code, I can make them explicit in a file if necessary.

      gskw schrieb:


      Thanks a lot, I am going to learn a lot from the code!

      Yeah, my hope is that people can use this to do lots of other cool things. Normally developing extensions to games is horrific work, the CTGP-R menus took me 2 months. As of CTGP-R 1.03 we developed a system similar to BrainSlug (though far less general) but I realised it could be used by lots of people, hence this release.
      Nice tool. But I wont test it at the moment, because I'll do other things.

      WIT: Wiimms ISO Tools
      Verwaltet Plain ISO, WDF, WIA, CISO, WBFS, FST: kann Extrahieren, Erstellen, Patchen, Mischen und Überprüfen

      SZS: Wiimms SZS Tools
      Verwaltet SZS-, BRRES-, U8-, BMG-, BREFT-Dateien uvm.



      PN ohne persönlichen Charakter werden ignoriert. Support-Anfragen gehören ins Forum.
      I've just made a few minor changes. I've fixed the bug with multiple modules replacing the same symbol, that now works fine so you can use the https module and the gekko module at the same time now. I've added some symbols to the modules header: bslug_game_start and bslug_game_end which should make it easier to write patches like the https module. I've updated the main download with this new version. @Toad King I notice you added the bslug_include directory to the inc_dirs of the https module; this should be unecessary just `make install' in the root of the repository to add the headers to devkitpro/bslug, which will be searched automatically.

      Chadderz schrieb:

      @Toad King I notice you added the bslug_include directory to the inc_dirs of the https module; this should be unecessary just `make install' in the root of the repository to add the headers to devkitpro/bslug, which will be searched automatically.

      That was just added because I couldn't do a full build because of no MXML.

      EDIT: misread that, I get it now.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Toad King ()

      I've just made a new release v0.1.2. The new release adds a libfat, libsd, libfat-sd and console-sd module. This outputs the same log messages as console-gx but writes them to GAMEID.log. In general the combination of libfat, libsd and libfat-sd allow modules to access the SD, which is useful in all sorts of ways. I can now move on to making a network dumper to the SD.
      It seems there s a file missing:

      Quellcode

      1. src/search/symbol.c:32:18: fatal error: mxml.h: No such file or directory


      mfg

      Meine :Smiley_v3_Nintendo_Wii: : 3.4 -> 3.2 -> 4.2, cIOS rev 19, USBLoader gx, DVDx, Softchip r90 und Bootmii! :Smiley_v3_Wii_Remote: x2, :Smiley_v3_Wii_Nunchuck: x 2
      Meine :Smiley_v3_Nintendo_GameCube: : :Smiley_v3_GCN_Wavebird_Controller: x 3
      Mein :Smilie_v2_Nintendo_DS: : R4, R4i


      Zockst du CoD: Modern Warfare Reflex oder WaW? Dann PN an mich!!

      Would it be possible to implement a way to boot the system menu with that logging enabled?
      (Or is there a way to get those log messages with an USB gecko? I did not found one ...)

      DevkitPro Archiv (alte Versionen / old versions): wii.leseratte10.de/devkitPro/
      Want to donate for Wiimmfi and Wii-Homebrew.com? Patreon / PayPal

      Dieser Beitrag wurde bereits 0 mal editiert, zuletzt von Leseratte ()