Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upcoming changes in 2.0 release #50

Open
ShendoXT opened this issue Mar 10, 2024 · 11 comments
Open

Upcoming changes in 2.0 release #50

ShendoXT opened this issue Mar 10, 2024 · 11 comments

Comments

@ShendoXT
Copy link
Owner

ShendoXT commented Mar 10, 2024

As you may know I started a macOS port of MemcardRex.

Since it's basically a new application (except for the mc handling class and hw interfaces (and those got updates too))
and the new OS, I tried to (had to) do the things a bit differently, more streamlined under the hood.

That introduced a few changes in the way the application works (for the better) so I decided to port things over to the Windows build. The idea is to unify codebases in the end so the porting process for the changes would be easier in the future.

If you checked out the source you would undoubtedly noticed that it's quite a mess (especially the GUI department)
and that a lot of things could have been done way differently and better.
That's because way back in the day (2009.) I was actually learning C# as I was writing the application. Fun fact, first versions of MemcardRex were written using Visual Basic 6, then VB.NET and finally C#.

Changes:

  • Slots (blocks) are now handled on a per save basis. If you select any slot, no matter if it's linked that save is now selected and all affected slots are also selected in the list.
  • Linked slots now display icon and region (copied from initial slot).
  • Added undo/redo. I also want to add the history list where you can in real time traverse through changes in the file. No more annoying save editing popup messages. Any accidental commands can be reverted.
  • Better support with proper scaling on HiDPI screens.
  • Streamlined hw interfaces, less duplicated code and way easier to add new interfaces in the future.
  • More PocketStation support. I would love to add app icon to the information window. And a way to read serial/dump bios, etc.
  • Dark theme support with color accents. All the OSes are doing it and it's very cool. I must follow suit.

Currently the Windows build is not in an user usable state, most of the save edit menu handling is ripped out in
order to rewrite it. The moment it becomes usable I'll update the repo.

Also, while it may look I got the dark mode down these are weeks of hacking away on WinForm controls, they are just not
dark mode friendly (looking at you listview and tabpage)... I still have to fix some bugs.

mcrx 20 win

I'll use this issue to post updates on the Windows version. Feel free to chime in with your own thoughts.

@JukePlz
Copy link

JukePlz commented Mar 11, 2024

That's looking great!

TBH, I was preparing my own dark mode PR for 1.9 using BlueMystical's module but still had to fix most icons and didn't look nearly as clean as that. When I saw in my last issue you had changed the icon size and colors to follow Windows accent settings I figured it was better to wait for 2.0 for this very reason.

MemcardRex_2024-03-11_04-33-36

@JukePlz
Copy link

JukePlz commented Mar 11, 2024

As for my mixed UX suggestions, here's a couple things I've stumbled upon that I feel could be improved. Didn't think it was worth opening a million feature requests for these but this feels like a good time for feedback:

  • Multi select for the temp buffer: This probably would need the save compare feature disabled while there is more than one save in the temp buffer, but would make it much easier to organize saves across cards.
  • Disable the [SAVE] button when there are no changes to save. (depending on the state of selected tab)
  • Allow removing "linked" blocks when they are orphaned and marked as deleted: This can happen when a multi-block save is deleted and then overwritten (in the PS bios manager or a game), and the only way to remove them right now in MemcardRex is to make a new card and import every save one by one.

As for the current design, the only thing I see a bit odd is the new History list integrated in the same grid as the saves. If it represent the history of actions for the whole memory card I would move it to it's own panel. Either a setting with a pop-up window or a collapsible panel docked to the right side of the main window.

@ShendoXT
Copy link
Owner Author

Thanks for the feedback, I appreciate it. Your dark mode is not half bad either.

  • Multi select for the temp buffer: This probably would need the save compare feature disabled while there is more than one save in the temp buffer, but would make it much easier to organize saves across cards.

Interesting idea, got me thinking.

How about this, each time a save is placed to temp buffer, a new icon is added to toolbar,
just icon, without text. I think last 15 copies should be able to fit on the toolbar.

That way you could copy a bunch of saves and just click the icons to paste them on the card.

Multi select doesn't sound that bad either but it could be a pain to implement.

  • Disable the [SAVE] button when there are no changes to save. (depending on the state of selected tab)

Makes sense, yeah

  • Allow removing "linked" blocks when they are orphaned and marked as deleted: This can happen when a multi-block save is deleted and then overwritten (in the PS bios manager or a game), and the only way to remove them right now in MemcardRex is to make a new card and import every save one by one.

I already kinda solved that in the new builds, stray links won't show at all, instead they are marked as free,
same how the BIOS and games treat them.

As for the current design, the only thing I see a bit odd is the new History list integrated in the same grid as the saves. If it represent the history of actions for the whole memory card I would move it to it's own panel. Either a setting with a pop-up window or a collapsible panel docked to the right side of the main window.

I'll try to destinguish it more.

@JukePlz
Copy link

JukePlz commented Mar 12, 2024

Interesting idea, got me thinking.

How about this, each time a save is placed to temp buffer, a new icon is added to toolbar, just icon, without text. I think last 15 copies should be able to fit on the toolbar.

That way you could copy a bunch of saves and just click the icons to paste them on the card.

Multi select doesn't sound that bad either but it could be a pain to implement.

That could work. I guess the mouseover tooltip working as "title" information would be enough to distinguish similar saves (same icon, same game). Would be even better if CTRL+V pasted the saves one by one, removing the icons from the toolbar as it goes. Not as fast as multi-paste but still faster than current limitations.

Another small (unrelated) thing that came to mind is that associated files open in different windows when called from Explorer, instead of opening in a new tab. This may or may not be preferable depending on what the user is doing. Some programs, like VLC and Notepad++, handle this by having a "Only allow single-instance" setting to decide between opening files in new windows or tabs.

@ShendoXT
Copy link
Owner Author

I finally got the code in a somewhat usable state so I updated the repository.
Still not ready for the full release but things are slowly moving along.
Dark mode enabled by default so you can take it for a spin.

Next thing I'll be working on is the undo/redo along with the history list.

One thing to note is that in order to get accent colors to work you must use AccentColoriser.
Microsoft for some reason left the highlight color blue no matter the color selected and this application fixes that.

mcrx2green

@ShendoXT
Copy link
Owner Author

ShendoXT commented Aug 7, 2024

PocketStation is becoming a first class citizen in 2.0 😉

Screenshot 2024-08-07 183642
Screenshot 2024-08-07 183705
Screenshot 2024-08-07 183729

@DavidOliM
Copy link

Any plans for a linux build? The windows version works fine under Wine but it would be nice if we could have it installed properly on linux.

@ShendoXT
Copy link
Owner Author

Yes.

I was planning to start working on a linux build after finishing macOS but ( thankfully :) )
robxnano beat me to it and started working on the linux version.

You can check out his linux branch https://github.com/robxnano/memcardrex/tree/linux/MemcardRex.Linux
it looks very cool and you can already browse saves. I'm very exited for it.
365847323-ee9d5268-a6aa-442d-84de-47b663dfa4d7-2

@DavidOliM
Copy link

That's awesome! I'll be keeping an eye out for that version <3

@alex-free
Copy link

Yes.

I was planning to start working on a linux build after finishing macOS but ( thankfully :) )

robxnano beat me to it and started working on the linux version.

You can check out his linux branch https://github.com/robxnano/memcardrex/tree/linux/MemcardRex.Linux

it looks very cool and you can already browse saves. I'm very exited for it.

365847323-ee9d5268-a6aa-442d-84de-47b663dfa4d7-2

As someone who uses a PS3MCA + mono and the current windows builds on Linux this is incredibly exciting.

@ShendoXT
Copy link
Owner Author

I'm having fun with the history list.
A very cool way to traverse trough changes in the file imho.

mcrx history demo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants