Hacking WiiFlow Lite Einstein Mod

einsteinx2

Well-Known Member
OP
Newcomer
Joined
May 3, 2018
Messages
55
Trophies
0
Age
38
XP
363
Country
Colombia
WiiFlow Lite Einstein Mod

This mod is super easy to install as runs in it’s own apps/wiiflow_einstein directory with it’s own ini file, so it can be used alongside upstream WiiFlow Lite, however it will share the wiiflow settings directory. If there's demand, I can also create alternative builds that use the wiiflow_lite and wiiflow folders for compatibility with existing channels and Priiloader forwarders.

Latest official release is located here: https://github.com/einsteinx2/wiiflow-lite-einstein-mod/releases/latest
Source code repository located here: https://github.com/einsteinx2/wiiflow-lite-einstein-mod
Source code for the forwarder app and channel here: https://github.com/einsteinx2/wiiflow-lite-einstein-mod-forwarder

Forked from the WiiFlow Lite by fledge68 located here: https://sourceforge.net/projects/wiiflow-lite and more info here: https://gbatemp.net/threads/wiiflow-lite.422685

First off I want to give a gigantic thanks to Hibernatus, zorglub07, Narolez, r-win, hulk, miigotu, OverjoY, and FIX94 for all of their work on the original WiiFlow versions, as well as @FIX94 again for creating the Nintendont loader and to @fledge68 for creating WiiFlow Lite fork with tons of bug fixes and improvements which my mod is based on! Without them, this wouldn't be possible. They've done all the heavy lifting so far. :bow:

The purpose of this repo and mod is to have a place to freely work on my own modifications and improvements to WiiFlow Lite. My main goal is to fix bugs, improve performance, and improve the user interface and user experience as much as possible.

I will closely track upstream and merge in any new revisions to stay up to date and hopefully many of my changes will be merged upstream as well.

I've changed APP_NAME to WiiFlow Lite Einstein Mod and added my name to DEVELOPERS alongside fledge68. Also I've removed the SVN revision script along with the .svn folder since I’m not using SVN. I’ve decided to use my own versioning system starting at build 1 to better track my own changes and avoid confusion, so I'll just be manually updating the source/svnrev.h file as I want to update build numbers. I've decided to leave the SVN_REV variable name alone to prevent other source code changes. I’ll always note in the commit what the current SVN version is when I merge in new changes. I’ll keep the APP_VERSION the same as whatever upstream WiiFlow Lite has set.

I’ll attempt to keep my changes mergeable (i.e. not make drastic refactorings, change brace style, variable naming conventions, etc). Also, I’ll attempt to keep compatibilty with the wiiflow_lite.ini file by only adding options, never renaming existing ones. Same goes for compatiblity with the wiiflow settings directory. While over time this may not be possible if this version drifts too far from WiiFlow proper, but I'll do my best.

Installation:

Follow these steps:
  1. Download the latest release zip file from here: https://github.com/einsteinx2/wiiflow-lite-einstein-mod/releases/latest
  2. Unzip it and copy the 2 folders inside the apps subfolder to the apps folder on your SD card
  3. Copy the channel wad file from the wad folder to your SD card
  4. If you're an existing WiiFlow Lite user, copy your existing wiiflow_lite.ini file to apps/wiiflow_einstein so you can keep your settings
  5. Install the channel wad using your favorite tool (channel is necessary to properly return from Wii games)
If you'd like to autoboot into it using Priiloader:
  1. Boot into Priiloader by holding the reset button while your Wii turns on
  2. Install the apps/wiiflow_einstein_forwarder application
  3. In Priiloader settings, choose to boot to installed app

Upgrading:

Every time I make a change I include the compiled boot.dol and bin files in the commit, so to upgrade to the latest version at any time just do the following:
  1. Browse to apps/wiiflow_einstein on your SD card
  2. Replace boot.dol with this one: https://github.com/einsteinx2/wiiflow-lite-einstein-mod/raw/master/out/boot.dol
  3. Replace the 3 .bin files in the bins folder with these: https://github.com/einsteinx2/wiiflow-lite-einstein-mod/tree/master/out/bins
If you want only the latest official releases, do the same, but use the files from the latest release zip file here instead: https://github.com/einsteinx2/wiiflow-lite-einstein-mod/releases/latest

There's no need to update the channel or priiloader forwarders on every update as they simply run apps/wiiflow_einstein/boot.dol, so they will always launch the latest one you install. However, I may improve them in the future and will always include the most updated versions in the latest official release zip files.

Changelog since WiiFlow Lite r1137:

Bug fixes and improvements:
  • Fixed compiling on macOS and probably Linux (one of the files had an import using a backslash)
  • Added compilation notes for macOS High Sierra
  • App now runs from the apps/wiiflow_einstein folder so it can be used alongside wiiflow_lite
  • Forwarder for Priiloader and a channel wad located here: https://github.com/einsteinx2/wiiflow-lite-einstein-mod-forwarder (note: the channel uses WFLE rather than WFLA to differentiate, though for some reason when I install both channels I only see mine, I need to look into it and make a better one, I just dropped the forwarder dol into an existing WiiFlow Lite forwarder channel and edited the name and title id)
  • Added logging functions for performance testing (makes it easy to print time diffs)
  • Loading screen now shows immediately, then starts animating after ISFS initializes to prevent a stutter
  • No longer reloading IOS if we’re already on the preferred one (in my case it boots with IOS 58 so it isn't necessary to reload it, so we can save some boot time)
  • Removed an unnecessary sleep when initializing ISFS (this and no longer reloading IOS cut boot time by almost 2 seconds for me!)
  • Remove 20 second wait before Wiiflow boots for people using SD cards only!! It checks to see if the app folder is on the SD card then checks to make sure no sections are set to USB partition, and if not, it skips mounting the USB drive completely saving about a half second or so on boot time compared to a hard drive setup and removes the 20 second timeout delay!
  • Now using the config domain defines instead of strings everywhere (Eventually I’d like to make defines for every setting option and stop using strings directly as well.)

UI/UX Changes:

Previously when flipping a cover with the A button, only the B button can go back and all of the other UI disappears. It was super confusing the first time, I had thought I was stuck. Because I hit A to flip it I expected A to flip it back.

What I ended up doing was getting rid of the flipped cover alternate mode altogether as it doesn't seem to be very useful. It lets you zoom and stuff but the textures aren’t high resolution enough to let you see any more info than not zooming, so I don't really see the point.

Now you hover over the game cover, hit the A button to flip it, then it will flip in place and nothing else changes. Then just hover over it and hit A again to flip it back. I think that's much nicer UX.
 
Last edited by einsteinx2,

GreyWolf

Well-Known Member
Member
Joined
Mar 2, 2015
Messages
5,399
Trophies
0
Age
54
XP
1,516
Country
United States
One small correction: FIX94 didn't write the original WiiFlow as far as I know, he only modded it after it stopped being developed. The docs/Content.txt file has a list of where the known components came from but I believe Hibernatus started the project.

There are some notes on how the project changed hands here, too.
 
Last edited by GreyWolf,

einsteinx2

Well-Known Member
OP
Newcomer
Joined
May 3, 2018
Messages
55
Trophies
0
Age
38
XP
363
Country
Colombia
One small correction: FIX94 didn't write the original WiiFlow as far as I know, he only modded it after it stopped being developed. The docs/Content.txt file has a list of where the known components came from but I believe Hibernatus started the project.

There are some notes on how the project changed hands here, too.
Thanks for the info! I had no idea as I just found out about this project recently. I didn't realize there was so much history and drama haha. Anyway I've updated the post to properly credit everyone mentioned in the post you linked.
 

Tetsuo Shima

Well-Known Member
Member
Joined
Oct 29, 2008
Messages
1,874
Trophies
2
Age
45
XP
4,898
Country
Italy
Great einstein2x! I hope to see many nice new features and improvements, and maybe you and fledge can even merge, who knows... but two different brains means a further advancement for Wiiflow

Yes, Hibernatus is never cited enough. I remember that historical thread called coverflow-demo with a dowloadable demo. Everyone was impressed! Well, look how far little Wiiflow has come^_^
 

einsteinx2

Well-Known Member
OP
Newcomer
Joined
May 3, 2018
Messages
55
Trophies
0
Age
38
XP
363
Country
Colombia
Great einstein2x! I hope to see many nice new features and improvements, and maybe you and fledge can even merge, who knows... but two different brains means a further advancement for Wiiflow

Yes, Hibernatus is never cited enough. I remember that historical thread called coverflow-demo with a dowloadable demo. Everyone was impressed! Well, look how far little Wiiflow has come^_^
Most likely I'll always have a separate fork or mod or whatever name you want to use, as it's easier to quickly make changes to my own repository rather than getting merge approval. Then Fledge can pick and choose what he wants (I'd assume he'd want all the bug fixes but we may disagree on UI changes).

My purpose for creating this mod is definitely self-serving. I wanted to be able to make some modifications, fixes, and improvements to fit my personal gaming setup and needed a place to do it. So this is it. But it's win-win, as it's all open source so anything good I end up doing can make it back to WiiFlow Lite, or people that want to can just use my version.

The Wii is actually just one part of a much larger gaming setup I'm building for my living room, including a modded Dreamcast, modded Xbox, (soon to be modded!!) Switch, and an emulation PC. So I'll be hacking a bit on all of them to make changes as I want for my setup. Especially the Switch it super interesting to me as they just got homebrew running on all firmware versions, the hardware hack is doable with tin foil (no joke) and cannot be patched in software, so all Switches currently released are supported. Plus it's a standard ARM chip setup for easy (hopefully haha) development. So I'll likely be messing with that pretty soon as well.

I’ll definitely keep hacking on WiiFlow and will continue to fix bugs as I find them and try and implement some requests, but as I mentioned, my reasons were always just to improve it a bit to make my setup a bit nicer. So with the Switch scene heating up, plus the other platforms (finally got the Dreamcast tool chain mostly setup), I’ll never have a ton of time to dedicate to it. I’m already working on my minimal free time as it is. Anyway just wanted to keep expectations managed.

But do feel free to create issues in the GitHub repository. I do read all of them and comment as I have time, and anything that looks quick or I personally want for myself, or I just really like the idea, will likely get done eventually.
 

kaisersozeh

Well-Known Member
Member
Joined
Mar 21, 2018
Messages
260
Trophies
0
Location
Phobos
XP
1,054
Country
Antarctica
@GreyWolf
or Anyone!
I'm unable to message so i hope you don't mind me tagging you and popping this here - it really applies to anyone. thanks

Hello
We've never spoken, but I lurked many years ago, and I remember then that your comments and expertise were always accurate and measured.
I'm helping out, such as I can, with Einstein's mod of wiiiflow_lite.
He is completely new to wiiflow, and is reliant on me for expertise I don't have - I'm involved because we're share mutual interests - I'm an old time wiiflow user who hasn't updated since 2013, and I'm putting together a QuakeGX wiiflow plugin pack (it's looking good! - pleased :D )
I can't help feeling the slightest of perusals from someone with your knowledge would be of enormous help at this early stage
- would you mind looking over the issues and, if interested, the general documentation we've generated?
The issues are a wish-list more or less gleaned from gbatemp - but in particular I'd like to draw your attention to issues titled "User Consult" - I'd especially appreciate your input on how to go about conulsting users - in addition to being something of a sage you're also a forum regular!
Thanks for reading this far!
kaisersozeh
p.s. Just before i sent this, It's become apparent that Einstein's time for this is getting narrow - the switch has been hacked, a far more interesting prospect! - so if i could ask you to note if anything is particularly difficult or particularly easy low-hanging fruit - that would be very useful
Thanks!
https://github.com/einsteinx2/wiiflow-lite-einstein-mod/issues
 
Last edited by kaisersozeh,

Wiimpathy

Well-Known Member
Member
Joined
Mar 3, 2010
Messages
1,013
Trophies
2
XP
3,131
Country
France
  • Like
Reactions: rogerioronin

kaisersozeh

Well-Known Member
Member
Joined
Mar 21, 2018
Messages
260
Trophies
0
Location
Phobos
XP
1,054
Country
Antarctica
That may be a bit late in Wii's life but I'm particularly interested in the cache building cf. https://github.com/einsteinx2/wiiflow-lite-einstein-mod/issues/5
If einsteinx2 manage to write a pc app to create the cache files, I'll applaude till my hands explode. Automating the task in WiiFlow isn't as hard but that'd be cool too.
Searching the database by keyword would also be great.
@Wiimpathy -could do with your input on this issue - regarding hidden covers
You posted about this recently on wiiflow_lite - i can't seem to find the post.
https://github.com/einsteinx2/wiiflow-lite-einstein-mod/issues/25
 

kaisersozeh

Well-Known Member
Member
Joined
Mar 21, 2018
Messages
260
Trophies
0
Location
Phobos
XP
1,054
Country
Antarctica
-----------------------------------------------------------------------------------------
- You can access a categories page with 'catpage=' : link . I never tried this one though.
- Having a button that goes directly to a category is also possible with category=Number.
- You can hide the files by setting them to hidden category. See WiiflowWiki.

For example, let's say you have a categories_v4.ini from the masterpiece pack. In Wiiflow, you put all kid's stuff in the 'Early Childhood' category and the adult movies in 'hidden'. Then, edit the source_menu.ini, in your mplayer section add 'category=14' under 'magic=4D504345'. Now, if you click on mplayer button you should only see cartoons or whatever. If you want adult movies, B on star, tick 'hidden' and enter the parental code.

I really like this feature, you can have a button for mario or zelda games on all machines for instance. You just have to combine the plugins and add the 'category=?'.
-----------------------------------------------------------------------------------
Could you expand on this - what does it mean - how else can this be used?

My Brain hurts! - it's not going in!
:rofl:

Edit From Wiimpathy:
For ex. if you just want to show a clean romset, you'd put all hacks/translations in hidden categories. Adult content same thing. Multi disks, only display one. etc...

Now, something different with another feature. Say you want all Mario from all machines Nes, pc88 etc.
- First create a category mario in categories_v4.ini under [GENERAL] cat18=Mario for instance.
- Create a new button in source_menu.ini combining all the corresponding plugins(the ones that have a mario game) :

[BUTTON_50]
image=mariob.png
image_s=mario.png
source=plugin
magic=4E4F3634,53454761,46434D44,534e4553,534E4542,4d45484e,474D4264,474D4274,56425854,53454761,4d45449e,32363030,37383030,5749584C,54554B41,4150504C,4336344E,424D5358,4d414d57,51554153,
category=18
emuflow=1

As you can see it's 2 different features and there are surely other purposes.
 
Last edited by kaisersozeh,
  • Like
Reactions: Hakaisha

Hakaisha

Well-Known Member
Member
Joined
Sep 17, 2014
Messages
236
Trophies
0
XP
1,456
Country
United States
@kaisersozeh , replying to you here, as I feel this is a more appropriate thread to continue discussing WiiFlow Lite developments, without getting too far off-topic in SuperSonic's WiiMC thread. ^_^

Thanks for all of your kind compliments and suggestions. I've checked out the GitHub for Einstein's build, and I think pretty much all of the suggestions in the Issues are excellent ideas. I need to make a GitHub account, so I can comment and add a couple issues, such as using folders as titles within a source.

I'm afraid I don't know what you mean by mmc integration with WiiFlow, however. :unsure:
 

Hakaisha

Well-Known Member
Member
Joined
Sep 17, 2014
Messages
236
Trophies
0
XP
1,456
Country
United States
With 3D boxes, WiiFlow has great potential to be a far more expressive front-end for media than even the most recently released media centers on modern hardware.

Boxes molded in the shape of Blu-ray cases, VHS boxes, DVD cases, Laserdisc, and Jewel CD cases are all made possible. I have already made coverflows for blu-ray and VHS (this also works great for vertical Super Famicom boxes). DVD-shaped boxes already come standard with WiiFlow, of course.

In this way, we are able to showcase multiple generations of the video format in WiiFlow, in the same way we are currently able to showcase multiple generations of video game consoles.

As it stands now, I can click the Blu-ray button (WiiMC plugin) from my SourceFlow and watch a movie. It works great.

However, it would prove very beneficial to have the option to use folders as selectable titles within a source button, which leads to more titles within. This would make it very easy to have categories within a source, without littering those categories all over your Source Menu/Source Flow.

For instance, if you click a Source called "WiiMC" from your Source Menu/SourceFlow, you will see a new coverflow load containing your folders with titles such as "Action", "Horror", "Anime", "TV Shows", etc. Click one of these, and you will see another coverflow load containing the content within that file or category. I believe this would be a good all around solution to have a single Source loading all your media.

This option would also "fix" WiiFlow's Music Player plugin, as it would enable you to have selectable albums or categories with cover art, which could then be selected to show the audio files within; instead of all of your audio files being in one single coverflow without organization.

Using screenshots in WiiFlow looks best in 2D, but with how WiiFlow Lite is currently setup, this is only possible if everything is set to 2D covers. The option to enable 2D covers on a per-plugin, per-source or even per-category basis would prove very beneficial for this purpose. For example, you could have your TV shows in 3D boxes, then have the episode screenshots show up in 2D.

On the subject of TV shows, the ability to give each screenshot or box cover a "Title" of text either above or beside it would provide the ability to make floating lists that can be navigated in a vertical nature or horizontal nature. Or any angle really, since it's a 3D space.

As it stands now, only 1 Title of text can appear on the screen at once. If we were able to add or subtract multiple instances of the title text, in the same manner we can add or subtract the amount of covers on-screen on a per-coverflow basis, it would prove very beneficial.

The metadata idea is brilliant. It would be great for games and media alike. I have been considering the possibility of utilizing WiiFlow's banners for that purpose, and adding the info within those as a vertical scrolling image animation with a transparent background layer.

Alas, that would be a job that would take ages to do for a large library. Something more automated and cleaner than the banner is able to represent would be ideal for metadata.

Transitioning background images that fade in after 1-2 seconds of hovering over a particular title would also be a nice touch for the media center feel. I believe WiiFlow originally used to have a similar feature called "Fanart" that would play an animation on screen or in the background after a title is selected.

If WFCs were able to retain the transparent layer of PNG files, we would also be able to use floating 2D logos or custom-shaped icons as selectable covers, which would be ideal for folder/category coverflows, as well as being able to make SourceFlow more closely resemble something similar to Emulation Station and HyperSpin's appearance.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users