roxas75 / rxTools

rxTools
http://www.rxtools.net/
GNU General Public License v2.0
266 stars 81 forks source link

New theme engine with full i18n (WIP) #394

Closed dukesrg closed 8 years ago

dukesrg commented 8 years ago

How the new theme engine will look like on first iteration IMO:

Current development branch is https://github.com/dukesrg/rxTools/tree/New-theme-engine

dukesrg commented 8 years ago

There are several simple but time consuming jobs that must be done to make all of the above work.

There is no need to hurry, since the rest can take several weeks to implement. In my fork I have an example of theme.json and I'll shortly add readme there with sidenotes. Because this part is only a concept for now every one can propose and make a PR there. I won't make any PR from my fork into this master unless everything is done and hope to make it before 3.0 release ;)

AlbertoSONIC commented 8 years ago

You should contact Crusard at gbatemp, as he's the guy who made the gui. Also, there's a new theme almost ready, which will replace the current default one ;)

mariogamer2 commented 8 years ago

OOHHHHHHH want it XD

dukesrg commented 8 years ago

@AlbertoSONIC right, I just forgot. The new theme will be displayed the same way, i.e. only includes new images? In that case please keep the sources to use it when I complete the new engine ;)

AlbertoSONIC commented 8 years ago

Yep ;)

dukesrg commented 8 years ago

@mariogamer2 which one? New theme from pasta team or new engine? :)

mariogamer2 commented 8 years ago

What is the diff? (new from pasta team and the new engine)

dukesrg commented 8 years ago

Altered the head post with my updated POV. @AlbertoSONIC , @capito27 please consider adding the enhancement tag and warn me if there could be something inacceptable for master fork merge.

dukesrg commented 8 years ago

Some progress report: Made full functional menu similar to the original, except of settings change is not implemented yet (only display current values). Ideally I'd make a code generated third level submenus for dump nand file, language, theme, autoboot mode selections but due to the lack of time I'll put it on hold and make a static third-level menu for nand files dump, move sys/emu nand selections to 2nd level menu, and keep settings change behaviour similar to current release. That allows me to concentrate now on theme parser, and fix the rest later.

dukesrg commented 8 years ago

Most of the planned is done, though more left to do :) Tools is not altered, but menu and theme is completely moved to json and customizeable and can be translated with no additional bitmaps. Top menu ribbon is just an upper level selected items hierarchy.

urherenow commented 8 years ago

Nice work, but... How does this fit in? All of the tools have been stripped out and left for decrypt9 and emunand9 to deal with.

dukesrg commented 8 years ago

@urherenow That is all in my fork now. The theme engine itself are very easy to adopt, to keep the current main fork functions one only need to edit two json files. Colors, positions and backgrounds are fully customizable and language independent. My goal is to finish the rest of the interface and integrate all-in-one. I believe @d0k3 will help to make compatible module system so we can easily integrate theme engine into *9 tools and it's features in rxtools. Yes, yet another tool with blackjack and hooters. But this time, I believe, the ultimate one, but not ultimative, so list all your needs and thoughts.

mariogamer2 commented 8 years ago

@dukesrg How do you done this issues? (the progress bar and the case checkout)

dukesrg commented 8 years ago

@mariogamer2 Google git markup P.S. damn, I thought someone interested how is the actual progress :(

mariogamer2 commented 8 years ago

:P

Does anyone is here ? :( rxTools do not receive update...

dukesrg commented 8 years ago

@mariogamer2 Even rxtools looks like abandoned, it's not. At least I'm gonna release fully functional new custom themed with native font support version with mahjong and geishas any time Soon (TM)

Shadow322 commented 8 years ago

Yea it's all about AuReiNAND now

On Fri, Apr 8, 2016, 2:28 AM dukesrg notifications@github.com wrote:

@mariogamer2 https://github.com/mariogamer2 Even rxtools looks like abandoned, it's not. At least I'm gonna release fully functional new custom themed with native font support version with mahjong and geishas any time Soon (TM)

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/roxas75/rxTools/issues/394#issuecomment-207270187

dukesrg commented 8 years ago

@Shadow322 what? Fully graphical GUI with native 3DS font and externally managed GUI menu structure with full internationalization support?

dukesrg commented 8 years ago

Software rendering example of a builtin proportional font in native bitmap resolution and 2x downscaled and alpha-blended. Rendering speed is acceptable, though input lag is slightly noticeable, there are still a lot left to optimise, including glyph sheet adressing and alpha-blending. Also need to implement font file cache create on rxTools data installation and CN/KR/TW font switching on language change, because of the lack of Hangul and some of the Chinese characters in the default one J/E/U font, but nothing impossible. P.S. @Syphurith can you confirm chinese is still readable downscaled such way? Actually Taiwan font have an intermediate size characters which, I suppose, could be used for both CN and TW translations, but in that case there will be only one font size. In opposite, CN font have the similar size as in example, just more complete (you can see skipped spaces in example above)

Shadow322 commented 8 years ago

Un your kind of late to the party that option menu no longer exists as there is only one simple screen now

On Sun, Apr 10, 2016, 5:15 PM dukesrg notifications@github.com wrote:

Software rendering example of a builtin proportional font in native bitmap resolution and 2x downscaled and alpha-blended.

https://camo.githubusercontent.com/c1886ed2cba272402ba4f7cd35a4fe9ce54e70fb/687474703a2f2f692e696d6775722e636f6d2f5a664d396762422e706e67

https://camo.githubusercontent.com/62b9f991830c0211aa07210fbcef51afa3ccd28e/687474703a2f2f692e696d6775722e636f6d2f556677456848452e706e67

https://camo.githubusercontent.com/303131cb91e7241930dd71b47e0cfb47a9551b73/687474703a2f2f692e696d6775722e636f6d2f356d3174586b362e706e67 Rendering speed is acceptable, though input lag is slightly noticeable, there are still a lot left to optimise, including glyph sheet adressing and alpha-blending. Also need to implement font file cache create on rxTools data installation and CN/KR/TW font switching on language change, because of the lack of Hangul and some of the Chinese characters in the default one J/E/U font, but nothing impossible. P.S. @Syphurith https://github.com/Syphurith can you confirm chinese is still readable downscaled such way? Actually Taiwan font have an intermediate size characters which, I suppose, could be used for both CN and TW translations, but in that case there will be only one font size. In opposite, CN font have the similar size as in example, just more complete (you can see skipped spaces in example above)

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/roxas75/rxTools/issues/394#issuecomment-208083269

dukesrg commented 8 years ago

@

dukesrg commented 8 years ago

@Shadow322 IDC, there will be an easy customizeable GUI with basic rxtools functionality, in which any feature will be easy to integrate. Changing from the old-looking rxtools interface to the current master looking involves only one json file change and one additional theme with no code change at all. So ANY feature are as easy to add as just copy-pasting one function text and adding progress calbacks for time consuming ones.

dukesrg commented 8 years ago

Just published a preview release with automatic system font extraction

mariogamer2 commented 8 years ago

Good but I'm on A9LH and the proof a9lh branch is not working...

dukesrg commented 8 years ago

mariogamer2: Launch from spider/HBL, it is a preview anyway

dukesrg commented 8 years ago

Tasks list updated Preview alpha release published

mariogamer2 commented 8 years ago

@dukesrg You didn't deleted rxTools tools? XD

Also, will you continue the project after finishing new theme?

dukesrg commented 8 years ago

@mariogamer2 as you can see in the updated post, my plans advanced beyound just theme engine ;)

mariogamer2 commented 8 years ago

Will try it with spider. Hopefully a9lh soon....

dukesrg commented 8 years ago

@mariogamer2 If only anyone will help with that, otherwise later than Soon(TM)

mariogamer2 commented 8 years ago

Some error when compiling,like: error: unknown type name 'aes_ctr2' void GetNANDCTR(aes_ctr2 *ctr);

source/main.c:144:18: error: 'aes_ctr_key' undeclared (first use in this function) aes_set_key(&(aes_ctr_key){(aes_key_data*)NCCH.signature, AES_CNT_INPUT_BE_N

...

Also,the branch must be named New-rxtools XD

dukesrg commented 8 years ago

@mariogamer2 get this commit 61fdd58ed7904f358d43aa227fb39a44e4ca1e32 newer is just WIP and will be squashed. Will switch to development branch as soon as there are people trting to build now

mariogamer2 commented 8 years ago

What do you mean by "Will switch to development branch" ?

dukesrg commented 8 years ago

@mariogamer2 i mean will make a branch with non-build commits and PR from it time to time

mariogamer2 commented 8 years ago

I don't think @AlbertoSONIC will re-add tools to Rx...

Also,will you be able to fix some ssues and maybe update to latest D9WIP?

Sorry for all these question XD.

dukesrg commented 8 years ago

@mariogamer2 removing tools @AlbertoSONIC in fact gave me a carte blanche, so I'm not only making a GUI but also really deep code refactoring. I did check all current projects (well, except Cakes, since it mostly have its proprietary code and @mid-kid states it will be CFW-only project) and value of imported untouched or just slightly fixed code and hardcoded values indicates they need the same huge refactoring. Now we have a number of CFW and guys maintaining them, so I'm just doing what others won't. When (or if, who knows) I finish the job, we'll have an ultimate GUI with easy to integrate API, not just a bunch of source files to exploit in other projects.

mariogamer2 commented 8 years ago

Ok thank.

dukesrg commented 8 years ago

@mariogamer2 You can see, refactoring already took 3 month for me. It means any project will actually stop evolving with the new features for that time. Since actually only @173210 was refactoring rxTools since last year and all others is a one-man projects (again, except Cakes) I wasn't waiting any of help at leaset by the time all old features will work right way with unique GUI.

mariogamer2 commented 8 years ago

Cake had proprietary code????

dukesrg commented 8 years ago

@mariogamer2 Oops, my bad. Actualy looks the same "It works - don't touch it" more or less. Well, one more ace in out blackjack hand ;)

mid-kid commented 8 years ago

well, except Cakes, since it mostly have its proprietary code and @mid-kid states it will be CFW-only project

This sentence is so malformed I have no idea what you're taking about. Did you actually believe the april fools?

dukesrg commented 8 years ago

@mid-kid I just hoped you and @b1l1s polished old Normatt, archshift, megazig, [whoever else I didn't track looking fot the original one] long time ago ;) I didn't check since you're have a strict concept of Cakes and not gonna abandon it, right?

mid-kid commented 8 years ago

I indeed haven't cleaned up Normatt's sdmmc code, and whoever made the crypto code, mainly because it isn't my code, and I don't care enough about it, as long as it just works. It's not propietary in any way, as you can read how it works and it's not obfuscated in any way. Dunno what you mean by the strict concept. I do have my personal priorities and wishes, but not really anything strict.

dukesrg commented 8 years ago

@mid-kid unfortunately I'm often care about how it works :(

173210 commented 8 years ago

I just refactored SDMMC driver and crypto code for particular purposes though I don't remember well. I think it's OK to keep those code as it is.

dukesrg commented 8 years ago

@173210 Your SD code looks very good, but crypto code with one block processing based on partition decryption code was awfull. I've just committed to my fork a refactored version of AES engine wrapper code which works with a single function call for any size of input data and automatically CTR/CBC vector adjustment between batches. Initial font and firmwares decryption and tmd/app check (MSET4 menu processing) already ported to that one.

TuxSH commented 8 years ago

@173210 The addresses for every ARM9 exception handler except Data Abort (0x08000008 etc...) are incorrect (off by 4). You should read the unprotected bootROM or kernel9 again :yum:

173210 commented 8 years ago

@TuxSH Really? I should have confirmed that the address is correct by using the handler. Note that the address doesn't point the branch instruction (probably it's something kind of ldr pc, [pc, #-4]). If you think it's wrong, please open a new issue.

mariogamer2 commented 8 years ago

@dukesrg Does it is possible to implement injection of any hs.app like D9WIP?

dukesrg commented 8 years ago

@mariogamer2 I have this in plans, just not completely certain about encryption details, but wish do to it all at console side.