Changing the project for the better (or best :D )

Jan 22, 2015 at 5:57 AM
So I have been thinking over the last few months when deciding what kind of changes to implement to what emulators to benefit them the most. And I realized that one thing about PCSX-Reloaded that may be holding it back is the location it resides in.

I think switching to GitHub might be a good step in the right direction. GitHub is more popular with developers, and it works with SVN and Git. There are more reasons, but I think you guys know why I would suggest that.

We should also change the license from GNU GPL v3 to GNU GPL v2+. That way people can choose which license they want to use, so less people complain about v3's issues, and more people commit!

Going back to GitHub for a sec, if you guys would be willing to switch, I could do pretty much anything you guys needed. On CodePlex, I can still update things and report bugs and what not, but it just seems like it would be easier on GitHub. Also, branches. We could have separate branches for different things we are working on. Patches would be easier with pull requests. Plus, full undo and redo commit support. I could go on and on about GitHub. :)

I would be willing to help you copy all issues, and patches and what not to GitHub. I would also be willing to help you guys adjust your source code and directories and things to better suit the change. I think this could really benefit the project. I would only suggest things like this if I really believed it would help.

Feel free to make suggestions, ask questions, or anything else. The point of a discussion is just that. :)

TL;DR Please move the project to GitHub and change the license to GNU GPL v2+. :D
Jan 26, 2015 at 10:54 PM
The maintainer of this project isn't very active, so I think it would be better if you just fork it.
Jan 27, 2015 at 1:53 AM
That would be a licensing violation, and just because I fork something doesn't mean everybody will get behind it. It would be like starting from scratch.

Does PCSXR have an IRC they frequent?
Jan 27, 2015 at 6:14 PM
Hello. Developer here.
I, myself, find GitHub to be an excellent site.

Someone is maintaining a mirror on GitHub over here. In fact, I have a fork of it where I'm testing some Swift code.

Branches: At least Xcode (what I mainly use) supports svn projects that have the trunk/branches/tags structure. But the project isn't set up like that.
Jan 27, 2015 at 6:52 PM
I think all developers like GitHub. I mean, what's not to like. :)

I will definitely fork that, at least for now. When you say Swift code, you mean that Apple-centric language, right? I have always been afraid of that, since everything I write is usually meant to be cross-platform (especially with my recent change in development workflow and software).

I see/use/code many projects with Xcode stuff in them, my only problem being that Xcode doesn't run on Windows/Linux, and Mac VM's are extremely buggy, making projects with only an Xcode project (MacEmu, for example) harder to develop for other operating systems (even if the developer wants people to do so).

Most of my projects use to use makefiles exclusively, but like I said I recently changed a lot of my habits in regards to development. I usually use CMake, Visual Studio, and Qt Studio. Then I can compile for any system on any platform.

Most of that is my personal preference though. I think just moving the official project over to GitHub and changing the license could (at least potentially, and in my experience) get more people involved and therefore make the project easier to maintain, contribute, etc. I'm sure you know all of this though.

My least favorite part of PS1 emulators is the plugin system though. It makes it really hard for new users to get started and it makes it harder to debug issues. It makes the emulator more modular and sometimes it makes things easier or easier to get to, so it has pros and cons. But overall I think the PS1 hasn't gotten that much attention lately due to the PS2 and PS3 having backwards compatibility and having PS1 classics available on so many Sony platforms. But since PS Now kind of sucks and the PS4 doesn't have backwards compatibility, I think people will start looking for a PS1 emulator if they can't play it on a Sony system they have.

I just thought of something, why isn't ePSXe open-source as well? It seems like it could be a decent contender for PS1 emulators, but it is closed-source? That seems weird to me...they just released an update today, actually.

Anyway, I would like to know what edgbla, weimingzhi, ckain, gschwind, and notaz think. Unless they aren't active anymore. Although, I would hate to move to GitHub or something and have them be like "where is everybody?" I suppose we could provide a link on the CodePlex main page or something. Anyway, I digress.
Jan 27, 2015 at 7:03 PM
Edited Jan 27, 2015 at 7:04 PM
Considering a lot of my contributions to the project are for the Mac port, specifically the UI, I don't have an issue with using such on OS X-only portions. That said, I haven't merged the Swift changes onto the main project because of the steeper OS requirement (trunk currently targets 10.8, Swift requires 10.9). This may change when there's a new version released.

I will admit to having issues with the plug-in architecture in the past, and there may be a bug in the controller card I need to look into.

That said, patches are always welcome :D
Jan 28, 2015 at 12:34 AM
I have noticed many emulators have been totally re-writing their Mac ports lately.

So are you saying that the Mac OS X version may be switched over to Swift? It would be interesting to find out if performance or maintainability would be better.

When you say controller card, do you mean input (like game controllers) or do you mean like I/O, motherboard-type controller card?

In regards to patches, can I just fork the repo, make changes, then generate a patch and send it? How fast are patches applied? And if the code base I am on is stale when I create the patch, will it be rejected or will it be modified to work with the current code base. And plugins, which are OK to make changes to and can we add additional plugins?
Jan 28, 2015 at 12:55 AM
Will the whole project be ported to Swift? Not likely. Will the Mac GUI components be ported? Some, yes.

Yes, I meant the controller plug-in. I don't know how "card" got in there…

Making additional plug-ins would be okay. As far as patching existing plug-ins: the GPU plug-ins (especially the OpenGL hardware renderer) do need a lot of work, so I'm okay seeing patches. In fact, any of the plug-ins that the Mac port uses (especially the settings panes) are fair game.
If the patches are only for the UI, I will probably apply them instantly. And yes, I will make minor changes to make them work. If they affect other parts of PCSX-R, I'd like to get some feedback from the other developers.
Jan 28, 2015 at 1:32 AM
Huh, interesting. I may have to take a look at Swift.

You could just replace the input plugin with Pokopom. Pokopom works great, and it is open-source.

SO it's just SPU, GPU, input, and network? Or are there more plugins than that?
Jan 28, 2015 at 1:38 AM
Oh, and CDROM/ISO/game loading.
Jan 28, 2015 at 7:42 PM
The plug-ins are Graphics (GPU), sound (SPU), controller (PCSX-R lets the user select a different one for player 1 and player 2: the Mac port currently does not.), CD-ROM, Network (multi-player via having controller 1 on one computer, and controller 2 on another), and SIO1 (serial input/output, currently used to network two computers as if you plugged a serial cord in one PS1 and another in another PS1).
Jan 29, 2015 at 2:57 AM

PCSX-Reloaded contains 3rd-party gplv3 code which was the reason why gplv3 is used.

Jan 29, 2015 at 3:14 AM
MaddTheSane - OK. Network and SIO should probably be back burner then. LOL.

Weimingzhi - What parts/libraries are GPLv3?
Feb 8, 2015 at 6:49 AM
Edited Feb 8, 2015 at 6:49 AM
Weimingzhi - What parts/libraries are GPLv3?
ECM code: libpcsxcore/ecm.h
Feb 8, 2015 at 3:09 PM
Project64 and Mupen64Plus moved to Github, and they became more active.
I don't understand the obsession with Github, but those are some examples right there.
Feb 9, 2015 at 11:05 PM
Weimingzhi - No, ECM is GPLv2.

"** UNECM - Decoder for ECM (Error Code Modeler) format.
** Version 1.0
** Copyright (C) 2002 Neill Corlett
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License
** as published by the Free Software Foundation; either version 2
** of the License, or (at your option) any later version."

So it could be GPLv3, but you could reverse the change if you wanted.

Uyjulian - True. It isn't an obsession, just a major improvement to how development is handled. It even improves on Git itself. And since Git was my favorite before, and it only got better, then why not switch over to GitHub? :D
Jun 25, 2015 at 10:02 AM
Edited Jun 25, 2015 at 10:03 AM
"The TFS server is currently unavailable. Work items cannot be accessed at this time. "

Getting that lately too much. Also source code not accessible from time to time. And usually svn update is really sluggish and slow.

At github there is a convenient mirror, but it hasn't updated lately. Maybe due MS blocking github access. Just a guess.